Monday, May 10, 2010

System Development Models

(Note: This is a reply to Mr. G.'s thread in USeP-IC Web Forum - Assignment 4: Identify and discuss at least 3 systems development models .. discuss each phases...)
Systems development models are being used to help guide the system analyst in the planning, analysis, design, and implementation phases of software development project. These models specify how the activities of development process are organized in the total system development effort (Sharma). Here are some of the widely used models by most system analyst:

Waterfall model

The waterfall approach is the simplest system development model. Also termed as linear sequential model, the waterfall approach organizes like a waterfall – each phase of the project is organized in such a way it falls into the next phase.



Figure 1 – The waterfall model.

The model basically has the following activities: planning, analysis, design, development, testing and implementation, and maintenance. A project begins with initiation or planning where you get an overview and goals of a certain project. Requirements gathering and analysis shall follow. The next step is laying the system design and specification. After breaking down the system into pieces to analyze the situation, goals, and requirements, the system’s designs, functions, and operations shall now be described in detail. Here, the architecture, database design, structure, and other important components are defined. Coding and verification will now take place after the design step is accomplished. The system design must be translated into machine-readable code using programming languages and tools. Once the programming is done, the code generated will now be integrated and the system shall undergo testing. Testing is done to eliminate certain bugs that were committed so to make the software or system run successfully. User acceptance testing is also done alongside with unit and system testing. If successful, the system will now be installed and maintained or updated in its duration of operation.

Since the steps in the waterfall model are organized in a linear order, each phase should be done first before proceeding to the next. This kind of ordering implies that once a phase is completed and its output is validated, these outputs will be the inputs to the next phase. Freetutes.com identified these several important consequences of using a linear order of process modeling: First, to clearly identify the end of a phase and beginning of the others. Some certification mechanism has to be employed at the end of each phase. This is usually done by some verification and validation. Validation means confirming the output of a phase is consistent with its input (which is the output of the previous phase) and that the output of the phase is consistent with overall requirements of the system. In waterfall modeling approach however, you can not go back to the previous phase once you are already on the next phase. A system analyst for example, will freeze the planning specifications during the analysis stage. In the analysis stage, the analyst will have to work out everything before proceeding to the next step. These are the limitations of the waterfall approach – all requirements of the system must be identified and known beforehand and openly. This is significant since the customer or the developer has little opportunity to preview the system and it may be too late if there are specifications that are not yet mentioned or pointed out. The advantage with this kind of generic process model is that it portrays a sequential order of activities, which is beneficial in a sense for me. Even inexperienced individuals will find this easy to use and understands as it clearly defines the order of activities in a project. Its structure is also good in managing control for the project plan since it is uncomplicated to point the particular stage where the project team is currently working, for example.


Prototyping Model

This kind of model evolved a little bit improved than the waterfall approach. If the waterfall is a linear organization of activities in a system, the prototyping model seems like the cyclic version of the waterfall. Whatis.com defines the prototyping model as “a systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.” This kind of model is a type of iterative and trial-and-error process which takes place between a user or client and a developer. Since it is often difficult to know and determine the exact requirements of the system on the first hand, the prototyping model was developed.



Just like in the waterfall process, there are also several steps which should be taken in this model. First, the requirements of the system must be identified and defined in detail as much as possible. This is the requirements definition and collection stage. The next step is the design stage. Here, a preliminary design of the system once the initial requirements or information are gathered. The first prototyping then follows, which may be constructed from the preliminary design. It will then be evaluated and reviewed by the users or client who will assess the strengths and weaknesses, takes note of what shall be added and / or what shall be removed. The developer takes note of the user ratings and the modifications of the system requirements, collects and analyzes the remarks of the users, and this will in turn create and/or modify another prototype. The second prototype will then be constructed and evaluated in the same manner as the first prototype. The second prototype will again be presented to the customer for another review and assessment, and the next step will be the prototype refinement where it is revised by the developer to be more efficient. These steps are reiterated until such time when the users are satisfied with the requirements and functionalities of the prototype representing the desired final product. Thus, after approval the final system is constructed based upon the final prototype created and modified. The final stage would be the system implementation where the final system is thoroughly evaluated and tested.

In this kind of system development process, the product undergoes several testing and iterations, revising and refining the requirements and components to meet the exact expectations of the users or clients. As we have noticed, during this type of development process model, there is much communication between the developer and the client. I guess this is the most widely used system or software development process model or methodology today. Even in school projects or simple transactions between programmers or developers and customers, prototyping is the primary approach. It is therefore not very easy to determine and comprehend the exact requirements of a system as requested by the customer. By using the prototyping technique, the customer will get to know and can have the opportunity to get the “feel” and “look” of the system. For instance, the developer can show the sample user interfaces without complete coding of the whole just to demonstrate some important functions of the system.


Spiral model

The spiral model is a kind of iterative process, combining the features of the waterfall model and the prototyping approach (software development wherein a prototype is build based on the determined requirements of the software or system project). Introduced by Barry Boehm in 1986, the phases of a spiral model are undergone in an iterative process, starting with a design goal and ends with the reviews of the client. In this case, the analysis and progress of the project are being verified step by step.



As the name implies, the activities of this development model are organized in a spiral-like structure. The radial dimension in the spiral represents the cumulative cost in accomplishing the steps while the angular dimension is said to be representing the progress made in completing each cycle of the spiral (Freetutes.com). The preliminary version of the system is being developed then repeatedly modified based on the reviews and evaluations of the customers or clients, just like in the prototyping process. Since there is a repetition, the development of the iteration begins in the center of the spiral and works outward, making more complete and improved versions of the system’s progress.

As noticed in most spiral model illustration, it is divided into four (4) main quadrants. The first quadrant shows the step of determining goals, alternative, and constraints. The activities in this quadrant involve the analysis of the project goals and objectives, investigating the possible alternatives of the system implementation, and examining the constraints and limitations imposed on the alternatives. If the analyst has a clear understanding now of the system’s objectives, alternatives, and constraints we can now proceed to quadrant two (2).

The second quadrant of the spiral model is the evaluation of the alternatives and risks. Risk assessment is included in this step as a means of evaluating the version of the system whether or not the development shall continue. If in case, the risks are hard to bear, or can not be taken, the progress of the project can be stopped. Boehm describes these activities which may involve prototyping, simulation, benchmarking, reference checking, administering user questionnaires, analytic modeling, or combination of these techniques. When risk analysis and prototyping is done, we can now go to quadrant three (3).

Developing and testing is the concentration in the third quadrant of the spiral. Activities to develop, verify next-level product are being performed. The detailed requirements are determined and the system is started coding, designed, validated, tested, and implemented. As we can see, it follows the basic waterfall approach where the concept of design, develop, and testing is employed.

Planning constitutes the fourth quadrant of the spiral. This phase includes thorough technical review and assessment of the various aspects of the development of system components, thus further evaluating the status, progress, merits, and risks associated. During this stage, the customer / client is given the opportunity to analyze the results of the previous versions created in the prior steps and through planning and managing these results they can give feedback to the developer(s) who may apply some modifications and improvements in the succeeding cycles.

study study study
I would like to acknowledge the following references:

Software Development Life Cycle (SDLC), stylusinc
http://www.stylusinc.com/Common/Concerns/SoftwareDevtPhilosophy.php

Prototyping model, Whatis.com
http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci755441,00.html

Prototyping, Center for Technology in Government, University at Albany
http://www.ctg.albany.edu/publications/reports/survey_of_sysdev?chapter=7

Systems Development Life Cycle
Spiral model
from Wikipedia.org

The Spiral Life Cycle Model
Waterfall Software Development Life Cycle Model
from Freetutes.com - the free tutorial website
lol! lol!

Survey of System Development Process Models, Center for Technology in Government in University at Albany

Sharma, Bulbul, System Development Approaches, Roll No.-12 PGDM

1 comment:

otr214430 said...

INTERNATIONAL CONCEPT OF WORK FROM HOME
Work from home theory is fast gaining popularity because of the freedom and flexibility that comes with it. Since one is not bound by fixed working hours, they can schedule their work at the time when they feel most productive and convenient to them. Women & Men benefit a lot from this concept of work since they can balance their home and work perfectly. People mostly find that in this situation, their productivity is higher and stress levels lower. Those who like isolation and a tranquil work environment also tend to prefer this way of working. Today, with the kind of communication networks available, millions of people worldwide are considering this option.

Women & Men who want to be independent but cannot afford to leave their responsibilities at home aside will benefit a lot from this concept of work. It makes it easier to maintain a healthy balance between home and work. The family doesn't get neglected and you can get your work done too. You can thus effectively juggle home responsibilities with your career. Working from home is definitely a viable option but it also needs a lot of hard work and discipline. You have to make a time schedule for yourself and stick to it. There will be a time frame of course for any job you take up and you have to fulfill that project within that time frame.

There are many things that can be done working from home. A few of them is listed below that will give you a general idea about the benefits of this concept.

Baby-sitting
This is the most common and highly preferred job that Women & Men like doing. Since in today's competitive world both the parents have to work they need a secure place to leave behind their children who will take care of them and parents can also relax without being worried all the time. In this job you don't require any degree or qualifications. You only have to know how to take care of children. Parents are happy to pay handsome salary and you can also earn a lot without putting too much of an effort.

Nursery
For those who have a garden or an open space at your disposal and are also interested in gardening can go for this method of earning money. If given proper time and efforts nursery business can flourish very well and you will earn handsomely. But just as all jobs establishing it will be a bit difficult but the end results are outstanding.

Freelance
Freelance can be in different wings. Either you can be a freelance reporter or a freelance photographer. You can also do designing or be in the advertising field doing project on your own. Being independent and working independently will depend on your field of work and the availability of its worth in the market. If you like doing jewellery designing you can do that at home totally independently. You can also work on freelancing as a marketing executive working from home. Wanna know more, email us on workfromhome.otr@gmail.com and we will send you information on how you can actually work as a marketing freelancer.


Internet related work
This is a very vast field and here sky is the limit. All you need is a computer and Internet facility. Whatever field you are into work at home is perfect match in the software field. You can match your time according to your convenience and complete whatever projects you get. To learn more about how to work from home, contact us today on workfromhome.otr@gmail.comand our team will get you started on some excellent work from home projects.

Diet food
Since now a days Women & Men are more conscious of the food that they eat hence they prefer to have homemade low cal food and if you can start supplying low cal food to various offices then it will be a very good source of income and not too much of efforts. You can hire a few ladies who will help you out and this can be a good business.

Thus think over this concept and go ahead.