• No results found

•It is the oldest paradigm for SE. When requirements are

N/A
N/A
Protected

Academic year: 2022

Share "•It is the oldest paradigm for SE. When requirements are"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

UNIT-I

Introduction to Software Engineering : The Evolving role of Software.

Software characteristics and applications, Evolution of Software Engineering, Software crisis. The Software Engineering challenges, The Software Engineering approach. Software development life cycle.

Software Development Process Models (Paradigms): Waterfall

Model. Prototyping, Iterative Development, Spiral Model. Software Project: Planning a Software Project. Effort Estimation: (COCOMO and Function Points Model), Project Scheduling, Staffing and Personnel Planning, Software Configuration Management Plan, Quality Assurance

(2)

The Waterfall Model

2

(3)

•It is the oldest paradigm for SE. When requirements are

well defined and reasonably stable, it leads to a linear fashion.

•The classic life cycle suggests a systematic, sequential

approach to software development.

Problems: 1. rarely linear, iteration needed. 2. hard to state

all requirements explicitly. 3.Blocking state. 4. code will

not be released until very late.

(4)

Waterfall model

Classical model of software engineering

Sequential development approach

Basic Principles

Project is divided into sequential phases, with some overlap and splash back acceptable between phases.

Stretched control is maintained over the life of the project via

extensive written documentation, formal reviews, and approval/signoff by the user and information technology management occurring at the end of most phases before beginning

the next phase. 4

(5)

When to use the waterfall model:

✓Requirements are very well known, clear and fixed.

✓Product definition is stable.

✓Technology is understood.

✓There are no ambiguous requirements

✓ Sufficient resources with required knowledge are available freely

✓The project is short.

(6)

The following list details the steps for using the waterfall model:

System requirements

Establishes the components for building the system

Include hardware requirements, software tools, and other necessary

components.

Software requirements

Requirements analysis includes determining interaction needed with

other applications and databases, performance requirements, user interface requirements, and so on.

Architectural design

Defines the major components and the interaction of those components, but it does not define the structure of each component. 6

(7)

Detailed design

Defines the specification of each component in detail Coding

Implements the detailed design specification Testing

Determines whether the software meets the specified requirements and finds any errors present in the code

Maintenance

Addresses problems and enhancement requests after the software releases

(8)

Waterfall Model - Advantages

Simple and easy to understand and use.

Easy to manage due to the rigidity of the model. ...

Phases are processed and completed one at a time.

Works well for smaller projects where requirements are very well understood.

Clearly defined stages.

Well understood milestones.

Easy to arrange tasks.

Reinforces good habits: define-before- design, design-before- code

8

(9)

Disadvantages

✓ Idealized, doesn’t match reality well.

✓ it does not allow much reflection or revision.

✓ Once an application is in the testing stage, it is very difficult to

go back and change something that was not well-documented or thought upon in the concept stage.

✓ Software is delivered late in project, delays discovery of serious errors.

✓ Difficult to integrate risk management.

✓ Difficult and expensive to make changes.

(10)

Incremental Process Models

 1. The Incremental Model

 2. The RAD Model

10

(11)

The Incremental Model

(12)

Basic Principles

✓ Iterative model, the project is divided into small parts.

✓ Allows the development team to make obvious results

earlier in the process and obtain valuable feedback from system users.

✓ Each iteration is actually a mini-Waterfall process with

the feedback from one phase providing critical information for the design of the next phase.

12

(13)

The Incremental model

Software releases in increments.

1

st

increment constitutes Core product.

Basic requirements are addressed.

Core product undergoes detailed evaluation by the customer.

As a result, plan is developed for the next increment,

Plan addresses the modification of core product to better meet the needs of customer.

Process is repeated until the complete product is produced.

(14)

When to use iterative model:

✓ 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.

14

(15)

Advantages

Generates working software quickly and early during the software life cycle.

More flexible

less costly to change scope and requirements

Easier to test and debug during a smaller iteration.

Easier to manage risk because risky pieces are identified and handled during its iteration.

