Software Development Study Sheet
Software Development Study Sheet
Software Development Study Sheet
Introduction:
Software development is a term used to describe methods
used in the process of developing software.
Many of these terms have been adapted from the older fields
of engineering and project management.
Agile development:
Requirements
Design
Develop
Test
Deploy
Key features:
Frequent co-operation between developers and users.
Willing to change and adapt as user needs throughout.
Produce working software early to get user feedback.
Striving for simplicity of design.
Self-organising teams + reflection to become effective.
Summary:
Agile development approach still uses documentation.
It displays great importance to flexibility.
Examples include;
scrum,
extreme programming,
unified process.
Waterfall development:
Analysis
Requirement speciation
Design
Development
Testing and integration
Implementation / Deployment
Key features:
Formal Documentation at end of each stage.
No stage should begin untill the last was reviewed.
Every stage is strictly regulated.
Arguments in favour of the Waterfall approach:
Spending less time fixing problems early on.
Number of documents allows project to be understood.
Processes in which great detail is needed
Projects can be monitored more clearly.
Summary:
Documentation must be reviewed and approved
It displays great formal and strict planning.
Software development cycle:
The name refers to the process of the project from start to
finish.
It is important to plan how it will be developed and
maintained.
Key stages:
Requirements
Also knows as analysis stage (investigate and
plan).
Team decides what software needs to do.
What will the user want?
Design
Visual appearance
Pseudocode is used
Implementation
Program code is written
Code is normally written with high level
language.
Testing
Variety of devices? Phone, Computer, ect.
Is there a way that the program will crash?
Documentation
Effective communication is key
Includes;
Project plans
Design plans
Code with comments
Test plans
Data
Evolution
How will software evolve after launch?
Maintained to work with new devices or new
platforms such as engines, rewritten for
better performance, project language
updates, changes to improve how well the
code runs, ect.