Development Methodologies

Software Development Lifecycle (SDLC)

1) Is the problem actually feasible/solvable? Any problems? Is there any point even starting if it is not going to work?

2) Requirements - analyse what the user actually wants the proposed system to do. Results in requirement specification document.

3) Analysis and Design - Work out how requirements are going to be completed. Includes: mock upped screen layouts, business rules, process diagrams, pseudocode etc.

4) Implementation - programmers actually write code.

5) Testing - program used in testing environment for bugs and errors, correction made.

6) Evaluation - Check the user is happy with the work done and that all requirements have been met. If not, explanations to why will be issued.

7) Maintenance - any changes, corrections, updates to software whilst it is being used throughout its life.


Examples of SDLC:

- Waterfall Model: each phase has defined start and end point.
- Advantages: simple, easy to manage, well defined expectations and boundaries, easy time management.
-Disadvantages: lack of flexability, high risk factor, end user removed through process (only see when complete). Not good for complex projects.



- Rapid Application Development (RAD): many prototypes of software (with reduced functionality)  made before final solution, cycles repeat until a final program with full functionality produced is complete. 
-Advantages: User very involved, end product will match requirements. 
- Disadvantage: Regular contact needed with client, not good for large products, not efficient. 



- Spiral Model: similar to RAD but heavily acknowledges risks involved in development. In stage quadrant 2, risks are identified and resolved before any further programming is completed. Cycle repeats like (RAD) until user is happy. 
- Advantages: Focus on risks, works well on large projects. 
- Disadvantages: Risk management very costly, makes this expensive way to program. 




- Agile Methodologies & Extreme Programming (XP) - idea that requirement for software changes all the time. Software should be built in iterations, companies usually but user in development team so constant feedback can always be provided. 
- Advantage: High quality end product, efficient. 
- Disadvantage: Increase development costs, heavy collaboration between programmers & clients required. 








Comments

Popular posts from this blog

CPU Fetch-Decode-Execute Cycle

Scheduling

Utility Software