How to carry out configuration management

How to carry out configuration management

In CMMI and IEEE formal definition of configuration management are: software configuration management is a software engineering procedures, including tools and application technology (process or method), the company use it to manage the software assets change.

Generally speaking, the main purpose of configuration management is to manage work product, including all kinds of documentation, code, version of the minutes, bug and so on. But do not simply understood as, configuration management is the version management, configuration management is the management of all work products.

If an organization lacks configuration management, what issues there? [8:00 the following description, excerpts from Internet-related content]

  1. Wealth of knowledge and process organization loss

Intense modern social competition, frequent movement of persons, if the absence of the necessary configuration management processes and tools, extensive documentation and code and other intellectual wealth inevitable lack of unified management, may optionally save the project managers and software engineers each of the machine, often because of the hard disk failure or departure of personnel and disappear forever, digital asset software organizations so because of lack of the necessary configuration management and lost in vain.

  1. We can not keep abreast of the progress of the project

Modern software engineering ideas considered earlier a defect is discovered and the smaller the risk, take appropriate measures price. An important role CMM / CMMI is to improve the visibility of the software development process, so that the problem can be found in time. However, due to lack of support processes and tools, configuration management, department heads can not know the exact progress of the project, the project manager does not even know the specific work of the various developers, project progress arbitrary large. The problem often occurs when all project milestones are concentrated together, it will definitely lead to huge costs, the result is often tolerate part defects or delays in the development cycle. All questions can only hope to resolve the final implementation, implementation of the project and therefore can not be turned into a report, you can not sort out, endless maintenance.

  1. The lack of means to achieve parallel development

In the daily development work, often there will be parallel development needs, such as: For a project likely to continue for a previous version of the necessary maintenance at the same time developing new versions, or for a particular version needs for different customers at the same time customized modifications and the like. In parallel mode, different developers can edit to modify a file, parallel development, conflicts may arise, but it can improve development efficiency. Without the support of configuration management tools, parallel development will be very difficult, only by manual operation, often result in the modified recurring bug or a few people make the same work, resulting in unnecessary waste.

  1. Low rate of software reuse

Software reuse is an important idea in modern software engineering, software is an important means to improve production efficiency and product quality. Software product company is a valuable asset, code reusability is very high, how to build the knowledge base, have a significant impact on the company will make good use of the knowledge base of high quality and efficient product development. But if there is no good configuration management processes, software reuse efficiency will be greatly reduced, such as for code reuse carried out the necessary changes or improvements can only be passed to reuse all the software by manually changing the way will occur the project, how efficiency can be imagined. Also due to lack of the necessary means to communicate, each developer their own way, code written not only styles, but also out of line coding and design, often lead to a lot of duplicate code development difficult to maintain.

  1. Unable to carry out standardized testing

In the traditional development mode, because of the lack of the necessary configuration management and change control, testing only a people's subjective desire, simply can not make specific test requirements, coupled hide the ugly developers, testing often go through the motions, the test results neither assessment is unable to quantify, of course, can not serve as a guide for future development work.

  1. Lack of effective management of software versions released

Because of the lack of effective management tools, often unable to determine the version of all the components in the product release Shique, or provided the wrong version to the user. For specific customer problems arise, their use can not be reproduced version, only to the user's site in order to make the appropriate debugging. Because the characteristics of software applications, each different customers have different requirements, development staff to manually maintain multiple copies of different, even for the same problem, but made in different places, solved by different people, its approach is not do the same, maintainability program is getting worse. These will extend the period of implementation, also means waste of resources.

Visible, version management only in sixth place.

  1. Lack of historical data accumulation, there is no historical data for software development

Historical lack of software development is the key to most software project failure, this conclusion may surprise many people, but that is the truth. Because the historical data of software development is a reflection of the software development team's ability to scale, not of this scale, we can not have a clear understanding of the software development process. The good configuration management is an important source of software development to collect historical data.

  1. Can not effectively manage and track changes

A notable feature of the software is easy to change, no configuration management will not effectively change the software for recording, tracking and control.

