SoftwareEngg Lecture 03new

58
Software Engineering BS (Computer Science) 1 Lecture-03(a) Date: 13-10-2012 Dr . S.N Ahsa n

Transcript of SoftwareEngg Lecture 03new

Page 1: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 1/58

Software EngineeringBS (Computer Science)

1

Lecture-03(a)Date: 13-10-2012

Dr. S.N Ahsan

Page 2: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 2/58

Phases of Software Life Cycle

Definition Phase - behavior of the system

Development Phase - How to obtain the desired

 behavior

Maintenance - change the behaviorCorrective - fix uncovered defect

Adaptive - Platform change

Enhancement - Perfective, additional functionality

Preventive - re-engineering, make system more

maintainable

31.03.2014 Dr. S. N Ahsan, IQRA-University 2

Page 3: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 3/58

Software Engineering

1. Software Construction

2. Software Management

08.10.2011 Dr. S. N Ahsan, IQRA-University 3

Page 4: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 4/58

Software Common Process Framework

08.10.2011 Dr. S. N Ahsan, IQRA-University 4

A common process framework is established by defining

a small number of framework activities that are applicable

to all software projects, regardless of their size or

complexity.

Page 5: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 5/58

A Generic Process Framework1. Communication

2. Planning

3. Modeling4. Construction

5. Deployment

08.10.2011 Dr. S. N Ahsan, IQRA-University 5

Page 6: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 6/58

Umbrella Activities

1. Software Project Tracking and Control

2. Risk Management

3. Software Quality Assurance4. Technical Reviews

5. Measurements

6. Software Configuration Management

7. Reusability Management

8. Work Product Preparation and Production

08.10.2011 Dr. S. N Ahsan, IQRA-University 6

Page 7: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 7/5808.10.2011

Process Flow

1. Linear Process Flow

2. Iterative Process Flow

3. Evolutionary Process Flow

4. Parallel Process Flow

7Dr. S. N Ahsan, IQRA-University

Page 8: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 8/5808.10.2011

Software Process Models Prescriptive Process Models

1. Waterfall model (Royce, 1970) V-Model: The V-model depicts the relationship of quality assurance

actions to the actions associated with the different step of waterfall

model

2. Incremental Process Models

3. Evolutionary Process Models

Prototyping

Spiral model (Boehm, 1988)

4. Concurrent Models

Specialized Process Models

1. Component Based Development2. The Formal Methods Model

3. Aspect Oriented Software Development

The Unified Process

8Dr. S. N Ahsan, IQRA-University

Page 9: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 9/58

PRESCRIPTIVE-MODEL

9

Page 10: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 10/58

Prescriptive Process Models

•Developed to bring order and structure to the

software development process. To get away from

the chaos of most development processes.•But there is a strange balance between order and

chaos. Absolute order means absence of

variability. Absolute chaos makes coordination

and coherence impossible. Thus, a balance isneeded.

08.10.2011 10Dr. S. N Ahsan, IQRA-University

Page 11: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 11/5808.10.2011

Waterfall Model

Requirements

Design

Implementation

Maintenance

Testing

11Dr. S. N Ahsan, IQRA-University

Page 12: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 12/58

Waterfall Strengths

Easy to understand, easy to use

Provides structure to inexperienced staff

Milestones are well understood

Sets requirements stability Good for management control (plan, staff, track)

Works well when quality is more important than

cost or schedule

08.10.2011 12Dr. S. N Ahsan, IQRA-University

Page 13: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 13/58

Waterfall Deficiencies

All requirements must be known upfront The following phase should not start until the

 previous phase has finished.

Deliverables created for each phase are

considered frozen –  inhibits flexibility Can give a false impression of progress

Does not reflect problem-solving nature ofsoftware development –  iterations of phases

Integration is one big bang at the end

Little opportunity for customer to preview thesystem (until it may be too late)

08.10.2011 13Dr. S. N Ahsan, IQRA-University

Page 14: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 14/58

When to use the Waterfall Model

Requirements are very well known Product definition is stable

Technology is understood

 New version of an existing product Porting an existing product to a new platform.

08.10.2011 14Dr. S. N Ahsan, IQRA-University

Page 15: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 15/58

08.10.2011

V-Shaped SDLC Model

 A variant of the

Waterfall that

emphasizes the

verification and

validation of theproduct.

Testing of the product

is planned in parallel

with a corresponding

phase of development

15Dr. S. N Ahsan, IQRA-University

Page 16: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 16/58

V-Shaped Strengths

Emphasize planning for verification andvalidation of the product in early stages of

 product development

