-软件工程习题答案参考

合集下载

《软件工程》练习题及其答案

《软件工程》练习题及其答案

《软件工程》练习题及其答案
一、单选题(每题10分,共50分)
1、程序控制一般分为( B )、分支、循环三种基本结构。

A.分块
B.顺序
C.选择
D.循环
2、在解决人工智能上使用最多的有非常强的表处理功能的函数程序设计语言是( D)。

A. Prolog
B.Snobol
C. COBOL
D. Lisp
3、以谓词逻辑为基础的,核心是事实、规划和推理机制的实用逻辑程序设计语言是( C )。

A.Java
B.Lisp
C. Prolog
D.Smalltalk
4、在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的(D)。

A.技巧生
B.保密性
C.一致性
D.可理解性
5、项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是(D)。

A.系统软件
B.数据处理与数据库应用
C.实时处理
D.UNIX操作系统
二、填空题(每空5分,共50分)
1、编码是将详细设计阶段得的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。

2、近年来,推出了许多面向对象的语言,如 C++ 、 Java 等。

3、提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调整。

4、效率是一个性能要求,目标在需求分析给出。

5、追求效率建立在不损害程序可读性,或可靠性基础上。

软件工程练习题&答案

软件工程练习题&答案

软件工程练习题一. 选择题(单选或多选)(1)需求分析阶段最重要的技术文档是( C )。

A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告(2)在软件工程中,白盒测试法可用于测试程序的内部结构。

此方法将程序看作是(A )A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合(3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D )A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合(4)软件详细设计的主要任务是对(A)进行的详细设计。

A) 算法和数据结构B) 外部接口C)软件编码D)功能(5)Jackson方法是一种面向(C)的结构化方法。

A) 数据流B) 对象C)数据结构D)控制流(6)一个成功的测试可以( D )。

A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误(7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。

A)失败后重新启动所需的时间B)引起失败的时间所占的百分比C)失败前的平均工作时间D)在一次失败中数据恶化的概率(8)黑盒技术设计测试用例的方法之一为( A )。

A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试(9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。

A)工作无序,项目进行过程中经常放弃当初的计划B)建立了项目级的管理制度C)建立了企业级的管理制度D)软件过程中活动的生产率和质量是可度量的(10)在面向数据流的软件设计方法中,一般将信息流分为( A )。

A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流(11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。

( ABCDEF )A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。

A)确定系统的性能要求B)确定系统的运行要求C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要(13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。

软件工程习题及解答

软件工程习题及解答

软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。

其中,( A )是按事先设计的功能和性能要求执行的指令序列。

( B )是使程序能够正确操纵信息的数据结构。

( C )是与程序开发、维护和使用有关的图文材料。

供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。

软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。

供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。

有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。

第二阶段(1950年代末~1960年代末)称为“基本软件期”。

出现了( A ),并逐渐普及。

随着( B )的发展,编译技术也有较大的发展。

第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。

这一时期,与硬件费用下降相反,软件开发费急剧上升。

人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。

第四阶段(1970年代中期~现在)称为“软件工程时期”。

软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。

供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。

软件工程习题(附答案)

软件工程习题(附答案)

第一章概述1.软件产品具有哪些特性?答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的a.软件产品是一种逻辑产品.b.软件产品的生产主是研制,软件产品的成本主要体现在软件的...c.开发的软件可维护性差.d. 开发的软件可靠性差⑴是一种逻辑产品,与物质产品有很大的区别.⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品.⑶软件产品不会用坏,不存在磨损,消耗.⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵.(6)其质量往往靠不住,缺乏可见性2.简述什么是软件工程?答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件”的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不超过预算,并满足用户要求;3.软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段?答:定义时期:问题的定义(客户需求)、可行性研究(为什么做);开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具体)、编码(程序设计语实现)测试.。

运行时期:软件维护。

4.依下列叙述确定软件生命周期模型。

M公司的软件产品以开发实验型的新软件为主。

用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。

若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐明你的理由。

答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。

另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1)必要的,该需求是用户所要求的。

2)无歧义的,该需求只能用一种方式解释。

3)可测的,该需求是可进行测试的。

4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。

