第5章软件设计方法.ppt
内容 4.1 基于UML的分析与设计过程 4.2 用例分析与设计 4.3 概念模型和顶层架构设计 4.4 用户界面设计 4.5 数据模型设计 4.6 设计精化 4.7 类设计 4.8 部署模型设计 引言 面向对象开发方法的核心是利用面向对象的概念和方法对软件需求分析和设计,建立面向对象的软件分析和设计模型。 面向对象软件开发过程从领域概念到设计概念和代码实现都以类和对象为核心,是一个逐步精化的过程,因此需求分析和设计之间并没有严格的分界线。 本章使用UML进行软件分析和设计。 4.1 基于UML的分析与设计 UML是独立于软件开发过程的,它几乎可以用于任何类型的软件开发过程,包括瀑布式、迭代式、螺旋式等不同模型。 在软件分析和设计中,可以根据项目的特征、开发组织在已有实践中定义的相关规范、设计人员本身的偏好等因素,对基于UML的软件设计过程进行定制。 根据UML各种视图的特点,它们可能更适用于软件分析与设计的某些活动,形成了一些常用的设计方式与过程,起到一定的指导作用,但并没有强制性要求。 基于UML的分析与设计过程 用例分析与设计: 需求获取,分析和描述的过程,它将利用例及用例图表示需求。 概念模型与顶层架构设计: 抽取全局性的概念,为后续的分析和设计活动建立结构和划分。 用户界面设计: 设计每个界面中的所有界面元素,确定初步的界面布局,定义用户界面动作对软件系统中设计元素的要求。增加专用类与对象。 数据模型的设计: 确定设计模型中需要持久保存的类的对象及其属性,定义持久持久存储数据之间的组织方式,并明确数据模型中的操作行为。 设计的精化: 对上面的逻辑、界面、数据模型等不同侧重点的设计结果进行整理,合并相似的类,保证各模型之间的一致性,并消除冗余。 类设计: 对类进行细化设计,精化类之间的关系以及类的操作和属性,使它们能够直接提交给软件构造阶段进行编码实现。 部署模型设计: 对软件最终的元素结构以及运行的具体环境进行描述 内容 4.1 基于UML的分析与设计过程 4.2 用例分析与设计 4.3 概念模型和顶层架构设计 4.4 用户界面设计 4.5 数据模型设计 4.6 设计精化 4.7 类设计 4.8 部署模型设计 4.2 用例分析与设计 案例:银行ATM自动柜员机的需求简述(本案例将要开发的ATM系统能够为顾客提供以下基本服务,它们统一称为交易): 取款服务。顾客可以用银行卡从对应的账户中支取现金,现金必须是100元的整数倍,且每次取款不能超过2000元。 存款服务。顾客可以把现金存入与银行卡对应的账户中。 转帐服务。顾客可以把一个银行卡对应的账户中的款项转帐到另一个银行账户中。 查询服务。顾客能够查询一个银行卡对应的账户中的余额。 银行ATM自动柜员机需求简述 该ATM系统包括以下组成部分: 读卡器 交互的控制台,键盘及显示器 送出现金的装置,取款器 存款的插槽,存款器 打印机 启动和关闭ATM系统的开关键盘 ATM系统与银行服务通过特定的网络连接进行通信 ATM系统在提供以上服务的过程中,必须满足以下要求 一个顾客可以在最终确认前放弃一项交易 ATM在执行交易过程中将与银行系统进行通信,对是否允许交易进行验证 ATM为每次成功的交易提供一个打印回执 ATM需要维护一个内部日志,对每次交易进行记录 (1)确定用例 采用用例模型描述系统需求时,首先需要开发人员从业务需求描述出发获取参与者(Actor)和场景,对场景进行汇总、分类、抽象,形成用例。 场景是从单个参与者的角度观察目标软件系统的功能和外部行为,这种功能通过系统与用户之间的交互来表示。 场景是用例的实例,而用例是某类场景的共同抽象。 获取场景 以下问题可以帮助分析人员获取场景: 目标软件系统有哪些参与者? 参与者希望系统执行的任务有哪些? 参与者希望获得哪些信息?这些信息由谁生成?由谁修改? 参与者需要通知系统哪些事件?系统响应这些事件时会表现出哪些外部行为? 系统将通告参与者哪些事件? 定义用例 在场景确定之后,通过对场景的汇总、分类归并、抽象即可形成用例。 需要特别注意的是,参与者并只限于人员,其它与目标软件发生交互的外部实体或系统也是参与者;用例应该是对参与者可见的系统需求或功能,否则不能作为用例。 如果多个外部实体在与目标软件系统进行交互时扮演同一角色,这些实体用同一参与者表示;如果一个外部实体扮演多个角色,则需要多个参与者来表示同一实体,即参与者与角色一一对应。 确定用例—确认参与者和责任 不同的参与者 系统管理员、程序员、会计、出纳员 与系统通信的其他系统 不同的责任 系统配置、程序设计、财务管理、现金管理 分析参与者的工作:使用案例 各种使用过程、步骤 ATM案例的参与者 “顾客”(Customer) “操作管理人员”(Oper
原创力文档

文档评论(0)