Each deliverable must be testable Project management can track progress by

milestones

Easy to use

08.10.2011 16Dr. S. N Ahsan, IQRA-University

Page 17: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 17/58

V-Shaped Weaknesses

Does not easily handle concurrent events

Does not handle iterations or phases

Does not easily handle dynamic changes in

requirements Does not contain risk analysis activities

08.10.2011 17Dr. S. N Ahsan, IQRA-University

Page 18: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 18/58

When to use the V-Shaped Model

Excellent choice for systems requiring highreliability –  hospital patient control applications

All requirements are known up-front

When it can be modified to handle changingrequirements beyond analysis phase

Solution and technology are known

08.10.2011 18Dr. S. N Ahsan, IQRA-University

Page 19: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 19/58

Incremental Development Model 

08.10.2011 Dr. S. N Ahsan, IQRA-University 19

Page 20: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 20/58

Incremental Model Strengths

Develop high-risk or major functions first

Each release delivers an operational product

Customer can respond to each build

Uses “divide and conquer” breakdown of tasks  Lowers initial delivery cost

Initial product delivery is faster

Customers get important functionality early Risk of changing requirements is reduced

08.10.2011 20Dr. S. N Ahsan, IQRA-University

Page 21: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 21/58

Incremental Model Weaknesses

Requires good planning and design Requires early definition of a complete and fully

functional system to allow for the definition ofincrements

Well-defined module interfaces are required(some will be developed long before others)

Total cost of the complete system is not lower

08.10.2011 21Dr. S. N Ahsan, IQRA-University

Page 22: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 22/58

When to use the Incremental Model

Risk, funding, schedule, program complexity,or need for early realization of benefits.

Most of the requirements are known up-front

 but are expected to evolve over time A need to get basic functionality to the market

early

On projects which have lengthy development

schedules

On a project with new technology

08.10.2011 22Dr. S. N Ahsan, IQRA-University

Page 23: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 23/58

RAD Model

Rapid Application Development –  anincremental model that emphasizes a short

development cycle.

Uses component-based construction method.

Does not work for all projects… particularly

large projects or when project is high risk.

08.10.2011 23Dr. S. N Ahsan, IQRA-University

Page 24: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 24/58

RAD Strengths

Reduced cycle time and improved productivitywith fewer people means lower costs

Time-box approach mitigates cost and schedulerisk

Customer involved throughout the completecycle minimizes risk of not achieving customersatisfaction and business needs

Focus moves from documentation to code(WYSIWYG).

Uses modeling concepts to capture informationabout business, data, and processes.

08.10.2011 24Dr. S. N Ahsan, IQRA-University

Page 25: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 25/58

RAD Weaknesses

Accelerated development process must givequick responses to the user

Risk of never achieving closure

Hard to use with legacy systems

Requires a system that can be modularized

Developers and customers must be committed torapid-fire activities in an abbreviated time

frame.

08.10.2011 25Dr. S. N Ahsan, IQRA-University

Page 26: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 26/58

When to use RAD

Reasonably well-known requirements

User involved throughout the life cycle

Project can be time-boxed

Functionality delivered in increments High performance not required

Low technical risks

System can be modularized

08.10.2011 26Dr. S. N Ahsan, IQRA-University

Page 27: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 27/58

Evolutionary Process Models

Software evolves over time (web pages are a prime example)

Limited version is needed to meet business

 pressures. Time does not allow a full and complete system

to be developed.

Evolutionary models are iterative as software

engineers develop increasingly more completeand complex systems

08.10.2011 27Dr. S. N Ahsan, IQRA-University

Page 28: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 28/58

Prototyping (Evolutionary Model)

Prototypes are built when goals are general andnot specific.

Prototyping can be used as a standalone process

or by one of the processes presented.

The prototype serves as the first system. Users

get a feel for the actual system and devleopers

get something built quickly.

A prototype is intended for short term use buttoo often they are used much longer.

08.10.2011 28Dr. S. N Ahsan, IQRA-University

Page 29: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 29/58

08.10.2011

Prototyping (Evolutionary Model)

Requirements

Implementation

Design

Testing

Design

Implementation

Testing

Maintenance

29Dr. S. N Ahsan, IQRA-University

Page 30: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 30/58

Prototyping Strengths

Customers can “see” the system requirements asthey are being gathered

Developers learn from customers

A more accurate end product

Unexpected requirements accommodated

Allows for flexible design and development

Steady, visible signs of progress produced

Interaction with the prototype stimulatesawareness of additional needed functionality 

