1.6 Software Development Flashcards

1
Q

Software Development Life Cycles

A

Analysis Stage: Stakeholders input product requirements
- Define problem & system requirements by:
- Analysing current problem-solving methods
- Considering data types & volume

Design Stage: New system aspects designed, including:
Inputs, Outputs, Security features, Hardware setup, User interface & Creation of a test plan

Development Stage:
- Use design to break project into modules
- Allocate modules to teams for programming

Testing Stage: Various types of testing conducted:
- Alpha testing: In-house, bug identification
- Beta testing: End-user feedback
- White box testing: All possible routes tested
- Black box testing: Input-output testing

Implementation Stage: Software installed after necessary testing

Evaluation Stage: Assess software effectiveness against defined requirements
- Consider criteria like robustness, reliability, portability, maintainability

Maintenance Stage: End-user feedback for errors/improvements
- Regular software updates for bug fixes, security, and improvements

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

Waterfall Lifecycle

A
  • Software development follows sequential series of stages from start to finish
  • Analysis Stage: Includes a feasibility study using ‘TELOS’ (Technical, Economic, Legal, Operational, Scheduling) to evaluate project feasibility
  • Inflexible, unsuitable for projects w/ changing requirements.
  • User involvement limited to initial & final stages
  • Stages progress linearly, cannot revisit prior stages easily-
  • Used for low risk, general purpose software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Agile Methodologies

A
  • Collection of methodologies that enhance development flexibility & adaptability to user requirement changes
  • Different stages developed simultaneously (E.g design & analysis)
  • Delivery of a working prototype w/ iterative improvements
  • Poor documentation, requires consistent interaction
  • Used for small-medium projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Extreme Programming

A
  • Agile model focused on a pair of programmers working w/ end-user representative
  • System requirements based on “user stories” provided by end-users, guiding program design
  • Enhances code quality through continuous critique & improvement during code writing
  • Each cycle iteration results in “working version” of program
  • High-quality code, high usability
  • Effective communication is vital, High cost
  • Small-med projects w/ high useability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Spiral

A
  • Aimed at managing high-risk projects effectively through four key stages:
    • Analyzing system requirements
    • Identifying & mitigating risks
    • Development, testing, & implementation
    • Evaluating to guide next iteration
  • Thorough risk analysis, caters to changing needs
  • Expensive, lack of focus on code efficiency
  • Suited for very large-scale projects due to its cost-intensive nature
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Rapid Application Development (RAD)

A
  • Iterative methodology useing partially functioning prototypes that are continually built-upon
  • User requirements initially gathered w/ focus groups & used to develop an ‘incomplete’ version of the solution given to the user to trial
  • Feedback used to generate the improved prototype, continuing until prototype matches requirements, becoming the final product
  • Caters to changing user requirments
  • Poor documentation, fast pace reduces code quality
  • Small-med low budget projects w/ short time frames
How well did you know this?
1
Not at all
2
3
4
5
Perfectly