您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第四章面向对象的软件设计方法
蒲天应2013年计算机学院第四章面向对象的软件设计方法教学目标•演练并掌握用uml实现软件设计目录用例的分析与设计1概念模型与顶层架构设计用户界面设计3数据模型设计4设计精化52类设计6部署模型设计7一、用例分析与设计•用例图–选择系统边界。–识别主要的参与者–识别用户目标–定义满足用户目标的用例一、用例分析与设计•生成用例图•用例图设计描述举例:存款:用例图描述、用例顺序图一、用例分析与设计用例名:存款参与者:用户、银行系统、读卡器、存款器、打印机前置条件:顾客插入银行卡,输入密码验证进入系统,按下“存款”按钮。主事件流:1、系统向存款器发送接收现金指令。2、存款器打开,用户放入现金,确认。3、存款器验证输入金额,显示该金额,提示是否继续,选择“继续放入现金”,则跳到第2步。4、累加已放入金额,用户确认。5、打印机打印回执。一、用例分析与设计辅事件流:1、存款器验证金额时,有不能识别的钞票,提示并打开存款器退出不能识别的钞票。2、用户确认之前都可取消存款业务,并退还已放入现金。后置条件:存款成功,银行系统将存入金额加入账户,返回等待状态;不成功,返回等待状态。一、用例分析与设计[继续放入现金]loop用户存款业务银行系统存款器打印机会话1:开启存款业务()2:打开()3:打开成功4:放入现金()5:放入确认6:获取金额()7:验证现金()8:金额9:累加金额()10*[有不能识别现金]:打开()11:金额确认()12:确认金额13:现金存款()14:存款()15:打印回执()二、概念设计与顶层架构设计慨念模型与顶层架构是较高层次抽象,慨念模型是对需求中的对象进行描述,顶层架构是对概念模型进行设计。概念模型的输入信息是:1.业务需求、用例描述;2.业务中的术语、标准、规范;3.业务经验概念设计一般用三种类图表示:1.边界类2.控制类3.实体类二、概念设计与顶层架构设计•概念模型设计–概念模型是概念类或者感兴趣的现实对象的可视化表示,也被称为概念模型、领域对象模型以及分析对象–概念模型说明域里(对于建模者而言)有意义的概念类,它是在面向对象分析时要创建的最重要的制品。–识别一个丰富的对象集或者概念类集是面向对象分析的核心工作•UML中以不定义操作的一组类图的形式来说明概念模型,可能显示:–概念类–概念类之间的关联–概念类的属性二、概念设计与顶层架构设计•概念模型是相关现实世界领域中事物的可视化表示,不是软件构件或者是有职责的软件对象•识别概念类,用概念类分类列表和名词短语识别的方法找出当前需求中的候选概念类•在概念类之间添加必要的关联来记录需要保存的关系•添加用来实现需求的必要属性二、概念设计与顶层架构设计•属性还是类–如果我们不将概念类X看成现实世界中的数字或者文本,X就可能是概念类而非属性。–如果举棋不定的话,最好将这样的事物当做一个单独的概念类来处理,在领域模型中,属性相当少见二、概念设计与顶层架构设计顶层架构是在概念模型的基础上,为后续的设计做一种划分和规划。顶层架构是采用体系结构的设计方法来实现,一般采用一定的体系结构模式,如分层模式,mvc模式等,例如p112.二、概念设计与顶层架构设计分层–根据分离系统的多个具有清晰、内聚职责的设计原则,将系统大尺度的逻辑结构组织到不同的层中,每一层都有独立和相关的职责,使得较低的层为高层提供通用的服务,较高的层更多地为特定应用–从较高的层到较低的层进行协作和耦合,避免从底层到高层的耦合二、概念设计与顶层架构设计经典的三层架构垂直划分系统为:–界面层(Interface)窗口、报表等–应用逻辑(ApplicationLogic)处理系统业务逻辑–存储(Storage)持久化存储机制。–三层架构的显著特点是分离了应用逻辑,将其作为独立的逻辑中间件层软件。界面层与应用逻辑的处理相对独立,界面层发起的任务请求将发送到中间的应用逻辑层,中间层与后端存储层进行通信。二、概念设计与顶层架构设计MVC(模型-视图-控制器)–视图(View)代表用户交互界面–模型(Model)是指数据模型–控制器(Control)接受用户的输入并调用模型和视图去完成用户的需求。二、概念设计与顶层架构设计三、用户界面设计用户界面用于和用户直接交流,界面的设计是否合理,依赖于两方面的内容:界面上放置的元素;界面的布局、颜色的搭配。本节知识在第六章讲解。四、数据模型设计主要是指业务系统的数据库设计,本节知识在《数据库原理》课程中学习。五、设计精化•精化软件架构目标“强内聚,松耦合”,遵循原则:1、避免包间的循环依赖关系,解决办法:合为一个包。2、低层次的通用包不应依赖于高层次的专用包,解决办法:将高层次的包选择部分融入到低层次通用包中。3、高层次可以依赖于低层次包,但应在相邻层次间依赖。解决办法:分多种情况解决。4、系统中有接口包和实现包时,相关包应当只能依赖于接口包,不能依赖于实现保,解决办法:直接改为依赖接口包,接口包中可能会添加相应接口类或方法。五、设计精化•调整软件构成类目标:强内聚、松耦合、简单性等方法:1、增加辅助类。如:学生成绩管理系统中,在成绩统计时,以班级为单位,故可能会需要班级类;可能因每门课的成绩计分方式不同,还会需要课程类。2、合并相互通信频繁的类。3、拆分规模过大的类。这里只功能过多的类,根据功能的分类来拆分类。五、设计精化•精化交互模型1、架构和类精化产生交互图进一步的精化。2、消息传递中需要的参数精化。3、顺着业务和实现的分析采用添加局部交互图等形式进行精化。•精化类之间的关系1、精确判定类之间的关系2、确定对应关系上的数量对比3、优化类之间的关系六、类设计本节知识在做课程设计中学习主要主要下面几方面:1、类的属性和方法的细化2、对应顺序图或活动图设计类3、类的方法中重要算法或过程的设计七、部署模型设计•通过部署模型设计完成如下几方面的设计工作:1、软件的制品形式2、运行环境的物理节点的说明3、信号、数据的网络设计4、软件在物理节点上布置的映射关系第四章结束
本文标题:第四章面向对象的软件设计方法
链接地址:https://www.777doc.com/doc-3295259 .html