软件工程导论1

合集下载

最新软件工程导论(第1章)概要教学讲义ppt课件

最新软件工程导论(第1章)概要教学讲义ppt课件
1)软件工程学:主要应用工程的方法和技术 研究软件开发与维护的方法、工具和管理的一 门交叉学科。
2)程序设计方法学:主要应用数学的方法研 究程序的性质以及程序设计的理论和方法的学 科。
1.2 软件工程
1.2.1 软件工程的介绍 1968年NATO会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
③ 需求分析
这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了 解决这个问题,目标系统必须做什么”,主要是确定目标系统必 须具备哪些功能。用户了解他们所面对的问题,知道必须做什么, 但是通常不能完整准确地表达出他们的要求,更不知道怎样利用 计算机解决他们的问题;软件开发人员知道怎样用软件实现人们 的要求,但是对特定用户的具体要求并不完全清楚。因此,系统 分析员在需求分析阶段必须和用户密切配合,充分交流信息,以 得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典 和简要的算法表示系统的逻辑模型。
3. 工具:应该开发和使用更好的软件工具。在软件开
发的每个阶段都有许多繁琐重复的工作需要做,在 适当的软件工具辅助下,开发人员可以把这类工作 做得既快又好。
如果把各个阶段使用的软件工具有机地集 合成一个整体,支持软件开发的全过程, 则称为软件工程支撑环境。
为了解决软件危机产生的问题,软件工程与 方法学逐渐形成,然后出现了两个相互相承又 各有侧重的学科:
② 把所有对象划分为类(Class):每个类定义了一组数据和一组操 作。
③ 按照父类(基类)和子类(派生类)的关系,把若干个相关类 组成一个层次结构的系统。子类能够继承。
④ 对象彼此间仅能通过发送消息互相联系。对象是数据处理的主 体,具有封装性特点。

软件工程导论试题(1)

软件工程导论试题(1)

软件工程导论试题一.选择1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。

八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。

A、详细计划B、可行性分析C、运行阶段D、测试与排错2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。

A、详细设计阶段B、概要设计阶段C、需求分析阶段D、测试和运行阶段3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A )。

A、需求分析阶段B、详细设计阶段C、概要设计阶段D、可行性研究阶段4、软件工程的出现主要是由于(C )。

A.程序设计方法学的影响B.其它工程科学的影响C. 软件危机的出现D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 ( B)A、相互排斥B、相互补充C、独立使用D、交替使用7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成(A )A、计划阶段、开发阶段、运行阶段B、计划阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C)A、分析阶段B、设计阶段C、编码阶段D、测试阶段二.填空21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。

软件工程导论第一章PPT

软件工程导论第一章PPT

2015年5月11日
第1章
概述
第15页
1.2.2 软件工程的研究内容和基本原理
软件工程的研究内容 软件工程的主要研究内容是指软件开发技术和软件开发过程 管理两个方面。

– 在软件开发技术方面主要研究软件开发方法、软件开发过程、软 件开发工具和技术。 – 在软件开发过程管理方面主要研究软件工程经济学和软件管理学。


“软件工程”一词是由北大西洋公约组织(North Atlantic Treaty Organization,NATO)的计算机科学家 在联邦德国召开的国际会议上首次提出来的。产生软件工 程这门学科的时代背景是“软件危机”。软件工程的发展 和应用不仅缓和了软件危机,而且促使一门新兴的工程学 科诞生了。 本章将讲述软件、软件危机及软件工程的相关概念、历史 发展和开发模型。

2015年5月11日
第1章
概述
第10页
1.1.3 软件危机的产生原因及解决途径

产生原因
(1) 软件是计算机系统中的逻辑部件,软件产品往往规模 庞大,结构复杂。 (2) 软件开发的管理困难。 (3) 软件开发费用不断增加,维护费用急剧上升,直接威 胁计算机应用的扩大。 (4) 软件开发技术落后。 (5) 生产方式落后。 (6) 开发工具落后,生产效率提高缓慢。
2015年5月11日 第1章 概述 第6页
1.1.1 软件的定义、特点及分类
二、软件的特点 软件是一种特殊的产品,与传统的工业产品相比,它具有以下 一些独特的特点。 (1)软件是一种逻辑产品,而不是具体的物理实体,具有抽象 性。 (2)软件产品的生产主要是开发研制,没有明显的制造过程。 (3)软件产品在使用过程中,不存在磨损、消耗、老化等问题 (4)软件产品的开发主要是脑力劳动,还未完全摆脱手工开发 方式,大部分产品是“定做的”,生产效率低。