Allows feedback to proceeding stages

Can be used where the requirements are not well understood

(16)

16

Disadvantages

✓ Needs good planning and design.

✓ Needs a clear and complete definition of the whole

system before it can be broken down and built incrementally.

✓ Total cost is higher than waterfall.

✓ Not easy to manage this model.

✓ No clear milestones in the development process.

(17)

THE RAD MODEL

(Rapid Application Development)

 An incremental software process model

 Having a short development cycle

 High-speed adoption of the waterfall model using a component based construction approach

 Creates a fully functional system within a very short

span time of 60 to 90 days

(18)

18

When to use RAD Methodology?

•When a system needs to be produced in a short span of time (2-3 months)

•When the requirements are known

•When the user will be involved all through the life cycle

•When technical risk is less

•When there is a necessity to create a system that can be modularized in 2-3 months of time

•When a budget is high enough to afford designers for

modeling along with the cost of automated tools for code

generation

(19)

The RAD Model

Communication

Planning

Construction

Component reuse automatic code

generation testing

Modeling

Business modeling Data modeling Process modeling

Construction

Component reuse automatic code

generation testing

Modeling

Business modeling Data modeling Process modeling

Construction

Component reuse automatic code

generation testing

Modeling

Business modeling Data modeling Process modeling

Team # 1 Team # 2

Team # n

Deployment

integration delivery feedback

(20)

THE RAD MODEL

Multiple software teams work in parallel on different functions

Modeling encompasses three major phases: Business modeling, Data modeling and process modeling

Construction uses reusable components, automatic code generation and testing

Problems in RAD

Requires a number of RAD teams

Requires commitment from both developer and customer for rapid- fire completion of activities

Requires modularity

Not suited when technical risks are high 20

(21)

Phases of RAD model Activities performed in RAD Model

Business Modeling: On basis of the flow of information and distribution between various business channels, the product is designed

Data Modeling: The information collected from

business modeling is refined into a set of data objects

that are significant for the business

(22)

22

Process Modeling: The data object that is declared in the data modeling phase is transformed to achieve the information flow necessary to implement a business function

Application Generation: Automated tools are used for the construction of the software, to convert process and data models into prototypes

Testing and Turnover: As prototypes are

individually tested during every iteration, the overall

testing time is reduced in RAD.

(23)

Advantages of RAD Model

✓ Flexible and adaptable to changes

✓ It is useful when you have to reduce the overall project risk

✓ Due to code generators and code reuse, there is a reduction of manual coding

✓ Due to prototyping in nature, there is a possibility of lesser defects

✓ Each phase in RAD delivers highest priority functionality to client

✓ With less people, productivity can be increased in short

(24)

24

Disadvantages

✓ It can't be used for smaller projects.

✓ Not all application is compatible with RAD.

✓ When technical risk is high, it is not suitable.

✓ If developers are not committed to delivering software on time, RAD projects can fail.

✓ Reduced features due to time boxing, where features are

pushed to a later version to finish a release in short period.

✓ Requires highly skilled designers or developers.

References

Related documents

The simulta- neous decrease of hydrogen sulphide ions at the beginning of the cook was a disadvantage, that can be handled if there are two white liquors available (section 7.7) or

 At various levels: logic level, switch level, circuit level.. 

 In other Nominal T-Model, the shunt admittance is placed in the middle and the series impedance is divided into two equal parts and these parts are placed on either side of

The three verification methods we consider are design walkthrough, critical design review, and consistency checkers.... ✓ A design walkthrough is a manual method

The global gap (in GtCO 2 e per year) between emission levels for staying below 2° C (with a “likely” (greater than 66 per cent) and a “medium” (50-66 per cent) chance) and

1. The white-collar crimes are committed by people who are financially secure and perform such illegal acts for satisfying their wants. These crimes are generally moved

humane standards of care for livestock, laboratory animals, performing animals, and

Based on the experimental observations that folding occurred both inside and outside the original tube radius, a simple analytical model which considers the