您的当前位置:首页正文

软件工程导论复习笔记

来源:九壹网


简答题:

1. 什么是软件?

答:软件是:

(1) 指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。

(2) 数据结构,使得程序可以合理利用信息。

(3) 软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。

2. How do software characteristics differ from hardware characteristics?

软件的特性是如何不同硬件的特性?

答:(1)软件是设计开发的,而不是传统意义上生产制造的

(2)软件不会磨损,但会退化

(3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的

3. What do people mean by the expression \"software crisis\"?

人们是怎样理解“软件危机”这个短语的?

答:软件危机主要表现在两个方面:

(1) 无法满足日益增长的对软件的需求。

(2) 难以满足对已有的软件系统的维护需求。

软件危机出现的原因:

(1) 由于软件生产本身存在着复杂性

(2) 与软件开发所使用的方法和技术有关

“软件工程”的概念用工程化的思想来克服软件危机。

4. What myths about software still exist ?

软件仍然存在着什么神话?

答:管理者的神话;用户的神话;开发者的神话。

简答题:

1. What are the three generic phases of software engineering?

软件工程的三个一般的阶段是?

答:定义阶段、开发阶段、维护阶段

(软件生存周期的三个阶段:软件定义、软件开发、软件维护)

2. What are the names of the five levels of the SEI Capability Maturity Model?

CMM把企业控制软件过程的能力分为5级(5个级别的名字):

① 1级——initial or ad hoc level (初始级)

② 2级——repeatable level (可重复级)

③ 3级——defined level (可定义级)

④ 4级——managed level (可管理级)

⑤ 5级——optimizing level (可优化级)

3. Describe the phases of the prototyping model for software development.

描述原型开发模型阶段对于软件开发?

答:

(1) 开发人员和客户会面并且对于软件定义总体目标,确认需求

(2) 开发人员对原型进行快速的构造设计

(3) 用户对原型的评估从而改进需求

(4) 开发人员调整原型以满足客户的需求

4. Why are evolutionary models considered by many to be the best approach to software development?

对于软件开发为什么演化模型被认为是最好的方法?

答:

由于现代软件开发的时间线越来越短,客户正变得越来越多样化,需求的变化也变得更加常见,我们需要一种方法来提供增量或进化的过程。相比大多数过程这个演化的过程能提供更好的过程模型,最重要的是该模型反映了在建立复杂系统时到底发生了什么。

第三章(Exercise 3):

简答题:

1. 可行性分析的任务是什么?

答:可行性研究的任务是用最小的代价、在尽可能短的时间内确定问题是否能够解决。

分析员首先应该导出系统的逻辑模型,然后从系统逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现方案)。最后仔细研究每种解法的可行性。

2. 简述可行性分析的步骤是什么?

答: (1)复查系统规模和目标

(2)研究目前正在使用的系统

(3)导出新系统的高层逻辑模型

(4)重新定义问题

(5)导出和评价供选择的方案

(6)推荐方案和行动方针

(7)草拟开发计划

(8)书写文档、提交审查

Rapid Application Development Model

包含五个开发阶段

Business modeling(业务建模)

Data modeling

Process modeling

Application generation

Testing and turnover

第四章(Exercise 4): (软件需求分析)

简答题:

1. What are the five phases of software requirements analysis?

软件需求分析的5个阶段是什么?

(1) 问题分析 (2)问题评估和方案综合 (3)建模 (4)规约 (5)复审

2. Describe the facilitated application specification technique (FAST).

描述FAST(facilitated application specification technique) 便利的应用规约技术?

答:

(1) 确定地点出席会议,会议由开发者和客户出席

(2) 建立准备和参与会议的规则

(3) 建立一个足够正式的议程以便可以进行所有重要的而又足够非正式的、鼓励思维的自由交流

(4) 一个“协调者“控制会议

(5) 使用一种定义机制

第五章(Exercise 5):

简答题:

1. What are three primary objectives of the analysis model?

分析模型中的三个主要对象是什么?

(1) 描述顾客的需求

(2) 创建软件设计的基础

(3) 定义在软件完成后可以被确认的一组需求

1. What are the data modeling elements represented in the entity

relationship diagram (ERD)?

在实体关系图(ERD)中代表数据模型的元素是什么?

答:

(1) 数据对象——一些实体的产生或消耗的信息

(2) 属性——数据特征与数据对象实例相关联

(3) 联系——指示数据对象连接的形式

2. List the elements of the analysis model and explain the role of each element?

列出分析模型的元素并且解释每个元素的角色?

答:

(1) 数据字典——包含所有数据对象产生或消耗的信息

(2) 实体关系图——描述数据对象的关系

(3) 数据流图——提供数据通过系统被改变移动数据流功能的指示

(4) 状态转换图——指示系统对于外部事件的答复

第六章(Exercise 6) (设计、模型、设计模型)

简答题:

1. List the four design models required for a complete specification of a design and explain how each is created.

列出四个设计模型需求对于一个设计的完整说明书并且解释每一个是怎样产生的?

答:

(1) 数据设计——为了软件的实现而使ERD和数据字典变为数据结构需求

(2) 体系结构设计——来源于系统规范和子系统交互

(3) 接口设计——来源于DFD和CFD集中于怎样进行人机交互

(4) 构件级设计——结构化的元素被转变为过程化的描述

2. List three characteristics that can serve as a guide to evaluate design quality.

列出能够作为评估设计质量向导的三个特征?

答:(1)设计必须实现所有包含在分析模型中的明显需求

(2)设计必须是可读的、可理解的

(3)设计应该提供软件的完整面貌

3. What is a good design?

solution:

1. The design process should not suffer from ‘tunnel vision’

2. The design should be traceable to the analysis model.

3. The design should not reinvent the wheel.

4. The design should “minimize the intellectual distance”

5. The design should exhibit uniformity and integration.

6. The design should be structured to accommodate change.

7. The design should be structured to degrade gently.

8. Design is not coding, coding is not design.

9. The design should be assessed for quality as it is being created, not after the fact.

10.The design should be reviewed to minimize conceptual (semantic) errors.

4.内聚(cohesion)是什么?

凝聚力是 衡量一个模块的功能相对实力

5.耦合(coupling)是什么?

耦合是 模块之间的相互依存的方法

第七章(Exercise 7)

简答题

1. What is Architecture? (体系结构是什么?)

答:程序或计算机系统的软件体系结构是指系统的一个或者多个结构,它包括软件构件、构件的外部可见属性以及它们之间的相互关系。

2. How is a transaction center different from a transform center in a data flow diagram?

在一个数据流图中交易中心是如何不同于变换中心?

答:交易中心转换成系统内部许多行动路径之一的外部信息流。

第八章: (界面设计)

简答题:

1 . What is three “golden rules” ? 三个“黄金法则”是什么?

答:

(1)将用户控制。

(2)减少用户的记忆负荷。

· (3)接口一致。

2. What framework activities are completed during user interface development process? 在用户界面的发展过程期间完成的是什么框架内的活动?

答:

用户,任务和环境分析

界面设计

界面结构

接口验证

3. List four interface design issues present in the development of most user interfaces在大多数的用户界面的发展当中列出四个接口设计问题

答:系统响应时间

用户帮助设施

错误信息处理

命令标签

4.用户界面的基本类型有几种?

答:从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、图形与图标、菜单、对话框及窗口等。每一种类型都有不同的特点和性能。

第九章:

简答题:

1. What characteristics has a box diagram? 一个方块图有什么特征?

答:(1)功能域以及定义和清晰可见,作为一个图示

(2)任意控制转移是不可能的

(3)本地和全球数据的范围可以很容易地确定

(4)递归很容易代表

2. Which sections are decision tables divided into?

决策表分为哪些部分?

答:左上方象限包含的所有条件

左下角象限包含了所有动作的清单

右手象限形成一个矩阵

3. What are the characteristics of a program design language (PDL)?程序设计语言(PDL)的特点是什么?

答:提供一个固定的关键字语法

一个自然语言的语法描述处理功能

数据申报的设施应包括

子程序的定义和调用技术,支持各种接口描述模式

第十章:

简答题:

1. What are the attributes of a good software test? 一个良好的软件测试的属性是什么?

答:(1) 发现错误的概率高

(2) 不是多余的

(3) 应该是能够发现大部分的错误

(4) 不宜过于简单或过于复杂

2. Describe the differences between black-box testing and white-box testing.

描述黑盒测试和白盒测试之间的差异。

答:(1)黑盒测试,包括测试软件组件的功能,不知道其内部逻辑的细节。

黑盒测试是功能测试

(2)白盒测试涉及全面测试内部独立的逻辑路径。

白盒测试是模块测试

3. Cyclomatic complexity is Computed in three ways.

圈复杂度计算方法有三种。

答:

(1)流图中区域的数量对应于环形的复杂性

有:内部的范围

外部的范围 ----算一个区域

(2)计算流图G的环形复杂性V(G) :

公式:V(G)=E-N+2

N----节点数 E----边的数量

(3)计算流图G的环形复杂性V(G) :

公式:V(G)=P+1

P----程序图中判定点的数量

第11章:(软件测试——单元测试、系统测试;自上而下的集成测试、自下而上的集成测试;验证测试、确认测试)

简答题:

1 . What is unit testing? 什么是单元测试?

答:单元测试是测试各软件组件,单独使用存根和/或驱动程序的过程。模块接口进行测试,以便正确的信息流。本地数据的完整性进行审查。边界条件测试。应使用基本路径测试。

2. List four types of systems tests. 列出系统测试的四种类型

答: 恢复测试

·安全性测试

·压力测试

·性能测试

3. What are the key differences between validation testing goals and acceptance testing goals?

验证测试目标和确认测试的目标之间的主要区别是什么?

答:

(1) 在验证测试中,测试团队的目的,以确保每个软件的功能或性能特点符合其规格。

(2) 在确认测试中,测试团队需要确保软件正常工作为目的的用户在他或她的正常工

作环境。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top