软件工程概论

软件开发新方法 ——过程模式

总体说明:

目前 ,软件开发的复杂性不断提高 ,过程模式为减少软件开发过程中的复杂性提供了 一个很好的工具 ,为给定的任务提供了一个结构化的方法 。文中首先阐明了过程 、模式 ,以及过程模 式的定义 ,接着描述了过程模式的 3 种类型 :任务过程模式 ,步骤过程模式 ,阶段过程模式 。过程模式 是实践验证的软件开发方法 ,软件开发机构可用它来提高软件的质量 、可维护性和可扩展性 。

软件开发的复杂性已经达到了一个空前的高度 ,为了使软件以更快的时间占据市场 ,使系统更加 灵活耐用 ,需要采用能够减少现在软件开发固有复杂 性的工具 。过程模式就是这个领域内的一个很好的工 具 。在软件体系结构领域 ,人们比较熟悉的是设计模 式 。设计模式为一般的复用问题提供了一个适用的解决办法 ,而过程模式在开发过程中为如何有效地执行离散的任务提供了指导 ,也就是说 ,过程模式为一个给定的任务提供了一个结构化的方法 。

在需要用设计模式和分析模式提出解决方案的领 域和问题中 ,在处理相同类型问题的情况时有发生 ,不仅 如此 ,在那些软件专业人员用以解决机构内重复发生 的问题的策略中 ,处理相同类型问题的情况也屡见不 鲜 。这些策略都可以用过程模式描述 。过程模式描述 了一系列用来开发面向对象软件的通用技术 、行为以 及各种与/ 或任务 。它们是一些可以复用的积木 ,软件 开发机构可以利用它们来开发满足确切需求的可裁剪的软件过程 。

详细介绍

1.过程模式的定义

所谓“过程”,它被定义为一系列行为 。在这些行为中,有 1 个或多个输入并产生 1 个或多个输出 。给 出“模式”的定义要稍微困难一些 。正如 Alexander 1 在定义模式时暗示的那样 ,尽管模式的主要特性的具 体细节表现不同 ,但其主要特性总是不断发生 。尽管 每一个建筑都是独一无二的 ,但是 Alexander 1 还是向我们展示

1

了每个建筑都可以按照一系列通用模式来建造 。换句话说 ,模式就是对常见问题的通用解决方案 ,而专门的解决方案则由此而来 。

Alexander 1 认为 :模式的重复与部件的重复相比较 ,两者是截然不同的 。事实上 ,因为模式是相同的 , 所以各个部分的不同是唯一的 。

Coplien 2 将“过程模式”定义为 : 过程就是在组织 内部的行为模式 。

本文将“过程模式”定义为一系列用来开发面向对象软件的通用技术 、行为与/ 或各种任务 。过程模式的 一个重要特性在于 ,它只描述了一个软件开发人员应 该做什么 ,而没有确切地说明应该做哪些细节 。当过 程模式能够被有组织地应用在一起时 ,它们就可以被 用来为软件开发机构生成软件过程 。因为过程模式并 没有指定如何完成一个给定的工作 ,它们能够成为可复用的积木 。软件开发人员可以据此来定制一个满足软件开发机构的特定需求的软件过程 。

与过程模式相关的还有组织模式 ,这种模式用来 描述通用的管理技术或者组织结构 。实际上 ,过程模式和组织模式是协同工作的 。

2过程模式的分类

过程模式的一个重要特性就是对于软件开发的所 有方面都可以开发过程模式 。Alexander 1 认为 ,模式可以在各种层次上存在。

过程模式有 3 种类型 ,按规模递增顺序依次为

: a) 任务过程模式 。这类过程模式描述了执行特 定任务的详细步骤 ,例如技术复审过程模式和首次复用过程模式 。

b)步骤过程模式。这类过程模式描述了单个项目步骤中经常反复出现的做法,项目步骤是过程模式更高层的形式 ,通常由多个任务过程模式组成 。软件过程中每个项目步骤都必须提交步骤过程模式 。

