1 SEG4910 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Review of Analysis and Iterative Development Timothy C. Lethbridge Derived from notes by Liam Peyton
2 Insufficient requirements Ambiguous communications Brittle architectures Overwhelming complexity Subjective assessment Undetected inconsistencies Poor testing Waterfall development Uncontrolled change Insufficient automation Develop iteratively Manage requirements Use component architectures Model the software visually Verify quality Control changes Root Causes Best Practices Best Practices Address Root Causes
3 Iterative Development Accelerates Risk Reduction Waterfall Iterative RISKRISK T I M E Iteration
4 Iterative Development Characteristics Critical risks are resolved before making large investments Initial iterations enable early user feedback Testing and integration are continuous Objective milestones provide short-term focus Progress is measured by assessing implementations Partial implementations can be deployed
5 SCRUM (Ken Schwaber) 2-4 week sprints (customer releasable), prioritized feature backlog See separate slide deck Extreme Programming (Ken Beck) 3 week iterations, tests and data created and agreed to by customer before coding begins Rational Unified Process (Phillipe Krutchen) fully tested executable every iteration use cases and architecture drive iterations Analysis & Iterative Development
6 Testing in an Iterative Environment Requirements Test Suite 1 Iteration 2 Iteration 3 Iteration 4 Test Suite 2 Test Suite 3 Test Suite 4 Iteration 1 Automated Tests
Testing in Umple Testing is automated using ant scripts, junit and other test scripts See ant file: e/trunk/build/_template.xml e/trunk/build/_template.xml Junit instructions are at the end Some tests: e/trunk/cruise.umple/test/cruise/umple/Umple ConsoleMainTest.java Some tests: e/trunk/cruise.umple/test/cruise/umple/Umple ConsoleMainTest.java Report: 7