Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 325: Software Engineering

Similar presentations


Presentation on theme: "CS 325: Software Engineering"— Presentation transcript:

1 CS 325: Software Engineering
Lesson Twenty-Two Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration Management

2 Task Scheduling A general approach to scheduling the tasks for a software project: Schedule up-front tasks (installation, training) Determine dependencies between analysis, design, implementation, and testing Schedule forwards (plan the natural sequence of development) and backwards (work from goals back to how to achieve them) Assign tasks to team members, weighing both skills & motivations and risks & rewards Formulate backup plans based upon perceived risks and their anticipated impact CS 325 Lesson Twenty-Two Software Configuration Management Page 221

3 Task Prioritization As the project exits the planning stage and enters the implementation stage, tasks must be prioritized Traditional Pareto Prioritization Prioritize the project tasks with the notion that priorities shall remain basically unchanged Agile prioritization Revisit prioritization often, modifying as necessary CS 325 Lesson Twenty-Two Software Configuration Management Page 222

4 Task Prioritization Recognize that some project tasks are required, while others are discretionary. In a video game, GUI design would be considered essential, while completely accurate computation (e.g., collision detection) might be considered discretionary. In an industrial CAD/CAM system, however, accurate collision detection would be required, while an optimally designed GUI might be considered discretionary. CS 325 Lesson Twenty-Two Software Configuration Management Page 223

5 Reporting Project Progress: Milestone Charts
Milestone charts are an effective way to present progress to team members and stakeholders at monthly meetings. Key Project Milestones milestone original date revised date actual date This Month’s Milestones (Accomplished) milestone original date revised date actual date This Month’s Milestones (Not Accomplished) milestone original date revised date actual date CS 325 Lesson Twenty-Two Software Configuration Management Page 224

6 Total Task Time Estimate
Reporting Project Progress: Project Scoreboard This detailed documentation is an effective way to dynamically organize information about progress during a team meeting. Project Role Tasks Under Way Completed Tasks Total Task Time Estimate Measurements Dependencies Commitments Risks Comments It frequently reveals potential problems and their solutions, as well as providing focus and perspective to the team members. CS 325 Lesson Twenty-Two Software Configuration Management Page 225

7 Configuration Management
With multiple developers on a software project, formal revision control becomes essential. Subversion is a commercial revision control system that tracks integrated “trunk” systems, currently developing “branch” systems”, and milestone snapshots known as “tag” systems. CS 325 Lesson Twenty-Two Software Configuration Management Page 226

8 Distributed Repository
Most version control systems (like Subversion) store information as a set of files and the changes made to each file over time. Distributed version control systems, like Git, think of data more like a set of snapshots of a miniature filesystem. Every time the state of your project is saved, Git takes a picture of what all files look like at that moment and stores a reference to that snapshot. To be efficient, if files have not changed, Git doesn’t store the file again, just a link to the previous identical file it has already stored. CS 325 Lesson Twenty-Two Software Configuration Management Page 227

9 Check-Out/Check-In Focusing on version support for individual files, this type of configuration management system consists of two relatively independent tools. The repository tool stores versions of files and provides mechanisms for controlling the creation of new versions. The build tool automates the generation of derived files (e.g., object code, linked executables). CS 325 Lesson Twenty-Two Software Configuration Management Page 228

10 Composition Developers repeatedly compose a system from its components and by selecting the desired version for each component. By retaining multiple versions of individual software components, this configuration management model facilitates trying new approaches and reverting to old ones when necessary. CS 325 Lesson Twenty-Two Software Configuration Management Page 229

11 Change Set Another approach to configuration management is to keep track of the set of changes that have been made from configuration to configuration. By focusing on the change sets instead of the overall components, developers are often better able to determine logical dependencies within the system, as well as to ensure the system’s stability. CS 325 Lesson Twenty-Two Software Configuration Management Page 230


Download ppt "CS 325: Software Engineering"

Similar presentations


Ads by Google