第二章 软件架构文档设计
一、软件配置管理(SCM)
1. 配置管理的基本概念
a. 概念
a. ISO 9000-3 :1997
配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。
b. W.Babich 的解释
软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。
c. GB/T 11457 :1995《软件工程术语》国家标准
A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。
B.对下列工作进行技术和行动指导与监督的一套规范:
——对配置项的功能特性和物理特性进行标识和文件编制工作;
——控制这些特性的更动情况;
——记录并报告这些更动进行的处理和实现的状态。
b. 为什么需要配置管理
忽视软件配置管理可能导致的混乱现象:
a. 发错了版本
b. 安装后不工作
c. 异地不能正常工作
d. 已经解决的缺陷过后又出现错误
e. 开发人员把产品拿出去出售赢利
f. 找不到最新修改了的源程序
g. 找不到编程序的人
2. 软件配置管理的主要职责
a. 配置项
受配置管理控制和管理的基本单位。配置管理工作都是围绕配置项来进行。
b. 配置标识
要进行配置标识,首先必须明确项目生命周期内所要产生的工作产品,然后确定工作产品的命名和标识规则。总体原则是方便在配置管理工具中进行检索和让项目组成员容易记住标识规则,同时确保在组织一级的标识规则一致性。
c. 变更管理
变更管理是项目管理的一个重点和难点,涉及的范围很广。实施高效的变更管理至少应该包括二个部分,一是定义合理变更管理流程,一是采用自动化工具来支持。在具体的实践中,应该对变更进行分类和分层,建立处理不同变更的变更控制委员会(CCB)构成策略,既能保证项目组成员有一定的自主权又不耽误高层经理对关键问题的把握。
d. 报告配置状态
报告配置状态的目的是向项目所有成员提供基线内容和状态、基线变更信息,也是实现资源共享的前提。此外,在项目生命周期中通过对配置项的变更数据统计分析,有利于评估项目风险,有效控制项目的执行。报告的方式可以多种多样,如Email,但应该把握好时机:变更请求被批准时;基线版本发生变化时;项目组任何需要的时候。
e. 配置审核
配置审核包括两方面的内容:配置管理活动审核及基线审核。配置管理活动审核确保项目组成员所有配置管理活动遵循批准的软件配置管理方针和规程,比如检入(Check in)/检出(Check Out)的频度,工作产品成熟度提升原则等。实施基线审核,保证基线化软件工作产品的完整性和一致性,并且满足其功能要求。
3. 确定配置项
a. 系统规格说明
b. 软件项目计划
c. 软件需求规格说明书
a. 图形分析模型
b. 处理规格说明
c. 原型
d. 数学规格说明
d. 初步用户手册
e. 设计规格说明书
a. 数据设计描述
b. 体系结构设计描述
c. 模块设计描述
d. 接口设计描述
e. 对象描述(采用面向对象技术时
f. 源代码清单
g. 测试规格说明
a. 测试计划和步骤
b. 测试用例和记录的结果
h. 操作和安装手册
i. 可执行程序
a. 模块可执行代码
b. 连接的模块
j. 数据库描述
a. 模式和文件结构
b. 初始内容
k. 联机用户手册
l. 维护文档
a. 软件问题报告
b. 维护请求
c. 工程变更指令
m. 软件工程标准和规程
4. 配置项标识
配置标识是软件生命周期中划分选择各类配置项、定义配置项的种类、为它们分配标识符的过程。配置项标识的重要内容就是对配置项进行标识和命名。
原则:
• 唯一性
• 可追溯性
• 与同类配置项不同的信息,应纳入标识:这是为了便于区分、查找
• 同类配置项的标识方法统一
• 容易记忆
配置项的相关标识信息
• 组名
• 项目名
• 文档内容
• 版本号
• 文档撰写时间
• 文档撰写作者
5. 配置库
配置库有如下几个重要作用:
• 记录与配置相关的所有信息
• 利用库中的信息可评价变更的后果
• 可利用库中的信息查询
一般来说配置库分为如下三个库:
(1)开发库:
存放开发过程中需要保留的各种信息,供项目组成员使用。(2)基线库:
在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入。
(3)产品库:
在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。
典型的配置库如图所示:
![2009010719060294.jpg](https://i-blog.csdnimg.cn/blog_migrate/37996f698b72f9e866e28fcadcb21b72.jpeg)
一、软件架构模版设计
1. 体系结构设计原则
a. 合适性:即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。高水平的设计师高就高在“设计出恰好满足客户需求的软件,并且使开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。选择能够为开发方和客户方带来最大利益的那个设计方案。
b. 结构稳定性。高水平的设计师应当能够分析需求文档,判断出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构,而根据那些可变的需求设计软件的“可扩展性”。
c. 可扩展性,指软件扩展新功能的容易程度。
d. 可复用性。勤劳并且聪明的人们应该把大部分的时间用在小比例的创新工作上,而把小部分的时间用在大比例的成熟工作中。可复用性是设计出来的,而不是偶然碰到的。
二、体系结构设计流程
此节讲义可至http://www.docin.com/p-6362335.html下载