第二章过程和生命周期的建模

合集下载

软件工程课件2过程和生命周期的建模

软件工程课件2过程和生命周期的建模
9
六、维护与运行阶段 在实际运行中不断修改、完善、维护, 使系统持久地满足用户的需要。
10
按照传统瀑布模型开发软件的特点
1.阶段间具有顺序性和依赖性。 2.推迟实现的观点。 3.每个阶段必须完成规定的文档;
每个阶段结束前完成文档审查,及早 改正错误。
11
§2.3 软件开发标准 软件产品的标准化
软件开发过程的标准化
12
❖ 主要的软件生存周期模型有瀑布模型、增量模型、 螺旋模型、喷泉模型、变换模型和基于知识的模 型。
3
可行性分析与 项目开发计划
可行性研究报告
需求分析
需求说明书
设计
设计文档
编码
程序
测试
测试报告
维护 与运行
4
一、可行性分析与项目开发计划阶段
1 主要任务:确定软件系统是否值得开 发即搞清楚问题的性质,确定系统的目 标和规模,从技术、经济和社会因素等 方面分析论证项目的可行性。 2 产品:可行性研究报告。这是部门负 责人决定是否进行这项工程的重要依据。 3 参加人员:由用户和高级程序员组成
5
二 、需求分析阶段
1. 主要任务:确定用户要求软件系统做什么。即了 解准备让计算机“干什么”事。 2. 产品:需求说明书—明确描述了用户的要求也就 是双方充分讨论交流后达成的一致协议。 3. 参加人员
6
三、设计阶段
1 概要设计:模块的分解即一个大程序应该 怎样由许多规模适中的模块按合理的层次结 构组织而成。 2 详细设计:考虑每个模块内部的细节。如: 流程、数据结构、数据库、代码设计等问题。 3 产品:模块说明书,数据库 4 参加人员
§2.1 过程的含义
软件工程过程规定了获取、供应、开发、操作 和维护软件时,要实施的过程、活动和任务。

软件工程第2章软件生存周期与软件过程

软件工程第2章软件生存周期与软件过程
软件工程第2章软件生存周期与软件 过程
用例驱动 ─ Concise, simple, and understandable
以体系结构为中心 ─ Effective basis for large-scale reuse
增量和迭代开发 ─ 基于风险前驱的原则,渐进地展开分析、设 计及其相关活动,每个迭代都会提供一次验 证和调整模型机会,推动软件质量的提升。
增量模型也存在以下缺陷 (1)由于各个构件是逐渐并入已有的软件体系
结构中的,所以加入构件必须不破坏已构造好 的系统部分,这需要软件具备开放式的体系结 构。 (2)在开发过程中,需求的变化是不可避免的。 增量模型的灵活性可以使其适应这种变化的能 力大大优于瀑布模型和快速原型模型,但也很 容易退化为边做边改模型,从而是软件过程的 控制失去整体性。
各阶段结束前都要对所完成的文档进 行评审,以便及时发现问题,改正错 误。
软件工程第2章软件生存周期与软件 过程
瀑布模型的缺点
(1) 各个阶段的划分完全固定,阶段之间产 生大量的文档,极大地增加了工作量。
(2) 由于开发模型是线性的,用户只有等到 整个过程的末期才能见到开发成果,从而增 加了开发的风险。
在增量模型中,软件被作为一系列的增量构件 来设计、实现、集成和测试,每一个构件是由 多种相互作用的模块所形成的提供特定功能的 代码片段构成 。
增量模型在各个阶段并不交付一个可运行的完 整产品,而是交付满足客户需求的一个子集的 可运行产品。整个产品被分解成若干个构件, 开发人员逐个构件地交付产品,这样做的好处 是软件开发可以较好地适应变化,客户可以不 断地看到所开发的软件,从而降低开发风险。
软件工程第2章软件生存周期与软件 过程
迭代式开发 容纳需求变更/减少风险。 管理需求 使用用例和脚本。 使用基于构件的体系结构。 可视化建模。 验证软件质量 质量评估内建在贯穿于整个

第2章软件生命周期模型PPT课件