c) 阶段过程模式 。这类过程模式描述了在单个 项目阶段中各个步骤过程模式之间的交互 ,例如初始 阶段和交付阶段 。构造阶段作为一个阶段过程模式 , 是 2 个或

2

多个步骤过程模式的集合 。无论是结构化开 发还是面向对象开发 ,项目阶段都被依次完成 。许多 被反复执行的步骤过程模式组成了阶段过程模式 ,而 这些阶段过程模式又顺序地被执行 。

下面分别为这 3 类过程模式提供了一个例子 。这 些例子都来自面向对象软件过程 ( OO SP) 的过程模式 语言 。OO SP 是一个由阶段过程模式 、步骤过程模式 和任务过程模式组成的生命周期 。

3.任务过程模式---技术复审

对在开发阶段创造的可交付使用的产品进行确认,以确保其能满足用户群体的需要及其机构的质量标准。

过程模式 高级的管理技术能确保开发团队开发出满足用户 群体需要的高质量的可交付使用的产品 。对于所创建 的可交付使用的产品以及如何使他们的工作适用于整 个软件开发工程 ,开发团队和复审者应该有一个较好 的沟通理解 。在复审期间 ,每个开发团队成员和复审 者应该学习新的技术 ,包括可交付使用产品的使用技 术 、复审时应用的管理技术以及复审期间提高可交付 使用产品质量而使用的开发技术 。

3 . 1 推动力

有以下几个实用的推动力激发了技术复审过程模 式的产生 : a) 在开发过程 中 产 生 的 可 交 付 使 用 的 产 品 ( 模 型 、原型 、文档 、源代码等) ,帮助详细说明了那些发布 给用户群体的软件和相关产品 ,这样 ,软件开发人员就 可确认每个可交付使用的产品在使用前质量足够好 。b) 在开发生命周期中检测到缺陷越迟 ,则修正这 些缺 陷的花费就像滚雪球一样越滚越大 ,所以 ,软件开 发人 员要尽可能早地检测到缺陷 ,尽早修正这些缺陷 , 当然花费也少 。 c) 因为一个人很难检测自己的工作 ,那么就需要 “第二组眼睛”来检测一个可交付使用的产品 。 d) 在工作上人们进行交流的方法之一就是让同 一开发团队的程序员互相检测其可交付使用的产品 。

3 . 2 前提条件

技术复审的前提条件是 : a) 有 1 个或多个可交付使用的产品 。 b) 这些产品已

3

经准备好了被复审 。 c) 开发团队准备好了复审这些产品 。

3 . 3 解决方案 图 1 显示了技术复审 ( 模型复审 、文档复审 、原型 复审 、需求复审和代码检查是紧随着技术复审过程模 式的所有指定过程) 的 6 个基本步骤 :开发团队为检测 进入构造阶段的途径有从初始阶段进入或从操作 维护阶段进入两种 。在创建阶段可能开始之前肯定会 遇到以下情况 : a) 应提供和更 新 关 键 的 项 目 管 理 文 件 ( 项 目 计 划 、估价 、进度表 、风险评估等) 。 b) 定义项目的底部结构 ,至少是项目底部结构的 大部分 ,这样 ,工具 、过程和标准就可以被软件开发团 队利用 。 图 2 编程步骤过程模式 c) 对程序员的软件的高层次要求以及计划表应 该被代替 。

4 步骤过程模式 ———编程

确切地讲 ,软件开发的一个重要方面是源代码的 3 任务过程模式 ———技术复审 对在开发阶段创造的可交付使用的产品进行确 实际开发 。有经验的开发者知道 ,有很多事情需要去 设计而不是简单地坐在计算机前面输入源代码 。编程 步骤过程模式描述了设计中反复执行的任务及行为 。

