SE351a: Software Project & Process Management -...

43
6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa SE351a: Software Project & Process Management SE351a: Software Project & Process Management W12: Software Configuration Management

Transcript of SE351a: Software Project & Process Management -...

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

SE351a: Software Project & Process ManagementSE351a: Software Project & Process Management

W12: Software Configuration Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 2

SE351 RoadmapSE351 Roadmap

Introduction to Software Project Management

Project Management

Software Development Life Cycles

Requirements Engineering

Software Process & Project Metrics

Software Project Planning

Project Monitoring & Control

Risk Management

Software Quality Assurance

Software Configuration Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 3

CMM L2: Key Process AreasCMM L2: Key Process Areas

2.1 Requirements management

2.2 Software project planning & control

2.3 Software subcontract management

2.4 Software quality assurance

> 2.5 Software configuration management

Ad hoc

Project Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 4

The Software ConfigurationThe Software Configuration

programsprograms documentsdocuments

datadataThe artifactsThe artifacts

• Software configurationthe items that comprise all information producedas part of the software engineering process

Software configuration items (SCI) o artifacts produced during the process

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 5

Software Configuration ItemsSoftware Configuration Items

1. System specification

2. Software project plan

3. (i) software requirements specification(ii) prototype

4. Preliminary user manual

5. Design specification(i) Preliminary design(ii) Detail design

6. Source code listing

7. (i) Test plan and procedure(ii) Test cases and recorded results

8. Operation and installation manuals

9. Executable programs

10. As-built user manual

11. Maintenance documents(i) Software problem reports(ii) Maintenance requests(iii) Engineering change orders

12. Standards and proceduresfor software engineering

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 6

No matter where you are in the system lifecycle, the system will change, and

the desire to change it will persist throughout the lifecycle

No matterNo matter where you are in the system lifecycle, where you are in the system lifecycle, the system will the system will changechange, and , and

the desire to change it will persist the desire to change it will persist throughout throughout the the lifecyclelifecycle

Systems Engineering: The Systems Engineering: The ““First LawFirst Law””

BersoffBersoff, et al, 1980, et al, 1980

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 7

What are These Changes?What are These Changes?

changeschanges in in

changes in businessbusiness requirementsrequirements

changeschanges ininuser user requirementsrequirements

datadata

otherotherdocumentsdocuments

codecode

ProjectPlan

ProjectProjectPlanPlan

software modelssoftware modelssoftware models

TestTest

technical technical requirementsrequirements

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 8

System FamiliesSystem Families

• New “versions” of software systems are created as they changeOffering different functionality

Tailored for particular user requirements

For different machines/OS

• In a multi-person production of multi-version softwareWhat does this imply?

InitialSystem

HPVersion

SunVersion

PCVersion

NTVersion

LinuxVersion

DesktopVersion

ServerVersion

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 9

What can go What can go WrongWrong? ? Imagine yourself in any of the following situationsImagine yourself in any of the following situations……

• a developed and tested featuregoes “missing”

• a fully tested program suddenly doesn’t work

• two programmers are working simultaneously on a program; the second one to make changes destroys the work of the first

• a bug is fixed in code shared by several programmers; some of them aren’t notified

• a program is being developed in several concurrent versionsone in operation, one in test, one in development

a bug is fixed in one version but not the others

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 10

Software Configuration ManagementSoftware Configuration Management

• SCMa general quality management process applied to all phases of the software engineering process

or, a set of activities developed to manage change/evolution

o throughout the software lifecycle

aims to control the costs and effort involved in making changeschanges to a system

• software systems released to SCMare called baselines

o as they are a starting point for further development and evolving

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 11

SCM in the NutshellSCM in the Nutshell

Requirements/design/use

Establish/baseline

Validate baseline

Authorizechange

Initialdevelopment

Validatechange

Implementchange

Approvechange

Changes

Establish/update baseline

Baselines Project DB

Validate baseline

Baselines Project DB

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 12

SCM Main ActivitiesSCM Main Activities

• SCM PlanningPlanning

• SCM TasksTasksIdentification

change control

version control

auditing

reporting

construction

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 13

• SCM plan describes the standards and procedures to be followed Thousands of separate documents are generated for a large software system

• Starts during the early phases of the project

SCM PlanningSCM Planning

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 14

• Defines the types of documents to be managed

a document naming scheme

• Identifies who takes responsibility for the CM procedures

creation of baselines

• Defines policies forchange control

version management

• Describes the tools to be used in CM process

• Defines the CM database used to record configuration information

• Other information such as the CM of external software suppliers, process auditing, etc.

The SCM planThe SCM plan

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 15

• should allow queries about configurations to be answeredWho has a particular system version?

What platform is required for a particular version?

What versions are affected by a change to component-X?

How many reported faults in version-T?

• should preferably be linked to the software being managed

• might be in an integrated environment to support software developmentThe CM DB and the managed documents are all maintained on the same system

CASE tools may be integrated CM DB