(完整word版)软件工程导论(第6版)

(完整word版)软件工程导论(第6版)

第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。

2.如何维护数量不断膨胀的已有软件。

具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。

2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。

4.软件常常是不可维护的。

5.软件通常没有适当的文档材料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。

软件配置:程序、文档和数据。

软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。

软件:是程序、数据及相关文档的集合。

程序:是能够完成预定功能和性能的可执行的指令序列。

数据:是使程序能够适当地处理信息的数据结构。

文档:是开发、使用和维护程序所需要的图文资料。

软件工程:指导计算机软件开发和维护的一门工程学科。

软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。

2.软件工程的中心课题是控制复杂性。

3.软件经常变化。

4.开发软件的效率非常重要。

5.和谐地合作是开发软件的关键。

6.软件必须有效地支持它的用户。

7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。

2.坚持进行阶段评审。

3.实行严格的产品控制4.采用现代程序设计技术。

5.结构应能清楚的审查。

6.开发小组的人员应该少而精。

7.承认不断改进软件工程实践的必要性。

软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。

软件工程导论第一章.ppt

软件工程导论第一章.ppt
参考书目
- 软件工程导论(第5版)张海藩 清华大学出版社 - 软件工程(第二版)齐治昌、谭庆平、宁洪 编著,高等教育出版社 - Shari Lawrence P fleeger 软件工程——理论与实践(第2版)(高教出版社 影印版),2003
考核方式:闭卷考试 70% 平时成绩(考勤+作业) 30%
(2) 需求分析
本阶段要回答的关键问题是“目标系统应当做什么?”
(3) 软件设计
设计是软件工程的技术核心。本阶段要回答的关键问题是“如何实现目 标系统?”
1.3 软件生命周期(6)
各个阶段所要完成的基本任务 (4) 程序编码和单元测试
1963年美国飞往火星的火箭爆炸,造成1000万美元的损失 。原因是FORTRAN程序:
DO 5 I=1,3 误写为:DO 5 I=1.3
1967年苏联“联盟一号”载人宇宙飞船在返航时, 由于软件忽略一个小数点,在进入大气层时因打不开降 落伞而烧毁。
1.1 软件与软件危机(5)
产生软件危机的原因
- 在软件开发和维护的过程中存在这么多严重问题,一方面与 软件本身的特点有关,另一方面也和软件开发与维护的方法 不正确有关。 ➢客观:软件本身特点 - 逻辑部件 - 规模庞大 ➢主观:不正确的开发方法 - 忽视需求分析 - 错误认为:软件开发=程序编写 - 轻视软件维护 - …….
1.2 软件工程及其基本原理(2)
软件工程的目标
- 软件工程的目标是运用先进的软件开发的周期、较低的成本
生产出高质量 的软件产品,并最终实现软件的工业化生产。
- 软件的质量特性:功能性、可靠性、可使用性、效率、可维 护性和可移植性。
1.2 软件工程及其基本原理(3)
软件开发时期

软件工程导论 第一章

