在线留言 注册 登录
热门搜索:形考答案免费答案奥鹏答案

福建师范大学《软件工程》期末复习题

Time2024-02-04Hits浏览量: 143
添加QQ : 103092222或微信: xyzlfx100获取更多答案

一、 单项选择题

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.逻辑关系

8.        进行需求分析可使用多种工具,但   是不适用的。

A.数据流图(DFD)    B.判定表     C.PAD     D.数据字典

9.        下列声明中   是正确的。

A.软件测试可能发现软件中的所有错误,但不能证明软件没有错误。

B.软件测试可能发现软件中的错误,但不能证明软件没有错误。

C.软件测试可能发现软件中的设计错误,但不能证明软件没有错误。

D.软件测试可能发现软件中的结构错误,但不能证明软件没有错误。

10.    在工程上软件设计一般分为概要设计和详细设计,它们之间的关系是  

A.全局和局部                  B.抽象和具体

C.总体和层次                  D.功能和结构

11.软件产品的开发主要是(   )

A.复制      B.再生产      C.拷贝      D.研制

12.作坊式小团体合作生产方式的时代是(   )时代。

A.程序设计      B.软件生产自动化      C.程序系统      D.软件工程

13.软件工程与计算机科学性质不同,软件工程着重于(   )

A.理论研究      B.原理探讨      C.建造软件系统      D.原理的理论

14.将每个模块的控制结构转换成计算机可接受的程序代码是(   )阶段的任务。

A.编码      B.需求分析      C.详细设计      D.测试

15.可行性研究的目的是决定(    )

A.开发项目      B.项目值得开发否      C.规划项目      D.维护项目

16.一个面向对象系统的体系结构通过它的成分对象和对象间的关系确定,与传统的面向数据流的结构化开发方法相比,它具有的优点是(    ) .

A.设计稳定  B.变换分析  C.事务分析  D.模块独立性

17.软件管理的主要职能包括(    )

A.人员管理、计划管理    B.标准化管理、配置管理    C.成本管理、进度管理    D.(A)(B)

18.任何项目都必须精心做好项目管理工作,最常用的计划管理工具是(    )

A.数据流程图   B.程序结构图   C.因果图   D.PERT

19. 软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(   )

A. 瀑布模型     B. 对象模型     C. 螺旋模型      D. 层次模型

20. 对于分层的DFD,父图与子图的平衡指子图的输入、输出数据流同父图相应加工的输入、输出数据流(     )

A.必须一致     B.数目必须相等   C.名字必须相同    D.数目必须不等

21. 软件需求分析阶段的工作,可以分为四个方面:对问题的识别.分析与综合.编写需求分析文档以及(   )

A. 软件的总结   B. 需求分析评审   C. 阶段性报告   D. 以上答案都不正确

22.在结构化分析方法中,用以表达系统内数据的运动情况的工具有(    )

A. 数据流图   B. 数据字典   C. 结构化语言   D. 判定表与判定树

23. 设计软件结构一般不确定(   )

A.模块的功能            B.模块的接口

C.模块内的局部数据      D.模块间的调用关系

24. 模块的独立性是由内聚性和耦合性来度量的,其中内聚性是(   )

A. 模块间的联系程度       B. 模块的功能强度

C. 信息隐蔽程度             D. 接口的复杂程度

25. Jackson方法实现从(    )导出(   )

A.数据结构     B.数据流图       C.程序结构       D.软件模块层次结构

26.下列语言中哪个语言是低级语言(    )

A. PASCAL  B. VISUAL  BASIC  C.  C++  D. 汇编语言

27.PAD图的控制执行流程为(  )

A.自下而下、从左到右        B.自上而下、循环执行

C.自上而下、从左到右        D.都不对

