Chapter 4 Flashcards
Identify the common stages of software
development life cycles (SDLCs).
Feasibility Study, Analysis, Design, Coding, Testing,
Installation, Evaluation and
Maintenance.
Define white box testing.
A form of testing carried out by software development teams in which the test plan
is based on the internal structure of the program. All of the possible routes through the program are tested.
Define black box testing.
The program as a wh ole is tested from the perspective of the user , it checks all possible user inputs produce valid results.
Define Alpha testing
Testing carried out by the software company, in-house. If specifications were not clearly defined by the client, or the client didn’t themselves know what they wanted, issues will be flagged as this stage.
Define Beta testing
The program is released to a select few users who will use the program and provide feedback on useability and functionality. Feedback is given to devs.
What is TELOS?
A method of analysis used by designers
to evaluate the feasibility of a project. It considers technical, economic, legal and
operational aspects of the project, as
well as scheduling.
What are agile methodologies?
A collection of methodologies which aim
to improve the flexibility of software
development. They respond quickly to
changes in user requirements.
Describe Waterfall model
It completes the stages in a linear, sequential order.
-Each phase has a well defined start and end
-Each phase has clear criteria for completion
-The company interacts with the client at the start and end, but infrequently during development. Traditional and some what outdated.
Pros and cons of waterfall
Pros:
-Simple and easy to mange
-Clearly documented at each stage, so can fixed easily
-Each stage has clear goals
Cons:
-Lack of flexibility
-No risk analysis
-Limited user involvement, only start and end
Describe RAD
Rapid Application development: Successive prototypes are produced, shown to the client, evaluated and feedback is used to inform the next iteration. Good features from multiple prototypes can be combined in this process. Small to medium, with unclear requirements.
Pros and Cons of RAD
Pros:
-Full project requirement spec not necessary
-Regular client input
-Flexible to changing requirements
Cons:
-Regular client contact; may be impractical
-Many prototypes = expensive
-Poor documentation
Describe spiral model
Less riskier version of RAD- more time is spent on planning and risk accessing. Used for large long term projects.
Pros and Cons of Spiral model
Pros:
-Focuses on risks, potentially saving lots of time and money
-Good for unclear requirements
-Good for large complex projects
Cons:
-Risk management = specialised: expensive
-Overkill for small projects
-Lack of focus on code efficiency
Describe extreme programming
Used for smaller evolving projects.
- Keep the model simple and immediate
- Get rapid feedback from the client
- Keep up-to speed with client’s changing requirements
-Incrementally expand and improve the model over continuous prototyping and iteration. May use pair programming, one codes other gives feedback.
Pros and cons of extreme programming
Pros:
-Produces high quality code, fast
-Lots of client involvement
- Requirements can evolve
Cons:
- Pair programming = expensive
-Scope creep - the client may expand on requirements during development
-Client must invest lots of time with devs
Key qualities of algorithms
-Inputs must be clearly defined - what is valid and what is invalid?
- Must always produce a valid output for any defined input
- Must be able to deal with invalid inputs
- Must always reach a stopping condition
- Must be well-documented for reference
- Must be well-commented so modifications can easily be made
Define programming paradigm
A style of programming or a way organising/ conceptualising a program.
What is the low level paradigm
Assembly:
- Uses mnemonics to represent opcodes.
- Hardware dependent
- Runs efficiently, used in embedded systems