软件工程导论 第一章
开发软件的效率非常重要
社会对新应用系统的需求超过了人力资源所能提供的 限度
软件工程的一个重要课题:寻求开发与维护软件更好 和更有效的工具
和谐地合作是开发软件的关键
软件必须有效地支持它的用户
必须仔细地研究用户,以确定适当的功能需求、可用 性要求及其他质量要求
软件开发不仅应该提交软件产品,而且应该写出用户 手册和培训材料,此外,还必须注意建立使用新系统 的环境。
传统方法学 面向对象的方法学
传统方法学(生命周期方法学)
采用结构化技术来完成软件开发的各项任务, 并使用适当的软件工具或软件工程环境来支持 结构化技术的运用。 把软件生命周期的全过程依次划分为若干个阶 段,然后顺序地完成每个阶段的任务。采用这 种方法学开发软件的时候,从对问题的抽象逻 辑分析开始,一个阶段一个阶段地进行开发。 从上而下,顺序地完成软件开发的各阶段任务。
目前,传统方法学仍然是人们在开发软件 时使用得十分广泛的软件工程方法学。这 种方法学历史悠久,为广大软件工程师所 熟悉,而且在开发某些类型的软件时也比 较有效,因此,在相当长一段时期内这种 方法学还会有生命力。
对用户要求没有完整准确的认识就匆忙着 手编写程序
越早开始写程序,完成它所需要用的时间 往往越长
所以......
围绕如何开发好一个软件人们提出了很多 理论,形成软件工程这样一个新领域
面向方面的编程 净室理论 极限编程 SOA架构 AJax ......
恰当的过程
问题定义,也就是确定要求解决的问题是 什么; 可行性研究,决定该问题是否存在一个可 行的解决办法; 需求分析,也就是深入具体地了解用户的 要求,在所要开发的系统(不妨称之为目标 系统)必须做什么这个问题上和用户取得完 全一致的看法。

(完整word版)软件工程导论(第6版)(word文档良心出品)

(完整word版)软件工程导论(第6版)(word文档良心出品)

第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。

2.如何维护数量不断膨胀的已有软件。

具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。

2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。

4.软件常常是不可维护的。

5.软件通常没有适当的文档材料。

6.软件成本在计算机系统总成本中所占的比例逐年上升。

7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。

软件配置:程序、文档和数据。

软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。

软件:是程序、数据及相关文档的集合。

程序:是能够完成预定功能和性能的可执行的指令序列。

数据:是使程序能够适当地处理信息的数据结构。

文档:是开发、使用和维护程序所需要的图文资料。

软件工程:指导计算机软件开发和维护的一门工程学科。

软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。

2.软件工程的中心课题是控制复杂性。

3.软件经常变化。

4.开发软件的效率非常重要。

5.和谐地合作是开发软件的关键。

6.软件必须有效地支持它的用户。

7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。

2.坚持进行阶段评审。

3.实行严格的产品控制4.采用现代程序设计技术。

5.结构应能清楚的审查。

6.开发小组的人员应该少而精。

7.承认不断改进软件工程实践的必要性。

软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。

软件工程导论第一章

软件工程导论第一章
软件工程的发展
软件工程的发展经历了多个阶段,从早期的手工作坊式开发到结构化方法、面 向对象方法,再到现在的敏捷开发方法和DevOps等,不断推动着软件产业的快 速发展。
软件工程的研究对象与范围
研究对象
软件工程的研究对象包括软件开发过程中的各种技术、方法、工具和管理等方面 ,旨在提高软件开发的效率和质量,降低开发成本。
研究范围
软件工程的研究范围涵盖了软件开发的各个阶段,包括需求分析、设计、编码、 测试和维护等,同时也涉及到软件项目管理、软件质量保证和软件测试等方面。
软件工程的重要性
提高软件质量
通过采用先进的软件工程方法和工具,可以显著提高软件的质量,减 少软件中的缺陷和错误,提高软件的稳定性和可靠性。
降低开发成本
针对软件的最小可测试单元进行测试,确保每个单元的功能正 确无误。
将多个单元组合在一起进行测试,验证它们之间的接口和功能 是否正常。
对整个软件系统进行全面的测试,包括功能测试、性能测试、 安全测试等,确保软件满足需求和设计要求。
记录和管理测试过程中发现的缺陷,跟踪缺陷的修复进度和结 果,确保软件质量得到持续改进。
软件开发模型介绍
瀑布模型
瀑布模型是一种线性的软件开发模型,按照固定的顺序进行开发,每个阶段都有明确的输入和输出。它的优点是易于 理解和管理,但缺点是缺乏灵活性,难以应对需求变更。
螺旋模型
螺旋模型是一种迭代式的软件开发模型,强调风险分析和控制。它在每个迭代周期中都包括需求定义、风险分析、工 程实现和评审等步骤,适用于大型、复杂的软件项目。
将软件划分为独立的模块,降低 模块间的耦合度,提高代码的可 重用性和可维护性。
02
版本控制工具
使用版本控制工具(如Git)管理 代码,记录代码的变更历史,方 便团队协作和代码回溯。

