Software Development

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/19

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

20 Terms

1
New cards

What is the SDLC

Software Development Life Cycle - the distinct phases that programmers work through when developing a solution to a problem

2
New cards

What is a methodology?

The arrangement of the phase and how programmers move from one phase to another

3
New cards

What are the 5 methodologies?

Waterfall, rapid application development, spiral, agile, extreme programming

4
New cards

Waterfall

Each phase has a well-defined start and end point with identifiable deliverables - sometimes developers have to rework earlier stages due to knowledge gained as development progresses. Waterfall is suitable for projects where the requirements are well understood and unlikely to change.

5
New cards

Stages of waterfall

analysis, design, implementation, testing, deployment, maintenance

6
New cards

RAD - Rapid Application Development

involves producing successive prototypes of the software until a final version is produced and approved. Designed coded, tested and evaluated with the end user, who may decide that they are happy with the system of that they want further improvements, which will start a new cycle (iteration). Needed for projects where rapid delivery is required and where requirements can be developed on the go. NOT suitable for projects where code efficiency is very important

7
New cards

Advantages of waterfall

simple to understand, clear stages and milestones, suitable for well defined projects, NOT suitable for complex projects

8
New cards

Disadvantages of waterfall

inflexible, expensive to fix late problems, long development cycle, carries a lot of risk, less user collaboration, requirements must be very well understood

9
New cards

Stages of RAD

requirement planning, design and prototyping, construction/iterative development, deployment, maintenance

10
New cards

Advantages of RAD

fast development, low cost, lots of user involvement, flexible, incremental development, allowing for constant feedback and adaptation, requirements do not need to be entirely clear from the start, less documentation upfront

11
New cards

Disadvantages of RAD

Dependant on team collaboration, potential lack of quality, not suitable for small projects, can lead to scope creep (uncontrolled changes in requirements), focus on usability rather than how the product works (not code efficient), scales poorly for large projects

12
New cards

Spiral

Risk driven, suitable for large, complex projects where requirements may change and risk management is essential.

13
New cards

Stages of spiral

determine objective, identify and resolve risk, development and test (detailed design, code, unit test, integration test, acceptance test), plan next iteration in a spiral.

14
New cards

Advantages of spiral

flexible, allows for risk management, strong customer involvement, incremental releases

15
New cards

Disadvantages of spiral

complex, time consuming, expensive as can require more resources due to risk management, not suitable for small projects

16
New cards

Agile

Group of methodologies that focus on the idea that requirements will change. Suitable for small to medium sized projects with changing requirements and high customer involvement. Focus is not on heavy upfront documentation, and focuses more on high quality code.

17
New cards

Stages of agile

requirements, (design, development, testing, deployment, evaluate repeated in each sprint, which could last 1-4 weeks), launch

18
New cards

Advantages of agile

highly adaptable, frequent communication, quality focus, customer collaboration, emphasises programming, so quality of end code likely to be high

19
New cards

Disadvantages of agile

requires experienced team members, intensive collaboration can lead to burnout, may lack documentation, scope creep, processes such as paired programming can be expensive

20
New cards

Extreme programming

Framework that aims to produce very high-quality code and encourages common practises that focuses on values of simplicity, communication, feedback, courage, respect. Considered to be agile as it encourages regular, small, iterative software releases.