Software Engineering Methodologies PETRU MAIOR UNIVERSITY Dumitru Radoiu March 2012 Agenda Why do we need a SE "methodology"? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM.)
Software Engineering Methodologies PETRU MAIOR UNIVERSITY Dumitru Radoiu March 2012 Agenda Why do we need a SE "methodology"? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM.)
Software Engineering Methodologies PETRU MAIOR UNIVERSITY Dumitru Radoiu March 2012 Agenda Why do we need a SE "methodology"? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM.)
Dumitru Radoiu March 2012 Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
Project Management - PM time OO Analysis OO Design OO Implementation Software Engineering - SE Coding/Programming Coding/Programming Initiation Planning Execution Monitoring & Control Closing Looks familiar?
He: "I want the system to be fast." You: "Sure." He: "And easy to use." You: "Understandable." He: "All documents should be then located in one central repository, like our archive in the basement." You: "Agreed." He: "We require every employee to sign a card during check-in and check-out of the document. But we also must comply to the latest guidelines XYZ." You: "OK" (taking notes)
time Analysis Design Implementation Software Engineering SW E Development/Programming Development/Programming Initiation Planning Execution Monitoring & Control Closing Test Deployment Project Management - PM Software Development Life Cycle - SDLC Development/Programming Methodologies Microsoft Technologies: .NET, ASP.NET, C/C++, SQL 2005/2008, WPF, WCF, Silverlight, SharePoint 3.0, CRM 4.0, Navision and Axapta Other: Oracle, AJAX, Java PM Methodologies PMBOK Prince 2 SW Methodologies Waterfall V-Shaped SDLC Model Prototyping Agile Scrum (2-4 weeks sprints) RAD/DSDM RUP + virtual teams adapted variants Project Mangement, Software Engineering & Development Methodologies Starting Up a Project time Requirements Product Service or Result Closing Initiating a Project Business Case Directing a Project Deliverables Highlight Report Exception Plan presented Managing Product Delivery 1
Controlling Stage 3 Managing Stage 3-4 Boundarie s Stage 2 Stage 3 Deliverables Highlight Report Exception Plan approved Project Management Methodologies E.g. PRINCE2 Customer Quality Expectations time Heavy weight Light weight Software Engineering Methodologies Rational Unified Process SCRUM Agile Methodologies: DSDM, XP, SCRUM CMMi Sysgenic is CMMi level 3 certified Development/Programming Methodologies Computing organized around CODE Ada, Basic, Visual Basic, Pascal, Fortran, C Cobol, RDBMS Computing organized around DATA OO-Languages: C++, Java, C# Computing organized around COMPONENTS COM, DCOM, CORBA, EJB Computing organized around DOCUMENTS SGML, HTML, XML, XHTML Computing organized around OBJECTS Computing organized around MACHINES Assemble languages I n i t i a t i o n
P l a n n i n g
E x e c u t i o n
M o n i t o r i n g
&
C o n t r o l
C l o s i n g
Project Management Methodology - PMP Software Engineering Methodology - SCRUM Development Methodology COMPONENT ORIENTED PROGRAMMING 3D View Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
Analysis Design Implementation Project Waterfall Methodology Waterfall SDLC model is used when: Requirements are very well known Product definition is stable Technology is understood We are requested to develop a new version of an existing product We are requested to port an existing product to a new platform
Waterfall Methodology Fixed By contract scope time budget Estimated What are the risks? Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
The Spiral Process Model Analysis Design Implementation Analysis Must have functionality deadline Project The Spiral Process Model Analysis Design Implementation Analysis Design Implementation Nice to have features Project The Spiral Process Model Analysis Design Implementation Analysis Design Implementation Analysis Design Implementation Never used functionality Project Spiral SDLC Model when:
When creation of a prototype is appropriate For medium to high-risk projects Long-term project commitment unwise Users are unsure of their needs Requirements are complex New product line Significant changes are expected (R&D)
Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
The Iterative Process Model Analysis Design Implementation Component A Component B Component C Analysis Design Implementation Analysis Design Implementation Analysis Design Implementation Project A ready C ready B ready Waterfall SDLC model is used when: Requirements are very well known Product definition is stable Technology is understood We are requested to develop a new version of an existing product We are requested to port an existing product to a new platform
Software Engineering Methodologies V-Shaped* SDLC Model when:
Requested to develop high reliability systems All requirements are known up-front When requested also to handle changing requirements beyond analysis phase Solution and technology are known
*Waterfall + extra V&V; test every phase
Prototyping SDLC when: Requirements are unstable/not clearly known As a clarification of requirements in all SDLCs Almost always when developing a GUI We are requested a proof of concept
RAD SDLC when: 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
Incremental SDLC when: Need for early benefits as we go 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 The project has lengthy dev. schedules On a project with new technology
Software Engineering Methodologies Spiral SDLC Model when:
When creation of a prototype is appropriate For medium to high-risk projects Long-term project commitment unwise Users are unsure of their needs Requirements are complex New product line Significant changes are expected (R&D)
Agile SDLC when: We need to speed up or bypass one or more life cycle phases Less formalism and reduced scope is accepted Used for time-critical applications We used it only with very disciplined teams and customers mastering SW W methods
Xtreme Programming SDLC when: For small-to-medium-sized teams developing software with vague or rapidly changing requirements Coding is the key activity throughout a software project Communication among teammates is done with code Life cycle and behavior of complex objects defined in test cases again in code
Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
Inception Elaboration Construction Transition Major Milestones The RUP Model (Unified Process Model) A D I A D I A D I A D I A D I Identify the system to develop Design in detail the system Write the software Deliver to the users Model 20% Model 80% Develop 100% Delivery Documentation Training Fine tuning Inception - Define the scope of project (20% model) Elaboration - Plan project, specify features, baseline architecture (80% model) Construction - Build the product (100% development) Transition - Transition the product into end user community time Inception Elaboration Construction Transition Major Milestones RUP Model Phases Inception Elaboration Construction Transition Major Milestones Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Inception Elaboration Construction Transition Releases RUP Model Iterations An iteration = a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release (internal or external) Developing the product Time Content t1 t2 t3 p2 p3 p1 - Reduce risk - Better control - Client feedback - Final acceptance RUP Model: Iterative and Incremental Project Management Project Environment Business Modeling Implementation Test Design Preliminary Iteration(s) Iter. #1 SW Development Phases Process Workflows Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Change Management Business Req. Elaboration Transition Inception Construction time A workflow shows all the activities you might go through to produce a particular set of artifacts ONE Iteration ONLY Production 20% 80% Operation & Support SW development lifetime SW lifetime in production SW lifetime Portofolio Mngm. OperationSupport Ensures high quality and high availability of SW Opportunity for reuse, mng several projects simultaneously RUP Methodology Artifacts of the Inception Phase:
Vision document Stakeholder Needs document (10-20% complete) Initial project glossary A business case A domain model An initial business model Use-Case Storyboard Supplementary Specification document (describes what the system will do) User-Interface Prototype A credible plan for the entire project A credible initial tailoring of your sw development process A Plan for the Elaboration Phase Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM
The Agile Manifest Process and tools Individuals and interactions over Following a plan Responding to change over Source: www.agilemanifesto.org Comprehensive documentation Working software over Contract negotiation Customer collaboration over Agile Methodology Project Fixed time and budget Use case 1 Use case 2 Use case 3 Use case 4 Use case 5 Use case n Use case n+1 High priority Low priority Release backlog Fixed By contract scope time budget Estimated Agile AGILE MANIFESTO: 1. People and interactions OVER Processes & Tools 2. Working software OVER Comprehensive documentation 3. Customer collaboration OVER Contract negotiation Agile Methodology vs. Waterfall Fixed By contract scope time budget Estimated Waterfall Agile time budget scope Rather than doing all of one thing at a time... ...Scrum teams do a little of everything all the time Analysis Design Implementation SCRUM - The Opposite of Waterfall Product owner Scrum Master Team Roles Product backlog Sprint backlog Burn down charts Artifacts Sprint planning Sprint review Sprint retrospective Daily scrum meeting Ceremonies SCRUM Framework Sprint planning meeting Sprint prioritization Analyze and evaluate product backlog Select sprint goal Sprint planning Decide how to achieve sprint goal (design) Create sprint backlog (tasks) from product backlog items (user stories / features) Estimate sprint backlog in hours Sprint goal Sprint backlog Business conditions Team capacity Product backlog Techno- logy Current product Parameters Daily 15-minutes Stand-up Not for problem solving Whole world is invited Only team members, ScrumMaster, product owner, can talk Helps avoid other unnecessary meetings The daily SCRUM A sprint backlog Tasks Code the user interface Code the middle tier Test the middle tier Write online help Write the foo class Mon 8 16 8 12 8 Tues 4 12 16 8 Wed Thur 4 11 8 4 Fri 8 8 Add error logging 8 10 16 8 8 A sprint burndown chart H o u r s
H o u r s
40 30 20 10 0 Mon Tue Wed Thu Fri Tasks Code the user interface Code the middle tier Test the middle tier Write online help Mon 8 16 8 12 Tues Wed Thur Fri 4 12 16 7 11 8 10 16 8 50 Agenda Why do we need a SE Mehodology? Waterfall Methodology Spiral Methodology Iterative Methodology Rational Unified Process Agile Unified Processes (DSDM, XP, SCRUM...) CMM