欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (1.4)--第4章-面向对象软件设计.ppt

    • 资源ID:96649985       资源大小:1.73MB        全文页数:48页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (1.4)--第4章-面向对象软件设计.ppt

    第4章 面向对象软件设计基于UML的分析与设计过程用例分析与设计概念模型和顶层架构设计用户界面设计数据模型设计设计精化类设计部署模型设计 1第4章 面向对象软件设计面向对象设计利用面向对象的概念和方法对软件进行需求分析和设计,建立面向对象的软件分析和设计模型。面向对象设计的工具UML语言UML独立于任何软件开发过程不同的UML视图对软件分析和设计中的不同阶段有着适用性面向对象设计的核心类和对象面向对象设计的基本特征逐步精化24.1 基于UML的分析与设计过程第4章 面向对象软件设计使用UML进行软件分析和设计的一般过程用例分析与设计获取、分析和描述需求用例图、交互图、活动图概念模型与顶层架构设计全局性概念的抽取与分析类图、包图、构件图用户界面设计确定界面的元素、布局及用户动作类图、包图、状态图数据模型设计确定设计模型中需要持久保存的数据类型和操作类图、对象图34.1 基于UML的分析与设计过程逐步求精第4章 面向对象软件设计使用UML进行软件分析和设计的一般过程设计精化对前面几个阶段的设计结果(业务逻辑、界面、数据模型)进行整合组织类间关系(继承、聚集)引入公共类、控制类类图、包图、顺序图类设计对设计模型中的类进行细化设计,明确类间关系以及类的属性和操作类图、状态图、活动图部署模型设计描述软件的组织结构(文件、软件包)和运行环境(物理平台、拓补结构)构件图、部署图44.1 基于UML的分析与设计过程逐步求精第4章 面向对象软件设计ATM自动柜员机软件54.2 用例分析与设计读卡器存款器取款器键盘(控制台)打印机显示屏(控制台)银行第4章 面向对象软件设计ATM的基本功能取款服务:顾客用银行卡从对应的账户中支取现金,现金必须是100元的整数倍,每次取款不能超过2000元。存款服务:顾客把现金存入与银行卡对应的账户中。转账服务:顾客把一个银行卡对应的账户中的款项转账到另一个银行账户中。查询服务:顾客查询一个银行卡对应的账户中的余额。ATM的组成部分读取银行卡信息的读卡器。与客户进行交互的顾客控制台。送出顾客所取现金的装置(取款器)。用于放入存款的插槽(存款器)。打印客户回执的打印机。ATM系统与银行服务器通过特定的网络连接进行通信。64.2 用例分析与设计第4章 面向对象软件设计ATM的额外功能需求一个顾客可以再最终确认前可以放弃一项交易ATM在执行交易过程中将与银行系统进行通信,对是否允许交易进行验证ATM为每次成功的交易提供一个打印回执ATM需要维护一个内部日志,对每次交易进行记录对待开发系统的业务需求描述是后续设计和开发的基础通过对业务需求的描述可以明确系统涉及到的外部角色,以及与外部角色的交互内容和方式74.2 用例分析与设计第4章 面向对象软件设计确定用例用例从外部角度:参与者与系统之间的一次典型交互从系统自身角度:系统执行的一系列动作确定参与者(Actor)(与系统发生交互的外部角色)顾客、管理员、银行服务器、读卡器、存款器、取款器、打印机确定场景,并进行分类、汇总、抽象场景:用户与系统之间进行的一个具体的交互场景与用例的关系场景是用例的实例用例是某类场景的抽象取款、存款、转账、查询余额、开机、关机84.2 用例分析与设计第4章 面向对象软件设计生成用例图用例图参与者与用例之间的关系触发执行:执行者“顾客”触发“取款”用例信息交换:用例将生成的信息返回给执行者各用例之间的关系包含:“新闻管理”用例 包含“新闻查看”、“新闻修改”、“新闻删除”用例扩展:“新闻打印”用例 扩展“新闻查看”用例继承:用例B将用例A的抽闲动作具体化94.2 用例分析与设计第4章 面向对象软件设计104.2 用例分析与设计开机关机取款存款转账查询管理员顾客读卡器存款器取款器银行系统打印机顶层用例图第4章 面向对象软件设计细化用例图114.2 用例分析与设计开机关机查询存款转账取款管理员顾客读卡器存款器打印机银行系统取款器会话交易密码无效第4章 面向对象软件设计用例设计描述对用例包含的动作和执行过程具体化完整的用例描述用例名称参与者前置条件:用例发生的依赖条件主事件流:正常情况下参与者与系统之间的信息交互及动作序列辅事件流:特殊或异常情况下信息的交互方式与动作序列后置条件:用例完成后的相关动作124.2 用例分析与设计第4章 面向对象软件设计用例设计描述(文字模板)134.2 用例分析与设计用例名称:用例名称:取款参与者:参与者:顾客、银行系统、读卡器、取款器、打印机前置条件:前置条件:顾客已插入银行卡,密码验证正确,顾客按下“取款按钮”主事件流:主事件流:(1)顾客输入取款金额,并确认。(2)系统认可取款金额,并发送指令给取款器。(3)取款器把相应金额的现金送出。(4)打印机打印回执单。辅事件流:辅事件流:(1)如果取款金额不是100的整数倍,则显示信息“输入金额必须是100的整数倍,请重新输入”,并返回主事件流步骤1。(2)如果取款金额超过2000元,则显示信息“输入金额不能超过2000元,请重新输入”,并返回主事件流步骤1。(3)如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入”,并返回主事件流步骤1。(4)顾客在确认取款金额前可以选择取消交易。后置条件:后置条件:如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果顾客取消交易,则返回等待状态。第4章 面向对象软件设计用例设计描述(UML方式)任何用例都涉及到一组对象的交互顺序图:确定对象及其之间的消息传递过程开机用例的顺序图144.2 用例分析与设计:控制台:ATM:取款器:银行接口SwitchOn()GetInitialCash()InitialCash()PerfStartup()SetInitialCash()OpenConnection()第4章 面向对象软件设计154.2 用例分析与设计:读卡器:ATM:控制台:银行接口InsertCard():会话Create(this)StartSession()ReadCard()CardInfoReadPIN()PINResult=ConfirmPIN()loop Result=OK and not exitref 交易EjectCard()X第4章 面向对象软件设计164.2 用例分析与设计:交易:控制台:日志GetCustomCmd():打印机altref 取款ref 存款ref 转账ref 查询PrintReceipt()GetCustomCmd()SaveTransaction()CmdAnalysis()第4章 面向对象软件设计174.2 用例分析与设计:控制台:取款:银行接口:取款器GetAmount()AmountCheck()GetBalance()Balance!=100*n TryAgain()2000TryAgain()BalanceAmountTryAgain()DispenseCash():回执CreateWithdrawReceipt()第4章 面向对象软件设计在较高层次上对系统进行建模概念模型设计关键概念业务需求描述、用例说明业务领域中的相关规范、标准、术语反映业务领域知识的既往经验描述概念模型的手段:分析类直接服务于用户功能性需求的描述与系统的具体开发技术无关UML中的类图在概念模型中,并一定要给出分析类的属性和操作;分析类的主要作用在于给出领域概念及其之间的关系184.3 概念模型和顶层架构设计第4章 面向对象软件设计分析类边界类:负责目标系统与参与者之间的交互界面控制(输入、输出的格式转换)外部接口(与外部设备的接口、通信协议)环境隔离(环境:操作系统、数据库、中间件)ATM:控制台对象、银行接口对象、取款器对象控制类完成用例功能的责任承担者,负责协调、控制其他类共同完成用例的功能控制类可能并不实现具体的功能,而是分解、分配、协调实现具体功能的类的运行ATM:取款对象实体类负责保存具有持久意义的信息并向其它类提供必要的操作接口ATM:取款凭条对象194.3 概念模型和顶层架构设计第4章 面向对象软件设计204.3 概念模型和顶层架构设计交易存款转账取款查询存款器取款器银行卡读卡器银行接口日志会话ATM键盘控制台显示器控制台打印机回执第4章 面向对象软件设计顶层架构设计顶层架构分析和设计工作阶段性的成果承载体为整个软件设计与开发过程建立一种结构和划分,明确不同阶段、不同角色的任务顶层架构设计利用一定的体系结构模式(体系结构风格、设计模式)对概念模型中的元素进行组织(内部元素之间、内外部之间的联系)UML中的包图ATM具有网络交互功能的客户端系统不是典型的C/S系统214.3 概念模型和顶层架构设计第4章 面向对象软件设计224.3 概念模型和顶层架构设计用户交互层存款器取款器银行卡读卡器键盘控制台显示器控制台打印机回执业务逻辑层交易存款转账取款查询会话ATM网络服务层银行接口日志银行系统第4章 面向对象软件设计用户界面良好的外观和布局用户在使用软件过程中所需的各种元素(窗口、菜单、按钮、文本框)呈现给用户的屏幕每个屏幕中的组成部分用户界面设计用户交互过程中存在哪些屏幕屏幕中包含哪些窗口屏幕之间是如何切换的234.4 用户界面设计第4章 面向对象软件设计244.4 用户界面设计第4章 面向对象软件设计254.4 用户界面设计第4章 面向对象软件设计使用类图表示屏幕结构264.4 用户界面设计命令选择区顾客信息区提示信息区InputCustmerInfoCustmerInfo+Name+Age+Profession+Phone+Address+Submit()+SetEmpty()FunctionOptions+NewProducts()+ProductQuery()+UpdateCustomInfo()+OrderManage()PromptInfo+Protocol+CompanyInforight topright bottomleft第4章 面向对象软件设计使用类图表示屏幕结构274.4 用户界面设计InputPINPwdTextboxCancleBtnConfirmBtnPromptText第4章 面向对象软件设计使用状态图表示屏幕切换284.4 用户界面设计欢迎界面欢迎界面密码输入密码输入提示窗口提示窗口输入密码输入密码交易选择交易选择退卡窗口退卡窗口插入银行卡继续取消不正确次数达三次密码正确输入密码,次数不超过三次第4章 面向对象软件设计用户界面模块的静态描述包图294.4 用户界面设计顾客控制台接口存款接口银行卡信息读取接口取款接口转账接口查询接口卡信息读取接口交易选择欢迎窗口密码输入及验证退卡提示密码输入提示第4章 面向对象软件设计数据模型设计数据库设计(信息管理系统)数据文件设计(嵌入式软件系统)持久数据模型设计哪些类的对象的哪些属性是需要持久保存的?需要持久保存的数据之间的组织方式需要持久保存的数据的操作行为:完整性验证、数据更新、数据求和/平均值优化上述操作行为的机制:索引、存储过程、触发器存储过程:一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。触发器:一种特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。304.5 数据模型设计第4章 面向对象软件设计使用类图进行关系数据表设计主键:表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。外键:如果表中的某个字段是另外一个表中的主键,那么该字段成为该表的外键。外键只能引用外表中的列的值保持数据一致性,完整性314.5 数据模型设计 T_Customer-CustomerID-CustomerName T_Order-OrderId-CustomerID第4章 面向对象软件设计ATM系统中的持久存储数据银行卡数据日志数据回执数据324.5 数据模型设计 Receipt+TransactionName+CardNumber+Date+Time+Position WithdrawReceipt+WithdrawAmount DepositReceipt+DepositAmount TransferReceipt+TransferAmount+ToAcount第4章 面向对象软件设计前期的设计模型用例图、顶层架构图、界面类图、数据模型图顺序图、界面状态图设计精化缩小设计与实现之间的距离精化软件架构调整软件构成类精化交互模型精化类之间关系334.6 设计精化第4章 面向对象软件设计精化软件架构寻找一种理想的包划分方案高内聚:包属于自然性质的划分低耦合:包的边界清晰自然具体方式:类的转移、包的合并、包的划分344.6 设计精化PP1P2CP1P2C1C2P1P2Q第4章 面向对象软件设计包的设计的主要原则避免包间的循环依赖关系,比如O依赖于P,P依赖于Q,Q依赖于O位于较低层次的通用包不应当依赖于较高层次的专用包较高层次中的包可以依赖于较低层次的包,但应限制于相邻的层次如果针对某系子系统专门划分了接口包和实现包,那么其他与该子系统相关的包只能依赖于接口包,不能依赖于实现包354.6 设计精化第4章 面向对象软件设计364.6 设计精化用户交互层设备包存款器取款器读卡器键盘控制台打印机设备包顾客控制台接口实体包实体包银行卡回执取款回执存款回执转账回执界面包界面包第4章 面向对象软件设计调整软件构成类概念(问题域)类(实现域)调整软件构成类增加辅助类不体现在问题域中的实体:并发控制类、通信类、算法类合并通信频繁的类通信频繁:耦合度高分拆规模过大的类业务逻辑 vs 数据通信374.6 设计精化银行接口BankDBConnBankDBAccess+Connect()+DisConnect()+GetPIN()+SetPIN()+GetBalance()第4章 面向对象软件设计精化交互模型对象在交互过程中的消息传递的参数与返回值软件架构和类被调整之后对交互模型的影响是否需要增加额外的局部交互图384.6 设计精化第4章 面向对象软件设计精化类间关系在获得类图的基础上,研究类之间的连接关系类间消息交互方式引用全局对象 -通过参数传递394.6 设计精化Class A a;Class B int func()num=a.num*2;Class B int func(A a)num=a.num*2;第4章 面向对象软件设计类间消息交互方式引用局部对象 -通过类的成员变量404.6 设计精化Class A Class B int func()A a;num=a.func();Class A Class B A a;构成关系 聚合关系第4章 面向对象软件设计精化类间关系引入关联类用于保存关联关系本身的属性和操作引入继承关系使用父类捕获公共属性和操作简化设计模型和实现代价414.6 设计精化PersonCompanyN1NPersonCompanyEmployment+contract111取款1存款转账查询交易+计算-*/sincostgctg第4章 面向对象软件设计类设计使设计模型中的类细化到能够直接进行编码实现的程度对类的属性和操作进行精化对类的对象实例在其生存周期中对外部消息的响应和状态变化过程进行建模对类中的重要操作的实现过程或算法进行描述424.7 类设计第4章 面向对象软件设计精化类的属性和操作属性名称、类型、初始值、取值范围、相关说明操作名称、参数列表(名称、类型)、返回类型、相关说明相关的原则作用范围尽量缩小作用范围,每个类仅公开那些响应消息所必需的操作属性不能公开,属性的操作可以公开每个类中一些基本的操作对象创建:属性初始化、存储空间分配对象删除:释放资源对象运算:比较、加减对象复制434.7 类设计44BankDBAcess+NetWorkToBank+GetPIN(CardID)+SetPIN(CardID)+GetBalance(CardID)+UptBalance(CardID,bal)+WriteLog(log)ATM+ID+Position+BankName+State-CurrentSession+SwitchOn()+SwitchOff()+PerformStart()+GetID()-GetState()+Display(msg)+GetPIN()+GetWithdrawAmount()+GetDepositAmount()+GetTransferAmount()+GetTargetTranAccount()+GetUserChoice()CustomerConsoleSession+atm:ATM+CurTransaction+StartSession()+Initialize()+StartTransaction(trans)+SetPIN(pin)+PINInvalidation()+Check(Amount)+CompleteTransaction()Transfer+CompleteTransaction()Deposit+Check(Amount)+CompleteTransaction()Withdraw+StartTransaction()+Initialize()+CompleteTransaction()+atm:ATM+CurSession+TransactionType+TransactionID+CardNumTransactionWithdrawReceipt+WithdrawAmount+CompleteTransaction()InquiryDepositReceipt+DepositAmountTransferReceipt+TransferAmount+ToAccountReceipt+TransactionName+CardID+Date+Time+Position111*1*1*1*1*10.*0.11第4章 面向对象软件设计类的行为模型设计整个类的行为:UML状态图(节点表示稳定的状态)类中某些重要的方法的步骤:UML活动图(节点表示动态的活动)ATM类状态图454.7 类设计待机状态entry/display”请插入卡”服务状态Switch On/PerfStartupSwitch Off/PerfShutdownCard Inserted/CreateSessionSession Complete/DeleteSession第4章 面向对象软件设计取款类中的Check()过程的活动图464.7 类设计取款额是100的整数倍Y取款额2000Msg=“取款额必须是100的整数倍”Msg=“每次取款不能超过2000元”获取账户余额取款额余额Msg=“请取回现金”返回FALSEMsg=“余额不足”返回TRUEYYNNN第4章 面向对象软件设计部署图部署:软件制品(Artifact)软件运行平台中的物理节点和通信方式软件到硬件的映射关系部署模型设计的内容最终开发完成的软件包括哪些制品软件运行环境存在哪些类型的物理节点不同节点之间的通信方式软件制品应该如何在物理节点上部署474.8 部署模型设计:ATMatm.exe:ATMatm.exeWireless encrpytion:Bank ServerBank SystemTCP/IPWCDMA第4章 面向对象软件设计用例分析与设计概念模型和顶层架构设计用户界面设计数据模型设计反复迭代逐步求精UML建模语言484.9 小结设计精化类设计部署模型设计

    注意事项

    本文((1.4)--第4章-面向对象软件设计.ppt)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开