第2章软件生命周期模型PPT课件
➢ 周期内有可行性分析、需求分析、概要设计、 详细设计、编码、测试和维护等阶段
➢ 这种按时间分程的思想方法是软件工程中的一 种思想原则,即按部就班、逐步推进,每个阶 段都要有定义、工作、审查、形成文档以供交 流或备查,以提高软件的质量。
2020/11/23
2
软件生命周期各阶段的主要任务:
(1) 可行性分析和项目开发计划 ➢ “要解决的问题是什么”
➢ 该问题有行得通的解决办法吗?
➢ 若有解决问题的办法,则需要多少费用?需要 多少资源?需要多少时间?
(2) 需求分析
需求分析阶段的任务不是具体地解决问题,而 是准确地确定“软件系统必须做什么?”确定 软件系统必须具备哪些功能。
2020/11/23
3
(3) 概要设计
在概要设计阶段,开发人员要把确定的各项功 能需求转换成需要的体系结构,概要设计就是 设计软件的结构,该结构由哪些模块组成,这 些模块的层次结构是怎样的,这些模块的调用 关系是怎样的,每个模块的功能是什么。
2020/11/23
11
(4)缺点:
➢ 缺乏灵活性,不能适应用户需求的改变。
➢ 开始阶段的小错误被逐级放大,可能导致软 件产品报废。
➢ 返回上一级的开发需要十分高昂的代价。
➢ 随着软件规模和复杂性的增加,软件产品成 功的机率大幅下降。
2020/11/23
12
2.3 原型模型
原型模型(Prototype Model)在初步需求分析之 后,马上向客户展示一个软件产品原型,对客 户进行培训,让客户试用,在试用中收集客户 意见,根据客户意见立刻修改原型,之后再让 客户试用,反复循环几次,直到客户确认为止。
2020/11/23
13
停止

软工判断题02章24题

软工判断题02章24题

【基础题型】判断题【入库题型】判断题在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。

【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否值得开发。

【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性研究进一步研究问题定义阶段所确定的问题是否有可行的解。

【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题在可行性研究中最难决断和最关键的问题是经济可行性。

【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题软件工程过程应该以软件设计为中心,关键是编写程序。

【答案】A【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题软件定义是软件工程的早期阶段,是由系统分析人员单独完成的系统分析、规划和规格描述,确定软件是什么。

【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题系统定义明确之后,应对系统的可行性进行研究。

可行性研究包括经济可行性、社会可行性、系统可行性。

【答案】B【难度】易【知识点】2过程和生命周期建模\2.1过程的含义【启用状态】启用【审核状态】终审通过【下一题】【基础题型】判断题【入库题型】判断题可行性分析中,系统流程图经常用于描述当前运行系统。

第二章 软件过程

第二章 软件过程

第二章软件过程一、软件生命周期软件生命周期(Life Cycle),也称生存周期,指软件产品从提出、产生、发展到成熟,直至衰亡的整个时间段。

软件生命周期的组成阶段:(1) 软件定义阶段:做什么?问题定义→可行性研究→需求分析(2) 软件开发阶段:如何做?总体设计→详细设计→编码和单元测试→综合测试(3) 运行维护阶段:纠错、适应性修改、增强性修改、预防性修改二、软件过程的定义当开发产品或构建系统时,遵循一系列可预测的步骤(路线图)是非常重要的,它有助于及时交付高质量的产品。

(1)所遵循的路线图就称为“软件过程”。

(2)软件过程贯穿软件开发的各阶段,并建立阶段里程碑(Milestones);(3)管理者在软件工程过程中需要对软件开发的质量、进度、成本进行评估、管理和控制;(4)技术人员在软件过程中需采用相应的方法和工具生成软件工程产品,如模型、文档、数据、报告、表格等。

三、软件过程的作用软件开发过程的作用是:(1)成为开发组活动顺序的向导。

(2)详细说明需要开发哪些制品,何时开发。

(3)指导每一个成员及整个开发组的工作。

(4)提供监控、度量产品和活动所依据的准则。

—软件过程是软件项目管理控制的基础,它为项目提供稳定性、可控性和有组织性,能有效避免混乱。