28.软件测试方法中的静态测试方法之一为(   

A.计算机辅助静态分析   B.黑盒法 C.路径覆盖   D.边界值分析

29.软件生命周期中所花费用最多的阶段是(   

A.详细设计         B.软件编码 

 C.软件测试        D.软件维护

30.第一个体现结构化编程思想的程序设计语言是(   

AFORTRAN语言     BPascal语言    CC语言      DPL/1语言

 

二、选择题

1.    对象是面向对象范型的( A )。每个对象可用它自己的一组( B )和它可以执行的一组( C )来表征。应用执行对象的( C )可以改变该对象的( B )。它的应用必须通过( D )的传递。可以认为,这种( D )的传递大致等价于过程性范型中的函数调用。某些语言提供了特殊功能,允许对象引用自己。若一个对象没有显式地被引用,则可让该对象( E )。

供选择的答案.

A ①基本单位        ②最小单位        ③最大单位        ④语法单位

BC  ①行为         ②功能         ③操作         ④数据                ⑤属性

D ①接口         ②消息         ③信息         ④操作                ⑤过程

E ①撤消         ②歇着         ③缺省         ④隐式引用        ⑤引用自己

 

2.    类常常被看做是一个抽象数据类型的实现,更合适的是把类看做是某种( A )的一个模型。事实上,类是单个的( B )语义单元。类的用户能够操纵的操作叫做类的( C )。类定义的其余部分给出数据定义和辅助功能定义,包括类的实现。

类的实现常常包括了其它类的实例,这些实例( D )被其它对象存取,包括同一个类的其它实例。类的实现可能还包括某些私有方法,实现它们的类可以使用,而其它任何对象都不能使用。

类,就它是一个数据值的聚合的意义上来看,与Pascal中的记录或C中的结构类似,但又有差别。类扩展了通常的记录语义,可提供各种级别的( E )。类不同于记录,因为它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。

供选择的答案.

A:①功能          ②概念                ③结构                ④数据

B:①语法          ②词法                ③语义                ④上下文环境

C:①界面          ②操作                ③行为                ④活动

D:①可自由地  ②可有控制地    ③可通过继承    ④应受保护不

E:①可移植性  ②可重复性        ③可访问性        ④继承性

 

3.    RumBaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在三个模型中。第一个模型是( A ),它的作用是描述系统的静态结构,包括构成系统的对象和类,它们的属性和操作,以及它们之间的联系。第二个模型是( B ),它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。( B )包括两种图, 即( C )和( D )。( C )描述每一类对象的行为,( D )描述发生于系统执行过程中的某一特定场景。第三个模型是( E ),它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。

供选择的答案.

ABE   数据模型  功能模型   行为模型 

                     信息模型  原型     动态模型 

                     对象模型  逻辑模型   控制模型

                     仿真模型

CD      对象图   概念模型图      状态迁移图

                    数据流程图 时序图                 事件追踪图           

控制流程图 逻辑模拟图  仿真图

                     行为图

 

4.    在面向对象软件设计过程中,应按如下要求进行类的设计.只有类的共有界面的成员才能成为使用类的操作,这就是软件设计的( A )原则。当且仅当一个操作对类的实例的用户有用时,它才是类公共界面的一个成员,这是软件设计的( B )原则。由同属一个类的操作负担存取或加工类的数据,这是软件设计的( C )原则。两个类之间的交互应当仅涉及参数表,这是软件设计的( D )原则。每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集,这是软件设计的( E )原则。

供选择的答案.

A:①过程抽象         ②功能抽象 ③信息隐蔽 ④共享性            ⑤连通性 

B:①标准调用         ②最小界面 ③高耦合     ④高效率            ⑤可读性

C:①数据抽象         ②低内聚     ③高内聚     ④低复杂度        ⑤低强度

D:①显式信息传递 ②高内聚     ③低内聚     ④相互操作性    ⑤连接性 

E:①动态联编         ②异质表     ③信息隐蔽        ④多态性            ⑤继承性

 

5.    软件的开发工作经过需求分析阶段,进入( A )以后,就开始着手解决“怎么做”的问题。常用的软件设计方法有( B )、( C )、( D )和( E )等方法。

供选择的答案:

AB  ①程序设计               ②设计阶段        ③总体设计 

④定义阶段               SD方法           SP方法

C        Jackson方法      ②瀑布法            ③快速原型法  ④回溯法

DE  LCP(Wanier)方法   ②递归法            Parnas方法

                     ④自下而上修正       ⑤逐步求精法    ⑥检测校正法

 

6. 开发软件时对提高软件开发人员工作效率至关重要的是(  A  )。软件工程中描述生存周期的瀑布模型一般包括计划、(  B  )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(  C  )(  D  )两步。

供选择的答案:

A 程序开发环境         操作系统的资源管理功能

程序人员数量          计算机的并行处理能力

B 需求分析             需求调查             可行性分析  问题定义

CD.① 方案设计 代码设计             概要设计             数据设计

运行设计             详细设计             故障处理设计     软件体系结构设计

 

7. 软件需求分析的任务不应包括(  A  )。进行需求分析可使用多种工具,但(  B  )是不适用的。在需求分析中,分析员要从用户那里解决的最重要的问题是(  C  )。需求规格说明书的内容不应当包括(  D  )。该文档在软件开发中具有重要的作用,但其作用不应当包括(  E  )

供选择的答案:

A.   问题分析             信息域分析  结构化程序设计        确定逻辑模型

B.   数据流图             判定表          PAD                 数据词典

C.   要让软件做什么               要给该软件提供哪些信息

要求软件工作效率如何   要让软件具有什么样的结构

D.   对重要功能的描述           对算法的详细过程性描述

软件确认准则                   软件的性能

E.   软件设计的依据               用户和开发人员对软件要“做什么”的共同理解

软件验收的依据               软件可行性分析的依据

 

8. 模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。

(1) 一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(  A  )的。

(2) 将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能。该模块的内聚性是(  B  )的。

(3) 模块中所有成分引用共同的数据,该模块的内聚性是(  C  )的。

(4) 模块内的某成份的输出是另一些成份的输入,该模块的内聚性是(  D  )的。

(5) 模块中所有成份结合起来完全一项任务,该模块的内聚性是(  E  )的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。

供选择的答案:

A ~ E  功能内聚             信息内聚            通信内聚            过程内聚

巧合内聚            时间内聚            逻辑内聚

 

9. 块间联系和块内联系是评价程序模块结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和接口的(  A  )等因素决定了块间联系的大小。在块内联系中,(  B  )的块内联系最强。

SD方法的总的原则是使每个模块执行(  C  )功能,模块间传送(  D  )参数,模块通过(  E  )语句调用其它模块,而且模块间传送的参数应尽量(  F  )。

此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。SD方法认为,(  G  )应该是(  H  )的子集。

供选择的答案:

A 友好性         健壮性         简单性         安全性

B 巧合内聚            功能内聚            通信内聚            信息内聚

C 一个                    多个

D 数据型         控制型         混合型

E 直接引用            标准调用            中断                    宏调用

F                

G ~ H:① 作用范围           控制范围

 

10. 软件详细设计工具可分为三类,即:图示工具、设计语言和表格工具。图示工具中,(  A  )简单而应用广泛、(  B  )表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。(  C  )可以纵横延伸,图形的空间效果好。

  D  是一种设计和描述程序的语言,它是一种面向(  E  )的语言。

供选择的答案:

A ~ C:① NS      流程图    HIPO             PAD

D C            PDL           RPOLOG            PASCAL

E          机器                数据结构   对象

 

11.集成测试也叫做(  A  )或(  B  )。通常,在(  C  )的基础上,将所有模块按照设计要求组装成为系统。子系统的集成测试特别称为(  D  ),它所做的工作是要找出子系统和系统需求规格说明之间的(  E  )。需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会(  F  ); 一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(  G  )组合起来,能否达到预期要求的(  H  );(  I  )是否有问题;单个模块的误差累积起来是否会放大。

供选择的答案:

 A ~ D.   单元测试      部件测试      组装测试

       系统测试      确认测试      联合测试

 E ~ I.   子功能          丢失              父功能           局部数据结构

       全局数据结构     不一致          一致

 

12.从供选择的答案中选出应填入下列(   )中的字句。

软件测试的目的是(  A  )。为了提高测试的效率,应该(  B  )。使用白盒测试方法时,确定测试数据应根据(  C  )和指定的覆盖标准。与设计测试数据无关的文档是(  D  )。

软件的集成测试工作最好由(  E  )承担,以提高集成测试的效果。

供选择的答案:

 A.  评价软件的质量                      发现软件的错误

找出软件中的所有错误          证明软件是正确的

 B.  随机地选取测试数据                    

取一切可能的输入数据作为测试数据

在完成编码以后制定软件的测试计划

选择发现错误的可能性大的数据作为测试数据

 C.  程序的内部逻辑                      程序的复杂程度

使用说明书                       程序的功能

 D.  该软件的设计人员                  程序的复杂程度

源程序                               项目开发计划

 E.  该软件的设计人员                  该软件开发组的负责人

该软件的编程人员                  不属于该软件开发组的软件设计人员

 

13.程序的三种基本控制结构是(  A  )。它们的共同点是(  B  )。结构化程序设计的一种基本方法是(  C  )。软件测试的目的是(  D  )。软件调试的目的是(  E  )。

供选择的答案:

 A.  过程,子程序,分程序                顺序,条件,循环

递归,堆栈,队列                        调用,返回,转移

 B.  不能嵌套使用                                只能用来写简单的程序

已经用硬件实现                            只有一个入口和一个出口

C.    筛选法         递归法         归纳法         逐步求精法

 D.  证明程序中没有错误                    发现程序中的错误

测量程序的动态特性                    检查程序中的语法错误

 E.  找出错误所在并改正之                排除存在错误的可能性

对错误性质进行分类                    统计出错的次数

 

14.软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可能(  A  )。三种可能的模块耦合是:

      B  ),例如,一个模块直接引用另一个模块中的数据。

      C  ),例如,一个模块把开关量作为参数传送给另一个模块。

      D  ),例如,一个模块通过公共数据结构把数据传送给另一个模块。

    其中,   E  )的耦合性最强。

