江苏大学软件工程期末复习题

  江苏大学软件工程复习题

一、判断题

1.软件就是程序,编写软件就是编写程序。 (F)

2.软件危机的主要表现是软件需求增加,软件价格上升。 (F)  

3.软件工程学科出现的主要原因是软件危机的出现。 (T)  

4.与计算机科学的理论研究不同,软件工程是一门原理性学科。 (F)

一、判断题

1.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。 (F)

2.原型化开发方法包括生成原型和实现原型两个步骤。 (F)  

3.软件过程改进也是软件工程的范畴 . (T)  

4.在软件开发中采用原型系统策略的主要困难是成本问题。 (F)

一、判断题

1.需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。( F  )

2.需求分析的主要目的是解决软件开发的具体方案 .  ( F  )

3.需求规格说明书描述了系统每个功能的实现 .    (  F  )

4.非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。( T  )

5.需求评审人员主要由开发人员组成,一般不包括用户 .  ( F  )

6.分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。(   F )

7.信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是 E-R图 .    (  T  )

8.用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、  完整性、 现实性和有效性。 (T)

9.需求分析是开发方的工作,用户的参与度不大。 (F)

一、判断题

1软件设计说明书是软件概要设计的主要成果。  ( F )

2.软件设计中设计复审和设计本身 一 样重要,其主要作用是避免后期付出高代价 ( T )

3. HIPO法既是需求分析方法,又是软件设计方法。 ( T )  

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

5. SD法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。 ( F )  

6.判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。 ( F )  

7.模块独立要求高 耦合 低内聚 。( F )

一、判断题

1.程序设计语言是指编程时表现出来的特点、习惯、逻辑思维等。 (F)

2.进行程序设计语言的选择时伞,首先考虑的是应用领域。  (T)

3.好程序的一个重要标准是源程序代码的逻辑简明清晰、易读易懂 。(T)  

4.软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据 。(T)  

5.测试用例由输入数据和预期的输出结果两部分组成。 (T)

6. 白 盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。 (T)  

7.软件测试的目的是证明软件是正确的。 (F)  

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

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

10.在等价分类法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。(F)

11.发现错误多的模块,残留在模块中的错误也多。(T)

一、判断题

1.代码行技术是比较简单的定量估算软件规模的方法。 (T)

2.功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模 .(T)  

3.常用的制定进度计划的工具主要有Word和Ex C el两种。 (F)

一、   判断题

1.   民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策。(T)

2.   主程序员组的两个特性是专业化和层次性。(T)

3.   现代程序员祖中,技术组长既对技术工作负责,又负责非技术事务。(F)

一、判断题

1.风险有两个显著特点:一个是不确定性,另一个是损失 .(T)

2.回避风险是指:风险倘若发生,就接受后果。 (F)  

3.软件质量保证的措施主要有,基于非执行的测试(也称为复审)、基于执行的测试和程 序 正确性证明。 (T)

一、判断题

1.总体上说,软件工程文档可以分为用户文档、开发文档和管理文档3类。 (T)

2.文档是影响软件可维护性的决定因素。( T  )

3.适应性维护是在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些 要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。( F  )

4. 进行软件维护活动时,直接修改程序,无需修改文档。(F)

5. 软件生命周期最后一个阶段是书写软件文档。(F)

二、选择题

 1.在下列选项中,(D  )不是软件的特征。

 A.系统性与复制性     B.可靠性与一致性

  C .抽象性与智能性     D.有形性与可控性

 2.软件危机的主要原因是(D    )。

 A.软件工具落后       B.软件生产能力不足

  C .对软件的认识不够       D.软件本身的特点及开发方法

 3.下列说法中正确的是(  B)。

A.  20世纪50年代提出了软件工程概念

B. 20世纪60年代提出了软件工程概念

C .  20世纪70年代出现了客户机/服务器技术

D.  20世纪80年代软件工程学科达到成熟

4.  ( C )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

 A.软件生命周期   B.软件测试    C .软件工程   D.软件过程

 5.在下列选项中,(  A)不属于软件 工 程学科所要研究的基本内容。

 A.软件工程材料     B.软件工程目标

  C .软件工程原理     D.软件工程过程

 6.软件工程的三要素是( C  )。

 A.技术、方法和工具     B方法、对象和类

  C .方法、工具和过程     D.过程、模型和方法

7.用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具通常也称为(D  )工具。

 A.  C AD   B.  C AI    C .  C AM   D.  C ASE

二、选择题

 1.软件生命周期模型不包括( B  )。

 A.瀑布模型   B用例模型    C .增量模型 D.螺旋模型

 2.包含风险分析的软件工程模型是(   D )。

 A.喷泉模型     B.瀑布模型    C .增量模型 D.螺旋模型

 3.软件过程是( C  )。

 A.特定的开发模型     B一种软件求解的计算逻辑

  C .软件开发活动的集合     D.软件生命周期模型

4.软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、 (  D  )维护 等几个阶段。

 A.产品发布   B.版本更新     C .可行性分析   D.测试

5.软件开发的瀑布模型,一般都将开发过程划分为: 分析、设计、编码和测试等阶段,一般 认为可能占用人员最多的阶段是( C  ) 。

 A.分析阶段     B.设计阶段 C .编码阶段D.测试阶段

 6.增量模型本质上是一种( C  ) 。  

A.线性顺序模型 B.整体开发模型

C .非整体开发模型D.螺旋模型

7.螺旋模型综合了( B  )的优点并增加了风险分析。

 A.增量模型和喷泉模型   B.瀑布模型和演化模型

  C .演化模型和喷泉模型   D.原型模型和喷泉模型

8. C MM模型将软件过程的成熟度分为5个等级。在(   B )使用定量分析来不断地改进和管理软件过程 .

A.管理级  B.优化级  C .定义级 D.可重复级

二、选择题

 1.需求工程的主要目的是( C  )。

 A.系统开发的具体方案       B.进一步确定用户的需求

  C .解决系统是"做什么的问题"     D.解决系统是"如何做的问题-

 2.需求分析的主要方法有(   C )。

 A.形式化分析方法  B. PAD图描述    C .结构化分析方法   D.程序流程图

 3. SA法的主要描述手段有(B  )。

 A.系统流程图和模块图         B. DFD图、数据词典、加工说明

  C .软件结构图、加工说明         D.功能结构图、加工说明

 4.画分层DFD图的基本原则有(   C  )。

 A.数据守恒原则         B.分解的可靠性原则

  C .子、父图平衡的原则         D.数据流封闭的原则

 5.在E-R模型中,包含以下基本成分(D  )。

 A.数据、对象、实体     B控制、关系、对象

  C .实体、关系、控制     D.实体、属性、关系

 6.在下面的叙述中哪一个不是软件需求分析的任务?( C  )

 A.问题分解B.可靠性与安全性要求    C .结构化程序设计

 7.需求规格说明书的作用不应包括(D  )。

A.软件设计的依据

B.用户与开发人员对软件要做什么的共同理解

C .软件验收的依据

D.软件可行性研究的依据

 8.软件需求规格说明书的内容不应该包括(  B)。

 A.对重要功能的描述   B对算法的详细过程描述

  C 对数据的要求   D.软件的性能

9.软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合

 编写需求分析文档以及( C  )。

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

 10.下述任务中,不属于软件工程需求分析阶段的是(D  )。

 A.分析软件系统的数据要求   B.确定软件系统的功能需求

  C .确定软件系统的性能要求   D.确定软件系统的运行平台

 11进行需求分析可使用多种工具,但(B  )是不适用的。

 A.数据流图  B. PAD图   C .状态转换图 D.数据词典

 12.在需求分析之前有必要进行(B  )工作。

 A.程序设计   B.可行性分析    C . ER分析   D. 2NF分析

 l3数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( C  )。

 A.输入、输出、外部实体和加工   B.变换、加工、数据流和存储

C .加工、数据流、数据存储和外部实体   D.变换、数据存储、加工和数据流

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

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

二、选择题

1.为了提高模块的独立性,模块之间最好是( C  )。

 A.公共环境相合   B控制祸合   C .数据搞合D.特征耦合

2.在面向数据流的软件设计方法巾,一般将信息流分为(  D)。

 A.数据流和控制流   B.变换流和控制流

  C 事务流和控制流   D.变换流和事务流

3.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(A)

 A.内聚性和祸合性   B.局部化和封装化 C .抽象和信息隐藏   D.逐步求精和结构图

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

 A.模块间的联系程度   B.信息隐藏程度

  C .模块的功能强度   D.接口的复杂程度

5.当算法中需要用一个模块去计算多种条件的复杂组合,并根据这些条件完成适当的功能时,从供选择的答案中,选出合适的描述工具。(D  )

 A.程序流程图   B. N-S图   C . PAD图 D.判定表

6.面向数据流的软件设计方法可将(   C )映射成软件结构。

 A.控制结构   B.模块    C .数据流   D. 事物流

7.  Ja C kson方法根据( C  )来导出程序结构。

 A.数据流图   B.数据间的控制结构

  C .数据结构   D. IPO图

二、选择题

 1.程序语言的特性包括( B  )。

 A.习惯特性   B.算法特性    C .工程特性   D.技术特性

 2.软件实现是软件产品由概念到实体的一个关键过程,它将( A  )的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响。

 A.软件设计   B.详细设计      C .架构设计 D.总体设计

 3.成功的测试是指运行测试用例后(   A )。

 A.发现了程序错误     B.未发现程序错误  C .证明程序正确     D.改正了程序错误

 4.白盒测试法是根据程序的(   B )来设计测试用例的方法。

 A.输出数据   B.内部逻辑    C .功能 D.输入数据

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

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

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

 6.黑盒测试是从( C  )观点的测试白盒测试是从(  )观点的测试。

 A.开发人员、管理人员   B.用户、管理人员

  C .用户、开发人员   D.开发人员、用户

 7.软件测试可能发现软件中的(  )但不能证明软件( D  )。

 A.所有错误、没有错误     B.设计错误、没有错误

  C .逻辑错误、没有错误     D.错误、没有错误

 8.软件测试的目的是( D  )。

A.证明软件的正确性 B.找出软件系统中存在的所有错误

C .证明软件系统中存在错误 D .尽可能多的发现软件系统中的错误

9.使用白盒测试方法时确定测试数据应根据(  A)

A.程序的内部逻辑  B.程序的复杂度

C .程序的难易程度   D.程序的功能

 10.黑盒测试方法根据( B  )设计测试用例。

A.程序的词用规则  B.软件要完成的功能

C .模块间的逻辑关系  D.程序的数据结构

11.在软件测试中,逻辑覆盖标准主要用于( A)  

A.白盒测试方法   B.黑盒测试方法

C .灰盒测试方法   D.回归测试方法

12.集成测试的主要方法有两个,一个是 (  C  ),一个是( )。

A.白盒测试方法、黑盒测试方法   B等价划分法,边缘分析方法值

C .渐增式测试方法、非渐增式测试方法   D.因果图方法、错误推测方法

13.验收测试的任务是验证软件的( D  )。

 A.可靠性   B.正确性      C .移植性   D.有效性

14.软件测试的目的是尽可能发现软件中的错误,通常( D  )是代码编写阶段可进行的测试,它是整个测试工作的基础。

 A.集成测试   B.系统测试    C .验收测试 D.单元测试

二、选择题

1.(B  )的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。

 A.估算   B.度量    C 风险分析   D.进度安排

2. LO C 和FP是两种不同的估算技术,但两者有许多共同的特征,只是LO C 和FP技术对于分解所需要的(A  )不同。

 A.详细程度     B.分解要求    C .使用方法   D.改进过程

二、选择题

1.项目团队原来有6个成员,现在又增加了6个成员,这样沟通渠道增加了多少?(A)

A.4 .4 倍   B.2倍    C.6倍     D.6条

2 . Mantei提出了3种通用的项目组织方式:民主分权式、控制分权式、(D)

A.启发式    B.归纳式    C.总结式    D.控制集权式

二、选择题

1.下列哪项不是风险管理的过程(D  ) ?

 A.风险规划   B.风险识别      C .风险评估     D.风险收集

2.按照软件配置管理的原始指导思想,受控制的对象应是(   C )。

 A.软件过程   B.软件项目    C .软件配置项 D.软件元素

3.下列哪项不是人们常用的评价软件质量的4个因素之一( D)

 A.可移植性   B.可靠性    C .可维护性 D.易用性

二、选择题

1.在软件维护的内容中,占维护活动工作量比例最高的是( B  )。

 A.纠错性维护   B.适应性维护    C .预防性维护 D.完善性维护

2.使用软件时提出增加新功能就必须进行( C  )维护。

 A.预防性   B.适应性    C .完善性   D.纠错性

3.软件维护的副作用是指( C  )。

 A.运行时误操作     B.隐含的错误

  C .因修改软件而造成的错误     D.开发时的错误

4.软件文档是软件工程实施的重要成分。它不仅是软件开发各阶段的重要依据,而且也影响软件的(   B )。

A.可用性   B.可维护性    C .可扩展性   D.可移植性

5.影响软件可维护性的主要因素不包括(   C )。

 A.可修改性   B.可测试性   C .可用性   D.可理解性

第一章

1. 与计算机硬件相比,计算机软件有哪些特点?

软件的特点如下。

●无法直接观察计算机软件的物理形  态,只能通过观察它的实际运行情况来了解它的功能、

特性和质量等。

●人们在分析、设计、开发、测试软件产品 ,以及在软件开发项目的管理过程中,渗透了大

量的脑力劳动。

●不存在像硬件 - -样的磨 损和老化现象,但存在着缺陷维护和技术更新的问题。

●软件的开发和运行必须依赖于特定的计算机系统环境。

●具有可复用性。

3.什么是软件危机?什么原因导致了软件危机?

软件危机的现象如下。

经费超出预算,项目一再拖延。

●不重视需求,开发的软件不能满足用户的要求,项目成功率低。

●没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。

●开发工具落后,手工方式,开发效率低。所有导致软件危机的原因,都与软件本身的产品特点相关。

●软件是一一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。

●软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。

●软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。

●软件成本主要是由研发成本构成 ;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。

5.请简述软件工程研究的内容

软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。

●软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设

计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升

级等。

●常用的软件开发模型有瀑  布模型、迭代模型、增量模型和原型模型等。

●软件支持过  程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational   Rose等。

7.请简述软件工程的目标、过程和原则

目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。

●软件工程的目标 :降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。.

●实现目标的过程即完成产品加工的过程,包括 :基本过程、支持过程和组织过程。

●进行过程应遵守的原则 :原则就是过程中的轨道约束,包括:选取适宜的开发范型、采用

合适的设计方法、提供高质量的工程支持、重视开发过程的管理。

9.请简述现代软件工程与传统软件工程显著的区别和改进。

传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术为

标志。

●不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向对象的

思维方式,更加完整、自然地反映客观世界。

●采用架构技术,开发效率、产品质量得到了极大提高。

●更注重团队开发和管理,融人更多、更新的管理理念和手段,如 RUP模型、XP模型、过

程改进、能力成熟度模型、配置管理等。

第二章

1.如何理解软件生命周期的内在特征

软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件

实现、产品测试与验收、投人使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段 , 每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源分配、时间把握和项目管理上都会比较容易控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。

3.当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合适?

开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模

型适和于较复杂的系统。

5.XP是一种什么样的模型

XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。实行

XP的条件如下。

●企业具有  较高的能力成熟度,具有团队开发环境和配套的测试工具。

●软件结构是开放的 ,增量可随意整合。

●开发团队拥有  “系统隐喻”。

7.请简述软件过程

软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世

界 ",即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模 型、设计模型的逐步细化 (具体化),最终的具体结果就是计算机世界里的代码。

9.请简述CMM的作用

CMM的作用如下。

● CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达

到的程度 (如同评定职称的条件)。

● CMM是软件组织提升自身能力、走向成熟的参照系。它提供了走向成熟的阶梯目标,但

并不提供走向目标的方法。

● CMM等级的提高依靠软件过程改进。

● CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和

关键过程域不断改进自己的软件过程的作用。

11.假设你要开发一个软件,它的功能是把73624.9285开平方,所得到的结果应该是精确到小数点后四位。一旦实现并测试完后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。

对这个软件的需求很明确,实现开平方功能的算法也很成熟。因此,既无须通过原型模

型来分析需求也无须用原型模型来验证设计方案。此外, - -旦实现并测试完之后,该产品将被抛

弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。

综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。

第五章

1.在选择编程语言时,通常要考虑哪些因素?

