提示:本文为VIP文章,不愿开会员的同学可以 【点击此处】 单次付费阅读
第一部分 概览
第1章 引言
- 什么是软件建模?
OMG:建模就是在编码之前对软件应用的设计。在系统实现之前,对模型进行构造和分析,并用于指导后继的实现过程 - 什么是统一建模语言(UML)?
OMG:为面向对象模型的描述提供的一种标准化的图形语言和表示法 - 什么是软件体系结构?
软件系统的总体结构。将系统总体结构(包括构件及其连接关系)与各个构件的内部细节分离。 - 什么是软件设计表示法?
一种使用图形或文本方式或同时使用图形和文本描述软件设计的方法。 - 什么是软件设计思想?
一种可以用于设计系统的根本性的思想。例如,信息隐藏是一种软件设计思想。 - 什么是软件设计策略?
一种对设计的整体性规划和方向性指导。例如,面向对象的分解是一种软件设计策略。 - 什么是软件结构组织准则?
用于帮助设计者将软件系统组织为构件的启发式规则或指导方针。例如,对象结构设计准则为如何将系统分解为对象提供了指导方针。 - 什么是软件设计方法?
一种描述了用于在给定的应用系统软件需求基础上创建一个设计方案的步骤序列的系统化方法。这种方法可帮助设计者或设计团队确定需要做出的决策、做出决策的顺序以及决策时使用的结构设计准则。 - 什么是平台无关模型(PIM)?
PIM是一种在采用特定平台的决策做出之前描述软件体系结构的精确模型。 - 什么是平台相关模型(PSM)?
映射到特定平台上的一种精确的软件体系结构模型
第2章 UML表示法概述
-
在用例图中,参与者(Actor)如何表示?
用一个小人表示 -
在用例图中,用例(Use Case)如何表示?
用椭圆形表示 -
在类图中,类(Class)如何表示?
用一个方框表示,里面可以划分出类名、属性、操作
-
在类图中,关联如何表示?
用棍刑箭头或者画在中间的黑色三角形表示
-
在类图中,类元素的公有可见性如何表示?
public(+) private(-) protected(#)
-
UML交互图有哪两种类型?
通信图:展示了合作对象间如何通过发送与接收消息进行动态的交互
序列图:将对象交互通过时间序列的方式进行描述
-
交互图用来描绘什么?
对象和消息:对象之间是如何交互的 -
状态图用来描绘什么?
状态和事件:对象内(间)的状态转换 -
UML包是什么?
包是一组建模元素的组合,例如代表一个系统或一个子系统。 -
部署图用来描绘什么?
以物理结点和结点间物理连接的方式描绘系统的物理配置
第3章 软件生存周期模型和过程
- 什么是软件生存周期?
软件生存周期是以开发软件为目的的一种分阶段方法,在每一阶段都有特定的交付物和里程碑。
软件生存周期模型是软件开发过程的抽象,它能简便地用于规划软件开发的整体过程。 - 瀑布生存周期模型是什么?
瀑布模型是对早期软件项目所使用的较为散乱的开发方法的一种重要改进,是一个理想化的过程模型,它规定每一阶段完成后才能启动下一阶段,另外,一个项目在没有迭代和重复的情况下从一个阶段移动到下一个阶段。 - 瀑布生存周期模型的局限性有哪些?
- 软件需求作为软件开发项目中的一个关键因素,无法进行合适的测试,直至一个工作系统被开发出来并能演示给最终用户。
- 只有在生存周期的后期才能得到一个工作的系统。因此,直到系统几乎可以运行时,一个重要的设计或性能问题才有可能被发现。
- 哪个原型能克服瀑布模型中"除非一个可用的系统被开发完成,否则不适合测试软件需求"的局限性?
抛弃型原型。一个抛弃型原型能够在一个初步的需求规约被制定之后就被开发出来。通过让用户使用原型,可以得到许多通常难以得到的有价值的反馈。以这些反馈为基础,就可以准备制定一个修订的需求规约。 - 什么是演化式原型?
增量开发的一种形式。在增量开发中,原型从几个中间步骤的可运行系统逐步演化为可交付系统。该方法可用于确定系统是否满足性能目标,并用于测试设计中所涵盖的关键构件。 - 螺旋模型强调的方法是什么?
螺旋模型是一个风险驱动的过程模型,强调“风险驱动开发”。
步骤:- 定义目标、候选方法和约束
- 分析风险
- 开发产品
- 计划下一次循环。对此次循环
- 软件确认的目标是什么?
确保软件开发团队“构建了正确的系统”——确保系统符合用户的需求。 - 软件验证的目标是什么?
确保软件开发团队“正确地构建了系统”——确保软件系统在每一个阶段中的构造与前一个阶段所定义的规约相符合。 - 什么是“白盒”测试?
需要了解软件的内部知识的测试。单元测试和集成测试是“白盒”测试方法。 - 什么是“黑盒”测试?
不需要了解软件的内部知识的测试。系统测试是基于软件需求规约的“黑盒”测试方法。
第4章 软件设计和体系结构概念
- 面向对象的概念有哪些?
类、继承、多态、信息隐藏 - 对象的特性?
一组数据(属性)和对数据的操作 - 什么是类?
具有相同特征的对象的集合。 - 什么是类的操作(或方法)?
从设计的视角来说,一个对象涵盖了数据(data)以及作用于数据之上的过程(procedure),这些过程通常被称为操作(operation)或者方法。操作是由一个对象所执行的一项功能的规约。一个对象可拥有一个或多个操作。 - 什么是操作的签名?
一个操作的签名(signature)代表该操作的名字、参数以及返回值。 - 什么是类的接口?
一个类的接口(interface)是它提供的操作的集合,这些操作通过签名定义。 - 什么是属性?
属性(attribute)是由类中的对象所持有的一个数据值,每一个对象的属性都有一个特定的取值。 - 什么是软件设计的信息隐藏?
信息隐藏是与所有软件系统设计相关的一个基本的软件设计概念。一个对象中不需要被其他对象看到的那些部分应当被隐藏起来,此时,如果对象的内部发生变化,仅仅会影响这个对象。通过使用信息隐藏,开发者能够通过大量减少或者在理想情况下完全消除全局数据的方式将软件系统设计得更易修改。 - 什么是数据抽象?
将数据结构封装在一个对象之中,仅能通过对象的操作才能直接地访问该数据对象。当数据结构发生变化,仅会对包含该数据结构的对象产生影响。由这个对象支持的外部接口不会发生改变,因此间接访问这个数据结构的对象不会受到这个变化的影响。这种信息隐藏的形式被称为数据抽象(data abstraction)。 - 什么是继承?
继承是在不同类中分享和复用代码的机制。
第5章 软件建模和设计方法概览
- 名词解释
- COMET(Collaborative Obiect Modeling and Arch-itectural Design Method,协作的对象建模和体系结构设计方法):一个迭代的用例驱动和面向对象的方法,它特别强调了软件开发生存周期的需求、分析和设计建模阶段。
- COMET(Collaborative Obiect Modeling and Arch-itectural Design Method,协作的对象建模和体系结构设计方法):一个迭代的用例驱动和面向对象的方法,它特别强调了软件开发生存周期的需求、分析和设计建模阶段。
- 需求建模过程中会进行哪些活动?
在需求建模阶段,所开发的需求模型使用参与者和用例描述了系统的功能性需求。每个用例要开发一个叙述性描述。在此过程中,用户的输入和主动的参与是必不可少的。 - 分析建模过程中会进行哪些活动?
在分析建模阶段,要开发系统的静态和动态模型。静态模型定义了问题域类之间的结构关系。这些类及其