《软件工程》张秋余等著 部分习题答案

您所在的位置:网站首页 可行性研究报告内容包括哪三部分 《软件工程》张秋余等著 部分习题答案

《软件工程》张秋余等著 部分习题答案

2024-07-11 07:33| 来源: 网络整理| 查看: 265

学习通课后作业参考答案。仅供核对、复习使用,请先独立完成作业。 注意使用目录,或者Ctrl + F搜索。

第1章作业 【简答题】1. 软件工程师应该具备哪4项技能?请详细解释其含义。解释什么是“软件”?

正确答案:

第1问:

抽象——业务、功能的抽象

分类——归纳、演绎

分解——复杂系统的分解

复用——提高分析、设计、开发效率

第2问:

是计算机系统中与硬件相互依存的另一部分。是包括程序、数据、文档、服务的完整集合——缺一不可。

答案解析:

正确答案见第1章课件的第14页,教材的1.1节

【简答题】4. 什么是软件危机?它有哪些典型表现?如何消除软件危机?

正确答案:

第一问答案:

软件危机是指在软件开发、维护过程中所存在的一系列严重、或致命的问题。目前,几乎所有软件都不同程度地存在这类问题。

第二问答案:

软件危机的主要典型表现与产生的原因有以下几方面:

对软件开发成本和进度的估计常常很不准确。拖期,项目管理经验欠缺。

软件不能符合用户的要求。用户对“已完成的”软件系统不满意的现象经常发生。模糊的需求、闭门造车、忙于编程,仓促上阵。

软件产品的质量往往靠不住。可靠性和质量保证欠缺,缺少测试。

软件常常是不可维护的。设计死板,没有整体考虑。

软件通常没有适当的文档资料。缺少设计资料、难以维护,写文档嫌麻烦。

软件成本在计算机系统总成本中所占的比例逐年上升。软件过于庞大,成本过高。

软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。跟不上计算机和软件技术的发展速度,技术落后。

开发者只专注于技术、风险意识薄弱。

第三问答案:

消除途径主要有:

理解软件的概念:软件是程序、数据及相关文档的完整集合。

应该推广使用在实践中总结出来的开发软件的成功的技术和方法

应该开发和使用更好的软件工具。

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

所以要解决软件危机中的问题,既要有技术措施(方法和工具),又要有必要的组织管理措施,必须用工程化的方法管理软件开发过程,用先进的软件开发技术进行软件开发,从管理和技术两方面保证软件开发的质量。

答案解析:

见第1章课件第22页、或教材的1.2节

【简答题】5. 什么是软件工程? 学习软件工程的目的是什么?

正确答案:

第1问:回答以下任意一个均算正确:

① 软件工程是开发、运行、维护和修复软件的系统方法,是一门工程学科,即采用工程的概念、原理、技术和方法来开发和维护软件。

② 软件工程是把系统的、 有序的、 可量化的方法应用到软件的开发、 运营、和维护上的过程。

第二问答案:

通过本课程的学习,使学生系统地掌握软件开发理论、技术和方法,使用正确的工程方法开发出成本低、可靠性好并在设备上能高效运行的软件,为今后从事软件开发、测试和维护工作打下坚实的基础。

答案解析:

见第1章课件1.3节、或教材的1.3节

【简答题】6. 简述软件开发的基本策略,为什么要进行软件优化?

正确答案:

软件复用:把复用的思想用于软件开发,称为软件复用。采用复用思想可简化软件开发过程,提高软件质量,并降低总的开发工作量与维护代价。

分而治之:俗语“分而治之、各个击破”,降低系统的复杂性

软件优化与折中:不断改进软件中的算法、数据结构和程序组织,实现整体质量的最优。

为了让软件跑的快起来,提高开发速度,提高软件质量必须对开发好的软件系统进行优化。

答案解析:

见第1章课件第38页、或教材1.4.2节

【简答题】7. 什么是软件生命周期?软件生命周期主要包括哪些阶段?怎样划分阶段?

正确答案:

1、软件生命周期又称作软件生存周期、系统开发生命周期,是指从提出开发软件产品开始,直到软件报废为止的全过程。

2、主要包括软件定义、开发和运行三个阶段,每个阶段又可进—步划分成若干个子阶段。

3、划分方法:

定义阶段:是对软件进行一个初步的分析,确定软件要完成的总目标、制定软件开发计划、完成软件的可行性分析,并确切回答系统要解决的问题是什么?

开发阶段:设计和实现在前一个时期定义的软件,主要体现为系统设计(总体设计、详细设计)和系统实现。

运行阶段:测试校验、交付与维护阶段的主要任务是使开发出的软件持久地满足用户的需要,直到寿命终止。

通常,一个阶段的工作要在前一个阶段工作完成并审查通过之后,才能够开始进行。而这一阶段的工作也恰恰是为了能够延续并具体实现前一个阶段所提出的方案。

知识点: 第1章 软件工程学概论

答案解析:

见课件或教材的第1章第1.5节

【简答题】9. 常用的软件开发模型有几个?都有什么特点?说明每种模型的适用范围?

正确答案:

常见的软件工程模型有:瀑布模型、快速原型模型、演化模型、螺旋模型、喷泉模型等。

瀑布模型:文档驱动。适合在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。

快速原型模型:原型驱动。用户时刻参与,便于交流,比较适合大型的、复杂的软件系统。

演化模型:分阶段迭代开发。演化模型的特点是通过逐步迭代弄清软件需求,而建立软件系统,在一定程度上减少了软件开发活动的盲目性。其适合场合为需求没有或者难以完整定义的软件,注意与原型模型之间的区别。

螺旋模型:风险+原型驱动。主要用于大型软件的开发。

喷泉模型:用例驱动、迭代开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

答案解析:

见课件或教材的1.6节

第2章作业 【简答题】1.问题定义的任务和主要工作?(10.0分)

正确答案:

软件项目的问题定义内容包括:

1)问题的背景、开发系统的现状。弄清楚准备开发的软件使用背景,开发系统现处于什么状态,为什么要开发它。

2)开发的理由和条件、开发系统的问题要求。

3)总体要求、问题的性质、类型范围。

4)要实现的目标、功能规模、实现目标的方案。

5)开发的条件、环境要求等。

以上内容都写到问题定义报告(或称系统定义报告)中,以供可行性分析阶段使用。

答案解析:

见教材2.1节、或课件第4页

【简答题】3.某航空公司拟开发一个机票预订系统。将旅客的信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入到系统中,系统为旅客安排航班,打印取票通知和票务账单,旅客可在航线的前一天凭取票通知和账单交款取票。系统校对无误后打印出机票为旅客。请写出问题定义,分析该系统的可行性。(20.0分)

正确答案:

业务背景:

机票预订系统业务简单、比较容易实现。主要目的是向机场的服务器传递数据。当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。当顾客向售票员定票时,终端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。

采用的关键技术:

本项目可利用现有的成熟的B/S、C/S原理,客户端的程序是建立在Windows系统上以第4代高级编程语言为开发软件的应用程序,服务器端采用 windows或Linux 为操作系统的工作站,是采用Oracle 8、MySQL等数据库系统的数据库服务程序。

决定可行性的主要因素:

成本/效益分析结果,效益 〉成本。

技术可行,现有技术可完全承担开发任务。

操作可行,软件能被原有工作人员快速接受。

可行性的要求:

主要功能:为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服务质量和服务效率

性能要求:机场提供的信息必须及时的反映在旅游局的工作平台上。售票系统的定单必须无差错的存储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。

输出要求:数据完整,详实。

输出要求:简捷,快速,实时。

安全与保密要求:服务器的管理员享有对机场航班信息库及机票信息库和定票信息库的管理与修改。售票员只享有对订票信息库的部分修改(写入与读出)。

完成期限:预计六个月。

目标可行性:

系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。

答案解析:

理解业务背景,系统采用的关键技术、可行性分析的几个方面,理解后即可回答出

【简答题】4.需求分析的基本任务是什么?简述软件系统需求的内涵?(10.0分)

正确答案:

软件系统的需求分为用户需求和系统需求两类。软件需求阶段的任务就是要将客户等提出的用户需求转换为系统需求。

用户需求是用自然语言加图的形式给出的、关于系统需要提供哪些服务以及系统操作受到哪些约束的声明。用户需求术语是来表达高层的概要需求,通常只描述系统的外部行为,而不涉及系统内部的特性。系统需求详细地给出系统将要提供的服务以及系统所受到的约束,对系统的需求文档的描述应该是精确的。它可能成为系统买方和软件开发者之间合同的重要内容。系统需求常常分为功能需求和非功能需求。

答案解析:

见教材或课件的2.3节

【简答题】5.系统流程图与数据流程图有什么区别?(10.0分)

正确答案:

系统流程图的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。它表达了数据在系统各部件之间流动的情况,不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。

主要区别是:系统流程图表达的是信息在系统中各个部件之间流动的情况;程序流程图表达的是对信息进行加工处理的控制过程。

答案解析:

见教材与课件的2.6节

【简答题】8.假设有一个某高校的学生管理系统中有3个实体:班级、学生、教师。1个班级有多名学生组成,每名教师管理1个班级,每名学生可以学多名教师的课程,每名教师可以教多名学生。其中:班级由班号、班级名称、专业等信息组成,学生由学号、姓名、性别、所在班级等信息组成,教师由教工号、姓名、所在院系、联系方式等信息组成。请根据业务描述画出班级、学生和教师的实体-联系(E-R)图。(25.0分)

正确答案:

从题意来看:

业务中有3个实体:班级(班号、班级名称、专业)、学生(学号、姓名、性别、所在班级)、教师(教工号、姓名、所在院系、联系方式);

有3个联系:

班级和学生之间是一对多(1:n)的组成联系

班级和教师之间是一对一(1:1)的管理联系

学生和教师之间是多对多(n:m)的教与学的联系。

根据上述分析,班级、学生和教师的实体-联系(E-R)图如下所示:

答案解析:

见教材或课件的2.8节、或数据库原理教材。重点是要理解实体与实体之间的业务关系,是一对一、一对多、还是多对多的关系?此环节非常重要,注意班级、学生、教师三个实体的属性必须给出来

【简答题】9.学校图书馆借阅系统有以下功能:

(1)借书:根据读者的借书证查阅读书档案,若借书数目没有超过规定数目,可办理借阅手续(修改库存记录及读者档案),超过规定数目者不予借阅。对于第一次借阅者则直接办理借阅手续。

(2)还书:根据读者书中的条形码,修改库存记录及读者档案,若借阅时间超过规定期限就要罚款。

请对以上问题,画出分层数据流图。(25.0分)

正确答案:

第一种比较粗略的答案:

第0层:

第1层:

借书:

还书:

第二种比较具体的答案:

顶层:

第0层:

第1层:

借书处理:

还书处理:

答案解析:

仔细阅读题目,理解其业务处理流程及步骤,找出业务实体。根据数据流图DFD的四个组成部分,首先划出系统的顶层数据流图,然后再根据业务的处理过程再分别画出每个业务处理过程的数据流图DFD

第3章作业 【简答题】1. 系统设计包括哪两个阶段?总体设计的主要任务是什么?(20.0分)

正确答案:

①为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:

l 结构设计:确定程序由哪些模块组成,以及这些模块之间的关系;

l 过程设计:确定每个模块的处理过程。

其中,结构设计是总体设计阶段的任务,过程设计是详细设计阶段(通过对结构设计内容进行细化,得到软件的详细的数据结构和算法)的任务。

②总体设计的主要任务是:设计软件的结构——也即确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系(如何组成?如何调用?)。

答案解析:

见课件或课件的3.1节

【简答题】3. 什么是模块化?模块设计的准则?(20.0分)

正确答案:

①模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,既相对独立,又相互联系,把这些模块集成起来构成一个整体,可以完成软件系统所要求的功能。模块化是解决软件复杂问题的一种手段。对于一个复杂的大型软件系统,应该将它适当分解,即把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。

②模块设计准则:

改进软件结构提高模块独立性

模块规模应该适中

深度、宽度、扇出和扇入都应适当

模块的作用域应该在控制域之内

力争降低模块接口的复杂程度

设计单入口、单出口的模块

模块功能应该可以预测

软件包应满足设计约束和可移植性

答案解析:

见教材3.2节、或课件第47-56页

【简答题】5. 衡量模块独立性的两个标准是什么?它们各表示什么含义?(20.0分)

正确答案:

①模块的独立性一般采用耦合和内聚这两个定性的技术指标进行度量。

②耦合用来反映模块之间互相连接的紧密程度,模块之间的连接越紧密,联系越多,耦合性就越高——即模块之间的耦合性。

内聚用来反映模块内部各个元素彼此结合的紧密程度,一个模块内部各个元素之间结合越紧密,则它的内聚性就越高——即模块自身的内聚性。

因此,为了使模块具有较强的独立性,要求模块是高内聚、低耦合。