2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、设计约束和质量属性需求。

P237、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求38、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

软件工程课后习题答案

软件工程课后习题答案

软件⼯程课后习题答案习题答案习题⼀答案⼀、选择题1. 软件的主要特性是(A B C)。

A) ⽆形 B) ⾼成本C) 包括程序和⽂档D) 可独⽴构成计算机系统2. 软件⼯程三要素是(C D)。

A) 技术、⽅法和⼯具B) ⽅法、⼯具和过程C) ⽅法、对象和类D) 过程、模型、⽅法3. 包含风险分析的软件⼯程模型是(A)。

A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件⼯程的主要⽬标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于⾯向对象开发⽅法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太⾼B) 软件产品的质量低劣C) 软件开发⼈员明显不⾜D) 软件⽣产率低下7. 软件开发⽅法的主要⼯作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件⼯程的⽬标有(A B C)。

A) 易于维护B) 低的开发成本C) ⾼性能D) 短的开发期9. 软件⼯程学的⽬的和意义是( )。

A) 应⽤科学的⽅法和⼯程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训⼯作D) 以较低的成本开发出⾼质量的软件⼆、判断题1. 软件就是程序,编写软件就是编写程序。

(×)2. 瀑布模型的最⼤优点是将软件开发的各个阶段划分得⼗分清晰。

(×)3. 结构化⽅法的⼯作模型是使⽤螺旋模型进⾏开发。

(×)4. 结构化⽅法和JSP⽅法都不适合于⼤型软件的开发。

(√)5. 原型化开发⽅法包括⽣成原型和实现原型两个步骤。

(×)6. ⾯向对象的开发⽅法包括⾯向对象的分析、⾯向对象的设计和⾯向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件⼯具的作⽤是为了延长软件产品的寿命。

-软件工程练习题答案参考

-软件工程练习题答案参考

软件工程练习题一.名词解释1.软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。

或:软件开发技术的进步未能满足发展的要求,在软件开发中遇到的问题找不到解决的方法,问题积累起来了,形成尖锐的矛盾,导致了软件危机。

2.软件生存周期:一个软件从提出开发要求开始起,到该软件废弃不用为止,称为软件生存周期。

(一般来说,软件生存周包括计划、开发、运行三个时期,每一时期又可分为若干更小的阶段。

计划时期的主要任务是分析用户要求,分析新系统的主要目标以及开发该系统的可行性。

开发时期要完成设计和实现两大任务具体。

具体分为需求分析、概要设计、详细设计、编码、测试。

其中编码和测试是软件开发期的最后两个阶段。

运行时期是软件生存周期的最后一个时期,软件人员在这一时期的工作,主要是做好软件维护。

)此括号内可省。

3.瀑布模型:瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。

它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。

它规定了由前至后、相互衔接的固定次序。

瀑布模型为软件开发提供了一种有效的管理模式。

根据这一模式指定开发计划,进行成本核算,组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档为驱动、适合于软件需求很明确的软件项目开发。

(瀑布式开发模型是针对软件开发说的,也叫从上到下的形式!就是先从整体上定义软件的功能再不断的细化,至到定义了软件的所有功能为至。

整个定义的过程从上到下看就象瀑布一样,从整体定义上流下来,最下面就是个个具体的功能定义,所以叫瀑布式开发模型。

)此括号内不够准确。

4.系统流程图:是概括地描绘物理系统的传统工具。

基本思想是用图形符号以黑盒子形式描述组成系统的每个部件。

表达了系统中各个元素之间的信息流动的情况。

5.需求可行性:分析需求可行性在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍6.需求分析:是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。

1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。

1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。

1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。

1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。

2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。

软件工程习题附答案

软件工程习题附答案

软件⼯程习题附答案⼀、选择题1、软件是⼀种( 2 )性⼯业产品。

(1)理论(2)知识(或逻辑)(3)消耗(4)体⼒2、需求分析是在( 2 )进⾏的。

(1)⽤户(2)⽤户和分析⼈员之间(3)开发⼈员内部(4)使⽤和维护⼈员之间3、在软件的可⾏性研究中经常从不同⾓度对系统进⾏可⾏性研究,其中从功能⾓度对系统进⾏研究属于( 2 )的研究。