o to provide close relationship between the CASE tools and the CM tools

usually, however, CM DB is maintained separately

as this is cheaper and more flexible

The CM DBThe CM DB

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 16

Typical SCM TasksTypical SCM Tasks

Software EngineeringSoftware Engineering

a TQM foundation

procedures

methods

tools

SCMSCM•• identificationidentification

•• version controlversion control•• change controlchange control

•• auditingauditing•• reportingreporting•• constructionconstruction

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 17

IdentificationIdentification

• Assure meaningful and consistent naming for all SCISCI type

o e.g., document, program, test case,...

SCI name

o e.g., Design Specification

Product ID

o Version number, Last release date

• Identification data can be maintained in an automated DBAutomated tools exist to aid in identification

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 18

Configuration HierarchyConfiguration Hierarchy

PCL-TOOLS

EDIT

STRUCTURES

BIND

FORM

COMPILE MAKE-GEN

HELP

DISPLAY QUERY

AST-INTERFACEFORM-SPECS FORM-IO

CODEOBJECTS TESTS

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 19

Typical SCM TasksTypical SCM Tasks

Software EngineeringSoftware Engineering

a TQM foundation

procedures

methods

tools

SCMSCM•• identificationidentification

•• version controlversion control•• change controlchange control

•• auditingauditing•• reportingreporting•• constructionconstruction

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 20

Change DesireChange Desire

Next Stage

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 21

Change ControlChange Control

Next Stage

STOPSTOP

ChangeChangeControlControl

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 22

• Software systems are subject to continual change requestsFrom users

From developers

From market forces

• Change management is concerned withmanaging changes

ensuring that they are implemented in the most cost-effective way

Change ManagementChange Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 23

Formal Change ControlFormal Change Control

Evaluation

Changerequest

generated

Need forchange

Change reportSubmitted to CCBCCB

CCBCCBdecision

Requesteris informed

ECOECO generated

Other SCMtasks

RejectReject ApproveApprove

MeritMeritSide effectsSide effects

CostCost

• CCB: a group of SW, HW engineers, client, users, support, marketing, …

takes a global view - assess impact of change beyond the SCI, including cost-effective from a strategic & organizational viewpoint. How will the change

o impact performance

o modify customers’ perception of the product

o affect product quality and reliability

• Engineering Change Order (ECO) generated for each approved change

Describes

o change to be made

o constraints

o criteria for review and audit

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 24

Change request formChange request form

Change Request Form Project: Proteus/PCL-Tools Number: 104/03 Change requester: J. Smith Date: 1/11/2003 Requested change: When a component is selected from the structure, display the name of the file where it is stored.

Change analyser: G. Dean Analysis date: 10/10/2003 Components affected: Display-Icon.Select, Display-Icon.Display Associated components: FileTable Change assessment: Relatively simple to implement as a file name table is available. Requires the design and implementation of a display field. No changes to associated components are required.

Change priority: Low Change implementation: Estimated effort: 0.5 days Date to CCB: 15/11/2003 CCB decision date: 30/11/2003 CCB decision: Accept change. Change to be implemented in Release 2.1. Change implementor: Date of change: Date submitted to QA: QA decision: Date submitted to CM: Comments

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 25

CheckCheck--inin--out Processout Process……

AccessControl

Check-in

ProjectDB

SCI(modified version)

Audit info

SCI(baseline version)

UnlockUpdate

Check-outSCI

(baseline version)

LockUpdateSCI

(extracted version)

OwnershipInfo

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 26

• A major problem in change management is tracking change statusChange tracking tools

o keep track the status of each change request

automatically ensure that change requests are sent to the right people at the right time

– integrated with e-mail systems allowing electronic change request distribution

Change management toolso Form editor to support processing the change request forms

o Workflow system

to define who does what, and

to automate information transfero Change database that manages change proposals and is linked to a version management

system

Change Tracking and Management ToolsChange Tracking and Management Tools

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 27

Typical SCM TasksTypical SCM Tasks

Software EngineeringSoftware Engineering

a TQM foundation

procedures

methods

tools

SCMSCM•• identificationidentification

•• version controlversion control•• change controlchange control

•• auditingauditing•• reportingreporting•• constructionconstruction

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 28

• VersionAn instance of a system which is functionally distinct in some way from other system instances

VariantAn instance of a system which is functionally identical but non-functionally distinct from other instances of a system

• ReleaseAn instance of a system which is distributed to users outside of the development team

Versions/Variants/ReleasesVersions/Variants/Releases

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 29

• Main activitiesInvent identification scheme for system versions

Plan when new system version is to be produced

Ensure that version management procedures and tools are properly applied

Plan and distribute new system releases

Version and Release ManagementVersion and Release Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 30

Version IdentificationVersion Identification

• Procedures for version identification should define an unambiguous way of identifying component versions

• Three basic techniques for component identification1. Version numbering

2. Attribute-based identification

3. Change-oriented identification

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 31

• Most commonly used

