System development models

With the introduction of microprocessor technologies in the early 1970’s, software became a viable alternative to system development. System development models began evolving in the software domain and have since expanded to the broader engineering of systems domain as overall system development approaches.

System and product development approaches generally follow four commonly used models or hybrids. The most common models include the: 1) Waterfall Development Model, 2) Spiral Development Model, 3) Incremental Development Model, and 4) Evolutionary Development Model,.

The waterfall model is a popular version of the systems development life cycle. The waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. Each phase of development proceeds in strict order, without any overlapping or iterative steps.

The Waterfall model is the most simple and widely followed model, but like any other system, Waterfall model does have its own pros and cons. Spiral Model for software development was designed in order to overcome the disadvantages of the Waterfall Model. This model proposed by Barry Bohem in 1988, attempts to combine the strengths of various models. It also takes into account the risk assessment whose outcome determines taking up the next phase of the designing activity. Unlike all other models which view designing as a linear process, this model views it as a spiral process. This is done by representing iterative designing cycles as an expanding spiral.

Typically the inner cycles represent the early phase of requirement analysis along with prototyping to refine the requirement definition, and the outer spirals are progressively representative of the classic designing life cycle. At every spiral there is a risk assessment phase to evaluate the designing efforts and the associated risk involved for that particular iteration. At the end of each spiral there is a review phase so that the current spiral can be reviewed and the next phase can be planned.

Advantages

1. It facilities high amount of risk analysis.

2. It is more suitable for designing and managing large projects.

3. The system is produced early in the system life cycle.

Disadvantages

1. Risk analysis requires high expertise.

2. It is costly model to use

3. Not suitable for smaller projects.

4. There is a lack of explicit process guidance in determining objectives, constraints and alternatives.

5. This model is relatively new. It does not have many practioners unlike the waterfall model.

The incremental build model is a method of software development where the model is designed, implemented and tested incrementally (a little more is added each time) until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements. This model combines the elements of the waterfall model with the iterative philosophy of prototyping.

The product is decomposed into a number of components, each of which are designed and built separately (termed as builds). Each component is delivered to the client when it is complete. This allows partial utilization of product and avoids a long development time. It also creates a large initial capital outlay with the subsequent long wait avoided. This model of development also helps ease the traumatic effect of introducing completely new system all at once.

The Evolutionary Development Model is based on the premise that a system’s capabilities evolve

over time via a series upgrades. The EVO development model divides the development cycle into smaller, incremental waterfall models in which users are able to get access to the product at the end of each cycle. The users provide feedback on the product for the planning stage of the next cycle and the development team responds, often by changing the product, plans, or process. These incremental cycles are typically two to four weeks in duration and continue until the product is shipped.

1. Identify three types of systems or system upgrades that may be ideal candidates for a Spiral Development Model strategy.

2. Identify three types of systems or system upgrades that may be ideal candidates for a Waterfall Development Model strategy.

3. Identify three types of systems or system upgrades that may be ideal candidates for Incremental Development Model.

4. In your own words and experiences, pick a system and describe how any of the following approaches might apply for someone who is unfamiliar with the methods?

(a) Waterfall Approach

(b) Evolutionary Approach

(c) Incremental Approach

(d) Spiral Approach

 

A systems analyst researches problems, plans solutions, recommends software and systems, and coordinates development to meet business or other requirements. They will be familiar with multiple variety of programming languages, operating systems, and computer hardware platforms. Because they often write user requests into technical specifications, the systems analysts are the liaisons between vendors and information technology professionals.[1] They may be responsible for developing cost analysis, design considerations, and implementation time-lines.

A systems analyst may:

· Plan a system flow from the ground up.

· Interact with customers to learn and document requirements that are then used to produce business requirements documents.

· Write technical requirements from a critical phase.

· Interact with designers to understand software limitations.

· Help programmers during system development, ex: provide use cases, flowcharts or even Database design.

· Perform system testing.

· Deploy the completed system.

· Document requirements or contribute to user manuals.

· Whenever a development process is conducted, the system analyst is responsible for designing components and providing that information to the developer.

· must meet the customer

 

The systems analyst is the middleman, assessing the needs of the end-user and translating them into programming or turning over the programming responsibility to the development department. What are the business requirements? Who will comprise the user community? How large is the application going to be? Will it be internal or external? These are all questions facing the systems analyst, who spends much of the day in front of the computer poring over these issues. With a new product, other elements come into play, such as network location, user community, type of machine, and portability. If the analyst is reviewing an established product, the user community will dictate its changes and enhancements. “One of the biggest surprises in my 25 years of technology work is that people who have a creative background as opposed to a degree in computer science tend to make better systems analysts,” says one seasoned professional. “The best analysts I’ve come across came from backgrounds in theater, art, and filmmaking. But they were all able to see and grasp big-picture concepts very quickly, and break them down into subcomponents. People who have a computer science or math background tend to be very technical, and sometimes that can be a hindrance.” Systems analysts need to be independent thinkers-people who can “think out of the box” by grasping concepts quickly and seeing the big picture as opposed to the small details. “I also look for someone who is self-motivated. Here . . . take the ball and run with it and come back if you have any issues,” says one employer who heads up a technology group.