(完整word版)软件工程导论(第6版)
(完整版)软件工程导论(第六版)张海藩课后习题部分答案
第一章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.1.1 软件危机的介绍
1.1 软件危机
6
软件危机的典型表现
4、软件通常没有适当的文档资料。
5、软件成本在计算机系统总成本中所占的比例 逐年上升。
6、软件开发生产率提高的速度,远远跟不上计 算机应用迅速普及深入的趋势。
第1章 软件工程学概述
1.1.1 软件危机的介绍
1.1 软件危机
1.1.2 产生软件危机的原因
第1章 软件工程学概述
1.1.2 产生软件危机的原因
11
1.1 软件危机
1.1.3 消除软件危机的途径
1 2 3 首先应该对计 算机软件有一
充分认识到软 件开发不是某
推广使用在实 践中总结出来
个正确的认识。 种个体劳动的 的开发软件的
神秘技巧 ,
成功的技术和
而应该是各类 方法,并且研
人员协同配合, 究探索更好更
1.2.1 软件工程的介绍
1.2 软件工程
16
1.2.2 软件工程的基本原理
1、用分阶段的生命周期计划严格管理 2、坚持进行阶段评审 3、实行严格的产品控制 4、采用现代程序设计技术 5、结果应能清楚地审查 6、开发小组的人员应该少而精 7、承认不断改进软件工程实践的必要性
第1章 软件工程学概述
1.2.2 软件工程的基本原理
1.4 软件过程
33
1.4 软件过程
软件过程是为了获得高质量软件所需要完成的一系列任务 的框架,它规定了完成各项任务的工作步骤。
软件过程描述为了开发出客户需要的软件,什么人(who )、在什么时候(when)、做什么事(what)以及怎样( how)做这些事以实现某一个特定的具体目标。
第1章 软件工程学概述
第1章 软件工程学概述
软件工程导论第六版课后习题答案完整版
软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。
以下是软件工程导论第六版课后习题的完整答案。
第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。
1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。
第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。
2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。
第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。
3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。
第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。
第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。
5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。
第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。
6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。
至此,我们完成了软件工程导论第六版课后习题的完整答案。
软件工程导论复习重点总结很全(第六版)
软件工程导论复习重点总结很全(第六版)软件工程导论复习重点总结很全(第六版)软件工程是一门研究如何以系统化的、可管理的和可维护的方式来构建高质量的软件的学科。
在软件工程导论中,我们学习了软件开发的基本概念、原理和方法。
本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。
1. 软件工程概述软件工程的定义、目标和原则;软件生命周期和过程模型;软件开发的重要性和挑战;软件工程中的质量保证和风险管理。
2. 软件需求工程软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。
3. 软件设计软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。
4. 软件测试与调试软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。
5. 软件项目管理软件项目管理的基本概念和流程;项目计划和进度管理;团队组织和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理与法规。
6. 软件开发过程软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发等常用模型的特点和比较;敏捷开发方法的原理和实践。
7. 软件工具与环境软件开发工具的选择和使用;集成开发环境、版本控制工具、测试工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。
8. 软件工程的前沿技术软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在软件开发中的应用;软件工程的创新与创业。
通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导论的核心知识和方法。
在今后的学习和实践中,我们应该注重理论与实际的结合,不断提高自己在软件开发和项目管理方面的能力。
只有不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创造更大的价值。
总结:软件工程导论是软件工程领域中的重要基础课程,通过对软件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、原则和方法。
软件工程导论复习重点总结很全第六版
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程导论(第六版)1
2.3.1 符号
符号 名称 处理 说明 如:程序,处理机,人工加工
输入/输出 表流 指明数据流动方向
图2.1 基本符号
符号
名称
穿孔卡片 文档 磁带 联机存储 磁盘 磁鼓 显示 人工输入 人工操作 辅助操作 通信链路
说明 穿孔卡片输入/输出,或穿孔卡片文件
1)复查系统规模和目标; 2)研究目前正在使用的系统; 3)导出新系统的高层逻辑模型(数据流 图、数据字典);
4)重新定义问题;
2.2 可行性研究的步 骤
5)导出和评价供选择的解法(物理解决方案);
6)推荐行动方案;
7)草拟开发计划;
8)书写文档提交审查。
2.3 系统流程图 (描绘物理系统 的工具)
SDC公司的形式化开发方法FDM: (Formal Development Methodology) IBM公司的维也纳开发方法VDM:
1.3 软件生命周期
软件生命周期: 指软件从提出到最终被淘汰的这个存在期。
软件生命周期组成:
1)软件定义;
A.问题定义 B.可行性研究 C.需求
软件的总体目标什么? 有什么用途? 为那些用户设计?
问题定义是软件生命周期中时间最短的阶
段,一般都比较简单,因此在实际开发中它是
最容易被忽视的一个阶段。
这一阶段工作主要由系统分析员来完成,
系统分析员要尽可能从较高的角度概括软件所
要做的工作,而不用写明问题的实现细节。
第2章:可行性研究
1.2 软件工 程
1.2.1 软件工程的介绍
1968 年 NATO 会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。 1993 年 IEEE :软件工程是( 1 )把系统的、规范 的、可度量的途径应用于软件开发、运行和维护 过程;(2)研究(1)中提到的途径。
软件工程导论第六版课后习题答案完整版
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
(1) 在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少
存储容量需求M=(1985-1960)=4474263(字)
软件工程导论第六版课后习题答案
第一章
一、什么是软件危机它有哪些典型表现为什么会出现软件危机
软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
Байду номын сангаас软件危机的典型表现:
(1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。
软件工程的本质特征:
(1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3)软件是经常变化的,开发过程中必须考虑软件将来可能的变化
(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具
(5) 和谐地合作是开发软件的关键 (6) 软件必须有效地支持它的用户
(4) 开发和使用更好的软件工具
四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。
1.传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
(完整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.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
软件工程导论(第六版)张海藩 牟永敏课后习题答案.
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论(第六版)电子教案(第1-13章)
第一章软件工程学概述教学目标与要求1.掌握程序软件、软件、软件危机与软件工程等基本概念内涵2.掌握软件工程的基本原理和方法3.了解生命周期方法,着重理解软件工程过程的实质4.会应用各种软件开发模型教学重点与难点重点:软件危机的相关概念、软件生命周期难点:软件生命周期、软件过程模型教学过程设计新课导入、新课教学、课堂讨论、作业讲评。
教学方法以多媒体讲授为主,适当结合提问、设问、讨论等方法。
§1.1 软件危机一、软件危机的介绍:1、计算机系统的发展历程:四个阶段2、软件危机的含义⏹软件的概念软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档的完整集合。
其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
⏹软件的特点:7个每个特点都显示在屏幕上⏹软件的分类从6个方面对软件进行分类⏹软件的发展四个阶段⏹软件危机的含义:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题⏹软件危机的表现:7个方面二、产生软件危机的原因与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在计算机系统发展的早期阶段软件开发的个体化特点。
错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。
从而引出产生软件危机的6个原因。
在此详细介绍软件的概念、特点及分类对每个特点进行详细阐述由上面计算机发展的四个阶段引出软件发展的四个阶段对每个方面进行阐述对6个原因进行阐述由现实中出现问题就要想法找到这个问题的解决办法,引入消除软件危机的途径――软件工程为了使学生对软件工程有一个更好的理解,引入软件工程的三种6种原因省略。
三、消除软件危机的途径到了20世纪60年代末期,软件危机已相当严重。
这促使计算机科学家们开始探索缓解软件危机的方法。
他们提出了“软件工程”的概念,即用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。
软件工程导论(第六版)电子教(学)案(第1_13章)
尽可能一致值时,则应报告给采购部门以便定货。
规定每天向采购部门送一次定货报告引出问题:复杂系统用上面的方法可行否?如果不可行怎么画对于复杂系统,可分层描述⏹首先用一张高层次的系统流程图描绘系统总体概貌能。
⏹然后把每个关键功能扩展到适当的详细程序。
§2.4 数据流图一、概念数据流图简称DFD(Data Flow Diagram)图,它是描绘信息和数据从输入移动用一个数据去修改数据存储中的数据;从数据存储中读出一个数据;从数据存储中检索出一批数据数据流表示数据在系统中的流动方向,一般分单向数据流和双向数据流两种。
⏹数据流图有六种附加符号:附加符号中的星号(*)表示数据流之间是“与”关系;加号(+)表示数据流之间是“或”关系;符号 表示只能从数据流中选一个(互斥关系)。
三、例子例1:银行取款系统的数据流图(活期储蓄)。
第一步◆源点和终点都是储户◆加工(处理)是完成取款的功能;◆数据存储:帐卡、存折◆数据流是取款单、存折、现款画出银行取款系统的基本数据流图第二步◆取款工作实际上是由储户资格审查、登录、付款三部分组成◆数据存储部分涉及储户的帐卡和存折上数据的更新。
画出取款系统的功能级数据流图补充知识:1、画数据流图的原则⏹确定系统的源点和终点⏹确定系统的输入和输出数据流。
保持分解前后输入/输出数据流必须相同;⏹用“自顶向下”的方法,逐层画出数据流图。
⏹每张数据流图中加工(处理)的个数不能超过9个(7加减2原则)⏹将必要的存储与加工(处理)相匹配⏹在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存储符号;⏹画出出错及例外条件处理情况。
2、建立数据流模型要遵循以下的原则⏹每个加工至少应有一个输入数据流(反映被处理数据的来源)和一个输出数据流(反映加工的结果)。
⏹数据流图中各构成元素的名称必须具有明确的含义且能够代表对应元素的内容或功能。
⏹对某个加工进行细化生成的下层数据流图,称为其上层图的子图。
软件工程导论复习重点总结--很全(第六版)
第1章第2章第11章软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
1.1.2 产生软件危机的原因(1)与软件本身的特点有关(2)与软件开发与维护的方法不正确有关1.1.3 消除软件危机的途径对计算机软件有正确的认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。
应该开发和使用更好的软件工具。
总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
1.21.2.1 软件工程的介绍软件工程:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(期中考)软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2 软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性1.2.3 软件工程方法学软件工程包括技术和管理两方面的内容。
软件工程导论(第六版)课后习题答案
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论(第六版)课后习题答案
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论(第六版)张海藩 牟永敏课后习题答案.
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满。
(2) 用户对已完成的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
软件工程导论全套精品课件(第六版)(张海潘编著)
2
第1章 软件工程学概述
引言
3
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
主要内容
4
主要内容
1.1 软件危机 1.2 软件工程 1.3 软件生命周期
1.4 软件过程
第1章 软件工程学概述
1.1 软件危机
1.1 软件危机
1.1.1 软件危机的介绍
14
件,把经过时间考验而证明正确的管理技术和当前能够得 到的最好的技术方法结合起来,以经济地开发出高质量的 软件并有效地维护它,这就是软件工程。
第1章 软件工程学概述
1.2.1
软件工程的介绍
软件工程
1968年在第一届NATO会议上曾经给出了软件工程的一个
15
早期定义:“软件工程就是为了经济地获得可靠的且能在 实际机器上有效地运行的软件,而建立和使用完善的工程 原理。” 1993年IEEE进一步给出了一个更全面更具体的定义: “软件工程是: ①把系统的、规范的、可度量的途径应用 于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。
与软件本身特点有关
软件不同于硬件, 1管理和控制软件 开发过程相当困 难。 软件在运行过程 2中不会因为使用 时间过长而被 “用坏 “如果运 行中发现了错误, 很可能是遇到了 一个在开发时期 引入的在测试阶 段没能检测出来 的错误。 软件不同于一般 3程序 ,它的一个 显著特点是规模 庞大 ,而且程序 复杂性将随着程 序规模的增加而 呈指数上升。
9
错误的认识和做法 6主要表现为忽视软 件需求分析的重要 性,认为软件开发 就是写程序并设法 使之运行,轻视软 件维护等
软件工程导论(第六版)课后习题答案
软件工程导论(第六版)课后习题答案软件工程导论(第六版)课后习题答案1. 简答题1.1 软件是如何演变而来的?软件起源于计算机的发展。
最初,计算机只能执行硬件内置的指令,而随着计算机的发展,人们开始意识到可以编写程序来控制计算机的行为。
因此,软件就诞生了。
从最初的汇编语言、机器语言编写程序,到高级编程语言的出现,软件也逐渐从简单的指令集合演变为复杂的程序系统。
同时,计算机应用领域的拓展也催生了更多类型的软件,如操作系统、数据库管理系统、图形界面等。
软件工程导论旨在帮助人们理解和应对软件开发过程中的种种问题和挑战。
1.2 简述软件危机的原因以及软件工程的解决途径。
软件危机指的是在软件开发过程中出现的一系列问题和挑战。
其原因主要包括:(1)软件开发过程中需求不明确或者需求频繁变更;(2)软件项目规模庞大,组织和管理困难;(3)软件开发中缺乏标准化的工程方法和规范;(4)软件开发中技术不成熟、人员培训和素质不足等。
为了应对软件危机,软件工程提出了一系列解决途径:(1)引入系统化的软件开发过程,如瀑布模型、迭代模型、敏捷开发等;(2)规范化软件开发活动,如需求分析、软件设计、编码、测试、维护等;(3)建立软件开发的标准和规范,如ISO 9000、CMMI等;(4)提高软件开发人员的专业水平,加强软件工程教育和培训。
1.3 软件工程活动的核心内容是什么?软件工程活动的核心内容包括需求分析、软件设计、编码、测试和维护等。
(1)需求分析:确定用户需求,定义软件的功能和性能要求。
(2)软件设计:制定软件的体系结构,并将需求转化为具体的设计方案。
(3)编码:根据设计方案,使用编程语言实现软件的功能。
(4)测试:验证软件是否符合需求和设计的要求,发现并修复潜在的问题。
(5)维护:对软件进行改进、优化和修复,确保软件长期稳定运行。
2. 应用题2.1 简述软件生命周期模型,并列举至少两种常见的软件生命周期模型。
软件生命周期模型指的是软件开发过程中各个阶段的组织和安排方式,常见的软件生命周期模型包括:(1)瀑布模型:按照固定的顺序依次进行需求分析、设计、编码、测试和维护等活动。
(完整word版)软件工程导论(第六版)张海藩牟永敏课后习题答案
第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。
常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。
这些都降低了开发商的信誉,引起用户不满.(2) 用户对已完成的软件不满意的现象时有发生。
(3)软件产品的质量往往是靠不住的。
(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题.(6)软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7)开发生产率提高的速度远跟不上计算机应用普及的需求.软件危机出现的原因:(1)来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2)软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护.(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。
二、假设自己是一家软件公司的总工程师,当把图1。
1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成"是在引入变动,当然付出的代价更高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没有适当的文档材料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
软件配置:程序、文档和数据。
软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。
软件:是程序、数据及相关文档的集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
软件工程:指导计算机软件开发和维护的一门工程学科。
软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制4.采用现代程序设计技术。
5.结构应能清楚的审查。
6.开发小组的人员应该少而精。
7.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
软件工程方法学(包括传统方法学、面向对象方法学)包含三个要素:方法、工具和过程。
方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。
工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。
工程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
面向对象方法学:把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
面向对象方法学具有下述四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件。
2.把所有对象都划分成类。
3.按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。
4.对象彼此间仅能通过发送消息互相联系。
面向对象方法学的优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。
软件生命周期:软件定义、软件开发和运行维护。
软件定义:问题定义、可行性研究和需求分析。
软件开发:总体设计,详细设计,编码和单元测试,综合测试。
1.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。
2.可行性研究:这个阶段回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”3.需求分析:确定目标系统必须具备哪些功能。
4.总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。
5.详细设计:这个阶段应回答的关键问题是:“应该怎样具体地实现这个系统呢?”6.编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
7.综合测试:这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。
8.软件维护:关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。
软件工程过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
生命周期模型包括:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、瀑布模型的特点:1.阶段间具有顺序性和依赖性。
2.推迟实现的观点。
3.质量保证的观点。
快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。
增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。
螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。
理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。
(使用于内部开发的大规模软件项目)喷泉模型:是典型的面向对象的软件过程模型之一。
面向对象方法学的四个要点:面向对象方法= 对象+ 类+ 继承+ 用消息通信第二章、可行性研究可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
对每种解法都应该仔细研究它的可行性,一般说来,至少应该从下述3个方面研究每种解法的可行性:1)技术可行性2)经济可行性3)操作可行性可行性研究最根本的任务:是对以后的行动方针提出建议。
典型的可行性研究有下述一些步骤:1.复查系统规模和目标。
2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查。
系统流程图:是概括性地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。
数据流图:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变幻。
数据存储是处于静止状态的数据,数据流是处于运动中的数据。
数据流图的基本要点:是描绘“做什么”,而不考虑“怎么做”。
为数据流命名:1)名字应代表整个数据流的内容,而不是仅仅反映它的某些成分。
2)不要使用空洞的、缺乏具体含义的名字。
3)如果在为某个数据流起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。
画数据流图的基本目的是利用它作为交流通信的工具。
数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用:在软件分析和设计的过程中给人提供关于数据的描述信息。
系统的逻辑模型:由数据流图和数据字典共同构成,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。
数据字典应该由对下列4类元素的定义组成:数据流、数据流分量、数据存储和处理。
由数据元素组成数据的方式只有下述3种基本类型:顺序、选择、重复和可选。
数据字典最主要的用途:就是作为分析阶段的工具。
成本/效益分析的目标:正式要从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地做出是否投资于这项开发工程的决定。
系统流程图:实质上是物理流程图,它描绘组成系统的主要物理元素以及信息在这些元素间流动和处理的情况。
第三章、需求分析需求分析的任务是:准确地回答“系统必须做什么”这个问题。
需求分析方法应遵循的准则:1.必须理解并描述问题的信息域,根据这条准则应该建立数据模型。
2.必须定义软件应完成的功能,这条准则要求建立功能模型。
3.必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。
4.必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
通常对软件系统有以下几方面的综合要求:1.功能需求 2.性能需求 3.可靠性和可用性需求 4.出错处理需求 5.接口需求6.约束7.逆向需求8.将来可能提出的要求软件系统本质上是信息处理系统,而任何信息处理系统的基本功能都是把输入数据转变成需要的输出信息。
需求分析的目标之一:就是把数据流和数据存储定义到元素级。
快速建立软件原型是最准确、最有效、最强大的需求分析技术。
快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。
快速原型应该具备的特性:1.快速 2.容易修改模型:就是为了理解事务而对事务做出的一种抽象,是对事务的一种无歧义的书面描述。
通常,模型由一组图形符号和组织这些符号的规则组成。
需求分析过程应该建立三种模型:数据模型(实体-联系图)、功能模型(数据流图)和行为模型(状态转换图)。
概念数据模型:是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。
它描述了从用户角度看到的数据,它反应了用户的现实环境,而且与在软件系统中的实现方法无关。
数据模型中包含3中相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。
数据对象:是对软件必须理解的复合信息的抽象。
复合信息:是指具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象。
属性:定义了数据对象的性质。
联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。
联系可分为以下三种类型:一对一,一对多和多对多。
第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。
第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定。
第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述。
状态转换图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
事件:是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。
IPO图:是输入、处理、输出图的简称,能方便地描绘输入数据、对数据的处理和输出数据之间的关系。
模块:在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,在软件的体系结构中,模块是可组合、分解和更换的单元。
第四章、形式化说明技术按照形式化的程度,可以把软件工程使用的方法划分成:非形式化、半形式化和形式化3类形式化方法:是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。
矛盾:指一组相互冲突的陈述。
二义性:是指读者可以用不同方式理解的陈述。
不完整性:可能是在系统规格说明中最常遇到的问题之一。
形式化规格说明技术的优点:形式化的规格说明技术可以用数学方法研究、验证。
此外,形式化的规格说明消除了二义性,而且它鼓励软件开发工程过程的早期阶段使用更严格的方法,从而可以减少差错。
第五章、总体设计总体设计的基本目的:就是回答“概括地说,系统应该如何实现”这个问题,因此总体设计又称为概要设计或者初步设计。