软件工程导论1概述PPT课件

软件工程导论1概述PPT课件

1968年10月,北大西洋公约组织(NATO)的科学家在德 国召开的学术会议上正式提出了软件危机问题。
14
(2)软件危机 A.软件危机的表现 B.产生软件危机的原因 C.解决软件危机的途径
15
A.软件危机的表现
成本高
IBM 360 OS, 5000多人 年,耗时4年(1963- 1966),花费2亿多美元
美国空军:1955年软件占 总费用(计算机系统)的 18%,70年60%,85年 达到85%
美国全球军事指挥控制系统, 硬件1亿美元,软件高达 7.2亿美元
计算机软件和硬件费用比
90 80 70 60 50 40 30 20 10 0
60年代
80年代
16
计算机软件 计算机硬件
A.软件危机的表现
24
1.2 软件工程定义(1)
The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. (1968- Fritz Bauer)
维护成本越来越高
55%到70%
维护带来的问题
13
软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品

第三阶段 •分布式系统 •嵌入“智能” •低成本硬件 •消费者的影响
第四阶段 •强大的桌面系统 •面向对象技术 •专家系统 •人工神经网络 •并行计算 •网路计算机
软件质量得不到保证
软件应用面的扩大:科学计算、军事、航空航天、工业控制、 企业管理、办公、家庭

软件工程导论习题答案

软件工程导论习题答案

