当前位置:
文档之家› 软件工程概论-需求分析(含可行性分析)-3学时
软件工程概论-需求分析(含可行性分析)-3学时
美国于1995年开始对全国范围内的8000个软件项目进行
跟踪调查。
分析失败的原因发
现,与需求过程相关的
33% 未完成
34% 完成
完成未实施
完成并实施 完成未实施 未完成
原因占了45%,而其中 缺乏最终用户的参与以 及不完整的需求又是两
33%
大首要原因,各占13%
和12%。
2019/12/20
13
2019/12/20
该系统应该具备以下功能: ⑴ 基本数据维护功能 ⑵ 基本业务功能 ⑶ 数据库管理功能 ⑷ 信息查询功能
2019/12/20
22
1、功能需求 (1)基本数据维护功能:
— 提供使用者录入、修改并进行维护基本数据的途径; — 读者、图书资料的相关信息的修改,更新。
(2)基本业务功能:
— 读者借书、还书的登记管理功能; — 随时根据读者借书、还书的情况更新数据库系统; — 如果书籍已经借出,可以进行预留操作; — 书籍的编目、入库、更新等操作。
33
什么是模型
模型:是对对象系统的形式化的特征抽象,概括 性或近似地表示。
模型化:是通过抽象、概括和一般化,把研究的 对象或问题转化为本质(关系或结构)相同的另 一对象或问题,从而加以解决的方法。
模型化方法要求所建立的模型能真实反映所研究 对象的整体结构、关系或某一过程、某一局部、 某一侧面的本质特征和变化规律。
需求分析在项目中的地位
14
系统分析员在项目中的地位
2019/12/20
15
每个参与软件系统开发的人员 都需要有一个独特的系统视角
用户
构架工程师 项目经理
2019/12/20
系统
系统分析员
测试人员 设计人员
16
软件需求的困难
软件需求是软件工程中最复杂的过程之一:
1. 应用领域的广泛性,它的实施无疑与各个应用行业的特 征密切相关。
《可行性研究报告模板.doc》
2019/12/20
7
思考
【习题2-4】 目前住院病人主要由护士护理,这样做不仅需要大量
护士,而且由于不能随时观察危重病人的病情变化,还可 能会延误抢救时机。某医院打算开发一个以计算机为中心 的患者监护系统,试写出问题定义,并分析开发这个系统 的可行性。
【医院对患者监护系统的基本要求】
由开发方和用户方共同召开,操作步骤:
① 开发方根据双方制定的《需求调研计划》召开相关需求主题沟 通会;
② 会后开发方整理出《需求调研记录》提交给用户方确认;
③ 如果此主题还有未明确的问题则再次沟通,否则开始下一主题 ;
④ 所有需求都沟通清楚后,开发方根据历次《需求调研记录》整 理出《用户需求说明书》,提交给用户方确认签字。
2019/12/20
27
需求获取的方法
需求获取 方法
1、访谈
2、结构化 分析方法 (SA)
3、简易的 应用规格说
明技术
4、快速建 立软件原型
2019/12/20
28
需求获取方法(1)——访谈
1. 面谈法 重要而直接,简单的需求获取技术。 2. 问卷调查法 是对面谈法的补充。 3. 情景分析技术。 面谈的对象主要有用户和领域专家:
2019/12/20
24
2、非功能需求
(1) 系统安全性需求:
—为保证系统安全性,对本图书馆的各项功能进行分级、 分权限操作,对各类用户进行确认。对其它图书馆借阅图 书和文献资料服务控制访问范围:如限IP、限用户等。
(2)对系统可用性的需求:
—为了方便使用者,要求对所有交互操作提供在线帮助功 能。
32
分析建模
数据模型
实体-联系图(E-R图):描述数据对象及数据对象之间 的关系。
功能模型
数据流图(DFD):描绘当数据在软件系统中移动时被 变换的逻辑过程,指明系统具有的变换数据的功能。
行为模型
状态转换图:描绘系统各种行为模式和在不同状态间转 换的方式。
2019/12/20
11
需求分析的作用
定义软件的范围及必须满足的约束; 确定软件的功能和性能及与其他系统成分的接口; 建立数据模型、功能模型和行为模型; 最终提供需求规格说明,并用于作为评估软件质 量的依据。
2019/12/20
12
软件需求的重要性
软件需求无疑是当前软件工程中的关键问题, 没有需求就没有软件。
35
模型的构造过程(续1)
去掉具体模型中的非本质因素:抽取现实系统 的实质,抽象出当前系统的逻辑模型。
购
书
购
申
书
发
学 生
请 审查 有效性
单
票
开发票
开领 书单
领
书
单
书学
发书
生
学生购买教材的逻辑模型
2019/12/20
36
模型的构造过程(续2)
分析当前系统与目标系统的差别,建立目标系 统的逻辑模型。
2019/12/20
29
需求获取方法(2)——SA方法
面向数据流自顶向下求精过程
有补充 修正
需要 分解
分析追踪 数据流图
用户复查
无补充 修正
细化 数据流图
不需要分解
2019/12/20
30
需求获取方法(3) ——简易的应用规格说明技术
面向团队的需求收集法。
需求专题讨论会 最有力的需求获取技术。有利于培养高 效团队。
3、导出新系统的高层逻辑模型
— 从现有系统的物理系统出发,导出现有系统的逻辑模型, 设想目标系统的逻辑模型,建造新的物理系统。
4、进一步定义问题
— 复查问题定义、工程规模和目标。
2019/12/20
5
2.1.3 可行性研究的步骤(2/2)
5、导出和评价供选择的解法
— 从技术角度出发考虑解决问题的不同方案。
6、推荐行动方针
— 对于所推荐的系统进行仔细的成本/效益分析。
7、草拟开发计划 — 制定工程进度表;
— 估算各类开发人员和各种资源的需要情况; — 估算系统生命周期每个阶段的成本; — 给出下需求分析阶段的详细极度表和成本估计。
8、书写文档提交审查
2019/12/20
6
2.1.4 可行性研究报告参考模板
⑵ 由于版权限制,某些文献资料只能在图书馆规定 的阅览室阅读,并限制复制和打印。(数据权限)
— 是版权法对图书馆文献资料的保护的需要,描述了对一
类文献资料有限制的使用和服务。
2019/12/20
26
Q&A
Q:从对软件需求的相关概念及重要性等的了解, 你认为需求人员应该具备怎样的能力?
A:丰富的软件开发经验; 良好的沟通能力、表达能力; 行业背景 。
无效书单
学 购书单 审查并 发票
生
开发票
开领 领书单 学
书单
生
计算机教材管理系统的逻辑模型
对目标系统的逻辑模型进行细化、改进与优化 需求分析的验证
2019/12/20
37
结构化分析方法:SA
是面向数据流进行需求分析的方法 适合于数据处理类型软件的需求分析 基本思想:用抽象模型的概念,按照软件内部
随时接收每个病人的生理信号,定时记录病人情况以 形成患者日志,当某个病人的生理信号超出医生规定的安 全范围时向值班护士发出警告信息,此外,护士在需要时 还可以要求系统打印出某个指定病人的病情报告。
2019/12/20
8
监视病情产生 病情报告源自例:患者监护系统2019/12/20
更新病历
9
2.2 需求分析
技术可行性
各系统实现方案 的可行性分析
经济可行性 操作可行性
为每个可行方案制定粗略的实现进度
对以后的行动方针提出建议
2019/12/20
4
2.1.3 可行性研究的步骤(1/2)
1、复查系统规模和目标
— 确保分析员正在解决的问题确实是要求他解决的问题。
2、研究目前正在使用的系统
— 了解现有系统的基本功能及缺点、费用情况。
对体用问户题是方1)将的从式12多))来方多,项使法面面个一选用和谈谈用般择目结前后户问问标果的注中卷题系进准意收设;统行备认集计解分要真需形决析充分求式某:分析信:个;总息具结的;有效 1)能2在)3某评)种分注程问意度题掌上;握演面示谈目的标人系际统交的流行技能。 为; 3)排序问题 。 2)能保证用户在需求分析过程中始终 扮演积极主动的角色。
2019/12/20
34
模型的构造过程
构造模型的过程是一个抽象、分析的过程。
首先,通过对现实环境的调查,获得当前系统
的物理模型。
购
书
购
领
申
书
发
书
学 生
请
教务科 107
单 会计室 票 出纳员
206
206
单
书 教材科
507
学 生
张
王
李
赵
学生购买教材的实际处理流程:当前系统物理模型
2019/12/20
2. 非功能性需求建模技术的缺乏,及其与功能性需求有着 错综复杂的联系,大大增加了需求工程的复杂性。
3. 沟通上的困难,由于系统分析员、需求分析员等各方面 人员有不同的着眼点和不同的知识背景,给需求工程的 实施增加了人为的难度。
2019/12/20
17
需求分析的任务
需求 分析 任务
确定对 系统的 综合要
软件需求的内容
2019/12/20
19
功能需求
它是对系统应该提供的服务、功能以及系统在 特定条件下的行为的描述。它与软件系统的类型、 使用系统的用户等相关,有时需要详细描述系统的 功能、输入/输出、异常等,有时还需要申明系统不 应该做什么。