—若没有一个良好定义的过程,开发组将各行其是,成功与否完全依赖个别优秀的人才,这不是能够长久的。

四、软件过程的组成要素(活动、动作、任务)软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。

(1)活动(activity):实现宽泛的大目标。

(2)动作(action):阶段目标。

(3)任务(task):关注小而明确的目标,产生实际产品。

—软件过程由活动组成,活动由动作组成,动作由任务组成。

五、基本框架活动和典型的普适性活动软件过程框架(process framework)定义了若干个框架活动,及一些适用于整个软件过程的普适性活动1.基本框架活动一个通用的软件工程过程框架通常会包含以下5个基本的框架活动:(1)沟通:在技术工作开始前,先和利益相关者进行沟通与协作,以理解项目目标,并收集需求。

SA02

SA02

12
2.2.3 进程视图
进程视图侧重于系统的运行特性,主要关注一些非功能性 进程视图侧重于系统的运行特性,主要关注一些非功能性 运行特性 的需求。 的需求。 进程视图强调并发性、分布性、 能力, 进程视图强调并发性、分布性、系统集成性和容错 能力, 并发性 以及从逻辑视图中的主要抽象如何适合进程结 构。它也 定义逻辑视图中的各个类的操作具体是在哪 一个线程中 被执行的。 被执行的。 进程视图可以描述成多层抽象, 进程视图可以描述成多层抽象,每个级别分别关注 不同 的方面。在最高层抽象中, 的方面。在最高层抽象中,进程结构可以看作是 构成一 个执行单元的一组任务。 个执行单元的一组任务。它可看成一系列独立 的,通过 逻辑网络相互通信的程序。它们是分布的, 逻辑网络相互通信的程序。它们是分布的, 通过总线或 局域网、广域网等硬件资源连接起来。 局域网、广域网等硬件资源连接起来。
8
可以从Booch标记法中导出逻辑视图的标记法 可以从Booch标记法中导出逻辑视图的标记法,只是从体系结 Booch标记法中导出逻辑视图的标记法, 构级的范畴来考虑这些符号, Rose进行体系结构设 构级的范畴来考虑这些符号 , 用Rational Rose 进行体系结构设 计。
构件 类 连接件 关联 包含,聚集 包含, 类服务 使用 继承 参数化类 实例
5
逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法 逻辑视图( View),设计的对象模型( ),设计的对象模型 逻辑视图 时)。 过程视图(Process View),捕捉设计的并发和同步特征。 过程视图( View),捕捉设计的并发和同步特征。 ),捕捉设计的并发和同步特征 过程视图 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特 物理视图( View),描述了软件到硬件的映射, ),描述了软件到硬件的映射 物理视图 性。 开发视图(Development View),描述了在开发环境中软件的静态组织结 开发视图( View), ),描述了在开发环境中软件的静态组织结 开发视图 构。 场景视图(scenarios), SA的描述,即所做的各种决定,可以围绕着这四 场景视图(scenarios), SA的描述 即所做的各种决定, 的描述, 场景视图(scenarios) 个视图来组织, cases)或场景来说明, 个视图来组织,然后由一些用例 (use cases)或场景来说明,从而形成了 第五个视图。 第五个视图。

2-软件生命周期过程模型

2-软件生命周期过程模型

