Lecture6_1设计

Lecture6_1设计

ID:37501107

大小:292.61 KB

页数:63页

时间:2019-05-24

Lecture6_1设计_第1页
Lecture6_1设计_第2页
Lecture6_1设计_第3页
Lecture6_1设计_第4页
Lecture6_1设计_第5页
资源描述:

《Lecture6_1设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件架构SoftwareArchitecture中国人民大学信息学院计算机系,数据工程与知识工程教育部重点实验室朱青zqruc@yahoo.cn1第6章软件架构设计•设计模式概念•具体设计模式•抽象工厂、单件、模板方法•代理、适配器、策略等基本模式2ò软件架构的设计(4学时)生命期中的软件架构良好架构的评判原则架构设计的质量驱动方法创建骨架系统形成团队结构架构师的职责3SoftwareDesignòDerivingasolutionwhichsatisfiessoftwarerequirements4架构文档的写作•架构

2、编档的使用•选择相关结构•结构编档•跨结构的文档•统一建模语言5生命期中的构架软件过程—对软件开发活动的组织、规范和管理基于构架的开发步骤1.为软件系统构建一个商业案例2.弄清系统需求3.构建或选用构架4.正确表述此构架,并与有关各方进行交流5.对此构架进行分析和评价6.实现基于构架的系统并保证与构架相一致7.系统维护时,构架文档应同步维护6下图的演变交付生命期模型表明了构架所应处的位置。7何时可以开始设计?对需求有了初步了解就可以开始设计。构架驱动因素的组成:比较重要的功能、质量属性、限制条件构成的某个子集如何确定构架

3、驱动因素?业务目标优先级较高的要求8良好架构的评判原则设计构架过程的建议:1.构架的设计应该由一位设计师来完成2.设计师应全面掌握对系统的技术需求,以及对各项定性指标优先级的清单3.构架的文档完备,并采用所有人员认可的文档形式4.构架设计方案应让各风险承担者积极参与评估5.通过对构架分析,得出明确的定性与定量指标6.构架设计应有助于具体实现7.允许构架带来一定的资源争用,并给出可行的解决方案9关于构架的结构的建议:1.构架由定义良好的模块组成,各模块的功能划分应基于信息隐藏2.模块的划分应体现出相互独立的原则3.把计算机

4、基础结构的特性封装在一定的模块中4.构架尽量不依赖于某个特定版本的商用产品或工具5.产生数据的功能和使用数据的功能应分属于不同的模块6.对并发系统,构架应充分考虑进程与模块结构的不对应7.进程编写要考虑到与特定处理器的关系,并容易改变关系8.构架应尽量采用一些已知的设计模式。10架构设计的质量驱动方法你作为设计师对构架的设计和评价就如同一个足球教练对一场比赛的球队组织,你首先要了解自身和对手的情况,明确你这场比赛想打输、打赢或打平(质量目标),然后根据该目标设计比赛阵型,如攻击或防守阵型,再确定相关战术和人员组织(构架设

5、计、战术选用),最后将你的设计和队员沟通,取得全体队员的共识(构架评价)11属性驱动的设计(AttributeDrivenDesign,ADD)把一组质量属性场景作为输入,利用对质量属性实现与构架设计之间的关系的了解,对构架进行设计。ADD是一种定义软件构架的方法,该方法将模块分解过程建立在软件必须满足的质量属性之上。它是一个递归的分解过程,其中在每个阶段都选择构架模式和战术来满足一组质量属性场景,然后对功能进行分配,以实例化有该模式所提供的模块类型。ADD的结果是粗粒度的,ADD的结果是构架的模块分解视图和其他视图的最

6、初的几个层次,不是视图的所有细节都是通过ADD得到。由ADD得到的构架和已经为实现做好准备的构架之间的区别是,需要做出更详细的设计决策。12ADD构架设计的步骤如下:1.样本输入。2.选择要分解的模块。3.根据下列步骤对模块进行求精:a.从具体的质量场景和功能需求集合中选择构架驱动因素。b.选择满足构架驱动因素的构架模式。c.实例化模块并根据用例分配功能,使用多个视图进行表示。d.定义子模块的接口。e.验证用例和质量场景并对其进行求精,使它们成为子模块的限制。4.对需要进一步分解的每个模块重复上述步骤。13创建骨架系统创

7、建骨架系统的思想是提供一种基本能力,以一种对项目有力的顺序实现系统的功能。在系统开发的最初阶段创建整个系统的骨架系统是非常重要的,主要原因包括:1.提高开发效率,鼓舞士气。2.能更早发现复杂的依赖关系。3.使开发人员更多关注在设想中最难以实现的部分。4.能够缩短系统集成时间,降低其成本,并使集成成本更明确。5.便于评审和测试。14创建骨架系统的步骤:1.实现处理构架组件交互的软件部分。2.选择组件逐步添加到系统中。3.逐步进行测试。15团队结构的形成开发小组的结构反映了构架的模块结构。可以把模块看作一个小领域,再根据开发

8、人员的专长进行安排。开发小组要做到松耦合,高内聚,即小组内需要有非常便于沟通的机制,小组间的沟通尽可能少。开发组织对构架也会有影响。16架构师的职责架构师要和多个部门和多种人沟通,如要指导以架构为核心形成开发团队,协调团队之间的合作,解决他们之间的冲突;架构师要支持项目经理的工作,要知道开发团队的技术水平;为明确组织

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。