Software Processes & Project Management
Configuration Management Copyright University of Melbourne 2018-2022
School of Computing and Information Systems
Copyright By PowCoder代写 加微信 powcoder
The University of Melbourne 2022 – Semester 1 Week 10
Learning Outcomes
1. Understand the role of configuration management
2. Understand the configuration management process
3. Understand the tasks associated with configuration management
SWEN90016 Software Processes and Project Management -2- Quality Management
Configuration Management
1. Understand the role of configuration management
In 2020 Coles supermarket did an upgrade to their point of sale (POS) system.
• It did not go as planned.
• A technical issue meant that payments could not be made for 4 hours.
• https://www.itnews.com.au/news/coles-shuts-supermarkets-due-to-payment- system-outage-554503
• https://www.abc.net.au/news/2020-10-09/coles-experience-nationwide-closure- over-it-outage/12749358
SWEN90016 Software Processes and Project Management -3- Quality Management
What is a Software Configuration?
• Software projects generate a large number of different types of artefacts – e.g.:
Use-case diagrams
Test Cases
Class diagrams
Software Requirements Specification
Software Architecture Document
Software Design Document
Software Test Plan
Source Code
SWEN90016 Software Processes and Project Management -4- Quality Management
What is a Software Configuration?
• There are dependencies between all of these artefacts.
– For example, a code module may depend on a design element such as a class diagram or state chart, as well as on a design element such as a design class diagram.
• In turn these may depend on a combination of textual requirements, use-cases and analysis classes.
Software Requirements Specification
Software Architecture Document
Software Design Document
Software Test Plan
• Software Configuration:
– total of all the artefacts;
– their current state; and
– the dependencies between them.
SWEN90016 Software Processes and Project Management -5- Quality Management
Role of Configuration Management
The problem is change!
• If we make a change to an artefact, it may impact all of that artefact’s dependencies
• If we are not careful then changes to artefacts may leave the configuration in an inconsistent state
– For example, a change to the requirement will have an impact on the system design and all of the code modules that depend on the design.
• Also,thetestplan,testcasesandtestingscriptsforthecodewillalsobe impacted.
• Thedangeristhatwemaychangeonemodulewithoutchangingoneofits dependent modules leaving the configuration inconsistent.
SWEN90016 Software Processes and Project Management -6- Quality Management
Role of Configuration Management
• The aim of configuration management is to manage change properly without losing overall consistency through:
– establishing processes;
– setting up repositories; and
– using other appropriate tools and techniques
• Configuration Management (CM) addresses the following:
– How do we manage requests for change?
– What and where are the software components?
– What is the status of each software component?
– How does a change to one component affect others? – How do we resolve conflicting changes?
– How do we maintain multiple versions?
– How do we keep the system up to date?
SWEN90016 Software Processes and Project Management -7- Quality Management
Learning Outcomes
1. Understand the role of configuration management
2. Understand the configuration management process
3. Understand the tasks associated with configuration management
SWEN90016 Software Processes and Project Management -8- Quality Management
CM Processes
1. To identify all items that collectively will make up the configuration
2. To manage changes to one or more of these items so that the collection remains consistent
3. To manage different versions of the product
4. To assure software quality as the configuration evolves over time
SWEN90016 Software Processes and Project Management -9- Quality Management
Reporting Configuration Auditing
Change Control
Version Control
Identification
Software Configuration Items (SCIs)
e.g. use case diagram, source code, test case
• Identification
– the configuration items necessary for the project are identified
• Version control
– processes and tools are chosen to manage the different versions of configuration items as they are developed
• Change control
– changes that affect more than just one configuration item are managed
• Configuration auditing
– the consistency of the configuration is checked
• Configuration reporting
– the status of configuration items is reported
SWEN90016 Software Processes and Project Management -10- Quality Management
Learning Outcomes
1. Understand the role of configuration management
2. Understand the configuration management process
3. Understand the tasks associated with configuration management
SWEN90016 Software Processes and Project Management -11- Quality Management
Identification
The set of artefacts that require configuration management are called the configuration items
Configuration Items:
– Aggregate – Derived
SWEN90016 Software Processes and Project Management -12- Quality Management
Identification
• A typical list of configuration items
– requirementsspecifications,requirementsmodels,sectionsofthe requirements specification, and individual requirements
– use-cases, user stories
– design models, design documents, design elements, and class designs
– source code modules
– object code modules
– release modules
– softwaretools
– test drivers and stubs, and test scripts
– documents or sections of documents associated with the project
SWEN90016 Software Processes and Project Management -13- Quality Management
Version Control
• Requirements for a version control system:
A repository for storing configuration items
A version management function that allow software engineers to create and track versions, and roll the system back to previous versions if necessary
• e.g. git, svn, cvs
A make-like facility that allows engineers to collect all of the configuration objects for a particular target together and to build that target
• e.g. Apache Maven, Apache Ant, make (unix, linux)
SWEN90016 Software Processes and Project Management -14- Quality Management
Version Control
SCM information is maintained in a repository or configuration database
An instance of a model, document, code, or other configuration item which is functionally distinct in some way from other system instances.
Same as a Version, with non-functional changes. An instance of a system which is functionally identical but non-functionally distinct from other instances of a system. Release:
An instance of a system which is distributed to users outside of the development team.
SWEN90016 Software Processes and Project Management -15- Quality Management
Version Control
• Derivation History:
– This is a record of changes applied to a configuration object
• Each change should record:
– the change made
– the rationale for the change
– who made the change
– when it was implemented
• A common method of tracking versions in a repository is through version numbering
– Version (or build) numbers could have meanings
• e.g. a reviewed version of a document (major versions) vs un-reviewed changes
• e.g. Whole numbers may be major changes (1.0, 2,0). Decimal point may mean minor changes (2.1, 2.2).
• e.g. Ubuntu 20.04, 20.10, 21.04
• e.g. Mac OS X Panther – 10.3, Mac OS X Tiger – 10.4, Mac OS X Leopard – 10.5
SWEN90016 Software Processes and Project Management -16- Quality Management
Version Control
A derivation structure for a project using version numbering to mark branches and merges
SWEN90016 Software Processes and Project Management -17- Quality Management
• Version control
– processes and tools are chosen to manage the different versions
of configuration items as they are developed
o Aprojectdatabasethatstoresallrelevantconfigurationobjects,
o Aversionmanagementcapabilitythatstoresallversionofconfigurationobject,
o Amakefacilitythatenablesthesoftwareengineertocollectallrelevantconfigurationobjects, o Constructaspecificversionofthesoftware.
• Change control
– changes that affect more than just one configuration item are managed
o Change control is manual step in software lifecycle. It combines human procedures and automated tools.
o Change request submitted and evaluated to assess technical merit, potential side effects, overall impact on other configuration object and system function, and project cost of change.
SWEN90016 Software Processes and Project Management -18- Quality Management
Change Control
• Change Management Plan
– A part of an overall configuration management plan to
specifically control these changes to the configuration.
– Changes must be made in a way that allows everyone on the project team to find out:
• exactly what changes need to be made
• what they need to do to affect the change • why the change is being made
• how it will impact them
More importantly, in distributed control structures, some changes may need to be carefully negotiated so that everyone understands the need for the change and supports it.
SWEN90016 Software Processes and Project Management -19- Quality Management
Change Control
Initiate the Change Evaluate the Change Make the Change
Impact on the Process
Initiate the Change
• Why is the change being made?
• What information will be needed to evaluate the change? • How will the change be evaluated?
Evaluate the Change
• How will the change affect the configuration?
• Which artefacts need to change and what are their dependencies? • What are the benefits of the change?
• What are the costs of the change?
• Do the benefits of the change outweigh the costs of the change?
• Who will be impacted by the change?
Making the Change
• Who will put the change into effect?
• How will the change be managed?
• How will other people working on the project understand the change?
• How will they be notified of the change?
• How will people working on the project know when the change is completed?
SWEN90016 Software Processes and Project Management -20- Quality Management
Change Control
• Baseline
– A baseline is an artefact that is stable
– It has been formally reviewed and agreed upon, that is now ready for future development
– It can only be changed through a formal change management procedure
SWEN90016 Software Processes and Project Management -21- Quality Management
Configuration Auditing
• Configuration audits:
– complement the other configuration management activities by assuring that what is in the repository is actually consistent and that all of the changes have been made properly
Have the changes requested and approved been made?
Have any additional changes other than required by a request been made?
Did the configuration objects that were changed pass their quality assurance tests?
Do the objects in the configuration meet the required external standards?
Do the attributes of the configuration item match the change?
Does every configuration item have appropriate change logs?
Typical questions for a configuration audit
SWEN90016 Software Processes and Project Management -22- Quality Management
Status Reporting
• Status Reporting
– Is a common way for large projects to keep track of the status of
the repository
– The idea is to review the configuration objects for consistency with other configuration objects, to find any omissions or to look for potential side effects
– Status reporting can take many forms, but most commonly the aim is to report on the status of the configuration items of interest and the baselines that have been achieved
• For example, we may have a design element that is in one of the states: not-initiated, initial-work, modified, approved, baselined – the status report can compare the state with what is in the project schedule
SWEN90016 Software Processes and Project Management -23- Quality Management
Learning Outcomes
1. Understand the role of configuration management
2. Understand the configuration management process
3. Understand the tasks associated with configuration management
SWEN90016 Software Processes and Project Management -24- Quality Management
References
1. R.S.Pressman.SoftwareEngineering:APractitioner’s Approach. McGraw Hill, seventh edition, 2009.
2. I Somerville. Software Engineering, Addison- , ninth edition, 2010.
3. ISO.Informationtechnology–softwareproductevaluation– quality characteristics and guidelines for their use, international organization for standardization. International Standard ISO/IEC 9126, International Electrotechnical Commission, Geneva, 1991.
SWEN90016 Software Processes and Project Management -25- Quality Management
References
4. MarcoPalomino,AbrahamDávil,KarinMelendez, . Agile Practices Adoption in CMMI Organizations: A Systematic Literature Review. International Conference on Software Process Improvement, 2016.
SWEN90016 Software Processes and Project Management -26- Quality Management
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com