4 . 1 推动力 编程的推动力是 : a) 程序员开发软件以满足用户群的需要 。 b) 源代码反映了可交付产品包含的信息 ,同时 , 当程序员获得对领域的详细的理解 ( 通常比建模者更 加详细) 时 ,促进这些可交付产品产生变化 。 c) 许多机构希望开发的软件具有及时性和高效 性 ,同时还具有可维护性和可扩展性 ,这样便于以后进 行及时和有效的修改 。

4 . 2 前提条件 在开始编码以前肯定会遇到以下 几种情况 : a) 程序员的设计模型要代替其想要编写的源代 码 。 b) 在初试化阶段定义底部结构步骤的期间 ,替换 程序员的项目底部结构 ,并进行定义 。这个底部结构 包括了程序员用到的开发和支持工具以及程序员需要 遵守的标准和指导方针 。 c) 程序员必须有能力做这项工作 。

4 . 3 解决方案 图 2 描述了编程步骤过程模式 ,图中显示了与简 单地编写源代码相比需要做更多的工作 :理解模型 ,找 出可复用的部分以减轻工作压力 ,证明要编写的内容 , 编写代码 ,检查和改进 ,测试和修正 ,最后打包 。 在开 始编写代码以

4

前 ,程序员首先要花费一些时 认 ,以确保其能满足用户群体的需要及其机构的质量 标准 。技术复审任务过程模式描述了如何对 1 个或多 个可交付使用产品的复审进行组织 、处理和继续研究 。

5 阶段过程模式

创建阶段的主要目标 ,即 OO SP 的第 2 个阶段 ,是创建过程模式 要创建准备被检测的工作软件并把它交付给用户群 。 这个软件将会附带模型和用于开发的源代码 、一个用 于确认软件工作的检测计划 、可以用于以后项目中的 任何可复用的内容 ,初始化文档和培训计划也支持该 软件 。

5 . 1 推动力

推动力适用于创建阶段 : 对高级管理和开发

5 . 2 解决方案

在开始编写源代码以前 ,首先应撰写文档 。经验 显示 ,在开始工作时 ,写下关于编码逻辑的简要内容的 程序员比不这样做的程序员明显具有更强的创造性 。 在整个编码过程中 ,程序员必须坚持不懈地使源 代码和模型同步 。 一个开发团队编制的源代码将被 全部或部分地被 检测 。准备代码检测要应用到技术复审任务过程模 式 ,程序员应该相当确信他的代码会通过检测 ,这意味 着这些代码确保了设计 ,遵守了标准 ,组织结构很好 , 很容易被理解 ,编写得也很好 。 如果一个程序员想在最后进行优化 ,那么他需要 这样做 :如果他的一小部分代码占据了绝大部分的运 行时间 ,这些代码就是他需要优化的 。一个没有经验 的程序员所犯的典型错误就是努力优化所有的代码 , 甚至那些已经运行得足够快的代码 。 创建一个结构就是用例如 J ava 和 C++ 语言来编 辑和连接程序员的源代码 ,或者用 Smalltalk 语言把程 序员的代码打包 。 应考虑下面这些在编程阶段前遇到的情况 : 代码 通过了检测 ;代码正常工作 (通过了检测) ;代码被充分 优化 ;完整和打包应用软件以便交付 。 图 3 显示了创建阶段过程模式 。其中一个很重要 的暗示是 :程序员进入一个创建阶段时 ,并不是一切从 零开始的 ,而是已经定义好了重要的管理文件 ,例如项 目计划 、最初的风险评估 、最初的应用需求 、项目底部 结构 ,项目的资金和计划也已经得到 。创建阶段的 4 个

5

步骤是紧密相连的 。通过应用图表 、文档和原型 ,建 模步骤关注于技术与/ 或问题域的提取 。编程步骤关注的是程序源代码的开发和文件 ,归纳步骤着 重于程序员的所属机构对复用所做的努力 ,它关注于 识别可复用的项目或那些经一个软件项目修改后就变 得可复用的项目 。SMALL S TA GE 测试的目的 ,是为 了检验和确认创建阶段的其他步骤中开发的可交付使 用的产品 。在许多方面 ,这个阶段和建筑界的单元检 查是等同的 ,并与质量保证技术 (例如代码检查和技术 检测) 结合在一起 。

