Software Development Flashcards
What 7 stages should be completed when developing a new application?
- Feasibility study
- Requirements analysis
- Design
- Development
- Testing
- Documentation
- Review/sign off
Explain the first stage that should be taken when developing a new application
Feasibility study = determines whether the project is likely to be possible, worthwhile, cost-effective and legal. If any of these outcomes are missing the project should be avoided
Explain the second stage that should be taken when developing a new application
Requirements Analysis = The users requirements for the project most be ascertained to ensure the developers understand exactly what the user wants from the software. A checklist of requirements is created which forms the basis of the design, development and testing of the software
Explain the third stage that should be taken when developing a new application
Design = Project must be planned before coding. Modules, functions and procedures are planned in advance. UI designs are created, algorithms are developed and tested and database and file structures are decided
Explain the fourth stage that should be taken when developing a new application
Development = Once design has been finalised, development can begin. Team of programmers working on Separate modules which are then combined to create the finished program
Explain the fifth stage that should be taken when developing a new application
Testing = software is tested throughout development to ensure it does what it’s supposed to. Entire system will be tested as a whole once all modules are put together. Any bugs are passed back to developers to fix
Explain the sixth stage that should be taken when developing a new application
Documentation = detailed user guide and instructions may be required to installation, usage and trouble-shooting of finished software. Code should also be fully documented and commented to ensure it can be maintained in the future
Explain the seventh stage that should be taken when developing a new application
-Review/sign off = Once testing is complete the end user will test the software to ensure it works on their hardware. When the user is happy that all requirements have been met the project can be signed off as complete. Maintenance contract may also be in place
What is the waterfall lifecycle?
- only advance to the next stage once the previous stage is complete
- You can also go up the waterfall if a previous stage needs altering
- Stages in order = requirements, analysis, design, coding, testing and maintenance
+/- of waterfall lifecycle
+simple therefore easy to manage
+Everyone knows what they are doing at each stage
+As there is an expected output it is clear to see whether or not a project is running to schedule
+suitable for large scale projects
-High risk as it isn’t until the end stage that the user sees proper software therefore if requirements have not been met it will be hard and expensive to go all the way back and alter it
-Only suitable for straightforward tasks
What are agile methodologies? +/-
-Refers to collection of different software development methods which are designed to cope with evolving project requirements and solutions
-iterative and allows projects to be flexible by adapting to changing requirements.
-Produced in versions each building on the previous and each increasing the requirements it meets. User can see software early on and ask for adaptations to be made
+Shorter development times and end product will meet exact requirements of user
+Good for complex tasks
What is pair programming?
- Two programmers work together on a single workstation
- The “driver” writes the code wh silt they “navigator” reviews each line of code as it is types and considers the strategic direction of the code
- Roles are frequently switched
What is extreme programming?
- Type of agile software dev in which the focus is on the programming
- Purpose is to improve the quality of the software and be more responsive to changing customer requirements
- Iterative process in which user is heavily involved. Iterations are very short with frequency checkpoints to allow additional user requirements. Each iteration produces a full version of the system that can be used in final product
- Requirements are drip fed to developers rather than being dumped onto them which makes process more flexible
- Example of pair programming
+/- of extreme programming
\+cost effective \+less dependent on individuals \+robust solutions \+Meets exact requirements -requires constant end see involvement -no quality assurance of coding -code-centred means often poorly documented
What is the spiral model?
- Similar to the waterfall model but places a greater emphasis on risk analysis
- Consists of four iterative phases; planning, risk analysis, engineering and evaluation
- Software project repeatedly passes through these phases in iterations
- Used when cost and risk evaluation is important. If the project is very risky or when there are potential changes to economic priorities. Also used when user is unsure of needs or requirements are complex