Software development methodlogy

41
SOFTWARE DEVELOPMENT METHODOLOGY BY-TUSHAR GUPTA SUMIT ANAND AMEEYA MISHRA PRIYANKA MOHAPATRA

description

a ppt on software development methodology

Transcript of Software development methodlogy

Page 1: Software development methodlogy

SOFTWARE DEVELOPMENT METHODOLOGYBY-TUSHAR GUPTA

SUMIT ANAND

AMEEYA M ISHRA

PR IYANKA MOHAPATRA

Page 2: Software development methodlogy

Introduction

A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system.

Page 3: Software development methodlogy

There are the following methodologies:

•Waterfall (a.k.a. Traditional)

•V-Shape model

•Spiral Model

•Prototype model

•Incremental Model

Page 4: Software development methodlogy

Waterfall Model

• It is also called as linear sequential model.• In this model whole application is developed in a

sequential approach.• In this model each phase must be completed fully before

the next phase begin.• Provides structure to inexperienced staff.

Page 5: Software development methodlogy

Where to use the waterfall model• Requirements are very well known.• Product definition is stable.• Technology is understood.• New version of an existing product.

Page 6: Software development methodlogy

Waterfall model Diagram

Page 7: Software development methodlogy

• In this phase business analyst will collect the requirements with an interaction of client and collected requirements will be documented.

Requirement

Gathering

• In this phase system analyst will study the client requirements and prepare the system requirement specification.

Requirement

Analysis

• In this phase design architecture is the responsible to decide architecture of an application in order to full-fill the client requirements .Design

• In this phase developers will write the program using programming languages or scripting languages in order to develop the application.Coding

• Initially developers will perform unit testing and integration testing using of white box testing, After that separate team will be perform system testing using black box testing

Testing

• After the testing client satisfied on work product then we deliver application to the customer to use at live environment. While using this application client identify can some defects in existing s/m then he will send to the CR to CCB .

Release & Maintenance

Page 8: Software development methodlogy

ADVANTAGES

• A waterfall model is easy to implementation.• It helps to find errors earlier• Easy to understand, easy to use.• Works well when quality is more important than cost or

schedule• Documentation is produced at every stage of a waterfall

model allowing people to understand what has been done.• Testing is done at every stage.

Page 9: Software development methodlogy

Disadvantages

• It is only suitable for the small size projects. • Constant testing of the design is needed.• If requirements may change the Waterfall model may not work.• Difficult to estimate time and cost for each stage of the

development process.• Adjust scope during the life cycle can kill a project.• High amount of risk and uncertainty.• This model is not suitable to handle dynamic changes in the

requirements

Page 10: Software development methodlogy

V – MODEL (SOFTWARE DEVELOPMENT)

10

Page 11: Software development methodlogy

THE V SHAPED MODEL• Evolved from waterfall Model.

• Completion of each phase before the next phase begins.

•Instead of moving in a linear way, process steps are bent upwards.

• Emphasizing on testing is more when compared with the waterfall model.

• Structured approach to testing.

• High quality development of products can be guaranteed.

11

Page 12: Software development methodlogy

STEPS IN V-SHAPED MODEL

12

Page 13: Software development methodlogy

ENTRY AND EXIT CRITERIAEntry CriteriaSet of generic and specific conditions for permitting a process to go forward with a defined task.

Exit Criteria

Refers to the output conditions required by a specific process to determine its thoroughness and correct completion. The Exit Criteria for one stage can constitute part of the Entry Criteria for the following stage.

13

Page 14: Software development methodlogy

Unit testing

The most ‘micro’ scale of Testing The units are tested in isolation. Ensures the component is working according to the detailed design/build specifications of the module. Not to be confused with debugging. Also known as component, module, or program testing.

14

Page 15: Software development methodlogy

Integration Testing

Testing of more than one (tested) unit together to determine if they function correctly. It is done using the integration test design prepared during the architecture design phase. Helps assembling incrementally a whole system, ensuring the correct ‘flow’ of data from the first through the final component. Done by developers/designers and testers in collaboration Also called Interface Testing or Assembly Testing.