08.10.2011 30Dr. S. N Ahsan, IQRA-University

Page 31: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 31/58

Prototyping Weaknesses

Tendency to abandon structured programdevelopment for “code-and-fix”

development

Bad reputation for “quick-and-dirty”methods

Overall maintainability may be overlooked

The customer may want the prototype

delivered.

Process may continue forever (scope

creep)

08.10.2011 31Dr. S. N Ahsan, IQRA-University

Page 32: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 32/58

When to use Prototyping

Requirements are unstable or have to beclarified

As the requirements clarification stage of a

waterfall model

Develop user interfaces

Short-lived demonstrations

 New, original development

With the analysis and design portions of object-

oriented development.

08.10.2011 32Dr. S. N Ahsan, IQRA-University

Page 33: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 33/58

The Spiral Model

An evolutionary model that couples the iterativenature of prototyping with the controlled,

systematic aspects of waterfall model.

Spiral model is often developed in a series of

releases or versions. Is Adobe or Microsoft

working on new releases?

Better for large projects.

08.10.2011 33Dr. S. N Ahsan, IQRA-University

Page 34: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 34/58

Spiral Model (Evolutionary Model)

08.10.2011 Dr. S. N Ahsan, IQRA-University 34

Page 35: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 35/58

08.10.2011

Risk analysis

Risk analysis

Risk analysis

Risk analysis Proto-

type 1

Prototype 2

Prototype 3Opera-

tional protoype

Concept of Operation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign   Detailed

design

Code

Unit test

IntegrationtestAcceptance

testService   Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Development plan

Requirements planLife-cycle plan

REVIEW

Spiral Model (Evolutionary Model)

35Dr. S. N Ahsan, IQRA-University

Page 36: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 36/58

Spiral Model Strengths

Provides early indication of insurmountablerisks, without much cost

Users see the system early because of rapid

 prototyping tools

Critical high-risk functions are developed first

The design does not have to be perfect

Users can be closely tied to all lifecycle steps

Early and frequent feedback from users

Cumulative costs assessed frequently

08.10.2011 36Dr. S. N Ahsan, IQRA-University

Page 37: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 37/58

Spiral Model Weaknesses

Time spent for evaluating risks too large for

small or low-risk projects

Time spent planning, resetting objectives, doingrisk analysis and prototyping may be excessive

The model is complex

Risk assessment expertise is required

Spiral may continue indefinitely

Developers must be reassigned during non-

development phase activities May be hard to define objective, verifiable

milestones that indicate readiness to proceedthrough the next iteration

08.10.2011 37Dr. S. N Ahsan, IQRA-University

Page 38: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 38/58

When to use Spiral Model

When creation of a prototype is appropriate When costs and risk evaluation is important

For medium to high-risk projects

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 andexploration)

08.10.2011 38Dr. S. N Ahsan, IQRA-University

Page 39: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 39/58

Dr. S. N Ahsan, IQRA-University  39

Evolutionary Models: Concurrent

Under rev iew

Baselined

Done

Under 

revision

 Await ing

changes

Under 

development

none

Modeling act ivit y

represents the state

of a software engineering

activity or task

08.10.2011

Page 40: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 40/58

40

Evolutionary Models: Concurrent The former image depicted only the modeling activity

Indeed, concurrent engineering is a set of frameworkactivities such as Communication, Modeling, etc.

Each of these activities is in one of its states… 

A state is some externally observable mode of behaviour

PROBLEMS:

Prototyping (and other evolutionary processes) pose

 problems to project planning (too much uncertainty)

Evolutionary speed may not be optimal: too slow affects

 productivity, too fast leads to chaos

Sometimes software processes should focus on flexibility

and extensibility, rather than on quality - delivery delays

may make us miss the market niche and window of

opportunity 08.10.2011 Dr. S. N Ahsan, IQRA-University

Page 41: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 41/58

SPECIALIZED PROCESS MODELS

41

Page 42: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 42/58

Component Based Development

COTS or Commercial Off-The-Shelfcomponents are becoming more available.

Most (not all) COTS components have targeted

functionality with good interfaces that enable

the component to be integrated.

This approach incorporates many of the aspects

of the spiral model.

08.10.2011 42Dr. S. N Ahsan, IQRA-University

Page 43: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 43/58

Formal Methods Development Model

Formal mathematical specification of thesoftware.

Specify, develop and verify by rigourous math

notation.

Eliminates ambiguity, incompleteness, and

inconsistency.

Used more where safety-critical software is

developed, e.g., aircraft avionics, medicaldevices, etc.

