计算机导论课件-第8章 软件工程
合集下载
《计算机导论》 第8章 计算机软件
⑵汇编语言 汇编语言是计算机的第二代语言。 例如,把上述用机器语言书写的三条指令用汇编语言来表示,即成 为: LD B, 03 LD A, 04 ADD A, B 从英文字母的含义可知,第一条指令是把3送到寄存器B中(LD是 load的缩写)。同理,第二条是把4送到寄存器A中,第三条则是把B 中的数加到A中去。
算法+数据结构=程序
任务8 常见程序设计语言 [任务描述] 本任务了解一些常见的程序设计语言的特点。 [相关知识与技能] 1. 面向机器语言
⑴机器语言:机器语言是计算机的第一代语言。 例如,用机器语言写的某一段程序为: 0000 0110 0000 0011 0011 1110 0000 0100 0000 其中,每一条机器指令都是用二进制代码表示的。 以上由“0”、“1”组成的三条指令对Z80机器而言就是完成3加4的运算。
图8-8 队列的动态示意图
4. 树和二叉树 树(tree)是数据结构中的一种非线性结构。树在我们周围随 处可见。这里讨论的树结构形同大自然中的树,也有树根、树叶 和树枝。不同之处是:前者树根在上,后者树根在下。
图8-9 树结构示意图
如果树结构每个结点的孩子结点个数最多为2个,这种树就 是二叉树,如图8-10所示。
1. 顺序存储结构 在程序设计中,由若干个数据元素组成的线性结构称为线性 表。线性表是最简单和最常用的数据结构。 例如,考虑一副扑克牌中相同花色的13张红桃,为了要在程 序中引用每一张红桃,可以建立13个变量 Card1,Card2,…,Card13。每一张牌有确定的值,如“红 桃2”、“红桃9”等。
图8-10 二叉树 图8-11 图8-9树对应的二叉树
8.3 程序设计
软件工程导论课件第8章
33
5. 数据重构 对数据体系结构差的程序很难进行适应性和 完善性维护,因此,数据体系结构比源代码对程序 的长期生存力有更大影响。 数据重构是一种全范围的再工程活动。由于 数据重构对程序体系结构及程序中的算法有很大影 响,对数据的修改必然会导致程序体系结构或代码 层的改变。
3
2.适应性维护 为适应变化了的环境界面而修改软件的活动, 称为适应性维护。包括: (1)因硬件或支撑软件改变引起的变化; (2)将软件移植到新的机种上运行; (3)因数据环境的变化而做的变更。 这类维护大约占软件维护总工作量的25%。
4
3.完善性维护 为了满足用户要求,就得对软件进行修改和 扩充,我们称这种维护为完善性维护。完善性维护 主要包括: (1)提高处理效率; (2)提高性能。 在整个维护工作中, 完善性维护大约占50% 左右,区居第一位。
3. 逆向工程 软件的逆向工程是,分析程序以便在比源代码 更高的抽象层次上创建出程序的某种描述的过程, 也就是说,逆向工程是一个恢复设计结果的过程。 4. 代码重构 某些老程序的体系结构比较合理,但是,一些 模块的编码方式却是难于理解、测试和维护的。在 这种情况下,可以重构这些模块的代码。 通常,代码重构并不修改程序的体系结构,它 只关注个体模块的设计细节以及在模块中定义的局 部数据结构。如果重构扩展到模块边界以外并涉及 软件体系结构,则重构变成了正向工程。
13
(四)软件维护过程 维护过程的实质是对软件定义和开发过程的修 改和压缩。维护过程的主要任务是:建立维护机构, 填写维护报告和评价,为每个维护要求规定一种规 范化的处理序列,建立对维护活动的登记制度及规 定评价复审的标准。 1.维护组织 机构中有一名维护管理员总负责,每项维护要 求都通过维护管理员转交给相应的系统管理员去评 价。系统管理员对维护任务做出评价之后,由变化 授权人决定应该进行的活动,最后由系统管理员去 执行维护任务。
5. 数据重构 对数据体系结构差的程序很难进行适应性和 完善性维护,因此,数据体系结构比源代码对程序 的长期生存力有更大影响。 数据重构是一种全范围的再工程活动。由于 数据重构对程序体系结构及程序中的算法有很大影 响,对数据的修改必然会导致程序体系结构或代码 层的改变。
3
2.适应性维护 为适应变化了的环境界面而修改软件的活动, 称为适应性维护。包括: (1)因硬件或支撑软件改变引起的变化; (2)将软件移植到新的机种上运行; (3)因数据环境的变化而做的变更。 这类维护大约占软件维护总工作量的25%。
4
3.完善性维护 为了满足用户要求,就得对软件进行修改和 扩充,我们称这种维护为完善性维护。完善性维护 主要包括: (1)提高处理效率; (2)提高性能。 在整个维护工作中, 完善性维护大约占50% 左右,区居第一位。
3. 逆向工程 软件的逆向工程是,分析程序以便在比源代码 更高的抽象层次上创建出程序的某种描述的过程, 也就是说,逆向工程是一个恢复设计结果的过程。 4. 代码重构 某些老程序的体系结构比较合理,但是,一些 模块的编码方式却是难于理解、测试和维护的。在 这种情况下,可以重构这些模块的代码。 通常,代码重构并不修改程序的体系结构,它 只关注个体模块的设计细节以及在模块中定义的局 部数据结构。如果重构扩展到模块边界以外并涉及 软件体系结构,则重构变成了正向工程。
13
(四)软件维护过程 维护过程的实质是对软件定义和开发过程的修 改和压缩。维护过程的主要任务是:建立维护机构, 填写维护报告和评价,为每个维护要求规定一种规 范化的处理序列,建立对维护活动的登记制度及规 定评价复审的标准。 1.维护组织 机构中有一名维护管理员总负责,每项维护要 求都通过维护管理员转交给相应的系统管理员去评 价。系统管理员对维护任务做出评价之后,由变化 授权人决定应该进行的活动,最后由系统管理员去 执行维护任务。
软件工程导论课件
软件工程
n 软件发展 n 软件危机 n 软件工程定义 n 软件工程内容
软件发展——四个阶段
程序设计
• 50年代中60年代中
程序系统
软件工程
• 60年代中70年代中
• 70年代中80年代中
第四阶段 • 80年代中-现在
软件发展——程序设计阶段
n 软件生产个体化
规模小,编写者和使用者同一个人
n 软件是设计者头脑中隐含过程
打破软件生产个体化特征 工程化的设计原则、方法和标准
l 新的挑战
微处理器和个人计算机 分布式处理系统 局域网、广域网 宽带数字通讯
软件发展——第四阶段
l 软件架构发生变化
集中主机环境 客户机/服务器(二层) 客户机/服务器(三层) 浏览器/服务器
集中主机
客户机/服务器(二层)
客户机/服务器(三层)
除程序清单,无文档材料保存
ቤተ መጻሕፍቲ ባይዱ
软件发展——程序系统阶段
l 产品软件
由专门软件开发组织开发
l 软件作坊
软件开发组织,沿用早期个体化软件开发方法
l 软件危机
软件维护工作耗费大量资源
l 软件工程
1968年,北大西洋公约组织计算机科学家讨论软件危机, 提出软件工程
软件发展——软件工程阶段
l 软件危机得到缓解
开发人员对用户信息交流不充分,产品不符合用户需求
程序员做出的产品
现场安装
用户原来设想
软件危机——主要表现
l (3)软件产品质量靠不住
软件产品保证技术(审查、复审、测试)未坚持不懈应 用软件开发全过程
l (4)软件可维护性差
开发时未考虑,很多错误难以改正
软件危机——主要表现
n 软件发展 n 软件危机 n 软件工程定义 n 软件工程内容
软件发展——四个阶段
程序设计
• 50年代中60年代中
程序系统
软件工程
• 60年代中70年代中
• 70年代中80年代中
第四阶段 • 80年代中-现在
软件发展——程序设计阶段
n 软件生产个体化
规模小,编写者和使用者同一个人
n 软件是设计者头脑中隐含过程
打破软件生产个体化特征 工程化的设计原则、方法和标准
l 新的挑战
微处理器和个人计算机 分布式处理系统 局域网、广域网 宽带数字通讯
软件发展——第四阶段
l 软件架构发生变化
集中主机环境 客户机/服务器(二层) 客户机/服务器(三层) 浏览器/服务器
集中主机
客户机/服务器(二层)
客户机/服务器(三层)
除程序清单,无文档材料保存
ቤተ መጻሕፍቲ ባይዱ
软件发展——程序系统阶段
l 产品软件
由专门软件开发组织开发
l 软件作坊
软件开发组织,沿用早期个体化软件开发方法
l 软件危机
软件维护工作耗费大量资源
l 软件工程
1968年,北大西洋公约组织计算机科学家讨论软件危机, 提出软件工程
软件发展——软件工程阶段
l 软件危机得到缓解
开发人员对用户信息交流不充分,产品不符合用户需求
程序员做出的产品
现场安装
用户原来设想
软件危机——主要表现
l (3)软件产品质量靠不住
软件产品保证技术(审查、复审、测试)未坚持不懈应 用软件开发全过程
l (4)软件可维护性差
开发时未考虑,很多错误难以改正
软件危机——主要表现
软件工程PPT课件
02
需求分析的方法包括功能分析 、数据流图、实体关系图等。
03
需求分析过程中需要关注需求 的可实现性和可验证性,以确 保开发的软件能够满足用户的 需求。
需求规格说明
01
需求规格说明是软件需求工程的重要输出,它详细描述了软件 系统的功能、性能、安全等方面的要求。
02
需求规格说明应该清晰、准确、完整,并且易于理解和验证。
软件架构的重要性
软件架构决定了软件系统的性能、 可维护性、可扩展性和安全性等 关键特性,是软件设计过程中最 重要的环节之一。
常见的软件架构
常见的软件架构包括单体应用架 构、微服务架构、服务导向架构 等,不同的架构适用于不同的应 用场景。
数据设计
数据设计概述
数据设计是指对软件系统中的 数据进行规划、组织、存储和
06
软件维护工程
软件维护的定义与分类
总结词
软件维护是软件工程的重要环节,涉及对已交付软件产品的修改、完善和优化。
详细描述
软件维护是指在软件交付后,为了改正错误、改进性能或其他目的,对软件进行的修改活动。根据维护活动的内 容和性质,软件维护可分为纠错性维护、适应性维护、完善性维护和预防性维护。
软件维护的过程
管理的方法和过程。
数据模型
数据模型是数据设计的核心, 包括概念数据模型、逻辑数据 模型和物理数据模型等。
数据存储
数据存储是数据设计的关键环节 ,需要考虑数据的存储介质、存 储方式和存储容量等因素。
数据安全
数据安全是数据设计的重要考 虑因素,包括数据的加密、备
份、恢复和访问控制等。
界面设计
界面设计概述
需求规格说明
将收集到的需求整理成文档,明确软件的功能、性能、安全 性等要求。
计算机导论第8章软件工程new
PPT文档演模板
计算机导论第8章软件工程new
8.11 软件工程环境
1.软件开发环境概述
(1) 软件开发环境:在计算机的基本软件的基础上,为了
支持软件的开发而提供的一组工具软件系统 。
(2) 对软件开发环境的要求: 一体化 、通用性 、适应性和 灵活性 、易使用、经济高效 。
PPT文档演模板
计算机导论第8章软件工程new
发工具。
PPT文档演模板
计算机导论第8章软件工程new
8.1 软件工程概述
2.基本概念
• 软件工程 :研究大规模程序设计的方法、工具 和管理的一门工程科学,也就是运用系统的、 规范的和可定量的方法来开发、运行和维护软 件的系统工程。
PPT文档演模板
计算机导论第8章软件工程new
8.1 软件工程概述
8.11 软件工程环境
3.软件工具的基本概念
软件工具 :指为支持计算机软件的开发、 维护、模拟、移植或管理而研制的程序系 统。 (软件工具通常由工具、工具接口和工具用 户接口3部分构成)
PPT文档演模板
计算机导论第8章软件工程new
3rew
演讲完毕,谢谢听讲!
再见,see you again
PPT文档演模板
PPT文档演模板
计算机导论第8章软件工程new
8.3 软件开发方法
3.面向数据结构方法
通过分析信息结构,并使用专门的图形描述工 具——数据结构图进行系统分析,从而得到软件结 构。
4.面向对象方法
从分析组成系统的对象开始,以数据抽象的 类为基础、自底向上的开发方法。
PPT文档演模板
计算机导论第8章软件工程new
2. 影响软件质量的因素:
《软件工程导论》课件
定义
软件维护是指在软件运行过程中,为了改 正错误、满足新的需求或改进性能等目的 ,对软件进行的修改和调整。
预防性维护
为了提高软件的可维护性和可靠性而进行 的维护活动。
改正性维护
为了纠正软件中存在的错误而进行的维护 活动。
完善性维护
为了扩充和增强软件功能而进行的维护活 动。
适应性维护
为了使软件适应外部环境的变化而进行的 维护活动。
介绍如何评估软件架构的合理性 、可扩展性和可维护性,以及如 何根据业务需求和系统规模选择 合适的架构。
架构设计原则
强调架构设计时应遵循的几个重 要原则,如模块化、开放-封闭原 则、单一职责原则等。
数据设计
数据模型
介绍常见的数据模型,如关系模型、面向对象模型、键-值存储模型等,以及它们的应 用场景和优缺点。
02
03
界面设计原则
交互设计
强调界面设计时应遵循的几个重 要原则,如用户友好、一致性、 可用性等。
介绍常见的交互方式,如按钮、 菜单、对话框等,以及如何通过 良好的交互设计提高用户体验。
05
CHAPTER
软件测试
单元测试
总结词
单元测试是对软件中的最小可测试单元进行检查和验 证,通常以函数或方法为单位进行测试。
详细描述
单元测试主要关注软件中的细节问题,检查单个函数 或方法的正确性、性能和边界条件等。通过单元测试 ,可以尽早发现代码中的错误和缺陷,提高软件质量 。
集成测试
总结词
集成测试是在单元测试的基础上,将多个模块或组件 组合在一起进行测试,以验证它们之间的集成是否正 常工作。
详细描述
集成测试的主要目的是检查模块之间的接口和通信是否 正常,以及是否存在潜在的缺陷或问题。通过集成测试 ,可以确保软件在组合时能够正常工作,满足设计要求 。
计算机导论PPT第八章_程序设计语言(1)
表 1.1 两个整数相加的机器语言
汇编语言
接下来的演化是伴随着用带符号或助记符的指令和地址代替二进 制代码而发生的。这种助记符语言就是汇编语言。 汇编程序将汇编语言代码翻译成机器语言代码。
表 1.2 两个整数相加的汇编语言
高级语言
尽管汇编语言大大提高了编程效率,但仍然需要程序员在所用的 硬件上花费大部分精力。高级语言适用于许多不同的计算机,其 设计目标就是使程序员摆脱汇编语言繁琐的细节,能够把精力集 表 1.3 C++中的加法程序 中到应用程序上。 人们开发了多种高 级语言,著名的有 BASIC、PASCAL 、C、C++和Java等 高级语言和汇编语 言有一个共性:它 们必须被转化为机 器语言
典型的面向对象语言 C++ Java
图 3.6 面向对象的基本特征
函数式模式
函数式模式中程序被看成是一个数学函数,将一组输 入映射到一组输出的黑盒子。
图 3.7 函数式语言中的函数
例如,定义一个称为 first 的原始函数 ,由它完成从一个数 据列表抽取第一个元素的功能;在定义一个函数rest,由 它完成从一个数据列表中抽取除第一个元素以外的所有 元素的功能。那么通过这两个函数的组合使用就可以定 义一个函数来完成对第三个元素的抽取。如图3.8
在面向对象模式中,文件能把所有的被文件执行的 过程(在面向对象模式中称为方法)打包在一起, 包括打印、复制和删除等。程序只需向对象发出相 应请求。
图 3.4 面向对象模式的概念
类 如图 3.5 所示,相同类型的对象(如文件)需要一组 方法,这些方法显示了这类对象对来自“领地”外的 刺激的反应。为了创建这些方法,面向对象语言使 用称为类的单元。
多态
汇编语言
接下来的演化是伴随着用带符号或助记符的指令和地址代替二进 制代码而发生的。这种助记符语言就是汇编语言。 汇编程序将汇编语言代码翻译成机器语言代码。
表 1.2 两个整数相加的汇编语言
高级语言
尽管汇编语言大大提高了编程效率,但仍然需要程序员在所用的 硬件上花费大部分精力。高级语言适用于许多不同的计算机,其 设计目标就是使程序员摆脱汇编语言繁琐的细节,能够把精力集 表 1.3 C++中的加法程序 中到应用程序上。 人们开发了多种高 级语言,著名的有 BASIC、PASCAL 、C、C++和Java等 高级语言和汇编语 言有一个共性:它 们必须被转化为机 器语言
典型的面向对象语言 C++ Java
图 3.6 面向对象的基本特征
函数式模式
函数式模式中程序被看成是一个数学函数,将一组输 入映射到一组输出的黑盒子。
图 3.7 函数式语言中的函数
例如,定义一个称为 first 的原始函数 ,由它完成从一个数 据列表抽取第一个元素的功能;在定义一个函数rest,由 它完成从一个数据列表中抽取除第一个元素以外的所有 元素的功能。那么通过这两个函数的组合使用就可以定 义一个函数来完成对第三个元素的抽取。如图3.8
在面向对象模式中,文件能把所有的被文件执行的 过程(在面向对象模式中称为方法)打包在一起, 包括打印、复制和删除等。程序只需向对象发出相 应请求。
图 3.4 面向对象模式的概念
类 如图 3.5 所示,相同类型的对象(如文件)需要一组 方法,这些方法显示了这类对象对来自“领地”外的 刺激的反应。为了创建这些方法,面向对象语言使 用称为类的单元。
多态
《软件工程全》课件
软件质量的标准
软件质量的标准包括ISO 9126、 McCall等,它们从不同角度对软 件质量进行了描述和评价。
单元测试
单元测试的概念
单元测试是对软件中的最小可测试单 元进行检查和验证。在面向对象编程 中,单元测试通常是对类的方法进行 测试。
单元测试的方法
单元测试的方法包括白盒测试和黑盒 测试。白盒测试需要了解内部实现细 节,而黑盒测试只需要关注输入和输 出结果。
软件工程的定义
详细描述
软件工程是一门研究软件开发和维护的学科,它采用工程化的方法和技术,将 系统化的开发过程、先进的开发技术和高效的开发管理结合起来,以高效地开 发高质量的软件产品。
软件工程的历史与发展
总结词:软件工程的历史与发展
详细描述:软件工程的历史可以追溯到20世纪60年代 。最初,软件开发主要依靠程序员的手动编程,随着软 件规模的扩大和复杂性的增加,软件开发过程中的问题 逐渐显现。为了解决这些问题,软件工程的概念和方法 逐渐形成和发展。随着时间的推移,软件工程不断演进 和完善,形成了许多经典的软件开发模型和方法论,如 瀑布模型、螺旋模型、迭代模型等。同时,随着技术的 不断发展,软件工程也在不断引入新的技术和方法,如 敏捷开发、持续集成和持续交付等。
系统测试与验收测试
系统测试的概念
系统测试是对整个系统的功能、性能 和其他方面进行全面的测试,以确保 系统能够满足用户需求。
验收测试的概念
验收测试是用户对系统的最终验收过 程,其目的是确认系统是否符合合同 或需求规格说明中的要求。
PART 06
软件维护与演化
软件维护的定义与分类
定义
软件维护是在软件运行过程中,为了改正错误、满足新的需求、改进性能等目的,对软件进行的修改和调整。
软件质量的标准包括ISO 9126、 McCall等,它们从不同角度对软 件质量进行了描述和评价。
单元测试
单元测试的概念
单元测试是对软件中的最小可测试单 元进行检查和验证。在面向对象编程 中,单元测试通常是对类的方法进行 测试。
单元测试的方法
单元测试的方法包括白盒测试和黑盒 测试。白盒测试需要了解内部实现细 节,而黑盒测试只需要关注输入和输 出结果。
软件工程的定义
详细描述
软件工程是一门研究软件开发和维护的学科,它采用工程化的方法和技术,将 系统化的开发过程、先进的开发技术和高效的开发管理结合起来,以高效地开 发高质量的软件产品。
软件工程的历史与发展
总结词:软件工程的历史与发展
详细描述:软件工程的历史可以追溯到20世纪60年代 。最初,软件开发主要依靠程序员的手动编程,随着软 件规模的扩大和复杂性的增加,软件开发过程中的问题 逐渐显现。为了解决这些问题,软件工程的概念和方法 逐渐形成和发展。随着时间的推移,软件工程不断演进 和完善,形成了许多经典的软件开发模型和方法论,如 瀑布模型、螺旋模型、迭代模型等。同时,随着技术的 不断发展,软件工程也在不断引入新的技术和方法,如 敏捷开发、持续集成和持续交付等。
系统测试与验收测试
系统测试的概念
系统测试是对整个系统的功能、性能 和其他方面进行全面的测试,以确保 系统能够满足用户需求。
验收测试的概念
验收测试是用户对系统的最终验收过 程,其目的是确认系统是否符合合同 或需求规格说明中的要求。
PART 06
软件维护与演化
软件维护的定义与分类
定义
软件维护是在软件运行过程中,为了改正错误、满足新的需求、改进性能等目的,对软件进行的修改和调整。
计算机导论第8章
2
件就是我们通常所说的“裸机”,它是软件运行的物质基 础。如果用户直接使用硬件是非常麻烦的。在计算机发展的早 期,操作人员必须熟记机器语言(二进制指令),并且要了解各 种外围设备的物理特性,这不仅不方便而且容易出错。 • 软件是提高计算机使用效率、扩大计算机功能的程序,它可 以分为三个层次。最靠近硬件,处于最下层的是操作系统;在 其之上的是支撑软件,包括汇编程序、编译连接程序、调试维 护程序等;直接面向用户,处于最上层的是应用软件,包括我 们熟悉的办公软件、财务软件、娱乐软件和数据库系统等。 • 可以看出,操作系统在整个计算机系统中处于中心的地位, 把用户和其它软件同各种各样复杂的硬件设备隔离开来,一方 面对硬件系统进行管理和扩充,另一方面又对其它软件和终端 用户提供服务。需要指出的是,现代的操作系统往往都包括了 常用的支撑软件,从而可以为用户和应用软件提供更为直接的 服务。 • 下面我们给出操作系统的定义:操作系统是一种系统软件。 它管理和控制计算机系统的资源,为用户使用计算机提供方便 有效的工作环境。这里的定义包含了两层含义:
11
• •
•
• • •
• •
2. 共享性 所谓共享是指系统中的多个资源可以被内存中多个并发执行的程序(包括操 作系统本身)共同使用。根据资源的特性,程序对资源的共享方式有两种: (1) 互斥共享方式:在这种方式下,资源在某一特定的时间段内只允许一个 程序访问和使用。当资源已经被占用时,其它访问该资源的程序必须等待, 直到资源被释放。我们把这种一段时间内只允许一个程序使用的资源称为 “临界资源”,例如打印机。 (2) 同时访问方式:在这种方式下,资源允许多个程序同时访问和使用,例 如磁盘。但要知道,这种“同时”是宏观上的,在微观上,多个程序往往是 交替使用该资源。 3. 异步性 操作系统允许多个程序的并发执行,但由于资源的限制,这些程序的执行 并非是连续的。例如两个程序同时访问“临界资源”,操作系统就必须强制 某一程序暂时停止,等待其它程序使用完资源,才能继续运行。因此并发执 行的每个程序何时执行、何时暂停、共需多少时间才能完成,都是不可预知 的。 4. 虚拟性 这里所谓的“虚拟”是指把物理上的一个实体变成逻辑上的多个对应物, 或者把物理上的多个实体变成逻辑上的一个对应物的技术。例如在分时系统 中,操作系统可以把一个处理器虚拟成多个,让用户感觉每个处理器都是被 一个特定的用户独占。
软件工程ppt课件完整版
缺陷跟踪
使用缺陷管理工具对缺陷进行 跟踪,确保每个缺陷都得到处 理。
缺陷修复
开发人员对缺陷进行分析并修 复,然后提交给测试人员进行 验证。
回归测试
对修复后的缺陷进行回归测试 ,确保修复没有引入新的缺陷
。
质量评估与改进
质量评估
定期对软件产品的质量进行评估,包括功能 、性能、安全等方面。
过程改进
对软件开发过程进行持续改进,提高开发效 率和软件质量。
,提高代码的可读性和可维护性。
模块化开发
02
采用模块化开发方式,将系统划分为不同的模块进行开发,提
高开发效率和质量。
错误处理
03
对可能出现的错误进行充分的考虑和处理,包括异常捕获、日
志记录和错误提示等,确保系统的稳定性和可靠性。
05 测试与质量保证
测试类型及方法
功能测试对软件产品的各项功 进行验证,确保符 合需求和设计。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
敏捷开发模型
敏捷开发的主要实践包括:短周期迭代开发、 持续集成、持续交付和自动化测试等。
水平。
04
迭代增量模型的优点在于其能够逐步增加系统功能和 性能,降低项目风险,同时也能够及时发现并解决问 题。
03 需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领域 专家等进行沟通,明确需求背景
和范围。
使用缺陷管理工具对缺陷进行 跟踪,确保每个缺陷都得到处 理。
缺陷修复
开发人员对缺陷进行分析并修 复,然后提交给测试人员进行 验证。
回归测试
对修复后的缺陷进行回归测试 ,确保修复没有引入新的缺陷
。
质量评估与改进
质量评估
定期对软件产品的质量进行评估,包括功能 、性能、安全等方面。
过程改进
对软件开发过程进行持续改进,提高开发效 率和软件质量。
,提高代码的可读性和可维护性。
模块化开发
02
采用模块化开发方式,将系统划分为不同的模块进行开发,提
高开发效率和质量。
错误处理
03
对可能出现的错误进行充分的考虑和处理,包括异常捕获、日
志记录和错误提示等,确保系统的稳定性和可靠性。
05 测试与质量保证
测试类型及方法
功能测试对软件产品的各项功 进行验证,确保符 合需求和设计。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
敏捷开发模型
敏捷开发的主要实践包括:短周期迭代开发、 持续集成、持续交付和自动化测试等。
水平。
04
迭代增量模型的优点在于其能够逐步增加系统功能和 性能,降低项目风险,同时也能够及时发现并解决问 题。
03 需求分析与管理
需求获取与整理
确定需求来源
与客户、利益相关者、业务领域 专家等进行沟通,明确需求背景
和范围。
计算机导论-第8章 软件工程
软件开发完成后,客户会对项目成果做出 评价,给出修正建议。在此基础上进入第二圈 螺旋,再次进行制定计划、风险分析、实施开 发和客户评估等工作。假如风险过大,开发者 和用户无法承受,项目有可能终止。多数情况 下,软件开发过程是沿螺旋线的路径连续进行 的,自内向外,逐步延伸,最终得到一个用户 满意的软件版本。
10
8.1.2 软件生命周期
5.软件测试
在软件分析、设计和程序编写过程中,难免有各种各样的错误,需要通过测试来查找 和修改,以保证软件的质量。其主要工作如下。
(1)单元测试 查找各模块在功能和结构上存在的问题并加以纠正。 (2)集成测试 将已测试通过的模块按照一定顺序组装起来进行测试。 (3)有效性测试 按照规定的各项需求,逐项进行测试,判断已开发的软件是否合格,能否交付用户使 用。
21
8.1.3 软件开发模型
4.螺旋模型
螺旋模型的思想是:使用原型 及其他方法来尽可能地降低风险。 它在软件开发的每个阶段,都增加 了一个风险分析过程。螺旋模型结 合了快速原型模型的迭代性质和瀑 布模型的系统性和可控性特点,适 用于大型软件的开发。螺旋模型由 4部分组成:制定计划、风险分析、 实施开发、客户评估,如图8-5所 示。在笛卡尔坐标的4个象限上分 别表达了4个方面的活动。
特别地,从经济学的意义上来说,考虑到软件庞大的维护费用远比软件开发费用要 高,因而开发软件不能只考虑开发期间的费用,而应考虑软件生命周期内的全部费用。 因此,软件生命周期的概念就变得特别重要。
6
8.1.2 软件生命周期
同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。软件生 命周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地 修改、增补和完善,直到停止使用该软件的全过程。
10
8.1.2 软件生命周期
5.软件测试
在软件分析、设计和程序编写过程中,难免有各种各样的错误,需要通过测试来查找 和修改,以保证软件的质量。其主要工作如下。
(1)单元测试 查找各模块在功能和结构上存在的问题并加以纠正。 (2)集成测试 将已测试通过的模块按照一定顺序组装起来进行测试。 (3)有效性测试 按照规定的各项需求,逐项进行测试,判断已开发的软件是否合格,能否交付用户使 用。
21
8.1.3 软件开发模型
4.螺旋模型
螺旋模型的思想是:使用原型 及其他方法来尽可能地降低风险。 它在软件开发的每个阶段,都增加 了一个风险分析过程。螺旋模型结 合了快速原型模型的迭代性质和瀑 布模型的系统性和可控性特点,适 用于大型软件的开发。螺旋模型由 4部分组成:制定计划、风险分析、 实施开发、客户评估,如图8-5所 示。在笛卡尔坐标的4个象限上分 别表达了4个方面的活动。
特别地,从经济学的意义上来说,考虑到软件庞大的维护费用远比软件开发费用要 高,因而开发软件不能只考虑开发期间的费用,而应考虑软件生命周期内的全部费用。 因此,软件生命周期的概念就变得特别重要。
6
8.1.2 软件生命周期
同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。软件生 命周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地 修改、增补和完善,直到停止使用该软件的全过程。
计算机导论总结 PPT
学 习 体 会
通过一学期的计算机导论学习,让我从一个只会用电脑上网、聊天、 看电影的IT小白对计算机有了基础的了解。了解到原来计算机那么复杂, 包含的知识,种类是我以前一直不知道的。 第一堂课让我知道原来就算在外面也可以打开自己的电脑,将文 件复制过来,不用担心有时忘记带还要跑回家拿。也第一次记住了冯· 诺 伊曼和图灵这两个人。计算机的发展离不开这两人的功劳。也知道了一 些以前不知道的有关电脑的专业术语,如:ASCII码、CPU、AR、DR、 主频,外频,双绞线,32位处理器,CLU、Ada、Modula—2等等。 它也让我直观地认识到我以为的计算机专业并不是那么简单。在这 十堂课里我学到了很多: 1、计算机的操作系统并不是只有Windows,还有UNIX和其他; 2、编写程序的语言多样,进制转换的算法; 3、数据库,云计算 4、软件开发模型eg:RUP模型 5、应用软件,专用软件 ......
数据库系统的组成
设计,开发,管理DBS的人员和用户
利用DBS资源开发的,解决管 理和决策问题的各种应用程 数据库系统 (DBS)的组成 序. 对数据进行管理的软件系统 功能: 创建DB结构; 对DB中的数据操作; 对DB数据管理和控制
应用系统
ห้องสมุดไป่ตู้
应用系统
应用开发工具
应用开发工具 DBMS 操作系统 操作系统
计算机构成:电子管、晶体管、集成电路、超大规模 集成电路(VLSI)或微处理器。
计算机高速发展 - -第一台电子计 算机产生
冯· 诺伊曼和ENIAC机
计算机的工作原理:存储程序,逐条执行(由美籍匈牙利数 学家冯.诺依曼/Von Neumann 提出并付诸实现) 。
计算机应用
1、科学计算 2、自动控制 3、CAD/CAM/CIMS 4、信息处理 5、教育和卫生 6、家用电器和人工智能
软件工程完整PPT课件
2021/3/9
10
④局部化。要求在一个物理模块内集中逻辑上相互关联 的计算资源,保证模块间具有松散的耦合关系,模块 内部有较强的内聚性,这有助于控制解的复杂性。
⑤确定性。软件开发过程中所有概念的表达应是确定的、 无歧义且规范的。
⑥一致性。包括程序、数据和文档的整个软件系统的各 模块应使用已知的概念,内外部接口应保持一致,系 统规格说明与系统行为应保持一致。
2021/3/9
14
2. 需求分析方法 常见的需求分析方法有:
①结构化分析方法。 ②面向对象的分析方法。
2021/3/9
15
2.2结构化分析方法
(1)关于结构化分析方法 结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,
建立系统的处理流程,以数据流图和数据字典为主要工具,建 立系统的逻辑模型。 结构化分析的步骤如下:
3. 信息隐蔽 信息隐蔽使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不能访问 的。
2021/3/9
24
4. 模块独立性 每个模块完成一个相对独立的特定子功能,并且 和其他模块之间的接口很简单。
模块的独立程度可以由两个定性标准来衡量,这 两个标准分别称为耦合性和内聚性。藕合衡量不 同模块彼此间互相依赖(连接)的紧密程度;内 聚衡量一个模块内部各个元素彼此间结合的紧密 程度。
⑦完备性。软件系统不丢失任何重要成分,完全实现系 统所需的功能。
⑧可验证性。开发大型软件系统需要对系统自顶向下, 逐层分解。系统分解应遵循容易检查、测评、评审的 原则,以确保系统的正确性。
2021/3/9
11
1.5软件开发工具与软件开发环境
1. 软件开发工具 软件开发工具是指可以用来帮助开发,测试、分 析、维护其他计算机程序及其文档资料,实现软 件生产过程自动化的一类程序。 软件工具主要包括需求分析工具、设计工具、编 码工具、确认工具、维护工具等。
《软件工程》PPT课件
设计方法
E-R图、范式化、反范式化等
优化策略
索引优化、查询优化、存储优化等
04
软件测试与质量保证
测试策略与计划制定
确定测试目标
明确测试的目的和范围,确保测试工作有针对 性。
制定测试计划
根据测试目标,制定详细的测试计划,包括测 试资源、时间表、风险管理等。
选择测试方法
根据软件特点和测试需求,选择合适的测试方法,如黑盒测试、白盒测试、灰 盒测试等。
《软件工程》PPT课件
目录
• 引言 • 软件需求分析 • 软件设计与开发 • 软件测试与质量保证 • 软件维护与演化 • 软件工程管理与实践
01
引言
软件工程概述
软件工程定义
软件工程是一门研究计算机软件开发、 维护和管理的科学,旨在通过系统方 法、工具和技术来提高软件开发的效 率和质量。
软件工程的目标
B
C
D
持续改进与优化
在项目执行过程中,不断总结经验教训, 持续改进和优化项目管理流程和方法。
迭代开发与交付
通过短周期的迭代开发和交付,不断收集 用户反馈,及时调整产品方向和开发计划。
THANKS
感谢观看
回归测试
02
03
缺陷分析
在修复缺陷后,进行回归测试以 验证修复效果,确保软件质量得 到提升。
对缺陷进行统计分析,找出缺陷 产生的原因和规律,为改进软件 开发过程提供依据。
质量保证措施
代码审查 通过代码审查,检查代码是否符合编码
规范和设计要求,提高代码质量。
质量度量与监控 建立质量度量体系,对软件质量进行 度量和监控,及时发现和解决问题。
在给定成本和时间内,设计、实现和 维护软件系统。同时,软件工程也致 力于开发高质量、高可靠性和易于维 护的软件产品。
计算机导论教学课件第8章局域网和无线局域网
要将计算机连接到局域网,需要有网络电路,即网卡(Network Interface Card,NIC,也称为网络接口卡、网络适配器)。网卡通常集成在个人计 算机中。
网络化外设(或可连网的外设)是指可以直接连网的设备,如某些网络打 印机和存储设备等,都可以配备成直接连接到网络而不用通过工作站。可 连网的设备有时被描述为拥有“固定网络连接”,某些设备可将网络功能作 为其可选附件。可以直接连接到网络的存储设备也称为网络附加存储( Network Attached Slorage,NAS)。
许多过去曾经很流行的局域网标准,如附加资源计算机网络ARCnet、令 牌环网(Token Ring)和光纤分布式数据接口(FDDI)等,现在已经不多 见。现在大多数局域网都采用以太网技术,在需要无线访问时使用兼容的 Wi-Fi标准,这些标准在家用和商用领域都很流行。
8.1.3 网络设备
可以将网络想象成有很多连接点的蜘蛛网。网络中的每个连接点被视为一 个节点,网络节点通常包括计算机、网络化外部设备或网络设备,连接到 网络上的个人计算机有时称为工作站。其他种类的计算机(如大型机、超 级计算机、服务器和掌上电脑等)也能连接到局域网。
以太网技术的重要部分是CSMA/CD(带冲突检测的载波侦听多路访问) 协议。CSMA/CD可负责处理两个网络设备试图同时发送包的情况。当两 个信号同时传输时,“冲突”就会发生,并且信号不能到达其目的地, CSMA/CD协议能够检测这种冲突、删除有冲突的信号、重置网络并准备 重传数据。两个设备在重新传输前,可以等待一个随机的时间来避免冲突 的再次发生。
网络设备(或网络装置)是指可传播网络数据、放大信号或发送数据到目 的地的某一电子设备,通常包括集线器、交换机、路由器、网关、网桥和 中继器等。
网络化外设(或可连网的外设)是指可以直接连网的设备,如某些网络打 印机和存储设备等,都可以配备成直接连接到网络而不用通过工作站。可 连网的设备有时被描述为拥有“固定网络连接”,某些设备可将网络功能作 为其可选附件。可以直接连接到网络的存储设备也称为网络附加存储( Network Attached Slorage,NAS)。
许多过去曾经很流行的局域网标准,如附加资源计算机网络ARCnet、令 牌环网(Token Ring)和光纤分布式数据接口(FDDI)等,现在已经不多 见。现在大多数局域网都采用以太网技术,在需要无线访问时使用兼容的 Wi-Fi标准,这些标准在家用和商用领域都很流行。
8.1.3 网络设备
可以将网络想象成有很多连接点的蜘蛛网。网络中的每个连接点被视为一 个节点,网络节点通常包括计算机、网络化外部设备或网络设备,连接到 网络上的个人计算机有时称为工作站。其他种类的计算机(如大型机、超 级计算机、服务器和掌上电脑等)也能连接到局域网。
以太网技术的重要部分是CSMA/CD(带冲突检测的载波侦听多路访问) 协议。CSMA/CD可负责处理两个网络设备试图同时发送包的情况。当两 个信号同时传输时,“冲突”就会发生,并且信号不能到达其目的地, CSMA/CD协议能够检测这种冲突、删除有冲突的信号、重置网络并准备 重传数据。两个设备在重新传输前,可以等待一个随机的时间来避免冲突 的再次发生。
网络设备(或网络装置)是指可传播网络数据、放大信号或发送数据到目 的地的某一电子设备,通常包括集线器、交换机、路由器、网关、网桥和 中继器等。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.2 系统分析
8.2.2 面向对象分析
2. 类图 【例】电梯的一个类图。
按钮
电梯按钮
has 1
电梯
楼层按钮
has 1
8.2 系统分析
8.2.2 面向对象分析
3 . 状态图 状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根 据当前所处的状态对不同的事件做出反应。通常,UML状态图可用于表 示类、角色、子系统或组件的复杂行为。
8.2 系统分析
8.2.2 面向对象分析
1 . 用例图
用例图由参与者(Actor)、用例(Use Case)、系统边界和箭头组成 。
➢ 矩形表示系统边界或系统; ➢ 圆角矩形表示用例的行动;
➢ 椭圆形表示用例;
➢ 线条人物表示参与者;
➢ 箭头表示参与者和系统间的关联关系。箭头尾部用来表示启动交互的 一方,箭头头部用来表示被启动的一方。
注意:软件系统模块间的内聚必须最大化。
8.3 系统设计
8.3.2 面向对象设计
在面向对象设计中,设计阶段通过详细描述类的细节(列出类的属性 和方法)来继续。在面向对象设计中,电梯设计中的4个类如下图所示。
8.4 系统实现
在系统实现阶段,程序员为面向过程设计中的模块编写程序单元, 或者实现面向对象设计中的类。
8.1 软件生命周期
8.1.3 软件工程的三要素
目前,最广泛应用的软件工程方法学分别是传统方法学(面向过程方法 学)和面向对象方法学。
1.传统方法学 传统方法学也称面向过程方法学,它采用结构化技术(结构化分析 、结构化设计和结构化实现)来完成软件开发的各项任务,并使用 适当的软件工具或软件工程来支持结构化技术的运用。 传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后 顺序地完成每个阶段的任务。采用此方法开发软件,从对问题的抽 象逻辑分析开始,逐阶段地按顺序进行开发。
8.1 软件生命周期
8.1.3 软件工程的三要素
2.面向对象方法学 与传统方法学相反,面向对象方法学则把数据和行为看成同等重要,它是 一种以数据为主线,把数据和行为紧密地结合起来的方法。 概括地说,面向对象方法学具有下述4个要点: (1)把对象(object)作为融合了数据和行为的软件构件。 (2)把所有的对象都划分成类(class)。 (3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干 个相关类组成一个层次结构的系统(也称为类等级)。 (4)对象彼此间仅能通过发送消息互相联系。
8.4.1 语言选择
在系统实现阶段,工程团队需要从面向过程语言中选择一种或一组 语言。不同的编程语言有着不同的优势,要根据实际项目的特性去选择 编程语言,而有的项目可能同时用到多种编程语言。
8.4.2 软件质量
一般来讲,软件质量可以用三个广义的属性来度量:可操作性、可 维护性和可迁移性。每个属性还可以展开,如下图所示。
注意:软件系统中模块间的耦合必须最小化。
8.3 系统设计
8.3.1 面向过程设计
2 . 模块化 (2)内聚性
内聚性也称块内联系,是指模块之间的功能强度的度量,即一个模 块内部各个元素彼此结合的紧密程度的度量。
模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立 性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块 只做一件事情。
8.1 软件生命周期
8.1.1 软件的概念
一般来讲,计算机软件有三部分组成:程序、数据结构和文档。 (1)程序是指为进行某项活动或过程所规定的执行途径,即数据与 指令的集合; (2)数据结构是指数据元素的集合和数据元素之间的关系的集合, 是计算机存储、组织数据的方式; (3)文档则是描述程序开发过程、开发方法及使用说明等资料的集 合。
8.2 系统分析
8.2.2 面向对象分析
1 . 用例图
【例】老式电梯的用例图。图中的系统是电梯,动作者是电梯的使用
者。这里有两个用例:按电梯按钮(在每层的大厅)和在电梯内按楼
层按钮。
电梯
使用者
按电梯按钮 按楼层按钮
8.2 系统分析
8.2.2 面向对象分析
2. 类图 类图是显示了模型的静态结构,特别是模型中存在的类、类的内部 结构以及它们与其他类的关系等。 类图由许多说明性的模型元素组成,例如类、包和它们之间的关系 ,这些元素和它们的内容互相连接。类图最常用的是UML图,显示 类、接口以及它们之间的静态结构和关系,它用于描述系统的结构 化设计。
8.3 系统设计
在设计阶段,系统所有的组成部分都被定义。系统设计内容主要包 括:确定设计方针和方法;将系统分解为若干子系统;确定各子系统的 目标、功能及其相互关系;决定对子系统的管理体制和控制方式;对各 子系统进行技术设计和评价;对全系统进行技术设计和评价等。
8.3.1 面向过程设计
1. 结构图 在面向过程设计中,说明模块间关系的常用工具是结构图。 结构图是指以模块的调用关系为线索,自上而下的连线表示调用关系并 注明参数传递的方向和内容,从宏观上反映软件层次结构的图形。
8.2 系统分析
8.2.1 面向过程分析
高级程序设计语言中,通常有三种不同的程序结构,即:顺序结构、 选择结构和循环结构,它们的流程图如下。
8.2 系统分析
8.2.2 面向对象分析
如果实现过程使用的是面向对象语言,那么分析过程就是面向对象分析 过程。此情况下可以使用多种工具来编写规格说明文档,例如用例图、 类图、状态图等。 1 . 用例图 用例图(User Case)是指由参与者(Actor)、用例(Use Case)以 及它们之间的关系构成,用于描述系统功能的视图。用例图主要用于对 系统、子系统或类的功能行为进行建模。
1 . 软件工程的基本原理
中大型软件开发过程本身就是一项复杂的工程活动,需要投入大量的人
力、物力和财力,就像建筑工程一样,必须按照工程方法学来标准化管
理。一般来讲,软件工程应该遵循以下七条基本原理:
(1)用分阶段的生存周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计方法
8.2 系统分析
8.2.1 面向过程分析
或
数据的源点/终点
或
处理
或
文件(数据存储)
数据流
图8-2 数据流图的基本符
8.2 系统分析
8.2.1 面向过程分析
【例】下图是数据流图,反映了仓库管理员在接收事务(如出库事 务)后接下来必须完成的事务的过程,并且体现了过程中产生的数据清 单(如:库存清单、定货报表)的流向和处理过程。
8.2 系统分析
8.2.1 面向过程分析
1 . 数据流图 数据流图是结构化分析方法中使用的工具,是从数据传递和加工角度, 以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统 必须完成的逻辑功能,所以它只是一种功能模型。 在面向过程开发方法中,数据流图是需求分析阶段产生的结果,它们使 用4种符号,如图8-2所示:
验证过程 确认过程 联合评审过程 审核过程 问题解决过程
易用性过程
生存周期组织过程 管理过程 改进过程
资产管理过程 领域工程过程
基础设施过程 人力资源过程 重用大纲管理过程
图8-1 国标GB/T 8566-2007的结构
8.1 软件生命周期
8.1.3 软件工程的三要素
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方 法学(Methodology),软件工程方法学包含3个要素:方法、工具和 过程。 ➢方法是完成软件开发的各项任务的技术方法,是回答“怎样做”的问 题; ➢工具是为运用方法而提供的自动的或半自动的软件工程支撑环境; ➢过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规 定了完成各项任务的工作步骤。
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)不断改进软件工程实践的必要性
8.1 软件生命周期
8.1.2 软件工程的含义
2 . 软件生命周期 软件的生命周期,亦称软件的生存周期。是按开发软件的规模和复杂程 度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止 的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分 解成几个具体的任务,然后按规定顺序依次完成阶段的任务并规定一套 标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。
8.ቤተ መጻሕፍቲ ባይዱ 系统分析
8.2.1 面向过程分析
【例】下图是反映教师、课程、学生三个实体之间关系的ER图。教 师与课程之间是多对多的关系,学生与课程之间是多对多的关系。
8.2 系统分析
8.2.1 面向过程分析
3 . 程序流程图 程序流程图(也称框图)是程序分析中最基本、最重要的分析技术 ,也是进行程序流程分析的最基本的工具。 程序流程图用一组框图符号来表示程序中的各种操作,它是人们对 解决问题的方法、思路或算法的一种描述。程序流程图的基本符号 及符号的意义如下图所示:
8.3 系统设计
8.3.1 面向过程设计
1. 结构图 结构图的基本图形符号如下图所示。
8.3 系统设计
8.3.1 面向过程设计
1. 结构图 【例】结构图的实例(“销售订单处理”功能结构图)如下图所示。
8.3 系统设计
8.3.1 面向过程设计
2 . 模块化 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干子模块 的过程,通过模块的不同组合得到不同品种、不同规格的产品。 模块化意味着将大项目分解成较小的部分,以便能够容易理解和处理, 换言之,模块化意味着将大程序分解成能相互通信的小程序。 模块化是一种将复杂系统分解成多个更好管理的子模块的方式,当系统 被分解成模块时,主要关心两点:耦合性和内聚性。
8.1 软件生命周期
8.1.1 软件的概念
➢按功能分计算机软件可分为系统软件、支撑软件和应用软件三 大类。 ➢按规模分计算机软件又可分为:微型、小型、中型、大型和超 大型软件; ➢按工作方式分计算机软件可分:实时处理软件、分时处理软件 、交互式处理软件和批处理软件。