Professional Documents
Culture Documents
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
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
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
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.
5/3/2012
30
5/3/2012
31