软件工程-理论与实践(第2版)第2章课件PPT,许家珆等编著
软件工程-理论与实践(第2版)第1章课件PPT,许家珆等编著
1
第一章
软件工程概述
高等教育出版社 高等教育电子音像出版社
1.1 软件工程的产生和发展
软件工程(Software Engineering)是在克服20 世纪60年代末所出现的“软件危机”的过程中逐渐 形成与发展的。 随着互联网平台和环境的迅速发展,对软件工 程的发展产生了变革性的巨大影响,网格计算、普 适计算、中间件、网构软件等一批新技术和理念, 从网络资源共享与管理,人机交互及软件服务等各 方面提出了软件技术的新课题。
The Challenges and Opportunities of the Global Software Industry.
一、全球软件产业的现状、趋势与挑战
1. 软件产业的网络化趋势 2. 软件产业的服务化趋势 3. 软件产业的全球化趋势
·强调开放性、交互性 ·支持主流的开放式标准 ·人才的全球化
在微软流传着这样一个故事
有一次比尔· 盖茨和上帝谈话,上帝对他说: “地球明天就要毁灭了!由于你是如此的成功,因 此我特许你从地球上带一样东西到天堂!你想带什 么?” 比尔.盖茨回答:“请允许我从微软选300个最 优秀的人,我要把他们带到天堂!” 尽管微软的Windows、Exchange、SQL、 Office等都非常重要,但如果没有像你们这些人才, 微软也将一无所有。你们对我们公司和微软来说是 处于第一位的。
测
运行 时期
试
运行与维护
(测试报告) (维护报告)
瀑布模型
1.3 软件开发模型
软件开发模型是描述软件开发过程中各种活动 如何执行的模型,又称为软件过程模型。 软件过程模型是对软件开发实际过程的抽象和 简化。 目前典型的软件开发模型有: 瀑布模型、增量模型、螺旋模型、喷泉模型、 变换模型和基于知识的模型等。 不同的开发方法有不同的软件过程模型。
软件工程2PPT课件
计算机系统的发展历程
返回本章 返 回 上一页 继续下一页
输入
文档 数据库
过程 系统 人
硬件 软件
输出
COLLABORATION
©Copyright 1998 Siemens Business Communications Inc. - All Rights Reserved
01 - 06/30/98 - MKT
COLLABORATION
©Copyright 1998 Siemens Business Communications Inc. - All Rights Reserved
01 - 06/30/98 - MKT
SNGZY
返回本章 返 回 上一页 继续下一页
COLLABORATION
软件工程
第二节 软件工程
SNGZY
软件工程
第一章 软件工程
COLLABORATION
©Copyright 1998 Siemens Business Communications Inc. - All Rights Reserved
01 - 06/30/98 - MKT
SNGZY
返回主菜单 返 回 上一页 继续下一页
COLLABORATION
01 - 06/30/98 - MKT
SNGZY
返回本章 返 回 上一页 继续下一页
COLLABORATION
软件工程
第一节 软件危机
软件危机的内涵
软件开发成本和进度的估计常常很不准确 用户对“已完成的”软件系统不满意的现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅
软件工程—方法与实践(许家珆)
《软件工程——理论与实践》(第2 版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。
A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。
A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。
A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。
A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。
A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。
A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。
A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。
A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。
(×)4. 结构化方法和OO 方法都是一种面向过程的软件开发方法。
(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。
(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件工具的作用是为了延长软件产品的寿命。
软件工程课件第二章
8
§2.3 系统流程图
可行性分析的描述手段: 系统流程图、数据流图 1、什么是系统流程图? 概括地描绘物理系统的传统工具。
基本思想:用图形符号以黑盒子形式描绘组 成系统的每个部件(程序,文档,数据库,人工 过程等),表达数据在系统各部件之间流动的情 况。
3、操作可行性:系统的操作方式在用户组织内行得通吗? 4、其他:法律可行性、社会效应、管理问题等
5
国家标准定义的可行性研究
•
了解客户的要求及现实环境,从技术、经济和社 会因素等三方面研究并论证本软件项目的可行性, 编写可行性研究报告,制定初步项目开发计划。 ----GB 8566-88《计算机软件开发规范》
计算机辅助设计(CAD)的软件项目估算将 CAD项目分为如下7个子项目:
用户界面和控制; 二维几何分析; 三维几何分析; 数据库管理; 计算机图形显示; 外设控制; 设计分析
16
代码行和成本、工作量估算
功能
用户界面 和控制 二维几 何分析 三维几 何分析 数据库 管理
乐观估 计LOC 1790 4080 4600 2900
一般估 计LOC 2400 5200 6900 3400
悲观估 计LOC 2650 7400 8600 3600
加权平 均 2340 5380 6800 3350
美元 /LOC 14 20 20 18
LOC/PM 315 220 220 240
成本(美 工作量 元) (人月) 32760 107600 136000 60300 7.4 24.4 30.9 13.9
第2章 可行性研究
1
本章教学内容
2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析 2.7 小结
软件工程课件 第二章
先把项目分解成若干相对独立的子任务,再估算每个单独 任务的成本,最后得出项目开发的总成本。
常用方法是按开发阶段划分任务,还可把阶段划分成更小 的任务。
3、自动成本估算技术
以大量的历史资料为依据------软件工具完成。
经济效益还应考虑的因素
1、货币的时间价值
货币的价值本身随时间的增加而产生增值: F=P(1+i)n P:现在的钱;i:年利率;n年 F:现在存入P元,n年后可获得的钱。 P=F/(1+i)n i为银行的利率。P大于投入的钱则赢利。
可行性研究的步骤
一、复查系统规模和目标 系统规模:系统究竟解决什么问题。(问题范围) 系统目标:开发该系统究竟要达到什么目标。
二、研究目前正在使用的系统 确定现有系统能做什么,新系统还要解决那些问题。
三、导出新系统的高层逻辑模型。 新系统应该解决什么问题(功能及处理流程)及其约束。
四、导出和评价可供选择的方案 对高层逻辑模型导出不同的高层物理系统并进行评价。
经济效益 =使用新系统增加的收入+节省的费用
总的经济效益与生存周期长度有关,一般估计5年为宜。
此外,作为软件开发商,应从开发一个产品的角度来考 虑开发、维护、营销成本,推广的市场前景等等。
谢谢
在可行性分析以及后面的需求分析、总体设计 中,对现行系统的描述和对未来物理系统的描述, 都可以用系统流程图作为描述工具。
描述系统逻辑模型使用数据流程图,将在第三数据加工部件,如程序、处理机
输入输出:广义的不指明具体设备的符号 文档:通常表示打印输出,也可表示打印终
五、推荐行动方针 作出关键性决定:是否继续进行该项开发工程。 若值得开发,最好的方案是什么,并说明其理由。
软件工程(第二版)PPT
依赖。 软件系统的安全层级、措施与防范机制。 软件系统与其它相关系统之间的协作关系。 软件系统与用户组织及其工作任务的协调性与
适应性。
3. 项目可行性分析
以少量的时间及人力成本,对项目是否可着手 实施作出有依据的判断,以避免因项目实施条 件不具备而造成的大量的人力、物力与时间的 浪费。可从技术、经济、应用等几个方面进行 可行性分析,分析结论则需要撰写成可行性分 析报告,并提交有关部门确认。
10. 建立需求模型
需求建模是用户需求问题图解,一些常用模型 有:业务树图、用例图、活动图。其中,业务 树是结构化需求建模,用例图是系统业务举例, 活动图则反映系统工作流程。
11. 进行需求验证
需求验证是指对需求分析成果的检查与确认。 主要的需求验证内容有:有效性验证、一致性 验证、完整性验证、现实性验证、可检验性验 证。
概要设计以需求规格定义为依据,首先要确定 的是系统构架,然后以系统构架为基础,确定 系统全局数据结构、程序结构,考虑系统安全 防范、故障处理措施。
2. 系统构架
系统构架是软件系统的基础框架,需要考虑问 题有:系统支持环境、系统体系结构。
系统支持环境是构建软件大厦的地基,涉及硬 件环境、软件环境、网络环境。
增量模式在整体上具有瀑布模式的里程碑特点, 可适应大型项目。但系统的局部构建上,则体 现为基于增量构件的原型进化,可适应用户的 需求变更。
5. 螺旋模式
螺旋模式是一种可较好规避开发风险的过程模 式。螺旋模式的特点是项目基于任务域螺旋式 递进,每一个任务域都需要进行风险评估,并 需要根据评估结论制定有效的风险规避措施。
软件工程许家怡教材习题答案《《软件工程——理论与实践》(第2版)习题答案》
《软件工程——理论与实践》(第2版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。
A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。
A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。
A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。
A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。
A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。
A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。
A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。
A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。
(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。
(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。
(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件工具的作用是为了延长软件产品的寿命。
精品课件-软件工程与开发技术(第二版)-第2章
第3章 系统工程基础与可行性研究 1. 硬件和硬件工程
计算机系统工程师选择某种硬件元素的组合构成基于计算机 系统的硬件元素。在选择硬件元素时,应当考虑以下特性:
(1) 从集成化的角度考虑,对各种元件打包形成单独的构件 块。
(2) 各个元件/构件块之间尽量采用标准接口。
(3) 性能、成本、有效性相对地比较容易确定。
为了实现分配给软件的功能和性能,软件工程师必须获取或 者开发一系列的软件部件。与硬件不同的是,软件部件很难标准 化。在许多情况下,为了满足系统分配给软件的需求,软件工程 师还必须开发一些专用部件。但无论如何,尽量采用可复用构件 是选择软件部件的第一原则。
第3章 系统工程基础与可行性研究
在基于计算机的系统中,软件元素一般由程序、数据和文档 组成,包括系统软件和应用软件两类。前者完成使应用软件能与 其他系统元素(例如硬件元素)交互的控制作用;后者用来实现信 息处理功能所要求的过程。
输入
文档 数据库
过程 系统
人
硬件 软件
输出
图2.1 计算机系统及其元素
第3章 系统工程基础与可行性研究
工厂自动化系统
制造系统
库存系统
信息系统
材料传输系统
制造单元数ຫໍສະໝຸດ 机床机器人数据输入设备
图2.2 系统的系统
第3章 系统工程基础与可行性研究 系统工程师(系统分析员)的职责就是分析客观需求,设计、
选择适当的元素并定义其间的关系和设计、建造特定的系统。 作为计算机系统分析员,关心的是基于分析设计、基于计算机 的系统。当计算机软件的需求确定之后,大系统的软件系统分 析员就应当按照分配给软件的系统需求(必须由软件完成的需求) 设计、建立计算机软件系统。
以稍微形式化的方法来表示,在系统工程中,整体视图(WV) 包含若干个领域(Di),它们本身可以是一个系统或者是系统的系 统:
《软件工程二版》PPT课件
软件工程结构复杂,要涉及到用户组织内部与外部环境
(2)用户需求的多样性
软件开发失败最主要的原因是:用户对软件需求描述 不精确,可能有遗漏、有二义性、有错误。
(3)建设内容的复杂性
软件是逻辑部件:试制阶段难衡量;开发质量较难评 价,开发过程管理和控制较难。
(4)技术手段的复杂性
软件设计、实施、维护技术手段的复杂性 。
完整版ppt
5
1.1软件危机
软件包括了使计算机运行所需要的各种程 序及其有关的文档资料。其中,程序是计算机 任务的处理对象和处理规则的描述;文档是为 了理解程序所需的阐述性资料。
20世纪60至70年代,“软件危机”一词 在计算机界广为流传,其主要针对当时存在 的软件代价高和软件错误多的现象。
完整版ppt
2、软件规模庞大,有技术问题,也有管理方法问题。
3、早期开发的个体化;忽视需求分析;认为软件开发 写程序;轻视维护,对用户不了解,
4、对前期工作不能忽视,做好软件定义时期的工作, 这是降低成本,提高件质量的关键。
5、严重性:在软件开发的不同阶段修改付出代价(后 期是前期的2-3个数量级),软件维护是极端艰巨复杂的 工作,占55%~70%)
(5)建设所需资源的密集性
软件系统是资金、劳动、智力、知识密集型大型项目, 各类的信息交流不及时是完产整版生pp软t 件危机的主要原因。 12
关于软件危机的总结
1、软件是逻辑部件:试制阶段难衡量;开发质量较难
评价,开发过程管理和控制较难;运行过程才能暴露没 有检测出来的事故,相当于修改设计,软件维护困难;
在软件开发的不同阶段修改付出代价后期是前期的23个数量级软件维护是极端艰巨复杂的工作占5570完整版ppt14121121软件工程的定义与基本原理软件工程的定义与基本原理121121软件工程的定义与基本原理软件工程的定义与基本原理122122软件工程的目标软件工程的目标122122软件工程的目标软件工程的目标123123软件工程框架及原则软件工程框架及原则123123软件工程框架及原则软件工程框架及原则退出退出退出退出完整版ppt15什么是软件工程软件工程是指把系统的规范化的可以度量的方法运用于软件的开发运行和维护的过程
《软件工程实践与项目管理》课件第2章
第2章 软件生命周期与开发模型 图2-3 软件开发人员的角色
第2章 软件生命周期与开发模型 下面对软件生命周期各阶段加以详细介绍: 1) 需求分析 这个阶段的任务是对用户的需求进行分析和综合,确定
软件的基本目标和逻辑功能要求,解决系统要“做什么”的 问题,写出软件需求规格说明书。该需求规格说明书是软件 工程中最重要的文件,它准确地记录了对目标系统的要求, 它是用户和软件开发人员之间共同的约定及软件开发人员进 行后续开发的基础。
第2章 软件生命周期与开发模型 3. 运行与维护阶段 软件运行与维护是软件生命周期中持续时间最长的阶段。
在软件开发完成并投入使用后,由于各种原因,软件在运行 过程中可能会出现一些问题,这就要求我们对软件进行维护。 软件的维护一般包括改正性维护、适应性维护、完善性维护 和预防性维护等四个方面。
第2章 软件生命周期与开发模型
第2章 软件生命周期与开发模型 软件原型化方法的基本思想是花费少量代价建立一个可
运行的系统,强调软件开发人员与用户的不断沟通,通过原 型的演进不断适应用户的需求。将维护和修改阶段的工作尽 早进行,从而使软件产品满足用户需求。
第2章 软件生命周期与开发模型 2) 软件原型化方法的分类 软件原型化方法主要用在需求分析阶段,但也可以用于
第2章 软件生命周期与开发模型 (5) 判定原型完成。 如果原型经过修正和改进已获得了参与者的一致认可,那 么原型开发的迭代过程可以结束。 (6) 判定原型效果。 (7) 整理原型和提供文档。 整理原型的目的是为进一步开发提供依据。整理完成之后 即可提供原型文档。
第2章 软件生命周期与开发模型 4) 快速原型的优点 使用快速原型化开发方法进行软件开发具有以下优点: (1) 增进了软件开发人员和用户对系统需求的理解,便于 将用户模糊的需求明确化。 (2) 可以克服瀑布模型的缺点,减少由于软件需求不明确 带来的开发风险。
实用软件工程(第2版) 课件 第1、2章 软件与软件工程; 软件过程
软件与软件工程本章本章目标目标了解软件的概念,特点及主要分类了解软件危机的表现及其产生原因掌握软件工程的概念,以及软件工程的基本原则了解软件开发的方法了解与软件开发项目相关的常用工具了解软件工程人员的了解软件工程人员的职业道德职业道德目录第一节软件第二节软件危机第三节软件工程方法第四节软件开发软件开发方法工程工具软件工程工具第五节软件第六节职业道德第一节软件•1.1.1软件的概念及特点•1.1.2软件的分类•1.1.1软件的概念及特点概念:计算机软件是由专业人员开发并长期维护的软件产品。
完整的软件产品包括了在各种不同容量和体系结构计算机上的可执行的程序,运行过程中产生的各种结果,以及以硬复制和电子表格等多种方式存在的软件文档。
•特点:特点:1)具有抽象性2)无明显的制造过程3)存在退化问题4)对计算机系统有着不同程度的依赖性5)尚未完全摆脱人工的开发方式6)软件本身是复杂的7)成本相当昂贵8)相当多的软件工作涉及社会因素1.1软件•1.1.2软件的分类第二节软件危机•1.2.1软件危机的表现与原因•1.2.2软件危机的启示1.2软件危机•1.2.1软件危机的表现与原因•在软件开发的过程中,会经常出现一些不能按时完成任务、产品质量得不到保证、工作效率低下和开发经费严重超支等现象。
计算机软件的开发、维护和应用过程中普遍出现的这一些严重的问题便是软件危机1.2软件危机主要表现1)产品的功能或特性与需求不符2)相比硬件,软件代价过高3)质量难以保证,难以发挥硬件潜能4)难以准确估计开发、维护的费用和开发周期5)难以控制开发风险,开发速度赶不上市场变化6)软件产品修改、维护困难7)软件文档不完备,存在内容与产品不符的情况1.2软件危机本质原因:人们对软件产品认识的不足以及对软件开发的内在规律理解的偏差具体原因1)忽视开发前期的需求分析2)开发过程缺乏统一、规范化的方法论指导3)文档资料不齐全或不准确4)忽视与用户之间、开发组成员之间的交流5)忽视测试的重要性6)不重视维护,或维护工作困难7)对产业认识不充分,缺乏经验8)没有完善的质量保证体系•1.2.2软件危机的启示软件危机给我们的最大启示,是使我们更加深刻的认识到软件的特性以及软件产品开发的内在规律。
软件工程2[1]
调试 第4个增量的 发布
PPT文档演模板
软件工程2[1]
PPT文档演模板
§2.5 螺旋模型
• 螺旋模型(spiral model)
它是瀑布模型与原型模型的结合,不仅体现了两个模型 的优点,而且还增加了新的成分——风险分析。
螺旋模型沿着螺线旋转(一个螺旋式周期 ),在四个象 限上分别表达四个方面的活动,即:
准 备
PPT文档演模板
缺陷管理与改错
编程 代码审查 单元测试
模块
组装 测试
软件工程2[1]
七、综合测试
这个阶段的关键任务是通过各种类型的测试 使软件达到预定的要求。最基本的测试时集成测 试和验收测试。
集成测试:根据设计的软件结构,把经过单元 测试检验的模块按某种选定的策略装配起来,在 装配过成程中队程序进行必要的测试。
用中不断修改完善原型,直至用户满
意为止,否则重软新件工构程2造[1] 一个原型。
PPT文档演模板
§2.4 增量模型
• 增量模型
也称渐增模型,使用增量模型开发软件时,把 软件产品作为一系列的增量构件来设计、编码、 集成和测试。
增量模型由若干个开发序列构成,每个序列均 采用瀑布模型来开发可以发行的“增量”,每 个“增量”都是在原有软件基础上开发出来的, 每产生一个“增量”相当于推出一个软件新版 本。
• 软件有一个孕育、诞生、成长、成熟、衰亡的生存过 程。这个过程即为计算机软件的生存周期。
• 软件产品从形成概念开始,经过开发、使用和维护, 直到最后退役的全过程称为软件生存周期。
软件生存周期主要包括以下3个部分:
1.软件定义(系统分析):问题定义、可行性研究(软件计划)、 需求分析;
2.软件开发(系统设计):概要设计、详细设计、软件实现 (编码、单元测试)、综合测试(组装测试、确认测试);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.可检验性检查--能否设计出一组验证方法,确 定了检验的标准。
四、需求管理
需求管理贯穿需求分析全过程,包括:
需求管理
变更控制
• • • • • 评估建议变更 分析影响 交流 实施 合并 测量需求的稳 定性
图书的分类管理的标准。而第二条需求则是版权法对
图书馆文献资料的保护的需要,描述了对一类文献资
料有限制的使用和服务。
二、需求分析与建模
主要对收集到的需求进行提炼、分析和认真审 查,确保所有参加人员取得共识。找出错误、遗漏 和不足,建立完整的分析模型。
需求分析和建模又包含三个层次的工作。 1. 需求分析 2. 需求建模(分为企业建模、功能需求建模和非 功能需求建模等)
2. 无法对描述的准确度进行验证。
3. 难以适应需求的变化。
例:
酒店管理系统
按照功能分解为以下子系统:
1.客房预定系统 2.前台接待系统
3.前台收银系统 5.管家系统 7.客房系统 9.经理系统 11.密码管理系统 13.账务报表
4.账务系统 6.电话系统 8.合约系统 10.总经理系统 12.报表系统
需求获取技术
需求获取的方法一般有: 1.面谈法 重要而直接、简单的需求获取技术。 2. 问卷法调查法 是对面谈法的补充。 3.需求专题讨论会 最有力的需求获取技术,有利 于培养高效团队。 4. 观察用户的工作流程 适用于用户无法准确表达 由开发方和用户方共同召开需求主题沟通会 ,操作步骤: ① 开发方根据双方制定的《需求调研计划》确定会议内容; 需求的情况。 ② 会后开发方整理出《需求调研记录》提交给用户方确认; 5. 原型化方法 ③ 如果此主题还有未明确的问题则再次沟通,否则开始下一主题; 6. 基于用例的方法 ④ 所有需求都沟通清楚后,开发方根据历次《需求调研记录》整
1.1.3
验证库存 量级
●
一、需求获取(requirement elicitation)
是需求工程的主体。非常困难,主要原因有:
● 缺乏领域知识,应用领域的问题常常是模糊的、不 精确的;
● 存在默认的知识,如难以描述的常识问题; ● 存在多个知识源,且多个知识源之间可能有冲突; ● 客户可能的偏见,如不能提供或不想告知你所需 要了解的事情。
需求获取技术
需求获取的方法一般有: 1.面谈法 重要而直接、简单的需求获取技术。 2. 问卷调查法 是对面谈法的补充。 3.需求专题讨论会 最有力的需求获取技术。有利 面谈的对象主要有用户和领域专家: 于 培养高效团队。 1) 面谈前的准备要充分; 4. 观察用户的工作流程 适用于用户无法准确表达 2) 面谈后注意认真分析总结; 需求的情况。 3) 注意掌握面谈的人际交流技能。 5. 原型化方法 6. 基于用例的方法 还有知识工程方法等,如:场记分析法、卡片分 类法、分类表格技术和基于模型的知识获取等。
可行性研究
需求导出 和分析 需求描述
可行性报告 系统模型 需求有效性 验证
用户需求和 系统需求 需求文挡
需求工程过程
2.2 需求分析方法
功能分解方法 将系统看作若干功能模块的集合,每个功能又可 以分解为子功能,子功能还可继续分解,分解的结果即 是系统的雏形。
映射 问题空间 功能 子功能
存在问题 1. 需要人工完成
2
第二 章
软件需求工程
高等教育出版社 高等教育电子音像出版社
软件需求作为软件生存周期的第一个阶段,
其重要性越来越突出,到20世纪80年代中期,逐
步形成了软件工程的子领域——需求工程。 20世纪90年代后,需求工程成为软件界研究 的重点之一。从1993年起,每两年举办一次需求 工程国际研讨会(ISRE);1994年起,每两年举 办一次需求工程国际会议(ICRE)。一些关于 需求工程的工作小组相继成立,使需求工程的研
一、软件需求内容
软 件需 求
用 户需 求
系 统需 求
由客户管理员、 用户等提出
功能 需求
软件需求的内容
非功能 需求
领域 需求
功能需求
它是对系统应该提供的服务、功能以及系统 在特定条件下的行为的描述。它与软件系统的类 型、使用系统的用户等相关,有时需要详细描述
系统的功能、输入/输出、异常等,有时还需要声
用户借书信息、还书的信息、书籍源信息、预留信
息等进行查询,对其他图书馆的书籍、资料源信息
的查询功能。
2.非功能需求 ① 系统安全性需求:为保证系统安全性,对本图书 馆的各项功能进行分级、分权限操作,对各类用户进 行确认。对其他图书馆借阅图书和文献资料服务控制 访问范围:如限IP、限用户等。 ② 对系统可用性的需求:为了方便使用者,要求对 所有交互操作提供在线帮助功能。 ③ 对系统查询速度的需求:要求系统在20 s之内响 应查询服务请求。
美国于1995年开始对全国范围内的8000个软件项目 进行跟踪调查。
分析失败的原因发现,
与需求过程相关的原因占了 45%,而其中缺乏最终用户的
未完成
完成
完成未实施
完成并实施 完成未实施 未完成
参与以及不完整的需求又是
两大首要原因,各占13%和 12%。
软件需求的困难
软件需求是软件工程中最复杂的过程之一。 1. 应用领域的广泛性,它的实施无疑与各个应用行 业的特征密切相关。 2. 非功能性需求建模技术的缺乏,及其与功能性需 求有着错综复杂的联系,大大增加了需求工程的 复杂性。 3. 沟通上的困难,由于系统分析员、需求分析员等 各方面人员有不同的着眼点和不同的知识背景, 给需求工程的实施增加了人为的难度。
究得到了迅速进展。
2.1 软件需求工程的基本概念
1.什么是软件需求工程? 2.软件需求工程的任务是什么?
3.需求工程过程
4.软件需求分析方法 对系统应该提供的服务和所受到的约束进行理
解、分析、建立文档、检验的过程——需求工程。
软件需求的重要性
软件需求无疑是当前软件工程中的关键问题,
没有需求就没有软件。
三、需求的有效性验证
(一) 需求验证的重要性
1. 由于需求是软件开发的第一阶段,直接影响后 面各阶段的开发。
软件 需求 软件 设计 软件 编码 软件 测试 运行 维护
做什么
怎么做
2. 需求的可变性必须进行验证。
三、需求的有效性验证
(二) 需求验证的内容
1.有效性检查--指功能需求是否符合用户所提出 的需求。
读者借、还书籍的登记管理功能,随时根据读者 借、还书籍的情况更新数据库系统,如果书籍已经借 出,可以进行预留操作以及书籍的编目、入库、更新 等操作。
⑶数据库管理功能 对所有图书信息及读者信息进行统一管理维护 的功能,对书籍的借还也要进行详细的登记,以便 协调整个图书馆的运作。 ⑷信息查询功能 提供对各类信息的查询功能,如对本图书馆的
版本控制
• 定义需求文档 版本 • 确定单个需求 文档版本 记录所有需求 的变化
需求跟踪
• 定义与其他需 求的链接 • 定义与其他系 统元素的链接
(需求跟踪能力矩 阵、分析影响)
需求状态跟踪 • 定义需求状态 • 跟踪所有需求 状态
四、需求管理
需求管理的所有活动中,最重要的是 “需求变更 管理”,包括:
④ 对系统可靠性的需求:要求系统失败发生率小于 1%。
3. 领域需求 例如:对“大学图书管理系统”,提出一些与图 书管理的业务相关的需求:
⑴ 图书编目要求按照《中国图书馆分类法》进行;
⑵ 由于版权限制,某些文献资料只能在图书馆规定 的阅览室阅读,并限制复制和打印。
第一条需求是遵循我国图书管理的规定,执行对
需求获取技术
需求获取的方法一般有: 1.面谈法 重要而直接、简单的需求获取技术。 2. 问卷法调查法 是对面谈法的补充。 3.需求专题讨论会 最有力的需求获取技术。有利 于 培养高效团队。 是从多个用户中收集需求信息的有效 方式 ,一般问卷设计形式: 4. 观察用户的工作流程 适用于用户无法准确表达 1)多项选择问题 ; 需求的情况。 2)评分问题 ; 5. 原型化方法 3)排序问题 。 6. 基于用例的方法
例:盘存/销售系统,用户提出系统应有以下功能: ① 计算买主订单 ② 准备销售报表 ③ 建立买主文件和应收账发票 ④ 运行更新的盘存文件 ⑤ 产生托运单和包装单 ⑥ 保证库存及时订货
盘存/销售系统
1.0.0
销售处理
1.1.0
盘存处理
1.2.0
计算销售 记录
1.1.1
产生销售 报表
1.1.2
核对买主 贷方金额
传统需求分析
在传统软件工程生存周期中,涉及需求的阶段 称作需求分析。一般来说,需求分析的作用是: ●定义软件的范围及必须满足的约束; ●确定软件的功能和性能及与其他系统成分的接 口; ●建立数据模型、功能模型和行为模型;
●最终提供需求规格说明,并用于作为评估软件 质量的依据。
二、需求工程的活动
需求工程是系统工程和软件工程的一个交叉分支,涉 及软件系统的目标、软件系统提供的服务、软件系统的 约束和软件系统运行的环境。它还涉及这些因素和系统的 精确规格说明以及系统进化之间的关系。它也提供现实需 求和软件能力之间的桥梁。
明系统不应该做什么。 领域需求 它是由软件系统的应用领域所决定的特有的 功能需求,或是对功能的约束。
非功能需求 产品需求 机构需求 外部需求
可用性 需求
效率 需求
可靠性 需求
可移植 性需求 交付 需求 实现 需求
互操作 需求 标准 需求
道德 需求
立法 需求
性能 需求
空间 需求
隐私 需求
安全 性需求
3. 需求规格说明--不同的描述方式