(1)经济可⾏性(2)技术可⾏性(3)操作可⾏性(4)法律可⾏性4、在软件⼯程项⽬中,不随参与⼈员的增加⽽使软件的⽣产率增加的主要问题是( 4 )。

(1)⼯作阶段的等待时间(2)⽣产原型的复杂性(3)参与⼈员所需的⼯作站数(4)参与⼈员之间的沟通困难5、需求分析阶段的研究对象是( 1 )。

(1)⽤户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进⾏调查分析,确定是否值得开发⼀个新系统的⼯作是进⾏( 4 )。

(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( 4 )。

(1)善于使⽤户接受⾃已的观点(2)善于使⾃已获得成就(3)是⽤户与计算机技术⼈员的有效协调与组织者(4)满⾜上述所有条件8、数据流图的绘制过程,是对新系统的需求进⾏综合分析和形成新系统( 1 )的过程。

(1)逻辑模型(2)物理模型(3)总体⽅案(4)可⾏性报告9、系统测试的⽬的是( 4 )。

(1)找出编码错误(2)找出数据错误(3)要证明程序⽆错(4)发现软件错误10、⼀个模块内部各程序段都在同⼀张表上操作,这个操作的内聚性称为( 3 )。

(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、在结构化⽅法中全⾯指导模块划分的最重要的原则是( 4 )A.程序模块化B.模块⾼内聚C.模块低耦合D.模块独⽴性12、最⾼程度也是最差的耦合是( 2 )。

(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产⽣的⽂档不包括( 4 )。

(1)概要设计说明书(2)数据库设计说明书(3)⽤户⼿册(4)开发进度报告14、汽车有⼀个发动机,汽车和发动机之间的关系是( 2 )。

-软件工程习题答案参考

-软件工程习题答案参考

软件工程绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

软件工程习题及参考答案

软件工程习题及参考答案

软件工程习题及参考答案判断题软件也会磨损和老化。

(某)完善性维护是提高或完善软件的性能。

(√)数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。

(某)软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。

(某)软件模块之间的耦合性越弱越好。

(√)如果通过软件测试没有发现错误,则说明软件是正确的。

(某)快速原型模型可以有效地适应用户需求的动态变化。

(√)模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

(√)集成测试主要由用户来完成。

(某)确认测试计划应该在可行性研究阶段制定(某)白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。

(某)软件概要设计包括软件系统结构设计以及数据结构和数据库设计。

(√)软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。

(√)系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。

(╳)模块越多,开发成本越小。

(╳)软件测试的目的就是证明软件没有错。

(╳)PAD图在设置了五种基本的控制结构后,还允许递归使用。

(√)在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。

(某)SA法是面向数据流,建立在数据封闭原则上的需求分析方法。

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

(√)在面向对象的需求分析方法中,建立动态模型是最主要的任务。

(某)加工小说明是对系统流程图中的加工进行说明。

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

(某)需求分析的主要方法有SD法、OOA法及HIPO法等。

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

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

软件工程习题及详细答案

软件工程习题及详细答案

软件工程习题及答案一、选择题: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、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式。

从某处获得数据,再对这些数据作处理,然后将结果送出是属于。

A、变换型B、事务型8. PAD(Problem Analysis Diagram)图是一种工具。

A、系统描述B、详细设计C、测试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. 结构化程序设计主要强调程序的。

软件工程习题及课后答案

软件工程习题及课后答案

第8章面向对象设计(习题与参考答案)[选择题]1. ()面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。

A. 真B. 假2. ()系统设计的主要任务是细化分析模型,最终形成系统的设计模型。

A. 真B. 假3. ()关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。

A. 真B. 假4. ()用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。

A. 真B. 假5. 内聚表示一个模块()的程度,耦合表示一个模块()的程度。

A. 可以被更加细化B. 仅关注在一件事情上C. 能够适时地完成其功能D. 联接其他模块和外部世界6. 良好设计的特征是()。

A. 模块之间呈现高耦合B. 实现分析模型中的所有需求C. 包括所有组件的测试用例D. 提供软件的完整描述E. 选项B和DF. 选项B、C和D7. ()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;( )细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。

A. 系统设计B. 对象设计C. 数据库设计D.用户界面设计8.下面的( )界面设计原则不允许用户保持对计算机交互的控制。

A. 允许交互中断B. 允许交互操作取消C. 对临时用户隐藏技术内部信息D.只提供一种规定的方法完成任务[练习题]1. 面向对象设计与面向对象分析的区别是什么?设计包括哪些活动? 答案要点:面向对象分析是重点考虑系统“做什么”的问题,即运用面向对象方法对问题域进行分析和理解,建立系统的分析模型;面向对象设计重点考虑系统“怎样做”的问题,即在分析模型的基础上形成实现环境下的设计模型。

面向对象设计主要涉及系统设计、对象设计(或详细设计)、数据库设计和用户界面设计等活动。

2. 3. 课程在类设计中,为什么建议使用set 方法和get 方法进行属性设置和读取? 答案要点:目的在于降低类之间的耦合度。

软件工程习题附答案

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。

2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。

方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。

3、软件可行性研究实质上是要进行一次()需求分析和设计过程。

A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。

4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。

5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。

二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。

软件工程习题答案

软件工程习题答案

软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。

2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。

3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。

4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。

5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。

其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。

6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。

四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。

2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。

《软件工程》(第五版)习题参考答案

《软件工程》(第五版)习题参考答案
把整个软件生命周期划分为若干个较小的阶段每个阶段都有相对独立的任务和完成任务的步骤和方法然后逐步完成各个阶段的任务这有利于软件开发过程的组织和管理从而降低了整个软件开发过程的困难程度从而使规模庞大结构复杂和管理复杂的软件开发变得容易控制和管理
《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构

软件工程(习题及参考答案)

软件工程(习题及参考答案)

第1章概述(习题与参考答案)[判定题]1. 由于今天个人运算机不断进展壮大,人们再也不采纳软件团队的开发方式。

(×)2. 由于软件是产品,因此能够应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数运算机系统所需的硬件比软件更昂贵。

(×)4. 大多数软件产品在其生命周期中不需要增强功能。

(×)5. 大多数软件系统是不容易转变的,除非它们在设计时考虑了转变。

(√)6. 一样来讲,软件只有在其行为与设计者的目标一致的情形下才能成功。

(×)[选择题]1. ()因素促使运算机系统愈来愈复杂。

(D)A. 运算机内存和存储容量上的庞大增加B. 外部输入/输出选项的加倍多样性C. 运算机体系结构方面的深刻转变D. 以上所有选项2. 下面的()再也不是现代软件工程师关注的问题。

(A)A. 什么缘故运算机硬件的本钱这么高?B. 什么缘故软件需要很长时刻才能完成?C. 什么缘故开发一个软件的本钱这么高?D. 什么缘故不能在产品发布前去除软件错误?3. 软件会慢慢退化而可不能磨损,其缘故在于()。

(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在利用以后C. 不断的变更使组件接口之间引发错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其缘故在于()。

(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法利用C. 软件在不利用其他组件的情形下很容易构造出来D. 商业组件在很多应用领域中能够取得5. 下面的()说法是正确的。

(C)A. 软件危机在20世纪70年代末期全面暴发B. 当前先进的软件工程方式已经解决了软件危机的问题C. 软件危机是指在运算机软件的开发和保护进程中碰到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的大体目标是()。

(B)A. 排除软件固有的复杂性B. 开发高质量的软件C. 尽力发挥开发人员的制造性潜能D. 更好地保护正在利用的软件产品7. ()是将系统化的、标准的、可定量的方式应用于软件的开发、运行和保护的进程,它包括方式、工具和进程三个要素。

软件工程习题+答案

软件工程习题+答案

一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A) 可行性研究,问题定义,需求分析。

B) 问题定义,可行性研究,需求分析。

C) 可行性研究,需求分析,问题定义。

D) 以上顺序都不对。

(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。

B)技术可行性,经济可行性,系统可行性。

C)经济可行性,系统可行性,操作可行性。

D)经济可行性,系统可行性,时间可行性。

3.耦合是对软件不同模块之间互连程度的度量。

各种耦合按从强到弱排列如下:(C)A) 内容耦合,控制耦合,数据耦合,公共环境耦合。

B) 内容耦合,控制耦合,公共环境耦合,数据耦合。

C) 内容耦合,公共环境耦合,控制耦合,数据耦合。

(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D) 控制耦合,内容耦合,数据耦合,公共环境耦合。

4.在详细设计阶段所使用到的设计工具是:(C)A) 程序流程图,PAD图,N-S图,HIPO图,判定表,判定树.B) 数据流程图,Yourdon 图,程序流程图,PAD图,N-S图,HIPO图。

C) 判定表,判定树,PDL,程序流程图,PAD图,N-S图。

D) 判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。

详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD图、N-S图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。

B)模块的控制域应在模块的作用域之内。

C)模块的控制域与模块的作用域互相独立。

D)以上说法都不对。

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。

(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。

(2).软件生产技术进步缓慢2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。

采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。

3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。

答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。

当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。

新方法在推行初期,总有人不愿接受和采用。

若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。

(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。

软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。

所以对于一个理想的软件工程环境,应该同时具备技术和管理两个方面。

4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。

答:用C++开发一个软件,是校园一卡通的模块。

首先,要在编辑程序支持下在计算机中输入源程序。

然后编译程序,把源程序翻译成目标程序。

如果发现错误,就重新调入编辑程序对源程序进行修改。

编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。

编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。

离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。

5.什么是软件工程环境?谈谈你对环境重要性的认识。

答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。

例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。

程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。

分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。

6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。

答:以面向对象程序设计为基础。

7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。

答:按规模分为极小、小、中、大、甚大、极大。

(1)中小型软件:软件工程对改进软件质量,提高程序员生产率和满足用户的需求,有很大的作用。

(2)大型软件:这类软件必须从头至尾坚持软件工程的方法,严格遵守标准文档格式和正规的复审制度,才能避免或减少混乱,真正开发出大型的软件。

8. 什么是形式化软件开发方法?实现这类开发的困难和出路在哪里?答:它是一种基于数学的开发技术,主要采用数学的方法来描述系统的性质(例如程序变换和程序验证等)。

形式化的方法加上自动化的开发环境,可能是解决这一难题的出路。

软件开发模型1.什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得交易控制和管理。

2.传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间具有顺序性和依赖性。

3.说明文档和复审对于软件质量的控制的作用。

答:每一阶段都要完成规定的文档,没有完成文档,就认为没有完成该阶段的任务。

软件开发是许多人共同参加的计划,完整与合格的文档,不仅是开发时期软件人员之间互相通信的媒介,也是运行时期对软件进行维护的中要依据。

每一阶段都要对已完成的文档进行复审,以便尽早发现问题,消除隐患。

愈是早期潜伏下来的故障,暴露出来的时间愈晚,排除故障需付出的代价也就愈高。

及时复审是保证软件质量,降低开发成本的重要措施。

4.什么是快速原型法?其快速表现在哪里?答:首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。

然后将原型改进,最终建立完全符合用户要求的新系统。

它的快速表现在能够缩短开发周期的语言和工具,能在短时间内提供出成品,但不包括成品中的细节,然后让客户进行对比。

5.实现快速原型法的最终系统可以有几种方法?请说明并加以比较。

答:原型系统仅包括未来系统的主要功能,以及系统的重要接口。

为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。

最终系统的形成可以采用原型废弃不用,另一方法是补充修改模型获得最终系统。

方法一不包括系统的细节。

后一种方法在实际工作中,由于原型系统使用的语言往往存在效率不高等原因,除了少数简单的事务系统外,大多数原型都废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。

6.比较增量模型和螺旋模型的特点,有什么不同和相似的地方?答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。

螺旋模型是一种迭代模型,每迭代一次,螺旋线就前进一周。

增量模型每个增量具有高内聚低耦合,高度的独立性。

而螺旋模型它在结合瀑布模型与快速原型的基础上还增加了风险分析。

7.为什么利用转换模型开发软件有一定难度?什么是净室软件工程?答:从理论上说,一个正确的,满足客户需要的形式化规格说明,经过一系列正确的程序变化后,可以确保得到这样一个形式化规格说明,目前还有较高的难度,同时,软件开发者很少具有实用形式化方法所需的背景知识,况且,转换模型开发软件现在还很费时和昂贵!净室基本思想是力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。

8.哪些开发模型适用于面向对象的软件开发?答:构件集成模型9.比较螺旋模型和构件集成模型的异同。

答:构件集成模型利用预先对封装好的软件构件来构造应用软件系统,它融合了螺旋模型的很多特征,支持软件开发的迭代方法。

软件需求分析1.需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是“怎么做”?答:需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合建立分析模型;第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。

需求分析的任务就是为了明确要开发的是一个什么样的系统,而不是去怎么去实现这个系统。

2.需求分析要经过哪些步骤?答:需求获取、需求提炼、需求描述、需求验证。

3.有哪两种主要的分析模型,它们有什么联系?答:面向对象分析模型、结构化分析模型。

前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。

他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。

4.什么是结构化分析?它的“结构化”体现在哪里?答:是使用DFD、DD、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档。

5.什么是面向对象分析?其主要思想是什么?答: OOA面向对象的分析是采用面向对象的思想进行软件需求分析建模的过程.主要思想是采用面向对象的思想。

5.需求说明(或需求规格说明书)由哪些部分组成?各部分的主要内容是什么?答:引言、信息描述、功能描述、行为描述、质量描述、接口描述、其他描述。

引言:主要叙述在文体定义阶段确定的关于软件的目标与范围,简要介绍系统背景、盖帽、软件项目约束和按考资料等。

信息描述:给出对软件所含信息的详细描述,包括信息的内容、关系、数据流向、控制流向和结构等。

功能描述:对软件功能要求的说明,包括系统功能划分、每个功能的处理说明、限制和控制描述等。

行为描述:包括对系统状态变化及事件和动作的描述,据此可以检查外部事件和软件内部的控制特征。

质量描述:阐明在软件交付使用前需要进行的共更能测试和性能测试,并且规定源程序和文档应该遵守的各种标准。

接口描述:包括系统的用户界面、硬件接口、软件接口和通信接口等的说明。

其他描述:阐述系统设计和实现上的限制,系统的假设和依赖等其他需要说明的内容。

6.为什么DFD要分层?画分层DFD要遵循哪些原则?答:大型复杂的软件系统,其DFD可能含有数百乃至数千个加工,不能设想一次就将它们全部画齐。

正确的做法是:从系统的基本模型(把整个系统看成一个加工)开始,逐层地对系统进行分解。

原则:由顶向下,逐步细化。

7.DFD和CFD有什么区别?8.什么是系统的行为模型,如何建立?答:类对象模型所表示的是面向对象分析模型中的静态部分,而对象行为模型则用于描述系统的动态行为,即系统如何对应外部事件---系统的行为模型。

建立一个对象行为模型一般要经历一些过程:评估所以的用例来理解系统中的交互序列;找出驱动交互序列的事件;为每个用例创建事件轨迹;为对象创建状态转换图。

9.选一个系统(例如工资处理系统、飞机订票系统、图书馆管理系统等),分别用SA方法和OOA方法对它进行分析,并给出分析模型。

答:软件设计概述1.传统软件工程把设计过程分成2步:概要设计与详细设计。

10.试述这2个阶段个字主要完成的任务。

答:概要设计,包括结构设计和接口设计,并编写设计文档。

详细设计,其任务是确定各个软件组件的数据结构和操作,产生描述个软件组件的详细设计文档。

为什么大型软件设计必须分成两步走?答:概要设计和详细设计是软件设计的两步,概要设计确定模块的划分,模块之间的调用关系,接口等;详细设计细分模块、数据结构等;大型系统中分两步走是必要的,概要设计确定模块划分后,详细设计可把各模块交给不同的人做详细设计,大型系统中这样的分工是比较合理的,能提高效率,做到合理分工。

2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。

答:模块是一个拥有明确定义的、输出和特性的程序实体。

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

每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

模块化设计是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。

但又相互关联的模块。

3.什么是模块独立性?用什么度量?答:模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

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

独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupling)。

相关文档
最新文档