软件工程作业答案.docx
《软件工程作业答案.docx》由会员分享,可在线阅读,更多相关《软件工程作业答案.docx(47页珍藏版)》请在冰豆网上搜索。
![软件工程作业答案.docx](https://file1.bdocx.com/fileroot1/2022-11/25/1ca693bf-c388-479f-a468-6edccffb2b9a/1ca693bf-c388-479f-a468-6edccffb2b9a1.gif)
软件工程作业答案
软件工程作业1(第1~4章)
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型
5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。
A.需求不确定性高的B.需求确定的C.管理信息D.实时
6.下列有关软件工程的标准,属于国际标准的是(D)
A.GBB.DINC.ISOD.IEEE
7.结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流
8.软件可行性研究实质上是要进行一次(A)需求分析、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的
9.可行性研究的目的是(D)
A、分析开发系统的必要性B、确定系统建设的方案
C、分析系统风险D、确定是否值得开发系统
10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。
A、P×(1+i*n)B、P×(i+1)*nC、p×(1+i)nD、p×(i+n)
11.可行性研究是在(A)之前
A、系统开发B、测试C、试运行D、集成测试
12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
14.效率是一个性能要求,因此应当在以下哪个阶段规定?
B
A、可行性分析B、需求分析C、概要设计D、详细设计
15.需求规格说明书的作用不包括(D)
A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解
C、软件可行性研究的依据D、软件设计的依据
16.数据字典是用来定义(D)中的各个成份的具体含义的。
A、程序流程图B、功能结构图C、系统结构图D、数据流程图
17.数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。
A、SAB、SDC、SPD、SC
18.DFD中的每个加工至少有(A)。
A、一个输入流或一个输出流B、一个输入流和一个输出流
C、一个输入流D、一个输出流
19.需求分析阶段的关键任务是确定(D)
A、软件开发方法B、软件开发工具C、软件开发费D、软件系统的功能
20.在SD方法中全面指导模块划分的最重要的原则是(D)。
A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性
21.在模块的3种基本属性中,反映模块内部特性的是(C)。
A、接口B、功能C、逻辑D、状态
22.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序(D)。
A、数据结构耦合,公共耦合,控制耦合,内容耦合
B、数据耦合,控制耦合,数据结构耦合,公共耦合
C、无直接耦合,数据结构耦合,内容耦合,控制耦合
D、无直接耦合,数据耦合,控制耦合,内容耦合
23.PDL是描述处理过程(C)
A、做什么B、为什么做C、怎么做D、对谁做
24.(D)工具在软件详细设计过程中不采用。
A、判定表B、IPO图C、PDLD、DFD图
25.为高质量地开发软件项目,在软件结构设计时,必须遵循(A)原则。
A.信息隐蔽B、质量控制C、程序优化D、数据共享
26.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)
A、数据耦合B、公共耦合C、标记耦合D、内容耦合
27.详细设计与概要设计衔接的图形工具是(B)。
A、DFD图B、SC图C、PAD图D、程序流程图
28.下列几种类型中,耦合性最弱的是(D)。
A、内容型B、控制型C、公共型D、数据型
29.软件结构使用的图形工具,一般采用(C)图。
A、DFDB、PADC、SCD、ER
30.在七种偶合中,最低偶合是(D)。
A、内容偶合B、公共偶合C、数据偶合D、非直接偶合
二、简答题
1.什么是软件工程?
软件工程的目标是什么?
答:
软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。
目标:
1合理预算开发成本,付出较低的开发费用。
2实现预期的软件功能,达到较好的软件性能,满足用户的需求。
3提高软件的可维护性,降低维护费用。
4提高软件开发生产率,及时交付使用
2.指出瀑布模型中下列任务的顺序:
验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设计,系统测试,设计评审,编码,需求规格说明书。
答:
项目计划,成本估计,需求规格说明书,需求评审,概要设计,详细设计,设计评审,编码,单元测试,系统测试,验收测试
3.可行性研究报告的主要内容是什么?
答:
可行性研究主要包括以下几个部分:
(1)概述
(2)技术可行性(3)项目成熟程度(4)市场需求情况和风险分析(5)投资估算及资金筹措(6)经济与社会效益(7)综合实力和产业基础(8)项目实施进度计划(9)其它尚需要说明的必要的方面(10)结论
4.什么是需求分析?
需求分析阶段的基本任务是什么?
答:
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,“需求分析”就是确定要计算机“做什么”。
任务:
确定软件项目的目标和范围。
调查使用者的要求,分析软件必须做什么,编写需求规格说明书等它相关文档,并进行必要的需求审查。
除此之外,还包括需求变更控制,需求风险控制,需求版本控制等对需求的管理工作
5.什么是结构化分析方法?
该方法使用什么描述工具?
答:
结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。
结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止
描述工具:
1系统流程图2数据流程图3数据字典4IPO图5层次方框图6实体—关系图
7状态—变迁图
6.结构化分析方法通过哪些步骤来实现?
答:
1) 确定系统的功能要求
2) 确定系统的数据要求
3) 确定系统的操作要求和界面要求
4) 确定系统的性能要求
5) 确定系统的运行要求
6) 获得当前系统的物理模型
7) 抽象出当前系统的逻辑模型
8) 建立目标系统的逻辑模型。
9) 修正开发计划
10)如果需要则开发系统原型
7.什么是数据流图?
其作用是什么?
其中的基本符号各表示什么含义?
答:
数据流图:
简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?
其作用是什么?
它有哪些条目?
答:
数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:
数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
包括的条目:
数据流词条
数据元素词条
数据存储词条
数据加工处理词条
数据源点及终点词条
9.什么是概要设计?
有哪些基本任务?
答:
概要设计:
根据用户的需求先确定软件系统的总体结构和总的设计原则
基本的任务:
设想供选择的方案。
推荐最佳方案。
功能分解,确定软件结构。
设计软件结构。
制定测试计划。
数据设计。
书写文档。
包括总体设计规格说明书。
用户手册。
测试计划。
设计审查和复审。
10.详细设计的基本任务是什么?
有那几种描述方法?
答:
详细设计阶段的任务是要为编写程序代码设计“图纸”,由程序员按“图纸”用某种高级程序设计语言编写程序代码。
主要方法有设计程序流程图,表格设计符号以及过程设计语言。
11.什么是变换流?
什么是事物流?
答:
变换型数据流可以划分为明显的三部分:
逻辑输入,中心变换,逻辑输出
事务流的特点是数据沿某个输入路径流动,该路径将外部信息转换成事务,其中发射出多条事务处理路径的中心处理被称为中心事务
12.模块的内聚有哪几种?
模块间的耦合有哪几种?
答:
内聚分为七种类型:
巧合内聚——一个模块执行多个完全互不相关的动作,那么这个模块就有巧合内聚
逻辑内聚——当一个模块执行一系列相关的动作时,称其有逻辑内聚。
时间性内聚——当一个模块内的多个任务是与时间有关时,这个模块具有时间性内聚。
过程内聚——模块执行的若干动作之间有顺序关系。
通信内聚——模块执行的若干动作之间有顺序关系,并且所有动作是在相同的数据上执行。
信息内聚——一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码,所有的动作都作用在相同的数据结构上,这样的模块叫做信息内聚。
功能性内聚——一个模块中各个部分都是完成某一具体功能必不可少的组成部分
耦合分为七类:
内容耦合——如果一个模块直接参考另一个模块的内容,则这两个模块是内容耦合。
公共耦合——如果多个模块都访问同一个公共数据环境,则称它们是公共耦合。
外部耦合——如果两个模块都访问同一个全局简单变量而不是同一全局数据结构,而且,不是通过参数表传递该全局变量的信息,则这两个模块属于外部耦合。
控制耦合——如果模块A向模块B传递一个控制信息,则称这两个模块是控制耦合的
数据结构耦合——当一个模块调用另一个模块时传递了整个数据结构,这两个模块之间具有数据结构耦合。
数据耦合——如果两个模块传递的是数据项,则这两个模块是数据耦合。
非直接耦合——如果两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用来实现的,这就是非直接耦合。
三、应用题
1.某旅馆的电话服务如下:
可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
写出在数据字典中,电话号码的数据条目的定义(即组成)。
名称
简称
类型
长度
取值范围
分机号
Extension_Number
字符
4
7201..7299
外线市话号
Addition_Internumber
字符
9
9+[455|466|888|552]+4{数字}4
外线长话号
Addition_Extennumber
字符
12
9+[100|101|102|..|298|299|300]+[455|466|888|552]+4{数字}4
2.下面是旅客订飞机票的需求描述,试画出分层的数据流程图。
顾客将订票单交给预订系统:
(1)如果是不合法订票单,则输出无效订票信息;
(2)对合法订票单的预付款登录到一个记账文件中;(3)系统有航班目录文件,根据填写的旅行时间和目的地为顾客安排航班;(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并记录到取票单文件中。
顾客在指定日期内用取票单换取机票:
(1)系统根据取票单文件对取票单进行有效性检查,无效的输出无效取票信息;
(2)持有有效取票单的顾客在补交了剩余款后将获得机票;(3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。
订单中有订票日期、旅行日期、时间要求(上午、下午、晚上)、出发地、目的地、顾客姓名、身份证号、联系电话。
0层流程图
预定流程图
取机票流程图
3.一个简化的图书馆信息管理系统有以下功能:
(1)借书:
输入读者借书证,系统检查借书证是否有效;查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,显示信息“已经超出借书数量”,拒借;未达10本,办理借书(检查库存、修改库存信息并将读者借书信息登入借书记录)
(2)还书:
输入书号和读者号,从借书记录中读出与读者有关的记录,查阅所借日期,如果超过3个月,作罚款处理。
否则,修改库存信息与借书记录。
(3)查询:
可通过借书记录、库存信息查询读者情况、图书借阅情况及库存情况,打印各种统计表。
请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。
0层数据流程图
还书流程图
借书流程图
查询流程图
数据字典:
元素名称
名称
类型
说明
IPO1
还书处理
处理
根据书号做还书处理,违规做处罚
IPO2
有效性检查
处理
检查读者号,图书号的有效性
IPO3
借书处理
处理
按读者号,图书号进行借书处理
IPO4
查询
处理
管理员对一些基本信息进行查询
IPO5
打印报表
处理
打印查询到的信息
IPO6
处罚管理
处理
根据规则对延期给予相应的处罚
IPO7
数量检查
处理
对读者借出的数量是否符合规定进行检查
DS001
读者信息
数据存储
读者信息录入,修改,删除,保存
DS002
库存信息
数据存储
图书的基本的情况以及所有图书的整体情况
DS003
错还信息
数据存储
存储借还书信息,系统自动处理,不能人工录入
DS004
处罚信息
数据存储
存储延期的处罚信息
软件工程作业2(第5~7章)
一、选择题
1.从本质上说,面向对象是“先”确定(A)后确定执行的动作。
A.动作的主体B.属性C.关系D.方法
2.(B)是对象的静态特征。
A.方法B.属性C.关系D.操作
3.对象的(D)使对象的动态特征
A.特征B.属性C.关系D.操作
4.属于某个类的一个具体对象称为该类的(A)。
A.实例B.虚拟C.继承D.多态
5.UML是(A)。
A)一种可视化的建模语言
B)是一种可视化的程序设计语言
C)是一种过程
D)是一种方法
6.封装的的作用是(A)。
A.复用B.对象C.实例D.方法
8.面向对象分析的核心在于建立(B)模型。
A.建立正确的模型
B.识别问题域对象
C.识别对象之间的关系
D.上面所有
9.面向对象分析过程中建立的模型有(D)。
A.数据模型、功能模型、活动模型
B.对象模型、功能模型、测试模型
C.属性模型、功能模型、对象模型
D.对象模型、功能模型、动态模型
10.下列的(C)不是分析建模的目的。
A.定义可验证的软件需求
B.描述客户需求
C.开发一个简单的问题解决方案
D.建立软件设计的基础
11.下列的(C)不属于面向对象分析模型。
A.用例图
B.类图
C.实体关系图
D.顺序图
12.(A)用于描述系统中概念层次的对象。
A.分析类
B.界面类
C.实体类
D.控制类
13.在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的(A)将用例的职责分配到分析类中。
A.消息传递
B关联关系
C继承关系
D上下文关系
14.用例的实现细节不会在(B)描述。
A.用例说明
B.用例图
C.活动图
D.顺序图
15.用例的职责通常分配给(D)的对象。
A.发送消息
B.接收消息
C.发送和接收双方
D.分析类
16.组织机构图是(C)。
A.UML的一个最新图
B.类图的一种
C.用于识别角色的辅助图
D.用例图的一种
17.在图书馆系统中,假如已经构造了一个一般借书者类,后来发现图书馆的学生和教师在借书中有不同要求。
请问在面向对象设计中用(B)方法可以方便地设计这两个类?
A.信息隐藏B.继承C.动态联编D.代码复制
18.框架是一组可用于不同应用的(A)集合
A.类B.对象C.模块D.代码
19.下面哪个选项不能描述子系统之间的关系。
(D)
A.请求——服务关系B.继承关系C.依赖关系D.数据关系
20.每个子系统的接口上定义了若干(B),体现了子系统的功能。
A.说明B.操作C.属性D.关系
21.通常将具有共性的非功能要求设计在(B),以减少重新开发的工作量。
A.接口层B.中间层C.最低层D.最高层
22.每个用例至少应该有一个(C),它通常没有属性而只有方法,只是起协调和控制作用。
A.接口类B.实体类C.控制类D.界面类
23.类有三种类型即(A)。
A.边界类、实体类、控制类
B.实体类、数据类、界面类
C.控制类、实体类、数据类
D.界面类、控制类、公共类
24.下面那个选项不是正确的面向对象设计思想。
(C)
A.对接口进行设计
B.发现变化并且封装它
C.先继承后组合
D.先组合后继承
25.定义类的属性类型时尽量使用已有的类型,太多的自定义类型会降低系统的(A)指标。
A.可维护性B.安全性C.开发效率D.可移植性
二、简答题
1.举例说明类和对象的关系。
答:
学生可作为一个类---学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。
2.面向对象分析的关键步骤有哪些?
应建立哪几个模型?
答:
关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。
3.什么是实体类、边界类和控制类?
为什么将分析类划分成这三种类型?
答:
(1)实体类保存要存入永久存储体的信息。
实体类通常在事件流或交互图中,是对用户最有意义的类。
边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。
控制类负责协调其他类的工作。
每个用例中至少应该有一个控制类,它控制用况中的事件顺序。
(2)分为三种类型是因为它们各自的功能不同。
界面类——描述系统与角色之间的接口。
控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。
实体类——为需要长久保存的信息进行建模的类。
4.UML中有哪几类个视图,它们的作用分别是什么?
答:
(1)用例视图(Use-Caseview)
用例视图用于描述系统的功能集。
它是从系统外部以用户角度,对系统做的抽象表示。
用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。
用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。
其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。
(2)逻辑视图(Logicalview)
如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。
系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。
(3)组件视图(Componentview)
组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。
组件视图由组件图实现,主要供开发者和管理者使用。
(4)并发视图(ConcurrencyView)
并发视图用来描述系统的动态和行为特征。
并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。
除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。
(5)配置视图(DeploymentView)
配置视图体现了系统的实现环境,反映系统的物理架构。
配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。
5.顺序图在分析阶段的作用?
答:
顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序
6.活动图在分析阶段的作用?
答:
活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。
活动图特别适合描述工作流和并行处理过程。
具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。
7.比较结构化设计和面向对象设计区别?
答:
结构化设计:
系统被划分成多个模块,这些模块被组织成一个树型结构。
根就是主模块,叶子是最低级的功能模块。
这棵树也表示调用结构:
每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。
顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。
在这个体系结构中越靠上层位置,概念的抽象层次就越高。
但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。
也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。
面向对象设计:
上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽象。
这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。
8.什么是框架,它与“设计”有什么关系?
答:
框架是一组可用于不同应用的类的集合。
框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类,当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成框架来对类的设计进行构架和优化。
9.系统的物理构架中应该包括哪些信息?
答:
用UML的配置图描述系统的物理构架,然后将需求分析阶段捕获的系统功能分配到这些物理节点上。
包括的信息为节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。
三、应用题
1.一个多媒体商店系统包含一个由媒体文件构成的数据库,有两类媒体文件:
图像文件和声音文件。
每个媒体文件都有名称和唯一的编码,而且文件包含作者信息和格式信息,声音文件还包含声音文件的时长(以秒为单位)和作者的信息。
假设每个媒体文件可以由唯一的编码所识别,系统要提供以下功能:
1)媒体库中可以添加新的特别媒体文件。
2)通过给定的文件编码查找需要的媒体文件。
3)从媒体库中删除指定的媒体文件。
4)给出媒体库中媒体文件的数量。
考虑类imageFile和audioFile应该具有哪些恰当的属性和方法
答:
imageFile类的属性有:
Name(文件名称),Code(编码),AuthorInfo(