大连理工大学软件工程导论复习ppt课件
合集下载
软件工程导论(PPT 69页)
程序员
程序员
程序员
分工: (1)主程序员:体系结构设计、关键部分详细设计,技术指导。 (2)后备程序员:协助主程序员,必要时接替主程序员。 (3)编程秘书:负责事务性工作。
吉林省精品课程:软件工程导论
CCUTSE 2013
45
12 人员组织
2.主程序员组
编程秘书
主程序员 后备程序员
程序员
程序员
程序员
③Boehm简单模型:
E=3.2×(KLOC)1.05
④ Doty模型(KLOC>9时):E=5.288×(KLOC)1.047
吉林省精品课程:软件工程导论
CCUTSE 2013
32
11.2 工作量估计
1.静态单变量模型
(2)面向FP的估算模型
①Albrecht&Gaffney模型: E=-13.39+0.0545FP
11
导言
软件的配置管理
软件配置项 程序
× 文档
数据
变化管理
标识变化 版本控制 变化控制
配置审计 报告
吉林省精品课程:软件工程导论
CCUTSE 2013
12
导言
能力成熟度模型:评价软件机构的软件过程能力成熟度的模型。
吉林省精品课程:软件工程导论
CCUTSE 2013
13
导言
能力成熟度模型:评价软件机构的软件过程能力成熟度的模型。
缺点: (1)主程序员:是高级程序员和优秀管理者的结合体,难找。 (2)后备程序员:期望与主程序员一样优秀,难找。 (3)编程秘书:专业人员厌烦事务工作,难找。
吉林省精品课程:软件工程导论
CCUTSE 2013
46
大连理工软件学院软件工程课件
软件工程
大连理工大学软件学院
第1章 软件工程学概述
• 1.1 软件危机 • 1.2 软件工程 • 1.3 软件生命周期 • 1.4 软件过程 • 1.5 小结
2019/10/28
大连理工大学软件学院
2
软件及软件工程
• 为什么要讲软件和软件工程
– 只有对软件和软件的开发过程有充分的认识, 才能更好的开发出过程受控、质量受控的软件 产品。
– 对于软件和软件开发过程的认识是困难的,存 在很多困惑,需要对此有深刻的认识。
2019/10/28
大连理工大学软件学院
3
一些对软件的偏见或误解
• 软件就是程序,软件开发就是编写程序。编完了 程序,就一切OK了。
• 掌握了最新的语言和工具,就能写程序了。 • 软件是灵活的,软件的修改很容易。 • 只要会编程,就能写软件,就是程序员;一个公
2019/10/28
大连理工大学软件学院
16
• 软件工程方法学
– 把在软件生命周期全过程中使用的一整套技术的集合称为 方法学(methodology),也称范型(paradigm)。
– 软件工程方法学三个要素:方法、工具和过程。
• 方法是完成软件开发各项任务的技术,回答“如何做”; • 工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什
18% 1955年
60% 1970年
72% 1975年
80% 1980年
85% 1985年
• 什么是软件危机
– 软件危机是指在计算 机软件的开发和维护 过程中所遇到的一系 列严重问题。
2019/10/28
大连理工大学软件学院
9
软件危机
• 软件危机的表现
– 软件成本日益增长 – 开发进度难以控制 – 软件质量差 – 软件维护困难 – 软件开发速度跟不上计算机发展速度
大连理工大学软件学院
第1章 软件工程学概述
• 1.1 软件危机 • 1.2 软件工程 • 1.3 软件生命周期 • 1.4 软件过程 • 1.5 小结
2019/10/28
大连理工大学软件学院
2
软件及软件工程
• 为什么要讲软件和软件工程
– 只有对软件和软件的开发过程有充分的认识, 才能更好的开发出过程受控、质量受控的软件 产品。
– 对于软件和软件开发过程的认识是困难的,存 在很多困惑,需要对此有深刻的认识。
2019/10/28
大连理工大学软件学院
3
一些对软件的偏见或误解
• 软件就是程序,软件开发就是编写程序。编完了 程序,就一切OK了。
• 掌握了最新的语言和工具,就能写程序了。 • 软件是灵活的,软件的修改很容易。 • 只要会编程,就能写软件,就是程序员;一个公
2019/10/28
大连理工大学软件学院
16
• 软件工程方法学
– 把在软件生命周期全过程中使用的一整套技术的集合称为 方法学(methodology),也称范型(paradigm)。
– 软件工程方法学三个要素:方法、工具和过程。
• 方法是完成软件开发各项任务的技术,回答“如何做”; • 工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什
18% 1955年
60% 1970年
72% 1975年
80% 1980年
85% 1985年
• 什么是软件危机
– 软件危机是指在计算 机软件的开发和维护 过程中所遇到的一系 列严重问题。
2019/10/28
大连理工大学软件学院
9
软件危机
• 软件危机的表现
– 软件成本日益增长 – 开发进度难以控制 – 软件质量差 – 软件维护困难 – 软件开发速度跟不上计算机发展速度
软件工程导论 第3章.ppt
结构化分析方法就是面向数据流自顶向下逐步求精 进行需求分析的方法。通过可行性研究已经得出了 目标系统的高层数据流图,需求分析的目标之一就 是把数据流和数据存储定义到元素级。为了达到这 个目标,通常从数据流图的输出端着手分析,这是 因为系统的基本功能是产生这些输出,输出数据决 定了系统必须具有的最基本的组成元素。
为了解决这些问题,往往需要向用户和其他有关人 员请教,他们的回答使分析员对目标系统的认识更 深入更具体了,系统中更多的数据元素被划分出来 了,更多的算法被搞清楚了。通常把分析过程中得 到的有关数据元素的信息记录在数据字典中,把对 算法的简明描述记录在IPO图(见3.7节)中。通过分析 而补充的数据流、数据存储和处理,应该添加到数 据流图的适当位置上。
一旦得出了意见一致的列表,就把与会者分成更小 的小组,每个小组的工作目标是为每张列表中的项 目制定小型规格说明。小型规格说明是对列表中包 含的单词或短语的准确说明。
7. 逆向需求
逆向需求说明软件系统不应该做什么。理论上有无 限多个逆向需求,我们应该仅选取能澄清真实需求 且可消除可能发生的误解的那些逆向需求。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴, 但是据分析将来很可能会提出来的要求。这样做的 目的是,在设计过程中对系统将来可能的扩充和修 改预做准备,以便一旦确实需要时能比较容易地进 行这种扩充和修改。
在展示了每个人针对某个议题的列表之后,大家共 同创建一张组合列表。在组合列表中消去了冗余项, 加入了在展示过程中产生的新想法,但是并不删除 任何实质性内容。在针对每个议题的组合列表都建 立起来之后,由协调人主持讨论这些列表。组合列 表将被缩短、加长或重新措辞,以便更准确地描述 将被开发的产品。讨论的目标是,针对每个议题(对 象、服务、约束和性能)都创建出一张意见一致的列 表。
软件工程导论(共65张PPT)可编辑全文
–期刊管理系统之借阅子系统
– 学生选课系统 软件
Microsoft Visio; Rational Rose
高级程序语言 作业递交方式:
来信标题注明 :班级 、学号、姓名、章节
第1章 软件工程学概述
1.1 软件危机
软件危机的出现:60年代中期到70年代中期, 许多软件最终成为不可维护的,这就是软件危 机.
不能用象硬件替换部件的方式修复软件的故障 使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
出现了“软件作坊”,软件作为一种产品被广泛使用;
使用个体化开发方式;
软件的发展史_2
随着软件数量的增加及软件需求的日趋复杂, 维护难度与来越大,开发成本高,质量低 导致“软件危机”
➢相同点:都将软件开发划分为分析、设计、编码、 测试等阶段 ➢不同点:思想不同,方法不同。另外,传统软件 工程更关注功能模块,面向对象软件工程更关注对 象的抽取和设计
➢ 两类软件工程方法学没有绝对的替代关系
1.3软件生命周期
生命周期方法学
从时间角度对软件开发和维护的复杂问题进行分解,把软件生命 的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务, 然后逐步完成每个阶段的任务。
关注大型程序的构造 中心问题是控制复杂性 软件经常变化 开发效率非常重要 和谐地合作是开发软件的关键 有效地支持它的用户 具有一种文化背景的人替另一种文化背景的人
创造产品
用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组成员应少而精 承认不断改进软件工程实践地必要性
软件工作涉及到很多社会因素。 由于对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙
– 学生选课系统 软件
Microsoft Visio; Rational Rose
高级程序语言 作业递交方式:
来信标题注明 :班级 、学号、姓名、章节
第1章 软件工程学概述
1.1 软件危机
软件危机的出现:60年代中期到70年代中期, 许多软件最终成为不可维护的,这就是软件危 机.
不能用象硬件替换部件的方式修复软件的故障 使用增量模型的困难是,在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
出现了“软件作坊”,软件作为一种产品被广泛使用;
使用个体化开发方式;
软件的发展史_2
随着软件数量的增加及软件需求的日趋复杂, 维护难度与来越大,开发成本高,质量低 导致“软件危机”
➢相同点:都将软件开发划分为分析、设计、编码、 测试等阶段 ➢不同点:思想不同,方法不同。另外,传统软件 工程更关注功能模块,面向对象软件工程更关注对 象的抽取和设计
➢ 两类软件工程方法学没有绝对的替代关系
1.3软件生命周期
生命周期方法学
从时间角度对软件开发和维护的复杂问题进行分解,把软件生命 的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务, 然后逐步完成每个阶段的任务。
关注大型程序的构造 中心问题是控制复杂性 软件经常变化 开发效率非常重要 和谐地合作是开发软件的关键 有效地支持它的用户 具有一种文化背景的人替另一种文化背景的人
创造产品
用分阶段的生命周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组成员应少而精 承认不断改进软件工程实践地必要性
软件工作涉及到很多社会因素。 由于对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙
最新软件工程导论(第1章)概要教学讲义ppt课件
1)软件工程学:主要应用工程的方法和技术 研究软件开发与维护的方法、工具和管理的一 门交叉学科。
2)程序设计方法学:主要应用数学的方法研 究程序的性质以及程序设计的理论和方法的学 科。
1.2 软件工程
1.2.1 软件工程的介绍 1968年NATO会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
③ 需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了 解决这个问题,目标系统必须做什么”,主要是确定目标系统必 须具备哪些功能。用户了解他们所面对的问题,知道必须做什么, 但是通常不能完整准确地表达出他们的要求,更不知道怎样利用 计算机解决他们的问题;软件开发人员知道怎样用软件实现人们 的要求,但是对特定用户的具体要求并不完全清楚。因此,系统 分析员在需求分析阶段必须和用户密切配合,充分交流信息,以 得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典 和简要的算法表示系统的逻辑模型。
3. 工具:应该开发和使用更好的软件工具。在软件开
发的每个阶段都有许多繁琐重复的工作需要做,在 适当的软件工具辅助下,开发人员可以把这类工作 做得既快又好。
如果把各个阶段使用的软件工具有机地集 合成一个整体,支持软件开发的全过程, 则称为软件工程支撑环境。
为了解决软件危机产生的问题,软件工程与 方法学逐渐形成,然后出现了两个相互相承又 各有侧重的学科:
② 把所有对象划分为类(Class):每个类定义了一组数据和一组操 作。
③ 按照父类(基类)和子类(派生类)的关系,把若干个相关类 组成一个层次结构的系统。子类能够继承。
④ 对象彼此间仅能通过发送消息互相联系。对象是数据处理的主 体,具有封装性特点。
2)程序设计方法学:主要应用数学的方法研 究程序的性质以及程序设计的理论和方法的学 科。
1.2 软件工程
1.2.1 软件工程的介绍 1968年NATO会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
③ 需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了 解决这个问题,目标系统必须做什么”,主要是确定目标系统必 须具备哪些功能。用户了解他们所面对的问题,知道必须做什么, 但是通常不能完整准确地表达出他们的要求,更不知道怎样利用 计算机解决他们的问题;软件开发人员知道怎样用软件实现人们 的要求,但是对特定用户的具体要求并不完全清楚。因此,系统 分析员在需求分析阶段必须和用户密切配合,充分交流信息,以 得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典 和简要的算法表示系统的逻辑模型。
3. 工具:应该开发和使用更好的软件工具。在软件开
发的每个阶段都有许多繁琐重复的工作需要做,在 适当的软件工具辅助下,开发人员可以把这类工作 做得既快又好。
如果把各个阶段使用的软件工具有机地集 合成一个整体,支持软件开发的全过程, 则称为软件工程支撑环境。
为了解决软件危机产生的问题,软件工程与 方法学逐渐形成,然后出现了两个相互相承又 各有侧重的学科:
② 把所有对象划分为类(Class):每个类定义了一组数据和一组操 作。
③ 按照父类(基类)和子类(派生类)的关系,把若干个相关类 组成一个层次结构的系统。子类能够继承。
④ 对象彼此间仅能通过发送消息互相联系。对象是数据处理的主 体,具有封装性特点。
《软件工程导论》PPT课件
– 通常一个消息由三部分组成:
• 接收消息的对象 • 消息标识符(即消息名) • 零个或多个变元
例如:MyCircle.Show(Green)
MyCircle是接收消息的对象的名字,Show是消息名,Green 是消息的变元。
2021/8/17
16
第二节 面向对象的基本概念
– 如何要求对象完成一定的处理动作?对象间如何 进行联系?所有这一切都只能通过消息传递来实
• 从面向对象程序设计的角度看:对象是具有相 同状态的一组操作的集合。
• 从信息模拟的角度看:对象是对问题域中某个
东西的抽象,这种抽象反映了系统保存有关这
个东西的信息和与它交互的能力,即对象是对
2021/8/17 属性值和操作的封装。
8
第二节 面向对象的基本概念
– 从形式化角度看:
对象::=<ID,MS,DS,MI> 其中:ID是对象的标识或名字,MS是对象中的数据集合,
– 优点:重载进一步提高了面向对象系统的 灵活性和可读性。
2021/8/17
25
第二节 面向对象的基本概念
十、封装
– 封装是指将方法与数据同放于一对象中以 使对数据的存取只通过该对象本身的方法。 面向对象程序的其它部分(对象以外的部 分)都不能直接作用于一对象的数据,对 象间的通信只能通过明确的消息来进行。
2021/8/17
26
第二节 面向对象的基本概念
面向对象
传统技术
方法
过程、函数或子例程
实例变量
数据
消息
过程或参数调用
类
抽象数据类型
继承
无类似技术
调用处于系统控制之 调用处于程序员控制
下
之下
• 接收消息的对象 • 消息标识符(即消息名) • 零个或多个变元
例如:MyCircle.Show(Green)
MyCircle是接收消息的对象的名字,Show是消息名,Green 是消息的变元。
2021/8/17
16
第二节 面向对象的基本概念
– 如何要求对象完成一定的处理动作?对象间如何 进行联系?所有这一切都只能通过消息传递来实
• 从面向对象程序设计的角度看:对象是具有相 同状态的一组操作的集合。
• 从信息模拟的角度看:对象是对问题域中某个
东西的抽象,这种抽象反映了系统保存有关这
个东西的信息和与它交互的能力,即对象是对
2021/8/17 属性值和操作的封装。
8
第二节 面向对象的基本概念
– 从形式化角度看:
对象::=<ID,MS,DS,MI> 其中:ID是对象的标识或名字,MS是对象中的数据集合,
– 优点:重载进一步提高了面向对象系统的 灵活性和可读性。
2021/8/17
25
第二节 面向对象的基本概念
十、封装
– 封装是指将方法与数据同放于一对象中以 使对数据的存取只通过该对象本身的方法。 面向对象程序的其它部分(对象以外的部 分)都不能直接作用于一对象的数据,对 象间的通信只能通过明确的消息来进行。
2021/8/17
26
第二节 面向对象的基本概念
面向对象
传统技术
方法
过程、函数或子例程
实例变量
数据
消息
过程或参数调用
类
抽象数据类型
继承
无类似技术
调用处于系统控制之 调用处于程序员控制
下
之下
《软件工程导论》PPT课件-第4章-总体设计
软件需求分析阶段:(抽象)
软件的解决方案是使用问题环境中的术语来描述。
总体设计—详细设计阶段:(抽象—具体)
将面向问题的术语与面向实现的术语结合起来来描述 解决方法,直到产生源程序时到达最低抽象层次。
4.2 软件结构设计原理
4.2.2 逐步求精
为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。
4.2 软件结构设计原理
4.2.4 模块独立性
耦合类型
无直接耦合—数据耦合—控制耦合—特征耦合—公共耦合—内 容耦合
低——————————————————————高
4.2 软件结构设计原理
4.2.4 模块独立性
无直接耦合:指两个模块之间没有直接的关系,它们分别从 属于不同模块的控制与调用,它们之间不传递任何信息。
第4章 总体设计
➢ 4.1 总体设计的目标及任务 ➢ 4.2 软件结构设计原理 ➢ 4.3 软件结构设计工具 ➢ 4.4 软件结构设计启发式规则 ➢ 4.5 结构化设计方法
4.1 总体设计的目标及任务
总体设计:
应用各种技术和原理,对设备、过程或系统做 出足够详细的定义,使之能够在物理上得以实现。
4.2 软件结构设计原理
4.2.4 模块独立性
模块独立是模块化、抽象、信息隐藏和局部化概 念的直接结果。
模块独立:每个模块完成一个相对独立的特定子 功能,并且和其他模块之间的关系很简单。
4.2 软件结构设计原理
4.2.4 模块独立性
良好的模块独立性的重要性: 能使开发的软件具有较高的质量。 设计的模块可理解性、可维护性及可测试性好, 必然导致软件的可靠性高。 接口简单、功能独立的模块易开发,且可并行工 作,有效地提高了软件的生产率。
统划分成若干模块的过程。每个模块完成一个特定的子 功能,所有的模块按某种方法组装起来,成为一个整体, 完成整个系统所要求的功能。
软件的解决方案是使用问题环境中的术语来描述。
总体设计—详细设计阶段:(抽象—具体)
将面向问题的术语与面向实现的术语结合起来来描述 解决方法,直到产生源程序时到达最低抽象层次。
4.2 软件结构设计原理
4.2.2 逐步求精
为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。
4.2 软件结构设计原理
4.2.4 模块独立性
耦合类型
无直接耦合—数据耦合—控制耦合—特征耦合—公共耦合—内 容耦合
低——————————————————————高
4.2 软件结构设计原理
4.2.4 模块独立性
无直接耦合:指两个模块之间没有直接的关系,它们分别从 属于不同模块的控制与调用,它们之间不传递任何信息。
第4章 总体设计
➢ 4.1 总体设计的目标及任务 ➢ 4.2 软件结构设计原理 ➢ 4.3 软件结构设计工具 ➢ 4.4 软件结构设计启发式规则 ➢ 4.5 结构化设计方法
4.1 总体设计的目标及任务
总体设计:
应用各种技术和原理,对设备、过程或系统做 出足够详细的定义,使之能够在物理上得以实现。
4.2 软件结构设计原理
4.2.4 模块独立性
模块独立是模块化、抽象、信息隐藏和局部化概 念的直接结果。
模块独立:每个模块完成一个相对独立的特定子 功能,并且和其他模块之间的关系很简单。
4.2 软件结构设计原理
4.2.4 模块独立性
良好的模块独立性的重要性: 能使开发的软件具有较高的质量。 设计的模块可理解性、可维护性及可测试性好, 必然导致软件的可靠性高。 接口简单、功能独立的模块易开发,且可并行工 作,有效地提高了软件的生产率。
统划分成若干模块的过程。每个模块完成一个特定的子 功能,所有的模块按某种方法组装起来,成为一个整体, 完成整个系统所要求的功能。
大连理工大学软件工程复习提纲36页PPT
44、卓越的人一大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
45、自己的饭量自己知道。——苏联
大连理工大学软件工程复习提纲
36、如果我们国家的法律中只有某种 神灵, 而不是 殚精竭 虑将神 灵揉进 宪法, 总体上 来说, 法律就 会更好 。—— 马克·吐 温 37、纲纪废弃之日,便是暴政兴起之 时。— —威·皮 物特
38、若是没有公众舆论的支持,法律 是丝毫 没有力 量的。 ——菲 力普斯 39、一个判例造出另 尼厄斯
40、人类法律,事物有规律,这是不 容忽视 的。— —爱献 生
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
45、自己的饭量自己知道。——苏联
大连理工大学软件工程复习提纲
36、如果我们国家的法律中只有某种 神灵, 而不是 殚精竭 虑将神 灵揉进 宪法, 总体上 来说, 法律就 会更好 。—— 马克·吐 温 37、纲纪废弃之日,便是暴政兴起之 时。— —威·皮 物特
38、若是没有公众舆论的支持,法律 是丝毫 没有力 量的。 ——菲 力普斯 39、一个判例造出另 尼厄斯
40、人类法律,事物有规律,这是不 容忽视 的。— —爱献 生
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
软件工程导论PPT课件-第11章-面向对象的分析
11.2 静态结构建模
一对一的关联。一个类的实例对象只能和另一个类的惟一对象发 生联系。
拥有
一对多关联。一对多关联是指有关联关系的两个类之间,从一个 方向上看是一对多关联,从另一个方向上看则是一对一关联。
拥有
11.2 静态结构建模
多对多关联。多对多关联是指有关联关系的两个类之间,从两个 方向上都是一对多的关联。
象模型、用户界面
系统设计
分析模型 动态模型 用例模型、对象模型
对象设计
面向对象分析过程
11.2 静态结构建模
面向对象的分析分为静态分析和动态分析两种,静态分析 是分析静态模型(类图或对象图);动态分析是分析动态 模型(顺序图或协作图)
静态结构建模确定系统的逻辑或物理部分,以及如何把它 们连接在一起,它描述了如何构建和初始化系统。
第11章 面向对象的分析
➢ 11.1 面向对象分析的任务 ➢ 11.2 静态结构建模 ➢ 11.3 动态结构建模
第11章 面向对象的分析
分析的过程都是提取系统需求、开发分析模型的过程。 这个阶段的工作既需要开发技术人员的参与,又需要 客户、未来软容,这就是理解、表达和验证。 分析过程得出的最重要的文档资料是软件需求规格说
11.2 静态结构建模
(5)完善初始的静态结构模型
- 识别继承关系 检查已经提交的类对象之间是否存在继承关系,如果存在继承,
则利用类之间的继承特征来改进类模型,从而提高类模型的可复用 性。可以从类的属性与操作及问题域中的可复用性两个角度来确定 可能存在的继承关系。 - 分解、合并系统中的类对象
对于系统中已有的类对象认真分析,检查是否有些类可以进一步 地分解为不同的类或者可以将一些类对象进行合并。
明(在面向对象分析中,主要由对象模型、动态模型 和功能模型组成)。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
• 什么是软件危机
– 软件危机是指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。
• 软件工程(IEEE)
– 1993年,提出软件工程 – 1) 将系统化、规范化、可量化的工程原则和方法,
应用于软件的开发、运行和维护。 – 2) 对1)中方法的理论研究。
4
• 软件工程基本原理 (开发与维护的指导)
• 数据字典的用途是供人查阅不了解的条目的解释。 提供分析设计过程中关于数据的描述。
• 数据字典与DFD相辅相成。 • 只有DFD和对应的元素的精确定义放在一起,才
能构成系统的规格说明。
26
定义数据的方法
• = 意思是等价于(或定义为) • + 意思是和(即,连接两个分量) • [ ]意思是或(即,从方括弧内列出的若干个分
仓库管理员
处理事务
数据流
数据存储
定货报表
定货信息
零件编号 零件名称
(见定货报表) 库存清单
定货数量
零件编号
目前价格
库存量
主要供应者
库存量临界值
次要供应者 事务
零件编号* 事务类型
数量*
24
把处理事务的功能进一步分解后的数据流图
25
• 数据字典是关于数据的信息的集合,即对DFD图 中包含的元素的定义的集合。
含义
由数据A和B共同变换为数据C
由数据A变换为数据B和数据C 由数据A或B,或者数据A和B共同变换为数据 C 由数据A变换为数据B或C,或者同时变换为数 据B和C 由数据A或B其中之一变换为数据C
由数据A变换为数据B或C其中之一
23
组成数据流图的元素可以从描述问题的信息中提取
源点/终点
处理
采购员
产生报表
• 目前使用得最广泛的软件工程方法学。 • 传统方法学也称为生命周期方法学或结构化范型。
– 当软件规模较大,或对软件的需求是模糊的或随时间变化的时 候,使用结构化范型开发软件往往不成功;
– 此外,使用传统方法学开发出的软件,维护起来通常都很困难。
• 结构化-静态分析,面向对象-动态分析
世界万物是变化的
1
软件定义
2
软件开发
3
运行维护
10
1. 问题定义 2. 可行性研究 3. 需求分析 4. 概要设计 5. 详细设计 6. 编码和单元测试 7. 综合测试 8. 软件维护
11
软件过程模型(生命周期模型)
实际的瀑布模型
12
快速原型模型
13
• 瀑布模型:力求一次性 给用户完整的系统。 • 增量模型:逐步增加系 统功能。 • 需要开放的架构设计。
增量模型
14
完整的螺旋模型
15
喷泉模型
• 迭代是OO开发过程的主要特性。 • 喷泉模型是典型的面向对象生命周期模型。 • “喷泉” 体现了面向对象软件开发过程迭代和无缝的特性。 • 为避免喷泉模型的过分无序,把一个线性过程作为总目标。
迭代
16
• 迭代:逐步求精 • 阶段间没有明显的界限 -面向对象的思想保证了 各个阶段开发的一致性。
具体的要求。 – 建立数据模型、功能模型和行为模型等三种模型。 – 还要写出准确的软件需求规格说明。
19
系统流程图
• 系统流程图
– 概括描绘物理系统的传统工具 – 用图形符号,以黑盒子形式描述组成系统的每
个部件 – 程序、文档、数据库、人工过程
20
系统流程图例子
• 例子
• 每个符号用黑盒子 形式定义了组成系 统的一个部件。
– 软件工程方法学三个要素:方法、工具和过程。
• 方法是完成软件开发各项任务的技术,回答“如何做”; • 工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什
么做”; • 过程是为获得高质量的软件要完成的一系列任务的框架,规定完成
各项任务步骤,回答“如何控制、协调、保证质量”。
管理方法
6
传统方法学与面向对象方法学
软件工程复习
大连理工大学软件学院
第1章 基础知识
2
什么是软件
• 软件的定义—软件由三部分组成:
– 程序:在运行时,能提供所希望的功能和性能的指 令集
– 数据:使程序能够正确运行的数据 – 文档:描述程序研制过程、方法及使用的文档
• 软件处理的是信息和逻辑
– 软件的开发,绝不仅仅是编写程序 – 软件围绕着逻辑进行 – 软件就是一个信息交换器 – 产生、管理、获取、修改、显示或传送信息
喷泉模型
迭代是OO开发过程 的主要特性。 喷泉模型是典型的 面向对象生命周期 模型。 “喷泉” 体现了面 向对象软件开发过 程迭代和无缝的特 性。
17
可行性与需求分析
• 可行性研究
– 不是解决问题,而是确定问题是否值得去解决 – 较高层次的系统分析和设计过程
。 • 需求分析
– 发现、求精、建模、规格说明和复审的过程 –反复求精多次细化,得出对目标系统的完整、准确和
7
传统方法的特点
• 生命周期模型 • 软件过程划分为若干个阶 段 • 每个阶段有各自的任务 • 阶段之间有某种顺序性
8
• 面向对象方法:
Everything is Object.
1. 对象作为融合数据及在数据之上的操作行为的统一的软
件构件。
数据:静态 操作:动态
2. 把所有对象都划分成类(Class)。每个类都定义了一组数据
1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚地审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性
5
• 软件工程方法学
– 把在软件生命周期全过程中使用的一整套技术的集合称为 方法学(methodology),也称范型(paradigm)。
• 没有部件内部的具 体工作过程
• 箭头确定通过系统 的逻辑路径(信息 流动路径)
21
数据流图
• 数据流图(DFD) 描绘信息流和数据从输入 移动到输出的过程中所经受的变换。
符号
或
或 或
含义 数据的源点或终点 数据流 数据存储 加工(数据处理)Biblioteka 22加工中常见关系的符号表示
符号
*T T*
+T T+ T T
和一组操作。
3. 按照父类(或称为基类)与子类(或称为派生类)的关系,把 若干个相关类组成一个层次结构的系统(也称为类等级)。 在类等级中,下层派生类自动拥有上层基类中定义的数 据和操作,称为继承。
4. 对象彼此间仅能通过发送消息互相联系-封装性。
9
1.3 软件生命周期
• 软件生命周期由软件定义、软件开发和运行维护 三个时期组成,每个时期又可进一步划分成若干 个阶段,每个阶段有各自的任务。
• 什么是软件危机
– 软件危机是指在计算机软件的开发和维护过程中所遇 到的一系列严重问题。
• 软件工程(IEEE)
– 1993年,提出软件工程 – 1) 将系统化、规范化、可量化的工程原则和方法,
应用于软件的开发、运行和维护。 – 2) 对1)中方法的理论研究。
4
• 软件工程基本原理 (开发与维护的指导)
• 数据字典的用途是供人查阅不了解的条目的解释。 提供分析设计过程中关于数据的描述。
• 数据字典与DFD相辅相成。 • 只有DFD和对应的元素的精确定义放在一起,才
能构成系统的规格说明。
26
定义数据的方法
• = 意思是等价于(或定义为) • + 意思是和(即,连接两个分量) • [ ]意思是或(即,从方括弧内列出的若干个分
仓库管理员
处理事务
数据流
数据存储
定货报表
定货信息
零件编号 零件名称
(见定货报表) 库存清单
定货数量
零件编号
目前价格
库存量
主要供应者
库存量临界值
次要供应者 事务
零件编号* 事务类型
数量*
24
把处理事务的功能进一步分解后的数据流图
25
• 数据字典是关于数据的信息的集合,即对DFD图 中包含的元素的定义的集合。
含义
由数据A和B共同变换为数据C
由数据A变换为数据B和数据C 由数据A或B,或者数据A和B共同变换为数据 C 由数据A变换为数据B或C,或者同时变换为数 据B和C 由数据A或B其中之一变换为数据C
由数据A变换为数据B或C其中之一
23
组成数据流图的元素可以从描述问题的信息中提取
源点/终点
处理
采购员
产生报表
• 目前使用得最广泛的软件工程方法学。 • 传统方法学也称为生命周期方法学或结构化范型。
– 当软件规模较大,或对软件的需求是模糊的或随时间变化的时 候,使用结构化范型开发软件往往不成功;
– 此外,使用传统方法学开发出的软件,维护起来通常都很困难。
• 结构化-静态分析,面向对象-动态分析
世界万物是变化的
1
软件定义
2
软件开发
3
运行维护
10
1. 问题定义 2. 可行性研究 3. 需求分析 4. 概要设计 5. 详细设计 6. 编码和单元测试 7. 综合测试 8. 软件维护
11
软件过程模型(生命周期模型)
实际的瀑布模型
12
快速原型模型
13
• 瀑布模型:力求一次性 给用户完整的系统。 • 增量模型:逐步增加系 统功能。 • 需要开放的架构设计。
增量模型
14
完整的螺旋模型
15
喷泉模型
• 迭代是OO开发过程的主要特性。 • 喷泉模型是典型的面向对象生命周期模型。 • “喷泉” 体现了面向对象软件开发过程迭代和无缝的特性。 • 为避免喷泉模型的过分无序,把一个线性过程作为总目标。
迭代
16
• 迭代:逐步求精 • 阶段间没有明显的界限 -面向对象的思想保证了 各个阶段开发的一致性。
具体的要求。 – 建立数据模型、功能模型和行为模型等三种模型。 – 还要写出准确的软件需求规格说明。
19
系统流程图
• 系统流程图
– 概括描绘物理系统的传统工具 – 用图形符号,以黑盒子形式描述组成系统的每
个部件 – 程序、文档、数据库、人工过程
20
系统流程图例子
• 例子
• 每个符号用黑盒子 形式定义了组成系 统的一个部件。
– 软件工程方法学三个要素:方法、工具和过程。
• 方法是完成软件开发各项任务的技术,回答“如何做”; • 工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什
么做”; • 过程是为获得高质量的软件要完成的一系列任务的框架,规定完成
各项任务步骤,回答“如何控制、协调、保证质量”。
管理方法
6
传统方法学与面向对象方法学
软件工程复习
大连理工大学软件学院
第1章 基础知识
2
什么是软件
• 软件的定义—软件由三部分组成:
– 程序:在运行时,能提供所希望的功能和性能的指 令集
– 数据:使程序能够正确运行的数据 – 文档:描述程序研制过程、方法及使用的文档
• 软件处理的是信息和逻辑
– 软件的开发,绝不仅仅是编写程序 – 软件围绕着逻辑进行 – 软件就是一个信息交换器 – 产生、管理、获取、修改、显示或传送信息
喷泉模型
迭代是OO开发过程 的主要特性。 喷泉模型是典型的 面向对象生命周期 模型。 “喷泉” 体现了面 向对象软件开发过 程迭代和无缝的特 性。
17
可行性与需求分析
• 可行性研究
– 不是解决问题,而是确定问题是否值得去解决 – 较高层次的系统分析和设计过程
。 • 需求分析
– 发现、求精、建模、规格说明和复审的过程 –反复求精多次细化,得出对目标系统的完整、准确和
7
传统方法的特点
• 生命周期模型 • 软件过程划分为若干个阶 段 • 每个阶段有各自的任务 • 阶段之间有某种顺序性
8
• 面向对象方法:
Everything is Object.
1. 对象作为融合数据及在数据之上的操作行为的统一的软
件构件。
数据:静态 操作:动态
2. 把所有对象都划分成类(Class)。每个类都定义了一组数据
1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚地审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性
5
• 软件工程方法学
– 把在软件生命周期全过程中使用的一整套技术的集合称为 方法学(methodology),也称范型(paradigm)。
• 没有部件内部的具 体工作过程
• 箭头确定通过系统 的逻辑路径(信息 流动路径)
21
数据流图
• 数据流图(DFD) 描绘信息流和数据从输入 移动到输出的过程中所经受的变换。
符号
或
或 或
含义 数据的源点或终点 数据流 数据存储 加工(数据处理)Biblioteka 22加工中常见关系的符号表示
符号
*T T*
+T T+ T T
和一组操作。
3. 按照父类(或称为基类)与子类(或称为派生类)的关系,把 若干个相关类组成一个层次结构的系统(也称为类等级)。 在类等级中,下层派生类自动拥有上层基类中定义的数 据和操作,称为继承。
4. 对象彼此间仅能通过发送消息互相联系-封装性。
9
1.3 软件生命周期
• 软件生命周期由软件定义、软件开发和运行维护 三个时期组成,每个时期又可进一步划分成若干 个阶段,每个阶段有各自的任务。