week01 总结
软件架构
软件架构,是有关整体结构和组件的抽象描述,用于指导大型软件系统各个方面的设计。
架构视图
4+1 视图模型
软件架构={元素,形式,关系/约束}
单一的视图无法完整的表达架构,因此需要具备完整的视图集。
逻辑视图(Logical View),设计的对象模型。
过程视图(Process View),捕捉设计的并发和同步特征。
物理视图(Physical View),描述了软件到硬件的映射,反映了部署特性。
开发视图(Development View),描述了开发环境中软件的静态组织结构。
场景视图(scenarios),描述用例场景。
架构是基于场景的。
逻辑视图
相关方:客户,用户,开发组织管理者
视角:系统的功能元素,以及它们接口、职责、交互。
主要元素:系统、子系统、功能模块、子功能模块、接口
用途:开发组织划分,成本/进度的评估
开发视图
物理视图
过程视图
相关方:性能优化,开发相关人员
视角:系统运行时线程、进程的情况。
主要元素:系统进程、线程以及处理队列等。
场景视图
相关方:用户、设计及开发人员
视角:概括了架构上最重要的场景(最典型或者最有风险的)及非功能性需求,通过这些场景的实现,阐述了架构的广度或众多架构元素运行的方式。
模型
模型是一个系统完整的抽象,人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴含在模型中。
通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射。
软件建模语言
UML
UML 图的分类
静态图
静态图 — 通过描述类、对象和数据结构以及它们之间的关系,来描述软件要素中不变的逻辑结构。
用例图(Use Case Diagrams)
对象图(Object Diagrams)
类图(Class Diagrams)
组件图(Component Diagrams)
包图(Package Diagrams)
部署图(Deployment Diagrams)
动态图
动态图—通过描述执行流程或者实体状态变化的方式,来展示软件实体在执行过程中的变化过程。
协作图(Collaboration Diagrams)
序列图(Sequence Diagrams)
活动图(Activity Diagrams)
状态图(State Diagrams)
通用模型元素
模型元素与模型元素之间的连接关系也是模型元素,常见的关系有关联(association)、泛化(generalization)、依赖(dependency)和聚合(aggregation)。
静态建模
静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。
类和对象的建模,是 UML 建模的基础。UML 的静态建模机制包括:
用例图(Use Case Diagrams)
角色(参与者、使用者)、边界、功能(用例)、关系
对象图(Object Diagrams)
类图(Class Diagrams)
组件图(Component Diagrams)
包图(Package Diagrams)
部署图(Deployment Diagrams)
动态建模
动态模型主要描述系统的动态行为和控制结构。动态行为包括系统中对象生存期内可能的状态及事件发生时状态的转移,对象之间的动态合作关系,显示对象之间的交互过程以及交互顺序,同时描述了为满足用例要求所进行的活动以及活动间的约束关系。
在动态模型中,对象之间的交互是通过对象间消息的传递来完成的。对象通过相互间的通信(消息传递)进行合作,并在其生命周期中根据通信的结果不断改变自身的状态。
包括四类图:
状态图(state diagram): 状态图用来描述对象、子系统、系统的生命周期。
活动图(activity diagram) : 着重描述操作实现中完成的工作以及用例或对象中的活动,活动图是状态图的一个变种。
时序图(sequence diagram) : 是一种交互图,主要描述对象之间的动态合作关系以及合作过程中的行为次序,常用来描述一个用例的行为。
合作图(collaboration diagram) : 用来描述相互合作的对象间的交互关系,它描述的交互关系是对象间的消息连接关系。
软件设计的阶段
需求分析
做什么
概要设计
有什么功能和模块
详细设计
具体实现,类图,对象图等
版权声明: 本文为 InfoQ 作者【seki】的原创文章。
原文链接:【http://xie.infoq.cn/article/e73a99aa6a3ed08a38c86b865】。文章转载请联系作者。
评论