CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling &...

10
CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration Management

Transcript of CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling &...

Page 1: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325: Software Engineering

April 7, 2015

Software Configuration Management• Task Scheduling & Prioritization• Reporting Project Progress• Configuration Management

Page 2: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 2

Task SchedulingA general approach to scheduling the tasks for a software project:

1.Schedule up-front tasks (installation, training)

2.Determine dependencies between analysis, design, implementation, and testing

3.Schedule forwards (plan the natural sequence of development) and backwards (work from goals back to how to achieve them)

4.Assign tasks to team members, weighing both skills & motivations and risks & rewards

5.Formulate backup plans based upon perceived risks and their anticipated impact

Page 3: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 3

Task Prioritization

Task A Task B Task C Task D0

10

20

30

40

50

60

70

As the project exits the planning stage and enters the implementation stage, tasks must be prioritized

Traditional Pareto PrioritizationPrioritize the project tasks with the notion that priorities shall remain basically unchanged

Agile prioritizationRevisit

prioritization often, modifying as

necessary

Page 4: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 4

Task PrioritizationRecognize 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.

Page 5: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 5

Reporting Project Progress:Milestone ChartsMilestone charts are an effective way to present progress to team members and stakeholders at monthly meetings.Key ProjectMilestones

milestoneoriginal date

revised date

actual date

This Month’sMilestones(Accomplished)

This Month’sMilestones(Not Accomplished)

milestoneoriginal date

revised date

actual date

milestoneoriginal date

revised date

actual date

Page 6: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 6

Reporting Project Progress:Project ScoreboardThis 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.

Page 7: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 7

Configuration ManagementWith 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.

Page 8: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 8

Check-Out/Check-InFocusing 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).

Page 9: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 9

CompositionDevelopers 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.

Page 10: CS 325: Software Engineering April 7, 2015 Software Configuration Management Task Scheduling & Prioritization Reporting Project Progress Configuration.

CS 325April 7, 2015Page 10

Change SetAnother 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.