软件工程讲义 课件_第1页
软件工程讲义 课件_第2页
软件工程讲义 课件_第3页
软件工程讲义 课件_第4页
软件工程讲义 课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

七面向对象分析

与设计建模1

七面向对象分析

与设计建模1面向对象分析与设计的建模软件开发需要把问题解决模型化。模型化是理解一个复杂系统的工具;模型是系统早期抽象的重要结构;常用的面向对象分析与设计模型

Rumbaugh等人的OMT模型Coad和Yourdon的模型Booch开发模型UML统一建模语言2面向对象分析与设计的建模软件开发需要把问题解决模型化。2对象模型化技术的三类模型:对象模型、动态模型和功能模型。这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止。。Rumbaugh的对象模型化技术OMT

(objectmodelingtechnique)动态模型对象模型功能模型3对象模型化技术的三类模型:对象模型、动态模型和功能模型。Ru1.对象模型也叫做静态模型,是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的,具有相同结构和含义的具体链接。关联可以是物理的,也可以是逻辑的。41.对象模型也叫做静态模型,是三个模型中最关键的一个模型,类名属性操作类类的实例(类名)属性值类定义示例自动售货机饮料编号价格投入货币送出饮料显示金额按下按钮按退币杆显示售完5类名属性操作类类的实例(类名)类定义示例自动售货机饮料编号投聚合,代表整体与部分的关系,这是一种特殊形式的关联。菱形框表示整体侧对象限定,用以对关联的含义做某种约束。角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。附加的说明对象之间的连接连接属性。(0个或1个)(0个或多个)1+(1个或多个)12,4(1~2个或4个)6聚合,代表整体与部分的关系,这是一种特殊形式的关联。(0个或整体部分段落句子聚合类A类B限定词目录文件文件名限定公司名字个人名字工作职务工资雇主雇员类A角色角色类B7整体部分段落句子聚合类A类B限定词目录文件文件名限定公司个人泛化关联(一般-特殊关系)派生类A派生类A基类雇员年初至今收入计算月工资正式雇员年工资额计算月工资临时雇员小时工资额计算月工资8泛化关联(一般-特殊关系)派生类A派生类A基类雇员正式雇员金额计算器金额累加找零重置自动售货机饮料编号价格投入硬币送出饮料显示金额按下按钮按退币杆显示售空存量计算器饮料编号存量递减显示售空重置退币杆退币杆状态按退币杆顾客姓名硬币投入硬币取出饮料选择按钮按钮状态按钮灯亮按钮灯灭售空灯亮按下按钮顾客按退币杆购买顾客按下按钮属于属于属于属于9金额计算器金额累加自动售货机饮料编号投入硬币存量计算器饮料编2.动态模型动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图。状态图状态A活动状态B活动状态A/操作事件B [条件]起始状态终结状态状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。102.动态模型动态模型着重于系统的控制逻辑,它包括两个图,一取出饮料结算找零扣减存量完成交易显示售货机就绪,所有灯灭显示金额总数饮料售空灯亮显示总额已够饮料选择灯亮投入硬币(有效的)投入硬币规定金额金额不足再投币按下饮料选择按钮回到就绪状态回到就绪状态取消无效硬币取消11取出饮料显示售显示饮料显示总投入硬币投入硬币金额不足按下回到事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。12事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定顾客投入硬币自动售货机计算并显示金额顾客持续投入硬币直到足够的金额自动售货机选择按钮灯亮顾客选择饮料种类并按下选择按钮自动售货机送出相应饮料并结算、找零自动售货机扣除该饮料的存量如自动售货机该饮料有存货,回到初始状态如自动售货机该饮料无存货,显示该饮料“售空”灯亮,不再接受选择,回到初始状态自动售货机售货脚本(事件序列)13顾客投入硬币自动售货机计算并显示金额顾客持续投入硬币直到足够

顾客售货机金额计算器选择按钮存量计算器售空灯

投入硬币累加总额显示总额金额足够灯亮选择按钮按下按钮送出饮料结算余额找零扣减存量存量为零灯亮

14顾客售货机金额计算3.功能模型功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。顾客自动售货机输入:投币、按选择按钮、取消交易输出饮料投币金额显示屏选择按钮灯售空灯显示投币金额选择按钮灯亮售空灯亮顶层数据流图153.功能模型功能模型由数据流图组成,指明从外部输入到外部输饮料按钮灯亮顾客投入硬币判断何种饮料按下选择按钮判断存量为零否饮料编号计算扣减存量找零存量非零顾客送出饮料找零售空灯亮存量为零数据流图16饮料按顾客投入判断何按下选判断饮料编号计算存量非零顾客送出饮Coad与Yourdon的分析与设计1.面向对象分析的概念模型通过面向对象分析建立的系统模型是以概念为中心的,因此称为概念模型。这样的模型由一组相关的类组成。构造和评审面向对象分析概念模型的顺序和由五个层次组成,即类与对象、属性、服务、结构和主题。17Coad与Yourdon的分析与设计1.面向对象分析类与对象层属性层服务层结构层主题层主题服务消息属性实例连接类边界实例边界18类与对属性层服务层结构层主题层主题服务消息属性实例连接类边界2.Coad与Yourdon的设计模型设计模型被划分成了4个组成部分,这些组成部分把实现技术隐藏起来,使之与系统的基本问题领域行为分离开来。从分析转到设计需要在分析模型的基础上加入实现方面的限制。设计模型类似于构造蓝图,设计模型全面地定义了如何用特定的实现技术建立起一个目标系统。192.Coad与Yourdon的设计模型设计模型被划分类与对象层属性层服务层结构层主题层问题领域部分人机交互部分任务管理部分数据管理部分主题服务消息属性实例连接类边界实例边界设计模型的体系结构20类与对属性层服务层结构层主题层问题人机任务数据主题服务消息属UML面向对象分析与设计UML把Booch,Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML的特点:统一标准面向对象可视化,表示能力强大独立于过程容易掌握使用21UML面向对象分析与设计UML把Booch,RumbaugUML的定义UML定义有两个主要组成部分:语义:用自然语言描述表示法:定义UML的可视化标准表示符号使用UML时,要从不同的角度观察系统,为此定义了概念“视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面。22UML的定义UML定义有两个主要组成部分:22结构视图行为视图实现视图环境视图用例视图为最终用户做什么系统静态结构程序员提供什么软件组织与管理系统集成人员如何组织与控制系统系统工程师如何配置和运行系统系统拓扑、交付、安装、操作、通信分析员或测试员系统任务控制与管理(性能,可伸缩性,吞吐量)行为23结构视图行为视图实现视图环境视图用例视图为最终用户做什么系统结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包和子系统。实现视图:描述处于开发环境中的静态软件成分的组织(源程序、构件、数据文件、可执行程序等)。行为视图:描述系统在运行时的并发性,包括任务、线程、进程及其相互作用。软件体系结构的4+1视图模型24结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。用例视图:包括若干关键场景或用例。在初始和细化阶段用来帮助发现和设计体系结构。在构造阶段用来验证各种不同视图。在文档中用来表明其他视图是如何工作的。UML分析建模着重系统的用例模型和结构模型,设计建模着重行为模型,实现模型和环境模型上。25环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层体系结构中主要的元素包括:主要的类,如为业务实体建模的类。将行为赋予类的机制,如协同。模式与框架。层次与子系统。接口以及主要的进程控制或线程控制。UML的三个主要组成元素基本构造块组织构造块的规则运用于整个UML的公共机制26体系结构中主要的元素包括:26UML的构成UML包括三种基本构造块:事物、关系和图。UML事物—结构事物

类名属性操作open()close()move()display()originsizeWindow类27UML的构成UML包括三种基本构造块:事物、关系和图。UML接口—描述一个类或构件的服务(操作)。协作—描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。用例—表示系统想要实现的行为,不关心这些行为是怎样实现的。ISpelling28接口—描述一个类或构件的服务(操作)。ISpellingPlaceOrderOrderManagement用例协作实现主动类—它至少拥有一个进程或线程,故能够启动控制活动。

suspend()flush()EventManager29PlaceOrderOrder用例协作实现主动类—它至少构件—系统中物理的、可替代的部件。节点—系统在运行时存在的物理元素。Orderform.java数据库服务器应用服务器课程管理成绩管理30构件—系统中物理Orderform数据库应用课程成绩30UML事物—行为事物交互—由在特定环境中共同完成一定任务的一组对象之间交换的消息组成。p:Person:CompanyAssign(development)消息有名对象匿名对象31UML事物—行为事物交互—由在特定环境中共同完成一定任状态机—描述了一个对象或一个交互在生存周期内响应事件所经历的状态序列。initializingcommandidleKeypressFinishedExit32状态机—描述了一个对象或一个交互在生存周期内响应事件所经UML事物—分组事物包用户接口包业务对象包数据库包应用包33UML事物—分组事物包用户接口包业务对象包数据库包应用包3UML事物—注释事物注释—依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。CashAccountpresentValue()Seepolicy8-5-96.docfordetailsaboutthesealgorithms.34UML事物—注释事物注释—依附于一个元素或一组元素之上UML关系依赖—两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。CourseScheduleadd(c:Course)remove(c:Course)CourseIterator<<friend>>35UML关系依赖—两个事物之间的语义关系,其中一个事物发关联—一种描述一组对象之间连接的结构关系。聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。泛化—一种一般化—特殊化的关系。employeremployee0..1*36关联—一种描述一组对象之间连接的结构关系。employeEventConsoleWindowDialogBoxControl依赖泛化关联

Windowopen()close()move()display()handleEvent()37EventConsoleWindowDialogBoxCon实现—类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。

两种情况出现实现关系:在接口和实现它们的类或构件之间;用例和它们的协作之间。PlaceOrderOrderManagement用例协作实现38实现—类之间的语义关系,其中的一个类指定了由另一个类保证类属性操作对象属性操作接口用例构件节点状态机包注释依赖关联泛化实现聚合复合

模型中主要的图形元素39类对象接口用例构件节点状态机包注释依赖关联泛化实现聚合复合UML模型的图形UseCaseDiagramsUseCaseDiagrams用例图ScenarioDiagramsScenarioDiagrams协作图StateDiagramsStateDiagrams构件图ComponentDiagramsComponentDiagrams部署图StateDiagramsStateDiagrams对象图ScenarioDiagramsScenarioDiagrams状态图UseCaseDiagramsUseCaseDiagrams顺序图StateDiagramsStateDiagrams类图活动图模型40UML模型的图形UseCaseUseCase用例图Sc1.用例图用例图展现了一组用例、参与者以及它们间的关系。可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。在对系统行为组织和建模方面,用例图的是相当重要的。411.用例图用例图展现了一组用例、参与者以及它们间的关系。4查询商品价格顾客库存系统售货员总账系统查询商品信息预售商品网上销售商品打折销售商品出售商品查询商品成分商品查询售货管理42查询商品价格顾客库存系统售货员总账系统查询商品信息预售商品网说明顾客持所欲购买的商品至收银台结帐,店员刷商品条码后,根据数量及单价计算总金额商品售出后,商品编码、单价、总金额存入电脑,数据记载到“库存系统”和“总帐系统”中(含预售、网络购物、打折销售)。。事件流基本事件流刷条码?结算金额?付款?扣库存?记入日记账?打印发票异常事件流第一异常事件流顾客结帐后更换商品第二异常事件流顾客将已售商品退回特殊需求第一个特殊需求允许退货,并将退回商品加回库存第二个特殊需求记录顾客的性别,年龄,供后续统计分析用用例规格说明:销售商品43说明顾客持所欲购买的商品至收银台结帐,店员刷商品条码后,根据2.类图类图展示了一组类、接口和协作及它们间的关系。类图没有时间概念,是概念数据模型(如E-R图)的一种延伸。用类图说明系统的静态结构视图,包含主动类的类图—专注于系统的静态处理视图。系统可有多个类图,单个类图仅表达了系统的一个方面,要在高层给出类的主要职责,在低层给出类的属性和操作。442.类图类图展示了一组类、接口和协作及它们间的关系。44类图是从系统构成角度来描述系统。类的表示:类的名称属性属性:数据类型属性:数据类型=初值操作操作(参数表):结果类型45类图是从系统构成角度来描述系统。类的名称属性操作45限定关联类1类2限定词关联名称角色1角色2聚合、引用和重复度0..*0..10..*整体类名部分类名2部分类名10..1聚合简单引用复合聚合双方捆绑46限定关联类1类2限定词关联名称角色1角色2聚合、引用和重复度关联名类1类2关联类名属性操作角色1角色2关联类47关联名类1类2关联类名属性操作角色1角色2关联类47泛化关系超类子类1子类2操作抽象类操作48泛化关系超类子类1子类2抽象类48雇员雇员标识:char姓名:char职务:char工资:long项目项目标识项目名称参与开始日期结束日期任务任务标识任务名称任务费用技能技能标识技能名称团队团队标识承担工作部门部门标识部门名称客户客户标识客户名称客户地址客户电话客户代表0..*0..*10..*1..*10..*1..*1..*110..*11..*0..*1..*49雇员雇员标识:char项目项目标识参与开始日期任务任务标识3.对象图对象图展示了一组对象及它们间的关系。用对象图说明类图中类的对象实例的数据结构和静态快照,即在某一时刻,一组对象的状态及其关系。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面因素外,它与类图作用是相同的。503.对象图对象图展示了一组对象及它们间的关系。50c:公司名称=“研发”d2:部门d1:部门名称=“销售”d3:部门名称=“打印机销售”

:联系信息地址=“清华产业楼411”p:人员姓名=“郑人杰”雇员标识=6037职务=“销售副总”经理连接link属性值对象匿名对象51c:公司名称=“研发”d2:部门d1:部门名称=“销售4.包图

包图表明包及其之间的依赖类图。包是对模型中涉及的元素分组所得的结果,是具有特定语义的一个子集,必须保证低耦合、高内聚。广义地讲,包可以包含类、接口、构件、节点、协作、用例等,还可以内嵌其他子包。包之间的访问权限通过输出(输出品)和导入(进口货)设置,虚箭头从源包到目标包。524.包图包图表明包及其之间的依赖类图。5253535.构件图构件图展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。构件图表示系统的静态实现视图。545.构件图构件图展现了一组构件之间的组织和依赖,用于对源代CourseCourseOfferingStudentProfessorCourse.dllPeople.dll课程用户Register.exeBilling.exe课表系统55CourseCourseStudentProfessorCo6.部署图部署图展现了对运行时处理节点以及其中构件的配置每一节点代表一个计算单元。。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。用部署图说明系统结构的静态环境视图,即说明分布、交付和安装的物理系统。566.部署图部署图展现了对运行时处理节点以及其中构件的配置每注册服务器数据库宿舍客户机图书馆客户机主排课客户机57注册数据库宿舍图书馆主排课578.活动图活动图是一种特殊的状态图,描述要做的活动、执行这些活动的顺序以及工作流。它对于系统的功能建模特别重要,强调对象间的控制流程。高层活动图用于表示任务。即用于分析用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,还可用于业务过程建模,对系统的功能建模。低层活动图用于表示类的方法。588.活动图活动图是一种特殊的状态图,描述要做的活动、执行这按订单供货接订单开发票结清订单快速交付正常交付收款起点分叉活动分支合并汇合结束[紧急订单][非紧急订单]变迁59按订单供货接订单开发票结清订单快速交付正常交付收款起点分叉活9.状态图状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。一个状态图描述了一个状态机,用状态图说明系统的动态视图。状态图对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存周期。609.状态图状态图展示了一个特定对象的所有可能状态以及由于各Project对象的状态图注册预售开发系统分析系统设计程序编码软件测试系统部署单元测试与调试维护新projectproject完开始结束61Project对象的状态图注册预售开发系统系统程序软件系统单10.交互图交互图展现了按一定的目的进行一种交互,它由在一个上下文中的一组对象及它们之间交互的信息组成。交互图可用于描述一个用例的行为。顺序图和协作图都是交互图,它们可以相互转换。如果希望查看单个对象跨用例的行为,要使用状态图。如果希望查看跨用例跨线程的行为,要使用活动图。6210.交互图交互图展现了按一定的目的进行一种交互,它由在一10-1顺序图顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。对象表述为虚垂线顶端的矩形小框。垂线是对象的生命线,说明对象的生命。生命线之间的箭头表示消息。消息出现的次序自上而下。消息箭头可以回到同一条生命线,指明自调用,即对象发给自己的消息。6310-1顺序图顺序图展现了一组对象和由这组对象收发的消息,移动电话系统的用例图移动用户移动网络与对方通话下载图符下载铃声管理电话本64移动电话系统的用例图移动用户移动网络与对方通话下载图符下载铃移动电话系统的顺序图:移动用户:移动按键:移动显示:移动手机:移动基站按数字键显示按键号码按发送键连接基站建立连接连接成功显示连接成功65移动电话系统的顺序图:移动用户:移动按键:移动显10-2协作图协作图展现了一组对象,这组对象之间的连接以及这组对象收发的消息。它强调收发消息的对象结构组织,按组织结构对控制流建模。协作图中的协作不是参与者与系统之间的交互,而是系统内部某一个用例中各个对象之间信息传递的方式。消息上所附编号指明执行顺序。6610-2协作图协作图展现了一组对象,这组对象之间的连接以及移动电话系统的协作图:移动用户1:按数字键3:按发送键

:移动按键2:显示按键号码

:移动显示

:移动手机

:移动基站4:连接基站5:建立连接6:连接成功7:显示连接成功67移动电话系统的协作图:移动用户1:按数字键:移动按

七面向对象分析

与设计建模68

七面向对象分析

与设计建模1面向对象分析与设计的建模软件开发需要把问题解决模型化。模型化是理解一个复杂系统的工具;模型是系统早期抽象的重要结构;常用的面向对象分析与设计模型

Rumbaugh等人的OMT模型Coad和Yourdon的模型Booch开发模型UML统一建模语言69面向对象分析与设计的建模软件开发需要把问题解决模型化。2对象模型化技术的三类模型:对象模型、动态模型和功能模型。这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止。。Rumbaugh的对象模型化技术OMT

(objectmodelingtechnique)动态模型对象模型功能模型70对象模型化技术的三类模型:对象模型、动态模型和功能模型。Ru1.对象模型也叫做静态模型,是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的,具有相同结构和含义的具体链接。关联可以是物理的,也可以是逻辑的。711.对象模型也叫做静态模型,是三个模型中最关键的一个模型,类名属性操作类类的实例(类名)属性值类定义示例自动售货机饮料编号价格投入货币送出饮料显示金额按下按钮按退币杆显示售完72类名属性操作类类的实例(类名)类定义示例自动售货机饮料编号投聚合,代表整体与部分的关系,这是一种特殊形式的关联。菱形框表示整体侧对象限定,用以对关联的含义做某种约束。角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。附加的说明对象之间的连接连接属性。(0个或1个)(0个或多个)1+(1个或多个)12,4(1~2个或4个)73聚合,代表整体与部分的关系,这是一种特殊形式的关联。(0个或整体部分段落句子聚合类A类B限定词目录文件文件名限定公司名字个人名字工作职务工资雇主雇员类A角色角色类B74整体部分段落句子聚合类A类B限定词目录文件文件名限定公司个人泛化关联(一般-特殊关系)派生类A派生类A基类雇员年初至今收入计算月工资正式雇员年工资额计算月工资临时雇员小时工资额计算月工资75泛化关联(一般-特殊关系)派生类A派生类A基类雇员正式雇员金额计算器金额累加找零重置自动售货机饮料编号价格投入硬币送出饮料显示金额按下按钮按退币杆显示售空存量计算器饮料编号存量递减显示售空重置退币杆退币杆状态按退币杆顾客姓名硬币投入硬币取出饮料选择按钮按钮状态按钮灯亮按钮灯灭售空灯亮按下按钮顾客按退币杆购买顾客按下按钮属于属于属于属于76金额计算器金额累加自动售货机饮料编号投入硬币存量计算器饮料编2.动态模型动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图。状态图状态A活动状态B活动状态A/操作事件B [条件]起始状态终结状态状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。772.动态模型动态模型着重于系统的控制逻辑,它包括两个图,一取出饮料结算找零扣减存量完成交易显示售货机就绪,所有灯灭显示金额总数饮料售空灯亮显示总额已够饮料选择灯亮投入硬币(有效的)投入硬币规定金额金额不足再投币按下饮料选择按钮回到就绪状态回到就绪状态取消无效硬币取消78取出饮料显示售显示饮料显示总投入硬币投入硬币金额不足按下回到事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。79事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定顾客投入硬币自动售货机计算并显示金额顾客持续投入硬币直到足够的金额自动售货机选择按钮灯亮顾客选择饮料种类并按下选择按钮自动售货机送出相应饮料并结算、找零自动售货机扣除该饮料的存量如自动售货机该饮料有存货,回到初始状态如自动售货机该饮料无存货,显示该饮料“售空”灯亮,不再接受选择,回到初始状态自动售货机售货脚本(事件序列)80顾客投入硬币自动售货机计算并显示金额顾客持续投入硬币直到足够

顾客售货机金额计算器选择按钮存量计算器售空灯

投入硬币累加总额显示总额金额足够灯亮选择按钮按下按钮送出饮料结算余额找零扣减存量存量为零灯亮

81顾客售货机金额计算3.功能模型功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。顾客自动售货机输入:投币、按选择按钮、取消交易输出饮料投币金额显示屏选择按钮灯售空灯显示投币金额选择按钮灯亮售空灯亮顶层数据流图823.功能模型功能模型由数据流图组成,指明从外部输入到外部输饮料按钮灯亮顾客投入硬币判断何种饮料按下选择按钮判断存量为零否饮料编号计算扣减存量找零存量非零顾客送出饮料找零售空灯亮存量为零数据流图83饮料按顾客投入判断何按下选判断饮料编号计算存量非零顾客送出饮Coad与Yourdon的分析与设计1.面向对象分析的概念模型通过面向对象分析建立的系统模型是以概念为中心的,因此称为概念模型。这样的模型由一组相关的类组成。构造和评审面向对象分析概念模型的顺序和由五个层次组成,即类与对象、属性、服务、结构和主题。84Coad与Yourdon的分析与设计1.面向对象分析类与对象层属性层服务层结构层主题层主题服务消息属性实例连接类边界实例边界85类与对属性层服务层结构层主题层主题服务消息属性实例连接类边界2.Coad与Yourdon的设计模型设计模型被划分成了4个组成部分,这些组成部分把实现技术隐藏起来,使之与系统的基本问题领域行为分离开来。从分析转到设计需要在分析模型的基础上加入实现方面的限制。设计模型类似于构造蓝图,设计模型全面地定义了如何用特定的实现技术建立起一个目标系统。862.Coad与Yourdon的设计模型设计模型被划分类与对象层属性层服务层结构层主题层问题领域部分人机交互部分任务管理部分数据管理部分主题服务消息属性实例连接类边界实例边界设计模型的体系结构87类与对属性层服务层结构层主题层问题人机任务数据主题服务消息属UML面向对象分析与设计UML把Booch,Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML的特点:统一标准面向对象可视化,表示能力强大独立于过程容易掌握使用88UML面向对象分析与设计UML把Booch,RumbaugUML的定义UML定义有两个主要组成部分:语义:用自然语言描述表示法:定义UML的可视化标准表示符号使用UML时,要从不同的角度观察系统,为此定义了概念“视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面。89UML的定义UML定义有两个主要组成部分:22结构视图行为视图实现视图环境视图用例视图为最终用户做什么系统静态结构程序员提供什么软件组织与管理系统集成人员如何组织与控制系统系统工程师如何配置和运行系统系统拓扑、交付、安装、操作、通信分析员或测试员系统任务控制与管理(性能,可伸缩性,吞吐量)行为90结构视图行为视图实现视图环境视图用例视图为最终用户做什么系统结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包和子系统。实现视图:描述处于开发环境中的静态软件成分的组织(源程序、构件、数据文件、可执行程序等)。行为视图:描述系统在运行时的并发性,包括任务、线程、进程及其相互作用。软件体系结构的4+1视图模型91结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。用例视图:包括若干关键场景或用例。在初始和细化阶段用来帮助发现和设计体系结构。在构造阶段用来验证各种不同视图。在文档中用来表明其他视图是如何工作的。UML分析建模着重系统的用例模型和结构模型,设计建模着重行为模型,实现模型和环境模型上。92环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层体系结构中主要的元素包括:主要的类,如为业务实体建模的类。将行为赋予类的机制,如协同。模式与框架。层次与子系统。接口以及主要的进程控制或线程控制。UML的三个主要组成元素基本构造块组织构造块的规则运用于整个UML的公共机制93体系结构中主要的元素包括:26UML的构成UML包括三种基本构造块:事物、关系和图。UML事物—结构事物

类名属性操作open()close()move()display()originsizeWindow类94UML的构成UML包括三种基本构造块:事物、关系和图。UML接口—描述一个类或构件的服务(操作)。协作—描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。用例—表示系统想要实现的行为,不关心这些行为是怎样实现的。ISpelling95接口—描述一个类或构件的服务(操作)。ISpellingPlaceOrderOrderManagement用例协作实现主动类—它至少拥有一个进程或线程,故能够启动控制活动。

suspend()flush()EventManager96PlaceOrderOrder用例协作实现主动类—它至少构件—系统中物理的、可替代的部件。节点—系统在运行时存在的物理元素。Orderform.java数据库服务器应用服务器课程管理成绩管理97构件—系统中物理Orderform数据库应用课程成绩30UML事物—行为事物交互—由在特定环境中共同完成一定任务的一组对象之间交换的消息组成。p:Person:CompanyAssign(development)消息有名对象匿名对象98UML事物—行为事物交互—由在特定环境中共同完成一定任状态机—描述了一个对象或一个交互在生存周期内响应事件所经历的状态序列。initializingcommandidleKeypressFinishedExit99状态机—描述了一个对象或一个交互在生存周期内响应事件所经UML事物—分组事物包用户接口包业务对象包数据库包应用包100UML事物—分组事物包用户接口包业务对象包数据库包应用包3UML事物—注释事物注释—依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。CashAccountpresentValue()Seepolicy8-5-96.docfordetailsaboutthesealgorithms.101UML事物—注释事物注释—依附于一个元素或一组元素之上UML关系依赖—两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。CourseScheduleadd(c:Course)remove(c:Course)CourseIterator<<friend>>102UML关系依赖—两个事物之间的语义关系,其中一个事物发关联—一种描述一组对象之间连接的结构关系。聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。泛化—一种一般化—特殊化的关系。employeremployee0..1*103关联—一种描述一组对象之间连接的结构关系。employeEventConsoleWindowDialogBoxControl依赖泛化关联

Windowopen()close()move()display()handleEvent()104EventConsoleWindowDialogBoxCon实现—类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。

两种情况出现实现关系:在接口和实现它们的类或构件之间;用例和它们的协作之间。PlaceOrderOrderManagement用例协作实现105实现—类之间的语义关系,其中的一个类指定了由另一个类保证类属性操作对象属性操作接口用例构件节点状态机包注释依赖关联泛化实现聚合复合

模型中主要的图形元素106类对象接口用例构件节点状态机包注释依赖关联泛化实现聚合复合UML模型的图形UseCaseDiagramsUseCaseDiagrams用例图ScenarioDiagramsScenarioDiagrams协作图StateDiagramsStateDiagrams构件图ComponentDiagramsComponentDiagrams部署图StateDiagramsStateDiagrams对象图ScenarioDiagramsScenarioDiagrams状态图UseCaseDiagramsUseCaseDiagrams顺序图StateDiagramsStateDiagrams类图活动图模型107UML模型的图形UseCaseUseCase用例图Sc1.用例图用例图展现了一组用例、参与者以及它们间的关系。可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。在对系统行为组织和建模方面,用例图的是相当重要的。1081.用例图用例图展现了一组用例、参与者以及它们间的关系。4查询商品价格顾客库存系统售货员总账系统查询商品信息预售商品网上销售商品打折销售商品出售商品查询商品成分商品查询售货管理109查询商品价格顾客库存系统售货员总账系统查询商品信息预售商品网说明顾客持所欲购买的商品至收银台结帐,店员刷商品条码后,根据数量及单价计算总金额商品售出后,商品编码、单价、总金额存入电脑,数据记载到“库存系统”和“总帐系统”中(含预售、网络购物、打折销售)。。事件流基本事件流刷条码?结算金额?付款?扣库存?记入日记账?打印发票异常事件流第一异常事件流顾客结帐后更换商品第二异常事件流顾客将已售商品退回特殊需求第一个特殊需求允许退货,并将退回商品加回库存第二个特殊需求记录顾客的性别,年龄,供后续统计分析用用例规格说明:销售商品110说明顾客持所欲购买的商品至收银台结帐,店员刷商品条码后,根据2.类图类图展示了一组类、接口和协作及它们间的关系。类图没有时间概念,是概念数据模型(如E-R图)的一种延伸。用类图说明系统的静态结构视图,包含主动类的类图—专注于系统的静态处理视图。系统可有多个类图,单个类图仅表达了系统的一个方面,要在高层给出类的主要职责,在低层给出类的属性和操作。1112.类图类图展示了一组类、接口和协作及它们间的关系。44类图是从系统构成角度来描述系统。类的表示:类的名称属性属性:数据类型属性:数据类型=初值操作操作(参数表):结果类型112类图是从系统构成角度来描述系统。类的名称属性操作45限定关联类1类2限定词关联名称角色1角色2聚合、引用和重复度0..*0..10..*整体类名部分类名2部分类名10..1聚合简单引用复合聚合双方捆绑113限定关联类1类2限定词关联名称角色1角色2聚合、引用和重复度关联名类1类2关联类名属性操作角色1角色2关联类114关联名类1类2关联类名属性操作角色1角色2关联类47泛化关系超类子类1子类2操作抽象类操作115泛化关系超类子类1子类2抽象类48雇员雇员标识:char姓名:char职务:char工资:long项目项目标识项目名称参与开始日期结束日期任务任务标识任务名称任务费用技能技能标识技能名称团队团队标识承担工作部门部门标识部门名称客户客户标识客户名称客户地址客户电话客户代表0..*0..*10..*1..*10..*1..*1..*110..*11..*0..*1..*116雇员雇员标识:char项目项目标识参与开始日期任务任务标识3.对象图对象图展示了一组对象及它们间的关系。用对象图说明类图中类的对象实例的数据结构和静态快照,即在某一时刻,一组对象的状态及其关系。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面因素外,它与类图作用是相同的。1173.对象图对象图展示了一组对象及它们间的关系。50c:公司名称=“研发”d2:部门d1:部门名称=“销售”d3:部门名称=“打印机销售”

:联系信息地址=“清华产业楼411”p:人员姓名=“郑人杰”雇员标识=6037职务=“销售副总”经理连接link属性值对象匿名对象118c:公司名称=“研发”d2:部门d1:部门名称=“销售4.包图

包图表明包及其之间的依赖

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论