您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第2讲-软件体系结构建模
哈尔滨工业大学计算机学院唐好选Email:tanghx@hit.edu.cn软件体系结构建模主要内容软件体系结构建模概况利用UML描述软件体系结构利用“4+1”模型描述软件体系结构结构模型框架模型动态模型过程模型功能模型软件体系结构建模的种类结构模型结构模型方法是最直观、最普遍的软件体系结构建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质等。研究结构模型的核心是体系结构描述语言框架模型框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体结构框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。如应用广泛的MVC(模型-视图-控制器)框架模型解决了用户界面与业务实现相分离的问题动态模型动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程过程模型过程模型研究构造系统的步骤和过程结构是遵循某些过程脚本的结果功能模型功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务功能模型可以看作是一种特殊的框架模型软件体系结构构件连接件拓扑约束性能接口服务角色配置1***软件体系结构的核心模型软件体系结构的核心模型-构件构件是一种可部署的单元,具有规范的接口规约和显式的语境依赖,而接口功能由构件内部封装的服务来实现客户构件服务接口软件体系结构的核心模型-连接件连接是构件间建立和维护行为关联与信息传递的途径连接需要两方面的支持:连接发生和维持的机制—实现连接的物质基础(机制)连接能够正确、无二义、无冲突进行的保证—连接正确有效的进行信息交换的规则(协议)连接件(Connector):表示构件之间的交互并实现构件之间的连接,连接件也可看作一类特殊的构件,区别在于:一般构件是软件功能设计和实现的承载体连接件是负责完成构件间信息交换和行为联系的专用构件软件体系结构建模的三个层次图形化模型:SA模型的多视图表示,从不同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来以描述整体的SA模型形式化模型:SA描述语言(ADL),在SA基本概念的基础上,选取适当的形式化或半形式化的方法来描述一个特定体系结构文档化模型:SA文档化,记录和整理软件体系结构设计方案的各类细节软件体系结构的生命周期模型体系结构的非形式化描述体系结构的形式化基础(数学模型)体系结构的规范描述体系结构演化体系结构提供、评价和度量体系结构的终结体系结构实施体系结构求精的验证体系结构求精体系结构的性质分析需要演化或扩展否否是需要求精否是否主要内容软件体系结构建模概况利用UML描述软件体系结构利用“4+1”模型描述软件体系结构UML用若干个不同的视图完整描述所建造的系统,每个视图(View)是由若干幅图(diagram)组成的一种抽象,而每一幅图又有若干个模型元素组成模型元素表示图中的概念,如类(class)、对象(object)、用例(use-case)、结点(node)、接口(interface)、包(package)、注解(note)、构件(component)等用于表示模型元素之间相互连接的关系也是模型元素,如关联(Association)、泛化(generalization)、依赖(dependency)、聚集(aggregation)等回顾UMLUML结构图UML事物关系图结构事物行为事物分组事物辅助事物依赖关系泛化关系聚集关系关联关系静态图动态图用例图部署图类图构件图对象图顺序图活动图状态图协作图交互状态机包注释节点组件活动协作接口类用例共享聚集组合聚集类属性操作对象属性操作状态用例结点包注解构件接口关联依赖组合聚集共享聚集泛化细化静态图(StaticDiagram)用例图(use-casediagram):展示了各种外部行为者与系统所提供的用例之间的连接.类图(classdiagram):描述系统中类的静态结构,即类与类之间的相互联系对象图(objectdiagram):是类图的实例,展示了系统在某一时间点上的一个快照构件图(componentdiagram):描述实现系统的元素组织部署图(deploymentdiagram):描述系统环境元素的配置,即系统中软件和硬件的物理结构关于图(diagram)的说明动态图(DynamicDiagram)时序图(sequencediagram):按时间顺序描述系统元素间交互协作图(collaborationdiagram):说明消息的交互,显示对象及对象之间的关系状态图(statediagram):说明类的对象的所有可能的状态以及哪些事件将导致状态的改变活动图(activitydiagram):展示了连续的活动流,通常用来描述完成一个操作所需要的活动关于图(diagram)的说明用例图活动图类图时序图协作图构件图部署图状态图描述每个用例的活动对体系结构建模,确定包和类及类之间关系自动生成细化关于图(diagram)的说明对象图关联(Association)是类之间的连接,即与该关联连接的类的对象之间的语义连接,称为链(link)常规关联,比如公司和员工的关联,关联的重数默认为1多重关联:两个以上的类之间互相关联,如程序员用某种程序语言开发了某个项目类之间的几种关系聚合(Aggregation):是一种整体/部分层次关系,一个聚合对象包括(拥有)其他对象,每个被包括的对象被认为是聚合对象的一部分,聚集可以看作关联的特例组合聚合(Composition):“整体”拥有它的“部分”,“部分”生存在整体中,它们与整体一起消亡,整体的重数必须是0或1共享聚合(sharedaggregation):“部分”对象可以是任意“整体”对象的一部分,如果整体的重数不是1,这种聚集是共享的类之间的几种关系泛化/特殊化(Generalization/Specialization):是一种“一般-特殊关系”,特殊类和一般类之间的关系是“isa”的关系,比如汽车和交通工具交叠(overlapping)泛化:存在某种具有公共父类的多重继承不交(disjoint)泛化:是一种默认的泛化关系,具有公共父类的子类不能特化出公共的子类完全(complete)泛化:可特化出所有的子类不完全(incomplete)泛化:默认泛化类型类之间的几种关系依赖和细化依赖:一个类的实现依靠另一个类细化:对同一个事物在不同抽象级别上的两种描述之间的关系,细化用来协调不同阶段模型之间的关系约束和派生约束:定义属性的取值范围,当一个关联是另一个关联的子集时,它们建立了约束派生:事物被导出的规则,如年龄可通过当前日期和出生日期派生出来类之间的几种关系用例建模用例图:一个用例模型可由若干幅用例图组成,一幅用例图包含的模型元素有系统、行为者、用例以及它们之间的不同关系,如泛化,关联和聚集等基本步骤确定行为者确定用例用例之间的关系:扩展《extend》和使用《use》(均属于泛化关系).通常在描述一般行为的变化时采用《extend》关系;而在两个和更多的用例中出现重复描述,又想避免这种重复时可采用《use》关系用例图举例设置边界风险分析交易估计进行交易超越边界更新账目评价《use》《use》《extend》记账系统销售员交易经理交易人员一个贸易系统的用例类和对象建模类和对象模型描述了系统的静态结构,在UML中用类图和对象图来表示基本步骤确定类:寻找类,定义属性,定义操作画出类图和对象图类图和对象图举例LineX1:realY1:realX2:realY2:realPointX:realY:real2..*0..*相交类图L1:LineX1=10Y1=10X2=-10Y2=-10L2:LineX1=-10Y1=10X2=10Y2=10L3:LineX1=10Y1=5X2=-10Y2=-5L4:LineX1=9Y1=5X2=9Y2=3P1:PointX=0Y=0P2:PointX=9Y=4.5对象图动态建模用来描述系统的动态行为,显示系统在运行期间不同时刻的动态交互,用状态图,时序图,协作图和活动图来建立动态模型状态图举例状态名状态变量活动状态初始状态结束状态迁移OnFirstfloorMovingUpmovingtofloorIdletimer=0do/increasetimerMovingDownmovingtofloorMovingtoFirstfloorarrivedgoup(floor)arrivedgoup(floor)godown(floor)[timer=time-out]arrived协作图举例:Button:Elevatorcontrol:Order{new}:Quene:ElevatorPush()1:GetElevator(floorid)1.1*[allquenes]:len=Length(){Broadcast}1.3:Invoke(job)2:nextjob=GetJob(){local}nextjob{parameter}job1.2:Create()job控制电梯运行的协作图顺序图举例EC应用MAS服务器IAGW-AIAGW-M终端用户短信发送请求提交鉴权鉴权结果返回状态报告状态报告短信发送请求短信下发记录消息状态查询消息状态消息状态活动图举例图书管理系统管理员的活动图NO物理体系结构建模系统的体系结构用来描述系统各个部分的结构、接口以及它们用于通信的机制,系统体系结构可分为逻辑体系结构和物理体系结构逻辑体系结构涉及到系统的功能,物理体系结构涉及到系统的详细描述(根据系统所包含的硬件和软件),它显示了系统的硬件结构,包括不同的结点和这些结点之间如何连接UML中的物理体系结构用构件图和部署图来描述构件图举例GasNet(GasNet.cpp)WaterNet(waternet.cpp)MainClass(main.cpp)GasNet(gasnet.obj)WaterNet(Water.obj)MainClass(main.obj)SuperMap(SuperTopo.ocx)HeatNet(HeatNet.exe)部署图举例用例视图:展示了外部行为者所观察到的系统将提交的功能,用用例图或活动图描述用例,针对客户、分析者、设计者、编程者和测试者逻辑视图:展示系统内部如何提供系统的功能,针对分析者、设计者和编程者。不仅描述系统的静态结构(类图和对象图),还可描述对象之间的动态协作关系(状态图/活动图,时序图/协作图)构件视图:展示了构件的组织,描述了实现模块和他们之间的依赖关系,针对开发者(构件图)并发视图:展示了系统的并发性,针对开发者和系统集成者,用动态图描述部署视图:展示了系统的物理部署,针对开发者,集成者和测试者,用部署图描述UML的五种视图主要内容软件体系结构建模概况利用UML描述软件体系结构利用“4+1”模型描述软件体系结构RUP统一过程模型分析模型说明用况模型包含了所有用例,即与用户之间关系设计模型表现实施模型分布实现模型实现测试模型验证4+1模型概述逻辑视图进程视图开发视图物理视图场景视图描述系统功能需求,描述系统为最终用户做什么,是设计模型的抽象描述与系统开发有关的部分。是系统的静态视图,针对程序员描述系统拓扑结构、交付、安装与通信。针对系统工程师。描述系统并发性(任务、线程、过程及其交互),针对系统集成人员设计人员/测试人行为Kruchten在1995年提出了一个“4+1”的视图模型模型和构架视图的关系模型构架视图设计模型逻辑视图设计模型(或复杂系统的过程模型)进程视图实现模型开发视图实施模型物理视图用况模型用况(场景)视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能
本文标题:第2讲-软件体系结构建模
链接地址:https://www.777doc.com/doc-6498874 .html