08.10.2011 43Dr. S. N Ahsan, IQRA-University

Page 44: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 44/58

Aspect-Oriented SW Development

 Nearly all SW has localized features, functionsand information content.

User or customer concerns or needs must be

included. These can be high-level concerns like

security or lower-level such as marketing

 business rules or systemic such as memory

management.

08.10.2011 44Dr. S. N Ahsan, IQRA-University

Page 45: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 45/58

Crosscutting Concerns

AOP addresses behaviors that span many, often

unrelated, modules. Core Concerns:

◦ Primary core functionality.

◦ Central functionality of a module.

Crosscutting Concerns:◦ System wide concerns that span multiple

modules.

◦ Cuts across the typical division of

responsibility. OOP creates a coupling between core and

crosscutting concerns.

AOP aims to modularize crosscutting concerns.

08.10.2011 45Dr. S. N Ahsan, IQRA-University

Page 46: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 46/58

Aspects

In AOP crosscutting concerns are implemented in

aspects instead of fusing them into core modules.

Aspects are an additional unit of modularity.

Aspects can be reused.

By reducing code tangling it makes it easier tounderstand what the core functionality of a

module is.

An “aspect weaver” takes the aspects and the core

modules and composes the final system.

08.10.2011 46Dr. S. N Ahsan, IQRA-University

Page 47: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 47/58

THE UNIFIED PROCESS MODELS

47

Page 48: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 48/58

Dr. S. N Ahsan, IQRA-University 48

Unified Process Models

A “use-case driven, architecture-centric, iterativeand incremental” software process closely

aligned with the Unified Modeling Language

(UML)

08.10.2011

UP Phases

Page 49: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 49/58

Dr. S. N Ahsan, IQRA-University 49

UP Phases

Inception   Elaborat ion Construct ion Transit ion Product ion

UP Phases

Workflows

Requirements

 Analysis

Design

Implementation

Test

Iterations   #1 #2 #n-1 #n

Support

08.10.2011

Page 50: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 50/58

50

‘rules of thumb’ about approach to be

used

IF uncertainty is high

THEN use evolutionary approach

IF complexity is high but uncertainty is not

THEN use incremental approach

IF uncertainty and complexity both low

THEN use one-shot

IF schedule is tightTHEN use evolutionary or incremental

Page 51: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 51/58

The Unified Process

Benefits of iterative development include:

1. Early mitigation of high risks

2. Early visible progress.

3. Early feedback, user engagement, and adaptation,

leading to a system that more nearly meets the needsof the various stakeholders.

4. Managed complexity –  no compounding of

complexity by postponing the implementation phase.

5. Learning within an iteration.

Page 52: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 52/58

Timeboxing

Iterations are “timeboxed” or fixed in length. 

Iteration lengths of between two to six weeks are

recommended.

Each iteration period has its own development plan.

Management of a UP project:

Page 53: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 53/58

The Unified Process

Inc. Elaboration Construction Trans.

phase phase

iteration

Final releaseRelease

The end of each

iteration is a minor

release

Page 54: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 54/58

54

Agile Development

Agile Software Engineering combines a

 philosophy and a set of development guidelines. The philosophy encourages customer satisfaction

and early incremental delivery of software,

Small highly motivated project teams

Informal method

Minimal Software Engineering work products

Development simplicity

Page 55: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 55/58

Agile Software Development

Speed up or bypass one or more life cycle phases Usually less formal and reduced scope

Used for time-critical applications

Used in organizations that employ disciplinedmethods

What is Agility?

◦ Quick and effective response to change

31.03.2014 55Dr. S. Nadeem Ahsan, IQRA-University

Page 56: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 56/58

31.03.2014 Dr. S. Nadeem Ahsan, IQRA-University 56

Agility and the Cost of Change

E t P i

Page 57: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 57/58

57

Extreme Programming

Developers work in pairs

Coding is the key activity throughout a software project

Test cases and expected results devised before

software design

After testing of increment, test cases added to aconsolidated set of test cases

Developers work in pairs

Test cases and expected results devised before

software design After testing of increment, test cases added to a

consolidated set of test cases

Page 58: SoftwareEngg Lecture 03new

8/12/2019 SoftwareEngg Lecture 03new

http://slidepdf.com/reader/full/softwareengg-lecture-03new 58/58

XP Practices (1-12)

1. Planning game

2. Small releases

3. Metaphor

4. Simple design

5. Testing

6. Refactoring7. Pair-programming

8. Collective ownership

9. Continuous integration

10. 40-hour week11. On-site customer

12. Coding standards