常州大学 软件工程第五章作业
- 格式:doc
- 大小:100.50 KB
- 文档页数:5
软件危机与软件工程3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。
A •消除软件危机B •软件开发工程化C •程序设计自动化D •实现软件重用4•软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。
A .工程管理B .成本核算C .人员培训D .工具开发5•软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。
A •设计人员和用户B •分析人员和用户C .分析人员和设计人员D .编码人员和用户6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成于( )。
A .开发阶段B .计划阶段C .分析阶段D .设计阶段7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。
通常,计划时期包括问题定义、可行性研究和①,开发时期包括 ②、详细设计、编码以及 ③。
① A . 需求分析 B . 可行性研究 C . 经费预算 D .质量保证②A . 需求分析B . 可行性研究C 总体设计D 模块化设计 ③A . 文档编制B . 运行维护C . 测试D . 验收&软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型C .螺旋模型D .对象模型9.描述软件生存周期的瀑布模型包括计划、(A )、设计、编码、测试、维护等阶段。
其中,设计阶段又可以分成(B )和(C )两个步骤。
A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计②代码设计③概要(总体)设计 ④数据设计 ⑤详细设计10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务?可行性研究软件工程1软件危机是指在开发和( A .运行 B .设计2 •造成软件危机的原因是: A. 用户使用不当C .硬件不可靠)过程中所遇到的一系列严重问题。
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因:(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师~当把图1.1给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
软件工程一、软件危机与软件工程1.软件危机是指在开发和()过程中所遇到的一系列严重问题。
A.运行B.设计C.维护D.编码2.造成软件危机的原因是:A.用户使用不当B.对软件的错误认识C.硬件不可靠D.缺乏好的开发方法和手段3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是()。
A.消除软件危机B.软件开发工程化C.程序设计自动化D.实现软件重用4.软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的()。
A.工程管理B.成本核算C.人员培训D.工具开发5.软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是()。
A.设计人员和用户B.分析人员和用户C.分析人员和设计人员D.编码人员和用户6.软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的逻辑模型形成于()。
A.开发阶段B.计划阶段C.分析阶段D.设计阶段7.在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。
通常,计划时期包括问题定义、可行性研究和①,开发时期包括②、详细设计、编码以及③。
①A.需求分析B.可行性研究C.经费预算D.质量保证②A.需求分析B.可行性研究C总体设计D模块化设计③A.文档编制B.运行维护C.测试D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。
A.层次模型B.瀑布模型C.螺旋模型D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。
其中,设计阶段又可以分成(B)和(C)两个步骤。
A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机?软件危机产生的原因?11.生命周期阶段的划分?每个阶段的任务?二、可行性研究1.可行性研究的任务?步骤?对于各种可能的方案,从哪几个方面进行可行性研究?参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
第五章习题答案1、为每种类型的模块耦合举一个具体例子。
答:耦合是对一个软件结构内不同模块之间互连程度的气宇。
耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,和通过接口的数据,一样模块之间可能的连接方式有7种,组成耦合的7种类型,它们之间的关系为:下面举例说明以上各类耦合:a.非直接耦合(Nondirect Coupling)在这种情形下,两个模块之间没有直接关系,它们之间的联系完尽是通过主模块的操纵和挪用来实现的,这确实是非直接耦合。
例如在实数的运算中,有两个模块别离完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块挪用中有执行的前后顺序算了,那个例子即属于非直接耦合。
b.数据耦合(Data Coupling)即一个模块访问另一个模块时,彼此之间是通过数据参数来互换输入,输出信息的,这种耦合为数据输入,输出信息的这种耦合为数据耦合。
如有两个模块,其中A完成两个烽的比较,求出其中最大的并返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完成四个数的比较,模块B挪用模块A即可完成,在这种挪用关系中,模块A的运算结果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。
数据耦合是松散的耦合,模块间的独立性比较强。
c.标记耦合(Stamp Coupling),即一组模块通过参数传递记录信息,这确实是标记耦合。
事实上,这组模块共享了那个记录,它是某一数据结构的子结构,而不是简单变量。
d.操纵耦合(Control Coupling)即一个模块通过开关标志,名字等操纵住处明显的操纵,选择另一模块的功能,这确实是操纵耦合,如下图所示,这一种耦合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计顶用到多路选择结构即是最好的例子。
e.外部耦合(External Coupling)即一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。
软件工程课后习题答案中文翻译版(第八版)软件工程课后习题答案中文翻译版(第八版)软件工程是一门关于软件开发和维护的学科。
它涉及项目管理、软件需求分析、软件设计、编码以及测试等诸多方面。
对于软件工程学习者来说,习题是非常重要的学习资源。
习题可以帮助学生巩固所学知识,增强对软件工程概念和技术的理解。
因此,软件工程课后习题答案的翻译版本是非常有价值的学习资料。
第一章:软件工程概述1. 软件工程的定义是什么?软件工程是一门关于开发、维护和管理软件的学科,它涵盖了软件生命周期的各个阶段,包括需求分析、设计、编码、测试和维护等。
2. 软件生命周期包括哪些阶段?软件生命周期包括需求定义、软件设计、编码、测试和维护等阶段。
3. 解释软件过程模型。
软件过程模型是软件工程中定义和管理软件开发过程的一种方法。
常见的软件过程模型包括瀑布模型、迭代模型和敏捷模型等。
第二章:软件项目管理1. 什么是软件项目管理?软件项目管理是对软件开发项目进行规划、组织、指导和控制的过程,目的是确保项目按时、按质量要求完成。
2. 软件项目管理的主要任务是什么?软件项目管理的主要任务包括项目计划、项目组织、项目沟通、项目风险管理和项目控制等。
3. 解释关键路径法。
关键路径法是一种用于确定项目进度安排和资源分配的方法。
通过确定项目中的关键路径,可以确保项目按时完成。
第三章:软件需求分析1. 软件需求分析的目的是什么?软件需求分析的目的是确定软件系统的功能和性能需求,并将其转化为具体的需求规格说明。
2. 软件需求分析的主要活动包括哪些?软件需求分析的主要活动包括需求获取、需求建模、需求验证和需求管理等。
3. 解释用例图。
用例图是一种用于描述系统功能的图形化表示方法。
用例图可以帮助分析师和开发人员理解系统与用户之间的交互。
第四章:软件设计1. 软件设计的目标是什么?软件设计的目标是将需求规格转化为可执行的软件系统,并满足性能、可维护性和可扩展性等要求。
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
习题5
3(1)数据流图如下:
对数据流图划分边界,如下所示:
按照以上数据流图设计软件结构,如下所示:
4(1)数据流图如下:
(2)需求说明:
功能需求:系统需要能查出教师的原有工资,计算出教师的现有工资,并打印相关信息。
数据需求:教师的原有工资信息,教师赡养的人数,教师的工龄
行为需求:系统要能判断原有工资是否符合涨工资要求,要精确计算现有工资,要提供给用户调查信息的借口与界面。
(3)用a 算法的HIPO 图:
教师档案
办公室磁带 打印原有工资和新工资信息 提取原工资
信息
计算新工资 办公室磁带
年工资大于等于$26000 年工资小于$26000
用b算法的HIPO图:
对于算法(a):优点:这样设置符合常规思路,容易让人理解
缺点:计算的次数较多。
检索效率低。
对于算法(b):优点:计算的次数较少,效率高
缺点:该算法不易于理解。
涉及到排序算法的设计。
(4)所画的数据流图更符合a算法。
5.答:需求分析:要实现三大功能,发牌;确定获胜方和牌型;模拟多次游戏,计算牌型的获胜和平局的概率。
分析后,设计的HIPO图如下:流程图在下页:
控制流程图如下:。
一、判断题1、(√)详细设计也称模块设计。
2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。
3、(×)在数据代码设计时,应可能设计字母和数字混合代码。
4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。
5、(×)详细设计评审应尽可能和概要设计评审一同进行。
二、选择题1、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、程序2、借助于软件工具,可将(C)容易地转换为高级语言源程序。
A、程序流程图B、N-S图C、PAD图D、判定表3、不属于详细设计工具的是(A)。
A、DFD图B、PAD图C、PDlD、N-S图4、程序的三种基本结构是(C)。
A、过程、子过程和子程序B、递归、堆栈和队列C、顺序、选择和重复D、调用、返回和转移5、下面描述中,符合结构化程序设计风格的是(A)。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B、模块只有一个入口,可以有多个出口C、注重提高程序的执行效率D、不使用goto语句三、简答题1、软件的详细设计阶段完成的主要任务是什么?答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。
2、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;对共同的输入设置默认值;使用代码或缩写;自动填入已输入过的内容;列表式输入; 数据分组输入。
3、代码设计的原则有哪些?答:代码设计的原则是标准化、唯一性、可扩充性、简单性、规范性和适应性。
四、应用题1、请分别使用程序流程图、PAD图和N-S图描述下列程序的算法。
(1)求整数1-n的累加和SUM,其中n的值由键盘输入。
软件工程教程课后参考答案软件工程是一个涉及软件开发生命周期的综合性学科,它包含了软件需求、设计、开发、测试和维护等多个环节。
本文将为大家提供软件工程教程的课后参考答案,帮助读者更好地理解和掌握软件工程的相关知识。
一、软件需求分析在软件开发过程中,需求分析是非常关键的一步。
它的目的是明确用户的需求,为后续的软件设计和开发提供依据。
需求分析主要包括以下几个步骤:1.1 需求搜集:通过与用户沟通、调研等方式收集用户需求,可以采用面谈、问卷调查等方法。
1.2 需求分析:对搜集到的需求进行整理和分析,明确用户的具体需求和优先级。
1.3 需求规格说明:将需求以文档形式进行规格化,包括用例图、用例描述、功能需求等。
1.4 验证需求:通过与用户的确认、需求评审等方式,确保需求的正确性和完整性。
二、软件设计软件设计是指根据需求分析的结果,对软件进行整体架构、模块划分等设计工作。
下面是软件设计的一般过程:2.1 系统架构设计:确定系统的整体结构,包括模块划分、模块之间的关系等。
2.2 模块设计:对系统中的每个模块进行详细设计,包括定义模块接口、数据结构等。
2.3 数据库设计:设计系统所需的数据库结构,包括数据表的设计、关系建立等。
2.4 用户界面设计:设计软件的用户界面,包括界面布局、交互方式等。
2.5 验证设计:对设计进行评审和验证,确保设计的合理性和可行性。
三、软件开发软件开发是指根据需求和设计的结果,进行编码、调试和测试等开发工作。
下面是软件开发的一般过程:3.1 编码实现:根据设计文档进行编码工作,将设计的结果转化为可执行的程序。
3.2 单元测试:对每个模块进行独立测试,确保模块的功能和接口正确。
3.3 组件测试:将多个模块组装在一起进行测试,确保各个模块之间的协同工作正常。
3.4 系统测试:对整个软件系统进行测试,包括功能测试、性能测试等。
3.5 调试和修复:在测试过程中发现问题,进行调试和修复,确保软件的稳定性和可靠性。
软件工程作业4-5软件工程作业4-51. 引言本文档旨在详细介绍软件工程作业4-5的要求和实施计划。
作业要求学生使用软件工程的知识和技巧,设计并实现一个具有一定规模的软件系统。
2. 作业要求作业4-5的主要任务是设计并实现一个包含各个模块的软件系统,涵盖了软件工程的多个方面,要求如下:2.1 需求分析与规划在本阶段,学生需要与客户进行沟通,理解客户需求,并编写需求文档和规划文档。
具体要求如下:- 分析客户需求,包括功能需求和非功能需求;- 编写需求规格说明文档,明确系统的功能和性能要求;- 编写规划文档,明确项目开发的计划和里程碑。
2.2 高层设计在本阶段,学生需要对系统进行高层设计,明确系统的架构和模块划分。
具体要求如下:- 使用适当的设计模式和架构模式,设计系统的整体结构;- 划分模块,定义模块之间的接口和协议;- 编写高层设计文档,包括系统结构图、模块关系图等。
2.3 详细设计在本阶段,学生需要对系统进行详细设计,明确各个模块的具体实现。
具体要求如下:- 对每个模块进行详细设计,包括类的设计、函数的设计等;- 使用适当的设计方法和技巧,提高系统的可复用性和可维护性;- 编写详细设计文档,包括类图、时序图等。
2.4 编码实现在本阶段,学生需要按照详细设计文档的要求,进行系统的编码实现。
具体要求如下:- 按照编码规范,进行代码编写,保证代码的质量和可读性;- 使用适当的工具和框架,加快开发效率;- 编写单元代码,保证系统的功能和性能。
2.5 验收在本阶段,学生需要对完成的系统进行整体和验证,确保系统符合客户需求。
具体要求如下:- 编写系统用例,包括边界和性能;- 进行系统,发现并修复潜在的问题;- 编写验收报告,系统的优点和不足。
3. 实施计划为了能够按时完成作业4-5,我们制定了如下的实施计划:- 第1周:需求分析和规划,与客户沟通,编写需求文档和规划文档;- 第2周:高层设计,确定系统的架构和模块划分,编写高层设计文档;- 第3-4周:详细设计,对各个模块进行详细设计,编写详细设计文档;- 第5-8周:编码实现,按照详细设计文档进行系统的编码实现和单元;- 第9-10周:验收,进行系统的整体和验证,并编写验收报告。
第5章作业一、填空题25、衡量模块独立性的两个定性的度量标准是和。
26、指一个模块内的各处理元素之间没有任何联系,这是是内聚程度最的内聚。
27、指模块执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
把需要同时执行的动作组合在一起形成的模块称为模块。
28、通信内聚是指模块内所有处理元素都在上操作,各处理使用相同的或产生相同的。
29、通信内聚的模块各部分都紧密关于,所以可把某一数据结构、文件、设备等操作都放在一个模块内,从而达到。
30、顺序内聚指一个模块中各个处理元素都密切相关于且必须,前一功能元素的就是下一功能元素的。
31、控制耦合中一个模块调用另一模块时,传递的是(如开关、标志),被调用模块通过有选择地执行块内某一功能。
32、将软件系统划分模块时,尽量做到内聚、耦合。
33、是最高程度的耦合,这种耦合出现在当一个模块直接使用另一个的,和通过转入另一模块内部。
34、若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD 称为的数据流图,这个加工称为。
35、模块的指一个模块直接下属模块的个数,指一个模块直接上属模块的个数。
36、一个模块的作用范围指受该模块内影响的所有模块集合,一个模块的控制范围指及其的集合。
37、变换型DFD由输入、和输出三部分组成。
38、变换型数据处理的工作过程一般分三步:、和。
39、通过信息隐藏可以定义和实施对模块的过程细节和局部数据结构的。
40、结构图的深度指结构图。
41、一个模块的范围应在其范围内,且判定所在模块应与受其影响的模块在层次上尽量。
42、HIPO图是表示的一种工具。
它使用描述软件总的模块层次结构,使用描述每个模块输入数据、输出数据、处理功能及模块调用的详细情况。
43、公共耦合指通过一个相互作用的那些模块间的耦合,其复杂程度随增加而增加。
44、DFD一般分为型和型两类,型的DFD是一个顺序结构。
软件工程课后习题答案第五版软件工程课后习题答案第五版《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
软件工程第5章作业
1.什么是软件测试?谈谈你对软件测试的认识。
软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
(1)测试是为了发现程序中的错误而执行程序的过程
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
(4)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
(5)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性
(6)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
(7)另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。
2.什么是测试用例?设计测试用例时,应该考虑哪些因素?
答测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
编写测试用例需要考虑很多因素:
1)测试目标。
测试人员测试该产品或者系统的目标是什么。
假如测试用例文档不能支持这个目标,或者无助于达到这个目标,那么这样的测试用例设计文档价值就会降低很多。
2)测试用例文档是产品还是工具。
假如测试用例文档是软件系统或者产品的一部分,那么这些文档是需要发布给客户使用的,这时候测试用例文档就需要按照客户的要求遵循某种表尊。
而假如它们只是内部使用的工具,那么就不必太完整、太整齐,能够在最低限度上有助于达到目标即可。
3)软件设计变更是否频繁。
如果软件设计变更很频繁,则不要将许多细节写入测试用例文档中,因为这些细节很快就会过时。
这种情况下,不要编写大量的测试用例文档,它们被修改或者放弃的速度太快,不值得在测试用例文档上投入太多。
4)采用的测试方法。
假如目前采用的软件开发模型是V模型之类的线性模型,那么采
用的测试方法通常是依赖于预先定义的测试,这时候需要详细的测试用例的操作和维护文档。
假如采用的是探索性测试,则更需要策略方面的文档,例如:关于某个测试领域的想法,但不是具体的测试用例。
5)测试用例文档给谁看。
假如测试用例文档是主要给新的测试人员或者没有经验的测试人员看,那么需要足够详细使得他们能够正常开展工作。
3.阐述单元测试、集成测试、确认测试之间的联系和区别。
答根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,
一般由开发小组采用白盒方式来测试,
主要测试单元是否符合设计。
集成测试界于单元测试和系统测试之间,起到桥梁作用,一般由开发小组采用白盒加黑盒
的方式来测试,既验证“设计”,又验证“需求”。
系统测试的粒度最大,
一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。
黑盒测试不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说
明书。
一般会有一个输入值,一个输入值,和期望值做比较。
白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测试手段有:语句覆盖、判定覆盖、条件覆盖、路径覆盖、条件组合覆盖集成测试主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。
确认测试是在经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试
4.下列伪码程序的功能是“输入三角形的三个边长,判断构成何种三角形”。
(1)使用条件覆盖法,为该程序设计白盒测试用例。
(2)使用等价类划分法,为该程序设计黑盒测试用例。
START
READ (A,B,C)
IF (A≤0) OR (B≤0) OR (C≤0)
THEN WRITE (“三角形边长不能为零”)
ELSE IF (A+B≤C) OR (A+C≤B) OR (B+C≤A)
THEN WRITE (“不能构成三角形”)
ELSE IF (A=B) AND (B=C)
THEN WRITE (“等边三角形”)
ELSE IF (A=B) OR (B=C) OR (A=C)
THEN WRITE(“等腰三角形”)
ELSE WRITE(“任意三角形”)
STOP
——————————————————————————————————————
(1)条件覆盖法:
测试用例1:A=0,B=0,C=0(满足(A≤0) OR (B≤0) OR (C≤0),返回“三角形变成不能为零”)测试用例2:A=1,B=1,C=2(满足(A)>0) OR (B)>0) OR (C)>0),A+B<=C,返回“不能构成三角形”)
测试用例3:A=1,B=2,C=1(满足(A)>0) OR (B)>0) OR (C)>0),A+C<=B,返回“不能构成三角形”)
测试用例4:A=2,B=1,C=1(满足(A)>0) OR (B)>0) OR (C)>0),B+C<=A,返回“不能构成三角形”)
测试用例5:A=5,B=5,C=5(满足(A)>0) OR (B)>0) OR (C)>0),B+C<=A,(A+B≤C) OR (A+C≤B) OR (B+C≤A),(A=B) AND (B=C),返回“等边三角形”)
测试用例6:A=5,B=5,C=7(满足(A)>0) OR (B)>0) OR (C)>0),B+C<=A,(A+B≤C) OR (A+C≤B) OR (B+C≤A),(B!=C),A=B,返回“等腰三角形”);
测试用例7:A=5,B=7,C=5((满足(A)>0) OR (B)>0) OR (C)>0),B+C<=A,(A+B≤C) OR (A+C≤B) OR (B+C≤A),(B!=C),A!=B,A=C,返回“等腰三角形”)
测试用例8:A=7,B=5,C=5((满足(A)>0) OR (B)>0) OR (C)>0),B+C<=A,(A+B≤C) OR (A+C≤B) OR (B+C≤A),A!=B,B=C,返回“等腰三角形”)
测试用例9:A=3,B=5,C=6(返回“普通三角形”)
(2)等价类划分:
分析这个程序的规格说明,可以划分出如下等价类:
测试用例:
2、覆盖无效等价类的测试用例
注:1、作业以word文件格式提交;
2、在作业页面的页眉中,标清楚:班级、学号、姓名。