5 . 3 终止条件

宣布代码冻结后 ,构造阶段便成功结束 。正式冻 结一个代码或冻结一个开发过程后 ,随后的可交付产 品必须放在它本来位置 :模型 (典型模型 、实例模型 、流 程图等) 、需求分配矩阵 ( RAM) 、源代码 、熟练检测/ 质 量保证计划 、用户文件 、操作文档 、支持文件 、软件本 身 、训练计划 、发布计划和课程学习 。这时 ,程序员的 小规模测试 、归纳 、大规模测试 、重写 、发布 、评估 、支 6 软件开发中采用过程模式的必要性 过程是很好的针对软件开发的通信机制 ,这个机持 、识别缺陷和增强 ,每一个步骤都被描述成一个步骤 过程模式 。在一个单独的项目阶段范围内 ,项目步骤 以不断反复的方式执行 。在 OO SP 内 ,项目阶段以连 续方式执行 。 在软件开发的执行过程中 ,过程模式为有效地执 行任务提供了具体的指导 。在软件开发方法和过程专 家的指导下 ,过程模式的实际应用以一个高效 、可预见 的方式加速了高质量软件的设计 。如上所述 ,过程模 式是一个软件开发机构定制及定义一个成熟软件过程 的关键 。 制在实践中证明是行之有效的 。过程模式是可重复使 用的积木 ,通过它 ,一个软件开发机构可以裁剪一个成 熟的软件过程 。例如 ,图 4 描述了 OO SP 。OO SP 由 4 个连续的阶段 (初始化 、创建 、发布 、维护和支持) 组成 , 这 4 个阶段分别由反复执行的步骤组成 。简 要说明了对于项目成功至关重要的若干任务 ,这些任 务又被应用到开发的每个步骤中 。步骤过程模式和阶 段过程模式就像图 4 底部指出的那样 ,其内容依次被 任务过程模式增强 。在 OO SP 形式下 ,过程模式已经 被用于构建成熟软件过程 ,从而开发出使用对象技术 的大规模 、支持关键性任务的软件 。

6

对比分析:

,软件开发的复杂性已经达到了一个空前的高度 ,为了使软件以更快的时间占据市场 ,使系统更加 灵活耐用 ,需要采用能够减少现在软件开发固有复杂 性的工具 。过程模式就是这个领域内的一个很好的工 具 。在软件体系结构领域 ,人们比较熟悉的是设计模 式 。设计模式为一般的复用问题提供了一个适用的解决办法 ,而过程模式在开发过程中为如何有效地执行离散的任务提供了指导 ,也就是说 ,过程模式为一个给定的任务提供了一个结构化的方法 。

过程模式描述 了一系列用来开发面向对象软件的通用技术 、行为以 及各种与/ 或任务 。它们是一些可以复用的积木 ,软件 开发机构可以利用它们来开发满足确切需求的可裁剪的软件过程 。

心得体会:

软件工程概论是一门很好的课程,虽然我是一名会计专业的学生,但是老师深入浅出的讲解,让我懂得了很多我以前都不明白的知识,为我以后的学习打下了扎实的基础。现我的课程总结如下:软件工程学科具有知识面广、发展迅速、实践性强等特点。《软件工程概论》作者针对软件工程的学科特点,在系统讲解软件工程理论、方法和工具的同时,注重结合实例分析软件工程方法、技术和工具的综合应用;在兼顾传统的结构化方法的同时,注重介绍广为采用的面向对象方法。我学习此课程受益良多。

7

 

第二篇:软件工程概论复习题(答案)

软件工程概论复习题答案

一、单选题

1.软件工程的纵向分解是把软件开发分为几个(  B   )

A.模块             B.阶段         C.子系统           D.过程

2.McCall软件质量度量模型中属于面向软件产品操作的是(  D  )

A.适应性            B.可重用性      C.可测试性          D.可用性