为什么要研究过程模型? 为什么要研究过程模型?
软件生命周期 软件产品或系统一系列相关活动的全周期。 软件产品或系统一系列相关活动的全周期。从形 成概念开始,经过研制,交付使用, 成概念开始,经过研制,交付使用,在使用中不 断增补修订,直到最后被淘汰, 断增补修订,直到最后被淘汰,让位于新的软件 产品的过程。 产品的过程。 对软件生存周期的不同划分, 对软件生存周期的不同划分,形成了不同的软件生 命周期过程模型。 命周期过程模型。 软件产品的类型、 软件产品的类型、特点 产品的要求 不同的用户、 不同的用户、开发机构和人员
螺旋模型
螺旋模型
一个典型的螺旋模型应该由以下的步骤构成: 一个典型的螺旋模型应该由以下的步骤构成:
明确本迭代阶段的目标、 明确本迭代阶段的目标、备选方案以及应用备选 方案的限制; 方案的限制; 对备选方案进行评估,明确并解决存在的风险, 对备选方案进行评估,明确并解决存在的风险, 建立原型; 建立原型; 当风险得到很好的分析与解决后, 当风险得到很好的分析与解决后,应用瀑布模型 进行本阶段的开发与测试; 进行本阶段的开发与测试; 对下一阶段进行计划与部署; 对下一阶段进行计划与部署; 与客户一起对本阶段进行评审; 与客户一起对本阶段进行评审;
通常软件开发涉及到如下阶段: 通常软件开发涉及到如下阶段:
需求分析和定义 系统设计 程序设计 编写程序(程序实现 编写程序 程序实现) 程序实现 单元测试 集成测试 系统测试 系统交付 维护
每一阶段本身就是一个过程(或过程的集合 。 每一阶段本身就是一个过程 或过程的集合)。 或过程的集合 研究每一个阶段所涉及到的过程、资源、 研究每一个阶段所涉及到的过程、资源、 活动和输出,对最终产品质量产生的影响。 活动和输出,对最终产品质量产生的影响。 每一个过程都可以用不同的方式描述,使 每一个过程都可以用不同的方式描述, 用文本、图形或两者的结合。 用文本、图形或两者的结合。 以需求分析阶段为例。 以需求分析阶段为例。

软件开发生命周期与过程模型

软件开发生命周期与过程模型

软件开发生命周期与过程模型软件开发是一个复杂而又关键的过程,它需要经历一系列的阶段和步骤,以确保最终产出的软件能够满足用户的需求。

为了有效管理和控制软件开发过程,人们提出了各种各样的软件开发生命周期和过程模型。

本文将探讨软件开发生命周期和过程模型的概念、特点以及常见的几种模型。

一、软件开发生命周期的概念和特点软件开发生命周期指的是软件从概念到退役的整个过程,它包括需求分析、设计、编码、测试、部署和维护等阶段。

软件开发生命周期具有以下几个特点:1. 阶段性:软件开发生命周期由一系列明确定义的阶段组成,每个阶段都有特定的目标和任务。

2. 迭代性:在软件开发过程中,通常会进行多次迭代,每次迭代都会对前一次迭代的结果进行修正和完善。

3. 可控性:通过合理的管理和控制,可以确保软件开发过程的可控性,及时发现和解决问题。

二、常见的软件开发过程模型1. 瀑布模型瀑布模型是最早也是最经典的软件开发过程模型之一。

它将软件开发过程划分为需求分析、设计、编码、测试和维护五个阶段,每个阶段都是线性的,前一个阶段的输出作为下一个阶段的输入。

瀑布模型适用于需求稳定、开发周期长的项目,但缺点是无法应对需求变更和迭代开发。

2. 增量模型增量模型是一种迭代和渐进式的软件开发过程模型。

它将软件开发过程划分为多个子系统或功能模块,每个子系统或功能模块都是一个增量,每个增量都经过需求分析、设计、编码和测试等阶段。

增量模型可以快速交付可用的软件功能,适用于需求不稳定、开发周期较短的项目。

3. 螺旋模型螺旋模型是一种风险驱动的软件开发过程模型。

它将软件开发过程划分为多个迭代,每个迭代都包括计划、风险分析、工程开发和评审等阶段。

螺旋模型通过不断评估和控制风险,以确保软件开发过程的可控性和高质量。

螺旋模型适用于大型、复杂项目,但需要投入较多的时间和资源。

4. 敏捷模型敏捷模型是一种注重灵活性和快速交付的软件开发过程模型。

它强调团队合作、迭代开发和持续改进,通过不断的反馈和调整,以满足用户的需求。

软件开发过程生命周期模型

软件开发过程生命周期模型

软件开发过程生命周期模型一、序言生命周期指软件开发全部过程、活动和任务的结构框架。

软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。

目前软件开发实践中使用的各种生命周期模型,都是下面这些基本组成部分的不同的排列与组合。