This eight well, is a qualified configuration management process

  • Wealth of knowledge and process organization loss
  • We can not keep abreast of the progress of the project
  • The lack of means to achieve parallel development
  • Low rate of software reuse
  • Unable to carry out standardized testing
  • Lack of effective management of software versions released
  • Lack of historical data accumulation, there is no historical data for software development
  • Can not effectively manage and track changes

It should be emphasized that, to develop a good configuration management plan in order to effectively carry out configuration management. In other words, it is more than 8 points this company are very concerned about, but the focus of each project is different. Documentation, code, documentation, version control in order to develop or rollback in parallel, change management is a top priority.

Many content configuration management, the core content involved three points.

    1. No documentation, record the code, we can not measure the effectiveness of the results

For example, the document should be reviewed by a controlled, namely storage. Review summary uncontrolled, how do you know how to carry out the assessment of when, how quality assessment and so on.
Development plans call for 9.10 submit code, configuration management library to see is 9.12 storage, then how do we know that the code is submitted on time?

    1. Version Control parallel development or rollback

Version is very critical. Products do not happen overnight, the middle will be out a lot of formal, informal, patch version, and so on. So, derived in different versions features, bug modify how to manage, whether you want to manage configuration management are very high value point. If no plan to merge the baseline version, new features increase the code, bug-modifying code updates, etc., it could be a terrible disaster work. Omissions too easy.

    1. Change Management

This is the focus item configuration management. A project, product development process change is inevitable, but to change things around by configuration management will be recorded. Change is brought about by changes in the scope, range change is brought about by changes in workload, the schedule change accordingly. If you do not control, change the record, what means to ensure that the customer final delivery to the customer's requirements 100%?

So how do you plan to develop configure it?

Configuration program, according to the company's specific circumstances, combined with the content of the above-mentioned formulation. The plan should configure the library how to create, configure the permissions so the details given clearly defined. Here we give you a reference:

  1. INTRODUCTION
    1.1 Purpose
    1.2 Definition
    1.3 References

  2. Software Configuration
    2.1 Software Configuration Environment
    2.2 Software Configuration Item
    2.3 Configuration Administrator

  3. Software Configuration Management Plan
    3.1 build sample configuration library
    3.2 Configuring Identity Management
    3.3 configuration repository control
    inspection and evaluation 3.4 configuration
    backup configuration repository 3.5
    3.6 Configuration Management Plan Revision
    3.7 Configuration Management Plan accompanying documentation

  4. milestone

Appendix 1 document naming convention
1, controlled configuration library file naming conventions
2, uncontrolled configuration library file naming conventions
3, submit a document file naming conventions
Appendix 2 document encoding specification
in Appendix 3 accounts and rights management
Appendix 4 to configure the library to use the provisions of
a document modification recording

The above is the configuration directory plan templates, which you can configure the guide to carry out the plan.

Configuration management plan, usually given configuration management definitions, in order to understand the configuration work to project members. E.g:

软件配置管理: Referred to as SCM (Software Configuration Management acronym), is in project development, identification, control and management software for managing change. 配置管理的使用取决于项目规模和复杂性以及风险水平. The larger software, configuration management becomes more important.

基线: (BaseLine) project repository version of each artifact a "snapshot" of a particular period. It provides a formal standard, subsequent work based on this standard, and only after authorization is required to change this standard. After establishing an initial baseline, after each change will be recorded as a difference until completion of the next baseline.

配置管理员: The role of the project team responsible for configuration management, which may be a part-time role. After the development phase through a review or audit by a quality check point, the administrator in charge of the unified configuration add or modify the latest valid version of the relevant documents and the approval signature.

配置标识: (Configuration Identification) software project resources in the development process of identifying, for identification.

配置检查: (Configuration Audit) for software configuration management process operations to be checked.

配置管理的核心是配置项的建立和相应权限设置,需要明确定义配置管理员、PM、产品经理等角色和职责。

In general, the configuration database can be divided into controlled and uncontrolled configuration repository configuration repository two kinds.

  1. Controlled Configuration Repository

Throughout the implementation process of project development, configuration management can be divided into different stages 11 controlled configuration directory, configuration managers have only increased and modify permissions, other users only read-only access. Controlled configuration repository directory is:

00 Initial Configuration
01 starts
analysis needs 02
03 Design
04 coding
04 Test
06 installation
07 summary
08 change
09 Project Management
10 Environment Configuration

Listing the root of the initial configuration of the library that contains the configuration manifest file XXXX project, the document includes a document of the project development process should be submitted, in the actual development process, according to the actual situation, you can modify, as appropriate, in the list, add and delete required documents submitted.

  1. Uncontrolled configuration directory

The purpose of the non-controlled configuration directory for temporary files and procedural documentation unified storage management and development generated in the process, there is no strict requirements on the form and name, the project team members in thinking, not too many design limitations and constraints, can play a more effective personal capacity, in line with the people-oriented principle.

Early in the project, you can set up the following three directories:

Directory name Use and description
Personal Workspace I have written a document preservation project members, each member has its own separate project working directory
Team Workspace To save the document prepared by the writing team members, each group has its own separate working directory
Documents submitted by District As a buffer between the uncontrolled and controlled configuration repository configuration repository for submitting the document and the code has been finalized, after review by, and then removed from the configuration administrator and submitted to the controlled configuration repository

Configuration management to perform well is not an easy thing, and usually require some configuration management tools to operate. Many in the industry are usually used for configuration management tool, there are domestic and foreign. Different, not the same degree powerful, we need to be screened according to their own. Support for common platform:

  • SVN

    The more popular open source configuration management tool that supports almost all operating systems for small and medium-sized development team.

  • CVS

    It supports almost all operating systems. Higher operating performance for various levels of development teams.

  • PVCS

    Java-based software development itself, can support the common platform. Server using file sharing systems, high CPU, memory and network requirements, performance in general, only suitable for small project teams, not suitable for enterprise applications.

  • VSS - Microsoft tools

    Only supports Windows operating systems. Relatively features a single, simple, suitable for small teams of a few people, in the small amount of data, the performance is acceptable.

  • Telelogic CM Synergy

    Telelogic DOORS, Telelogic CM Synergy and Telelogic Tau complex software development covering all key components: requirements management, change management and visualization software engineering. quite expensive.

  • ClearCase

    IBM's very meticulous huge tool. Server multi-process mechanism, the use of multiple versions of a file system comes MVFS, have a greater negative impact on performance. As an enterprise-class, comprehensive development configuration management tool for large development teams. quite expensive.

  • Firefly - is domestic company

    Java-based software development itself can be used on a common platform, Windows, Linux, Solaris, HP-UX, AIX and other portable between platforms is also very convenient. Server uses a multi-threaded application server, performance is excellent, as an enterprise-class, comprehensive development configuration management can be applied to small teams.

  • other.

FAQ交流讨论

    1. The code on VSS how organizations do? Because we have a framework, the framework of the project there. Is it put together? Or open-minded?

This is the baseline and branch management mode details, go their versions, at different points in branch integration. This is the company's system architect to assist in the given program. That is, foreign configuration management system-level engineers, the company's products, project development of large cattle. They can make their own product planning at baseline.

The project does not require general branch, can only do simple management, namely documentation, code, version control. But more projects, products and more, the platform is a good way to save costs and reduce management.

  1. Project Manager or need to understand the configuration management?

The project manager must know how to configuration management in order better management of the project. As long as regular configuration management company must be, otherwise you can find a 08.9-month version of the code it today? In fact, the configuration management tool is simple to use for the project participants concerned, we put the document, the code passed up remember checkout, checkin on the line.

As long as the project manager consciously check in the document, code, version is the basic requirement that no manpower to do every day, then focus on the next phase of the project point to do. Otherwise, the problem too late to cry. There will be problems, and so the configuration repository offsite backup.

  1. Configuration Management

In many small project team, part-time administrator to configure, or even develop, test managed separately, and QA staff need to check their work.

Large corporations configuration management and quality management, should have appointed office. Version is on the one hand, the baseline is one thing.

  1. How to participate in Party B's do configuration management

Party estimates for configuration management without too much control, monitor their milestones library enough, or too tired.

Guess you like

Origin blog.51cto.com/muyusen/2436403