3.快速原型模型中,用于及早向用户提交一个原型系统的是( D   )

A.实验型原型         B.探索型原型      C.提交型原型         D.演化型模型

4.软件维护中,因重新初始化控制标志或指针而引起的错误是以下哪一项的副作用(   )

A.文档            B.数据         C.编码         D.设计

5.软件维护费用高的主要原因是(   )

A.生产率高    B.生产率低         C.人员多     D.人员少

6.根据对软件开发机构调查的结果可知,各类维护活动所占的比重是(   )

A.完善性占50%,适应性占25%,校正性占21%,其他维护占4%

B.完善性占25%,适应性占50%,校正性占21%,其他维护占4%

C.完善性占21%,适应性占25%,校正性占50%,其他维护占4%

D.完善性占21%,适应性占50%,校正性占25%,其他维护占4%

7.下列属于用白盒技术设计测试用例的是(   )

A.错误推测    B.逻辑覆盖       C.等价类划分   D.因果图

8.有助于培养良好的编程风格并且第一个体现了结构化编程思想的程序设计语言的是(  A )

A.PASCAL    B.FORTRAN           C.DL/1       D.C

9.在软件详细设计过程中不采用的工具为( C  )

A.判定表    B.PDL         C.数据流图    D.IPO图

10.根据输入输出的数据结构产生程序结构的设计方法是( B  )

A.PARNAS方法 B.JACKSON方法   C.WIRTH方法  D.DIJKSTRA方法