【供选择的答案】

 A                        适中                    

 BE       公共耦合             数据耦合             逻辑耦合

              外部耦合             内容耦合             控制耦合

 

15.软件可移植性是用来衡量软件的(  A  )的重要尺度之一。为了提高软件的可移植性,应注意提高软件的(  B  )。采用(  C  )有助于提高(  B  )。为了提高可移植性,还应(  D  )。使用(  E  )语言开发的系统软件具有较好的可移植性。

供选择的答案:

 A. 通用性                效率                     质量                     人机界面

 B. 使用的方便性    简洁性               可靠性               设备独立性

 C. 优化算法            专用设备           表格驱动方式     树型文件目录

D. 有完备的文件资料          选择好的宿主计算机     减少输入输出次数

选择好的操作系统

 E. COBOL          APL             C                   SQL

 

三、判断题(打“√”或“×”)

1.    软件是计算机系统中与硬件相互依存的另一部分,它是包括代码,数据和相关算法的完整集合。

2.    软件是一种逻辑实体,而不是具体的物理实体,因而它具有逻辑性。

3.    软件工程过程通常包含软件规格说明、软件开发、软件确认和软件演进等过程活动。

4.    需求获取的目的是清楚地理解所要解决的问题和给出可行的设计方案。

5.    模型的类型主要有数学、描述和图形。

