软件架构设计方法理论.doc

上传人:scccc 文档编号:12050291 上传时间:2021-12-01 格式:DOC 页数:7 大小:64.50KB
返回 下载 相关 举报
软件架构设计方法理论.doc_第1页
第1页 / 共7页
软件架构设计方法理论.doc_第2页
第2页 / 共7页
软件架构设计方法理论.doc_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件架构设计方法理论.doc》由会员分享,可在线阅读,更多相关《软件架构设计方法理论.doc(7页珍藏版)》请在三一文库上搜索。

1、1. 软件架构概述什么是软件架构软件架构的槪念很泯乱。如果你何五个不同的人.可能会得到五种不同的答案。©软件架构槪念主耍分为两大涼派:组成派:软件架构=组件+交互。决策派:软件架构二垂耍决策集:©组成派和抉策派的槪念相辅相成软件架构和子系统.框架Z间的关系©复朵性是层汝化的:©好的架构设计必效把变化点错落冇致地封装到软件系统的不同部分(即关注点分离几 通过关注点分离.达到“系统中的一部分发生了变化.不会影响其他部分”的目标。软件单元的粒度:粒度掖小的单元通常是“类駕几个类紧密协作形成“模块蔦完成相对独立的功能的多个模块构成了 “子系统”。多个子系统相互配

2、合才能满足一个完整应用的需求.从而构成J'软件“系统 一个大型企业往往使用多套系统.多套系统通过互操作形成“樂成系统”。©软件单元的純度是相对的:同一个软件单元.在不同场尿下我们会以不同的粒度看待它。© 架构(Architecture)不';/ F框架(Fraziework) <>框架只是一种特殊的软件.框架也有架构:可以通过架构框架化达到“架构重用”的目的,如很多人都在用Spring框架提供的 控制反转和依救注入來构建自己的架构。软件架构的作用如果一个项目的系统架构包括理论星础)尚未确定.眦不应该进行此系统的全面开发。 Barry Boehn,

3、 Engineering Contex 一个缺陷充斥的系统.将始终绘一个缺陷充斥的系统.Timothy C. Lethbridge,纟而向对象软件匸程软件架构设计为什么这么难?因为它是跨越现实世界与计算机肚界Z间鸿沟的一座桥:软件架构设计要完成从而向业务到面向技术的转换.在鸿沟上架起一座桥梁.需求-> 架构设计-> 软件架构-> 系统开发-> 软件系统©软件架构对新产品开发的作用:上承业务目标。下接技术抉策控制复朵性T问题深度分而治Z”的理念。组织开发.软件架构方案在小组中间扮演了“桥梁”和“介作契约”的作用。利干迭代开发和增呈交付,以架构为中心进行开发.为增

4、虽交付提供r口好的星础。在架构经过验证Z后.可以 专注于功能的增虽提交。提高质址.软件架构对软件产品线开发的作用:固化核心知识;提供可垂用资产;缩短推出产品的周期;降低开发和维护成本;提高产品质址:*支持批址定制的市场需求或任务需求.并且按照预定义方式从一个公共的核心资产集开发得到。软件产品线架构:针对一个公司或组织内的一系列产品而设计的通用架构:2. 软件架构设计方法软件架构为谁而设计O架构师应当为项目相关的不同角色而设计:架构师耍为客户负资满足他们的业务目标和约束条件。架构师耍为用户负资满足他们关心的功能需求和运行期质址属性.架构师必須顾及处于协作分工“下游”的开发人员.五视图法©

5、;什么是软件架构视图?软件架构视图是对于从某一视角看到的系统所作的简化描述.描述中涵盖系统的某一特定方而.而省略了与此无关的其他方而,©软件架构耍涵盖的内容和决策太多了.超过人脑“一澈而就"的能力范伟U因此宜采用“分而治Z”的办法。即通过不同的视图來描述架构,©软件架构的五视图法:逻辑架构逻辑架构关注功能.其设计衿垂考虑功能需求,*开发架构开发架构关注程序包可移植性.易理解性和易测试性等。运行架构其设计裕重考老运行期质st属性例如性能、可伸缩性、持续可用性和安全性等.物理架构物理架构关注软件系统鼓终如何安装或部署到物理机器。其设计裕垂考虑“安装和部署需求S数据架构

6、数据架构关注持久化数据的存储方案。其设计若垂考电“数据需求二从槪念性架构到实际架构少就是多(Less 13 more. )密斯凡徳罗槪念性架构是对系统设计的掀初构想。 架构设计中的关键耍素及解决策略©策略是制胜的关键:一张明正.挡不住的趋势#©披好的软件开发人员都知道一个秘密:芙的东西比丑的东西创建起來更廉价.也更快捷: Robert C. Martin,纟软件之,美©时间就是系统架构的生命. Philippe Kruchten©方法产生于恐惧.©但在不适当的时候“用时间换 完芙”会毀掠整个项目。©架构设计并非“好的就是成功的”而是“

7、适介的才是成功的©软件架构设计中的关键耍素及解决策賂:全而认识需求, 关键爲求决定架构。 多视图探寻架构。及早聆证架构:关键耍索策略1. 是否遗漏了至关垂翌的作功能需求?2. 能否驯服数址口大且频繁变化的需求?3. 能否从容地设计软件架构的不同方而?4. 是否及早验证架构方案并作出了调整?软件架构耍设计到什么程度©软件系统的架构涵盖了整个系统尽管架构的有些部分可能只有“一寸深”。Ivar Jacobson,统一软件开发过程Z路软件架构是团队开发的星础:©软件架构耍设计到什么程度?由于项目的不同、开发团队悄况的不同.软件架构的设计程度会有不冋.»软件架构应