•市场分析,可行性研究,与项目定义•需求分析•设计(概要设计和详细设计)•编码实现•测试•使用与维护主要有以下几种模型:• 1.瀑布模型(waterfallmodel)•2-演化模型(evolutionarymodel).•3螺旋模型(spiralmodel)二、瀑布模型瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。

如图所示:优点:a.强调开发的阶段性;b.强调早期计划及需求调查;c.强调产品测试。

缺点:a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化;b.由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会下表是瀑布模型中各个阶段的主要工作,及相应的质量控制手段。

三、演化模型该模型主要针对事先不能完整定义需求的软件开发。

用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。

软件开发人员根据用户的需求,首先开发核心系统。

当该核心系统投入运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。

软件开发人员根据用户的反馈,实施开发的迭代过程。

第一迭代过程均由需求、设计、编码测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。

如图所示。

在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。

于是,设计就不断地演化出新的系统。

实际上,这个模型可看作是重复执行的多个“瀑布模型”。

“演化模型”要求开发人员有能力把项目的产品需求分解为不同组,以便分批循环开发。

软件过程和生命周期模型

软件过程和生命周期模型

增量模型(续)
• 开发者能够将目旳产品提成构件,只是必 须服从下列约束: 因为每个构件都集成到目前旳软件中,生 成旳产品必须是可测试旳。假如将产品提 成太少旳构件,则增量模型退化成建造— 修补模型;相反,假如产品由太多旳构件 构成,则在每个阶段将在大量旳时间花费 在少许增长功能旳集成测试上
增量模型(续)
• 缺陷:对开发人员要求很高
螺旋模型
• 软件开发中旳风险: (1)人员风险:离职,技术水平 (2)硬件风险:不再使用 (3)测试投入 (4)技术风险:技术旳发展对目前开发产
品旳影响。 (5)竞争对手
螺旋模型(续)
• 构建一种原型 (样机)是减小 某种风险旳一种 途径,能够简朴 地将这个生命周 期模型看作是每 个阶段之前带有 风险分析旳瀑布 模型
• 优点: (1)增量模型在每个阶段交付一种可用旳产品, 从第一种构件交付开始,客户即可开始工作 (瀑布模型最终一次性交付) (2)降低一种全新产品对客户组织所带来旳心 理上旳影响 (3)分阶段交付产品不需要客户大旳资金支出, 尤其是当基于投资旳高回报而选择最早旳构件 (4)客户能够在任何时候停止产品旳开发
• 在每个构件结束时进行稳定化(Stabilization) 工作。检测到旳遗留错误此时到修补,然后 将该构件冻结(frozen),即规格阐明不会 再修改
同步—稳定模型(续)
• 优点: 反复旳同步环节确保各个组件总能一起 工作,部分地构建产品使开发者能早些 进一步了解每个产品旳工作状态,而且 必要时在构件生成旳过程中修改规格阐 明文档,甚至在最初旳规格阐明文档未 完毕前都可使用这个模型
极限编程
• 由增量模型发展而来 • 根据效益分析,拟定所需特征 • 测试驱动 • 成对编程 • 每日构建

软件开发基本流程及生命期模型(精)

