下载

0下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 02_软件架构文档设计

02_软件架构文档设计.pdf

02_软件架构文档设计

spookssos
2011-02-28 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《02_软件架构文档设计pdf》,可适用于IT/计算机领域

©中国科学院软件所SoftwareEngineering,theditionChapterSlide软件架构文档设计©中国科学院软件所SoftwareEngineering,theditionChapterSlide议题z软件配置管理z软件架构模版设计©中国科学院软件所SoftwareEngineering,theditionChapterSlideSCM工作指南©中国科学院软件所SoftwareEngineering,theditionChapterSlide议程z配置管理的基本概念z配置项标识z配置库目录结构©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置管理()ISO:配置管理是一个管理学科它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。()WBabich的解释软件配置管理能协调软件开发使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术目的是最有效的提高生产率。()GBT:《软件工程术语》国家标准A表示和确定系统中配置项的过程在系统整个生存期内控制这些配置项的投放和更动记录并报告配置的状态和更动要求验证配置项的完整性和正确性。B对下列工作进行技术和行动指导与监督的一套规范:对配置项的功能特性和物理特性进行标识和文件编制工作控制这些特性的更动情况记录并报告这些更动进行的处理和实现的状态。©中国科学院软件所SoftwareEngineering,theditionChapterSlide为什么需要配置管理忽视软件配置管理可能导致的混乱现象:•发错了版本•安装后不工作•异地不能正常工作•已经解决的缺陷过后又出现错误•开发人员把产品拿出去出售赢利•找不到最新修改了的源程序•找不到编程序的人©中国科学院软件所SoftwareEngineering,theditionChapterSlideSCM的主要职责()变更控制配置项标识配置状态报告工作产品的完整性、一致性、可追踪性配置审计©中国科学院软件所SoftwareEngineering,theditionChapterSlideSCM的主要职责()z配置项•受配置管理控制和管理的基本单位。配置管理工作都是围绕配置项来进行。z配置标识•要进行配置标识首先必须明确项目生命周期内所要产生的工作产品然后确定工作产品的命名和标识规则。总体原则是方便在配置管理工具中进行检索和让项目组成员容易记住标识规则同时确保在组织一级的标识规则一致性。z变更管理•变更管理是项目管理的一个重点和难点涉及的范围很广。实施高效的变更管理至少应该包括二个部分一是定义合理变更管理流程一是采用自动化工具来支持。在具体的实践中应该对变更进行分类和分层建立处理不同变更的变更控制委员会(CCB)构成策略既能保证项目组成员有一定的自主权又不耽误高层经理对关键问题的把握。©中国科学院软件所SoftwareEngineering,theditionChapterSlideSCM的主要职责()z报告配置状态•报告配置状态的目的是向项目所有成员提供基线内容和状态、基线变更信息也是实现资源共享的前提。此外在项目生命周期中通过对配置项的变更数据统计分析有利于评估项目风险有效控制项目的执行。报告的方式可以多种多样如Email但应该把握好时机:变更请求被批准时基线版本发生变化时项目组任何需要的时候。z配置审核•配置审核包括两方面的内容:配置管理活动审核及基线审核。配置管理活动审核确保项目组成员所有配置管理活动遵循批准的软件配置管理方针和规程比如检入(Checkin)检出(CheckOut)的频度工作产品成熟度提升原则等。实施基线审核保证基线化软件工作产品的完整性和一致性并且满足其功能要求。©中国科学院软件所SoftwareEngineering,theditionChapterSlide确定配置项、系统规格说明、软件项目计划、软件需求规格说明书a图形分析模型b处理规格说明c原型d数学规格说明.初步用户手册.设计规格说明书a数据设计描述b体系结构设计描述c模块设计描述d接口设计描述e对象描述(采用面向对象技术时).源代码清单、测试规格说明a测试计划和步骤b测试用例和记录的结果、操作和安装手册、可执行程序a模块可执行代码b连接的模块、数据库描述a模式和文件结构b初始内容、联机用户手册、维护文档a软件问题报告b维护请求c工程变更指令软件工程标准和规程©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置项标识z配置标识是软件生命周期中划分选择各类配置项、定义配置项的种类、为它们分配标识符的过程。配置项标识的重要内容就是对配置项进行标识和命名。z原则•唯一性•可追溯性•与同类配置项不同的信息应纳入标识:这是为了便于区分、查找•同类配置项的标识方法统一•容易记忆©中国科学院软件所SoftwareEngineering,theditionChapterSlide文档标识方法()z配置项的相关标识信息•组名•项目名•文档内容•版本号•文档撰写时间•文档撰写作者©中国科学院软件所SoftwareEngineering,theditionChapterSlide文档标识方法()z标识项目信息命名方式:项目编号文档名称例如:RDMIS需求规格说明书适用于:需求规格说明书、概要设计说明书、详细设计说明书、测试计划等等z标识版本变化版本变化不通过文档命名来标识对于基线文档在CVS中是通过tag来标识。并且在文档的头信息中必须注明文档的版本号。命名方式:文档名称例如:RDMIS概要设计说明书适用于有版本变化的文档。©中国科学院软件所SoftwareEngineering,theditionChapterSlide文档标识方法()z标识文档撰写时间命名方式:文档名称+撰写时间例如:RDMIS项目会议记录适用于:会议记录、项目周报、工作周报等等z标识文档作者命名方式:文档名称+人员名称例如:项目周报李平适用于:项目周报、工作周报、年终工作总结等等z标识子系统或者模块名称命名方式:项目编号子系统名称文档名称例如:RDMIS绩效考评详细设计说明书适用于:子系统详细设计说明书、系统模块设计说明书等等©中国科学院软件所SoftwareEngineering,theditionChapterSlide文档标识方法()z文档首页可以包括这些信息:项目名、文档名、文档作者、本文档的版本更新历史、版本号、日期、修改的页码等。©中国科学院软件所SoftwareEngineering,theditionChapterSlide程序标识信息z每个源程序的首部应包括的信息为:功能描述、创建日期、作者、版本号。©中国科学院软件所SoftwareEngineering,theditionChapterSlide版本号z形式:主版本号从版本号维护版本号z主版本号•对系统作重大调整在功能和性能上有大的变化时主版本号增加。第一次版本号和第二次版本号为零。版本号升级由项目组长室主任决定。z从版本号•与上一版本相比对系统功能或性能进行了少量的增加或修改从版本号增加主版本号不变。版本号升级由项目组长决定。z维护版本号•与上一版本相比修改了小量系统bug维护版本号增加主版本号和从版本号不变。版本号升级由项目组长决定。z通常来说通过软件系统测试后系统版本号变为V软件系统第一次发布时版本号为V从版本号和维护版本号均为。©中国科学院软件所SoftwareEngineering,theditionChapterSlideCVS辅助标识方法©中国科学院软件所SoftwareEngineering,theditionChapterSlide版本的演变©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置库的作用•记录与配置相关的所有信息•利用库中的信息可评价变更的后果•可利用库中的信息查询例如:•那些客户已提取了某个特定的系统版本?•运行一个给定的系统版本需要什么硬件和系统的哪些版本•一个系统到目前已生成了多少版本何时生成的?•如果某一特定的构件变更了会影响到系统的那些版本?•一个特定的版本曾提出过那几个变更请求?•一个特定的版本有多少已报告的错误?©中国科学院软件所SoftwareEngineering,theditionChapterSlide三库()开发库:存放开发过程中需要保留的各种信息供项目组成员使用。()基线库:在软件开发的某个阶段工作结束时将工作产品存入或将有关的信息存入。()产品库:在开发的软件产品完成系统测试之后作为最终产品存入库内等待交付用户或现场安装。©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置库目录结构©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置库使用说明()z放入正确的位置正确标识•因为CVS工具本身的问题如果你将文件放在错误的位置或者命名不规范SCM进行位置移动或者修改文件名称的时候会造成历史版本的丢失想要找回历史版本很不容易给配置管理造成一定的工作量。•所以请大家在进行文件入库时注意放入正确的位置并且正确命名以免造成历史版本丢失。z及时提交、更新•如果习惯将自己的工作产品放在个人目录下请及时提交或者更新到服务器上让相关人员能够看到最新的文件•养成良好的工作习惯每次要对某个文件进行修改时请首先UPDATE这个文件从服务器上更新最新版本以免在旧版本基础上修改造成冲突无法提交。©中国科学院软件所SoftwareEngineering,theditionChapterSlide配置库使用说明()z提交规范•文件提交到服务器上时有“Enterthelogmessage”请大家一定要填写主要填写几个方面的内容:修改的目的修改的主要内容(段落或者函数名称)修改可能造成的影响。•尤其是进入编码和测试阶段要求每个文件的提交必须有logmessage。请大家注意!©中国科学院软件所SoftwareEngineering,theditionChapterSlide提交规范©中国科学院软件所SoftwareEngineering,theditionChapterSlide软件架构模版设计z指导原则z标准模版©中国科学院软件所SoftwareEngineering,theditionChapterSlide体系结构设计z体系结构设计原则•文学中有科学音乐中有数学漫画中有现代数学的拓扑学。漫画家可以“几笔”就把一个人画出来不管怎么美化或丑化就是活像。为什么?因为那“几笔”不是别的而是拓扑学中的特征不变量这是事物最本质的东西。•体系结构是指软件系统的基本和主体的形态也就是软件系统中“最本质”的东西。一个软件系统的体系结构设计得好不好可以用“合适性、结构稳定性、可扩展性、可复用性”这些特征量来评估。©中国科学院软件所SoftwareEngineering,theditionChapterSlide合适性:即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。z设计师可以充分发挥主观能动性根据需求的特征通过推理和归纳的方法设计出合适的体系结构。经验不丰富的设计师往往把注意力集中在“功能性需求”而疏忽了“非功能性需求”殊不知后者恰恰是最能体现设计水平的地方。z高水平的设计师高就高在“设计出恰好满足客户需求的软件并且使开发方和客户方获取最大的利益而不是不惜代价设计出最先进的软件。(以设计住宅为例)…z对于软件系统而言能够满足需求的设计方案可能有很多种究竟该选哪一种?此时商业目标是决策依据即选择能够为开发方和客户方带来最大利益的那个设计方案。大部分软件开发人员天生有使用新技术的倾向而这种倾向对开发商业产品而言可能是不利的切记切记。©中国科学院软件所SoftwareEngineering,theditionChapterSlide结构稳定性•当前中国有几句流行的至理名言:“稳定压倒一切”、“发展是硬道理”。发展的前提条件是稳定社会如此开发软件产品也是如此。•体系结构一旦设计完成应当在一定的时间内保持稳定不变只有这样才能使后续工作顺利开展。如果体系结构经常变动那么建筑在体系结构之上的用户界面、数据库、模块、数据结构等等也跟着经常变动用“树倒猢狲散”来比喻很恰当这将导致项目发生混乱。•高水平的设计师应当能够分析需求文档判断出哪些需求是稳定不变的哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构而根据那些可变的需求设计软件的“可扩展性”。©中国科学院软件所SoftwareEngineering,theditionChapterSlide可扩展性z可扩展性是指软件扩展新功能的容易程度。可扩展性越好表示软件适应“变化”的能力越强。可扩展性越来越重要这是由现代软件的商业模式决定的:•社会的商业越发达需求变化就越快。•现代软件产品通常采用“增量开发模式”开发商不断地推出软件产品的新版本从而不断地获取增值利润。•稳定性和可扩展性之间存在辨证的关系:如果系统不可扩展的话那么就没有发展前途所以不能只关心稳定性而忽视可扩展性而软件系统“可扩展”的前提条件是“保持结构稳定”否则软件难以按计划开发出来稳定性是使系统能够持续发展的基础。所以稳定性和可扩展性都是体系结构设计的要素。•如果每次变化都导致体系结构发生大的变动那简直就是“伤筋动骨”这样的体系结构无疑是败笔之作。(例如房屋装修)©中国科学院软件所SoftwareEngineering,theditionChapterSlide可复用性z复用就是指“重复利用已经存在的东西”。被复用的对象可以是有形的物体也可以是无形的知识财富。复用不是人类懒惰的表现而是智慧的表现。因为人类总是在继承了前人的成果不断加以利用、改进或创新后才会进步。z复用的有利于提高产品的质量、提高生产率和降低成本。由经验可知通常在一个新系统中大部分的内容是成熟的只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠的(即具有高质量)而大量成熟的工作可以通过复用来快速实现(即具有高生产率)。勤劳并且聪明的人们应该把大部分的时间用在小比例的创新工作上而把小部分的时间用在大比例的成熟工作中这样才能把工作做得又快又好。©中国科学院软件所SoftwareEngineering,theditionChapterSlidez复用的意义很容易理解人们也乐意复用以前的成果但是前提条件是该成果具有比较好的可复用性。可复用性是指成果被复用的容易程度。z可复用性是设计出来的而不是偶然碰到的。要使体系结构具有良好的可复用性设计师应当分析应用域的共性问题然后设计出一种通用的体系结构模式这样的体系结构才可以被复用。©中国科学院软件所SoftwareEngineering,theditionChapterSlide体系结构设计流程•体系结构设计流程:个步骤•《体系结构设计报告》模板见word文档

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/17

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利