15

Page 16: Software development methodlogy

System testing

Testing the system as a whole - Black-box type testing that is based on overall requirements specifications; covers all combined parts of a system. Ensures that system meets all functional and business requirements. Focus

Verifying that specifications are met Validating that the system can be used for the

intended purpose The system test design is derived from the system design documents and is used in this phase. It can involve a number of specialized types of tests to check performance, stress, documentation etc. Sometimes testing is automated using testing tools. Done by Independent testing group

16

Page 17: Software development methodlogy

Acceptance testing

To determine whether a system satisfies its acceptance criteria and business requirements or not. Similar to System testing in that the whole system is checked, but the important difference is the change in focus. Done by real business users. It enables the customer to determine whether to accept the system or not. Also called as Beta Testing, Application Testing or End User Testing. Approach

Should be performed in real operating environment .

Customer should be able to perform any test based on their business processes.

Final Customer sign-off.

17

Page 18: Software development methodlogy

ADVANTAGES

• Fault multiplication can be reduced.

• Improved quality and reliability.

• Reduction in the amount of Re-work.

• Improved Risk Management

• Validation and Verification at each level of stage containment

• Developing critical knowledge and confidence in the initial stages.

18

Page 19: Software development methodlogy

Disadvantages•Lot of money and resources are required.

•Very rigid and less flexible.

•Suitable for long term / large projects.

•Ignorance of any of the test phases may lead to poor quality.

•No software prototype available.

• Any modifications, then the test documents along with requirement documents has to be updated.

19

Page 20: Software development methodlogy

Spiral Development ( or Lifecycle) Model

The Spiral Development ( or Lifecycle) Model is a systems development method used in information technology.

It combines the features of the prototyping model and the waterfall model.

It is favored for large, expensive, and complicated models.

Page 21: Software development methodlogy

Four Basic activities in every cycle

Consider the win conditions of all success-critical stakeholders.

Identify and evaluate alternative approaches for satisfying the win conditions.

Identify and resolve risks that stem from the selected approach(es).

Obtain approval from all success-critical stakeholders, plus commitment to pursue the next cycle.

Page 22: Software development methodlogy
Page 23: Software development methodlogy

Spiral quadrant : 1

Objectives: functionality, performance, hardware/software interface, critical success factors, etc.

Alternatives: build, reuse, buy, sub-contract, etc.

Constraints: cost, schedule, interface, etc.

Page 24: Software development methodlogy

Spiral quadrant : 2

Study alternatives relative to objectives and constraints

