1.2.3 Flashcards
Software development (16 cards)
1
Q
Waterfall cycle
A
- The stages are completed in order.
- The clear structure makes this model easy to follow.
- Changes mean that all stages must be revisited.
- User involvement is low.
2
Q
Merits of waterfall
A
- Lots of documentation
- Easy to schedule and arrange tasks and judge progress
- Simple and easy to understand model
- Does not require a lot of customer involvement
3
Q
Drawbacks of waterfall
A
- Lots of documentation!
- If in testing the systems fails to meet requirements, either the requirements must be modified, or a substantial change in the design is required. “In effect the development process has returned to the origin and one can expect up to a l00-percent overrun in schedule and/or costs” (p329, Royce, 1970).
- Misunderstanding of requirements discovered too late
- No new ideas can be included during development.
- Users not involved until testing
- Cannot accommodate changing requirements
- No working software is produced until late during the life cycle.
- Efficient code is not prioritized
4
Q
When would waterfall be used?
A
- Straight forward projects where requirements are known and understood at the beginning and do not change
- When there is no benefit to the customer of having parts of the system available early.
5
Q
Agile Methodologies
A
- A collection of mythologies.
- Aimed to improve flexibility.
- Adapt quickly to changing user requirements.
- Sections of the program are developed in parallel.
- Different stages of development can be carried out simultaneously.
- A prototype is provided early and improved in an iterative manner.
- Low focus on documentation.
- High focus on user satisfaction.
6
Q
Rules of extreme programming
A
- Make frequent small releases (new software is live every week or two)
- Project is divided into iterations and each iteration is planned (an iteration is 1-3 weeks and has specific programming tasks)
- Set a sustainable pace (When your team becomes tired and demoralized they will get less work done, not more)
- A stand up meeting starts each day (everyone stands up in a circle to avoid long discussions. It is more efficient to have one short meeting that everyone is required to attend than many meetings with a few developers each.)
- The customer is always available (you need the expert)
- All production code is pair programmed (two people working at a single computer will add as much functionality as two working separately except that it will be much higher in quality)
-Code must be written to agreed standards (standards keep the code consistent and easy for the entire team to read and refactor. Code that looks the same encourages collective ownership)
- Refactor wherever and whenever possible (refactor the design and code to remove needless complexity)
- All code must have unit tests (and tests are created before the code)
7
Q
Merits of XP
A
- Quality of code should be very high
- Testing is continuous which will result in fewer bugs/issues
- Sustainable pace - less chance of tired programmers!
8
Q
Drawbacks of XP
A
- Programmers need to be based in same geographic location
- Customer needs to provide a representative to work with the development team
- Little or no documentation
9
Q
When might XP be used?
A
- Early implementation is important
- When requirements are changing
- Can’t be used on a project with a huge staff
10
Q
Rapid Application Development
A
- An iterative methodology.
- Uses partially functioning prototypes.
- Users trial a prototype.
- Focus groups gather user requirements.
- This informs the next prototype.
- This cycle repeats.
- Used where user requirements are unclear.
- Code may be inefficient.
11
Q
Merits of RAD
A
- Helpful when requirements are unclear as they do not all have to be specified at the start
- Should result in excellent usability due to feedback from customer
- Changing requirements can be accommodated
- Reduced development time due to minimising planning
- Time boxing can help keep projects on track
12
Q
Drawbacks of RAD
A
- Good code is not prioritised (focus is on accelerated development of front-end focused prototype)
- Demanding on customer’s time for feedback
13
Q
When would RAD be used?
A
- RAD should be used only when a system can be modularized to be delivered in incremental manner.
- When the customer is unsure of their requirements.
- RAD projects are typically small scale and of short duration
14
Q
Spiral
A
- Used for high risk projects.
- Has four stages:
- Analyse requirements.
- Locate and mitigate risks.
- Develop, test and implement.
- Evaluate to inform the next iteration.
- The project may be terminated if it is deemed too risky.
- Specialist risk assessors are needed.
15
Q
Merits of Spiral
A
- Ideal for risky and complex projects. If risks are too high, the project may be stopped before prototyping.
- Changing requirements can be accommodated
- Users see the system early - likely to result in a solution which better matches user’s needs
- Focus on alternatives encourages software reuse
- Focus on eliminating unattractive risky alternatives early on. Risks could be personnel shortfalls, unrealistic schedules and budgets, developing the wrong software functions eg functionality that it not needed)
16
Q
Cons of spiral
A
- Management is more complex so could be more expensive
- Process is more complex than other models
- Good risk analysts are expensive
- Efficient code is not prioritized
- No continuous customer interaction.