计算机导论第8章软件工程new

合集下载

《计算机导论》 第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章 软件工程

计算机导论课件-第8章  软件工程

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章

软件工程导论课件第8章
33
5. 数据重构 对数据体系结构差的程序很难进行适应性和 完善性维护,因此,数据体系结构比源代码对程序 的长期生存力有更大影响。 数据重构是一种全范围的再工程活动。由于 数据重构对程序体系结构及程序中的算法有很大影 响,对数据的修改必然会导致程序体系结构或代码 层的改变。
3
2.适应性维护 为适应变化了的环境界面而修改软件的活动, 称为适应性维护。包括: (1)因硬件或支撑软件改变引起的变化; (2)将软件移植到新的机种上运行; (3)因数据环境的变化而做的变更。 这类维护大约占软件维护总工作量的25%。
4
3.完善性维护 为了满足用户要求,就得对软件进行修改和 扩充,我们称这种维护为完善性维护。完善性维护 主要包括: (1)提高处理效率; (2)提高性能。 在整个维护工作中, 完善性维护大约占50% 左右,区居第一位。
3. 逆向工程 软件的逆向工程是,分析程序以便在比源代码 更高的抽象层次上创建出程序的某种描述的过程, 也就是说,逆向工程是一个恢复设计结果的过程。 4. 代码重构 某些老程序的体系结构比较合理,但是,一些 模块的编码方式却是难于理解、测试和维护的。在 这种情况下,可以重构这些模块的代码。 通常,代码重构并不修改程序的体系结构,它 只关注个体模块的设计细节以及在模块中定义的局 部数据结构。如果重构扩展到模块边界以外并涉及 软件体系结构,则重构变成了正向工程。
13
(四)软件维护过程 维护过程的实质是对软件定义和开发过程的修 改和压缩。维护过程的主要任务是:建立维护机构, 填写维护报告和评价,为每个维护要求规定一种规 范化的处理序列,建立对维护活动的登记制度及规 定评价复审的标准。 1.维护组织 机构中有一名维护管理员总负责,每项维护要 求都通过维护管理员转交给相应的系统管理员去评 价。系统管理员对维护任务做出评价之后,由变化 授权人决定应该进行的活动,最后由系统管理员去 执行维护任务。

软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理)

软件危机是指在计算机软件的开辟和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开辟出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)普通软件很难维护。

(4)软件生产效率很低。

(5)软件开辟成本越来越大。

(6)软件成本与开辟进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

(1) 开辟人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开辟中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开辟过程没有统一的、公认的方法论和规范指导,造成软件维护艰难。

(3) 特别是随着软件规模越来越大,复杂程度越来越高,原有软件开辟方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护艰难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特殊是吸取几十年来人类从事计算机硬件研究和开辟的经验教训。

在开辟软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开辟软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开辟更好的软件工具并使用这些工具。

将软件开辟各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开辟支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

应用程序、系统程序、面向用户的文档资料和面向开辟者的文档资料。

软件生存周期是指从软件定义、开辟、使用、维护到淘汰的全过程。

