Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes...

37
Software Engineering Software Lifecycle Models/Software Process Models

Transcript of Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes...

Page 1: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Software EngineeringSoftware Lifecycle Models/Software Process Models

Page 2: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Software Lifecycle Models

• A software system passes through the following phases:

• 1. Vision – focus on why• 2. Definition – focus on what• 3. Development – focus on how• 4. Maintenance – focus on change

• During these phases, a number of activities are performed

• A lifecycle model is a series of steps through which the product progresses. Theseinclude requirements phase, specification phase, design phase, implementationphase, integration phase, maintenance phase, and retirement. SoftwareDevelopment Lifecycle Models depict the way you organize your activities.

Page 3: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Software Lifecycle Models

• There are a number of Software Development Lifecycle Models, eachhaving its strengths and weaknesses and suitable in different situations andproject types.

• The list of models includes the following:• Build-and-fix model• Waterfall model• Incremental model• Rapid prototyping model• Extreme programming• Synchronize-and-stabilize model• Spiral model• Object-oriented life-cycle models

Page 4: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Build and Fix Model

• This model is depicted in the following diagram:

Page 5: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Build and Fix Model

• It is unfortunate that many products are developed using what is known as the build-andfix model.

• In this model the product is constructed without specification or any attempt at design.

• The developers simply build a product that is reworked as many times as necessary tosatisfy the client.

• This model may work for small projects but is totally unsatisfactory for products of anyreasonable size.

• The cost of build-and fix is actually far greater than the cost of properly specified andcarefully designed product.

• Maintenance of the product can be extremely in the absence of any documentation.

Page 6: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

Page 7: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

• Because of the cascade from one phase to another, this model is known as the waterfall model.

• Also known as Linear Sequential Model

• The principal stages of the model map directly onto fundamental development activities.

• It suggests a systematic, sequential approach to software development that begins at the system level and progresses through the analysis, design, coding, testing, and maintenance.

Page 8: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

• Requirement Analysis and Definition: What - The systems services,constraints and goals are established by consultation with systemusers. They are then defined in detail and serve as a systemspecification.

• System and Software Design: How – The system design processpartitions the requirements to either hardware of software systems.It establishes and overall system architecture. Software designinvolves fundamental system abstractions and their relationships.

Page 9: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

• Implementation and Unit Testing: - How – During this stage thesoftware design is realized as a set of programs or program units. Unittesting involves verifying that each unit meets its specifications.

• Integration and system testing: The individual program unit orprograms are integrated and tested as a complete system to ensurethat the software requirements have been met. After testing, thesoftware system is delivered to the customer.

Page 10: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

• Operation and Maintenance: Normally this is the longest phase of thesoftware life cycle. The system is installed and put into practical use.Maintenance involves correcting errors which were not discovered inearlier stages of the life-cycle, improving the implementation ofsystem units and enhancing the system’s services as newrequirements are discovered.

• In principle, the result of each phase is one or more documents whichare approved. No phase is complete until the documentation for thatphase has been completed and products of that phase have beenapproved. The following phase should not start until the previousphase has finished.

Page 11: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

• Real projects rarely follow the sequential flow that the modelproposes.

• In general these phases overlap and feed information to each other.Hence there should be an element of iteration and feedback.

• A mistake caught any stage should be referred back to the source andall the subsequent stages need to be revisited and correspondingdocuments should be updated accordingly.

Page 12: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

Page 13: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model• Because of the costs of producing and approving documents, iterations are costly

and require significant rework.

• The Waterfall Model is a documentation-driven model.

• It therefore generates complete and comprehensive documentation and hencemakes the maintenance task much easier.

• It however suffers from the fact that the client feedback is received when theproduct is finally delivered and hence any errors in the requirement specificationare not discovered until the product is sent to the client after completion.

• This therefore has major time and cost related consequences.

Page 14: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Waterfall Model

Page 15: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Incremental Model

• Also called, Incremental and Iterative Model

• The whole requirement is divided into various builds

• A working version of software is produced during the first module,so you have working software early on during the software life cycle

• Each subsequent release of the module adds function to the previousrelease. The process continues till the complete system is achieved.

Page 16: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Incremental Model

Page 17: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Incremental Model

• As in the image above a person has thought of the application. Then hestarted building it and in the first iteration the first module of theapplication or product is totally ready and can be demoed to thecustomers. Likewise in the second iteration the other module is ready andintegrated with the first module. Similarly, in the third iteration the wholeproduct is ready and integrated. Hence, the product got ready step by step.

Page 18: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Incremental Model

Page 19: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model

• The Rapid Prototyping Model is used to overcome issues related to understanding and capturing of user requirements. In this model a mock-up application is created “rapidly” to solicit feedback from the user. Once the user requirements are captured in the prototype to the satisfaction of the user, a proper requirement specification document is developed and the product is developed from scratch.

Page 20: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model - Exercise

• In teams of three, design a tablet application for ordering coffee at the Gloria Jean’s Coffee. The app had to support the following:• Multiple coffee type options in multiple sizes

• Confirmation of each drink before adding to the current order

• An option to modify a drink order

• Calculation and display the price of each drink combination & total order

• Issue a confirmation of the total order before finally sending it to coffee bar

Page 21: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you
Page 22: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Exercise

• Build prototype for the exercise using Balsamiq Mockups

Page 23: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model – What is Prototype/Prototyping?

• A fairly common problem with system development is that there may be a very long delay from when the idea of a new system is first suggested to when development begins, especially the case with complex software systems.

• Moreover, some users may find it difficult to imagine the system from a proposed paper design. They would much prefer to see something real in front of them.

• One practical way of overcoming these problems is the concept of ’Prototyping’

• A prototype represents some aspect of the full system - for instance a mock-up of the graphical user interface.

Page 24: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model – What is Prototype/Prototyping?

• Consider a prototype GUI, where users click on command buttons and see its effect. That button is not actually connected to a real system but is programmed by the developer to act as if it was. The command action is simulated with dummy data.

• Now the user is beginning to see how the real system will work before the developer spends even more time on it.

• So a prototype is NOT a fully working system but it does provide an opportunity for the user to give feedback and suggestions for improvements.

• Any changes required are fed back to the developer and the Requirements Document is also updated every time a change is needed.

Page 25: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Types of Prototyping

• It is much cheaper to build a prototype and iron out the problems rather than go straight into the development of the main system and then find out there are problems.

• There are two main approaches to prototyping, namely:• Evolutionary Prototyping

• Throw-away Prototyping

Page 26: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model - Throwaway Prototyping

• Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you may have no more use for that prototype.

• The goal is just getting views of stakeholders what they want. Once the prototype is shown to stakeholders or customers to get the essence of their needs, it is not used further.

• The objective of throw-away prototyping is to ensure that the system requirements are validated and that they are clearly understood. The throw-away prototype is NOT considered part of the final system. It is simply there to aid understanding and reduce the risk of poorly defined requirements.

Page 27: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Throwaway or Paper Prototyping

Page 28: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model - Evolutionary Prototyping

Evolutionary prototypes are developed to solve a problem, and are continually fixed and updated to better solve that problem

Page 29: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model - Evolutionary Prototyping• Example: Developing the user input screen in a new customer records system

• Working with the analyst, the developer quickly puts together an initial prototype . This prototype is then tried out by users who provide immediate feedback. The initial prototype may not even look like the final system - it may be just trying out user interactions with no interest in how it looks at this stage.

• Users try out the prototype and inform the analyst of any changes needed to the interactions

• The requirement specification is updated by the analyst and the developer adjusts the interactions as needed.

• The user tries out the adjusted prototype. They can either accept how it is now working or they once again inform the analyst of any changes that should be made. The process repeats.

• The interaction aspect of the interface is eventually accepted and signed off.

• Now perhaps the developers begin work on the graphics and the way the input screen actually looks.

• A new prototype is released, now with all the graphics set up properly. The user tries out the prototype and comments on the design. Any changes needed are added to the requirements specification and the developer carries out the changes.

• The prototype evolves towards the finished system.

Page 30: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Prototype Model - Evolutionary Prototyping

• The advantages of evolutionary prototyping are:• The delivery of the system is speeded up

• The user engages with the system

• The system is more likely to meet the user requirements

• A problem with evolutionary prototyping is knowing when it is necessary to stop modifying/altering the system and actually finish with the development.

Page 31: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Evolution Tree Model

• The evolution tree model - a software life-cycle model that describessoftware development as the continuous evolution of a softwareproduct. That is, software development is viewed as a maintenanceprocess based on a tree of engineering decisions made at varioustimes. These decisions are made by software engineers in response tomodifications in the requirements as they are issued.

Page 32: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Evolution Tree Model

Page 33: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Iteration and Increments

Page 34: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Iteration and Increments

Page 35: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Spiral Model

Page 36: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

Risks Associated with Software

• Estimation and scheduling

• Sudden growth in requirements

• Employee turnover

• Breakdown of specification

• Productivity issues

• Compromising on designs

• Gold plating

• Technical risks

• Unavoidable risks

Page 37: Software Engineering - WordPress.comPrototype Model - Throwaway Prototyping •Throw-away prototypes are for demonstrating the use of a function or part. After the demonstration, you

• Any Questions?