软件工程习题与答案(3)

2020-05-01 11:04

求。

(6) 问题:“如何验证合法性”是存在歧义的。

改正:ATM系统将通过用户名和口令验证其存取的合法性。

(7) 问题:所有命令中必然会包括BUILD命令,因此这两个需求描述是矛盾的。

改正:去掉关于BUILD命令的需求描述。

(8) 问题:该描述不是功能需求或非功能需求,应该是对设计实现的一个约束条件。 3. 需求工程包括哪些基本活动?每一项活动的主要任务是什么? 需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:

(1) 需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,

使各种人员达成一致的理解和认可。

(2) 需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。

(3) 需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的

需求。

(4) 需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确

性和清晰性。

(5) 需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。 4. 请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。 (1) 用户面谈 优点:

??可以与项目相关人员一对一地进行交谈和讨论; ??具有私密性,使被访者可以直率地和无隐瞒地回答问题;??便于探查一些附加信息或反馈信息; ??有利于与客户建立良好的关系。 缺点: ??面谈是一种非常费时和高成本的方式; ??难以解决不同的项目干系人之间的冲突和矛盾;

??在地理位置相距较远的情况下很难实施。

适用场合: ??适用于在初步理解整体概念的情况下讨论和交流一些细节问题。 (2) 需求专题讨论会 优点: ??有助于了解系统需求; ??有利于共享系统开发的成果; ??给用户一种主人的感觉;

??可以与足够多的项目干系人进行讨论和交流,且节省时间; ??支持头脑风暴

式的讨论。 缺点: ??需要占用参与人员比较长的整块时间; ??主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。 适用场合: ??适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。

(3) 观察用户工作流程 优点: ??通过直接观察的方式提取用户或系统的特性; ??有助于理解难以用语言描述清楚的复杂业务。 缺点: ??观察可能使用户紧张,从而表现得与往常不同。 适用场合: ??适用于理解难以用语言描述清楚复杂业务过程。 (4) 原型化方法 优点: ??通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。 缺点: ??用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际

上该原型的内部结构和程序质量比较差。 适用场合: ??适用于用户需求不明确或描述不清楚的情况。

6. 在某些紧急情况下,软件可能在需求变更请求被批准之前就进行修改。请给出一个修改

过程模型,确保需求文档和系统实现不会产生不一致。 一般来说,应该尽量避免在需求变更请求被批准之前就直接修改程序的情况,这很容易导致变更失控而且需求描述与系统实现不一致。一旦出现这种情况,必须在系统变更完成后重新执行需求跟踪控制。 制定评审计划初始 需求文档 准备工作需求跟踪修改跟踪基线需求文档

第6章 面向对象基础

1. ( )模型是对现实的简化,建模是为了更好地理解所开发的系统。(A) 2. ( )UML语言支持面向对象的主要概念,并与具体的开发过程相关。(B) 3. 类的结构是( )。(E)

A. 由代码来表示 B. 由属性和关系来表示 C. 由操作来表示 D. 由对象的交互来表示

E. 选项B和C 4. 类的行为是( )。(A)

A. 由一组操作决定 B. 由类的属性决定 C. 对类的每一个对象唯一的 D. 由

