《软件工程基础》习题集答案

合集下载

软件工程 课后习题答案

软件工程 课后习题答案

软件工程课后习题答案软件工程课后习题答案软件工程是一门关于设计、开发和维护软件系统的学科。

在学习软件工程的过程中,课后习题是非常重要的一部分。

通过解答习题,我们可以巩固所学的知识,加深对软件工程的理解。

下面是一些常见的软件工程习题及其答案,供大家参考。

习题一:什么是软件生命周期?它包括哪些阶段?答案:软件生命周期是指软件从开始开发到最终废弃的整个过程。

它包括以下几个阶段:1. 需求分析阶段:确定软件系统的需求,包括功能需求、性能需求、安全需求等。

2. 设计阶段:根据需求分析的结果,设计软件系统的结构和功能。

3. 编码阶段:根据设计阶段的结果,编写代码实现软件系统的功能。

4. 测试阶段:对编写的代码进行测试,确保软件系统的正确性和稳定性。

5. 部署阶段:将测试通过的软件系统部署到生产环境中,供用户使用。

6. 维护阶段:对已经部署的软件系统进行修复漏洞、更新功能等维护工作。

习题二:什么是软件需求?软件需求可以分为哪几类?答案:软件需求是指对软件系统功能和性能的描述。

软件需求可以分为以下几类:1. 功能需求:描述软件系统应该具备的功能,比如用户登录、数据查询等。

2. 性能需求:描述软件系统在运行过程中的性能要求,比如响应时间、并发处理能力等。

3. 安全需求:描述软件系统对数据和系统的安全保护要求,比如用户权限控制、数据加密等。

4. 可靠性需求:描述软件系统的可靠性要求,比如系统的可用性、容错性等。

习题三:什么是软件设计模式?列举几个常见的软件设计模式。

答案:软件设计模式是指在软件设计过程中经常出现的一些问题的解决方案。

常见的软件设计模式包括:1. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。

2. 工厂模式:将对象的创建和使用分离,通过工厂类来创建对象。

3. 观察者模式:定义了一种一对多的依赖关系,当一个对象状态发生改变时,所有依赖它的对象都会收到通知并自动更新。

4. 适配器模式:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能在一起工作的类可以一起工作。

软件基础答案zucc

软件基础答案zucc

第1章绪论N/A第2章软件工程1:题目 .软件测试的目的是_____________。

A 为了表明程序没有错误B 为了说明程序能正确地执行C 为了发现程序中的错误D 为了评价程序的质量EF你的答案: C答案: C2:题目结构化方法是一种___________的软件开发方法。

A 面向用户B 面向数据结构C 面向对象D 面向数据流EF你的答案: D答案: D3:题目下面_________不是详细设计的图形工具。

A 程序流程图B N-S图C PDLD PADEF你的答案: C答案: C4:题目下列关于功能性注释不正确的说法是__________。

A 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态B 用来说明程序段,需要在每一行都要加注释C 可使用空行或缩进,以便很容易区分注释和程序D 修改程序也应修改注释EF你的答案: B答案: B5:题目下面____________开发阶段在典型环境下所需的人力百分比最高A 可行性分析B 需求分析C 软件设计D 测试EF你的答案: D答案: D6:题目下列文档与维护人员有关的有_________。

A 软件需求说明书B 项目开发计划C 维护手册D 概要设计说明书EF你的答案: C答案: C7:题目下列关于瀑布模型不正确的是___________。

A 瀑布模型上一阶段的变换结果是下一阶段的输入B 瀑布模型每个阶段都不需要反馈C 瀑布模型提供了软件开发的基本框架D 瀑布模型存在局限性EF你的答案: B答案: B8:题目在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是_ _______A 语句覆盖B 判定/条件覆盖C 条件组合覆盖D 判定覆盖EF你的答案: C答案: C9:题目软件调试技术包括__________A 回溯法调试B 循环覆盖调试C 边界值分析调试D 集成测试调试EF你的答案: A答案: A10:题目在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为___________A 确认测试B 系统测试C 渐增式测试D 非渐增式测试EF你的答案: D答案: D11:题目________的前提是完全了解程序的结构和处理过程A 白盒测试B 黑盒测试C α测试D β测试EF你的答案: A答案: A12:题目下面_________不是程序设计小组的组织形式。

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

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

第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、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

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

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

1、可行性研究的目的是用最小的代价,在尽可能短的时间,确定该项目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到。

可将两种工具结合起来,先用判定表做底稿,在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发展。

重视用户界面的设计,不断的采用新理论和新技术。

软件工具的商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。

12、投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、详细描述处理过程常用三种描述工具:图形、表格和语言。

14、数据流图中,每个加工至少有一个输入流和一个输出流。

15、结构化设计以数据流为基础映射成软件结构。

16、当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断时,使用判定表或判定树较好。

17、由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

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

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

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

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

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

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

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

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

答:模型是一个抽象。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

软件工程习题答案参考

软件工程习题答案参考软件工程习题一:软件开发过程及其特点软件开发过程是指通过一系列的活动和任务,将软件需求转化为可运行的软件系统的过程。

软件工程师通过在这个过程中使用不同的方法和技术来确保软件系统的质量和可靠性。

下面是对软件开发过程中常见的几种模型及其特点的详细解答:1. 瀑布模型:瀑布模型是最早提出的软件开发过程模型之一。

它将软件开发过程划分为几个连续的阶段,包括需求分析、系统设计、编码、测试和维护。

这种模型的特点是每个阶段必须按序完成,并且每个阶段的输出成果是下一个阶段的输入。

瀑布模型适用于需求比较稳定且项目规模较小的软件开发。

2. 增量模型:增量模型是一种迭代的软件开发过程模型,它将软件开发过程分为多个增量,每个增量都可以独立开发、测试和交付。

每个增量都会增加软件系统的功能或性能。

增量模型适用于需求不明确或需求变化频繁的软件开发。

3. 原型模型:原型模型是通过与用户密切合作,迅速开发出一个初步的软件原型,然后根据用户的反馈和需求修改和改进原型,最终得到满足用户需求的软件系统。

原型模型适用于用户需求不确定或需要快速验证软件功能的情况。

4. 敏捷模型:敏捷模型是一种注重实践和团队合作的软件开发过程模型。

它强调通过频繁的迭代和交付来满足用户需求,并鼓励团队成员之间的沟通和合作。

敏捷开发适用于需求变化频繁或项目时间紧迫的软件开发。

总结来说,不同的软件开发过程模型适用于不同的项目和需求情况。

软件工程师在实际工作中需要根据项目的具体情况选择合适的开发过程模型,并结合各种软件开发方法和技术来确保软件系统的质量和可靠性。

软件工程习题二:软件需求分析与规格说明软件需求分析是软件开发过程中至关重要的一步,它涉及到对用户需求进行详细的调查和分析,以确定软件系统的功能和性能需求,并将其形式化为规格说明。

下面是对软件需求分析及规格说明的常见问题的解答:1. 需求获取:需求获取是指获取用户需求的过程。

常用的需求获取技术包括面谈、问卷调查、原型演示等。

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

