The Past,Present,and Future of Configuration Management(Susan A.Dart)(1992)

博客介绍了从IEEE标准729 - 1983获取的配置管理(CM)的标准定义。

1.Introduction

The standard definition for  CM taken from IEEE standard 729-1983[scm] includes:

  • Identification: indentifying the structure of the product,its componets and their type,and making them unique and accessible in some form.For exmaple,theis addresses the quesion,"What version of the file is this?"
  • Control: controlling the release of a product and changes to it throughout the life cycle by having controls in palce that ensure consistent software via the creation of a baseling product.For example,this addresses the question,"What changes went into the latest version of this product?"
  • Status Accounting: recording and reporting the status of components and change requests, and gathering vital statistics about components in the product. For example, this addresses the question,"How many files were affected by fixing this one bug?"
  • Audit and review: validating the completeness of product and maintainning consistency among the components by ensuring that the product is a well-defined collection of components. For example, this addresses the quesion,
    "Are all the correct versions of files used in this current release?"

When examining current technology that automates CM functions, it becomes clear that definition of CM as given by the IEEE standard needs to be broadened to encompass the extra functionality found in CM systems. This concerns:

  • Manufacturing: managing the construction and building of the product in an optimal manner.For example, this addresses the question,"What vertions of files and tools were used to generate this latest relaese?"
  • Process management: ensuring the correct execution of the organization's
    procedure, policies, and life-cycle model. For example, this addresses the question,"Were all the files tested and checked for quality before being
    released to the customer?"
  • Team work:controlling the work and interactions between multiple developers on a product. For example, this addresses the question,"Were all the locally made changes of the programmers merged into the last release of the product?"

The CM solution is pervasive--it affects the software development
environment, the software process model, the users of the CM sytem, the quality of the software product, and the user's organization.

This article discusses the past and present situation concerning CM systems in order to focus on the furure CM challenges. The past is characterized as in-house CM solutions whereas the present is characterized by many third-part CM solutions. The future involves technological, process-oriented, political standardization and managerial challenges. One way of addressing these challenges is through the definition of  a CM services model, which is briefly dicussed. This article concludes by raising some questions about the nature of CM in relation to software engineering problems in general.

2.The Past

In the past CM was a private, organizational problem. A few organizations fell into a CM solution because they realized that managing changes to their software was very complex and they needed assistance. Other organizations dis not use CM because the problems were not clearly evident nor were there any third-party tools available to assist them, and the cost of  in-house development was viewed as too expensive. CM solutions generally entailed version control facilities that came with the operating system (such as SCCS with Unix) and some kind of build facility (such as job control scripts or Make). Organizations were thus dependent upon the operating system vendor for any CM capabilities or had to develop them in-house. Usually change control facilities(such as change request solution involved manual procedures and policies; people would keep any CM information in their head of filling cabinet; or a librarian would be assigned to carry out the CM functionsl and in large companies, lengthy procedures and policies were documented in large company manuals.

3. The Present

  1. Repository: captures CM information and stores versions of files as immutable objects, as in RCS.
  2. Distributed component: allows distributed users to have access to a repository workstations, as in Sherpa DMS.
  3. Context management: captures in a domain-specific manner the working context for the user, thereby eliminating the need for users to remember how they got to a particular working status and what all the data items, their relationships, and tools are  in that context, as in Powerframe.
  4. Contract: represents a formal plan for, and a record of, a unit of work on a configuration item, as in ISTAR.
  5. Change request: assists in driving the process of change to configurations and keeping an audit trail of the changes, as in LIFESPAIN.
  6. Life-cycle model: represent the process of developing and maintainning configurations through various phases, as in CCC.
  7. Change set: represents a logicl change to a product and a means of creating any version of configuration that is not necessarily dependent on the latest version of that configuration, as in ADC.
  8. System modeling : abstracts the notion of a configuration from an instance of it and by fully describing the configuration , assists tools in maintaing the configuration's integrity, as in Jasmine.
  9. Subbsystem: provide a means to limit the effect of changes and recomplilation, and for the environment to check the validity of configurations, as in Rational.
  10. Object pool: optimizes the need for regenerating objects and maximizes the amount of sharing of derived objects, as in DSEE.
  11. Attribution: permits the description of a system at a higher level of abstraction via its characteristics, as in Adele, rather than in terms of a composition of files from a lengthy file list.
  12. Consistency maintenance: enables the environment to identify any inconsistencies and to preserve consistencies in creating and reusing configurations, as in CMA.
  13. Workspace: provides isolation of work between programmers and distinguishes between a global, long-term repository for immutable objects and a orivate, shorter term repository for mutable objects , as in shape.
  14. Transparent view: gives a viewing mechanism for a configuration from the main repository into a workspace with protection agains unacuthorized access as in SMS.
  15. Transaction: synchronizes and coordinates teams of engineers changing the same of different configuration, as in NSE.

These concepts provide a vocabulary that enables people to discuss automated CM suport. No single CM system provides all these concepts. It is also possible to categorize some CM tools suited to developers based on the sets of concepts they provide. The four categorites are:

  1. The Check Out/Check In paradigm is based on the repository concept. An example system is RCS.
  2. The Composition paradigm is based on the repository and system modeling concepts. An example system is DSEE.
  3. The Change set paradigm is based upon the repository and change set concepts. An example system is ADC.     
  4. The Transaction paradigm is based upon the repository, workspace, and transcation concepts. An example system is NSE.

CM technology of the past and present attempts to address corrective and adaptive maintenance through notions such as change requests, change control boards, and life-cycle state transitions.

4. The Future

The future is characterized by five main issues: technology, process orientation, management, politics, and standardization.

下载方式:https://pan.quark.cn/s/a4b39357ea24 布线问题(分支限界算法)是计算机科学和电子工程领域中一个广为人知的议题,它主要探讨如何在印刷电路板上定位两个节点间最短的连接路径。 在这一议题中,电路板被构建为一个包含 n×m 个方格的矩阵,每个方格能够被界定为可通行或不可通行,其核心任务是定位从初始点到最终点的最短路径。 分支限界算法是处理布线问题的一种常用策略。 该算法与回溯法有相似之处,但存在差异,分支限界法仅需获取满足约束条件的一个最优路径,并按照广度优先或最小成本优先的原则来探索解空间树。 树 T 被构建为子集树或排列树,在探索过程中,每个节点仅被赋予一次成为扩展节点的机会,且会一次性生成其全部子节点。 针对布线问题的解决,队列式分支限界法可以被采用。 从起始位置 a 出发,将其设定为首个扩展节点,并将与该扩展节点相邻且可通行的方格加入至活跃节点队列中,将这些方格标记为 1,即从起始方格 a 到这些方格的距离为 1。 随后,从活跃节点队列中提取队首节点作为下一个扩展节点,并将与当前扩展节点相邻且未标记的方格标记为 2,随后将这些方格存入活跃节点队列。 这一过程将持续进行,直至算法探测到目标方格 b 或活跃节点队列为空。 在实现上述算法时,必须定义一个类 Position 来表征电路板上方格的位置,其成员 row 和 col 分别指示方格所在的行和列。 在方格位置上,布线能够沿右、下、左、上四个方向展开。 这四个方向的移动分别被记为 0、1、2、3。 下述表格中,offset[i].row 和 offset[i].col(i=0,1,2,3)分别提供了沿这四个方向前进 1 步相对于当前方格的相对位移。 在 Java 编程语言中,可以使用二维数组...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值