




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件需求分析与设计架构设计模型,2018/1/30,2,架构和设计模型,主要内容从需求到设计迭代计划逻辑架构和UML包图迈向对象设计UML交互图UML类图,2018/1/30,3,从需求到设计迭代进化,以迭代方式做正确地事,正确的做事分析关注做正确的事设计强调正确的做事尽早引发变更在迭代早期,发现和变更一些需求是自然的,也是有帮助的尽早编程、测试和演示有助于尽早引发不可避免的变更,2018/1/30,4,UP制品关系示例,2018/1/30,5,逻辑架构和NML包图,逻辑架构是软件类的宏观组织结构,他将软件类组织为包(命名空间)、子系统和层没有决定如何在不同的操作系统或网络层中物理的计算机上对这些元素进行部署层是对类、包或子系统的甚为粗粒度的分组,具有对系统主要方面加以内聚的职责用户界面应用逻辑和领域对象表示领域概念的软件对象技术服务提供支持技术服务的常用对象和子系统严格的分层,高层可以调用相邻较底层的结构,2018/1/30,6,UML包图所表示的层,2018/1/30,7,软件架构,架构是一组重要决策,涉及软件系统的组织,对结构元素及其组成系统所用接口的选择,从这些结构和行为元素到规模更大的子系统的组成,以及指导该组织结构的架构风格共同主题涉及动机、约束、模式、职责和系统连接,2018/1/30,8,应用UML:包图,通常用于描述系统的逻辑架构层、子系统、包包含元素类、其他包、用例用依赖线描述包之间的依赖关系,2018/1/30,9,嵌套包的表示方法,2018/1/30,10,使用层进行设计,将系统的大型逻辑结构组织为独立的、职责相关的离散层,具有清晰、内聚的关注分离协作和耦合是从较高层到较低层进行的、要避免从较低层到较高层的耦合有助于解决的问题源码的变更波及整个系统应用逻辑与用户界面交织在一起不同的关注领域之间高度耦合,2018/1/30,11,使用层进行设计,使用层的好处可以做到关系分离、高级服务与低级服务分离、特定于应用的服务与一般性服务分离层可以减少耦合和依赖性,增强内聚性、提高潜在的复用性并且使概念更加清晰封装和分解了相关的复杂性某些层能够用新的实现替代较低层包含可复用功能某些层(应用)可以是分布式的通过逻辑划分,有助于团队开发,2018/1/30,12,信息系统逻辑架构中常见的层,2018/1/30,13,代码组织映射成为包,/- UI 层com.mycompany.nextgen.ui.swingcom.mycompany.nextgen.ui.web/- 领域层com.mycompany.nextgen.domain.salescom.mycompany.nextgen.domain.payments/-技术服务层 /我们自己的持久访问层com.mycompany.service.persistence/ 第三方org.apache.log4jorg.apache.soap.rpc/-基础层/我们小组创建的基础包com.mycompany.util,2018/1/30,14,领域层与应用逻辑层,通过创建软件对象,使其名称和信息类似于真实世界的领域,并且为其分配应用逻辑职责来设计应用逻辑,2018/1/30,15,领域层和领域模型的关系,2018/1/30,16,层、层和分区,层在架构中最初表示的是逻辑层,而不是物理节点,但现在也广泛应用表示物理进程节点客户层架构中的层表示对系统在垂直方向的划分,分区则表示对层在水平方向进行划分,形成相对平行的子系统,2018/1/30,17,层和分区,2018/1/30,18,构架的混合视图,2018/1/30,19,模型视图分离原则,不要将非UI对象直接与UI对象连接不要在UI对象方法中加入应用逻辑MVC中模型对象不应直接与视图对象连接观者者模式领域对象只能通过propertylistener的接口向视图的UI对象发送消息,2018/1/30,20,模型视图分离原则,动机支持内聚的模型定义,这些定义只关注领域过程,而不是用户界面允许对模型和用户界面层分别进行开发使界面的需求变更对领域层的影响最小化允许新视图能够方便地连接到现有的领域层之上,而不会对领域层产生影响允许对同一模型对象同时使用多个视图允许模型层的运行不依赖于用户界面允许模型层能够简单地移植到另一用户界面,2018/1/30,21,SSD和就层而言的系统操作,2018/1/30,22,迈向对象设计,开发者如何设计对象编码绘图,然后编码只绘图,不编码,使用工具生成一切,2018/1/30,23,UML建模,动态建模有助于设计逻辑、代码行为或方法体UML交互图倾向于创建更为有益、困难和重要的图形应该把时间花费在交互图(顺序图或通讯图),而不仅是类图上静态建模有助于设计包、类名、属性和方法特征标记在绘制UML对象图时,回答以下问题对象的职责是什么对象在与谁协作应该用什么设计模式,2018/1/30,24,UML交互图,UML使用交互图来描述对象间通过消息的交互顺序图(sequence diagram)通讯图(communication diagram),2018/1/30,25,顺序图,2018/1/30,26,交互图,2018/1/30,27,对应的程序,public class Aprivate B myB =new B();private void doOne()myB.doTwo();myB.doTree();/,2018/1/30,28,顺序图,2018/1/30,29,交互图,2018/1/30,30,对应的程序,public class Saleprivate Payment payment;private void makePayment(Money cashTendered)payment =new Payment(cashTendered);/,2018/1/30,31,表示交互中参与者的生命线框图,2018/1/30,32,交互图中的单实例类,2018/1/30,33,消息和控制期的执行规格条,2018/1/30,34,表示返回消息结果的两种方式,2018/1/30,35,发送给“自身”的消息,2018/1/30,36,实例的创建和对象的生命线,2018/1/30,37,对象的销毁,2018/1/30,38,UML顺序图中的图框,2018/1/30,39,图框操作符,2018/1/30,40,有条件消息,2018/1/30,41,互斥的有条件消息,2018/1/30,42,使用相对直接的表示法对集合进行迭代,2018/1/30,43,对应的程序,public class Saleprivate lineItem = new ArrayList();private Money getToal()Money total = new Money();Money subTotal = null;for( SalesLineItem lineItem : lineItems)subtotal = lineItem.getSubtotal();total.add(subtotal);return total;/,2018/1/30,44,隐含的表示对集合的迭代,2018/1/30,45,图框的嵌套,2018/1/30,46,交互关联,交互具体值(interaction occurrence),交互使用(interaction use)在交互中引用另一种交互在整个顺序图周围放置图框,并加上sd标志和诸如AuthenticateUser这样的名称标记为ref的图框为引用,该引用指另一个已命名顺序图,2018/1/30,47,交互具体值的示例sd和ref图框,2018/1/30,48,调用类或静态方法,2018/1/30,49,对应的程序,public class Foopublic void doX()/ 调用Calendar类的静态方法Locale locales = Calender.getAvailableLocales();/,2018/1/30,50,用顺序图对多态案例建模的方法,2018/1/30,51,异步调用和主动对象,2018/1/30,52,表示链的线,链(link)是连接两个对象的路径,它指明了对象间某种可能的导航和可见性,2018/1/30,53,消息,对象间的每个消息都可以消息表达式和指明方向的小箭头来表示,2018/1/30,54,传递到“自身”的消息,2018/1/30,55,实例的创建,2018/1/30,56,顺序编号,不为第一个消息编号使用合法编号方案来表示后续消息的顺序和嵌套,其中的嵌套消息要使用附加数字,2018/1/30,57,复杂的顺序编号,2018/1/30,58,有条件消息,2018/1/30,59,互斥消息,2018/1/30,60,迭代,2018/1/30,61,对集合的迭代,2018/1/30,62,调用静态方法,2018/1/30,63,对多态的每个具体情况制作单独的图,2018/1/30,64,通讯图中的异步调用,2018/1/30,65,UML类表示法,/,no override in subclass,synchronizedMethod,(),guarded,3,common,compartments,1,.,classifier name,2,.,attributes,3,.,operations,interface,implementation,and,subclassing,Fruit,.,.,PurchaseOrder,.,.,1,association with,multiplicities,dependency,officially in UML,the top format is,used to distinguish the package,name from the class name,unofficially,the second alternative,is common,order,an interface,shown with a,keyword,2018/1/30,66,两种透视图中UML类图,2018/1/30,67,UML属性表示法:属性文本与关联线,2018/1/30,68,在不同透视图中使用关联表示法的约定,2018/1/30,69,应用准则,以两种表示法展示属性,准则:对数据类型对象使用属性文本表示法,对其他对象使用关联线,2018/1/30,70,在UML中表示集合属性的两种方式,2018/1/30,71,在类中如何表示方法体,2018/1/30,72,UML关键字样例,2018/1/30,73,构造型的声明和使用,表示构造型,表示对现有建模概念的精化,并且定义在UML简档中(profile)-一组相关构造型、标记和约束的集合,2018/1/30,74,依赖,依赖从客户到提供者的虚线箭头线表示依赖可以视为耦合的另一个版本拥有提供者类型的属性向提供者发送消息。对提供者的可见性可能是属性、参数变量、局部变量、全局变量或类的可见性接收提供者类型的参数提供者是超类或接口在类图中,使用依赖线描述对象之间的全局变量、参数变量、局部变量和静态方法依赖,2018/1/30,75,依赖关系图示,public class Salepublic void updatePriceFor(ProductDescription description)Money basePrice = description.getPrice();/,2018/1/30,76,表示依赖,2018/1/30,77,表示依赖,2018/1/30,78,UML中可选的依赖标签,2018/1/30,79,UML中表示接口的不同方法,2018/1/30,80,组合优于聚合,聚合是UML中定义的一种模糊的关联,其不精确地暗示了整体部分关系不要费力地使用聚合,使用组合组合也称组成聚合,是一种很强的整体部分组合关系,并且在某些模型中具有效用在某一时刻,部分的实例只属于一个组成实例部分必须总是属于组成组成要负责创建和删除其部分,即可以自己来创建/删除部分,也可以与其他对象协作来创建/删除部分,2018/1/30,81,UML中的组合,2018/1/30,82,约束的表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国汽车知识技能大赛理论知识竞赛题库及答案
- 2025年行政管理经济法试题及答案解析
- 2025年二级消防工程师模拟练习及答案
- 2025年低压电工作业安全生产模拟考试题库及答案
- 2025年安徽初级保育员理论及技能知识竞赛题库及答案
- 2025年高校教师岗前培训高等教育心理学知识竞赛考试题库80题及答案
- 2025年传染病疫情信息报告管理培训考核试题及答案
- 语音合成系统的人机交互设计原则考核试卷
- 医药行业风险管理中的新兴技术影响分析考核试卷
- 专科护理人文关怀教育考核试卷
- 能源低碳转型下考虑边际贡献的省级电源结构优化研究
- 2024年榆林能源集团有限公司招聘工作人员笔试真题
- 2025-2030中国陶瓷机械市场前景创新策略与发展趋势预判研究报告
- 2025年北京高考语文三轮复习之《论语》
- 高值耗材点评制度
- 钢结构加工厂建设项目可研报告
- 青海盐湖海虹公司“6.16”烫伤事故调查报告
- 2025年国网配电线路专业技能竞赛理论试题库大全-下(判断题)
- 《2025 NCCN子宫颈癌临床实践指南》解读
- 餐饮租赁合同协议书
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
评论
0/150
提交评论