Software developement

5.0(1)
studied byStudied by 8 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/25

flashcard set

Earn XP

Description and Tags

Made with help from PMT Comp. Sci. notes

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

26 Terms

1
New cards

The 5 developement methodologies you need to know

  • Waterfall lifecycle

  • Agile methodologies

  • Extreme programming

  • Spiral model

  • Rapid application development

2
New cards

Waterfall lifecycle

  • Includes analysis, design, implementation, evaluation and maintanance stages

  • The stages are completed in sequence

  • Phases can be revisited back in turn

  • Inflexible - ff a change occurs in the requirements the lifecycle cannot respond easily, often at the cost of time and money.

3
New cards

What types of project are the waterfall lifecycle suited to?

  • Suits large scale projects

  • Suits projects with stable requirements

  • Suits low risk projects

4
New cards

What are the benefits of the waterfall lifecycle?

  • Straightforward to manage

  • Clearly documented

5
New cards

What are the drawbacks of the waterfall lifecycle?

  • Lack of flexibility

  • No risk analysis

  • Limited user involvement

6
New cards

Agile methodologies

  • A collection of methodologies which aim to improve the flexibility of software development and adapt to changes in user requirements faster

  • A working prototype is delivered early on and is built upon in an iterative manner so that new prototypes are delivered regularly throughout the developement

  • Less focus given to documentation and more to user satisfaction

7
New cards

What types of project are agile methodologies suited to?

  • Projects with unclear initial requirements.

  • Small to medium scale projects

8
New cards

What are the benefits of agile methodologies?

  • Produces high quality code

  • Flexible to changing requirements

  • Regular user input

9
New cards

What are the drawbacks of agile methodologies?

  • Poor documentation

  • Requires consistent interaction between user and programmer

10
New cards

Extreme programming (XE)

  • Programming stage is main focus

  • Is a form of agile developement

  • Includes planning, design, code, test stages

  • Testing is focused throughout developement

  • Prioritises code quality over documentation

  • Encourages the use of pair programming

11
New cards

What types of project are extreme programming suited to?

  • Projects with unclear initial requirements.

  • Projects requiring excellent usability

  • Small to medium scale projects

12
New cards

What are the benefits of extreme programming?

  • Produces high quality code

  • Constant user involvement means high usability

13
New cards

What are the drawbacks of extreme programming?

  • High cost of two people working on one project

  • Teamwork is essential

  • End-user may not be able to be present

14
New cards

Spiral model

  • Incremental design

  • Includes planning, design, programming and evaluation stages

  • At the end of all 4 phases it repeats

  • Each cycle usually adds a new element to the problem

  • Is used to manage risk

  • Prioritises riskiest elements first

15
New cards

What types of project are suited to the spiral model?

  • High risk projects

  • Suited to very large scale projects

  • High budget projects because risk management involves hiring risk assessors which is expensive

16
New cards

What are the benefits of the spiral model?

  • Thorough risk-analysis and mitigation

  • Caters to changing user needs

  • Produces prototypes throughout

17
New cards

What are the drawbacks of the spiral model?

  • Expensive to hire risk assessors

  • Lack of focus on code efficiency

  • High costs due to constant prototyping

18
New cards

Rapid application developement (RAD)

Iterative methodology:

  • Innitial user requirements are used to create a prototype.

  • This is given to users for evaluation and feedback

  • Feedback is used to inform any changes made in the next iteration (of the prototype)

  • This process repeats until requirements of end-users are met at which point the prototype becomes the final product

19
New cards

What types of project are suited to rapid application developement?

  • Small to medium projects

  • Low-budget projects

  • Projects with short time-frames.

20
New cards

What are the benefits of rapid application developement?

  • Caters to changing user requirements

  • Highly usable finished product

  • Focus on core features, reducing development time

21
New cards

What are the drawbacks of rapid application developement?

  • Poorer quality documentation

  • Fast pace may reduce code quality

22
New cards

Alpha testing

  • Testing by the developers

  • Testing in the way the end user would

  • Used when the program is complete

  • Takes place before beta testing

23
New cards

Beta testing

  • Takes place after alpha testing

  • Testing by end users

  • Feedback from users is used to inform the

    next stage of development

24
New cards

Describe white box testing

  • Using source code to checks every possible path through the program

  • Uses dry runs and/or trace tables

25
New cards

Describe black box testing

  • Tests the expected output based on input

  • Does not look at the code / looks only at program specification

  • Can be carried out by developers or end users

26
New cards

Advantages of a modular approach

  • Work is easier to divide between a team

  • each team member just needs to know what values go into their subroutine and the expected functionality

  • Saves time as work takes place in parallel

  • Each team member can work on their area of expertise.

  • Breaks problems into smaller area

  • Easier to test/ debug/ read

  • Each subroutine can be tested before integration.

  • Code can be reused in the project/ future projects