Software Development Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

Agile Approach

A

flexible and collaborative way of working on software projects. Small manageable units of work are done on different aspects of development. Often features iteration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Iteration

A

when problems are encountered you go back to a prior step or checkpoint and work through the process again

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Key Features of agile approach

A

-frequent and close collaboration between developers and users
-Willingness to respond to changing user requirements
-producing working software early and getting feedback from users
-simplicity of design
-self organising teams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Waterfall approach

A

formal and linear. Different stages are completed one after another

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Waterfall approach key features

A

-formal documentation produced at the end of each stage to inform the next
-no stage begins till the last is done
-every stage is strictly regulated

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

arguments for waterfall approach

A

-problems found early in project means they are easier and less costly to fix than if they were found later
-documentation makes process easier to understand for new team members
-progress monitored clearly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Software Development Lifecycle (SDLC)

A

1.Investigate / Analysis
2.Plan
3.Design
4.Create / Development
5.Evaluate / Testing
-Iterate back to 2.
6.Document / Maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Invetigate
A

identify and understand user and problem. Carry out a feasibility study to whether a practical solution exists

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Plan
A

software development plan ensures everyone understands what must happen, when and by whom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Design
A

Has multiple methods (Top-down / modular). Includes protoyping and making flowcharts

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Top Down Design

A

main system at top and breaks it down into smaller units. Each unit is further broken down until they are manageable. It’s an example of decomposition

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Modular design

A

Main system divided into smaller units called modules. Each represents a self contained task independent of others. ONce written can by used by various parts of system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

benefits of modular design

A

-modules can be reused in the project and possibly others too
-modules are relatively small so problems are easier to find and fix
-easy to understand
-simplifies large projects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

prototype

A

early version of model or product. tests concept or process and gets feedback from users. Most suitable for projects with high user interaction like an online system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

flowchart circle

A

start / end

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

flowchart arrow

A

connector

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

flowchart parallelogram

A

input / output

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

flowchart rectangle

A

process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

flowchart diamond

A

decision

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

benefits of flowcharting

A

-shared understanding on the part of team and users
-checks if development process is correct
-identify and eliminate unnecessary steps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

data table

A

lists all data to be used and how it will be stored

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

variable table

A

variables that the software will need

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

user-centred design

A

gives top priority to the needs of the user and ensures they can use it as easily as possible. Consider UX and UD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

UX

A

User Experience. experience of user when interfacing with a product. Includes: perception, preferences, emotion, and others. Key component is UI

25
Q

UI

A

User Interface. necessary for people to use computers. Usually a graphical interface through which the UX takes place. Can take different forms depending on design decisions

26
Q

UD

A

Universal Design. Designing a product so everyone can understand, access and use it. Know your users to increase chance of success

27
Q

UD principles

A

1.Equitable Use [useful for people with diverse abilities]

2.Flexability in Use [accomodates wide range of preferences and abilities]

3.Simple and Intuitive use [easily understandable]