答案解析:

见教材第66页、或课件第30页和第46页

【简答题】8. 如何设计软件系统结构?(10.0分)

正确答案:

从细化后的DFD出发,映射数据流是建立软件结构的一个系统化的途径。具体表现为:

①需求分析阶段,信息流是一个关键考虑,通常用DFD描绘信息在系统中加工和流动的情况。

②任何软件系统都可以用DFD表示,所以映射数据流的方法可以设计任何软件的结构。

③把DFD中的信息流映射成软件结构时,信息流的类型决定了映射的方法——变换流和事务流。

答案解析:

见教材第3.4节、或课件第69页

【简答题】欲开发一个图书馆图书管理系统,功能需求描述如下:

1)读者可以查询图书信息以及查询借阅信息;

2)读者可以通过系统预约所需的图书;

3)图书馆工作人员利用该系统完成读者的借书、还书业务。其中还书时还可以进行续借和罚款等业务处理;

4)图书馆工作人员可以对图书信息、读者信息等进行维护;

5)对于到期的图书,系统会自动向读者发送催还信息;

6)管理员会定期进行读者管理、图书管理、系统备份等系统维护工作。

请根据上述功能需求描述,请利用“层次图”手工画出“图书管理系统”的软件总体功能结构图。(30.0分)

正确答案:

答案解析:

熟悉掌握第3章3.3节的内容

第4章作业 【简答题】2.详细设计的主要任务?(10.0分)

正确答案:

软件详细设计的目标是对目标系统做出精确的设计描述,其主要任务包括:

l 模块的程序算法设计。

l 模块内的数据结构设计。

l 模块接口设计。

l 模块测试用例设计。

l 编写详细设计说明书。

l 详细设计评审。

答案解析:

见教材第85页,或课件第2页

【简答题】4.简述人机界面设计的黄金规则?(10.0分)

正确答案:

l 置用户操作于控制之下:不要强迫用户进入不必要的、或不希望的动作,并提供灵活的交互;允许用户交互,可以被中断和撤消。

l 减少用户的记忆负担:减少对短期记忆的要求;建立有意义的缺省值;定义直觉性的捷径;界面的视觉布局应该基于真实世界。

l 保持界面一致:允许用户将当前任务放入有意义的环境中;保持应用系统界面的一致性;如果用户已经习惯了某种交互模式,除非有不得已的理由,否则不要改变,以免导致混淆。

这些黄金规则实际构成了一系列用户界面设计原则的基础,这些原则可以指导软件设计的重要方面。

答案解析:

见教材4.2节,或课件第15页

【简答题】6.详细设计的描述工具应具备什么功能?(10.0分)

正确答案:

表达过程规格说明的工具叫做详细设计工具,也称程序算法设计工具。它可以分为三类:图形工具(如程序流程图),表格工具(如判定表),语言工具(如PDL过程设计语言)。无论采用哪类工具,都需要对设计进行清晰、无歧义的描述,应表明控制流程、系统功能、数据结构等方面的细节,以便在系统实现阶段能根据详细设计的描述直接编程。

答案解析:

见教材4.3节、或课件4.3节

【简答题】8.某旅行社根据旅游淡季、旺季及是否团体订票,确定旅游票价的折扣率。具体规定是:人数在20人以上的属于团体,20人以下的为散客。每年4月到5月、7月到8月、10月为旅游旺季,其余为旅游淡季。旅游旺季团体票优惠5%,散客不优惠。旅游淡季团体票优惠30%,散客优惠20%。用判定表和判定树表示旅游订票的优惠规定。(30.0分)

正确答案:

旅游价格优惠条件有2个:旅游旺季或旅游淡季,团体游客或散客都是游客。游客的区分条件是是否团体?价格有4个:不优惠、优惠5%、优惠20%、优惠30%。

判定表如下:

判定树如下:

答案解析:

理解业务,找出所有条件,参考教材4.3.2节所讲内容

【简答题】9.需要从1000 以内将能够被7 整除的数查询出来,并计算出这些数的和。试分别使用程序流程图、N-S 图、PAD 图和PDL 伪码,设计该程序问题的算法。然后使用McCabe 方法对所设计的算法的复杂度进行估算。(40.0分)

正确答案:

①程序流程图:

②N-S图:

③PAD图:

④PDL伪码:

定义变量:i=7、S=0 DO WHILE i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3