软件开发基本流程及生命期模型(精)
第一个增量发布基本的文件管理、编辑和 文档生成功能,第二个增量发布更加完善 的编辑和文档生成功能,第三个增量实现 拼写和文法检查功能,第四个增量完成高 级的页面布局功能
增量模型
• 强项:
– 产品分阶段交付给客户,客户可以很快与产品见面 – 客户可逐渐接受一个新的产品,并及时提出改进建
议 – 客户可在使用产品获利的同时,进行产品开发的投
项目类型与软件生存周期模型
• 从需求的特性来划分项目:
– 需求无变更且需求必须一次性实现的项目 • 瀑布模型
– 需求无变更且需求可以分阶段实现的项目 • 增量模型
– 需求变更频繁的项目 • 迭代/构件组装模型
– 需求不明确 • 原型模型
项目类型与软件生存周期模型
• 从最终产品的类型来划分项目:
– 公用构件研发项目 • 需求稳定、单一,市场压力小,强调软件的可复用性,可
迭代中的规程
迭代模型
• 强项:
– 降低了在一个增量上的开支风险 – 通过风险分析的方式,较好地解决了测试过多或过
少的问题 – 将维护作为迭代的一个周期,避免了开发人员忽视
维护的问题
– 降低了产品无法按照既定进度进入市场的风险
• 弱项:
– 风险驱动型,开发团队成员善于风险分析,才能使 用好迭代模型
程中,对需求的理解有可能出现改变吗?
• 我对系统架构的理解是否充分?是否可能在项目进展过程中对架构进
行重大改变?
• 我需要的可靠性有多大? • 需要在项目中为未来的版本提前进行多少计划和设计? • 项目要承受多大的风险? • 是否要被迫预先确定进度? • 需要在进展中进行变更的能力吗? • 需要在整个项目进展过程中给客户提供可视的进展情况吗? • 需要在整个项目进展过程中给管理者提供可视的进展情况吗? • 需要多少经验和技巧来成功的使用这种生命周期模型?

过程和生命周期的建模

过程和生命周期的建模

公共过程框架
为开发 高质量 的软件 需要完 成的任 务的框 架。
框架活动
任务集合 工作任务
里程碑、交付物
SQA点
保护性活动
chapter 2
软件过程(续)

软件过程又称软件生命周期( Life cycle ),是软件生命周期内为达到一 定目标而必须实施的一系列相关过程的 集合。 早期: 立项、需求分析、设计、编码、 测试、交付、维护、退役
chapter 2
Examples of process models
Waterfall model瀑布模型 Prototyping原型化模型 V-model V-模型 Operational specification操作说明模 型 Transformational model变换模型 Phased development: increments and iteration增量和迭代模型 Spiral model螺旋模型
chapter 2
Operational specification 操作说明模型
chapter 2
Transformational model 变换模型
chapter 2

软件需求描述被精练成一个用数学符号表达 的详细的形式化描述 设计、实现和单元测试等开发过程由转换过 程替代,在转换的过程中,每个步骤增加细 节,直到形式化描述被转换变成一个可执行 程序。
chapter 2
软件过程各阶段内容
● 可行性研究 任务 了解用户要求和现实环境。从技术、经济、市
场等方面研究并论证开发该软件系统的可行性。 △技术可行性 当前的软件开发方法和工具能否支持需求的实现; △操作可行性 用户能否在特定的环境下使用这个软件; △经济可行性 开发和使用、维护这个软件的成本能否被用户所接 受。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【习题】一、单项选择1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。

开发软件时对提高软件开发人员工作效率至关重要的是( A ① )。

软件工程中描述生存周期的瀑布模型一般包括计划、( B ① )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C ③ )和( D ⑥ )两步。

供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计2、软件开发费用只占软件生存期全部费用的_B___。

A. 1/2B. 1/3C. 1/4D. 2/33、在软件开发过程中大约要花费__C__%的工作量进行测试和调试。

A. 20B. 30C. 40D. 504、准确地解决“软件系统必须做什么”是__B__阶段的任务。

A. 可行性研究 B. 需求分析 C. 软件设计 D. 程序编码5、软件生存期中时间最长的是_D__ 阶段。

A. 需求分析B. 软件设计C. 软件测试D. 软件运行/维护6、在软件生存期的模型中,_D__适合于大型软件的开发,它吸收了软件工程中“演化”的概念。

A .喷泉模型 B. 基于知识的模型 C. 瀑布模型 D. 螺旋模型7、在软件生存期中,用户的参与主要在_A___。

A. 软件定义阶段、B. 软件开发阶段、C. 软件维护阶段、D. 整个软件生存期过程中8、在软件开发过程中的每个阶段都要进行严格的__D___,以尽早发现在软件开发过程中产生的错误。

A. 检验B. 验证C. 度量D. 评审9、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的__B___。

A. 产品检验B. 产品控制C. 产品标准化D. 开发规范10、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的__D__ 。

A. 可靠性B. 可使用性C. 安全性D. 可维护性11、为了提高软件开发过程的___A_,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准。

