




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章面向对象分析和设计,几个基本问题1.面向对象的软件开发过程可以划分为四个阶段:面向对象的分析(OOA)面向对象的设计(OOD)面向对象的编码(OOP)面向对象测试(OOT),2.面向对象分析的特点面向对象的分析是一种从问题空间中通过提取类和对象来进行需求分析的方法,在分析阶段只考虑问题域和系统的责任,建立一个独立于实现的面向对象分析模型。3.面向对象设计的特点面向对象设计则从问题空间转移到解空间,对所开发的系统进行逻辑过程和物理过程的描述以及系统的静态模型和动态模型的设计,在OOA模型的基础上形成面向对象设计模型。,本章所学内容,5.1面向对象分析5.2面向对象设计5.3小型网络学习系统的分析和设计,5.1面向对象分析一、OOA概念1.OOA的概念OOA通过类、对象、属性和操作的表示来对问题域建模。2.OOA的主要目的是明确用户的需求,并用前面所述的统一建模语言UML来表示这一需求,形成面向对象的分析模型,即OOA模型。,3.OOA的两大主要任务首先是明确用户的需求:包括对用户需求的全面理解和分析;明确所要开发的软件系统的职责;进行可行性研究,进度预算等工作,形成文件并规范地表述出来,交给用户确认。然后进行分析并提取类和对象:基本的步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象与对象之间的关系;为对象的行为进行建模。,二、OOA的过程简述1.面向对象软件开发方法主要有Coad&Yourdon方法、OMT方法、Booch方法和OOSE方法。2.以上这些方法都有OOA过程,尽管他们内容和步骤有所不同,但是大多数方法具有的共同特征是:类和类层次的表示;建立对象关系模型;建立对象行为模型。,3.大多数OOA方法都有如下一些相似的步骤:需求分析。定义类和对象。标识对象的属性和操作。标识类的结构和层次。建立对象-关系模型。建立对象-行为模型。,4.Goad和Yourdon的OOA方法建立OOA模型的步骤Goad和Yourdon的OOA方法采用以下的步骤来建立一个五个层次的OOA模型:(1)类-对象层:定义类和属性,简单地讲,在这个层次将分析所开发的应用软件所对应的各个现实世界的实体,并从中抽象出类和对象。(2)属性层:定义属性,为类-对象层中抽取出来的各个类和对象设计静态属性和它们的之间的关系。,(3)服务层:定义了对象和类的动态属性以及对象之间的消息通信。(4)结构层:定义了对象和类之间的层次结构关系,常见的关系有包含关系、继承关系和关联关系。(5)主题层:定义若干个主题,把有关的对象分别划归不同的主题,每个主题构成一个子系统。,三、需求分析1.需求分析是任何软件分析活动的第一步。在使用UML进行面向对象的开发过程中,用户的需求是通过用例(UseCase)来表达的。2.用例就是对系统功能的描述,一个用例描述了系统的部分功能。3.通过分析客户对于系统的需求,软件工程师可以创建用例。4.通常,用例仅仅是一段描述,用例图描述了执行者和系统交互的方式。,5.创建用例的步骤确定参与者确定用例用例描述对非功能性需求进行描述,四、定义类和对象1.通过需求分析阶段建立的需求模型让我们知道了系统的需求,下一步工作是确定问题领域中的类和对象,建立类对象模型。2.建立类对象模型有两种方法名词分析法用例分析法,3.名词分析法名词分析法是一种比较直观的方法,它是从系统的需求描述或用例描述中筛选名词或名词短语,然后考察这些作为候选类对象的名词的特征,来确定哪些类对象应该包含在分析模型中。,(1)确定类和对象对系统需求分析的叙述进行语法分析,将所有名词变成潜在的对象,把形容词作为确定属性的线索,把动词作为服务(操作)的候选者。再对潜在对象逐个进行审查,删除无用对象、精简合并一些对象,确定出所需要的且正确的对象。在此基础上,通过进一步提取并抽象系统所需要的对象构成系统所需的类。,(2)确定属性属性是对象的性质,在需求陈述中通常用形容词来描述对象的某些特征。确定属性时,可以不必过于细化,在分析阶段应该首先找出最重要的,最需要的属性,以后可以不断地再增加新的所需要的属性。,(3)确定方法方法是类对象具有的行为和提供的服务,在收到消息后对象必须进行的一些处理。对于每个对象来说,有些方法是隐含的,封装起来的,而有些则是公开显示的。针对每一个筛选出来的类,逐一对照需求描述,确定其方法。,4.用例分析法用例分析法以选定的用例为研究对象,以相对粗大的颗粒,用面向对象的概念和方法对问题进行转述,为后续以相对细小的颗粒作进一步的设计活动提供必要的铺垫。用例分析的主要步骤是:首先回顾需求阶段产生的用例描述,可能需要增加详细信息。然后研究用例的事件流,确定分析类并将用例的职责分配给分析类。基于这些分配和分析类间的协作,可以开始为分析类间的关系建模。,(1)补充用例描述补充用例描述的目的是获取理解系统的必要内部行为所需的其他信息,而这些信息可能是在为系统客户编写的用例描述中遗漏的。这些信息作为用例分析其它步骤的输入,也用来协助职责的分配。,(2)从用例中查找类查找分析类就是确定一组备选的、能够执行用例中所描述的行为的模型元素(分析类)。分析类及其实例的交互将用于满足当前用例指定的需求。从文字说明的软件需求过渡到图形描述的设计内容是一个渐进的过程,查找一组备选的分析类是这个过程的第一步。分析类主要有三种类型:边界类控制类实体类,从用例行为中查找分析类,边界类,提供了对参与者或外部系统交互协议的接口如用户界面,http:/protocols,如何确定边界类,为用例中涉及到的每对参与者/用例设计一个边界类来封装面向这个参与者的接口,边界类的三种类型用户接口类系统接口类设备接口类设计边界类的指导原则对于用户接口类,关注于用户界面的交互内容;不是具体窗体构件对于系统和设备接口类,关注于定义什么通信协议;不要关注协议的实现细节,实体类,存储(通常具有持久性)一些现象的信息,并包含与这些信息相关的业务规则如学生,计划表,课程清单,如何确定实体类,将用例的事件流作为输入获取用例的关键抽象过滤名词的方法:对事件流中的名词加下划线去除冗余的候选名词去除含义不明确的候选名词去除参与者去除实现结构去除属性去除操作,课程注册(建立课程表)中的实体类,学生,课程表,课程提供,控制类,封装一个或多个用例所特有的控制行为控制类有效地分离了边界对象和实体对象,使系统更能承受系统边界的变更,参与者1,参与者2,如何确定控制类,通常为每个用例设计一个控制类,封装这个用例的顺序,RegistrationController,课程目录系统,用例模型,设计模型,分析类总览,课程注册表单,课程目录系统,学生,课程表,课程提供,注册控制者,用例图,用例实现,4.将用例行为分配给分析类,对于每个用例的事件流:确定分析类将用例的职责分配给分析类在交互图中为分析类建模,用分析类的类型做指导边界类行为包括与参与者的联系实体类行为包括封装的数据控制类用例或事件流特有的行为,五、对象-关系模型1.对象关系模型主要是用来确定两个或多个类之间存在的关系。2.类和类之间的关系主要有:关联关系、泛化关系、聚集关系和依赖关系。3.对象关系模型表示了面向对象分析中的静态元素,常通过UML中的类图和对象图来描述。4.对象-关系模型的构建是通过面向对象分析的标识类和对象,标识结构,划分主题,定义属性,定义服务(方法)等五个活动来完成。,六、对象行为模型1.对象行为模型表明个体对象和整个系统的动态行为。2.创建对象行为模型的主要步骤包括:(1)分析所有的用例(usecase),完全地理解系统中各种功能的交互顺序。(2)标识驱动交互顺序的事件以及这些事件如何和特定的对象相关联。(3)为每个用例创建事件的轨迹。(4)为系统创建状态图。(5)复审对象-行为模型。,3.在构建对象行为模型时,常用UML中的顺序图或协作图表示对象的交互。对象的状态变化以及动态行为则是通过活动图来表示。,5.2面向对象设计一、OOD概念1.OOD的作用面向对象分析OOA是提取和整理用户需求,并建立问题域模型的过程。面向对象设计OOD其主要作用是对OOA的结果作进一步的规范化整理,以便能够进一步地进入面向对象编程(OOP)阶段。,2.OOD的特点传统的软件工程方法把设计阶段划分为概要设计和详细设计两个阶段;而基于面向对象的设计阶段则可以进一步划分为系统设计和对象设计两大阶段。其中的系统设计确定实现系统的策略和系统的高层结构形式;对象设计是在OOA的基础上进一步地确定类,操作,关联,接口的形式等等。,二、OOD的原则(1)开闭原则(2)复用原则(3)模块化(4)信息隐藏,三、OOD的过程简述1.常见的OOD模型,服务层,结构层,属性层,主题层,类与对象层,服务层,结构层,属性层,主题层,类与对象层,2.大多数OOD具有类似的步骤,它们是:细化重组类。细化和实现类间关系,明确其可见性。增加属性,指定属性的类型与可见性。分配职责,定义执行每个职责的方法。对消息驱动的系统,明确消息传递方式。利用设计模式进行局部设计。画出详细的类图与时序图。,四、系统设计当设计完成一个合理的,满意的OOA模型后,进入OOD阶段,在系统设计阶段包括了问题域子系统设计,人机交互设计,任务管理设计和数据管理的设计。1.问题域子系统设计(1)设计方法在OOD的系统设计中,通过所提供的服务来标识出不同的子系统,(2)设计特点,(2)设计特点软件工程师以OOA模型为基础,通过定义类、关系和行为的内聚集合,把设计元素包装组成一个个的子系统。每个子系统具有良好定义的接口,通过接口和系统的其余部分通信。对于子系统之间的交互和协调可以通过协作图描述。,2.人机交互设计(1)设计特点在设计阶段以需求分析阶段的用例为依据考虑人机交互。人机交互设计包括用户如何操作系统(菜单)、系统如何响应命令、系统显示信息与报表的格式,等等。(2)设计要点分类用户增加用户界面专用的类与对象利用快速原型演示界面设计,3.任务管理设计(1)任务管理设计的作用任务是进程的别称,是执行一系列活动的一段程序。当系统中有许多并发行为时,需要协调各个行为。任务管理设计能简化某些应用的设计和编码。(2)任务管理部件的设计一般遵循如下的步骤:识别由事件驱动和时间驱动的任务识别关键性任务、任务优先级以及任务管理类定义任务,4.数据管理设计(1)数据管理设计的目的数据管理设计的目的就是将目标软件系统中依赖开发平台的数据存取部分与其他功能分离,使数据存取可通过一般的数据管理系统实现。(2)数据管理设计包括两部分:定义数据格式设计相应的操作,五、对象设计1.对象设计的特点对象设计阶段所强调的,是把问题领域的概念转换成计算机领域的概念。其重点在于如何列举与解决问题,实现相关的类、关联、属性与操作,定义实现时所需的对象的算法与数据结构。2.对象设计的内容(1)对象描述(2)算法设计(3)程序构件与接口设计,5.3小型网络学习系统的分析和设计一、面向对象的分析1.系统需求分析此网络学习系统是一个面向学生、教师、系统管理员的信息系统,所以需求分析主要包括:(1)学生的需求(2)教师的需求(3)系统管理员的需求,2.建立用例模型特点:根据需求分析,我们先建立系统的用例功能模型。一个用例可以理解为系统的某个功能。方法:分析上述的各个功能模块的需求,逐个寻找执行者,用例,逐个创建用例图,并进一步建立系统的总体用例模型。,课程管理的用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 实验活动3 同周期、同主族元素性质的递变说课稿-2025-2026学年高中化学人教版2019必修第一册-人教版2019
- xx路排水管网改造工程项目社会稳定风险评估报告
- 第16课《大家排好队》教学设计-道德与法治一年级上册统编版
- 综合专栏说课稿-2023-2024学年初中地理七年级下册沪教版
- 创伤治疗合同
- 数字化保险理赔服务在2025年保险业风险控制中的应用报告
- 2025年地热能与太阳能互补的绿色建筑能源解决方案报告
- 混凝土板面切缝施工方案
- 2025年新能源汽车充电桩市场发展趋势报告
- 2025年环保产业绿色制造工艺创新与节能减排报告
- 2025年高考全国卷历史试题真题及答案详解
- 2025年产业政策调整下人工智能在医疗行业的应用可行性研究报告
- 数据结构(Java语言描述)(第2版)教案全套 张静 单元设计-单元1-8 数据结构与算法 -哈希表
- 《道路勘测设计》课件-第三章 平面设计
- 学堂在线 英文科技论文写作与学术报告 期末考试答案
- 护理安全警示教育案例
- 车辆损坏和解协议书
- 品控管理制度大全
- 洗衣房院感知识培训课件
- DBJ51-T 040-2021 四川省工程建设项目招标代理操作规程
- 创新方法大赛理论知识考核试题题库及答案
评论
0/150
提交评论