第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、软件是⼀种( 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. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件工程基础》习题集答案《软件工程基础》习题集答案第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。

软件危机的典型表现主要有: a. 开发成本和进度不能准确估计b. 开发出来的软件不能满足用户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的比重逐年上升f. 软件开发生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。

软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。

其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。

4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。

6.简述软件的定义。

软件=程序 + 数据 + 文档7.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。

8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。

目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。

9.简述软件工程的基本原理。

软件工程有7条基本原理:1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用先进的程序设计技术 5.结果应能清楚的审查 6.开发小组成员应少而精 7.承认不断改进软件工程实践的必要性10.软件工程的基本开发原则有哪些?软件工程的基本开发原则有: 1.模块化2.抽象和信息隐蔽3.模块的高内聚和低耦合 4.确定性 5.一致性 6.完备性11.构成软件工程的基本元素有哪些?除了前面给出的软件工程三大要素,还应该包括控制和质量保证。

这里的控制,即规模控制、成本控制、复杂性控制等。

12.什么是软件过程?它与软件工程方法学有何关系?软件过程是指为了获得高质量软件产品,在软件工具支持下,软件人员完成的一系列软件工程活动。

软件过程规定了开发软件所需完成的各项任务步骤。

过程步骤的设定与软件生命周期、生命周期模型、软件开发工具,以及参与开发的人员等诸方面因素有关。

13.什么是软件生命周期?什么是软件生命周期模型?软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡的生存过程。

软件的这一过程,称为软件生命周期。

软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题,而提出的开发策略。

是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架。

14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。

软件生命周期方法学是软件工程的传统途径,划分阶段步骤的目的和实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力实现。

15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

1.瀑布模型。

瀑布模型广为人知和历史悠久,其优势是规范及文档驱动的方法。

但问题是,往往不能够真正满足用户的需求。

适用于传统软件工程领域的结构化开发。

2.原型模型。

是为了克服瀑布模型的缺点而提出来的。

通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。

3.螺旋模型。

螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性,但这些优越性并不是绝对的。

主要体现在对开发人员的风险评估经验和专门知识的要求较高。

如果项目风险较大,而开发人员的水平较低,不能准确的识别和分析风险,则势必造成重大损失。

4.增量模型。

具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。

第二章可行性研究1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。

可行性研究的任务不是解决问题,而是确定是否可解/值得解。

2.应该从哪些方面研究目标系统的可行性?主要从以下几个方面进行可行性研究:1. 技术可行性。

以现有技术,能否在预定时间内完成该系统开发。

2. 经济可行性。

通过成本-效益分析,估算系统的整体经济效益是否满足要求。

3. 操作可行性。

分析系统的运行方式、操作规程是否适应用户应用需要。

4. 社会可行性。

分析系统在法律、社会、市场等方面的认可度。

3.可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模和目标。

(2) 研究老系统(3) 导出高层逻辑模型(conceptual design) (4) 重新定义 (5) 导出多种解法 (6) 推荐行动方针 (7) 开发计划(粗略) (8) 审查、存档4.简述系统流程图在可行性研究中的作用。

系统流程图是概括的描述物理系统的传统工具。

系统流程图反映的是信息在系统各部分间流动的情况。

系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。

5.简述数据流图在可行性研究中的作用和用途。

数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。

6.简单描述数据字典的内容和定义数据的方法。

数据字典主要下列4种元素定义组成: 1.数据流 2.数据流分量 3.数据存储 4.处理除了数据定义外,数据字典还应包含一些关于数据的其它信息。

定义数据的方法通常采用自顶向下分解的方式。

并顺序、选择、重复三种基本数据元素类型组成数据。

7.说明软件计划的内容和目标。

软件计划的内容=项目任务范围 + 环境资源 + 工作量 + 进度软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。

8.什么是软件范围?定义软件范围需要哪些信息?软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。

定义软件范围需要以下信息:a. 与用户、总体目标及利益相关的问题。

b. 有利于系统分析员理解的问题。

c. 集中于交流效果的问题。

9.简述软件开发环境资源的三个层次。

软件开发环境资源三个层次构成:开发环境、软件构件以及最重要的资源——人。

10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?每一类资源都有四个特征:资源描述、可用性说明和资源提供的时间、资源使用的延续时间。

可以为制定软件计划估算软件开发所需的资源。

11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?编制进度计划的常用工具主要有甘特图和网络计划法。

甘特图的优点是简单,能动态地反映开发进展;缺点是难以反映多个任务间的逻辑关系。

网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。

12.主要的成本估计技术有哪些?其依据的主要是什么?主要有,代码行技术。

是一种基于规模的分解估算:D=?f(vi)以及基于问题的分解估算:EV=(Sopt+4Sm+Spess)/6还有功能点技术。

这种技术以功能点(FP)为单位,度量软件的规模。

于项目本身的复杂性,因此,成本估计技术主要采用“分而治之”的分解技术对软件项目进行估算。

13.为什么说成本估计是不可能精准的?那是于太多的变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。

14.进行成本/效益分析的方法主要有哪些?常用成本/效益分析的方法主要有: (1) 货币的时间价值 (2) 投资回收期 (3) 纯收入 (4) 投资回收率16.如何对制定完成的软件计划进行复审?为什么要复审?软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。

复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。

复审内容分为技术和管理两个方面:技术方面需要考虑的问题有:系统的任务是否合理;系统的给你复杂性是否与开发成本、进度以及风险一致;系统规格说明书是否足够充分;系统性能要求是否恰当管理方面需要考虑的问题有:计划中描述的工作范围是否符合用户需求?计划中对资源的描述是否有效、合理?计划中系统的开发成本与进度要求是否合理?计划中人员的安排是否合理?系统开发存在哪些风险?复审可以尽早发现错误,复审是软件质量保证的重要措施。

第三章需求分析1.为什么要进行需求分析?通常对软件系统有哪些需求?需求问题是软件工程项目失败的主要原因。

一个高质量的软件,很大程度上取决于对要解决的问题的认识,以及如何准确的表达用户的需求。

需求分析就是要解决这个问题。

通常,对一个软件系统的需求可以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求等多个方面。

2.怎样与用户有效地沟通,以获得用户的真实需求?访谈、情景分析,以及面向数据流的自顶向下求精等方法,编制简易的系统规格说明文档,创建原型等,是获取真实需求的有效方法。

3.需求分析的任务是什么?确定对待开发系统的综合要求。

4.通常系统的需求可以分为哪几个层次?一般可以分成5个层次:(1) 功能需求:系统必须做什么?(2) 业务需求:反映客户组织机构对系统高层次的目标要求。

(3) 运行需求:运行环境、软硬件配置等。

(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。

(5) 未来可能的扩充需求:如HDIS各组的合并,3维虚拟现实的效果等等。

5.进行需求分析的步骤有哪些?1.确定系统的综合要求 2.分析系统的数据要求 3.导出逻辑模型 4.修正系统开发计划6.简述建立原型模型对软件需求分析的作用。

可以快速构建旨在演示目标系统主要功能的可运行程序,帮助用户确定及提供更为精准的需求,以利用户和开发者能够在目标系统应该“做什么”这一问题上尽快达成一致。

7.解释实体-联系图及其用途。

实体-联系图是按照用户的观点对数据建立的模型。

描述从用户角度看到的数据,反映用户的现实环境,并且与在软件系统中的实现方法无关。

相关文档
最新文档