6.    若一个模块只具有单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性。

7.    软件工程的出现主要是由于计算机的发展。

8.    在结构化分析方法中,用以表达系统内数据的运动情况的工具是判定表。

9.    面向数据流的设计方法把控制结构映射成软件结构。

10.  从结构化的瀑布模型看,在它的生命周期中的八个阶段中,需求分析环节出错,对软件的影响最大。

11. 面向对象的的方法是以类作为最基本的元素,它是分析问题和解决问题的核心。( )

12. 类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。( )

13. 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系( )

14. 多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的重用性和可扩充性。( )

15. 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。( )

16. 面向对象设计的主要目标是提高生产效率,提高质量和提高可维护性。( )

17. 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。( )

18. UML 建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。 ( )

19. UML 是一种建模语言,是一种标准的表示,是一种方法。 ( )

20. 泳道是一种分组机制,它描述了状态图中对象所执行的活动。 ( )

21. 同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行。( )

22. 类图中的角色是用于描述该类在关联中所扮演的角色和职责的。 ( )

23. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。 ( )

24. 单元测试通常应该先进行人工走查,再以白盒法为主,辅以黑盒法进行动态测试。( )

25. 功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明书相同。( )

26. 白盒法是一种静态测试方法,主要用于模块测试。 ( )

27. 整体测试又称为逻辑覆盖测试,需要对系统模块的内部结构进行测试。(

28. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。( )

29. 在网状结构中任何两个模块都是平等的,没有从属关系,所以在软件开发过程中常常被使用。( )

30. 中心变换型的 DFD 图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。( )

 

四、名词解释

1.数据词典   

2.用例图  

3.内聚    

4.E-R图  

5.对象

6.模块化

7.耦合性

8.白盒测试

9.驱动模块

10.软件生命周期:

11.软件需求

12.黑盒测试

13.原型

14.增量模型

15.软件过程定义

 

五、简答题

1.        简述软件设计的目标

2.        什么是软件生存周期(生命周期),常见的有哪些生存周期模型?

3.        试分析软件成分的重用级别

4.    建立分析和设计模型的一种重要方法是UML。试问UML是一种什么样的建模方法?它如何表示一个系统? 在类的设计中需要遵循的方针是什么?三个主要的设计准则:抽象、信息隐蔽和模块化如何才能做到?

5.    逐步求精、分层过程与抽象等概念之间的相互关系如何?

6.    完成良好的软件设计应遵循哪些原则?

7.    如何理解模块独立性?用什么指标来衡量模块独立性?

8.    什么是变换流和事务流?
9.
面向对象的特征和要素?

10.说明对象、类、类结构、消息的基本概念?

11.应该根据什么准则来评价用例图?

12.应该根据什么准则来评价脚本?

13. 应该根据什么准则来评价状态图?

14.简述软件工程的七条基本原理。

15.提高可维护性的方法有哪些?

16.软件重用的效益是什么?

17. 用面向对象范型开发软件时与用结构化范型开发软件时相比较,软件的生命周期有何不同?这种差异带来了什么后果?

18.简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。

19.自顶而下渐增测试与自底而上渐增测试各有何优、缺点?

20.提高可维护性的方法有哪些?

21. 软件生命期各阶段的任务是什么?

22. 什么是软件工程?它目标和内容是什么?

23. 什么是需求分析?需求分析阶段的基本任务是什么?

24. 什么是软件危机?软件危机的表现是什么?其产生的原因是什么?

 

本试题答案仅供练习和提供解题思路使用,在正式答题时学生务必要有自己的见解和观点,不可照抄。否则按0分处理

软件工程复习题参考答案

一、单选题

1.       B

2.       D

3.       C

4.       C

5.       C

6.       D

7.       D

8.       C

9.       B

10.   B

11.   D

12.   C

13.   C

14.   A

15.   B

16.   A

17.   D

18.   D

19.   A

20.   A

21.   B

22.   B

23.   C

24.   B

25.   AC

26.   D

27.   C

28.   A

29.   D

30.   B

 

二、选择题

1. A. , B. , C. , D. , E.

2. A. , B. , C. , D. , E.

3. A. , B. , C. , D. , E.

4. A. , B. , C. , D. , E.

5. A. , B. , C. , D. , E

6. A. ,        B. ,  C. ,   D.

7. A.     B.      C.      D.      E.

8. A. ,  B. ,  C. ,  D. ,  E.

9. A. ,  B. ,  C. ,  D. ,  E. ,  F. ,  G. ,  H.

10. A. ,  B. ,  C. ,  D. ,  E.

11. A.    B.    C.    D.    E.    F.    G.    H.    I.      AB的答案可互换)

