软件工程概论参考课件9_面向对象的方法学
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象的方法
2019/11/7
19
taohuating126
② 结构化方法论
传统方法论只关注程序的流程,程序结构没有得到有效的 解决,更没有意识到需求分析和软件结构设计的重要性, 这个阶段的导致软件危机的时期;主要问题是程序(微观) 的质量、效率、可维护性问题;
结构化程序设计技术,即把程序结构规范成了顺序的、判 断分支的和循环的三种基本的结构。解决了程序结构问题, 使得程序的质量和编程效率有了很大的提高,同时,使得 程序的可维护性得到了提高。
taohuating126
软件结构问题
面 向 对 象 的 方 法
程序结构问题
解决软件结 构问题
面向对象的 思想
面向对象的 程序设计方 法,解决程 序结构问题
面向对象的方法
2019/11/7
14
taohuating126
3. 什么是方法论?
一般认为,方法论指的是做事或思考问题的思维模式、策略、步骤、 行动准则。
没有思想的方法、工具和技术的运用,是永远不得要领,也体会不 到某种方法的魅力的。
面向对象的方法
2019/11/7
17
taohuating126
5. 有哪些方法论?
在软件工程实践中,不同时期都有应用成熟的方法论,下面就简单 介绍这些方法论,最后,重点介绍面向对象的方法论。
① 传统方法论 ② 结构化方法论 ③ 信息建模方法 ④ 面向对象方法论
为了提高开发效率、提高质量和可维护性,首先要遇到 的是解决程序设计与实现问题(程序结构与实现问题, 是微观的)
宏观层面,解决软件系统结构问题
软件系统结构与程序结构不是一个概念,需求分析与系 统设计主要解决的是软件结构问题,属宏观层面。
面向对象的方法
2019/11/7
11
taohuating126
面向对象的方法
2019/11/7
28
taohuating126
第9章 从结构化到面向对象
9.1 方法论的形成与发展 9.2 结构化方法的缺陷与面向对象的优势 9.3 面向对象的基本概念
面向对象的方法
2019/11/7
29
taohuating126
面向对象的方法
2019/11/7
18
taohuating126
① 传统方法论
70年代以前,编程模式主要是基于流程的,即用程序流程图解决 程序的结构问题。受此影响,人们认识和描述系统结构时,也是按 照作业流程顺序进行的;
比如,你要开发一个工资管理系统,在你看来,首先应具备输入功 能,将基本工资、应扣款、应补款等工资项目输入到系统中,然后 应具有计算功能,计算得到每个职工的实际应发工资,最后应具有 打印输出功能,把工资条、工资总表等打印出来。这里明显是按作 业流程来描述问题的。
第9章 面向对象的方 化方法为背景,介绍了各开发阶段的任务、 活动内容及相关的工具与技术;
目前面向对象的方法为主流,本章介绍软件工程方法论 的形成过程,并借此引入对面向对象的方法;
面向对象的方法
2019/11/7
2
taohuating126
本章重点:
软件系统本质上是信息处理系统。因此,在软件系统的 整个开发过程中必须考虑两方面的问题——“数据”及 对数据的“处理”。因此,在企业信息开发领域,这种 方法得到了广泛应用。
面向对象的方法
2019/11/7
22
taohuating126
③ 信息建模方法
最常用的表示概念性数据模型的方法,是ER图,即 “实体—关系”图。它把问题域(即现行的手工系统) 描述为实体、实体的属性及实体之间的关系的一种模型 (ER图)。
面向对象的方法
2019/11/7
26
taohuating126
④ 面向对象方法论
面向对象的方法的基本出发点是尽可能按照人类认识世界的方法和 思维方式来分析和解决问题。
面向对象的方法把对象看作是系统构成的基本元素。客观世界是由 许多具体的事物、事件、概念和规则组成的,这些均可看成对象。
对象是一个自主的、活动的实体,它具有一定的特征、行为,有一 定的方法可以自我实现某些功能。
面向对象的方法
2019/11/7
15
taohuating126
方法论包括哪些内容:
软件工程的方法论涵盖了方法、工具和技术三个层次的相关的概念。 ① 方法:是处理和解决问题的思维模式和策略,不同的方法来自 于对问题的不同认识模式。 ② 工具:有了认识模式之后,为了使用这种模式来认识和表述系 统,还要借助于一定的工具。方法论的倡导都为各自的方法(理 论),研究了相应的工具,用于从事需求分析与软件设计; ③ 技术:使用工具从事分析与设计的过程中,需要掌握一定的技术。
件复用,这效果促使研究者把一部分注意力转向更广、更深层次的 研究。 首先把面向对象的思想用于设计阶段,于是有了面向对象的设计, 进一步,又把面向对象的思想用于分析阶段,产生了面向对象的分 析,因而,在面向对象的系统开发方面不断取得进展,一种新的软 件开发方法——面向对象的开发方法产生了。 虽然尚不完善,但逐渐处于主流开发方法的地位了。
系统流程图虽然是传统方法论中,描述物理系统概貌的一个主要工 具。但现在也常在必要的时候使用.
如,在进行可行性研究时,需要了解和分析现有的系统,并以概括 的形式表达对现有系统的认识;进入设计阶段以后应该把设想的新 系统的逻辑模型转变成物理模型,需要描绘未来的物理系统的概貌。 这两处都用到了系统流程图。
两者都认为需要功能和数据。但是,在用于发掘功能和数据的解决 问题策略上,两者意见不一致。两种方法论各有所长。
面向对象的方法
2019/11/7
25
taohuating126
④ 面向对象方法论
80年代,面向对象的程序设计语言趋于成熟。 面向对象的程序设计模式,导致了软件开发的高效率、高质量和软
例如,图9-2表示了学校教学管理系统中的数据关系模 型。
面向对象的方法
2019/11/7
23
taohuating126
职工号 姓名 性别 职称 职务
成绩
教1 师
教
学
N
M
课程
N学 生
学号 姓名 性别 班级
课程号
课名
学时
学分
图 9 2 学校教学管理 ER 图
面向对象的方法
2019/11/7
24
taohuating126
从上述演变过程,可以发现软件工程为实现“高效率、 高质量和可维护性”所做出的每一步努力;
面向对象的方法
2019/11/7
10
taohuating126
从两个层面解决问题
软件工程方法的研究者,在追求软件工程目标的过程中,一般都经 历了从微观到宏观两个层面解决问题的过程:
微观层面,主要解决程序的结构问题
与设计的主要工具。 又称数据流建模方法论; 出现在70年代中期,是目前主要方法论之一。
面向对象的方法
2019/11/7
21
taohuating126
③ 信息建模方法
信息建模方法论,也称数据建模方法论。
出现在80年代中期;
当时流行数据库管理系统。现在它仍然是协助软件系 统分析与设计的一种常用方法。
① 理解软件工程的目的和要解决的主要问题; ② 理解软件工程解决问题的思路和各种方法论的形成过程; ③ 认识结构化方法的缺陷和面向对象的优势 ④ 准确理解面向对象的相关概念 ⑤ 了解面向对象的软件开发过程
面向对象的方法
2019/11/7
3
taohuating126
第9章 从结构化到面向对象
9.1 方法论的形成与发展 9.2 结构化方法的缺陷与面向对象的优势 9.3 面向对象的基本概念
1. 软件工程追求的目标和要解决的主要问题
软件危机促使软件工程诞生,本质上讲,软件工程追求 的目标和要解的关键问题,就是要缓解或避免软件危机; 也是软件工程方法论将要解的关键问题
软件危机反映出来的问题,包括: • 软件开发效率低; • 软件质量差; • 软件不可维护; • 软件项目成功率低;
软件结构问题
解决软件结 构问题
传
统 方 法
流程 思想
程序结构问题
程序流程 设计方法, 解决程序结
构问题
面向对象的方法
2019/11/7
12
taohuating126
软件结构问题
解决软件结 构问题
结
构
结构化思想
化
方
法
结构化程序
设计方法,
解决程序结
构问题
程序结构问题
面向对象的方法
2019/11/7
13
面向对象的方法
2019/11/7
7
taohuating126
软件工程追求的目标,自然是
① 提高开发效率(解决软件复用问题) ② 提高软件质量(满足需求的程度、可靠性、可操作性
等) ③ 提高软件的可维护性 ④ 提高软件项目管理水平
面向对象的方法
2019/11/7
8
taohuating126
软件工程的实现目标,可以分为两类:
① 效率 ② 质量 ③ 可维护性
① 项目管理
•与软件工程的方法、 工具、技术相关;
•属于技术范畴;
•离不开项目管理; •属于管理范畴;
面向对象的方法
2019/11/7
9
taohuating126
2. 软件工程方法论的形成
为解决软件开发效率、软件质量和软件可维护性的问题, 软件工程学科从诞生的那一天起,经历了一个从传统方 法到结构化方法再到面向对象的方法的发展过程;
面向对象的方法
2019/11/7
5
taohuating126
9.1 方法论的形成与发展
有必要讨论以下重要内容: 1. 软件工程追求的目标和要解决的主要问题; 2. 方法论的形成过程; 3. 什么是方法论? 4. 为什么要研究方法论? 5. 有哪些方法论?
面向对象的方法
2019/11/7
6
taohuating126
面向对象的方法
2019/11/7
4
taohuating126
9.1 方法论的形成与发展
为什么要研究方法论:
方法论的形成与发展,反映了软件工程发展的足迹, 并形成了软件工程的主体内容。所以,理解方法论 是理解相关内容的基础。
方法论在解决软件工程问题中反映出来的软件工程 思想,是灵活掌握软件工程技术的关键。
这种方法论主要从信息角度进行分析与设计,更多的用于数据库应 用系统设计。
注意:信息建模方法论解决问题的策略和结构化方法论不同,两者 有着本质的差异。
为了满足信息系统需要,两种方法论都考虑功能和信息。两者的差 别在于处理功能和信息的策略不同。即看是从功能入手,还是从信 息入手?结构化方法论主张从功能入手,而信息建模方法论主张从 信息或数据入手。
那么,面对系统(宏观)中的同样问题,借鉴解决程序结 构的”结构化思路”,形成了结构化系统分析与设计方法,这 就是结构化方法论。
面向对象的方法
2019/11/7
20
taohuating126
② 结构化方法论
基于数据流程的策略来获取用户的功能需求; 基于功能分解的策略,将系统分解成模块化结构; 数据流图、数据字典、功能结构图等是结构化系统分析
对象之间通过消息传递,为对方提供服务,协同运作,从而构成了 系统的强大功能。
面向对象的方法
2019/11/7
27
taohuating126
④ 面向对象方法论
面向对象开发方法逐步形成三个主要流派,它们分别是Coad方法、 Booch方法和OMT方法。
2019年推出了统一建模语言,即UML(Unified Modeling Language)。它是面向对象的标准建模语言,可通过统一的语 义和符号表示,使各种方法的建模过程和表示统一起来,将成为面 向对象建模的工业标准。
所以,软件工程的主要内容可以概括为:原理、方法、工具和技术 四个层次;
面向对象的方法
2019/11/7
16
taohuating126
4. 论为什么要研究方法论?
不同的方法论,有着不同的解决问题的思想;
不同的方法论分别从各自的思维模式出发,给出了不同的策略 和方法、一组相应的工具和利用工具从事活动(需求分析和软 件设计)的技术。因此,学习软件工程方法时,领悟其中的软 件工程思想,以思想为基础,理解其策略、方法、工具、技术 等内容才是正确的学习之道。
在软件工程方法论的发展中,为了解决系统结构问题,在不同的时 期,人们从不同的角度认识系统、研究系统的规律,这样就自然形 成了从不同角度理解和表述系统的方法,逐渐形成了不同的流派, 它们从不同的视角来认识、理解并描述软件系统,并总结出了自成 体系的从事系统分析与设计方法。我们把这些不同的流派所倡导的 方法,称为不同的方法论。