分析与设计阶段-物件导向分析(OOA).ppt_第1页
分析与设计阶段-物件导向分析(OOA).ppt_第2页
分析与设计阶段-物件导向分析(OOA).ppt_第3页
分析与设计阶段-物件导向分析(OOA).ppt_第4页
分析与设计阶段-物件导向分析(OOA).ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章:面向对象分析与设计阶段,软件工程面向对象编程和UML系统分析与实现,概要,分析与设计思想软件体系结构/软件开发面向对象分析与设计“方法”面向对象分析阶段(OOA)建立用例建模(用例建模)建立概念建模(概念建模)另一种面向对象分析技术循环冗余校验卡概要,通用开发过程,文档演化:从高层到低层(宏观到微观),分析阶段的重点:建立规范文档(通常基于特定技术) 其必须以比需求文件更正式、严格和系统的方式呈现:避免任何不完整和矛盾的陈述可以清楚地描述双方在订立合同时的重要参考文件,例如:为了满足某一要求。(续)。),侧重于概述需要完成的事情,但不涉及如何完成这些事情的细节(告诉什么,而不是怎么做)

2、。通常,它基于特定的分析技术,无论是结构化分析设计(程序/子程序)还是行动。在面向对象领域,它通常被称为操作、行为、方法或成员函数。软件体系结构/体系结构的基本思想,与数据和处理过程分开的思想,软件体系结构/体系结构相关的技术,面向数据的技术:设计侧重于系统所需的数据结构,例如,实体关系模型(ERM),它常用于关系数据库,图形表示,形式化,数据模型,(续)。),面向过程的技术:侧重于处理过程(以输入/输出为主体),例如:早期广泛使用的数据流分析技术。1.分析数据流(输入/输出)以形成高内聚模块。2.在1/2(理论上)之后,微调模块之间的依赖关系以降低模块之间的耦合度:模块“处理程序”,面向数据

3、还是面向程序,哪一个最好?为了实现一定程度的模块化,两者似乎都难以避免进一步的调整。什么是好的模块?模块内-高内聚-模块间-低耦合,模块化的好处,更可重用,易于维护,减少错误的发生,不导致更多的其他错误(即回归错误),易于调试,易于扩展,模块化的基本问题,减少依赖性,特别是数据和过程之间的依赖性,是软件体系结构/可持续发展技术的封面。在软件体系结构/体系结构技术(面向数据或过程)下,开发人员将陷入解决数据和过程之间依赖关系的困境。但是从上面的例子来看,它并不像想象的那么复杂?关键点是:软件需求的规模越大,软件规模越大,依赖关系的复杂性越高;面向对象分析/开发的基本思想是将数据和处理过程结合在一

4、起,减少了模块化的负担;“数据抽象”和“打包”的特性使得过程和数据之间的依赖关系尽可能限制在单个对象的范围内。抽象数据类型有利于生成高内聚的模块。对象之间有明确的边界,有利于低耦合度模块的生成。过去的许多开发案例表明,在开发的早期阶段,传统的软件体系结构技术将比面向对象的开发方法快得多,但是在开发的后期阶段,由于维护、修改或需求变化的困难,传统的开发方法往往会变得越来越困难。最后,“方法”的分析和设计,非正式的方法没有一定的规则或形式(面向经验)。形式化方法通常被称为“方法论”,如OMT(面向对象建模技术),RUP(面向对象软件工程),方法(理论)的基本元素,符号:用于描述分析阶段、设计阶段甚

5、至实现阶段的静态结构(如类关系)或动态行为(如对象交互关系)。例如,统一建模语言过程:即软件生命周期模型规定了每个阶段需要完成的项目和每个项目的完成顺序(包括经验法则)。(续)。),其他:方法也可以与特定工具一起使用。方法是好还是坏?不同的党派有不同的意见(主观因素占多数)。注:没有详细描述具体的面向对象方法或面向对象分析/设计技术,而是根据面向对象分析/设计的一般步骤整理出一套基本流程,以供参考。面向对象的分析和设计过程,表达为UML反馈迭代过程,逐步分析阶段,建立用例建模(1)绘制用例图(也称为功能需求)(2)编写相关场景(3)构造活动图或序列图。建立概念建模,建立初步的类/对象建模,用例

6、:酒店预订系统,案例研究:用例模型,用例:预订取消,登记入住,登记脚本,正常/主要流程):1。顾客要求柜台人员按房间类型和时间范围(开始时间和结束时间)进行预订;2.柜台人员询问合格的空房间;3.如果没有符合条件的房间(A1);4.显示符合条件的房间和价格;5.客户选择要预订的房间并提供他们的姓名。身份证号码6。柜台人员将房间状态设置为预定状态7。如果客户的基本信息未归档(A2) 8。柜台人员为客户添加预订信息(订单),以记录预订日期和预订的房间、预订脚本(续)。),1(备选流程):A1。回到正常流程(步骤1)或放弃预订A2。柜台人员用姓名、身份证号码等个人基本资料归档,并取消预约脚本。正常/

7、主流):1。顾客通过姓名和身份证号码取消对柜台人员的预订;2.柜台人员查询顾客的预订信息;3.显示预订信息;4.客户选择要取消的预订信息;5.柜台人员删除预订信息,签到脚本,正常/主流程):1。顾客要求柜台人员登记姓名和身份证号码;2.柜台人员查询顾客的预订信息;3.如果没有预订信息(A1);4.显示预订信息;5.客户选择保留预订信息;6.柜台人员询问顾客的基本信息;7.如果客户的基本信息未归档(A2) 8。柜台人员显示房间号码并提供房间钥匙9。柜台工作人员记录和登记(登记)房间内的顾客,以及登记脚本(续)。)。10.柜台人员把房间加到顾客的账单上。柜台人员将房间状态设置为1(备选流程):A1

