6: Software Development Flashcards

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

What is a SDLC

A

Software Development Life Cycle
- A number of distinct phases programmers work through to develop a solution to a problem

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

What are the 8 stages of the SDLC

A
  • Feasibility: Is the problem solvable?
  • Requirements: Working out what the solution needs to do
  • Analysis and design: Working out how the solution needs to do it
  • Implementation: coding the solution
  • Testing: Checking it actually works
  • Deployment: Installing it in the target environment
  • Evaluation: Checking in with the user, is the solution complete?
  • Maintainance: Ensuring it continues to function properly by the way of improvements, patches and updates
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the waterfall lifecycle?

A
  • Derives its name from its cascading effect from one phase to another
  • Each phase has a well-defined start and end point with identifiable deliverables
  • A slight evolution of the model allows you to move back to previous stages as well as forwards, which reflects the fact that developers often have to go back to earlier stages in light of knowledge gained as development progresses
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is rapid application development (RAD)?

A
  • Involves producing successive prototypes of the software until a final version is produced and approved
  • Following the approval of a feasible program, increasingly refined prototypes are made with reduced functionality
  • These are designed, coded, tested and evaluated with the end user
  • The user may decide they are happy with the system or could want further improvements, which will start a new cycle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the spiral model?

A
  • A risk-driven development methodology
  • More of a guide for development teams, allowing them to adopt elements of one or more other methodologies
  • It is not a fixed process that must be followed in the correct order - it is wholly dependent on the project and its unique risks
  • better thought of as a process model generator, where decisions about the SDM are made based on the risks identified
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the agile development methodology?

A
  • Focuses on the idea that requirements will shift and change during development; this can only be dealt with by producing software in an iterative way
  • Product is built in a series of iterations called sprints
  • Short, time-boxed periods when a team has focused goals to complete a set amount of work
  • Each sprint should ideally be a bite-sized piece of work, taking no longer than one to four weeks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is extreme programming?

A
  • A framework that aims to produce very high-quality code and promote developer’s quality of life by encouraging them to adopt a set of common practices that focus on the values of: simplicity, communication, feedback, courage and respect
  • Considered an agile framework, as it encourages regular, small, iterative software releases
  • At its core are the concepts of collective ownership and every team member being of equal value
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are 5 commonly accepted core practices that make up extreme programming considered to boost the overall quality of completed solutions?

A
  • collective code ownership
  • continuous integration
  • code standards
  • refactoring (revisiting old code)
  • paired programming (having two programmers at the same computer)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the pros of the waterfall methodology

A
  • Simplicity makes it easy to manage
  • Everyone on the project is clear on their responsibility at each stage
  • Clear deliverables
  • easy to see if a project is running to schedule
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the cons of the waterfall methodology?

A
  • Carries a lot of risk
  • The user doesn’t get to see the product for the first time until the project is near its end
  • Misunderstanding requirements can lead to a project that is not easy to fix
  • Requirements must be very well understood, so this model is not suitable for complex projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

When would the waterfall methodology be used?

A

Ease of management can make it suitable for large-scale development projects, assuming they are well understood and carry little risk

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

what are the pros of RAD?

A
  • Requirements don’t need to be entirely clear from the start
  • Focus groups involving the user can be used to gather requirements without the need for full formal requirement documents upfront
  • Continuous feedback from the client means the solution is likely to have excellent usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the cons of RAD?

A
  • Focus on usability rather than how the product works - not suited for projects where code efficiency is very important
  • Regular contact with the client must be maintained at all times
  • Scales poorly for large projects with big teams
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When is RAD used?

A

Good for projects where the initial requirements are not fully understood, as the iterative nature prevents development from becoming side-tracked

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

What are the pros of the spiral model?

A
  • risk management is at the heart of this model
  • Excellent for projects that contain a high level of risk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the cons of the spiral model?

A
  • Complex nature of risk analysis increases costs - risk management is a highly specialised skill
  • If risk analysis is done badly, the project suffers
17
Q

When would the spiral model be used?

A

Suitable for large-scale problems and those that involve a high degree of risk, especially where the user doesn’t fully understand the requirements upfront

18
Q

What are the pros of agile and extreme programming?

A
  • Emphasises programming, so the quality of the end code is likely to be very high
  • Core principles and processes promote respect and collaboration, leading to a very productive development team
19
Q

What are the cons of agile and extreme programming?

A
  • Requires a team of programmers working in close collaboration - unlikely to work well if the team is widely distributed geographically
  • Client must be able to commit to having a full-time representative working with the development team
  • Some processes involved in extreme programming such as paired programming can be quite costly
20
Q

When would agile and extreme programming be used?

A

When the emphasis of a project is on the quality of the finished code

21
Q

What is black-box testing?

A
  • Simply checks whether an input produces the expected output
  • Code efficiency is not important as long as inputs return the desired outputs
  • Involves checking every possible input to a program. If all inputs produce the desired outputs, developers can be satisfied the program works in all cases - however this is often not feasible
  • Instead developers choose appropriate test data to cover a range of situations
22
Q

What is white-box testing?

A
  • Involves testing the algorithms in the code and making sure all parts of those algorithms function as intended
  • Focuses on identifying and testing all the possible paths of execution through a program
  • On each test run, the path of execution is noted so it can be compared with other runs
  • Unlike black-box testing, white-box testing is also checking the overall efficiency of the code
23
Q

When are alpha and beta testing carried out?

A

When software is nearly ready for release and can be tested as a complete solution.

24
Q

How does alpha testing work?

A
  • Typically occurs first and is limited to internal employees and their friends and families
  • It is often a very early version of the finished software that usually still contains a number of bugs
25
Q

How does beta testing work?

A
  • Usually opened up to a much wider community through a public beta program
  • The program is in an almost finished state and developers are looking to test areas like load balancing and multiple hardware compatibility
26
Q

What is erroneous/invalid data?

A

data that should be rejected by the program

27
Q

what is normal/typical/valid data?

A

data that should be accepted by the program without causing errors

28
Q

What is boundary/extreme/edge data?

A

data of the correct type that is on either edge of the accepted validation limits

29
Q

What is the importance of regular user feedback?

A
  • Keeps a project focused
  • makes sure you develop the actual system they need
  • provides opportunities for discussion
  • makes the user feel part of the finished solution