Mid of Semester Presentation Team Dumbledore: Heng Chen Myung-Joo Ko Neel Mullick Paulo Merson
06/22/ Agenda Team Dumbledore Process Progress Report Risks Demo
06/22/ Team Dumbledore Team: Henry: Configuration & support; Integration Manager Neel: Architect, Requirements Manager, Development Manager Myung: Client Manager; QA Manager Paulo: Team lead; Process Manager All: Developers & Unit testers Contractors Alex: developer (MSIT practicum) Mentors Tony Ipek Clients (also architects/developers of ArchE core) Mark Klein Len Bass Felix Bachmann
06/22/ Agenda Team Dumbledore Process Progress Report Risks Demo
06/22/ Process (1) ACDM Functional rqmts/constraints Paper prototypes Discover quality attribs. Create utility tree1 Prioritized utility tree Initial project plan Create notional architecture2 Architecture views Updated project plan Review architecture Analyze scenarios3 Risks, tradeoffs Ready to design & code? Evaluate risks/tradeoffs Create experiment plan 4 Experiment plan Updated project plan Execute experiments Revisit architecture 5 Refined architecture Updated project plan Create design Write test code/ write code/ review code 6 Detailed design Test code Source code Deploy/integrate or iterate 7 Discuss UI functions w/ clients 3’ UI detailed stories Artifact Activity Decision Next step Produces Legend: Yes No
06/22/ Process (2) – Iterative model Experiments & Architecture
06/22/ Process (3) – Design Design artifacts UML class diagrams UML sequence diagrams Excel sheets for transformation definitions ArchE1 Reference design for initial classes Design review team walkthrough ArchE2&3 Create design for all work assignments Individual reviews
06/22/ Process (4) - Details Estimate Individual estimates for all phases Time and LOC Automated tests (JUnit) For all non-UI functionalities For UI Plug-in Reflection website Code Code conventions
06/22/ Process (5) – QA Code Review ArchE1: Important classes reviewed Individual reviews Team walkthrough of review findings Pre & post review submission into repository ArchE2&3: all classes to be reviewed System testing & bug tracking ArchE1: Team members log bugs on Bugzilla ArchE2&3: Clients use ArchE1 and give feedback and log bugs on Bugzilla System tester role created
06/22/ Agenda Team Dumbledore Process Progress Report Risks Demo
06/22/ Progress report (1) High level functional requirements CRUD scenarios CRUD functions CRUD responsibilities CRUD relationships Display model Export design Work allocations in WBS ArchE1: 67 (DONE – 6/22/04) ArchE2: 87 (Due on 7/12/04)
06/22/ Progress report (2) Estimate
06/22/ Progress – LOC
06/22/ Testing Automated tests (JUnit) JUnit tests of 26 non-UI classes JUnit plug-in tests of all UI views Performance tests Get data from Jess and refresh views Two architecture alternatives
06/22/ Alternative 1: Observer/ Observable
06/22/ Alternative 2: Refreshable UI
06/22/ Performance Tests OperationObserver/ObservableRefreshable UI Load 500 responsibilities and refresh 25+ min1219ms ± 31 Change one responsibility out of 500 and refresh 3295ms ± ms ± 15 Issue found: Jess uses too much memory Could not test w/ elements
06/22/ Code Review 18 classes (1578 LOC) reviewed for ArchE1 Findings: 47 defects 149 improvements Review rate: 351 LOC/hour Average defect/KLOC: 30 Review impact Total of 50 classes changed (5349 LOC) Refactoring of view classes into 7 base classes
06/22/ Agenda Team Dumbledore Process Progress Report Risks Demo
06/22/ Top Risks RankRiskStrategy 1No precedents for estimationEstimate and track for ArchE1 2Needed changes in ArchE Core not done on time may hinder testing Have multiple WAUs to avoid idle time waiting for ArchE core Communicate issues to client ASAP 3Inconsistencies between definition of facts in ArchE Core and ArchE UI data model Have regular workshops with Felix 4Performance of UI interaction with Core Conduct performance tests 5Learning curve of Eclipse plug-in development Have Eclipse PDE training session Stick to monkey see monkey do rule Enforce knowledge reuse in the development plan
06/22/ Agenda Team Dumbledore Process Progress Report Risks Demo
06/22/ Questions to Mentors Our estimates are still very high-level… We have different technical aspects: Writing an Eclipse view Writing a transaction to access Jess Create a UML sequence diagram Should all developers work a little with each one (maximizing learning) or not (maximizing productivity) How to avoid problems when integrating changes other people made to the code base?
06/22/ Backup Slides
06/22/ The ArchE System (1)
06/22/ Architecture C&C
06/22/ Architecture Module Uses
06/22/ Architecture Implementation Style (Eclipse Plug-ins)
06/22/ UML Class Diagram: Value Objects (‘vo’ Package)
06/22/ UML Sequence Diagram: Add Responsibility
06/22/ Experiments Status Henry—RMA model solver Client had a working version delivered to them Myung—export to Rational Rose Code base in place Design to be reviewed and implemented in ArchE2 Neel—interaction with Jess using Java Architecture, designed & implemented in ArchE1 Paulo – Eclipse plug-in development Experiment metamorphosed into code for ArchE1
06/22/ Progress: Source Files