• Simple naming scheme uses a linear derivation e.g. V1, V1.1, V1.2, V2.1, V2.2 etc.

However, version derivation structureo a tree or a network rather than a sequence

• Requires information management to keep track of the differences between versions

Hierarchical naming scheme may be better

Version NumberingVersion Numbering

V1.0 V1.1

V1.1b V1.1.1

V1.1a

V1.2 V2.0 V2.1 V2.2

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 32

• In addition to the explicit attributes identifying a version Other attributes reflect the relationships between versions

o e.g., Date, Creator, Programming Language, Customer, Status etc.

e.g., AC3D (language, platform, date)

• More flexible than an explicit naming scheme for version retrievalHowever, can cause problems with uniqueness

Needs an associated name for easy reference

• An important advantage is that it can support querieso so that you can find ‘the most recent version in Java’ etc.

o e.g., AC3D (language =Java, platform = NT4, date = Nov. 2001)

• Becoming more commonly,Built on top of hidden version naming scheme

CM DB maintains the links between identifying attributes and versions

AttributeAttribute--based Identificationbased Identification

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 33

• Releases must incorporate changes, forced on the systemo by errors discovered by users

o by hardware changes

they must also incorporate new system functionality

• Not just a set of executable programs, may also includeo Configuration files

defining how the release is configured for a particular installation

o Data files

needed for system operation

o An installation program or shell script

to install the system on target hardware

o documentation

hardcopy or softcopy

o Packaging and associated publicity

Release ManagementRelease Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 34

Release Decision MakingRelease Decision Making

• Release planning is concerned with when to issue a system version as a release

• Preparing and distributing a system release is an expensive process

Factors such as o the technical quality of the system

o competition

o marketing requirements and

o customer change requests

should all influence the decision ofo when to issue a new system release

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 35

Release Decision MakingRelease Decision Making(Cont.)(Cont.)

FACTOR DESCRIPTION Technical quality of the system

If serious system defects are reported which affect the way in which many customers use the system, it may be necessary to issue a defect repair release. However, minor system defects may be repaired by issuing patches (often distributed over the Internet) that can be applied to the current release of the system.

Competition A new system release may be necessary because a competing product is available

Marketing requirements

The marketing department of an organization may have made a commitment for releases to be available at a particular date.

Customer change proposals

For customized systems, customers may have made and paid for a specific set of system change proposals and they expect a system release as soon as these have been implemented

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 36

Version Management ToolsVersion Management Tools

• Version and release identificationSystems assign identifiers automatically when a new version is submitted to the system

• Storage managementSystem stores the differences between versions rather than all the version code

• Change history recordingRecord reasons for version creation

• Independent development Only one version at a time may be checked out for change. Parallel working on different versions

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 37

Typical SCM TasksTypical SCM Tasks

Software EngineeringSoftware Engineering

a TQM foundation

procedures

methods

tools

SCMSCM•• identificationidentification

•• version controlversion control•• change controlchange control

•• auditingauditing•• reportingreporting

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 38

Configuration AuditConfiguration Audit

• Ensure that the change has been properly implemented

• Formal technical reviewfocuses on the technical correctness of the modified SCI

Complementary software configuration audit that addresses:o Has the change specified in the ECO been made?

o Has SCI ID been changed?

o Have SCM procedures been followed?

o Have related SCIs been updated?

SCIsSCIs

SCM AuditSCM Audit

ChangeChangeRequestsRequests

SQASQA

FormalFormalreviewreview

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 39

Configuration Status Reporting (CSR)Configuration Status Reporting (CSR)

• CSR, or Status Accountinganswers:

o What happened

o who did it

o when did it happen

o what else will be affected

• A CSR entry is made anytime an SCI is assigned a new or updated ID

each time a configuration audit is conducted

• CSR outputs can be put into an automated database

help improve communications on large projects

ChangeChangeRequestsRequests

Change Change ReportsReports ECOsECOs

Status AccountingStatus Accounting

ReportingReporting

SCIsSCIs

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 40

CM standardsCM standards

• CM should always be based on a set of standards which are applied within an organization

Standards may be based on external CM standardso e.g., IEEE 1028-1988 standard for CM

Existing standards are based on a waterfall process model

However, new standards are needed for spiral/evolutionary models

• Standards should define how items are identified

how changes are controlled

how new versions are managed

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 41

CASE Tools for CMCASE Tools for CM

• CM processes are standardized and involve applying pre-defined procedures

• Large amounts of data must be managed

• CASE tool support for CM is therefore essential

• Mature CASE tools to support configuration management are available ranging

from stand-alone tools to integrated CM workbenches

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 42

SE351 RoadmapSE351 Roadmap

Introduction to Software Project Management

Project Management

Software Development Life Cycles

Requirements Engineering

Software Process & Project Metrics

Software Project Planning

Project Monitoring & Control

Risk Management

Software Quality Assurance

Software Configuration Management

6 Dec., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa 43

I wish you the best in Your Exams!

The End!The End!