11.在软件设计中,为解决一个大而复杂的问题把软件系统划分为一个个完成某一特定的子功能的方法称为(   C

A.细化         B.结构化       C.模块化     D.抽象化

12.结构化方法在建立软件系统的结构模块时按照以下哪种方法进行?(  B  )

A.由底向上       B.自顶向下        C.随机         D.回归

13.两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为( C   )

A.控制耦合       B.公告耦合         C.标记耦合        D.数据耦合

14.结构化设计是以哪个阶段产生的DFD图为基础,按一定的步骤映射成软件结构?( B  )

A.可行性分析        B.需求分析        C.概要设计        D.详细设计

15.结构化方法的基本原则是功能的分解和(  C  )

A.模块化    B.信息隐藏        C.抽象     D.细化

16.数据字典和数据流图共同构成了系统的( B   )

A.物理模型         B.逻辑模型        C.原型         D.目标模型

17.软件需求不应包括( C   )

A.功能要求       B.环境需求      C.标准实现的空间需求     D.用户界面要求

18.项目开发计划是什么类型的文档?(  D  )

A.设计性      B.进度表示        C.需求分析       D.管理性

19.瀑布模型是一种什么类型?(  B  )

A.风险驱动模型     B.线性开发模型         C.增量模型        D.迭代模型

20.软件工具一般是为软件开发人员和维护活动而使用的( C   )

A.硬件环境      B.说明书      C.软件      D.程序

21.瀑布模型存在的问题是( B   )

A.用于容易参与开发   B.缺乏灵活性  C.用户与开发者易沟通    D.适用可变需求

22.可将软件生存周期划分为3个过程,可行性研究属于其中的( A   )

A.软件定义过程   B.软件开发过程  C.软件设计过程    D.软件运行与维护过程

23.经济可行性研究的范围包括( C   )

A.资源有效性   B.管理制度        C.效益分析       D.开发风险

24.需求分析中开发人员要从用户那里了解( A   )

A.软件做什么      B.用户使用界面        C.输入的信息     D.软件的规模

25.交互设计不包括(  C  )

A.角色设计       B.目标设计         C.算法设计      D.任务设计

26.一个模块的( )是指能直接控制模块的模块数。

A.扇出数    B.扇入数          C.宽度      D.深度

27.将软件组装成系统的一种测试技术叫(  A  )

A.集成测试    B.单元测试        C.集合测试   D.系统测试

28.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为(  D  )

A.纠错性维护     B.适应性维护       C.改善性维护   D.预防性维护

29.项目管理中成本估算时测算快,误差大,适用于准备开发阶段的估算方法是( B   )

A.类比估算法    B.专家估算法      C.参数估算法     D.COCOMO方法

30.面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(  ),一个类获得其父类的全部描述(数据和操作)。

A.传递性      B.继承性         C.复用性      D.并行性

31.软件生命周期中所花费最多的阶段是(    )

A.详细设计  B.软件编码   C.软件测试 D.软件维护

32.在纤细设计阶段,经常采用的工具有(  A 

A.PAD        B.SA          C.SC          D.DFD

33.对象实现了数据和操作的结合,使数据和操作(  C  )于对象的统一体中。

A.结合       B.隐藏       C.封装        D.抽象

34.统计表明,软件测试工作往往占软件开发总工作量的( B   )%以上。

A.20          B.40          C.60        D.80

35.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是(  A 

A.容错技术      B.避开错误技术      C.检测技术      D.排错技术

36.软件复杂性的常用度量方法包括(  D  )

A.BOEHM度量法   B.可扩充度量法     C.线性度量法      D.代码行度量法

37.面向对象的要素包含(  B  )

A.对象的唯一性      B.抽象            C.继承性        D.分类性

38.构造原型时,主要考虑( B   )

A.全部功能     B.原型要体现的特征        C.全部细节    D.全部要求

39.维护中,因修改文件的打开或关闭而引起的错误是(  C  )

A.文档副作用   B.数据副作用       C.编码副作用    D.设计副作用

40.诊断和消除程序在使用过程中发生错误的过程称为(  A  )

A.校正性维护     B.适应性维护       C.完善性维护    D.预防性维护

42.在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为( D  

A.确认测试       B.系统测试       C.渐增式测试      D.非渐增式测试

43.源代码的可维护性表现了程序设计语言的(  B  )

A.心理特性     B.工程特性       C.技术特性      D.传统特性

44.以下软件生存周期的活动中,要进行软件结构设计的是( B   )

A.测试用例设计  B.概要设计     C.程序设计      D.详细设计

45.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是(  C  )

A.结构化语言    B.PAD图      C.判定表       D.程序流程图

46.需求分析方法必须能够表达和理解问题的数据域和(  C  )

A.数据流       B.用户类型       C.功能域     D.应用领域

47.在软件生存期的各个阶段中跨越时间最长的阶段是(  D  )

A.需求分析阶段      B.设计阶段       C.调试阶段      D.维护阶段

48.软件工程管理的对象是(  B 

A.软件开发人员     B.软件工程项目    C.软件开发过程     D.软件开发速度

49.CMM表示(  A  )

A.软件过程成熟度模型            B.软件过程工业化控制

C.国际软件质量认证              D.软件统一性标准

50.自底向上的成本估算法的特点是(  B  )

A.简单、工作量小、误差大          B.精度高,但缺少子任务(模块)间的联系

C.估算较精确,但区分类比较困难    D.复杂、不可行,一般不采用此种方法

二、简答题

1答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。

需求分析的基本任务包括:

(1)抽取需求:分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。

(2)模拟和分析需求:需求分析和模拟又包含三个层次的工作。首先是需求建模。需求建模的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型的要求包括实现的独立性;不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。

(3)传递需求:传递需求的主要任务是书写软件需求规格说明。

(4)认可需求:对需求规格说明书达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。

(5)进化需求:客户的需求总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。

2答:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。

3软件费用、软件可靠性、软件可维护、软件生产率和软件重用。

4软件配置管理用于整个软件工程过程。其目的是协调整个软件的开发,使得混乱减少到最小程度,使得变更所产生的错误达到最小并最有效地提高生产率;它的主要目标是:标识变更;控制变更;确保变更的正确实现;报告有关变更。

5软件复杂性主要表现在程序复杂性,而程序的复杂性主要是指模块内程序的复杂性。它直接关联到软件开发费用的多少、开发周期长短和软件潜伏错误的多少。减少程序的复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜伏错误减少。

6软件产品作为逻辑产品,具有无形性、生产就是开发研究、不会坏、不会磨损、成本昂贵、生产主要靠脑力劳动。

7结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。准则:高内聚、低耦合,作用范围在控制范围内,软件的深度、宽度、扇入、扇出适当、模块大小适中,接口简单清晰易懂。

8测试是为了发现错误而执行程序的过程。

一个好的测试用例能够发现至今尚未发现的错误。

一次成功的测试是发现了至今尚未发现的错误的测试。

软件测试的原则:设计测试用例时,要给出测试的预期结果。

要设计不合理输入的测试用例。

除了检查程序是否做了应该做的工作,还有检查程序是否做了不应该做的工作。

应制订测试计划并严格执行,排除随意性。

长期保存测试用例,为维护提供方便,在对程序进行修改之后,要进行回归测试。

充分注意测试中国的群集现象。

9使用有可维护性的程序设计语言、及时更新文档、使用先进技术和工具、明确软件质量目标、明确质量保证工作。

10把被测试对象看成一个黑盒子,测试人员完全不用考虑程序的内部结构和处理过程。

11将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型,它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。

12系统顺序图表示参与者与系统的交互以及由他们启动的系统操作,是一个用来表示用例特定场景、外部参与者产生的事件、它们的顺序以及系统之间事件的描述。所有的系统都被当做黑箱,图的重点是从参与者跨越到系统边界的事件。即用于说明与系统相关的输入和输出事件,是一个可以快速、方便创建的工作,UML可以用顺序图的形式来表示从外部参与者发送给系统的事件。

13.解释顺序图

采用一种类似于栅栏的格式表示对象之间的交互,在顺序图中在,在右边添加新对象。优点是可以清楚地表示消息的顺序或时序、简单的表示法。缺点是增加新对象时被迫向右扩展,占用水平空间。

14.以图或网络的格式表示出对象之间的交互,对象可以放置在图的任何地方。优点是节省空间,可以较好地展现复杂的分支、迭代以及并发行为,特别当在一个较窄的页面上绘制图时,协作图因在垂直方向上添加新对象而体现其优势。缺点是难以观察消息的顺序,较复杂的表示法。

15软件架构是一组有关如下要素的重要决策:软件系统的组织、构成系统的结构化元素、接口和它们相互协作的行为的选择,结构化元素和行为元素逐步组合成粒度更大的子系统的方式的选择,和指导这一组织——元素及其接口、协作和组合方式——的架构风格的选择。

架构架构的分类:

(1)架构模式:有关大尺度和粗粒度的设计。例如层模式将系统组织成不同的层;

(2)设计模式:有关中小尺度的对象和框架的设计,应用在实现架构模式定义的大尺度元素的连接解决方案中,也适用于任何局部的详细设计。也称为微观架构模式。

(3)习惯用法:面向语言或实现的低层设计解决方案。例如单子模式。

16UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。

三 应用题。

1

2.根据下列条件使用边界值分析法设计测试用例:

某一8位微机,其十进制整数定义为:以非零开头的数是十进制整数,其值的范围是-128~127,如123,-45,0.

3.一实时监护系统的中央处理机的功能如下:

(1)由定时检测系统取得各个监护病员的生理数据(脉搏,体温,血压)经合法性检查后,与预先保存的每一病号生理临界数据进行比较;

(2)如发现超越临界则启动自动报警装置发出警报信号;

(3)定时检测的数据将格式化并被记入日志文件;

试根据要求画出该问题的数据流图或者用例图。

6.请画出活动图

一个在学校首次报名的UML活动图。场景如下:

(1)   新生首先填写注册表格,可以寻求帮助填写表格;

(2)   表格验证通过后,学校审核注册内容;

(3)   如果注册内容审核不通过,不能注册;

(4)   如果注册内容审核通过,进入大学概括介绍,并参加相关研讨会,缴纳学费。

相关推荐