8、: a1。返回正常流程(步骤1)或取消登记A2。柜台工作人员将个人基本信息(如姓名和身份证号码)和结帐脚本存档。正常/主流):1。顾客需要退房才能归还房间钥匙;2.柜台人员用房间钥匙上的房间号码查询已登记的顾客;3.柜台人员查询顾客的账单;4.如果账单显示没有付款(A1);5.柜台人员将房间状态设置为1(备选流程。A1。显示总金额,并在客户结账后修改账单的支付状态。活动图通常用来描述:(1)单个用例的内部过程;(2)跨越多个用例的过程活动图不是绝对必要的(它起着辅助作用)。大多数系统过程可以在用例脚本中呈现。注意:活动图或序列图是基于用例中的使用场景(脚本)。对于预订过程绘制的活动图,我们建立

9、了概念建模。目标是确定系统的初步数据模型的关键点:捕获关键概念课程选择系统中的“课程”和预订系统中的“房间”。分析模型可以用UML类图/对象图来表示:类和属性主要来自问题域中的“核心概念”(不包括设计阶段所需的类,如特定的数据结构),由UML定义的关联来描述。相似的实体关系图决定了类之间的继承关系(如果有的话),并构造了流。注意:客户不能理解的类通常不应该出现在这个模型中。一、整理输入文件,它可以是原始需求文件的脚本改造文件用例,二、捕捉候选类别,名词抽取(None Extraction)是一种用文档中的名词抽取类别的方法。名词抽取的优点是简单易用。它不需要特殊的技术或领域知识。它适合没有经验

10、的初学者。名词提取步骤,(1)建议使用用例脚本来输入文件。(2)为了便于识别,从文件中识别相关的“名词”或“短语”,名词通常被改变成不同的字体。(3)去除重复部分以形成一组名词(项目),它们是潜在的类别或属性。(4)过滤程序排除不必要的名词(如同义词和助词),c (2)选择(固定)一个类别,考虑该类别与其他类别之间的关系,如果有关系,建立两个类别之间的关联,包括多重性(如一对多、多对一、多对多等)。)。(3)重复步骤2,直到考虑了所有类别。Note:可以一起确定类之间的继承关系(如果有的话)。审核程序、目的:进一步审核候选人类别的完整性主要任务:再次详细审核并弥补缺失的类别。需求文件中规定的相

11、关条件或约束可以一起考虑。确定名词项是类别还是属性?基本上,之前收集的名词项目被定义为独立的类别。然而,有时名词项目也适合作为属性。(续)。)(注:名词项目应该分类吗?属性?一般来说,最好将名词项视为类,除非可以确认它只代表一个数值或字符串。案例研究:建立一个分析模型。作为输入文档的用例脚本。名词抽取:以预订脚本为例,用粗体表示抽取的名词(见下页表格)。整理(去除重复部分)后,可以得到名词项:客户、房间类型、时间范围、开始时间、结束时间、柜台人员、条件、空房状态、房间、价格、基本信息、预订日期、预订信息、订单、房间状态、预订状态、正常流程、姓名和身份证号。,预订脚本,正常/主要流程):1。顾客

12、要求柜台人员按房间类型和时间范围(开始时间和结束时间)进行预订;2.柜台人员询问合格的空房间;3.如果没有符合条件的房间(A1);4.显示符合条件的房间和价格;5.客户选择要预订的房间并提供他们的姓名。身份证号码6。柜台人员将房间状态设置为预定状态7。如果客户的基本信息未归档(A2) 8。柜台人员为客户添加预订信息(订单),以记录预订日期和预订的房间、预订脚本(续)。),1(备选流程):A1。回到正常流程(步骤1)或放弃预订A2。柜台人员档案文件包含个人基本数据,如姓名和身份证号码(续)。),它以相同的方式应用于其他三组脚本。完成后,可获得名词项目:客户、房间类型、时间范围、开始时间、结束时间

13、、柜台人员、条件、空房状态、房间、价格、基本信息、预订日期、预订信息、订单、房间状态、预订状态、正常流程、姓名、身份证号、房间号、房间钥匙、账单、住房状态、总金额和付款状态。(名词检索后的相关脚本如下:删除黑黑体项目),取消预约脚本,正常/主流程):1。顾客通过姓名和身份证号码取消对柜台人员的预订;2.柜台人员查询顾客的预订信息;3.显示预订信息;4.客户选择取消预订信息;5.柜台人员删除预订信息,并签入脚本。正常/主流):1。顾客要求柜台人员登记姓名和身份证号码;2.柜台人员查询顾客的预订信息;3.如果没有预订信息(A1);4.显示预订信息;5.客户选择保留预订信息;6.柜台人员询问顾客的基本信息;7.如果客户的基本信息未归档(A2) 8。柜台人员显示房间号码并提供房间钥匙9。柜台工作人员记录和登记(登记)房间内的顾客,以及登记脚本(续)。)。10.柜台人员把房间加到顾客的账单上。柜台人员将房间状态设置为1(备选流程):A1: a1。返回正常流程(步骤1)或取消登记A2。柜台工作人员将个人基本信息(如姓名和身份证号码)和结帐脚本存档。正常/主流):1。顾客需要退房才能归还房间钥匙;2.柜台人员用房间钥匙上的房间号码查询已登记的顾客;3.柜台人员查询顾客的账单;4.如果账单显示没有付款(

温馨提示

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

评论

0/150

提交评论