Evolutionary Development and Rapid Prototyping By: Shelone Reid Amanda Smith OUTLINE OF OUR PRESENTATION Evolutionary Development Rapid Prototyping Software Development is the set of activities that ensures that the software produced meets the specifications required (meets the customers needs). A Software Process is a set of activities and associated results which produce a software product. A Software Process Model is an abstract representation of a process, it is a structured set of activities required to develop a software system. DEFINITIONS The following are fundamental activities : ◦ Specification – defining the functionality of the software and the limitations on its operations. ◦ Development – ensure that the software produced meets the specifications required. ◦ Validation – ensuring that the software is genuine in order for the client to give his or her acceptance to the software development. ◦ Evolution – the software must be able to evolve as the client may decide to make minor or major changes or further the existing specification to improve the software being developed. Important Activities The waterfall model – This separate and distinct phases of specification and development. Evolutionary development – This is when the specification and development are infused. Reuse-based development - The system is assembled from existing components. Types of Generic Software Process Models Evolutionary development is an iterative and incremental approach to software development. Instead of creating a comprehensive artifact, such as a requirements specification, that you review and accept before creating a comprehensive design model, you instead evolve the critical development artifacts over time in an iterative manner. Instead of building and then delivering your system in a single “big bang” release you instead deliver it incrementally over time. Evolutionary Development Evolutionary Development Model Applicability Problems ◦ For small or medium-size interactive systems ◦ For parts of large systems (e.g. the user interface) ◦ For short-lifetime systems ◦ Lack of process visibility ◦ Systems are often poorly structured ◦ Special skills (e.g. in languages for rapid prototyping) may be required Problems and Applicability This model is useful in exploratory programming (such as Artificial Intelligence applications) where it is difficult to frame the specifications. In case major problems are foreseen, the developer can stop the development after some iterations. This model is very appropriate for research projects. For example, to develop software for automatic speech recognition, a small vocabulary can be taken and the system is developed. After achieving success, the vocabulary can be increased in stages. This approach is better than starting development of an unlimited vocabulary speech recognition system directly (and after two years, realizing that it is very difficult!). Advantages of evolutionary development model: Because the project is open-ended, no time frame can be set. Project monitoring is difficult. Less visibility as compared to waterfall model. Disadvantages of evolutionary development model: BACK Rapid Prototyping (RP) is a process used to quickly fabricate a realistic model of a product’s user interface Rapid Prototyping has also been referred to as solid freeform manufacturing, computer automated manufacturing, and layered manufacturing. Rapid Prototyping decreases development time by allowing corrections to a product to be made early in the process. By giving engineering, manufacturing, marketing, and purchasing a look at the product early in the design process, mistakes can be corrected and changes can be made while they are still inexpensive. But typically the RP material is not strong or accurate enough. Rapid Prototyping To decrease development time. To decrease costly mistakes. To minimize sustaining engineering changes. To increase effective communication. To extend product lifetime by adding necessary features and eliminating redundant features early in the design. To increase effective communication. Rapid Prototyping improves product development by enabling better communication in a concurrent engineering environment. Reasons for Rapid Prototyping Process Comparisons Saves time and money Promotes consistency in user interface design Allows early customer involvement Shows progress to management in a concrete way Seeing is believing. Instead of telling management Allows marketers and planners to ensure that customer needs are met Advantages of Rapid Prototyping User confusion of prototype and finished system Excessive development time of the prototype Usually does not produce reusable code Slows development process if put under formal configuration control Lacks an obvious stopping point Disadvantages of Rapid Prototyping wgsrodney.yolasite.com wikipedia.com www.efunda.com/processes/rapid_prototyping/intro.cfm Rob Abdul’s case study on Software Development Cycle Trond Johansen (head of Project Management, FIRM) and Tom Gib Lawrence J. Naijar Reference THE END