2.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。
3.怎样建立目标系统的逻辑模型?要经过哪些步骤?
建立目标系统的逻辑模型的过程也就是数据流图的分解过程。它的导出过程如图:
Hale Waihona Puke 4.什么是结构化分析?它的结构化体现在哪里?
结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
4.构成软件项目的最终产品:
应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?
(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。
结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。
5.软件需求规格说明书由哪些部分组成?
组成包括:
(1) 引言:编写目的、背景说明、术语定义及参考资料等。
(2) 概述主要功能、约束条件或特殊需求。
(3) 数据流图与数据字典。
(4) 用户接口、硬件接口及软件接口。

软件工程导论_第一章

软件工程导论_第一章

2.

二、软件工程的特性
1. 软件工程关注于大型程序的构造
2. 软件工程的中心课题是控制复杂性 3. 软件经常变化 4. 开发软件的效率非常重要 5. 和谐地合作是开发软件的关键 6. 软件必须有效地支持它的用户 7. 在软件工程领域中是由具有一种文化背景 的人替具有另一种文化背景的人创造产品
• 1.2.2 软件工程的基本原理
• 软件的特点
– 脑力劳动、逻辑(不会时好时坏)、无损耗、研制成 本大,复制成本低
• 软件的分类
– 基于软件功能的划分
• 系统软件(操作系统、网络软件、编译程序、数据库管理系统、 编辑软件、系统检查与诊断软件等) • 应用软件 • 支撑软件
– 基于软件工作方式的划分
• • • • 实时处理软件 分时软件 交互式软件 批处理软件
• 软件的另一个定义: • 软件是计算机系统中与硬件相互依存的另 一部分,它是包括程序、数据及其相关文 档的完整集合。
– 程序是按事先设计的功能和性能要求编写的指 令序列(源程序,目标程序,脚本程序script) – 数据是使程序能正常操纵信息的数据结构; – 文档是与程序开发、维护和使用有关的图文材 料。
• 这个项目的负责人F. D. Brooks事后总结了他在组织开发过程中的沉 痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎, 越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工 作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣 扎,......谁也没有料到问题竟会陷入这样的困境......”。IBM360 操作系统的历史教训成为软件开发项目的典型事例为人们所记取。
1.3 软件生命周期
• 软件产品或系统一系列相关活动的全周期

软件工程导论第1章(第4版)

 软件工程导论第1章(第4版)
普通高校本科计算机专业特色教材精选
软件工程导论 (第4版)
张海藩 编著
总目录
第1章 软件工程学概述 第8章 维护
第2章 可行性研究
第9章 面向对象方法学引论
第3章 需求分析
第10章 面向对象分析
第4章 形式化说明技术 第11章 面向对象设计
第5章 总体设计
第12章 面向对象实现
第6章 详细设计
第13章 软件项目管理
测试、综合测试又称为系统实现。 设计出实现目标系统的方案,设计程序的体系结构。 确定实现模块功能所需要的算法和数据结构; 设计出程序的详细规格说明; 用适当的程序设计语言写出正确的容易理解、容易维护的
程序模块并进行单元测试; 根据设计的软件结构,把各模块装配起来并进行测试; 通过对软件测试结果的分析预测软件的可靠性; 写出测试计划和详细测试方案并记录实际测试结果; 按照规格说明书的规定,由用户对目标系统进行验收。
第7章 实现
第1章 软件工程学概述
软件成为独立的商品 计算机应用的普及,促使人们对软件的品种、
数量、功能、质量等提出了越来越高的要求 在1970前,计算机硬件工程技术由于电子技术
的发展而建立 重视软件开发过程、方法、工具和环境的研
究—软件工程
1.1 软件危机 一.软件
1.软件的定义 软件是能够完成预定功能和性能的可执行的计算
2. 产生软件危机的原因
(1)软件开发个体化,采用了错误的方法和技术,无设计资 料留存; (2)软件规模的增长,使得软件的复杂度增加,软件的可靠 性随软件规模的增长而下降,质量保证越来越困难; (3)软件维护费用急剧上升。
据统计,软件维护费用大约占到软件总花费的2/3; (4)软件生产技术进步缓慢,是加剧软件危机的重要原因。

张海藩《软件工程导论》(第6版,清华大学出版社)(考研用)辅导书 第(1-3)章【圣才出品】

张海藩《软件工程导论》(第6版,清华大学出版社)(考研用)辅导书 第(1-3)章【圣才出品】

(3)传统方法学(生命周期方法学或结构化范型)
①定义
采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,
并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
②优点
a.把软件生命周期划分成若干相对独立、简单的阶段,便于不同人员分工协作,降低
开发的困难程度;
b.开发过程中采用科学的管理技术和良好的技术方法,且在每个阶段结束之前都进行
二、软件工程 1.软件工程的介绍 (1)概念 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的 管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效 地维护它,这就是软件工程。
2 / 59
圣才电子书

(2)本质特征
2.产生软件危机的原因 (1)客观原因 ①软件是计算机系统中的逻辑部件,缺乏“可见性”,因此管理和控制软件开发过程相 当困难。
1 / 59
圣才电子书 十万种考研考证电子书、题库视频学习平台

②软件维护通常意味着改正或修改原来的设计,因此软件较难维护。 ③软件规模庞大,而程序复杂性将随着程序规模的增加而呈指数上升。 (2)主观原因 ①存在与软件开发和维护有关的许多错误认识和做法。 ②对用户要求没有完整准确的认识就匆忙着手编写程序。 ③开发人员只重视程序而忽视软件配置的其余成分(文档和数据等)。 ④软件开发人员轻视维护。
圣才电子书 十万种考研考证电,把数据和对数据的操作紧密地结合起来的方法。 ②要点 a.把对象作为融合了数据及在数据上的操作行为的统一的软件构件; b.把所有对象都划分成类; c.继承性; d.对象彼此间仅能通过发送消息互相联系。 ③与传统方法学的对比 a.传统方法学强调自顶向下、逐层分解、顺序开发。 b.面向对象方法学强调主动地多次反复迭代地开发,保证了在各项开发活动之间的平 滑过渡。 ④优点 a.降低了软件产品的复杂性; b.提高了软件的可理解性; c.简化了软件的开发和维护工作; d.提高了软件的可重用性。 【注意】常考面向对象方法学的基本特征:类、继承、封装、多态。结合第 9 章掌握 其含义和意义。

软件工程导论(第六版)张海藩课后习题答案(1-8章)

软件工程导论(第六版)张海藩课后习题答案(1-8章)

第一章1-1 什么是软件危机?是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程?是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2种):1. 传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-6 什么是软件过程?它与软件工程方法学有何关系?z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-7 什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。

