BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Sunday, May 9, 2010

Ass.4 (SAD1)

Identify and discuss at least 3 systems development models .. discuss each phases ... (at least 500 words/model)

Systems Development Models


A system development models help the system analyst to create algorithms of a program for the systems to be done. All the types of models has different steps to organize the building of a system. It has many types of Systems Development Models and the following are the three familiar models that we use.

1.) The Waterfall Model

For me, when I heard waterfall model it is some kind of process which is sequentially or it is be done by process. You cannot go to another phase if you cannot finish the first phase. The Waterfall Model is the earliest method of structured system development and it is still widely used.

Advantages:

The most important aspect of the waterfall model is that none of the stages can be started off with before the preceding stage is complete. The software life cycle has to follow the sequence. This type of model is easy to use and understand. Needless to mention, it is a linear model and of course, linear models are the most simple to be implemented. The amount of resources required to implement this model is very minimal. One great advantage of the waterfall model is that documentation is produced at every stage of the waterfall model development. This makes the understanding of the product designing procedure simpler. After every major stage of software coding, testing is done to check the correct running of the code.


Disadvantages:

According to a critic Schacchi this kind of model is lack of functionality. The waterfall model is said to be the easiest model to understand because it provides a sequential succession of phases to be followed but then it is not that reliable. Because of its simplicity it would only be suitable for certain classes of software development and would not work well with the other software like interactive applications. Ironically, the biggest disadvantage of the waterfall model is one of its greatest advantage. You cannot go back, if the design phase has gone wrong, things can get very complicated in the implementation phase. Many a times, it happens that the client is not very clear of what he exactly wants from the software. Any changes that he mentions in between may cause a lot of confusion. Small changes or errors that arise in the completed software may cause a lot of problem. The greatest disadvantage of the waterfall model is that until the final stage of the development cycle is complete, a working model of the software does not lie in the hands of the client. Thus, he is hardly in a position to mention if what has been designed is exactly what he had asked for

Different Phases in Waterfall Model:

Stage 1: Requirement Phase
Whether you design a small program to add two numbers or you are into developing a software system for the automation of an entire airline company, this is the first stage which can never be overridden. Unless you know what you are going to design, you cannot approach the problem. Here, the specifications of the output or the final product is studied and marked. If the software that is going to be designed should not contain certain features, for reasons like security, then it is also mentioned in this stage.

Stage 2: Specification Phase
With all the requirements and constraints in hand, a final view of how the product should exactly be, is decided. The exact way in which the software should function is mentioned in this stage.

Stage 3: Design Phase
Well, here the actual work begins. Every type of resource which will be required for the smooth designing of the software is mentioned here in this phase. What type of database will be required, what type of data should be supported, etc. are some of the important aspects that are decided in this phase. The algorithm of the process in which the software needs to be designed is made in this phase. This algorithm forms the backbone for the actual coding part in the next phase.

Stage 4: Implementation and Testing Phase
Now starts the coding part. Here, the software is designed as per the algorithm. Hence it becomes very important that the algorithm should be properly designed. The software designed as per the algorithm needs to go through constant software testing and error correction processes to find out if there are any flaw or errors. The output of this stage should be a well designed software which is at par with the algorithm designed.

Stage 5: Integration and Testing Phase
Here the various codes designed by different programmers are integrated together and is tested if the software works as per the specifications provided. The setup of the final software which needs to be installed at the clients system is also designed and tested so that the client does not face any problem during the installation of the software. The product is then handed over to the client.

Stage 6: Maintenance Phase
The work of software development does not end with the handing of the software to the client. The software designers may have to constantly provide support to the client to resolve any of the issues which may arise. There may be some flaws which get detected during the actual implementation of the project. During the maintenance phase, support and debugging is provided for all such problems.

Stage 7: New Requirements Phase
Changing times may require that the product requirements be changed. The client company may be expanding into other fields and it may want new features to be added over to the existing software. Hence, it is very important that the updated requirements be taken from the client. This requires the entire product life cycle to start all over again.

2.) The Prototyping Model

Rapid prototyping is a process wherein a working model or prototype is developed for the purpose of testing the various product features like design, ideas, features, functionality, performance and output. This process of development of working model is quite quick. The user can give an early feedback regarding the prototype. The product can be produced if the prototype meets the requirements of all designing objectives after sufficient refinement.


Advantages:

Reduction in project cost and risk.
Can be used in different industries.
Easily the errors in previous design can be detected and errors can be rectified.
Only upon the complete satisfaction the complete product is designed. Factors like manufacture ability, robustness and functionality of design are checked before sending it for production.
Greater visualization capabilities are improved right from the first stage if designing.
This helps the user in knowing how the final product will look like.
All the designing flaws can be detected easily before the manufacturing of the product starts.
Manufacturer, designer and user can discuss the product and work forward to get the best product. This helps to give the user higher output product.

Disadvantages:

Some people are of the opinion that rapid prototyping is not effective because, in actual, it fails in replication of the real product or system. It could so happen that some important developmental steps could be omitted to get a quick and cheap working model. This can be one of the greatest disadvantages of rapid prototyping. Another disadvantage of rapid prototyping is one in which many problems are overlooked resulting in endless rectifications and revisions. One more disadvantage of rapid prototyping is that it may not be suitable for large sized applications.



3.) The Spiral Model

The spiral model, also known as the spiral life cycle model, is a systems development life cycle (SDLC) model used in information technology (IT). This model development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.

The steps in the spiral model can be generalized as follows:

1.The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.
2.A preliminary design is created for the new system.
3.A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
4.A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype.
5.At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product.
6.The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
7.The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.
8.The final system is constructed, based on the refined prototype.
9.The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.

Advantages:

The spiral model is a realistic approach to the development of large-scale software products because the software evolves as the process progresses. In addition, the developer and the client better understand and react to risks at each evolutionary level.
The model uses prototyping as a risk reduction mechanism and allows for the development of prototypes at any stage of the evolutionary development.
It maintains a systematic stepwise approach, like the classic life cycle model, but incorporates it into an iterative framework that more reflect the real world.
If employed correctly, this model should reduce risks before they become problematic, as consideration of technical risks are considered at all stages.


Disadvantages:

Demands considerable risk-assessment expertise
It has not been employed as much proven models (e.g. the WF model) and hence may prove difficult to ‘sell’ to the client (esp. where a contract is involved) that this model is controllable and efficient.

Conclusion:

For me as an analyst (hehehehehe) I think I will be more detailed in using each kind of models because it depends to me and to the system if what kind of model best fit or can give a more understandable figure of a system. They has different phases to follow, advantages and disadvantages, by that I can use those factors to choose a type of model to my system. And if I choose among the 3 familiar types of model in system development I would choose WATERFALL MODEL simply because you cannot escape or jump into another phase if you are not already finish the 1st phase and lastly it is easy to use and understand.



References:

http://www.buzzle.com/articles/waterfall-model-advantages-and-disadvantages.html
http://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci755347,00.html
http://scitec.uwichill.edu.bb/cmp/online/cs22l/spiralmodel.htm
http://www.rp4baghdad.com/36/prototype-disadvantages-and-rapid-prototyping-disadvantages

0 comments: