sdlc models.pptx

65
SDLC MODELS

Upload: garima-dabas

Post on 26-Oct-2015

82 views

Category:

Documents


4 download

DESCRIPTION

models of software designing

TRANSCRIPT

Page 1: SDLC  MODELS.pptx

SDLC MODELS

Page 2: SDLC  MODELS.pptx

In this the developer simply builds a product that is reworked as many times as necessary to satisfy the client.

This is an adhoc approach and not well defined. Basically it is a simple two-phase model.

The first phase is to write code and the next phase is to fix it.

BUILD AND FIX MODELS

Page 3: SDLC  MODELS.pptx
Page 4: SDLC  MODELS.pptx

This approach may work well on small programming excercises (100-200 lines).

This model is totally unsatisfactory for software of any reasonable size.

Code soon becomes unfixable and unenhanceable.

The cost of the development using this approach is actually very high as compared to the properly specified and designed.

Disadvantage

Page 5: SDLC  MODELS.pptx

This model has five phases:- Requirements Analysis and Specification Design Implementation and Unit testing Integration and System testing Operation and Maintenance

WATERFALL MODEL

Page 6: SDLC  MODELS.pptx
Page 7: SDLC  MODELS.pptx

Requirements Analysis and Specification :- The goal of this phase understand the

exact requirements of the customer and to document them properly. This activity is usually executed together with the customer, as the goal is to document the functions, performance. The requirements describe the “what” of a system, not the “how”.

Page 8: SDLC  MODELS.pptx

This phase produces a large document, written in a natural language , contains a description of what the system will do without describing how it will done. The resultant document is known as software requirement specification (SRS) document.

Page 9: SDLC  MODELS.pptx

Design phase :- The goal of this phase is to transform the

requirement specification into a structure that is suitable for implementation in some programming language. Here, overall software architecture is defined, and the high level and detailed design work is performed. This work is documented and known as SDD document. The information contained in the SDD should be sufficient to begin the coding phase.

Page 10: SDLC  MODELS.pptx

Implementation and unit testing phase:- During this phase, design is implemented.

If the SDD is complete, the implementation or coding phase proceeds smoothly, because all the information needed by the software developers is contained in the SDD.

Page 11: SDLC  MODELS.pptx

During testing the major activities are centered around the examination and modification of the code. In unit testing small modules are tested in isolation from the rest of the software product. In this modules are tested after writing some overhead code.

Page 12: SDLC  MODELS.pptx

Integration and system testing phase:- This is a very important phase. Effective

testing will contribute to the delivery of higher quality software products, more satisfied users, lower maintenance costs, and more accurate and reliable results.

It is a very expensive activity and consumes one-third to one half of the cost of a typical development project.

Page 13: SDLC  MODELS.pptx

System testing involves the testing of the entire system, whereas software is a part of the system. This is essential to build confidence in the developers before software is delivered to the customer or released in the market.

Page 14: SDLC  MODELS.pptx

Operation and maintenance phase:- Software maintenance is a task that every

development group has to face, when the software is delivered to the customers site, installed and is operational. Therefore, release of software inaugurates the operation and maintenance phase of the life cycle.

Page 15: SDLC  MODELS.pptx

Software maintenance is a very broad activity that includes error correction, enhancement of capabilities. The purpose of this phase is to preserve the value of the software over time.

This phase may span for 5 to 50 years whereas development may be 1 to 3 years.

Page 16: SDLC  MODELS.pptx

It is difficult to define all requirements at the beginning of a project.

This model is not suitable for accomodating any change.

It does not scale up well to large projects. Real projects are rarely sequential.

PROBLEMS OF WATERFALL MODEL

Page 17: SDLC  MODELS.pptx

Due to these weakness, the application of waterfall model should be limited to situations where the requirements and their implementations are well understood.

Page 18: SDLC  MODELS.pptx

This model has the same phases as the waterfall model, but with fewer restrictions.

Generally, the phases occur in the same order as in the waterfall model, but these may be conducted in several cycles. A useable product is released at the end of each cycle, with each release providing additional functionality.

ITERATIVE ENHANCEMENT MODEL

Page 19: SDLC  MODELS.pptx

During the first requirements analysis phase, customers and developers specify as many requirements as possible and prepare a SRS document.

Developers and customers then prioritize these requirements.

Developers implement the specified requirements in one or more cycles of design, implementation and test based on the defined priorities.

Page 20: SDLC  MODELS.pptx
Page 21: SDLC  MODELS.pptx

In iterative model we can only create a high-level design of the application before we actually begin to build the product and define the design solution for the entire product. Later on we can design and built a skeleton version of that, and then evolved the design based on what had been built.

In iterative model we are building and improving the product step by step. Hence we can track the defects at early stages. This avoids the downward flow of the defects.

Advantages

Page 22: SDLC  MODELS.pptx

In iterative model we can get the reliable user feedback. When presenting sketches and blueprints of the product to users for their feedback, we are effectively asking them to imagine how the product will work.

In iterative model less time is spent on documenting and more time is given for designing.

Page 23: SDLC  MODELS.pptx

Each phase of an iteration is rigid with no overlaps

Costly system architecture or design issues may arise because not all requirements are gathered up front for the entire lifecycle

Disadvantages

Page 24: SDLC  MODELS.pptx

Requirements of the complete system are clearly defined and understood.

When the project is big. Major requirements must be defined;

however, some details can evolve with time.

When to use iterative model

Page 25: SDLC  MODELS.pptx

This model is an incremental process model. Here, user involvement is essential from the requirement phase to delivery of the product.

The continuous user participation ensures the involvement of user’s expectations and perspective in requirements elicitation, analysis and design of the system.

RAPID APPLICATION DEVELOPMENT

Page 26: SDLC  MODELS.pptx

The process is started with building a rapid prototype and is given to user for evaluation. The user feedback is obtained and prototype is refined. The process continues till the requirements are finalised.

We may use any grouping techniques (like INTERVIEWS, FAST, QFD’S, BRAINSTORMING, USE CASE etc).

Page 27: SDLC  MODELS.pptx
Page 28: SDLC  MODELS.pptx

There are four phases in this model:- 1) Requirements planning phase- Requirements are

captured using any group elicitation technique. Only issue is the active involvement of users for understanding the project.

2) User description – Joint team of developers and users are constituted to prepare, understand and review the requirements. The team may use different tools to capture information from the other users.

Page 29: SDLC  MODELS.pptx

3) Construction Phase:- This phase combines the detailed design, coding and testing phase of waterfall model. Here, we release the product to customer.

4) Cut over phase:- This phase incorporates acceptance testing by the users, installation of the system and user training.

Page 30: SDLC  MODELS.pptx

In this model, quick initial views about the product are possible due to delivery of rapid prototype.

The development time of the product may be reduced due to use of powerful development tools.

If user cannot be involved throughout the life cycle, this may not be an appropriate model.

Page 31: SDLC  MODELS.pptx

Reduced development time. Increases reusability of components Quick initial reviews occur Encourages customer feedback Integration from very beginning solves a lot

of integration issues.

Advantages of the RAD model

Page 32: SDLC  MODELS.pptx

Depends on strong team and individual performances for identifying business requirements.

Requires highly skilled developers/designers.

High dependency on modeling skills Inapplicable to cheaper projects as cost of

modeling and automated code generation is very high.

Disadvantages of RAD model

Page 33: SDLC  MODELS.pptx

RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time.

It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools.

RAD SDLC model should be chosen only if resources with high business knowledge are available and there is a need to produce the system in a short span of time (2-3 months).

 When to use RAD model

Page 34: SDLC  MODELS.pptx

A disadvantage of the waterfall model is that the working software is not available until late in the process, thus delaying the discovery of serious errors.

An alternative to this is to first develop a working prototype of the software instead of developing the actual software.

The working prototype is developed as per current available requirements.

PROTOTYPING MODEL

Page 35: SDLC  MODELS.pptx

The developers use this prototype to refine the requirements and prepare the final specification document. Because the working prototype has been evaluated by the customer, it is reasonable to expect that the resulting specification document will be correct.

When the prototype is created, it is reviewed by the customer.

Page 36: SDLC  MODELS.pptx

Typically this review gives feedback to the developers that helps to remove uncertainties in the requirements of the software and starts an iteration of refinement in order to further clarify requirements.

Page 37: SDLC  MODELS.pptx
Page 38: SDLC  MODELS.pptx

1) When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the software and he can suggest changes and modifications. 

2) This type of approach of developing the software is used for non-IT-literate people. They usually are not good at specifying their requirements, nor can tell properly about what they expect from the software.

3)  When client is not confident about the developer's capabilities, he asks for a small prototype to be built. Based on this model, he judges capabilities of developer. .

Advantages of Prototyping Model

Page 39: SDLC  MODELS.pptx

4)  Sometimes it helps to demonstrate the concept to prospective investors to get funding for project.

5)  It reduces risk of failure, as potential risks can be identified early and mitigation steps can be taken.

6)  Iteration between development team and client provides a very good and conductive environment during project.

7)  Time required to complete the project after getting final the SRS reduces, since the developer has a better idea about how he should approach the project

Page 40: SDLC  MODELS.pptx

1)  Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. It can be done using Rapid Application Development (RAD) tools. Please note sometimes the start-up cost of building the development team, focused on making prototype, is high.

2)  Once we get proper requirements from client after showing prototype model, it may be of no use. That is why, sometimes we refer to the prototype as "Throw-away" prototype. 

Disadvantages of Prototyping Model:

Page 41: SDLC  MODELS.pptx

3)  It is a slow process.

4)  Too much involvement of client, is not always preferred by the developer.

5)  Too many changes can disturb the rhythm of the development team.

Page 42: SDLC  MODELS.pptx

The problem with traditional software process models is that they do not deal sufficiently with the uncertainty, which is inherent to software projects.

Important software projects have failed because project risks were neglected and nobody was prepared when something unforeseen happened.

BARRY BOEHM recognized this and tried to incorporate the “Project risk” factor into a life cycle model.

SPIRAL MODEL

Page 43: SDLC  MODELS.pptx

The result is the spiral model which is the combination of waterfall and prototyping model.

The radial dimension of the model represents the cumulative costs. Each path around the spiral is indicative of increased costs.

The angular dimension represents the progress made in completing each cycle. Each loop of the spiral from X-axis clockwise through 360 represents on phase.

Page 44: SDLC  MODELS.pptx
Page 45: SDLC  MODELS.pptx

One phase is split roughly into four sectors of major activities:-

PLANNING: Determination of objectives, alternatives and constraints.

RISK ANALYSIS: Analyze alternatives and attempts to identify and resolve the risks involved.

DEVELOPMENT: Product development and testing product.

ASSESSMENT: Customer evaluation.

Page 46: SDLC  MODELS.pptx

During the first phase, planning is performed, risks are analyzed, prototypes are built and customers evaluate the prototype.

During the second phase, a more refined prototype is built, requirements are documented and validated and customers are involved in assessing the new prototype.

By the third phase begins, risks are known and somewhat more traditional development approach is taken.

Page 47: SDLC  MODELS.pptx

An important feature of the spiral model is that each phase is completed with a review by the people concerned with the project.

If the plan for the development fails, then the spiral is terminated. Otherwise, it terminates with the initiation of new or modified software.

Page 48: SDLC  MODELS.pptx

1)  Spiral Life Cycle Model is one of the most flexible SDLC models in place. Development phases can be determined by the project manager, according to the complexity of the project.

2)  Project monitoring is very easy and effective. Each phase, as well as each loop, requires a review from concerned people. This makes the model more transparent.

3)  Risk management is one of the in-built features of the model, which makes it extra attractive compared to other models.

ADVANTAGES

Page 49: SDLC  MODELS.pptx

4)  Changes can be introduced later in the life cycle as well. And coping with these changes isn’t a very big headache for the project manager. 

5)  It is suitable for high risk projects, where business needs may be unstable.

6)  A highly customized product can be developed using this.

Page 50: SDLC  MODELS.pptx

1)  Cost involved in this model is usually high.

2)  It is a complicated approach especially for projects with a clear SRS.

3)  Skills required, to evaluate and review project from time to time, need expertise.

4)  Rules and protocols should be followed properly to effectively implement this model. Doing so, through-out the span of project is tough.

DISADVANTAGES

Page 51: SDLC  MODELS.pptx

5)  Due to various customizations allowed from the client, using the same prototype in other projects, in future, is difficult.

 6)  It is not suitable for low risk projects.

7)  Meeting budgetary and scheduling requirements is tough if this development process is followed.

8)  Amount of documentation required in intermediate stages makes management of project very complex affair.

Page 52: SDLC  MODELS.pptx

Computer users have rapidly increased in both number and diversity .

They include managers, accountants, engineers, home makers, teachers, scientists, health care workers, insurance adjusters, salesmen, and administrative assistants.

Many of these people work on tasks that rapidly vary on a yearly, monthly, or even daily basis.

Consequently, their software needs are diverse, complex, and frequently changing. Professional software developers cannot directly meet all of these needs because of their limited domain knowledge and because their development processes are too slow.