父类决定 E. 选项A和B 5. ( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是

隐蔽的,外界只能通过有限的接口与对象发生联系。(C) A. 多态性 B. 继承 C. 封装 D. 消息 6. ( )意味着一个操作在不同的类中可以有不同的实现方式。(A)

A. 多态性 B. 多继承 C. 消息 D. 封装 7. UML是( )的缩写。(B)

A. Unified Module Language B. Unified Modeling Language C. Universal Module Leveling D. Universal Module Language 8. 顺序图反映对象之间发送消息的时间顺序,它与( )是同构的。(C)

A. 用例图 B. 类图 C. 协作图 D. 状态图

9. 定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具

体实现。(A)

A. 用例图 B. 类图 C. 活动图 D. 状态图 10. 状态图包括( )。(E)

A. 类的状态 B. 状态之间的转换 C. 类执行的动作 D. 触发类的动作的事件 E. 所有以上选项

1. 请解释下列术语,并举例说明之。

对象、类、属性、操作、关联、泛化、聚合、依赖

(1) 对象(Object) 对象是系统中用来描述客观事物的一个实体,它是构成系统

的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。 举例:中国就是一个对象。

(2) 类(Class) 类是具有相同属性和服务的一组对象的集合,它为属于该类

的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。 举例:学生、人、树木等都是类。

(3) 属性(Attribute) 属性是用来描述对象静态特征的一个数据项。

举例:学生具有姓名、性别、年龄等属性。 (4) 操作(Operation) 操作是类的实例被要求执行的服务,具有名字和参数列表。

举例:学生具有入学注册、选课等操作。 (5) 关联(Association)

关联是一种结构关系,说明一个事物的对象与另一个事物的对象之间的联系。 举例:学生与课程之间的关系就是关联,一个学生可以选修多门课程,一门课程也可以被多个学生选修。

(6) 泛化(Generalization) 泛化是一种一般事物(父类)和特殊事物(子类)之

间的关系。

举例:学生与研究生之间是泛化关系,研究生是一类特殊的学生。

(7) 聚合(Aggregation) 聚合是一种特殊类型的关联,描述了整体和部分间的结

构关系。

举例:学校和系之间存在聚合关系,系是学校的一个组成部分。 (8) 依赖(Dependency)

依赖是一种使用关系,描述了一个事物发生变化会影响到另一个使用它的事物。 举例:课程表使用课程,二者之间是依赖关系。 2. 请简要说明类图和顺序图的组成。

在系统中,类图由类、类的属性和操作以及类之间的各种联系所组成。

时序图表示对象之间的交互顺序,它由角色、对象、生命线和消息组成,其中角色代表与系统交互的外部事物。

3. 在软件开发过程中为什么需要建立模型? 答案要点:

在软件开发过程中,建立软件模型具有十分重要的作用,主要体现在以下方面: ??有助于问题的简化,通过抽象降低复杂性; ??有助于和其他开发小组成员、各种用户以及系统相关者进行交流; ??有助于维护人员了解软件设计的思路和细节,为以后的维护和升级提供了文档。 4. UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请指出下面关系的类型,并采用UML符号表示这些关系。

(1) 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么

学生和课程之间是什么关系?

(2) 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类

A和类B之间是什么关系?

(3) 接口及其实现类或构件之间是什么关系?

(4) 一个汽车有四个轮子,那么类“汽车”和“轮子”之间是什么关系? (5) 学生与研究生之间是什么关系? 参考答案:

(1)关联 (2)依赖 (3)实现 (4)聚合 (5)泛化

第7章 面向对象分析

1. ( )面向对象分析的核心在于建立一个描述软件系统的模型。(B)

2. 关于面向对象分析,下列的( )是正确的。(A)

A. 它是系统需求建模的方法 B. 它是分析系统设计的技术 C. 可以从分析直接编写代码 D. 在软件生命周期中,它出现在面向对象设计之

后 3. 下列的( )不是分析建模的目的。(C)

A. 定义可验证的软件需求 B. 描述客户需求

C. 开发一个简单的问题解决方案 D. 建立软件设计的基础 4. 下列的( )不属于面向对象分析模型。(C)

A. 用例图 B. 类图 C. 实体关系图 D. 顺序图 5. ( )分析类用于描述系统中概念层次的对象。(A)

6. 在分析类中,( )用于描述一个用例所具有的事件流控制行为。(D)

A. 实体类 B. 界面类 C. 接口类 D. 控制类

7. ( )在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实

例之间的消息传递将用例的职责分配到分析类中。(A) 8. 开发人员使用( )可以将用例的行为分配到所识别的分析类中。(B)

A. 用例图 B. 顺序图 C. 类图 D. 状态图 9. 分析模型一般采用( )方式进行验证。(C)

A. 总结 B. 阶段性报告 C. 需求分析评审 D. 转化成设计模型 10. ( )需求评审人员主要由开发人员组成,一般不包括用户。(B)

1. 面向对象分析包括哪些活动?应该建立哪些类型的模型?

面向对象分析的主要活动包括理解用例模型、识别分析类、定义交互行为、建立分析类图以及评审分析模型等。

面向对象分析应该建立功能模型、分析对象模型和动态模型等三种类型,其中功能模型由用例和场景表示,分析对象模型由类图和对象图表示,动态模型由状态图和顺序图表示。

2. 什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?

实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。 理解用例模型 识别分析类

定义交互行为建立分析类图评审分析模型

将分析类划分成这三种类型的好处在于: ??所产生的类更小更专门化; ??这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。

第8(1)章 软件体系结构设计

1. ( )系统体系结构的最佳表示形式是一个可执行的软件原型。(B) 2. ( )软件体系结构描述是不同项目相关人员之间进行沟通的使能器。(A) 3. ( )良好的分层体系结构有利于系统的扩展与维护。(A) 4. ( )消除两个包之间出现的循环依赖在技术上是不可行的。(B)

5. ( )设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。(A) 6. 程序编译器的体系结构适合使用( )。(A)

A. 仓库体系结构 B. 模型-视图-控制器结构 C. 客户机/服务器结构 D. 以上选项都不是

7. 网站系统是一个典型的( )。(C)

A. 仓库体系结构 B. 胖客户机/服务器结构 C. 瘦客户机/服务器结构 D. 以上选项都不是

8. 在分层体系结构中,( )实现与实体对象相关的业务逻辑。(D)

A. 表示层 B. 持久层 C. 实体层 D. 控制层 9. ( )可以帮助人们简单方便地复用已经成功的设计或体系结构。(B)

A. 商业组件 B. 设计模式 C. 遗留系统 D. 需求规格说明

10. ( )用于封装具体的平台,从而使应用程序可以在不同的平台上运行。(A)

A. 抽象工厂模式 B. 外观模式 C. 观察者模式 D. 以上选项都不是 1. 良好的软件体系结构设计有什么好处?

软件体系结构设计过程的核心在于建立系统的一个基本框架,即识别出系统的主要组件以及这些组件之间的通信。

良好的体系结构设计具有以下主要好处: ??项目相关人员之间的沟通:软件体系结构是系统的一种高层表示,它可以成为不同

项目相关人员之间沟通的使能器; ??系统分析:在系统分析过程中确定系统的初步体系结构,将对系统是否满足关键性

需求(如性能、可靠性和可维护性等)产生很大的影响; ??大规模复用:体系结构可以在具有相似需求的系统之间互用,从而支持大规模的复

用。

2.设计体系结构

3.什么是三层体系结构?优缺点?

第8章 面向对象设计

1. 面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模


软件工程习题与答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年六年级希望杯培训100题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: