软件工程期末总复习题_第1页
软件工程期末总复习题_第2页
软件工程期末总复习题_第3页
软件工程期末总复习题_第4页
软件工程期末总复习题_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(建筑工程管理)期末总复

习题(软件工程)

期末总复习题

2009-06-10

[-]判断题(在括号中回答Y或N)

L软件工程的作用,主要是告诉你怎么写文档。(N)

2.参加ACM程序设计比赛时,选手"只写代码行不写注解行”这一事实,确实

说明了注解行不重要,在源程序中可有可无。(N)

3.在软件项目开发的后期,为了加快开发进度,可以多增加几个开发人员。(N)

4.在软件项目开发的早期,为了加快开发进度,可以多增加几个开发人员。(Y)

5.规范化的概要设计文档比需求分析文档更重要,因为有了概要设计文档就可

以进行详细设计。(N)

6.规范的详细设计文档比源程序更重要,因为有了文档就可以写出源程序。(Y)

7.模块间的耦合越强,则表明模块里面的内聚性越强。(N)

8.模块的内聚越强,则表明模块之间的耦合越弱。(Y)

9.CMM是CMMI的祖先,CMMI是CMM的后续。(Y)

10.IS09000是IS09001的祖先,IS09001是IS09000的后续。(Y)

1L软件配置管理就等于软件版本管理。(N)

12.软件版本管理是软件配置管理的研究课题。(Y)

13.敏捷开发模型就等于结对编程。(N)

14.敏捷开发模型就是快速原型法。(N)

15.面向元数据的开发方法就是传统意义下的Jackson方法。(N)

16.面向过程的开发方法就是结构化方法。(Y)

17.数据流图DFD就等于PAD图。(N)

18.数据流图DFD就等于程序设计流程图。(N)

19."接口和实现分离"是软件设计原理之一。(Y)

20."单入口和单出口”是程序设计原则之一。(Y)

21.程序测试不仅能证明错误的存在,也能证明错误的不存在。(N)

22.编译系统不认识、也不编译源程序中的注解行这一事实,确实说明了注解行不

重要,在源程序中可有可无。(N)

23.若两个实体之间存在多对多的关系,则应该将第三个实体插入其中,使原来的

一个多对多关系变为现在的两个一对多关系,这里的第三个实体,实际上是一个

复杂的关系,也是笛卡尔积的子集。(Y)

24.质量来源于过程,过程需要改进,改进是无止境的,这就是CMMI精神。(Y)

25.测试只能发现程序中的错误,不能发现文档中的问题。(N)

26.敏捷模型是轻载模型,CMMI模型是重载模型。(Y)

27.高内聚低耦合是软件设计原理或原则之一。(Y)

28.软件测试的目的是改正软件中的错误。(N)应该是发现软件中的错误

29.同行评审会议中的同行专家,一般都是从公司外面聘请的。(N)

30.软件策划应该在需求分析之前。(N)

31.需求分析就是分析元数据与中间数据的关系。(N)太片面

32.信息系统需求分析主要是分析元数据与中间数据的关系。(Y)

33.项目经理的主要职责就是进行数据库设计。(N)

34.编码阶段结束后,测试经理就应该立即着手编写测试计划。(N)

35.软件设计就是数据库设计。(N)

40.软件实现就是编程序。(N)

41.软件实现主要是编程序。(Y)

42.CMMI就是解决项目管理的工作规范化问题。(N)

43.制定软件测试计划,一项重要工作是要将用户需求分解为测试需求,然后再将

测试需求转化为测试用例。(Y)

44.软件测试与软件调试是一回事。(N)

45①.渐增式测试是逐个把未经过测试的模块组装到已经过测试的模块上去,进

行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完

毕。(Y)

45②.面向对象设计是运用类的思想,把分析阶段得到的需求转变成符合成本和

质量要求的、抽象的系统实现方案的过程。或者说,面向对象设计就是用面向对

象观点建立求解域模型的过程。(Y)

46.结构化设计(SD)是面向数据流的设计,它是以需求分析阶段产生的数据

流图DFD为基础,按一定的步骤映射成为系统的软件结构。(Y)

47.信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数

据),对于不需要这些信息的其它模块来说,是不能访问的。(Y)

48.抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特征

而暂不考虑它的细节,不考虑其它非本质的因素。(Y)

49.路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径。(Y)

50.判定/条件覆盖是指设计足够的测试用例,使得判定表达式中的每个条件的

所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一

次。(Y)

51.条件组合覆盖是指设计足够的测试用例,使的每个判定表达式中条件的各种

可能的值的组合都至多出现一次,条件组合覆盖是比较强的覆盖标准。(Y)

52.条件覆盖是指设计足够的测试用例,使得判定表达式中每个条件的各种可能

的值至多出现一次。满足条件覆盖并不一定满足判定覆盖。(Y)

53.软件工程是为了克服软件危机。(Y)

54.软件工程是完全克服了软件危机。(N)太绝对

【二】名词解释

1.元数据

——元数据是关于数据的数据,组织数据的数据。如数据库概念设计中的实体名和属性名,数

据库物理设计中的表名和字段名等都是元数据。

2.软彳牛工作产品(注:软件工作产品和’15.软件产品’的异同•软件产品是最后一个阶段的软件

工作产品。)

——软件工作产品是指开发过程中每个阶段的文档、数据和程序,即每个开发阶段的输出制品。

3.评审与审计

——评审是对软件工作产品而言的,它针对软件工作产品的开会(评审)或汇签(评审)活动,

是一次集体行为。

——审计是复查软件活动的程序是否遵守规则,是否合法。它本身是审计员的一次个人行为。

4.不符合项

——不符合项是指没有满足要求的项。

5.黑盒测试

——黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,"黑盒"就是只知道被测试软

件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和数据结构,对测试人员来说是

不可见的,主要关注被测试软件的功能实现。

6.白盒测试

——白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试(GlassBoxTesting)、透明盒测

试(ClearBoxTesting\结构化测试(StructuredTesting\开放盒测试(OpenBoxTesting)、

基于代码的测试(Code-BasedTesting)等等。

7.项目P.326

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

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

8.项目管理P.326

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

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

或(项目管理是指"在软件项目管理活动中,运用专门的知识、技能、工具和方法,使项目能够

如期或提前实现。")

9.客户化

——客户化是指按照客户的实际情况,对软件产品的功能、性能、接口做适当的改动。

10.初始化

——初始化是指按照客户的实际情况,对软件产品的代码表(又称数据字典)进行初始化,即

将客户的各种信息编码录入到相应的代码表中。

11.CMM与CMMI

——CMM是指"能力成熟度模型",是对于软件组织在定义、实施、度量、控制和改善其软件

过程的实践中各个发展阶段的描述。(即评估软件能力与成熟度等级的一套标准)

-------CMMI的全称为:CapabilityMaturityModellntegration,即能力成熟度模型集成。CMMI

是CMM模型的最新版本。(-CMMI是CMM的继承与发展,CMM只适用于软件企业,CMMI

适合于所有的IT企业)

12.KPA与PA

——关键过程域(KPA,KeyProcessArea),它指出了企业需要集中力量改进的软件过程。同时,

也指明了为了要达到该能力成熟度等级所需要解决的具体问题。

-----项目管理员(PA,ProjectAdministrator)o

13.敏捷模型或敏捷方法

——敏捷方法是在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品的方

法。其特点是对软件生产率的高度重视,主要适用于需求模糊或快速变化下的、小型项目组的开

发。

14.软件

——软件的定义:软件=程序+数据+文档。现在有一种新提法正在引起关注,这种提法是:

软件=知识+程序+数据+文档。

15.软件产品

——软件产品是指不局限于特定业务领域、能被广大用户直接使用的软件系统(或软件产品是

指软件开发与测试工作已经完工、并且可投入市场销售的软件产品),如操作系统、编译系统、

工具系统、通用财务系统等。

16.可行性分析与软件立项(P.63)

——可行性分析是世界上普遍采用的一种研究工程项目是否可行的科学。它通过各种有效的方

法,对工程项目进行分析,从技术、经济、财务等方面加以评价,最终给投资决策者提供是否选

择该项目进行投资的依据。可行性分析是立项的前提,立项是可行性分析的结果。对于软件企业,

一般不叫项目可行性分析而叫立项,只有在学校、机关、科研所等单位,才叫项目可行性分析。

17.软件生存周期

——软件生存周期是指软件的使用寿命,即生产周期加上使用周期。

18.CASE工具

-----CASE(ComputerAided(orAssisted)SoftwareEngineering计算机辅助软件工程。CASE

是能够提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的,并可以加快

开发速度才是高应用软件生产率并保证应用软件的可靠品质的工具。

19.集成测试

・集成测试是指检测此前测试过的单个模块或组件,是否能完好地融入系统,与其他模块或

组件正确地一起运行。

20.结构化维护P.257

——软件产品或软件项目有完善的文档,并且文档与程序代码互相匹配,两者完全一致。对这

种软件产品或软件项目的维护称为结构化维护。

21.SQAR308

-----软件质量保证(SQA,SoftwareQuaIityAssuranee)是一套有计划、有系统的用于向管理

层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用的方法。

22.客户与用户

——客户是软件企业合同的签约方,是软件产品的销售对象。客户是顾客的一部分。

——用户是软件产品的最终使用者,用户是客户的一部分。

23.软件质量

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

24.软件测试V模型P.222

——软件测试V模型是由开发阶段和测试阶段构成的最典型的测试模型。开发阶段先从定义软

件需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后形成程序代码;测

试阶段是在代码编写完成以后,先做单元测试开始,然后是集成测试、系统测试和验收测试。

25.顾客、客户和用户

——顾客的范围比"客户”的范围更广泛一些,它包括潜在的客户。

——客户是软件企业合同的签约方,是软件产品的销售对象。客户是顾客的一部分。

——用户是软件产品的最终使用者,用户是客户的一部分。

26.软件配置项

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

27.软件功能、性能和接口

□,其表现形式是源代码。

28.软件过程

——所谓软件过程,就是根据选定的生存周期模型,规定软件的开发阶段,及每一阶段的工作

步骤和文档标准等内容。

29.软件里程碑和基线P.67

——里程碑是一个标记,之需要经过内部评审。一个里程碑是一个检查点,但不一定是基线。

——基线是软件工作产品,它是经内部和外部评审过的,并且是下一阶段工作的基础。一根基

线是一个里程碑或一个检查点。

30.信息系统

——利用计算机网络技术、数字通信技术与数据库技术实现信息采集和处理的系统,称为当代

信息系统。

31.集成测试

——集成测试是指检测此前测试过的单个模块或组件,是否能完好地融入系统,与其他模块或

组件正确地一起运行。

32.Bug

Bug是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出现

的错误、漏洞。

33.E—R图

-------E-R图也即实体-联系图(EntityRelationshipDiagram),提供了表示实体型、属性和联系的

方法,用来描述现实世界的概念模型。

34.概念数据模型

-----概念数据模型(CDM)也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理

论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的

概念级设计。

概念数据模型CDM,就是数据库的逻辑设计,即E-R图。

35.物理数据模型

——物理数据模型(PDM)就是数据库的物理设计,即物理表。

36.原型模型

——以某个软件原型为参照模型的开发方法,叫做原型法。

37.UML

——UML是一种面向对象的图形化的建模语言,主要用于软件的分析与设计

38.RUP

-----统一软件开发过程(RUP,RationalUnifiedProcess)又称为统一软件过程,是一个面向

对象且基于网络的程序开发方法论。

[=]简答题

1.软件工程中的理论、方法、标准、规范,主要来自于哪里?即:软件工程的源

头或基础是什么?

【答】软件工程中的理论、方法、标准、规范,主要来自于IT企业软件研发的工作思

路与步骤以及面向工程实践案例。

信息产业的核心是芯片与软件,软件工程是软件开发、生产、服务和管理的科学。所以可以

说软件工程是以信息产业的飞速发展为源头或基础的。

2.软件开发文档包括哪些具体文档?

【答】开发文档包括《目标程序》、《源程序》、《详细设计说明书》、《概要设计说明书》、

《需求规格说明书》、《用户需求报告》、《软件合同》。

3.软件管理文档包括哪些具体文档?

【答】管理文档包括《项目开发计划书》、《测试计划》、《测试报告》、《工作日报》、《会

议记录》、《开发进度报告》、《开发总结报告》,其中《开发进度报告》又分为《开发进度周

报》和《开发进度月报》。

4.请详细解释软件的定义和程序的定义。

【答】软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不

仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业

积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开

发过程中的分析、设计、实现、测试、维护文档、管理文档。

现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。

程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为:

面向过程的程序=算法+数据结构

面向对象的程序=对象+信息

面向构件的程序=构件+构架。

5.”四种开发方法"和"五个面向实施理论”的提法对吗?为什么?

【答】"四种开发方法"和"五个面向实施理论”的提法对,并且既精彩又实用。

首先,"四种开发方法"是指"面向过程的方法、面向对象的方法、面向数据的方法、

形式化方法",面向过程的方法来源于面向过程的程序设计,面向对象的方法来源于面向对

象的程序设计,面向数据的方法就是面向元数据的方法,它来源于关系数据库程序设计,形

式化方法来源于离散数学中的集合运算和逻辑运算。四种方法各适用于不同的场合,各有优

缺点,互相促进,构成一个开发方法论的多极化世界。

其次,”五个面向实施理论"是指"面向流程分析、面向数据设计、面向对象实现、面

向功能测试、面向过程管理",它是在综合"四种开发方法"各自的优点之后提出的软件工

程实施理论,是对前者的继承与发展。

6.”图书馆信息系统”的开发选用什么模型合适?为什么?

【答】"图书馆信息系统”的开发选用瀑布模型比较合适。因为瀑布模型开发阶段清晰,

便于评审、审记、跟踪、管理和控制,而且"图书馆信息系统”在一定程度上符合瀑布模型

的条件:

(1)它在开发时间内需求没有变化或很少变化。

(2)分析设计人员对应用领域很熟悉。

(3)低风险项目。

(4)用户使用环境比较稳定。

(5)用户提出需求以外,很少参与开发工作。

7."精品课程网站”的开发选用什么模型合适?为什么?

【答】"精品课程网站”的开发选用原型模型比较合适。因为现在“精品课程网站”比

较普及,很容易找到一个可以事先给客户展示的产品原型,让客户试用,在使用中收集客户

意见,根据意见立刻修改原型。原型模型开发速度快,用户意见反馈实时,有利于开发商在

短时间内推广并实施多个客户,而且"精品课程网站"在一定程度上符合原型模型的条件:

Q)已有产品/产品原型,只需客户化的项目。

(2)简单而熟悉的行业或领域。

(3)有快速原型开发工具。

(4)进行产品移植或升级。

8.什么叫风险分析?技能风险和技术风险有何区别?

【答】这里的风险分析是指软件立项过程中对产品开发、销售等可能出现的风险进行

分析。分析方法就是将一个大风险化解好多个小风险,然后一个个克服小风险。

技术风险是指采用新技术的风险程度。技能风险是指项目组成员掌握新技术的风险程

度。二者的区别在于一个是说新技术(如新的开发工具,新的设计思想)本身的风险,一个

是说人员要掌握这种新技术的风险。

9.为什么需求分析特别重要、又特别难?P.66

【答】需求分析特别重要,是因为:

(1)许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,

使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测

试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样

致使设计、编码、测试无法顺利进行。

(2)需求分析的输出文档是《用户需求报告》,它既是软件生存周期中的第一个里程碑,

又是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,是三者共同工作的基础,

是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。

(3)需求分析要占用整个软件开发时间或工作量的30%左右。

(4)需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进

行发散式的传播。

根据以上四项原因,IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人

员去作项目需求。正因为如此,"系统分析员”才是软件行业中的最高技术职称。

需求分析特别难,是因为:

(1)用户需求具有动态性,即需求的不稳定性:在整个软件生存周期内,应用软件的

需求会随着时间的进展而有所变化,个别用户甚至会朝三暮四地变化;

(2)用户需求具有模糊性,即需求的不准确性:由于用户的素质不是很高,业务流程

不很规范,所以需求表达不很清楚也不够明确。

(3)开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担

责任;

(4)中国的国有企业正处于变动期(体制改革与企业重组),中国的民营企业正处于成

长期(发展壮大与不完全成熟)„而处于变动期和成长期的企业需求是不成熟、不稳定和不

规范的,这就给信息系统的需求分析增加了难度系数。

10.需求分析为什么是面向流程的?

【答】系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的

流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最

具有代表性。因为在计算机网络系统内,一切流程都表现为数据流,或者说是数据流在不同

方向的投影。而流程是动态的、实时的。所以说,需求分析是面向流程的。

11.软件概要设计与软件详细设有什么联系与区别?

【答】《概要设计说明书》,一是要覆盖《需求规格说明书》的全部内容,二是要作为指

导详细设计的依据。它注重框架上的设计,它是软件系统的总体结构设计,全局数据库(包

括数据结构)设计,外部接口设计,功能部件分配设计,部件之间的内部接口设计,它要覆

盖需求规格说明书中的功能点列表,性能点列表,借口列表。

《详细设计说明书》,一是要覆盖概要设计说明书的全部内容,二是要作为指导程序设计的

依据,它注重微观上和框架内的设计,它是各子系统的公用部件实现设计,专用部件实现设

计,存储过程实现设计,触发器实现设计,外部接口实现设计,部门角色授权设计,其他详

细设计等。

两者的设计者不同,在一般情况下,《概要设计说明书》是由系统设计师负责,《详细设

计说明书》则由高级程序员负责。

12.软件企业为什么要对员工进行培训?怎么进行培训?

【答】

P320内部培训、外部培训

13.什么叫软件发布?软件发布要做哪些准备工作?P.252

【答】软件发布是指将软件产品投入市场,并得到回报的一个过程。

软件发布前的准备工作:

(1)编写培训教材;

(2)产品包装设计;

(3)产品母盘制作;

(4)产品光盘刻录;

⑸软件资料印刷;

(6)销售人员培训;

(7)发布产品检验;

(8)发布产品交付;

(9)确定发布方式。

14.怎样理解“优秀的项目经理主要是干出来的,不是学出来的;是带出来的,

不是教出来的”?

【答】一个人要成长为一名合格的项目经理主要不是靠学,而是靠干,当然学也很重

要。只学不干,是绝对出不来项目经理的。光干不学,有可能会出现的情况是:其能力本来

可以做一个大项目经理,但现在只能做一个小项目经理,因为他只是一个经验主义者,缺乏

理论指导,有些问题的认识可能上不去,所以不能成为大器。总之,项目经理必须通过干才

能成熟起来,只要通过学才能提高起来,"干"字当头,学在其中,干学并用,互相促进,

这就是项目经理成长的道路。

15.请用树型结构图来表示软件工程研究的主要内容与方法.

【答】

16.为什么中国人实施CMMI有做秀嫌疑,而印度人一般没有做秀嫌疑?

CMMI的全称为:CapabilityMaturityModellntegration,即能力成熟度模型集成。

CMM/CMMI仅仅是一个体系,一个框架,他仅仅从过程和产品上对开发行为进行规范,而

不是给你提供了完整的方法。在这个框架下面,你可以选用最适合自己的过程,最有效的开

发技术。至于什么过程和什么方法,并不是最重要的。CMM/CMMI仅仅表示你往生产好的

软件走出了重要的一步,但并不是全部。CMM/CMMI本身是一套非常有价值的过程模型,

但简单的将其图腾化却是不正确的。

印度人能够把软件整体结构把握得很好,能够完成大型复杂的软件,能够形成相当好的设计

与实现文档,能够在国际外包市场上占据很大比例。而中国人整天在那里琢磨着的是数据结

构、算法花样和界面花招,到最后只能成为Code高手,而不是一个庞大团队。这些高手虽

然对某些特定的开发工具非常精通,比如.net和J2EE开发平台。但就是不能按质、按量、

按时把一个大型软件稳妥而完整地开发出来。

招聘印度人,给应聘者出了一份与国内差不多的试卷,有基础概念和编程题目。等到他们完

成后,我们这些中国的自认高手惊呆了!他们的编程题目简直像是抄袭的!程序结构、注释、

变量命名就不说了吧,全部都是极其类似!反观中国的牛人和高手,每个人都有自己的一套。

到了新的岗位,先把前任的程序贬损一通,然后自己再开发更多的问题代码来代替它。我们

公司统计,一个软件中有4个以上版本,每个人都觉得别人做得差,自己再搞一套。中国人,

就是这个样子,还会辩解说:"我们这样是创新"。其实软件的发展,早就走过了求伯君(20

世纪90年代的编程开才、WPS的发明人、现任金山软件股份有限公司董事长兼总裁)那个

编码英雄的年代,程序员已经是个坐办公室的蓝领了。你具备拧好一个螺丝钉的能力就可以

了,因为Code是最低级的事情了。所以说中国人实施CMMI更多的时候有作秀的嫌疑。

软件公司需要的软件人才,主要是系统需求分析、系统架构设计、系统测试、过程改进

与过程管理、程度编码的人才,即应用型人才!难怪国内一些博士生不适应在企业工作,软

件公司将他们轰走的事常有发生。

这揭示出我们与与印度软件企业的差距!差距不仅仅在于软件公司的规模,而在于软件

人员的职业素质与道德规范!

究其原因,在于软件组织内部的CMM/CMMI管理水平。印度人做CMM/CMMI是真

正做给自己用的,即自己的软件组织过程改进。中国人做CMM/CMMI有时是做给别人看

的,比如在招标或投标中装装门面,在广告中壮壮声势,而不是专门为了实现自己的软件组

织过程改进!

(以上大家可以自行册[减但是体现比较印度和中国的语句还是写进试卷里)

此上为小山整合观点,如果有不同意见或是瞧不上小山本人查找,请不要将这些写在你

的试卷上,因为对谁都是种煎熬,谢谢合作,预祝大家好成绩。

17.软件设计要遵守哪些原理或原则?P.119

【答】⑴抽象;⑵分解与模块化;⑶低耦合高内聚;(4)封装;⑸接口和实现分离。

18.详细设计有哪些描述工具?P.123

【答】面向过程详细设计的描述工具有:(1)流程图;(2)N-S图;(3)程序设计语言;(4)

决策表。

面向数据详细设计的描述工具主要有:Q)概念数据模型(CDM);(2)物理数据模型

(PDM);(3)存储过程。

面向对象详细设计的描述工具主要有:(1)类图;(2)顺序图;(3)状态图;⑷部件图;(5)

部署图。

19.需求分析有哪些描述工具?

【答】需求分析描述的工具包括数据流图、业务流程图、用况图、时序图、用户交互

图、数据模型图和功能需求列表、性能需求列表、接口需求列表、界面需求列表等。

20.请各举一例,说明①面向过程、②面向元数据、③面向对象的编程代表语言

各是什么语言?

【答】

①-----Pascal,BISIC.C语言等

(2)Oracle、Sybase等

(3)Java、C++等

21.请各举一例,说明①面向过程、②面向元数据、③面向对象的编程方法,各

用在什么地方?

【答】

@——在军事上的实时跟踪监控系统中有很好的应用。如我方侦察卫星发射后其飞行轨迹

的捕获、测量、跟踪和预报导弹防御系统中敌方导弹发射后飞行轨迹的捕获、测量、跟

踪和预报,其软件系统都是采用面向过程的方法设计和实现的;

②——适合数据层(数据库服务器)设计与实现。在电子商务中的应用。网站后台数据库服

务器上的数据处理和数据传输,其软件都是利用面向数据的方法设计与实现的;

(3)——在两层结构(C/S)的客户层上,在三层结构(B/A/S)的表示层和业务逻辑层上,进行

详细设计和编程实现时,要采用面向对象的方法。在电子商务中的应用有:网站前台界

面的制作,信息的发布和处理,用户在网上浏览和录入信息等应用软件都是利用面向对

象的方法设计与实现的。

22.软件工程中有哪几种不同的数据字典?

【答】主要有一下四种数据字典:

(1)数据流图中的数据字典:是对数据流图DFD的补充。用数据字典说明每个数据流的

组成、每个数据文件的内容以及每个数据项的定义等;

(2)数据库中的数据字典:就是数据库中的元数据,例如表名、字段名、索引名、主键名

等;

(3)数据库管理系统中的系统数据字典:它分为系统数据字典和用户数据字典两部分,用

这些字典来管理数据库;

(4)信息系统用户初始化中的用户数据字典:就是一些科目代码、单位代码等等。

23.你怎么用Checkout-Edit-Checkin”对配置管理中的软件开发库进行

具体操作?

【答】"Checkout—Edit—Checkin",这是配置管理工具的基本操作,这种操作是对3

个库而言的,对每一个库中的内容进行操作(比如增、册U、改),要先将操作内容从库中取

出,放入内存缓冲区,这一动作叫做"Checkout"。当操作(Edit)完成后,又要将本次操

作的内容放入相应的库中,这一动作叫做"Checkin"。值得注意的是,每次Checkout后,

相应库中原来的内容仍然保留着。每次Checkin后,也不会覆盖原来的内容。这就自动保存

了可供追踪的轨迹。

以"Checkout-Edit-Checkin"操作为基础,以版本控制为中心、进行软件配置项的标识、

跟踪与管理的电子工具,就是配置管理工具。

程序员只能在软件开发库上作"Checkout—Edit—Checkin"操作。

【四】应用题

1.如果要成为一位优秀的程序员,你认为要具备什么素质?

【答】

⑴团队协作精神的训练和要求;

(2)数据结构分析与设计能力的训练和要求;

(3)文档习惯的训练和要求;

(4)规范化的代码编写能力训练和要求;

(5)复用性能力的训练和要求;

(6)写构件能力的训练和要求;

⑺测试习惯的训练和要求;

(8)学习和总结能的训练和要求;

2.如果你是软件公司的专职配置管理员,你将怎样开展公司的软件配置工作?

【答】P.301

Q)与项目经理一起,识别出项目的所有基线,并标识出这些基线及其所属的配置项,再

根据有关规范和规程制定配置管理计划;

(2)在配置管理服务器上建立配置管理库,作为配置管理的工作仓库,并对仓库进行管理

和维护;

(3)配置项变更控制。它包括变更申请、评审和批准、实行变更、测试变更对其他配置项

的影响、变更验证和入库;

(4)基线变更控制。工作程序与配置项变更控制相同;

⑸最终软件版本产品生成的控制。最终软件版本产品由软件基线库中的配置项组装而

成,在配置组装之前,必须冻结该产品的所有配置项。生成之后,将此产品入库到软件产品

库,并对其实行冻结;

(6)对配置项、基线、软件版本产品进行跟踪和审计,并编制配置管理活动报告,供相关

组和个人阅读;

(7)定期或事件驱动,对软件开发人员进行配置管理知识培训;

(8)配置管理工具的安装,配置管理服务器的日常维护。

3.如果你是软件公司的专职软件质量保证员,你将怎样管理公司的软件项目或

软件产品的质量?

【答】

(1)事先的预防措施:制订软件过程开发规范和软件产品质量标准,对软件开发和管理人

员进行这方面知识和技能的定向培训(规范是对行为的约束、标准是对产品的约束、规程是对

操作的约束);事中的跟踪监控措施:按照CMM/CMMI或IS09000的过程管理思想,对软

件过程和软件产品的质量控制提供可视性管理;事后的纠错措施:对软件工作产品和软件产

品加强评审和检测。评审是在宏观上框住您,在微观上挑剔您,找出不符合项。检测是为了

发现Bug,改正错误。

(2)从4个方面来改进软件质量:力图从编程语言上实现突破;力图从CASE工具上实现

突破;力图从软件过程管上实现突破;力图从测试与纠错上实现突破。先后出现了各种测试

方法、工具和纠错手段。

(3)管理人员还需要做到:行为规范化,报告制度化,报表统一化,数据标准化,信息网

络化,管理可视化,错世即时化。

(4)最后还需要建立"五报一例制度",即日报表,周报表,月报表,里程碑报表,重大

事件报表和例会制度。

4.如果你是软件公司的软件分析师,你将怎样进行需求分析?

【答】

系统分析师应对用户进行需求分析培训I;用户应参加业务需求分析的全过程;向用户发

放需求调查表格;召开需求调研会;深入到重点岗位了解需求;必要时参加实际的业务

工作;边分析边整理文档,边征求修改意见;定期向用户中的操作层、管理层、决策层

分别汇报,演示目标系统的流程、功能、接口及界面调度需求。

1)面向流程分析;

2)找出元数据:

元数据是组织数据的数据,元数据就是信息系统中实体名及其属性名的集合;

3)找出中间数据:

中间数据蕴藏在信息系统的输出报表中,报表名称及其内部的数据项名称,一

般就是中间数据;

4)找出元数据与中间数据之间的关系;

5)找出单据中的流程:

a)该单据的上游是什么?

b)同一个单据内部的数据项之间,也存在一个先后次序的问题?

c)该单据的下游是什么?

6)历史上存在三种需求分析方法:面向功能分析,面向对象分析,面向数据分析;

7)分析与设计要同时考虑:

因为许多问题在分析"目标系统是什么”的时候发现不了,到了设计时才会暴

露出来。分析与设计同时考虑,也符合迭代模型的思想,即:复杂的需求是个需求迭

代的过程。

8)需求分析艺术:

a)需求分析师双打项目。宏观上和微观上都要以流程为主,不能偏听偏信。

b)决策层提出宏观上的统计、查询、决策需求,管理层提出业务管理和作业控制

需求,操作层提出录入、修改、提交、处理、打印、界面、传输、通信、时间

与速度等方面的操作需求。

9)提取需求技术:

①会谈、②场景、③原型、④实地观察

10)提取对象、属性和方法的技术

a)对象在哪里?属性在哪里?方法在哪里?

11)实时系统需求分析法

汇报两三次,知道客户确认位置,同时要与客户交朋友。

5.如果你是软件公司的软件设计师,你将怎样进行软件架构设计?

【答】

首先要进行架构建模:

1)捕获早期的设计决策;

2)捕获软件运行环境;

3)为底层实现提供限制条件;

4)为开发团队的结构组成提供依据;

5)设计系统满足可靠性、可维护性、其他性能等;

6)方便开发团队间的交流;

软件架构设计要包含以下几个方面:

1)软件系统中包含了哪些子系统/部件;

2)每个子系统/部件都完成了哪些功能;

3)子系统/部件对外提供或使用外部的哪些接口;

4)子系统/部件间的依赖关系。以及对实现和测试的影响;

5)系统式如何部署的;

6.如果你是软件公司的主程序员,你将怎样进行软件详细设计?

【答】

1)基本任务是怎样具体地实现这个系统。主要任务是设计出程序的“蓝图",供程序

员日后根据这个蓝图编写出实际的程序代码。

2)基本步骤是:确定模块如何实现;编写详细设计说明书;制定单元测试计划;评审

详细设计。

3)对于B/S的系统,"面向数据方法用在数据库服务器层次上系统的设计与实现,面

向对象方法用在除数据库服务层次之外的其他层上的系统的设计与实现,面向过程

方法用在其他两种方法本身内部函数的设计与实现"。

4)在实施的过程中,在宏观上仍然要遵守“五个面向”的实施理论,即:"面向流程

分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理"。

7.如果你是项目经理,你怎么用4种不同的方法,对软件产品的规模进行量化估

计?

【答】

1)希腊古都法:在没有历史数据的情况下,这种方式适用于评定过去和将来。这个技

术要求有多种软件相关经验人的参与,互相说服对方。希腊古都法的步骤如下:

a)协调人向各专家提供项目规格和估计报表

b)协调人召集小组会,各专家讨论与规模相关的因素

c)各专家匿名填写迭代表格

d)协调人整理出一个估计总结,以迭代表的形式返回专家

e)协调人召集小组会,讨论较大的估计差异

f)专家复查估计,总结并在迭代表上提交另一个匿名估计

g)重复d)-f),直到达到最低估计和最高估计一致。

2)类比法:适合评估一些历史项目在应用领域、环境和复杂度的相似项目,通过新项

目与历史项目的比较得到规模估计。其基本步骤如下:

a)整理出项目功能列表和实现每个功能的代码行

b)标识出每个功能列表与历史项目的相同点与不同点,特别要注意劣势项目做得

不够的地方

c)通过步骤a\b)得出各个功能的估计值

d)产生规模估计

3)功能点估计法:是在需求分析阶段基于系统功能的一种规模估计方法。通常步骤如

下:

a)计算输入、输出、查询、主控文件和接口需求的数目

b)将这些数据进行加权乘

c)估计者根据对复杂度的判读,总数可以用+25%、。或-25%调整

4)无礼估计法:对各个项目活动的完成时间,按三种不同情况估计:一个产品的期望

规模,一个最低可能估计,一个最高可能估计。用这三个估计来得到一个产品期望

规模和标准偏差的物理估计。

8.如果你是项目经理,你怎么管理一个由七名成员组成的软件团队?

一抓需求获取与确认;

二抓计划制定与执行;

三抓团队分工与协作;

四抓后勤供应与保障;

五抓产品测试与交付;

六抓开发标准与规范;

七抓员工考核与奖励。

9.如果你是软件实施经理,你怎么组织公司软件的产品实施工作?

【答】

软件工程的覆盖范围包括了售前、售中、售后三个阶段的工作。

1)售前工程师/产品形象代表工作:工作职责为制定投标书,讲解投标书,主持

技术谈判,参与合同签约,制订初步的实施计划。

2)实施工程师:工作职责为产品安装调试,产品的客户化,用户培训,产品的验

收交付。在产品发布之前,对其进行培训I,使之掌握该产品的功能、性能、接

口,熟悉产品运行的软硬件环境,熟练安装调试系统,不但要会初始化系统,

还会客户化系统。

a)对于不需要客户化的软件产品,实施工程师将光盘上的软件产品,安装到

用户系统上即可。如果用户需要培训I,用用户指南的教材进行定期培训。

b)对于只需要少量客户化的产品,实施工程师首先要进行调查和需求分析,

在与客户达成完全一致的书面需求修改意见且经过评审和批准之后,再对

软件的产品文档和程序进行修改和调试。同时还要保证文档和程序的一致

性。

c)对于需要重新做业务流程再造和需求规格定义的软件产品,实施工程师的

职责相当于项目经理,或者需要成立项目组,指定项目经理,运用原形法

重新做业务流程规范和需求规格定义,在此过程中要与用户进行互动,以

确保开发出来的产品与用户需求的一致性。

4)维护工程师:工作职责为产品日常维护,客户信息反馈。

10.如果你是软件维护经理,你怎么开展公司的软件维护工作?

【答】

1)软件维护的工作程序为:维护的需求分析、维护的设计、修改程序代码、维护后的测试、

维护后的试运行、维护后的正式运行、对维护过程的评审和审计。

2)其流程为:分类整理用户意见、提出维护申请、评审、审计、批准维护申请、修改需求

文档、需求维护文档评审、修改设计文档、设计维护文档评审、修改源程序、回归测试、

修改软件产品版本号、交付用户运行、手机反馈意见,准备新一轮维护。

3)维护管理文档:

①用户意见反馈表、②用户意见分类整理表、③维护申请单、④维护文档评审报告、

⑤产品缺陷统计表、⑥功能扩充统计表、⑦未答复问题汇总表、⑧未验证问题汇总

表、⑨已修改问题汇总表、⑩已验证问题汇总表、Qi)维护费用统计表。

11.如果要你组织软件组织的CMMI实施,你怎样开展这项工作?

【答】

1)进行CMMI基本知识的培训。

a)对所有员工进行基本的软件工程和CMMI知识培训;

b)对CMMI的各个工作组的有关人员,提供专业领域知识等方面的培训;

c)在每次开发过程中,还要对项目组成进行软件过称方面的培训;

2)成立CMMI的工作小组

a)软件工程过程组SEPG(组织过程焦点)

b)软件工程组SWEG

c)系统测试组STG

d)软件项目跟踪与监督组SPTO

e)软件配置管理组SCMG

f)软件质量保证组SQAG

g)评估领导组或评估成员团队ATM(AssessmentTeamMember)

3)建立软件组织的CMMI文档体系

①软件组织文档、②关键过程域文档、③软件项目文档

4)进行内部模拟评审

a)软件组织自己内部成员,严格、认真地按照CMMI规范评估过程,对自己的

软件过程进行评审,找出其中的强项和弱项,并进行修改;

b)在全国范围内,由有关软件工程和CMMI专家组成一个专门的“内部评审"

机构,负责指导协调实施CMMI的活动,推进活动的深入展开,对国内软件

组织CMMI评估进行"预先评估"。

5)确定CMMI正式评估的工作步骤

6)进行正式评估

评估过程包括员工培训(企业的高层领导也要参加)、与选定的项目经理等人

座谈、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写

评估报告等,评估结果由主任评估师签字生效。

7)根据评估结果改进软件过程

12.在现实生活中,请你举两个实际例子(不一定是软件开发的例子),说明原型

模型与迭代模型的具体应用?

【答】

原型模型

"精品课程网站"的开发选用原型模型比较合适。因为现在“精品课程网站"比较普及,很

容易找到一个可以事先给客户展示的产品原型,让客户试用,在使用中收集客户意见,根据

意见立刻修改原型。原型模型开发速度快,用户意见反馈实时,有利于开发商在短时间内推

广并实施多个客户

迭代模型

1)基于模糊聚类循环迭代模型的心脏病预测方法:该方法考虑了病症与疾病的模糊关系和

关联程度,先用模型迭代得到满足精度的指标权重向量,然后再迭代确定样本最终所属的

类别,其优点是整个过程不受参数的影响,避免了主观权重对分类结果的影响.

2)水库洪水调度系统的模糊循环迭代模型:多目标水库洪水调度目标的权重确定一直是实

际防洪调度中的难点,针对过去单一考虑主观权重或客观权重的多目标决策模式的缺

陷,通过引入权重折衷系数的概念,提出了兼顾主观决策与客观决策统一的模糊循环迭

代模型,可以同时得到方案优属度和目标权重。由于模型同时考虑了决策者意图和方案

本身属性,使方案排序结果更为合理适用,将其应用于水库洪水调度方案的评价中,实

例表明,该模型科学、实用。

13.请你举两个实际例子,说明数据模型设计中“列变行"方法怎么样具体应用?

【答】

【例子1]学生成绩管理例子

1)"列变行"之前的表结构如下:

学生成绩单

学号姓名性别电话地址课程1成绩1...课程成绩

3030

0501张京女英语85...

先来分析下"列变行"前表结构设计中的缺点。由于每个大学生四年中可能要学习30门左

右的课程,因此设计了存在30门课程的名称和期末成绩。这个设计存在两个缺点:其一,

在四年级前,若没有修完30门课程,这种设计浪费了不少存储空间;其二,到四年级时,

个别学生可能选修了双学位,这种设计使得表结构不够用,需要进行改动,增加存储空间。

2)"列变行"之后的表结构如下:

学生花名册

学号姓名性别电话地址

0501张京女

学生成绩单

学号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论