END USER DEVELOPMENT

Page 53: SDLC  MODELS.pptx

End-user development (EUD) helps to solve this problem. EUD is "a set of methods, techniques and tools that allow users of software systems, who are acting as non-professional software developers, at some point to create, modify, or extend a software artifact".

In particular, EUD enables end users to design or customize the user interface and functionality of software. This is valuable because end users know their own context and needs better than anybody else, and they often have real-time awareness of shifts in their respective domains.

Page 54: SDLC  MODELS.pptx

Through EUD, end users can tune software to fit their requirements more closely than would be possible without EUD.

End users usually do not have training in professionals' programming languages, formal development processes, or modeling and diagramming notations.

Moreover, end users often lack the time or motivation to learn these traditional techniques, since end users usually write code in order to achieve a short- or medium-term goal rather than to create a durable software asset that will produce a continuing revenue stream.

Page 55: SDLC  MODELS.pptx

Examples of end-user development include the creation and modification of:

3D models created with end-user oriented tools and approaches such as Sketchup

Animation scripts used by graphic artists to describe characters, environments and how characters move to produce an intended animation

Configuration files that blur the line between programs and data (e.g., email filters are sequenced lists of criteria and actions to take)

EXAMPLES

Page 56: SDLC  MODELS.pptx

Game modifications to introduce users' own characters, environments, etc. — many recent games are distributed with modification in mind

Process models used in workflow applications Prototypes and domain-specific programs written

by business people, engineers, and scientists to demonstrate or test specific theories

Scientific models used in computer simulation Scripts and macros added to extend or automate 

office productivity suites and graphics applications.

Page 57: SDLC  MODELS.pptx

Spreadsheet models, e.g., used for budgeting or risk analysis

Visual programming in the form of visual languages such as AgentSheets.

Web pages - plain HTML or HTML and scripting

Page 58: SDLC  MODELS.pptx

Frees IS resources for higher priority projects

May help reduce the hidden backlog Faster design/implementation cycle More acceptable to users Reduces communications problems

between users and IS Encourages innovation and creative

solutions

ADVANTAGES

Page 59: SDLC  MODELS.pptx

Duplication or effort and waste of resources Greatly increased costs Loss of control over data Loss of control of quality in both programs and data Incompatibles prevent sharing Can be used to circumvent control processes, such

as the steering committee Generally produces narrow, inflexible systems with

short lives

DISADVANTAGES

Page 60: SDLC  MODELS.pptx

The logical design of a system pertains to an abstract representation of the data flows, inputs and outputs of the system. This is often conducted via modelling, using an over-abstract (and sometimes graphical) model of the actual system. In the context of systems design are included. Logical design includes ER Diagrams i.e. Entity Relationship Diagrams.

LOGICAL DESIGN

Page 61: SDLC  MODELS.pptx

The physical design relates to the actual input and output processes of the system. This is laid down in terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it is displayed as In Physical design, following requirements about the system are decided.

Input requirement, Output requirements, Storage requirements, Processing Requirements, System control and backup or recovery.

PHYSICAL DESIGN

Page 62: SDLC  MODELS.pptx

Put another way, the physical portion of systems design can generally be broken down into three sub-tasks:

User Interface Design:-

User Interface Design is concerned with how users add information to the system and with how the system presents information back to them.

Data Design:- Data Design is concerned with how the data is represented

and stored within the system. Finally, Process Design is concerned with how data moves through the system, and with how and where it is validated, secured and/or transformed as it flows into, through and out of the system.

Page 63: SDLC  MODELS.pptx

Process Design:- Process Design is concerned with how data

moves through the system, and with how and where it is validated, secured and/or transformed as it flows into, through and out of the system.

Page 64: SDLC  MODELS.pptx

The Evaluation Information System (EIS) is a web-based central evaluation database that captures the findings and lessons of all on-going, ex-post and impact evaluations of the development interventions implemented with domestic and aid funds.

The objective of the EIS is to ensure more effective feedback of evaluation findings and lessons into the planning, budgeting and policy formulation process. The evaluation information helps Planners and Policy Makers to learn from the past and to improve the  design of future programs.

EVALUATION INFORMATION SYSTEM

Page 65: SDLC  MODELS.pptx

The EIS captures project- wise:-

  • basic evaluation data   • key issues   • overall assessment   • lessons learned and   • follow-up actions and recommendations