You are on page 1of 31

Instructor:

Saima Naveed

5/3/2012

Software lifecycle consists of phases necessary to keep a product in existence i.e. inception, elaboration, construction and transition Software process consists of disciplines required to bring a project to completion i.e. requirements, analysis, design, implementation, testing

5/3/2012

Initial Development Cycle Several Evolutionary Cycles

5/3/2012

It provides the guideline for the efficient development and Evolution of the software. Describes who will do what, when and how.
It promotes a common vision and culture It captures and documents the best practices

5/3/2012

It is an abstraction of a process.
It presents the process from a particular perspective. Used to determine the order of the stages and to establish the transition criteria.
What do we do next? How long shall we continue doing it?

5/3/2012

Build and Fix Waterfall Prototyping RAD Iterative Development Spiral RUP (Rational Unified Process) Agile Methodologies

5/3/2012

5/3/2012

Advantage
Cost effective for small projects and of limited complexity.

Disadvantages
Rework is out of control Loss of client confidence High cost Future maintenance difficult/impossible

5/3/2012

5/3/2012

5/3/2012

10

Advantages
It is easy to understand Built-in documentation and quality assurance at each stage Standard procedure and techniques It is easy to track the progress of the project using a timeline Better control over development Feedback statistics for future projects

Disadvantages
Heavy demand on client/users in testing each stage Focus on documentation as the end product Reluctance of clients to commit to sign-off Reluctance of developer to alter signed off requirements Inability of clients/users to understand what is being proposed Big Bang

5/3/2012

11

5/3/2012

12

Advantages
Users/Clients see and feel the proposed product before it is fully implemented Users get an earlier sense of something happening Developers get a better feel for the design Developers work closer with users in design

Disadvantages
User expectation are for early product delivery Temptation for developers to simply beef-up the prototype. Prototype may encourage excessive user requests based on minor design issues

5/3/2012

13

5/3/2012

14

Advantages
Reduced cycle time due to the use of powerful development tools End user involvement throughout the life cycle Project Team is familiar with the problem domain thus can deliver full product in a short time period

Disadvantages
Bad effect on product If the users cannot be involved consistently Highly skilled and welltrained developers required It can require more people It requires a system that can be properly modularized It can fail if reusable components are not available Technical risks are high due to use of "bleeding" edge technology.
5/3/2012 15

5/3/2012

16

5/3/2012

17

Advantages Operational quality portion of product within weeks Users have earlier use of some components of the system Changes due to new system are easier to manage piece by piece Less staff required Smaller capital outlay, rapid return on investment Client can make progress payment Keeps all teams working

Disadvantages
The definition of a complete, fully functional system early in life cycle (to allow definition of increments) Each build delivery requires total integration testing System must be incremental in nature Maintenance on delivered units may affect integration of new units May turn into Build and Fix

5/3/2012

18

5/3/2012

19

Advantages
Realism: Accurately reflects the iterative nature of software development on projects with unclear requirements Flexible: incorporates the advantages of the waterfall and rapid prototyping methods Comprehensive model decreases risk Good project visibility.

Disadvantages
Needs technical expertise in risk analysis to really work Model is poorly understood by nontechnical management, hence not so widely used (needs competent management. High administrative overhead.

5/3/2012

20

Rational Unified Process by IBM Two Perspective


Management Technical

5/3/2012

21

5/3/2012

22

The software lifecycle is divided into cycles, each cycle working on new generation of the product One development cycle is divided in four consecutive phases
Inception Elaboration Construction Transition

5/3/2012

23

Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

5/3/2012

24

XP SCRUM Crystal Clear, Crystal Orange, Crystal Orange Web DSDM Feature Driven Development Lean Software Development

5/3/2012

25

5/3/2012

26

Advantages
Suitable for small groups Attempts to minimize unnecessary work Uses an on-site customer Small releases Pair programming Refactoring Stories as requirements You want good developers if you use this

Disadvantages
Difficult to scale up to large projects where documentation is essential Needs experience and skill if not to degenerate into codeand-fix Pair Programming is costly Test case construction is a difficult and a specialized skill.

5/3/2012

27

Developed by Pierre-N. Robillard, Philippe Kruchten, Patrick d'Astous. Unified Process for Education (UPEDU) is a software development process specialized for Education
It is customization of RUP

5/3/2012

28

It is iterative and an implementation of the spiral model

The process is divided in time into four phases;


Inception Elaboration Construction Transition phases

The completion of each phase is met by one or more milestones. For each phase, the set of artifacts (work products) and the work flow are defined by the process. The activities are categorized into disciplines, to clarify the required expertise and categorize the activities.
5/3/2012 29

The disciplines in UPEDU in comparison to RUP are more aimed towards educating the students on
How to Use a Process Model. How to adapt a process model. What will be the effect of using it.

It does not include


Business modeling discipline Deployment discipline Environment discipline

5/3/2012

30

THE END ANY QUESTIONS?


THANK YOU

5/3/2012

31

You might also like