8、当为开发人员提供足够的指&和限制。高來高去式架构设计的症状:缺失垂耍架构视图*遗漏了某些垂耍视图.从而遗漏了对团队某些角色的指导:浅尝辄止、不够深入.将垂大技术风险遗留到后续开发中。名不副实的分层架构,对各层Z间交互接口和交互机制的设计严重不足。3. 软件架构设计过程软件架构设计过程总览 一般的软件过程:概念化阶段-分析阶段-架构设计阶段-> 并行开发与测试阶段-验收与交付阶段憊隸需求架构可执行系统交付的系统软件架构设计过程:需求分析-> 领域建模-> 确定关键需求-> 槪念性架构设计-细化架构-脸证架构概念性架构实际架构分析阶段架构设计阶段需求分析几个槪念&#

9、169;需求捕获V3需求分析V3系统分析*需求捕获是获取知识的过程知识从无到有。需求分析是挖掘和整理知识的过程它在己型握知识的基础上进行.*系统分析?如果说需求分析致力于“做什么那么系统分析則涉及“怎么做化架构师必後学握的需求知识3. 2. 2软件架构师不必是需求捕获专家.也不必是编场软件需求规賂说明书的专家 但他一定应在需求分类、需求折衷和需求变更的硏究方而是专家.否則他和其他 软件架构师相比.就输在了 “起跑线"上。©软件需求的类型厂功能需求厂运行期质址屈性软件需求T厂质址屈性T非功能需求T-开发期质量屈性1-约束软件质址属性分类方式运行期质址属性性能(Performa

10、nce)安全性(Security)易用性(Usability)持续可用性(Availability)可伸缩性(Scalability)互操作性(Interoperability)可靠性(Reliability鲁棒性(Robustness)开发期质址属性易理解性(Understandability)可扩展性(Extensibility)可垂用性(Reusability)可测试行(Testability)可维护性(Maintainability)可移植性(Portability)皱域建模就像鬲效能人十的七个习惯提到的“有内而外全而造就自己”的观点一样. 对待软件开发要具备“有内而外造就软件'

11、;的理念.©想让软件系统随需应变吗?请给软件一个支持变化的“心”。©什么是领域模型?Z间的关系领域模型对软件架构乃至整个软件系统开发工作的作用:探索复朵何题.固化领域知识;决定功能范伟k影响可扩展性:提供交流星础.促进冇效沟通;确定关键需求©功能、质呈和商业需求的某个集介“塑造"J'架构。一 Len Bass,软件架构实践(第2版必©关键需求决定架构.其余需求验证架构.©什么是对软件架构关键的需求?关键的功能需求.»关键的质址属性需求;关键的商业需求,如何确定关键需求? ©r确定关键功能需求 r-全而整理需

12、求-分析约束性需求T卜 确定关键质虽属性需求槪念性架构设计槪念性架构设计的步骤(这三个步骤以迭代方式进行):1.鲁棒性分析:2引入架构模式:3.质虽属性分析,3. 5.1曾棒性分析©所谓魯棒性分析是这样一种方法:通过分析用例规约中的爭件流.识别出实现用例规定的功能所需的主耍对象及其职诉.形成以职说模型为主的初步设计。©Z间的关系。©鲁棒性分析填补了分析和设计Z间的鸿沟.©魯棒图包含三种元素:边界对象、控制对皱和实体对象:(见书P196)3. 5.2引入架构模式较为经典的几种架构模式:分展.MVC、微内核.星于元模型的架构、管道-过滤器。关于架构模式的几点

13、说明:分层避免名不副实的分层架构.即对各圧Z间交互接口和交互机制的设计严垂不足.微内孩缺点:设计和实现的员朵性;性能较低,3. 5.3质址属性分析© “属性-场於-决策”表方法。举例如下:111属性1场笊1111决策1I11111可扩展性1数据库类型可替换1111建立数据库存取屋H111I允许加裁第三方模块I采用插件机制细化架构设计©架构细化匸作主耍体现在基于五视图方法进行架构细化:约束领域模型-> I星于五视图方法I关键需求-II -架构方案槪念架构-I进行架构细化I经验I细化领域模型;I确定子系统接口和交互机制。I开发架构I确定耍开发或直接利用的程序包Z间的依赖关

14、系;II确定采用的技术:II确定采用的框架竽.I数据架构 I持久化数据存储方案:II数据传递.数据复制、数据冋步零策略可选几I运行架构 I确定引入哪些进程与线程:IIIIII协议设计I物理架构I确定物理配置方案;II确定如何将H标程序映射到物理节点.©逻辑架构设计中“发现通用机制”是应被特别强调的.机制(Mechanism)是模式的实例,机制是特定上下文中垂复岀现的何题的特定解决方案.具有良好架构的系统具备槪念完整性。它通过对系统架构建立一种淸晰的认识來发现通用的 抽象和机制.利用这种共性使最终产生的系统结构更为简单实现并验证软件架构一张明正挡不住的趋势* ©架构原型对功能性需求的实现非常冇限.那么“架构验证”耍验证什么?答案是耍骏证架构对质址属性需求的支持程度.包括运行期质址属性和开发期质址属性:©脸证架构的两种方法:*煉型法。对于项目型开发.當采用“原型法”。即对一组架构设计决策在非功能需求方而的满足 程度进行验证该煉型往往是演进型而非抛弃型.*框架法.对于产品型开发.采用“框架法”有更多优点。该方法将架构设计方案用框架的形式实现. 并在此基础上进行评估验证在框架实现后.在框架星础上实现部分应用的功能即实现 一个小的垂直煉型.从而进行实际非功能侧试和开发期质址属性评价。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1