12. A.    B.    C.    D.    E.

13. A.    B.    C.    D.    E.

14. A.    B.    C.    D.    E.

15. A. ,   B. ,   C. ,   D. ,   E.

 

三、判断题

1.         ×

2.         ×

3.        

4.         ×

5.        

6.        

7.         ×

8.         ×

9.         ×

10.    

11.     ×

12.     ×

13.     ×

14.    

15.    

16.    

17.    

18.    

19.     ×

20.     ×

21.     ×

22.    

23.     ×

24.    

25.    

26.     ×

27.     ×

28.     ×

29.     ×

30.     ×

 

四、名词解释

1.数据词典:数据词典是描述数据的信息集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。

2.用例图:用例图是描述用例、参与者以及它们之间关系的图。用例图是从用户的角度来描述对信息系统的需求,分析产品的功能和行为。用例图定义和描述了系统的外部可见行为,是分析、设计直至组装测试的重要依据

3.内聚:是一个模块内部各成分之间相关联程度的度量。

4.E-R图:E-R图也称实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。

5.对象:对象是现实世界中个体或事物的抽象表示,封装了其属性及相关的操作。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作指出了该对象具有的行为并提供了对外的服务

6.模块化:是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。

7.耦合性:称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

8.白盒测试:也称结构测试或逻辑驱动测试。它是在已知程序内部结构和处理过程的前提下,通过测试来检测程序中的每条路径是否按预定要求正常运行。