(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开辟工作的艰难程度。

(2) 可以降低每一个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。

计算机科学导论(第4版)习题答案-第7、8章

计算机科学导论(第4版)习题答案-第7、8章

第7章软件工程习题(答案)一、选择题1. D2. B3. C4. B5. A6. C7. A8. D9.C 10. B11. C 12.C 13.D二、简答题1.什么叫软件危机?答:随着计算机应用的普及和深化,计算机软件的数量、规模、复杂程度和开发所需的人力、物力等都在急剧增加,计算机发展初期个人编写小程序的传统方法,已不再适合现代大型软件的开发,用传统方法开发出来的许多大型软件甚至无法投入运行。

同时,由于计算机应用领域和硬件技术得到丁飞速发展,软件的生产速度、质量和规模远远适应不了对软件的需求,造成大量人力、物力、财力的浪费,在软件开发和维护过程中出现了巨大的困难。

计算机领域把大型软件开发和维护过程中遇到的一系列严重问题称为“软件危机”(Software Crisis)。

2.软件危机的表现形式是什么?答:软件危机的表现形式:(1) 软件的质量难以保证开发的软件可靠性差。

由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。

这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故,造成生命财产的重大损失。

(2) 软件开发成本和开发进度难以控制经费预算经常突破,完成时间一再拖延。

由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计算很难制定。

主观盲目制定的计算,执行起来和实际情况有很大差距,使得开发经费一再突破。

由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。

(3) 软件的维护非常困难开发的软件可维护性差。

开发过程没有统一的、公认的规范,软件开发人员按各自的风格工作,各行其事。

开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。

程序结构不好,运行进发现错误也很难修改,导致维护性差。

(4) 用户对“已完成”的软件系统不满意开发的软件不能满足用户要求。

开发初期对用户的要求了解不够明确,未能得到明确表达。

计算机导论PPT第八章_程序设计语言(1)

计算机导论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 所示,相同类型的对象(如文件)需要一组 方法,这些方法显示了这类对象对来自“领地”外的 刺激的反应。为了创建这些方法,面向对象语言使 用称为类的单元。
多态

软件工程导论_第八章

软件工程导论_第八章

• 完善性维护 利用前两类维护中列举的方法,也可以 减少这一类维护。特别是数据库管理系 统、程序生成器、应用软件包,可减少 维护工作量。 此外,建立软件系统的原型,把它在实 际系统开发之前提供给用户。用户通过 研究原型,进一步完善他们的功能要求, 就可以减少以后完善性维护的需要。
二、在不断增加 的,1970年占35%~40%;1980年上升到40%~ 60%。1990年上升到70%~80%。 由于大量软件的维护活动要使用较多的硬件、 软件、软件工程师等资源,使开发新的软件资源 不足而受到影响。由于维护时的改动,在软件中 引入了潜在的故障,从而降低了软件的质量。
(4) 在重新确认过程中,需邀请用 户参加。 • 维护后的验收──在交付新软件之 前,维护主管部门要检验: (1) 全部文档是否完备,并已更新; (2) 所有测试用例和测试结果已经 正确记载; (3) 记录软件配置所有副本的工作 已经完成; (4) 维护工序和责任已经确定。
适应性维护活动要占整个维护活动的25%。
3、 完善性维护
在软件漫长的运行时期中,用户往往会对软件 提出新的功能要求与性能要求,这是因为用户的 业务会发生变化,组织机构也会发生变化,为了 适应这些变化,应用软件原来的功能和性能需要 扩充和增强。例:原系统内没有帮助信息,使用 不方便,现在要加帮助信息,这种维护活动称为 完善性维护, 这种维护工作活动数量较大,占整个维护活动 50%。
开发与维护人员不是一个人或一个组织,由于 维护阶段持续时间很长,正在运行维护的软件可 能是五年前,十年前开发的,当时的开发工具、 方法、技术与当年的工具、方法、技术差异很大, 这又是维护困难的另一因素。
4、 软件维护不是一项吸引人的工作。
由于维护工作的困难性,维护工作经常遭受挫 折,而且很难出成果,不像软件开发工作那样吸 引人。

计算机导论第8章

计算机导论第8章

2
件就是我们通常所说的“裸机”,它是软件运行的物质基 础。如果用户直接使用硬件是非常麻烦的。在计算机发展的早 期,操作人员必须熟记机器语言(二进制指令),并且要了解各 种外围设备的物理特性,这不仅不方便而且容易出错。 • 软件是提高计算机使用效率、扩大计算机功能的程序,它可 以分为三个层次。最靠近硬件,处于最下层的是操作系统;在 其之上的是支撑软件,包括汇编程序、编译连接程序、调试维 护程序等;直接面向用户,处于最上层的是应用软件,包括我 们熟悉的办公软件、财务软件、娱乐软件和数据库系统等。 • 可以看出,操作系统在整个计算机系统中处于中心的地位, 把用户和其它软件同各种各样复杂的硬件设备隔离开来,一方 面对硬件系统进行管理和扩充,另一方面又对其它软件和终端 用户提供服务。需要指出的是,现代的操作系统往往都包括了 常用的支撑软件,从而可以为用户和应用软件提供更为直接的 服务。 • 下面我们给出操作系统的定义:操作系统是一种系统软件。 它管理和控制计算机系统的资源,为用户使用计算机提供方便 有效的工作环境。这里的定义包含了两层含义:
11
• •

• • •
• •
2. 共享性 所谓共享是指系统中的多个资源可以被内存中多个并发执行的程序(包括操 作系统本身)共同使用。根据资源的特性,程序对资源的共享方式有两种: (1) 互斥共享方式:在这种方式下,资源在某一特定的时间段内只允许一个 程序访问和使用。当资源已经被占用时,其它访问该资源的程序必须等待, 直到资源被释放。我们把这种一段时间内只允许一个程序使用的资源称为 “临界资源”,例如打印机。 (2) 同时访问方式:在这种方式下,资源允许多个程序同时访问和使用,例 如磁盘。但要知道,这种“同时”是宏观上的,在微观上,多个程序往往是 交替使用该资源。 3. 异步性 操作系统允许多个程序的并发执行,但由于资源的限制,这些程序的执行 并非是连续的。例如两个程序同时访问“临界资源”,操作系统就必须强制 某一程序暂时停止,等待其它程序使用完资源,才能继续运行。因此并发执 行的每个程序何时执行、何时暂停、共需多少时间才能完成,都是不可预知 的。 4. 虚拟性 这里所谓的“虚拟”是指把物理上的一个实体变成逻辑上的多个对应物, 或者把物理上的多个实体变成逻辑上的一个对应物的技术。例如在分时系统 中,操作系统可以把一个处理器虚拟成多个,让用户感觉每个处理器都是被 一个特定的用户独占。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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. 影响软件质量的因素:
(1) 可以直接度量的因素: 如单位时间内千行代码 (KLOC)中所产生的错误数。 (2) 只能间接度量的因素: 如可用性或可维护性。
PPT文档演模板
计算机导论第8章软件工程new
8.4 软件质量评价和保证
3.软件质量保证的含义:
质量保证就是向用户及社会提供满意的高质量的 产品,确保软件产品从诞生到消亡为止的所有阶段的 质量活动,即确定、达到和维护需要的软件质量而进 行的所有有计划、有系统的管理活动。
PPT文档演模板
计算机导论第8章软件工程new
8.6 软件的复杂性
1. 基本概念
软件复杂性度量的参数: (1) 规模:即总共的指令数,或源程序行数。 (2) 难度:通常由程序中出现的操作数的数目所决定的
量来表示。 (3) 结构:通常用与程序结构有关的度量来表示。 (4) 智能度:即算法的难易程度。
8.11 软件工程环境
2.软件开发环境的分类 (1) 按解决的问题分类 :程序设计环境 、系统合成环境 、
项目管理环境 。
(2) 按软件开发环境的演变趋向分类 : 以语言为中心的环 境 、工具箱环境 、基于方法的环境 。
(3) 按集成化程度分类 : 第一代 、第二代 、第三代 。
PPT文档演模板
计算机导论第8章软件工程new
计算机导论第8章软件工 程new
PPT文档演模板
2020/12/7
计算机导论第8章软件工程new
8.1 软件工程概述
1.软件危机
• 概念:大型软件开发和维护过程中遇到的一系列严重 问题 。
• 表现形式:质量难以保证 、开发成本和开发进度难 以控制 、维护非常困难 、用户不满意 。
• 产生的原因:
规模 、管理 、费用 、开发技术 、生产方式 、开
构件(Component)是在软件系统设计中可以 明确辨识的构成成分。而可复用构件(Reusable Component)是指具有相对独立的功能和可复用 价值的构件。
PPT文档演模板
计算机导论第8章软件工程new
8.4 软件质量评价和保证
1.软件质量的定义
(1) 与所确定的功能和性能需求的一致性。 (2) 与所成文的开发标准的一致性。 (3) 与所有专业开发的软件所期望的隐含特性的一致 性。
2.快速原型法模型
PPT文档演模板
计算机导论第8章软件工程new
8.3 软件开发方法
1.模块化方法
将待开发软件划分为一些功能相对独立的模 块,模块与模块之间定义相应的接口,各个模块是 可以分别单独开发、调试、运行测试的,最后,再 将多个模块组合起来,进行软件的整体测试,从而 完成整个软件的开发。 注意模块划分原则:
3.软件生命周期
一个软件从提出开发要求开始直到该软件 报废为止的整个时期。
(包括可行性分析和项目开发计划、需求 分析、概要设计、详细设计、编码、测试、维 护等活动)。
PPT文档演模板
计算机导论第8章软件工程new
8.2 软件开发模型
1.瀑布模型
PPT文档演模板
计算机导论第8章软件工程new
8.2 软件开发模型
8.3 软件开发方法
5.统一建模语言(UML)
是一种面向对象的建模语言。它只源自给出一套 用于建模的元素及表示符号,并定义了它们的语义, 而并不涉及如何进行系统建模。
PPT文档演模板
计算机导论第8章软件工程new
8.3 软件开发方法
6. 软件复用和构件技术
利用人们长期进行软件开发而积累的知识、 经验、设计方法、需求分析、设计、编码、测试、 文档等,来进行新的软件开发。复用对象可以包 括整个软件开发过程及其成果。
2020/12/7
计算机导论第8章软件工程new
低耦合、大小适宜、接口明确、高复用率、调 用层次少。
PPT文档演模板
计算机导论第8章软件工程new
8.3 软件开发方法
2. 结构化方法
又称面向数据流的软件开发方法 ,使用了一 组符号和一系列的准则和工具来完成软件开发各阶 段的工作。 原则:
用户参与需求分析,先分析、再设计、后实现, 自顶向下,文档化管理。
相关文档
最新文档