第1章 面向对象分析和设计引言
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1个增量构件提供基本的文件管理、编辑和文档生成功能;
第2个增量构件提供更完善的编辑和文档生成功能; 第3 个增量构件实现拼写和语法检查功能;
第4 个增量构件完成高级的页面排版功能。
面向对象建模技术
Page 19
1.2 面向对象的概念
开发模型和面向对象方法的关系
在任一软件开发模型的设计阶段,你都可以采取两种软件开发方 法。它们是面向功能开发方法与面向对象开发方法。面向功能方法是面 向对象方法发展之前所采用的旧式方法。
面向对象建模技术
Page 8
原型模型
1.1 SDLC
面向对象建模技术
Page 9
原型模型
特点
1.1 SDLC
1.“快速”。尽可能快的建造出原型系统
让用户在计算机上试用原型,提出修改意见 开发人员按照用户的意见快速修改原型。如此反复 原型的用途是获知用户的真正需求 彻底抛弃 - 抛弃型 将部分原型制品重用(如界面、报表等)- 渐近型 各阶段内部不带反馈 这和瀑布模型是一样的
举例说明
摩托车、汽车、卡车有一些共同的属性一轮子、引擎与喇 叭。因此, 它们能够归为一个类, 称为" 机动车"。除了共 有的公共特性以外,每个子类都有其特性, 例如卡车用柴 油驱动, 汽车可以用柴油或汽油驱动。
类的继承实现了代码重用。
面向对象建模技术
Page 24
抽象
1.2 面向对象
抽象关注一个实体本质的、内在的方面,忽略其实现的细 节。
测试
检测软件错误。
维护
软件功能修改、实现新需求、修订遗留错误。
面向对象建模技术
Page 5
软件开发方法(模型)
什么是软件开发模型?
1.1 SDLC
不同类型项目有不同的需求。因此,要求SDLC 阶段根据项目的 特定需求进行定制。这就产生了不同的软件开发模型。
不同的软件开发模型
面向对象建模技术
江苏大学计算机学院
Version 2.0
第1章 面向对象分析和设计引言
背景
企业软件系统在设计之前都需要深入的分析。由于软件系统日 益复杂,要精确分析需求, 并将它们转化为合适的设计,变 得越来越困难。因此,我们需要使用各种工具来应对这种复杂 性。面向对象分析和设计(OOAD) 提供了我们必需的工具, 以分析并设计复杂的软件系统。
面向对象建模技术
Page 4
SDLC 阶段概览
1.1 SDLC
SDLC 可分为六个阶段:
可行性分析
成本效益分析、项目进程安排、项目技术可行性。
需求分析和规范说明 设计 编码
将设计文档中确定的设计,实现成为可执行的编程语言代码。 收集、分析、验证并确定需求,编写软件需求规范(SRS) 文件 。 将SRS 中确认的需求转换成编程语言能够实现的逻辑结构。
请看以下汽车类比。BMW 、Ferrari 、Chevrolet 等各品牌 汽车都有类似的特性, 因此它们都可以归为" 汽车"这个类 的对象。
面向对象建模技术
Page 23
继承
1.2 面向对象
继承指基于层次结构关系,在类之间共享属性与行为。
继承能够通过定义一个新类, 扩展现有类。 原有类称为基类或超类,通过继承产生的新类称为派生类或子类。
瀑布模型 原型模型 螺旋模型 双赢螺旋模型 增量模型
Page 6
面向对象建模技术
1 瀑布模型
1.1 SDLC
瀑布模型以线性序列流描述 软件开发过程。这就是说, 开发流程任一阶段开始之前 ,都必须完成先前阶段。
瀑布模型假设在整个项目计 划中,需求都是稳定的、固 定不变的。然而,对大型项 目而言,情况往往并非如此 , 在整个开发过程中需求 可能会不断变化。
Page 7
面向对象建模技术
2 原型模型
示例
1.1 SDLC
电子商务网站,例如购物网站, 就是一个原型模型实现示例。你可以 开发购物网站各种网页原型,例如目录页面、产品订单页面、信用卡验 证页面,然后提交给客户认可。如果客户认可网站原型, 则会再次陈 述需求, 启动网站设计。如果客户没有认可,则开发团队重新设计原 则,然后再交给客户认可。这个过程会不断继续, 直到原型获得认可 。
面向功能方法的局限引发了面向对象方法的发展。面向对象方法的基本 思想是按照其在现实世界的存在描述事件。这种做法能够减少软件系统 的复杂性。面向对象方法引入了继承概念,允许重用现有代码组件。另 外,面向对象方法支持数据封装,抽象与多态性。面向对象方法引导你 从重用性角度进行思考,能够帮助创建更佳的设计。
面向对象建模技术
Page 20
1.2 面向对象的概念
1.2 面向对象
面向功能方法 VS 面向对象方法
面向功能方法以模块为中心, 关注软件的功能。这种方法对模块创建 没有限制,这些模块紧密连接,对程序其它部分开放数据访问。因此, 使用面向功能方法构建的软件,可能紧密相连,相互依赖,要把一个模 块的构建与其它模块分开,会非常困难。另外,在整个程序中数据都是 透明的、可访问的。在这个情况下,软件重复使用变得很困难。
心的功能,并且能够独立运行(实际上是软件的第一个发布版本) 。
后续的构件不断增加到软件中。
面向对象建模技术
Page 16
增量模型
1.1 SDLC
面向对象建模技术
Page 17
增量模型
特点
1.1 SDLC
1.软件被分割为若干个增量(构件)
第一个增量具有最基本的功能,能够运行 其它每个增量实现一组特定的功能 开发人员一个构件接一个构件向用户提交产品 这与瀑布模型或原型模型不同(它们是一次的把满足所有需求的产品提交 给用户)。
面向对象建模技术
Page 11
螺旋模型
基本思想
1.1 SDLC
使用原型及其他方法来尽量降低风险.
原型 - 降低了“产品不满足用户需求”的风险 其它一些风险控制方法
原型不能“包治百病” - 比如关键人员的“跳槽”
理解这种模型的一个简便方式,是把它看作在每个阶段之前 都增加了风险分析过程的原型模型
如此反复原型的用途是获知用户的真正需求这和瀑布模型是一样的优点优点能够较为准确的获取用户的需求面向对象建模技术page103螺旋模型11sdlc风险产品交付给用户之后用户可能不满意风险产品投入市场之前竞争对手发布了一个功能相近价格产品投入市场之前竞争对手发布了个功能相近价格更低的软件面向对象建模技术page11螺旋模型11sdlc基本思想原型不能包治百病比如关键人员的跳槽理解这种模型的一个简便方式是把它看作在每个阶段之前都增加了风险分析过程的原型模型都增加了风险分析过程的原型模型面向对象建模技术page12螺旋模型11sdlc原型模型螺旋模型螺旋在哪里
面向对象建模技术
本章小结
SDLC (一个规范的、系统的软件开发方法)
分为6个阶段
可行性分析
需求分析与说明
设计
按需定制
编码
测试
维护
开发模型
包括
瀑布模型
原型模型
螺旋模型
支持
双赢螺旋模型
增量模型
面向功能方法和面向对象方法
面向对象建模技术
面向对象建模技术
Page 21
1.2 面向对象的概念
1.2 面向对象
类与对象 继承 抽象 封装 多态
面向对象建模技术
Page 22
类与对象
1.2 面向对象
类是一个抽象数据类型,包括一组属性与函数。对象是一 个类的实例。
所有对象都共享相同的成员函数, 但保持独立的成员数据。
举例说明
面向对象建模技术
Page 12
螺旋模型
原型模型
1.1 SDLC
螺旋模型
螺旋在哪里?
面向对象建模技术
Page 13
螺旋模型
① ② ③ ④ ⑤ 开发费用
1.1 SDLC
带箭头的点划线的长度代表当前累计的 螺旋线的角度值代表开发进度。 螺旋线每个周期对应于一个开发阶段。 每个阶段开始时(左上象限)的任务是… 接下来的任务是,从风险角度分析上一 步的工作结果,努力排除各种潜在的风 险。
抽象类指定的是抽象操作,不包括其实现。实现由抽象类的派生类 提供。
面向对象建模技术
Page 25
封装
1.2 面向对象
封装指禁止访问非必要的细节。
封装也称为信息隐藏, 因为它把一个类的属性与操作隐藏起来,不 让其它类访问。
举例说明
例如,将吸尘器电线插入电源,打开开关,吸尘器就会开 始工作。你看不到到电力转换为吸力这个复杂的过程。换 言之,吸尘器实际工作过程采用了封装方式。
2. 对原型的处理
3. 各阶段基本上是按线性顺序进行
优点
能够较为准确的获取用户的需求
面向对象建模技术
Page 10
3 螺旋模型
1.1 SDLC
风险
1. 产品交付给用户之后用户可能不满意 2. 到了预定的交付日期软件可能还未开发出来 3. 实际的开发成本可能超过预算 4. 产品完成前一些关键的开发人员可能“跳槽”了 5. 产品投入市场之前竞争对手发布了一个功能相近、价格 更低的软件 6. …
螺旋模型既有原型模型的迭代特性,也有瀑布模型的线 性特性。这种模型很适合用于有多个版本的软件开发。
面向对象建模技术
Page 15
4 增量模型
基本思想
1.1 SDLC
使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、 编码、集成和测试。
每个构件由多个相互作用的模块构成,并且能够完成特定的功能。 使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核
为什么要引入SDLC?
在软件开发形成公认的工程流之前,开发软件过程只是一种临时性的活 动,没有正式的规则或标准。其结果是,软件项目产生严重问题,工期 延长、成本超支、软件品质低劣。 引入SDLC 就是为了解决软件开发过程中产生的各种问题。SDLC 是规 范的、系统的软件开发方法,它将软件开发过程划分为几个阶段,例如 需求分析、设计以及编码。这种分阶段的开发过程能够跟踪软件项目的 进程、成本与品质。
2. 逐步向用户提交产品
优点 VS 缺点
能在较短的时间内提交产品 用户有较充裕的时间来适应新产 品,防止全新的软件带来的冲击
软件的体系结构必须是开放的 (增加了设计难度) 模型自相矛盾:整体 VS 独立 的构件序列
面向对象建模技术
Page 18
增量模型
举例说明
1.1 SDLC
使用增量模型开发字处理软件(如WORD)时。
面向对象建模技术
Page 26
多态
1.2 面向对象
同样的消息被不同类型的对象接收时导致完全不同的行为 。 两种多态方式:编译时的多态和运行时的多态。
1 编译时的多态主要是通过函数重载来实现的。 2 运行时的多态在不同的语言中拥有不同的实现方案。C++通过虚 函数的晚捆绑来实现,而Java通过面向接口编程和面向抽象编程来 实现动态调用相应的函数实现。
面向对象建模技术
Page 27
面向对象分析与设计在SDLC中的作用
1.2 面向对象
面向对象方法并没有完全替代标准方法,例如数据流图 (DFD) 或实体关系( ER ) 图。面向对象方法只是现有工具包 的扩展。 面向对象分析与设计(OOAD)使用面向对象方法解决现 实世界问题。它使用面向对象方法分析系统需求,将庞大 的、复杂的系统分成更小的、更简单的组件。 OOAD 通过对象、类、封装、继承、多态性、抽象与动态 绑定,进行需求分析与软件系统设计。 OOAD 是一种能够应用于任一软件开发模型的方法论。
⑥ ⑦
如果风险不能排除,则停止开发工作或 大幅度地削减项目规模。 如果成功地排除了所有风险,则启动下 一个开发步骤(右下象限) ,在这个步 骤的工作过程相当于纯粹的瀑布模型。
⑧ 最后是评价该阶段的工作成果并计划下
一个阶段的工作。
面向对象建模技术
Page 14
螺旋模型
示例
1.1 SDLC
Windows 操作系统,从Windows 3. 1 至Windows 7 的演化,就是一个 螺旋模型示例。你可能将Wind ows 3. 1 操作系统称为螺旋模型第一迭 代。该产品发布之后就由整个市场的客户进行评估。在获得Windows 3. 1 客户反馈之后, Microsoft开始计划Windows 操作系统新版本的开 发。新发布的W indows 95 在功能与图形灵活性都有了许多改进。与此 类似,其它版本的Windows 操作系统也都经历了上述过程。
面向对象建模技术
Page 2
第1章 面向对象分析和设计引言
1.1 软件开发生命周期 1.2 面向对象的概念 目标
本章节介绍软件开发生命周期( SDLC) 各个阶段,并讨论各种 软件开发模型。之后,我们还将讨论面向对象概念,并阐述 OOAD 在软件开发中的作用。
面向对象建模技术
Page 3
1.1 软件开发生命周期(SDLC)