4.Perceptible information [communicate necessary info effectively regardless of users sesnsory abilities

5.Tolerance for error [minimizes hazards and adverse consequences of accidental actions]

6.Low physical effort [comfortable with minimum fatigue]

7.size and space for approach and use [provides s and s regardless of body size posture or mobility]

28
Q

Adaptive Technology

A

provide features or add feature enhancements to existing technologies to aid their use for people with disabilities and older people. E.g. screenreaders, alternative keyboards, text-to-speech synthesizers

29
Q

Impairments

A

-Cognitive [e.g. learning]
-Visual [e.g. blindness]
-Hearing [e.g. deafness]
-Motor/dexterity [e.g. paralysis, amputation]

30
Q
  1. Create
A

softare is written. System created based on previous stages. e.g. modular or topdown design. Unit testing, is normally carried out and system design may have to be modified if issues arise.

31
Q
  1. Evaluate
A

Begins with software tests for errors or anything it shouldn’t do. These are usually functional tests, system tests and acceptance tests. Then a broader evaluation compares finished system with specified requirements.

32
Q

Functional Testing

A

testing each function of a system. Can test usability, accessibility and error conditions

33
Q

System Testing

A

Testing entire system to ensure it works as intended and meets specification agreed with client and users. Can be broken down to alpha and beta testing.

34
Q

Alpha Testing

A

test software in house. Test as many paths through the system as possible. Discover and fix problems before users test it

35
Q

Beta testing

A

early version of software sent to potential users for testing. Users perform tests of what would take place under real life conditions. Record problems and notify developers. Each user will use software slightly differently so they find faults not discovered in-house

36
Q

Acceptance Testing

A

Beta testing continues until all issued raised by users are resolved. Once this has happened, the users are asked to sign off to confirm they are accepting of this software

37
Q

Test data

A

Should include normal, incorrect, extreme and boundary values.

38
Q
  1. Document
A

Keep records of communication as well as formal project documentation. Helps ensure responsibility of decisions, clear understanding, issues can be discussed between developers and non-technical staff. Saves time later when problems need to be fixed.

39
Q

Typical Roles in software development

A

-Business Analyst
-Project Manager
-System Analyst
-Designer
-Developer
-Tester
-User liaison and training
-Administrative support

40
Q

Business Analyst

A

-Involved from Investigate stage before rest of team is formed
-Identifies users and other stakeholders and their requirements along with the business’
-Investigates nature of the problem
-works with system analyst to produce specification of requirements

41
Q

Project manager

A

-involved with feasability study and specification of requirements
-ensure project is delivered on time and withing budget
-oversee project schedule, plan and set key dates
-resource project with staff, equipment and finance
-assign tasks related to design, implementation, testing, etc.
-communicate with and motivate team and ongoing liaison with customer
-monitor project progress
-forms project team

42
Q

System Analyst

A

-Involved from investigate stage, before rest of team formed
-once business and user requirements identified, establish hardware and software requirements
-investigate technical aspects of the problem
-works with business analyst to produce specification of requirements

43
Q

Designer

A

-Design software to meet specification
-produce design documentation
-amends design documentation if necessary

44
Q

Developer

A

-Writes programs
-maintains backup of programs
-carries out unit testing
-produces software documentation

45
Q

Tester

A

-produces test plans
-produces test data
-carries out tests
-ensures test results are documented

46
Q

User liaison and training

A

-ensures communication between team and users is effective at all stages
-ensures users prepared to carry out testing
-prepares training
-ensures user support is in place when system is introduced to them

47
Q

Administrative Support

A

-Organise meetings
-Organises documentation
-Keeps track of correspondence(e.g. emails)

48
Q

Factors influencing teamwork

A

-clarity of roles
-communication quality
-regularity of project updates
-support when things go wrong
-working environment quality
-recognition of work
-opportunity to learn as project develops
-constructive feedback from others

49
Q

benefits of teamwork

A

-new skills and knowledge from other members
-collaborative problem solving
-developing leadership qualities
-improve communication skills
-experience of conflict resolution
-develop working relationships with colleagues
-access to support from members with problems
-job satisfaction and confidence

50
Q

stakeholders

A

-business (the client)
-user
-general public

51
Q

Use case testing

A

testing each possible use case(input) to ensure that each works as intended

52
Q

Why SDLC is important

A
  1. structured approach reduces complexity
  2. minimises overrun on budget/cost
  3. minimises risk of missing deadlines
  4. maximises use of resources
  5. improves quality by increasing potential it will reach requirements while reducing risk of failure
53
Q

Why choice of development approach is important

A

Enables a project to:
1. provide better estimates,
2. keep customers informed,
3. create a clear understanding of task, 4. identify potential pitfalls earlier
5. allowing time to make adjustments

54
Q

Example of user-centred design on a website

A
  1. Consistent page layout with a navigation at the top of every page
  2. Good balance of content and white space
  3. Good contrast between text and background
  4. Consistent font in terms of size and formatting
  5. Responsive design (works on different device types and browsers)
  6. Visited links change appearance
55
Q

Wireframe

A
  1. Sketch diagram of webpage that shows its overall structure(navigation bar, headings, images, content, footer)
  2. Drawn during the design stage.
  3. Do not contain real content and are relatively quick and cheap to develop and modify.
56
Q

Wireframe vs prototype

A
  1. Wireframe is made during design stage whereas prototype is during create
  2. Prototype is software whereas wireframe are just sketches
  3. Prototypes provide a mid to high fidelity visual representation of system whereas wireframe is low-fidelity of just one aspect
57
Q

High level languages

A

use english like words such as while. Programs using these languages are translated into machine code using a compiler or interpreter. High level languages are machine independent

58
Q

Low level languages

A

write code for a specific processor architecture. The language is constrained by a processor’s instruction set. Examples are assembly languages and machine code(code using 1s and 0s)