9.驱动模块:是在进行单元测试是所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测试模块的主程序。

10.软件生命周期:是软件的产生知道报废的生命周期,周期内有问题定义、可行性分析、总体描述、编码、调试和测试、验收与运行、维护升级到废弃等阶段。

11.软件需求:是利益相关方对目标软件系统在功能、质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的要求或约束。

12.黑盒测试:黑盒测试也称功能测试,它是通过测试并检测每个功能是否都能正茬使用,在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。它指检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当的接受输入数据而产生正确的输出信息。

13.原型:是指模拟某种产品的原型模型。软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特征。

14.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应稳当。增量开发和增量提交可以同时使用,也可单独使用。

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

 

五、简答题

1.目标:在给定成本、进程的前提下、开发具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性、可互操作性并满足用户需要的软件产品。

2. 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。

3. 1)代码重用:a.源代码剪贴、b.源代码包含、c.继承;2)设计结果重用;3)分析结果重用

4. UML是一种可视化的、用于绘制软件蓝图的标准建模语言。可以用UML对软件系统的各种制品(包括程序、文档等)进行描述。UML虽然不是一种具体的编程语言,但是用UML描述的各种模型可以与各种编程语言直接相连。

在设计类时需要遵循的方针是:

1、信息隐蔽:通过信息隐蔽可保护类的存储表示不被其它类的实例直接存取。

2、消息限制:该类实例的用户应当只能使用界面提供的操作。

3、狭窄界面:只有对其它类的实例是必要的操作才放到界面上。

4、强内聚:模块内部各个部分之间应有较强的关系,它们不能分别标识。

5、弱耦合:一个单独模块应尽量不依赖于其它模块。

6、显式信息传递:两个类之间的交互应当仅涉及显式信息传递。

7、派生类当做派生类型:每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集。

8、抽象类:某些语言提供了一个类,用它做为继承结构的开始点,所有用户定义的类都直接或间接以这个类为基类。

为了在类的设计中做到抽象、信息隐蔽和模块化:

1、以类作为系统的基本模块单元,通过一般化―特殊化关系和整体―部分关系,搭建整个系统的类层次结构,实现数据抽象和过程抽象;

2、将数据和相关的操作封装在类内部,建立共有、私有和子类型等存取级别,将数据表示定义成为类的私有成员,实现信息隐蔽。

3、通过建立类属性(类模板),将某些有可复用要求的类设计成在数据类型上通用的可复用的软件构件,这样有助于实现模块化。

5.“自顶向下,逐步求精”是Niklaus Wirth提出的设计策略:即将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。这样的结构实际就是一个模块的分层结构,即分层的过程。在实施时,采用抽象化的方法,自顶向下,给出不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。而在较低的抽象层次上,则采用过程化的方法。在描述问题的解法时,我们可以配合使用面向问题的术语和面向现实的术语。但最后在最低的抽象层次上,我们应使用能够直接实现的方式来描述这个解法。

6.应该遵循以下原则:

1高内聚、低耦合原则。一个软件系统要有一个稳定的架构,不会随着需要的改变在发生巨大的变动。因此,高内聚、低耦合是一个软件系统设计中必须遵循的基本原则。

2. 面向抽象编程。

3. 多用组合少用继承。

4. “开-闭”原则。“开-闭”原则,即“对扩展开放,对修改关闭”,指的是在软件设计中,当对某一软件实体进行扩展时,尽量不要去修改原有的软件实体,换句话说就是在不修改原有软件实体的情况下对其进行扩展。

7. 模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

模块的独立性很重要:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。模块的独立程度可以由两个定性标准度量,分别是内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此之间互相依赖(连接)的紧密程度。

8. 变换型数据流可以划分为明显的三部分:逻辑输入、中心变换、逻辑输出。

事务流:沿传入路径进入系统,由外部形式变换位内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条执行。有这样形状的成为事务流。

9.特征:一致性、多态性、分类性、继承性。要素:共享、封装、抽象。

答:对象:是客观实体在问题域中的抽象。类:具有相似或相同性质的对象的抽象就是类。类结构:类的结构通常有一般----具体(分类结构)整体---抽象(组装结构)消息:对象之间通信的构造。

10.对象:是客观实体在问题域中的抽象。类:具有相似或相同性质的对象的抽象就是类。类结构:类的结构通常有一般----具体(分类结构)整体---抽象(组装结构)消息:对象之间通信的构造。

11.用例图从用户的观点来描述系统的功能,因此,必须包含用户关心的所有关键功能。

12.脚本必须从用户的观点来描述每个重要的功能序列,因此,脚本应该能够说明系统的一类重要功能或具体的使用方法。

13.状态图应该描绘所有可能的状态转换。图中每条弧都要有一个引起状态转换的事件。从开始结点(初态)到每个结点(中间状态),以及从每个结点到最终结点(终态),都必须有一条路径。

14.1) 用分阶段的生命周期计划严格管理;2) 坚持进行阶段评审;3) 实行严格的产品控制;4) 采用现代程序设计技术; 5) 结果应能清楚地审查; 6) 开发小组的人员应该少而精; 7) 承认不断改进软件工程实践的必要性。

15.建立明确的软件质量目标和优先级、使用提高软件质量的技术和工具、进行明确的质量保证审查、选择可维护性的程序设计语言、改进程序的文档。

16.1) 软件重用可以显著地改善软件的质量和可靠性;2) 软件重用可以极大地提高软件开发的效率;3) 节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费

17.用结构化范型开发软件时,软件的生命周期如下:

(1)陈述需求阶段;

(2)规格说明(分析)阶段;

(3)设计阶段;

(4)实现阶段;

(5)维护阶段。

用面向对象范型开发软件时,软件的生命周期为:

(1)陈述需求阶段;

(2)面向对象分析阶段;

(3)面向对象设计阶段;

(4)面向对象实现阶段;

(5)维护阶段。

用结构化范型开发软件时,规格说明(分析)阶段的主要任务是,确定软件产品应该“做什么”;而设计阶段通常划分成结构设计(即概要设计)和详细设计这样两个子阶段。在结构设计子阶段,软件工程师把产品分解成若干个模块,在详细设计子阶段再依此设计每个模块的数据结构和实现算法。

使用结构化范型开发软件时,在分析阶段和设计阶段之间有一个很大的转变:分析阶段的目的是确定产品应该“做什么”,而设计阶段的目的是确定“怎么做”,这两个阶段的工作性质明显不同。

18.软件测试要经过模块测试、子系统测试、系统测试、验收测试和平行运行5个步骤。

1) 模块测试:又称单元测试,集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。

2) 子系统测试与系统测试:把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。

3) 验收测试:确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。

4) 平行运行:把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。

19.自顶向下测试方法的主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。其主要缺点是需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。自底向上测试方法的优缺点与上述自顶向下测试方法的优缺点恰好相反。

20.建立明确的软件质量目标和优先级、使用提高软件质量的技术和工具、进行明确的质量保证审查、选择可维护性的程序设计语言、改进程序的文档。

21.软件生命期分为7个阶段:

1) 问题定义:确定要解决的问题是什么;

2) 可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性;

3) 需求分析:确定该系统必须做什么;

4) 总体设计:确定系统如何实现,包括系统设计和结构设计;

5) 详细设计:具体实现设计的系统;

6) 实现:编码和测试;

7) 运行维护:保证软件正常运行。

22.软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。

23.需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务:⑴问题识别;⑵分析与综合,导出软件的逻辑模型;⑶编写文档

24.软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

 软件危机表现在以下四个方面:

(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。

 (2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。

 (3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。

 (4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。

 造成软件危机的原因是:

 (1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。6)开发工具落后,生产率提高缓慢。

 

 

 

 

 

 

 

 

 

 

 


吐血推荐

奥鹏,国开形考,广开,电大在线,各省平台,新疆一体化,各类成人教育等学习。详情请咨询QQ : 103092222或微信: xyzlfx100

添加微信查看答案

福建师范大学《软件工程》期末复习题_学优资料分享网

添加微信二维码,了解更多学习技巧,平 台作业、毕业论文完成时间友情提醒。。

合作洽谈

诚信为本,合作共赢

欢迎各大学习中心前来治谈;有意请联系我们

推荐作业

留言板
captcha
感谢留言
我们会尽快与您联系
关闭