A. 可见性B. 生产率C. 安全性D. 有效性12、随着开发小组人数的___A__,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。

A. 增加B. 降低C. 稳定D. 不稳定13、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程__C__。

A. 原则B. 工具C. 过程D. 方法二、填空题10、瀑布模型是将各个活动规定为依(软件生存期)连接的若干阶段的模型。

它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。

11、螺旋模型将开发过程分为几个螺旋周期。

在每个螺旋周期内分为四个工作步骤:(制定计划)、(风险分析)、开发实施、(用户评估)。

12、喷泉模型是一种以(用户要求)为动力,以(对象)为驱动的模型。

它使开发过程具有迭代性和无间隙性,适用于(面向对象)开发方法。

三、判断题1.We can think of a set of ordered tasks as a process: a series of steps involving activities constraints and recourses that produce an intended output of some kind. (T)2.The software development process is sometimes called the software life cycle. (T)四、问答题1、the meaning of process 过程的含义A process defines who is doing what, when and how, in order to reach a certain goal. 过程定义了谁在作什么,什么时间怎样作。

以便完成一个确定的目标。

2、 What is Process?A Series of steps involving activities, constraints, and resources that produce an intended output of some kind.一系列涉及到活动、约束和资源的步骤,他们产生某种类型的有目的的输出。

3、Process Characteristics?过程的特征The process prescribes all of the major process activities 过程规定了所有主要过程活动Process uses resources, subject to a set of constraints (such as schedule ),and produces intermediate and final products 过程使用资源、服从于一组约束(比如进度约束),产生中间结果和最终产品。

The process may be composed of subprocesses that are linked in some way. The process may be defined as a hierarchy of processes, organized so that each subprocess has its own process model 可由子过程组成,这些子过程用某种方式链接起来。

过程可以定义为分层的过程等级结构,以便每个子过程具有自己的过程模型。

Each process activity has entry and exit criteria , so that we know when the activity begins and ends. 每个过程活动具有有入口和出口标准,这样可以知道活动何时开始及何时结束。

The activities are organized in a sequence, so that it is clear when one activity is performed relative to the other activities. 活动以一定顺序组织,因此,一个活动相对于其他活动何时完成是很清楚的。

Every process has a set of guiding principles that explain the goals of each activity 每个过程具有一系列的指导原则,以解释每个活动的目标Constraints or controls may apply to an activity, resource or product 约束与控制可以应用到任何活动、资源或产品中。

4、Why software process modeling?Writes down a description of development process, forms a common understanding of the activities, resources, and constraints involved in software development. 形成对软件开发中涉及到的活动、资源和约束的共同理解。

Helps the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts. 有助于开发小组发现过程及其组织成分中的不一致、冗余和遗漏。

The model reflects the goals of development, such as building high-quality software finding faults earlyin development, and meeting required budget and schedule constraints. 反映开发的目标(如构建高质量软件、早期发现错误、满足预算和开发进度)。

Every process should be tailored for the special situation in which it will be used.根据每个过程将被使用的特殊情况对其进行裁剪。

5.试说明“软件生存期”的概念。

软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。

这就是软件的生存期。

它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。

根据有关成本与进度的限制分析项目的可行性。

(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。

可以用以下两种方式中的一种对需求进行分析和定义。

一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。

另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。

(3) 软件设计:软件的设计过程分两步走。

第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。

第二步做详细设计,考虑设计每一个模块部件的过程描述。

经过评审后,把每一个加细的过程性描述加到设计规格说明中去。

(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。

应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。

(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。

组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。

确认测试检查所有的需求是否都得到满足。

在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。

(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。

与软件维护相关联的那些任务依赖于所要实施的维护的类型。

6、 List the stages of Waterfall model, and state the advantages and shortage of the Waterfall model.Include stages of requirements analysis, system design, program design, coding, unit & integration testing, acceptance testing, operation & maintenance.Merits of Waterfall modelHas been used to prescribe software development activities in a variety of contexts.已被用于在各种情况下规定软件开发活动。

相关文档
最新文档