100 likes | 208 Vues
Chapter 16, Methodologies: Putting it all together. Outline. A Mountaineering Example Project Context Goals, Environment, Methods, Tools, Methodology Methodology Issues Planning, Design Reuse, Modeling, Process, Control & Monitoring, Redefinition Methodology Spectrum
E N D
Outline • A Mountaineering Example • Project Context • Goals, Environment, Methods, Tools, Methodology • Methodology Issues • Planning, Design Reuse, Modeling, Process, Control & Monitoring, Redefinition • Methodology Spectrum • Royce’s Methodology based on the unified process • Extreme Programming • Methodological Heuristics
Key Decisions in an Expedition • A leader has to answer several key questions to create a successful expedition • What mountain should be climbed? • What process should be used? • What types of tools should be used? • Who should be member of the team? • Does the expedition need a leader? • Different answers to these questions lead to different styles
Key Decisions in an Software Project • Project goals • Schedule • Cost • Project organization • Software life cycle Model • Tools • Methods • Team members
If the Project Goal cannot be achieved A project goal is too ambitious or the original goal is simply wrong. Continuing is not an option. • Option 1: Ask for more resources or a revised schedule. • Not really an option, because there is no more money and the schedule is fixed. • Option 2: Admit the problem and turn the project into a “successful failure”: • Do a thorough analysis to understand what went wrong. • Focus on the failure to determine lessons learned. • Try to recycle the work that has been achieved so far for another project. • Option 3: Revise the project goal • Turn the current project status into the goal. • Sometimes the revised project goal is actually as good or better than the originally envisioned
Methodology Issues • Methodologies provide guidance, general principles and strategies for selecting methods and tools in a given project environment. • The key questions for which methodologies typically provide guidance include: • How much involvement of the customer? • How much planning? • How much reuse? • How much modeling? • How much process? • How much control and modeling? Roycevs.XP
Use Case Model System Model Object Model Dynamic Model class... class... class... Source Code Analysis, System Design Object Design - Carl enters the store - He buys a car toy. .... Scenario are Model Transformations Forward Engineering: Source code is generated from the system model (Ideal: „0 % manual coding“, Component-Based Software Engineering) Reverse Engineering: The system model is reconstructed from existing source code (legacy systems) Refactoring: The source code is transformed according to refactoring rules (program transformation) Textual scenarios generate external models
Stories class... class... class... Refactoring: The source code is transformed according to refactoring rules (program transformation) Source Code XP User Stories generate source code
Methodology Do’s and Do Not’s • Try to train the client. • Train the developers about the process • Try to find a dedicated lab for all the developers • Think carefully about how to maintain the infrastructure • Use version control as an integration tool • Make sure to have resources to deal with iteration overlaps • Make sure to allow informal communication
Methodological Heuristics • Be prepared to change the system • Functional requirements can change during a project when the client becomes more experienced • Technological change can occur any time • Be prepared to change the organization • Move from hierarchical organization to participatory management when project participants are becoming capable of making decisions • Be prepared to change the process • Move from activity-oriented to entity-oriented during a project when beginners become experienced developers • Shorten client decision time • Train the client • Build trust • Learn the right lessons and nothing more