System Development Methodology: Difference between revisions

Content deleted Content added
No edit summary
 
Joeno (talk | contribs)
Clean-up and a large number of expansions.
Line 1:
System Development Methodology (SDM) is primarily being used for the development of IT-projects. SDM is a [[waterfall_model|waterfall method]]. This means that a phase only starts when a previous phase has been closed. This counts for all phases, except the first one.
 
SDM is a [[top down]] model. Starting from the system as a whole, its description becomes more detailed as the design progresses.
'''The method'''
 
As stated before, SDM is a method based on phases. Before every phase everything will be placed on record for that phase. The documents that are made before every phase are called milestonedocuments. In these documents is recorded what has to be done in that phase and who has to do that.
==History==
 
SDM was developed in [[1970]] by a company known as [[PANDATA]], now part of [[Cap Gemini]], by order of three Dutch companies: [[AKZO]], [[Nationale Nederlanden]] and [[PTT]]. It was revised in [[1987]]. This version is commonly known as [[SDM2]].
 
'''==The method'''==
 
As stated before, SDM is a method based on phases. Before every phase an agreeement needs to be reached detailing the activities for that phase. These documents are known as [[Milestone_(Project_Management)|milestone]] documents. Several uses for these documents exist:
 
* Traceability. Through applying deadlines to milestone documents, clients can keep track on whether a project is on schedule
* Consolidation. By approving a milestone document, it gains a certain status. The client can not change any of the specifications later on during development.
* If necessary, the project can be aborted. This mostly happens during the start of development.
 
==Phases==
 
The method uses 7 phases which successively are being executed. The phases are:
1. Problem definition
2. Definition study
3. Design
4. Building system
5. Testing system
6. Testing acceptance
7. Implementation
 
'''Phase 1:# Problem definition'''
2.# Definition study
In this phase will be recorded which problem has to be solved by this project. What is the problem what needs to be solved for the users of the software? And which problem has to be solved for the management? This is important because there can be a huge difference between these two parties.
3.# Design
4.# Building system
5.# Testing system
7.# Implementation
# Operation and Support
 
Upon completion of a phase it is decided whether to go on to the next phase or not. The terms 'Go' and 'NO-GO' are used for this. The next phase will not start until a 'Go' is given, while if there is a 'NO-GO', the project either stays in the current phase to be improved, or is cancelled completely.
 
1. ===Problem definition ===
 
In this phase the problems that have to be solved by the project are defined. The current and desired situations are analysed and goals for the project are decided upon. In this phase it is important to consider the needs of all parties, such as future users and their management. Often, their expectations clash, causing problems later during development or during use of the system.
 
'''Phase 2: ===Definition study'''===
 
In this phase, a more in-depth study of the project is made. The organization is analysed to determine their needs and determine the impact of the system on the organization. The requirements for the system are discussed and decided upon. The feasibility of the project is determined. Aspects that can be considered to determine feasibility are:
 
* Advisable. Are the resources (both time and knowledge) available to complete the project.
* Significance. Does the current system need to be replaced?
* Technique. Can the available equipment handle the requirements the system places on it?
* Economics. Are the costs of developing the system lower than the profit made from using it?
* Organization. Will the organization be able to use the new system?
* Legal. Does the new system conflict with existing laws?
 
===Design===
 
In this phase the design for the product will be made. After the definition study has determined what the system needs to do, the design determines how this will be done. This often results in two documments: The [[Functional_Design|functional design]], explaining what each part of the system does, and the [[technical design]], explaining how each part of the system is going to work.
 
SDM2 split this step in two parts.
 
* Global design. This phase combines a functional and technical design and only gives a broad design for the system. Often, the architecture of the system is described here.
* Detailed design. This phase continues the global design by creating more detailed designs to the point where they can be used to build the system itself. This is split to create seperate parts of the system to be created.
 
===Building the system===
 
In this phase the design is converted to a working system. The actual way this is done will depend on the system used. Where in older systems programmers often had to write all of the code, newer systems allow the programmers to convert the design into code directly, leaving less work to be done and a smaller chance for errors in this phase. At the same type, the system becomes more reliant on the design - if the design has been properly tested the proper code will be generated, but if the design is not fully correct, the code will be incorrect as well without a propgrammer to look for such problems.
 
===Testing===
 
The testing consists of two steps: A system test and an acceptance test.
 
InDuring thisthe phasesystem test the programdevelopment willteam be(or testeda byseperate the developmenttesting team) tests the system. TheyMost of this will testbe focused ifon the programtechnical worksaspects: perfectly.Does the system work as it should or are there bugs still present? Bugs that are found in this phase, will be fixed. At the ending of this phase, the program should work properly.
 
InDuring thisthe phaseacceptance test the end-users will test the system. They will test to see if the program does what they want it to do. They will not test every possible scenario, but they will test to see if the program does what they want and expect it to do and that it works in an easy way. Bugs that are found in this phase will be reported to the development team so that they can fix these bugs.
 
'''Phase 7: ===Implementation'''===
'''Phase 2: Definition study'''
In this phase information will be recorded about the organization where the software will be used. Also information about the projectteam, the team that will produce the software. Other things that will be recorded are the responsibilities of the project and which milestones will be produced.
 
During this phase the final version of the system is implemented by the organization: The hardware is set up and the software is installed, end users are trained to use the program, existing data is entered into the system and documentionat is delivered to the proper people.
'''Phase 3: Design'''
In this phase the design for the product will be made. In the definition study stands what the software must do, in the design how things must be done. By most projects, this phase will be subdivided in two subphases:
- basic design: In this design stands the basic form of the software. With this design it's possible to see how the different parts of the software will work together.
- specific design: In this design stands what every component does and how it does that specific task.
 
===Operation and Support===
'''Phase 4: Building system'''
In this phase the design is converted to a working program or programs. In old systems, the programmers had to type everything. In new languages, the programmers can convert the design in code. This means that they don't have to type everything. An advantage of this method is that, if the design has been tested correctly. If the design isn't correct and this method will be used, the code is incorrect too.
 
Once the system has been implemented it is used within the organization. During its lifetime it needs to be kept running and possibly enhanced.
'''Phase 5: Testing system'''
In this phase the program will be tested by the development team. They will test if the program works perfectly. Bugs that are found in this phase, will be fixed. At the ending of this phase, the program should work properly.
 
==External Links==
'''Phase 6: Testing acceptance'''
In this phase the end-users will test the system. They will test to see if the program does what they want it to do. They will not test every possible scenario, but they will test to see if the program does what they want and that it works in an easy way. Bugs that are found in this phase will be reported to the development team so that they can fix these bugs.
 
* [http://www.hyperthot.com/pm_sdm.htm Software Development Methodology]
'''Phase 7: Implementation'''
* [http://www.zbc.nu/main.asp?ChapterID=420 Checklist SDM Activiteiten] (In Dutch)
The final version of the software will be implemented by the organization. Also, in this phase the end-users will be trained to use the program.
 
[[Category:Software development]]
Sources
[[nl:System_Development_Methodology]]
[http://nl.wikipedia.org/wiki/SDM]
[http://www.hyperthot.com/pm_sdm.htm]
[http://www.zbc.nu/main.asp?ChapterID=420]