Write your text heIdentification of Objects in the Software Configuration:
  • To control and manage software configuration items, each should be separately named and then organized using an object oriented approach.
  • Two types of objects can be identified : Basic objects and aggregate objects
  • A basic object is a unit of information that has been created by a software engineer during analysis, design, code or test. For example, a basic object might be a section of requirements specification, part of design model or a source code of component.
  • An aggregate object is a collection of basic objects. Each object has a set of distinct features that identify it uniquely: a name, a description, a list of resources.
  • Configuration object identification can also consider the relationships that exist between named objects. For example, using the simple notation :

    Class diagram <part-of> analysis model;

    Analysis model <part-of> requirements specification;

Version Control:

  • Version control combines procedures and tools to manage different versions of configuration objects that are created during the software process.
  • A version control system implements or is directly integrated with four major capabilities:
  1. A project database (repository) that stores all relevant configuration objects
  2. A version management capability that stores all versions of configuration object.
  3. A make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software.
  • In addition, version control and change control systems often implement an issue tracking (also called as bug tracking) capability that enables the team to record and track the status of all outstanding issues associated with each configuration object.
  • A number of version control systems establish a change set – a collection of all changes (to some baseline configuration) that are required to create a specific version of the software.
  • A change set captures all changes to all files in the configuration along with the reason for the changes and details of who made the changes and when.
  • A number of named change sets can be identified for an application or system. A number of different automated approaches to version control have been proposed over the last two decades.

Change Control

  • In a change control process, a change request is submitted and evaluated to assess technical merit, potential side effects, overall impact on other configuration objects and system functions and the projected cost of change.
  • The results of evaluation are presented as a change report, which is used by a change control authority (CCA) – a person or a group who makes the final decision on the status and priority of the change.
  • An Engineering Change Order (ECO) is generated for each approved change. The ECO describes the change to be made, the constraints that must be respected and the criteria for review and audit.
  • A version control system updates the original file once the change has been made. As an alternative, the objects can be checked out of the project database, the change is made and appropriate SQA activities are applied. The object is then checked into the database and appropriate version control mechanisms are used to create the next version of the software.
  • These version control mechanisms, integrated within the change control process, implement two important elements of change management – access control and synchronization.
  • Access control governs which software engineers have authority to access and modify a particular configuration object.
  • Synchronization control helps to ensure that parallel changes, performed by two different people do not overwrite one another.

Configuration Audit

  • A software configuration audit complements the formal technical review by addressing the following questions:
  1. Has the change specified in the ECO been made? Have any additional modifications been incorporated?
  2. Has a formal technical review been conducted to assess technical correctness?
  3. Has the software process been followed, and have software engineering standards been properly applied?
  4. Has the change been highlighted in SCI? Have the change date and change author been specified? Do the attributes of the configuration object reflect the change?
  5. Have SCM procedures for noting the change, recording it, and reporting it been followed?
  6. Have all the Software Configuration Items been properly updated? Such formal configuration audits also ensure that the correct SCI’s have been incorporated into a specific build and that all the documentation is up to date and consistent with the version that has been built.

Status Reporting

  • Configuration status reporting is a SCM Task that answers the following questions
  1. What happened?

  2. Who did it?

  3. When did it happen?

  4. What else will be affected?

  • Each time a SCI is assigned new or updated identification, a configuration status reporting (CSR) entry is made.
  • Each time a change is approved by the CCA, a CSR entry is made. Each time a configuration audit is conducted, the results are reported as a part of CSR task.
  • Output from CSR can be placed in an online database or website, so that software developers can access change information by keyword category.
  • In addition CSR Report is generated on a regular basis and is intended to keep management and practitioners appraised of important changes