Identify risks (lack of experience, new technology, tight schedules, poor process, etc.

Resolve risks (evaluate if money could be lost by continuing system development

Page 25: Software development methodlogy

Spiral quadrant : 3

Typical activities:

◦ Create a design◦ Review design◦ Develop code◦ Inspect code◦ Test product

Page 26: Software development methodlogy

Spiral quadrant : 4

Typical activities:

◦ Develop project plan◦ Develop configuration management plan◦ Develop a test plan◦ Develop an installation plan

Page 27: Software development methodlogy

Advantages (strengths)

•Estimates of the budget and schedule become more realistic as work progresses because of the questions that have been raised

•Easier to cope with the changes inherent to software development

•Software engineers can start working on the project earlier rather than wading through a lengthy early design process.

Page 28: Software development methodlogy

Disadvantages (weaknesses)

•Time spent for evaluating risks too large for small or low-risk projects.

•Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive.

•The model is complex.

•Risk assessment expertise is required.

Page 29: Software development methodlogy

When to use spiral model

•Long-term project commitment unwise because of potential changes to economic priorities.

•Users are unsure of their needs.

•Requirements are complex.

•New product line .

•Significant changes are expected (research and exploration).

Page 30: Software development methodlogy

Prototyping model

• The prototyping model requires that before carrying out the development of the actual software , a working prototype of the system should be built.

•A prototype is a toy implementation of the system.

•A prototype usually turns out to be a very crude version of the actual system , possibly exhibiting limited functional capabilities , low reliability , and inefficient performance as compared to the actual software.

•In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed.

Page 31: Software development methodlogy

Design

ImplementTest

Maintain

Requirementsgathering

Quick design

Build prototype Refine requirements

incorporating Customer suggestion

Customer evaluationOf prototype

AcceptanceBy customer

Prototypedevelopment

Iterativedevelopment

Page 32: Software development methodlogy

Steps of Prototyping Model

1. Requirements Gathering and Analysis: A prototyping model begins with requirements analysis , and the requirements of the system are defined in detail. The user is interviewed in order to know the requirements of the system.

2. Quick Design: When requirements are know , a preliminary design or quick design for the system is created . It is not a detailed design , however , and includes the important aspects of the system, which gives an idea of the system to the user.

3. Build Prototype : Information gathering from quick design is modified to form a prototype . It represents a ’rough’ design of the required system.

Page 33: Software development methodlogy

4. Assessment or user evaluation: Next , the proposed system is presented to the user for consideration as part of the development process.

5. Prototype Refinement: Once the user evaluates the prototype, it is refined according to the requirements .When the user is satisfied with the developed prototype , a final system is developed based on the final prototype.

6. Engineer Product: The final system is thoroughly evaluated and tested followed by routine maintenance on a continuing basis to prevent large-scale failures and to minimize downtime .

Page 34: Software development methodlogy

Advantages of Prototyping Model

•Provides a working model to the user early in the process , enabling early assessment and increasing user confidence.

•The developer gains experience and insight by developing a prototype , thereby resulting in better implementation of requirements.

•Helps in reducing risks associated with the project.

•The prototyping model serves to clarify requirements , which are not clear , hence reducing ambiguity and improving communication between the developer and the user.

•There is a great involvement of users in software development . Hence , the requirement of the users are met to the greatest extent.

Page 35: Software development methodlogy

Disadvantages of Prototyping Model

•If the user is not satisfied with the developed prototype, then a new prototype is developed . This process goes on until a perfect prototype evolves . Thus , this model is time consuming and expensive.

•The developer loses focus of the real purpose of prototype and compromises on the quality of the product . For example , he may apply some of the inefficient algorithms or inappropriate programming languages used in developing the prototype .

•Prototyping can lead to false expectations. It often creates a situation where the user believes that the development of the system is finished when it is not.

•The primary goal of prototyping is rapid development. Thus , the design of the system may suffer as it is built in a series of layers without considering integration of all the other components.

Page 36: Software development methodlogy

Incremental Model Incremental model in software engineering is a one which combines the elements of waterfall model which are then applied in an iterative manner. It basically delivers a series of releases called increments which provide progressively more functionality for the client as each increment is delivered.

Page 37: Software development methodlogy

DIAGRAM OF INCREMENTAL MODEL

Page 38: Software development methodlogy

ADVANTAGES OF INCREMENTAL MODEL

•Initial product delivery is faster.

•Lower initial delivery cost.

•Core product is developed first i.e main functionality is added in the first increment.

•After each iteration, regression testing should be conducted. During this testing, faulty elements of

the software can be quickly identified because few changes are made within any single iteration

•It is generally easier to test and debug than other methods of software development because

relatively smaller changes are made during each iteration. This allows for more targeted and rigorous

testing of each element within the overall product.

•With each release a new feature is added to the product.

•Customer can respond to feature and review the product.

•Risk of changing requirement is reduced

•Work load is less.

Page 39: Software development methodlogy

DISADVANTAGES OF INCREMENTAL MODEL

Requires good analysis.

Resulting cost may exceed the cost of the organization.

Each phase of an iteration is rigid and do not overlap each other.

As additional functionality is added to the product, problems may arise related to system architecture which were not evident in earlier prototypes.

Page 40: Software development methodlogy

When to use•This model can be used when the requirements of the complete system are clearly defined and understood.

•Major requirements must be defined; however, some details can evolve with time.

•There is a need to get a product to the market early.

•A new technology is being used

•Resources with needed skill set are not available

•There are some high risk features and goals.

Page 41: Software development methodlogy

Thank you