免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章面向对象的软件开发过程 面向对象的分析与设计 2 本章内容 软件开发过程介绍软件开发面临的主要问题软件生命周期软件开发模型面向对象软件开发过程面向对象技术面向对象分析面向对象设计面向对象程序设计面向对象测试 面向对象的分析与设计 3 1软件开发过程 软件开发面临的主要问题软件开发过程指开发软件产品的一整套活动 其中主要包括软件描述 软件开发 软件有效性验证和软件演化 软件开发模型软件开发模型是对软件开发的全过程 活动和任务的抽象描述 面向对象的分析与设计 4 1 1软件开发面临的主要问题 软件的发展滞后于硬件的发展 面向对象的分析与设计 5 软件危机 什么是软件危机 在软件开发 维护过程中出现的一系列严重的问题 造成软件需求与软件生产之间的尖锐的矛盾 称为软件危机 软件危机的表现软件开发无计划性软件需求不充分软件开发过程无规范软件产品无评测手段 面向对象的分析与设计 6 软件工程 SoftwareEngineering 1968年 NATO科学技术委员会提出 软件工程现在正式被定义为 运用系统的 规范的和可定量的方法来开发 运行和维护软件 软件工程是一门指导计算机软件开发和维护的工程学科 应用计算机科学 数学及管理科学等原理 借鉴传统工程的原则和方法创建软件 以达到提高质量 降低成本的目的 面向对象的分析与设计 7 软件工程的三个关键要素 方法 Methodologies 提供如何构造软件的技术 结构化方法 面向对象方法等 工具 Tools 为方法提供自动化或全自动的支持 如计算机辅助软件工程 CASE ComputerAidedSoftwareEngineering 系统 过程 Procedures 支持软件开发各个环节的控制和管理 面向对象的分析与设计 8 软件开发急待解决的问题 软件可靠性 是指软件系统能否在既定环境下运行并达到预期的结果 软件生产率 与计算机硬件的发展速度相比 软件的生产效率极其低下 软件重用性 不同的应用领域开发不同的应用软件 即使相同的应用目的也会由于需求上的微小差别导致重新开发整个应用软件 软件维护性 软件维护工作非常重要 但是软件维护是非常困难的 面向对象的分析与设计 9 1 2软件的生命周期 软件生命周期 SoftwareLifeCycle 是指软件从提出 实现 使用 维护到停止使用的过程 软件生命周期分为如下六个步骤 制定计划需求分析软件设计程序编码软件测试运行与维护 面向对象的分析与设计 10 1 3软件开发模型 软件生命周期模型 SoftwareLifeCycleModel 也叫软件开发模型 是软件系统开发项目总貌的一种描述 它是从软件项目计划的制定到软件最后停止使用的整个过程的结构框架 到目前为止 已经提出了多种软件生命周期模型 如 瀑布模型 螺旋模型 演化模型 喷泉模型等 面向对象的分析与设计 11 瀑布模型 WaterfallModel 瀑布模型将软件开发过程分为6个自上而下 相互衔接且按顺序进行的阶段 前一阶段工作完成 下一阶段才能开始 前一阶段产生的文档是下一阶段工作的依据 该模型适用于软件需求明确 开发技术成熟的情况 它的主要缺点是缺乏灵活性 特别是无法解决软件需求不明确或不准确的问题 面向对象的分析与设计 12 喷泉模型 FountainModel 瀑布模型对软件重用和生命周期中多项开发活动的集成未提供支持 难于支持面向对象开发方法 喷泉模型解决了这一问题 喷泉体现了迭代和无间隙特性 系统某个部分常常重复工作多次 相关功能在每次迭代中加入演进的系统 无间隙是指开发活动 即分析 设计和编码等之间不存在明显的边界 面向对象的分析与设计 13 演化模型 EvolutionalModel 由于在软件项目开发初始阶段人们对软件的需求认识常常不够清晰 因而使得开发项目很难一次成功 出现返工在所难免 演化模型就是出于这个目的将开发过程分为二次 或多次 第一次得到的是试验性产品 称为 原型 第二次在原型的基础上获得较为满意的软件产品 演化模型在克服瀑布模型缺点 减少由于软件需求不明确而给开发带来风险方面有着显著的效果 面向对象的分析与设计 14 螺旋模型 SpiralModel 面向对象的分析与设计 15 统一过程模型 UnifiedProcedure 面向对象的分析与设计 16 2面向对象的软件开发过程 面向对象软件开发方法是一种以面向对象思想为指导进行系统开发的一类方法的总称 这种方法以对象为中心 以类和继承为构造机制来抽象现实世界 通过建立模型 最终构建相应的软件系统 面向对象的分析与设计 17 2 1面向对象技术 对象和类面向对象系统的特征抽象机制封装对象之间的消息传递对象生命周期类的层次结构多态性 面向对象的分析与设计 18 2 2面向对象开发过程 面向对象分析 OOA 面向对象设计 OOD 面向对象程序设计 OOP 面向对象的测试 OO Testing 面向对象的分析与设计 19 2 2 1面向对象分析 OOA是软件开发的初始阶段参加人员 开发技术人员和客户OOA的任务分析问题域特征确定问题的解决方案寻找对象 确定对象属性与方法及对象间关系建立OOA模型 面向对象的分析与设计 20 Step1 分析问题域 明确用户需求 开发人员与用户共同合作 帮助开发人员尽快地理解业务领域的相关知识 取得对问题域的一致认识 明确用户对未来系统的需求 定义系统的职责范围和边界 探讨问题的初步解决方案 面向对象的分析与设计 21 Step2 标识用况 UseCase 用况定义了在业务活动中的业务规则和任务 反映了系统应该如何支持这些业务活动的基本过程 它是构造分析模型的起点 是确定功能需求及未来系统解决方案的重要依据 分析用况的主要目的是通过描述外部活动者与系统的交互 定义未来系统的功能需求 UML提供了一种被称为use case图的表示法 专门用来描述活动者 用况以及它们之间的关系 由此可以体现整个系统提供的基本功能 面向对象的分析与设计 22 一个usecase图的例子 面向对象的分析与设计 23 Step3 识别对象并将其抽象成类 一种简单的方法 在问题描述中找出名词或名词短语 并进行筛选 形成候选对象 依照下面特征在候选对象中选择系统对象这个对象的信息需要被记忆 否则系统无法正常地工作 这个对象应该具有一组确定的操作 通过它们实现对对象属性的修改 这个对象应该具有多于一个属性 能够定义一组适用于所有实例的公共属性 能够定义一组适用于所有实例的公共操作 属于基本需求内容 面向对象的分析与设计 24 Step4 标识对象的属性和行为 目标系统中选定的每个类都要有一定的职责 每个类的职责将通过属性和行为体现 属性标识了类的静态特征 即类记录的信息行为标识了类应该具有的操作能力明确每个类职责的过程就是寻找类的属性和方法的过程 面向对象的分析与设计 25 确定类职责应该遵循的原则 系统包含的所有职责应该均匀地分担到每个类中 避免出现某些类的职责过大 而另一些类的职责过小的现象 每个职责应该尽可能地被概括描述 即一般性的职责应该被放置在较高层次的类中 属性记录的信息与相关的行为应该位于同一个类中 它体现了面向对象的封装性 反映一个事物的信息应该被放置在一个类中 而不要分散到多个类中 在相关类之间共享职责 面向对象的分析与设计 26 Step5 定义类之间的关系 每个类主要以两种方式完成它的职责 一是应用类自身的行为操作自己的属性 二是与其他类协作共同完成某项职责 为了完成某项职责 一个对象向另外一个对象发送消息 则称在这两个对象之间就产生了协作 相互协作的对象之间存在关系 主要的关系有 信赖关联聚合继承 面向对象的分析与设计 27 Step6 用户界面需求 用户界面是系统的重要组成部分 在对系统进行功能需求分析的同时 同时人机交互的分析 对使用系统的人员进行分析 可以设计出适合这些人员特点的交互方式和界面表现形式 对人和机器交互过程进行分析 可以明确操作人员如何向系统发出命令 以及系统如何提交操作结果和反馈信息 面向对象的分析与设计 28 分析模型的组成 用况模型类模型用户界面模型 面向对象的分析与设计 29 2 2 2面向对象设计 面向对象设计的主要任务是在OOA模型的基础上 确定系统的体系结构和完成对象的设计 OOD的2个阶段高层设计 系统设计 描述软件体系结构低层设计 对象设计 描述对象及其之间交互 面向对象的分析与设计 30 Step1 系统分解与分层 系统分解使用将分析模型划分为子系统的方法对系统进行分解 子系统设计遵循的标准保持各个子系统相对独立 减少彼此间的信赖性子系统应具有良好的接口 以便与其它部分通信子系统的数量不宜太多将系统分解为子系统后 还要考虑如何将子系统组装成一个符合用户需求的完整系统 系统模型层次化是OOD使用的基本手段 面向对象的分析与设计 31 基于类类型将系统分层 面向对象的分析与设计 32 Step2 确定任务管理策略和控制驱动机制 并发 若干对象同时作用于某个事件 并发的处理方式 为每个子系统分配一个独立的处理器共享一个处理器 利用操作系统控制并发操作OOD中由任务管理部分负责设计管理并发行为的策略和控制驱动机制 任务管理设计首先需要根据对象的动态模型分析 定义系统的并发性 并通过识别和建立控制流程 包括进程或线程 来设计面向对象系统的任务 选择软件实现的控制方法 面向对象的分析与设计 33 任务管理遵循的步骤和策略 识别事件驱动和时钟驱动识别优先任务和关键任务识别协调者定义任务扩充有关任务的类及对象 面向对象的分析与设计 34 Step3 设计人机交互界面 人机交互界面是软件系统与用户直接接触的部分 给予用户的影响和感受最为明显 所以人机交互界面的质量对于软件系统能否成功具有至关重要的作用 界面的设计应该遵循下列基本过程和策略 选择界面支持系统选择界面元素用OO概念表示界面元素 面向对象的分析与设计 35 人机界面的类图模型 面向对象的分析与设计 36 Step4 确定实现数据管理的策略 数据管理提供数据在数据管理系统中存储和检索对象的基本结构 作用 将目标系统中依赖开发平台的数据存取部分与其他功能分离开 使数据存取可以通过一般的数据管理系统 不管是文件系统 关系型数据库 面向对象数据库或其它方式 来实现 数据管理设计包括 数据存储方法设计相应操作的设计 面向对象的分析与设计 37 Step5 对象设计 对象设计强调从问题域概念到计算机域概念的转换 重点在于为每个类的属性和行为做出详细的设计 主要包括确定每个属性的数据结构和行为操作的实现算法 面向对象的分析与设计 38 设计模型的组成 类图主题图交互图状态图协作图 面向对象的分析与设计 39 2 2 3面向对象程序设计 面向对象程序设计的目标是根据分析阶段和设计阶段的成果 选用一种支持面向对象程序设计思想的程序设计语言 编写应用系统的程序代码 最终完成一个可供测试的应用系统源代码 面向对象的分析与设计 40 设计模型与编写源码的关系 面向对象的分析与设计 41 编码时注意的问题 为类编写文档注释 对属性进行封装 为每个属性定义 域 private或protected set和get方法 public用恰当的方法表示行为 类方法 静态方法 实例方法和抽象方法恰当的实现各种关系 继承 extends 聚合 对象引用域关联 类属性依赖 对象作为形参 局部变量 面向对象的分析与设计 42 2 2 4面向对象的测试 面向对象测试的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国电子科技集团公司第九研究所校园招聘笔试历年常考点试题专练附带答案详解2套试卷
- 2025中国建筑股份有限公司岗位招聘(投资部)笔试历年典型考点题库附带答案详解2套试卷
- 2025中国太平洋人寿保险股份有限公司兰州中心支公司招聘笔试历年备考题库附带答案详解2套试卷
- 2025上海吉祥航空企业文化管理专员(高级专员)招聘1人笔试历年难易错考点试卷带答案解析2套试卷
- 买卖佣金合同
- 殡葬类型面试题及答案
- 上海短期租房合同
- 2025年考研美食理论真题及答案
- 编程面试题及答案
- 2025年及未来5年中国脱脂奶粉市场运行态势及行业发展前景预测报告
- 高压电设备操作规程与安全要点
- 物流课件仓储
- 英语·第五册(五年制高职)课件 Unit4 Customer Interactions
- 糖尿病肾脏病早期筛查与管理专家共识解读
- 2025北京卷-试卷讲评课件
- 特殊教育课堂辅助技术应用研究报告
- 医院放射人员管理办法
- 2025年人工智能训练师(三级)职业技能鉴定理论考试题库(含答案)
- 不合格品控制培训
- 手外伤急诊手术护理配合
- 海鲜公司日常管理制度
评论
0/150
提交评论