软件工程导论1-6章习题

软件工程导论1-6章习题

第一章练习题一、判断题1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。

(√)2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。

(X)3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。

(X)4.快速原型模型可以有效地适应用户需求的动态变化。

(√)5.类是关于对象性质的描述,由方法和数据组成。

(√)6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。

(√)二、名字解释:1.软件:完成特定功能的程序+数据结构+文档。

2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

3.软件工程:将系统化的、规范的、可度量的方法应用与软件的开发、运行和维护的过程。

(将工程化运用于软件中)。

4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时期。

5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。

它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。

它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。

7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。

增量方式包括增量开发和增量提交。

增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。

增量开发和增量提交可以同时使用,也可以单独使用。

9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ian Sommerville, Software Engineering, 8th Edition, Addison-Wesley, 2007. 个人学术网站:/stse/ian/ 博客:/stse/ian/weblog/517.html

1.1 软件工程产生的背景
1.1.2 软件危机
d. 软件工程(学)-克服软件危机的努力
2. 解决危机的技术途径 1968年提出软件工程概念和思想 20世纪70年代的结构化软件开发方法 20世纪80年代的面向对象的软件开发方法 新的技术: 软件重用、快速原型、需求工 程 典型技术: COM, Java, C++, J2EE, .Net, …. 支撑工具和环境:Jbuilder, Visual Studio, WebLogic, … ……
b. 软件的特征-成本高
代码行(K): 400
工作量(人年): 263
成本(百万): 22
1.1 软件工程产生的背景 1.1.1 软 件
b. 软件的特征-成本高
代码行(K): 780
工作量(人年): 150
成本(百万): 13.2
1.1 软件工程产生的背景 1.1.1 软 件
b. 软件的特征-成本高
(1)把系统的、规范的、可度量的方法应用于软件开 发、运行和维护过程,即把工程的思想应用于软件; (2)研究(1)中提到的途径。 -美国电气电子工程师学会(1993年)
1.2 软件工程的定义
“Software engineering is an engineering discipline that is concerned with all aspects of software production.”
软件工程就是为了经济地获得可靠的 且能在实际机器上有效地运行的软件,而 建立和使用完善的工程原理。
1.2 软件工程的定义
Software engineering. (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE(The Institute for Electrical and Electronic engineers) Std 610-1990,1993) 软件工程是:
代码行(K): 90
工作量(人年): 58 成本(百万): 3
1.1 软件工程产生的背景 1.1.1 软 件
b. 软件的特征-维护困难
维护形式多样化 改正性:修改故障 完善性:增加功能 适应性:移植 维护成本越来越高 55%到70% 维护带来的问题
1.1 软件工程产生的背景
C.软件的发展
教学目标
• 要求理解
什么是软件工程 为什么需要软件工程(软件危机) 软件工程需要解决那些问题
软件工程主要涉及那些方面内容
教学目标
• 要求掌握
软件工程的概念 软件工程的技术 软件工程的过程
软件工程的工具
教学目标
• 要求运用
用工程化的思想开发软件,包括
需求分析 软件设计 程序设计 软件维护
1.2 软件工程的定义
The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines. (1968- Fritz Bauer)
1950
1960
1970
1980
1990
2000
1.1 软件工程产生的背景 1.1.2 软件危机
a. 软件危机的表现
成本高
IBM 360 OS, 5000多人年, 耗时4年(1963-1966),花费 2亿多美元 美国空军:1955年软件占总 费用(计算机系统)的18%,70 年60%,85年达到85% 美国全球军事指挥控制系统 ,硬件1亿美元,软件高达 7.2亿美元
工程学科
解决实际问题
理论、方法和工具 在各种约束条件下进行 设计中经常用到折中妥协方案
Gregory W. Jones, Software Engineering, Wiley, 1990 /~mike/articles/finding/finding.html
软件工程 Software Engineering
教师:李 智 电邮:zhili@
课程介绍-什么是软件工程?
空客A380驾驶控制室
利用工程化的方法开发和维护软件
软件工程定义
“Software engineering is an engineering discipline that is concerned with all aspects of software production.” “软件工程是一门工程学科,它所关注的是软件生产 的每一个方面。” – Ian Sommerville
d. 软件工程(学)-克服软件危机的努力
1. 解决危机的管理途径
美国DoD的一项研究表明,70%的项目由于管理不善导致 难以控制进步、成本和质量; 进一步的研究发现:管理是影响软件项目成功开发的全 局性因素,而技术只影响局部 如果软件开发组织不能对软件项目进行有效管理,就不 能充分发挥软件开发方法和工具的潜力,也就不能高效 率地开发出高质量的软件产品 ……
软件生产的每个方面
软件 软件 软件 软件 软件
需求
设计
构建(实现)
测试
维护
软件
配置管理 (针对变更)
软件
软件
软件工程
软件
工程管理
工程过程
工具和方法
质量
Alain Abran et al., Guide to the Software Engineering Body of Knowledge, 2004 Edition, IEEE Computer Society, 2004.
b. 产生软件危机的原因
与软件本身的特点有关 (难于维护, 逻 辑复杂) 与软件开发与维护的方法不正确有关: 软件≠程序 急于求成=拔苗助长 各自为政=无方法/学
1.1 软件工程产生的背景
1.1.2 软件危机
c. 软件工程因软件危机而产生
开发一个具有一定规模和复杂性的软件系统 与编写一个简单的程序不一样 正如建设狗窝和高楼大厦 大型、复杂软件系统的开发是一项工程,必 须按照工程化的方法组织软件的生产和管理, 必须经过分析、设计、实现、测试、维护等 一系列软件过程和活动
“软件工程是一门工程学科,它所关注 的是软件生产的每一个方面。” –Ian Sommerville, 2006
1.2 软件工程的定义
总之: 软件工程是应用计算机科学、 数学及管理科学等原理开发软件的 工程。它借鉴传统工程的原则、方 法,以提高质量,降低成本为目的。
软件工程的特性
软件工程关注于大型程序的构造
学习要求
• 听
– 理解知识点和思想 – 不必死记硬背
• 做
– – – – – 实践 体会软件工程的原则、方法和技术,在实践中提高 培养抽象思维能力 培养独立解决问题的能力 培养团队合作精神
• 想
– 阅读相关资料(参考书、论文等)
考核方式
• 平时作业(40%) • 闭卷考试(60%)
参考文献
软件工程导论(第五版),张海藩,清华大 学出版社 软件工程实践导论--有关方法、设计、实现、 管理之三十六计,金尊和,清华大学出版社, 2005. 软件开发的科学与艺术,微软亚洲研究院, 电子工业出版社,2002 年 软件工程-实践者的研究方法,R S. Pressman, 机械工业出版社 现代软件工程, 周之英编著, 科学出版社
软件工程的中心课题是控制复杂性
软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户
在软件工程领域中是由具有一种文化背景
早期 •面向批处理 •有限的分布 •自定义软件 第二阶段 •多用户 •实时 •数据库 第三阶段 •分布式系统 •嵌入“智能” •低成本硬件 第四阶段
•强大的桌面系统
•面向对象技术 •专家系统
•软件产品
•消费者的影响
•人工神经网络
•并行计算 •网路计算机
1968年10月,北大西洋公约组织(NATO)的科学家在德国 召开的学术会议上正式提出了软件危机问题。
软件生产的每个方面
Cartoon by Alex Gorbatchev, a simpler black-and-white version appeared in the University of London Computer Centre Newsletter No. 53, March 1973
1.1 软件工程产生的背景 1.1.1 软 件
b. 软件的特征-非常复杂
逻辑复杂
远高于硬件的逻辑复杂程度
开发复杂
成本难以估算 进度难以控制 人员素质要求高 质量较难保证
1.1 软件工程产生的背景 1.1.1 软 件
b. 软件的特征-成本高
1.1 软件工程产生的背景 1.1.1 软 件
1.1 软件工程产生的背景
1.1.2 软件危机
d. 软件工程(学)-克服软件危机的努力
从管理的角度 软件开发过程的研究、文档的标准化和人 们的交流方式等方面得到加强 软件开发方法的研究 结构化的开发方法 面向对象的开发方法 面向问题的开发方法(只要求了解)
相关文档
最新文档