软件架构设计阅读笔记2
这部分主要介绍了软件架构设计的方法,其中一般的软件过程主要经过概念化阶段、分析阶段、架构设计阶段、并行开发与测试阶段和验收与交付阶段,而软件架构设计过程主要经过需求分析、领域建模、确定关键需求、概念性架构设计、细化架构和验证架构 阶段。
需求捕获是获取知识的过程,知识从无到有。
需求分析是挖掘和整理知识的过程,它在已掌握知识的基础上进行。
系统分析是指该怎么做。
软件需求分为功能需求和非功能需求,非功能需求是指开发质量属性。运行期质量属性有性能、安全性、易用性、持续可用性、可伸缩性、互操作性、可靠性和鲁棒性。开发期质量属性是易理解性、可扩展性、可重用性、可测试性、可维护性和可移植性。
领域模型是对实际问题领域的抽象表示,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。它的作用包括探索复杂问题、固化领域知识;决定功能范围、影响可扩展性;提供交流基础、促进有效沟通。
确定关键需求:需要全面整理需求,分析约束性需求,确定关键功能需求和关键质量属性需求。
概念架构设计:首先进行鲁棒性分析,通过分析用例规约中的事件流,识别出实现用例规定的功能所需的主要对象及其职责,形成以职责模型为主的初步设计。鲁棒图包括三种元素:边界对象,控制对象和实体对象。然后引入架构模式,比如分层、MVC和微内核,微内核架构扩展性很强,可移植性强,软件系统生命周期长。最后进行质量属性分析。
细化结构设计:主要通过五视图法进行细化架构,通过细化功能单元发现通用机制细化领域模型;确定子系统接口和交互机制来完成逻辑架构,确定要开发或直接利用的程序包之间的依赖关系来开发架构,持久化数据存储方案进行数据架构,物理架构主要是完成物理配置的方案。
实现并验证软件架构:原型法,对一组架构设计决策在非功能需求方面的满足程度进行验证。该原型往往是演进型,而非抛弃型。框架法,对于产品型开发,采用“框架法”有更多优点。该方法将架构设计方案用框架的形式实现,并在此基础上进行评估验证。
这本书和《一线架构实践指南》是同一作者写的,里面的很多观点都是相同的,多次进行了强调,这就说明这些内容是十分重要的,今后进行软件架构设计的时候要仔细研究,通过实践将这些理论更加深入的理解,通过这两本书籍的阅读,也加深了关于软件架构的知识,鲁棒性分析填补了分析和设计之间的鸿沟,绘制鲁棒图是进行设计,它是进行设计的第一步,十分重要。