软件工程-齐志昌版 (18)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
事实上,由于瀑布模型缺乏有效的需求获取和确认机制, 更没有灵活的应变机制,从而直接或间接地导致了软件危 机的种种表现形式,例如,软件质量无保证,成本居高不
有鉴于此,本章首先分析瀑布模型的主要缺陷,然后阐述 克服这些缺陷的方法:快速原型技术和进化式软件开发。
2021/5/11
国防科技大学计算机学院
(4)螺旋模型为用户参与软件开发的所有关键决策提供了
(5) (6)螺旋模型为项目管理人员及时调整管理决策提供了便
利,从而降低了软件开发风险。
2021/5/11
国防科技大学计算机学院
17
主要问题
18.3基于快速原型的进化式软件开发
①过多的迭代次数会增加开发成本,延迟提交时间;
②在原型进化过程中,如果不能标识重要的用户需求 和关键的改进点,那么在人力、财力和时间方面会 引起无谓的损耗。
同时,还要求用户利用原型逐步理解目标软件系统的运作 方式。
在每一进化阶段的末尾,开发人员应该认真反思所有重要 的决策过程,评价自己采用的技术和方法,根据前面检查 阶段得出的结论总结经验教训。
如果要对原型进一步改进,那么开发人员携带检查阶段形 成的文档(用户提出的改进意见及进一步需求)和经本次 进化获得的经验教训进入下次原型进化的分析与规划阶段。
2021/5/11
国防科技大学计算机学院
24
18.4快速原型的技术支持
2.数据库应用软件的快速原型构造与进化
根据数据库开发系统中CASE工具的功能描述,数据库
(1)利用数据字典功能根据用户需求创建数据字典;利用浏览功 能帮助用户确认数据需求;利用删除、修改等功能进化数
(2)利用屏幕自动生成功能设计用户界面,提交用户确认并不断
2021/5/11
国防科技大学计算机学院
19
18.4快速原型的技术支持
18.4.1 用户界面自动生成工具
现代软件产品几乎全部采用交互式的图形用户界面。 并且,在快速原型方法及螺旋模型中,用户主要是
通过对原型的界面进行操作实验来进行评估并提出 改进意见的。 因此,快速构造和进化用户界面是快速原型方法的 技术前提之一。 此外,在软件开发的早期阶段,快速地生成用户界 面是进行需求分析的有效途径。
1.分析与规划
18.2快速原型方法
当初次建立原型时,必须对用户需求进行分析;当 针对已有原型构造新的更为丰富和完善的原型时, 必须将用户对已有原型的评价意见、改进建议以及 对新原型的需求进行分析。
在用户对本次原型创建或进化的需求基本明确以后, 开发人员要着手设计原型的总体结构,进行任务划 分、进度安排。
为简化问题以便快速生成原型,在分析复杂软件项 目的用户需求时,应该考虑针对不同的疑点生成多 个原型,不要试图用一个复杂的原型来解决所有的 需求分析问题。
2021/5/11
国防科技大学计算机学院
5
原型及其作用
18.2快速原型方法
对于重要的用户目标和关键算法,开发人员可以生 成实验性原型以验证问题求解方案的可行性,比较 各种方案的优劣,并征询用户对这些方案的功能和 性能的意见。
但是,“做什么”和“如何做”之间的界限有时并 不分明,它取决于问题描述的抽象级别。
在较高抽象级别上的“如何做”将变成较低级别上 的“做什么”。
反之,在许多情况下,对问题的界定(“做什么”) 往往又在某种程度上取决于该问题的解决途径 (“如何做”)。
(1)用户需求的某些部分将随时间的推移而动态变化, 变化方式是无法静态预测的。
(2)在原型的每个进化阶段,不宜实现过多的用户需 求。
(3)软件开发过程是开发人员和用户相互学习的过程。 (4)原型是一种可执行的软件规格说明。 (5)生成软件规格说明和实现软件规格说明是互补的
两类软件开发活动。
(6)传统意义上的软件维护也是一种进化活动。
2021/5/11
国防科技大学计算机学院
23
基本功能
18.4快速原型的技术支持
(4)
大量的报表输出是数据库应用软件的特色之 一。对报表样式的要求往往构成用户需求的重 要部分。
(5)项目管理功能
数据库应用软件的开发除涉及数据字典、数 据操作部件、用户界面和报表设计之外,还包 含数据库应用程序。这些应用程序在通常的高 级语言机制(条件,循环,顺序,子程序等) 中嵌入数据操作部件和报表打印,以便在界面 的统一控制下将用户的工作流程自动化。
2021/5/11
国防科技大学计算机学院
16
18.3基于快速原型的进化式软件开发
18.3.2 螺旋模型的评价
与瀑布模型相比,螺旋模型具有以下优点:
(1) (2)螺旋模型中,需求分析和软件实现是互相依赖、紧密
(3)原型作为形式的可执行的需求规格说明,既易于为用 户和开发人员共同理解,又可作为后续开发的基础。
2
18.1 瀑布模型的缺陷
第十八章 快速原型技术
针对瀑布模型的批评大致可归纳为以下六方面:
1.完全地、精确地刻画复杂应用问题的用户需求是不可能 的。
2.需求分析和软件实现是不可分割的。 3.用户和开发人员都难于理解形式的、不可执行的需求规
格说明。
4.传统的开发策略没有为用户参与关键的开发决策提供便 利。
(3)将基于SQL的数据操作部件连入用户界面,向用户显示数
(4)利用报表自动生成功能按用户需求快速生成各类报表,提交
(5)项目管理功能将保证进化过程中构成原型的各软件元素版本 的正确性。
2021/5/11
国防科技大学计算机学院
25
18.4.3 四代语言
18.4快速原型的技术支持
四代语言(也称甚高级程序设计语言)的主要特征可 概括为:程序设计人员在编码过程中,只需用四代 语言描述待解的问题是什么,勿需关心问题是如何 解决的。
(3)
2021/5/11
国防科技大学计算机学院
22
18.4快速原型的技术支持
18.4.2 面向数据库应用的开发工具
1.基本功能 (1)
面向数据库应用的软件开发的第一步是根据用户需 求创建数据字典。
(2)
现今的数据库系统几乎无一例外都使用功能很强的 结构化查询语言SQL处理和查询表中数据。
(3)
屏幕自动生成器实际上相当于数据库应用领域中的 用户界面自动生成工具。
初步规划新原型的进一步进化。
2021/5/11
国防科技大学计算机学院
9
2.实现
18.2快速原型方法
快速原型的实现过程特别强调CASE工具的使用,
在原型实现过程中,对代码效率不宜有苛刻要求, 除非当前原型将作为最终软件产品。
软件设计方案和源程序的可读性与可扩充性应该成 为原型实现阶段的首选目标。
2021/5/11
国防科技大学计算机学院
10
3.检查
18.2快速原型方法
这一阶段的主要任务是检查原型是否实现了分析和 规划阶段提出的目标,邀请用户实际操作该原型, 要求用户进行评估,提出改进意见和进一步的需求。
2021/5/11
国防科技大学计算机学院
11
4.改进
18.2快速原型方法
快速原型方法不仅要求软件原型不断改进和完善,也要求 开发人员在原型进化的过程中不断积累有关应用领域的知 识,提高对用户需求的理解程度,改进专业技能。
5.目标软件的适应能力不强。 6.瀑布模型并不适合于软件项目管理。
2021/5/11
国防科技大学计算机学院
3
18.2 快速原型方法
第十八章 快速原型技术
18.2.1 原型及其作用
简单地说,原型是目标软件系统的一个可操作模型, 它实现了目标软件系统的某些重要方面。
在软件开发过程中,原型为管理人员、开发人员和 用户交流信息、讨论问题以及技术决策提供了可操 作的模型。
如果原型不仅用来理解问题、试验求解方案,而且 用作目标软件系统的基础,在后续开发过程中逐步 进化为最终的软件产品,这类原型称为进化性原型。
以上按照原型在软件开发过程中的不同作用划分为 探索性、实验性和进化性三类原型。
2021/5/11
国防科技大学计算机学院
6
原型及其作用
18.2快速原型方法
软件可以由外至内划分为多个层面,最外层是用户 界面,最内层通常由系统的核心算法构成。
水平原型是指仅仅模拟目标软件系统某一层面(通 常是用户界面层)的原型。例如,针对用户界面的 水平原型仅仅向用户演示窗口、菜单、对话框等界 面元素。
垂直原型是指模拟目标软件系统某一部分的多个层 面的原型。当目标系统的内部功能和用户界面都需 要借助原型来确定时,这类原型特别有用。一般的 进化性原型都属于垂直原型。
2021/5/11
国防科技大学计算机学院
18
第十八章 快速原型技术
18.4 快速原型的技术支持
为了方便,我们将现今广为使用的支持快速原型的 CASE工具分为四类:用户界面自动生成工具,面 向数据库应用的开发工具,四代语言以及可重用工 具。
当然,各类工具之间的界限并不是严格分明的,它 们往往被集成为一个完整的软件开发环境,从而为 快速原型的构造和进化提供全面的支持。
(4)评审。将原型提交用户使用并征询用户改进意见。
上述过程将不断迭代,直至给出用户满意的目标软 件产品。
2021/5/11
国防科技大学计算机学院
14
18.3基于快速原型的进化式软件开发
螺旋模型与瀑布模型的关系
2021/5/11
国防科技大学计算机学院
15
指导原则
18.3基于快速原型的进化式软件开发
2021/5/11
国防科技大学计算机学院
7
18.2.2 快速原型的构造过程
18.2快速原型方法
快速原型方法的关键在于如何快速地实现可运行的 原型,以便尽快提交用户确认,然后再进行改进。
快速原型的构造过程可以归纳为分析与规划、实现、 检查、改进四个步骤。
2021/5/11
国防科技大学计算机学院
ቤተ መጻሕፍቲ ባይዱ
8
2021/5/11
国防科技大学计算机学院
13
18.3.1 螺旋模型
18.3基于快速原型的进化式软件开发
(1)需求定义。利用前面介绍的需求分析技术理解应用领 域,获取初步的用户需求,制定项目开发计划。
(2)风险分析。根据初始需求或改进意见评审可选用的方
(3)工程实现。利用前一节介绍的快速原型构造方法针对 已知的用户需求生成快速原型。
2021/5/11
国防科技大学计算机学院
12
第十八章 快速原型技术
18.3 基于快速原型的进化式软件开发
开发模型应该为软件项目管理人员和开发人员生产 高质量的目标软件提供方法学指导。
由于瀑布模型在某些方面不适合现代软件开发实践。 因此,本节以快速原型方法为基础进一步介绍进化 式软件开发模型(即螺旋模型),并讨论如何利用螺 旋模型克服瀑布模型的主要缺陷。
齐治昌 教授, 谭庆平 教授, 宁洪 教授, 董威 博士
软件工程
Software Engineering
国防科技大学计算机学院
2004.07
2021/5/11
国防科技大学计算机学院
1
第十八章 快速原型技术
为了较好地完成软件开发任务,瀑布模型要求在软件产品 生成之前对用户需求进行尽可能精确的、完全的刻画。遗 憾的是,迄今为止,几乎所有针对复杂应用问题的软件开 发实践都证明,这种要求很难完全实现。
每一原型可作为后续原型和目标软件系统的基础或 蓝本。
为方便用户参与软件开发过程,原型在用户界面上 应该与目标系统尽可能保持一致。
2021/5/11
国防科技大学计算机学院
4
原型及其作用
18.2快速原型方法
为了精确地理解问题域、确定用户需求并发掘潜在 的用户需求,开发人员可以生成探索性原型。
这类原型是问题域中某些子系统或用户需求的某些 子部分的可操作模型,它不涉及软件的实现方法。 其主要作用是澄清应用领域和用户需求的某些疑难 问题,并方便用户对开发人员的需求分析工作进行 评价、纠错和确认。
(3)
①CASE工具自动生成的源代码框架经填充部分功能部件后,
2021/5/11
国防科技大学计算机学院
21
18.4快速原型的技术支持
2.原型用户界面的快速构造与进化
基于前面关于用户界面自动生成工具的功能描述, 可将原型的用户界面的快速构造与进化方法归纳如
(1)利用界面编辑功能设计或改进原型的用户界面; (2)利用连接功能将界面元素与功能部件联系起来,
2021/5/11
国防科技大学计算机学院
20
1.基本功能
18.4快速原型的技术支持
(1)
图形用户界面一般包括窗口、菜单和对话框。对话框 由命令按钮、编辑框、列表框、滚动条等界面元素组成。
(2)
①在界面编辑暂告完成后,由CASE工具根据界面的内容,自 动生成源代码框架。
②在不退出界面编辑的状态下,由开发人员选取菜单项或命令 按钮,即可实现界面元素与相应功能的连接。
相关文档
最新文档