在选择编程语言时,通常需考虑以下因素

●待开发系统的应用领域,  即项目的应用范围。

●用户的要求。

●软件开发人员的喜好和能力。

●系统的可  移植性要求。

●算法和数据结构的复杂性。

3.什么是调试?什么是测试?二者有何区别?

调试( debug )指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。

软件测试 (test) 有如下特点。

●软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。

●不仅仅是测试程序,  还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了

尽早地、尽可能多地发现并排除软件中潜在的错误。

5.请简述静态测试和动态测试的区别

按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。

静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性

及逻辑结构的正确性 ,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,

通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。

与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输人一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。

7.软件测试的目的是什么?

测试的目的如下。

●测试是一个为  了发现程序中的错误为目的的程序执行过程。

●一个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。

●成功的测试是能发现  了那些尚未发现的错误。

9.什么是白盒测试?有哪些常用的白盒测试方法?

白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要

了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。

#9.白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要 了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。

11.软件测试应该划分为几个阶段?各个阶段应重点测试的内容是什么?

软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告 5个步骤。

●单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。它是软件动

态测试的最基本的部分,也是最重要的部分之 - - ,其目的是检验软件基本组成单位的正确性。 集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

●系统测试是对已经集成好的软件  系统进行彻底的测试,以验证软件系统的正确性和性能等 满足其规约所指定的要求,检查软件的行为和输出是否正确并非是 - -项简单的任务,它被称为测 试的“先知者问题”。

●验收测试是向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统

测试的测试数据的子集。

●回归测试是在软件维护阶段 ,对软件进行修改之后进行的测试。其目的是检验对软件进行

的修改是否正确。

第十一章

1.请简述项目、项目管理、和软件项目管理

项目、项目管理和软件项目管理的概念如下。

●项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、

质量标准,以及特定的功能、性能和接口要求。

●项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进 .

度、质量、成本、资源进行管理和控制的活动。

●软件项目管理以通用的项目管理知识体系为基础,管理的对象是软件工程项目。它结合软

件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使得整个软件开发过程 (从分 析、设计、编码到测试、维护全过程 )都能在管理者的控制之下,以预定成本按期、按质的完成 软件交付用户使用。

3.请简述项目计划应该包括的内容

项目计划应该包括的内容如下。

●确定详细的项目实施范围。

●定义递交的工作成果。

●评估实施过程中主要的风险。

制定项目实施的时间计划。

成本和预算计划。

●人力资源计划等。

5.如何进行项目的时间管理

项目的时间管理首先要对项目活动进行定义,依据包括:工作分解结构、项目范围说明、

历史信息、约束条件、假定和专家评论。

在整个项目中,我们需要 - -份能清晰描述活动发生的时间和所需要的资源的计划,项目进度 安排的内容为如下。

●定义一组项目活动,并建立活动之间的相互关系。

●估算各个活动的工作量和完成任务所需要的资源。

●定义里程碑。

●分配人力和其他资源,制定进度时序。

●检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需的所有任务。

7.请简述估算的作用

计划是项目的启动入口,项目开展过程就是执行计划。而估算是制定计划的依据,因此估

算是项目开展的基础。估算的主要工作如下。

●范围估算 :搞清软件边界。

●规模估算 :定量单位采用LOC或FP。

●工作量估算 :工作量估算决定了开发团队的规模和组建,决定开发周期和进度估算。

●开发周期与进度估算 :进度估算是对整个开发周期中不同阶段的里程碑进行估算。

●人力资源估算 :在考虑各种软件开发资源时,人是最重要最优先考虑的资源。

●开发成本估算 :整个开发周期所花费的工作量产生的劳动费用。

●软硬件资源估算 :软件开发所需的硬件工具及软件工具。

9.请简述做进度计划的两种方式

做进度计划的两种方式如下。

● Gantt 图用线段标明子任务的分解;标明各个任务的计划开始时间、完成时间;标明各个

任务与参与工作的人数,各子任务间的并行和串行的关系的衔接情况。

特点 :简单、明了、直观、易于编制;以文档与评审作为开发进度的里程碑。

缺点 :无法标明多个任务之间存在的相互制约关系;无法标明关键的控制作业。

●工程网络图是用时间和节点来表示工作流程的有序、有向的网状图形。它可弥补 Gantt图

无法表达关键路径和作业之间的制约关系,并且易于调整。

第十二章

1.目前项目开发时常用的小组组织方法有哪些?

目前,项目开发时常用的小组组织方法:民主制程序员组、主程序员组和现代程序员组。

3.民主制、主程序员制各存在什么问题?

民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在一些问题。

责任不明,分工不清,大家都负责,实际上没有人负责。

主程序员制是主程序员负责制,克服了民主制的缺点,但又走到了另一个极端一只有  主程

序员负责,其他成员的积极性就被扼杀了。另外,主程序员这个位置既是一个技术岗位,也是一个管理角色,这样的位置很难找到胜任的人担任。热衷于技术的人,往往对管理不感兴趣,而具 . 有管理才能的人,大多不会是技术专家。

第十三章

1.风险识别的步骤是什么?

风险识别分为三步进行:收集资料;估计项目风险形势;识别风险。

3.请简述软件质量的定义

所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。

5.什么是配置项?什么是配置管理?

软件配置管理中的基本单元,称为软件配置项。

在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟

踪、管理,使其最终形成受控的软件版本产品,这一 -管理过程称为软件配置管理。

7.请简述软件配置管理的工作内容

配置管理的工作内容一-般包括如下的4 个方面。

①标识配置项。配置项是配置管理中的基本单元,每个配置项应该包含相应的基本配置管理

的信息。标识配置项就是要给配置项取 -一个合适的名字。

②进行配置控制。进行配置控制是配置管理的关键,包括存取控制、版本控制、变更控制和

产品发布控制等。存取控制通过配置管理中的“软件开发库 "、“软件基线库”、“软件产品库"来

实现。每个库对应着不同级别的操作权限,为团队成员授予不同的访问权利。版本控制往往使用自动的版本控制工具来实现,如 SVN。变更控制是应对软件开发过程中各种变化的机制,可以通 过建立控制点和报告与审查制度来实现。产品发布控制面向最终发布版本的软件产品,旨在保证提交给用户的软件产品版本是完整、正确和一致的。

③记录配置状态。配置状态报告记录了软件开发过程中每一次配置变更  的详细信息。记录配 置状态的目的是使配置管理的过程具有可追踪性。

④执行配置审计。配置审计是为了保证软件工作产品的一致性和完整性,从而保证最终软件

版本产品发布的正确性。

第十四章

1.为什么要进行软件维护?软件维护的作用有哪些?

软件维护是软件产品生命周期的最后-一个阶段。在产品交付并且投入使用之后,为了解决 在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。概括地说,软件维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷,改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的过程。

3.传统软件维护分为哪几大类?

传统软件维护分4类,分别是纠错性维护、适应性维护,完善性维护和预防性维护。

5.请简述结构化维护和非结构化维护

结构化维护的前提是软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹

配,两者完全一致。在这样的前提下,维护不但会比较省力,而且维护后可以用原来的测试用例进行回归测试。相反,若软件产品或软件项目只有程序而没有文档,或文档很不规范、很不齐全,对这样的

软件进行维护,则称为非结构化维护。

7.请简述面向缺陷的维护

面向缺陷维护的内容:该软件产品能够正常运行,可以满足用户的功能、性能、接口需求,

只是维护前在个别地方存在缺陷,用户不是非常满意。克服缺陷的方法是修改程序,也就是通常说的只修改程序,不修改数据结构。

9.怎样理解迭代模型RUP对软件维护的影响?

RUP的功能覆盖整个软件的开发周期,从需求分析开始,直到软件的发布、实施和维护

为止,因而它对传统意义下的维护工作产生重大影响。

RUP把软件生命周期定义为4个主要阶段:初始、细化、构造、移交。经过这4个阶段的历

程被称为一一个开发周期,自动产生一个周期内的所有文档,从而生成一 - 个软件产品。首次经历这4个阶段称为该产品的初开发周期。除非该产品的生命终止,否则它将重复初始、细化、构造和 移交这 4个阶段,从而演化为下- -代产品,这就是对旧有产品的维护,也是新产品的升级换代, 也就是开发周期的演化,也就是 RUP对软件维护工作的影响。

  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值