软件工程导论(第五版)课件-第2、3章
《软件工程导论》张海潘第五版清华课后答案
了解结构化开发方法的核心概念和工具,提供 对练习问题的参考答案。
面向对象开发方法
第五章
深入探讨面向对象开发方法的理论和实践,学习如何设计和构建强大的面向 对象软件系统。
课后答案
第一章答案
掌握软件工程概述的关键知识点,提供练习题 的答案以加深理解。
第三章答案
学习需求分析和建模的实际应用,提供对课后 习题的详细解答。
第二章答案
了解软件生命周期的各个阶段,掌握解决实践 问题的方法和技巧。
《软件工程导论》张海潘 第五版清华课后答案
欢迎来到《软件工程导论》张海潘第五版清华课后答案的世界。让我们一起 探索这门令人兴奋的学科,并发现其中的奥秘和乐趣。
课本信息
书名:《软件工程导论》
作者:张海潘
版本:第五版
出版社:清华大学出版社
作者简介
张海潘
张海潘是一位资深的软件工程教授,拥有丰富的教学和研究经验。他对软件 开发过程和方法论有着深入的研究,并致力于培养下一代的软件工程师。
章节导引Biblioteka 1第二章:软件生命周期
2
深入研究软件项目的整个生命周期,了
解每个阶段的任务和活动。
3
第四章:结构化开发方法
4
介绍结构化开发方法的基本原理和技术, 帮助开发人员构建可靠和易维护的软件。
第一章:软件工程概述
了解软件工程的基本概念和原理,掌握 软件工程的核心思想和目标。
第三章:需求分析与建模
学习如何捕捉用户需求并进行有效的需 求分析和建模。
[工学]软件工程导论张海藩第5版第2_3章
- - 特性:件系统在可移植性、可维护性、安全性等方面 有什 么考虑?
-- 设计约束:是否存在必要的标准、开发语言、数据库、 资源 限制、运行环境等因素的影响和策略?
2021/5/21
软件工程导论 王培丽
28 29
编写需求规格说明的原则
2021/5/21
软件工程导论 王培丽
30 30
编写需求规格说明的原则
• 原则 5:文档段落不宜太长
- 简短 - 记住:不要在需求说明中使用“和/或”、“等等”之类的词
• 原则 6:避免使用模糊的、主观的术语
- 如用户友好、容易、简单、迅速、有效、许多、最新技术、 优越的、可接受的、最大化、最小化、提高等
可行性研究的任务 可行性研究的过程 系统流程图 成本/效益分析
2021/5/21
2
2.1.1 可行性研究的任务
可行性研究的目的
用最小的代价在尽可能短的时间内研究并确 定客户提出的问题是否有行得通的解决办法。
可行性研究的内容
技术可行性:使用现有的技术能实现这个系 统吗?
经济可行性:这个系统的经济效益能超过他 的开发成本吗?
进一步细化。
2021/5/21
12
2.1.4 数据流图
画数据流图的原则:
(1)数据流图中所有图形只限于四种基本图形元素; (2)每个处理至少有一个输入数据和一个输出数据; (3)每个元素都必须有名字; (4)数据流图只反映系统做什么; (5)按照层次给处理过程编号; (6)父图与子图要平衡(输入和输出要一致); (7)存储:一个局部存储只要当它作为某些处理的 数据接口或某个处理特定的输入输出时就要把它画出来;
软件工程导论第五版全套课件
第1章软件工程学概述1.1软件危机1.1.1软件危机的介绍1.1.2产生软件危机的原因图1.1引入同一变动付出的代价随时间变化的趋势1.1.3消除软件危机的途径1.2软件工程1.2.1软件工程的介绍1. 软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品2软件工程导论(第五版) 1.2.2软件工程的基本原理1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性1.2.3软件工程方法学1. 传统方法学2. 面向对象方法学1.3软件生命周期1. 问题定义2. 可行性研究3. 需求分析4. 总体设计5. 详细设计6. 编码和单元测试7. 综合测试8. 软件维护软件工程导论(第五版) 3 1.4软件过程1.4.1瀑布模型图1.2传统的瀑布模型1. 阶段间具有顺序性和依赖性2. 推迟实现的观点3. 质量保证的观点4软件工程导论(第五版)图1.3实际的瀑布模型1.4.2快速原型模型图1.4快速原型模型软件工程导论(第五版) 5 1.4.3增量模型图1.5增量模型图1.6风险更大的增量模型6软件工程导论(第五版) 1.4.4螺旋模型图1.7简化的螺旋模型软件工程导论(第五版) 7图1.8完整的螺旋模型8软件工程导论(第五版) 1.4.5喷泉模型图1.9喷泉模型1.4.6 Rational统一过程1. 最佳实践2. RUP软件开发生命周期软件工程导论(第五版) 9图1.10 RUP软件开发生命周期1.4.7敏捷过程与极限编程1. 敏捷过程2. 极限编程图1.11 XP项目的整体开发过程10软件工程导论(第五版)图1.12 XP迭代开发过程1.4.8微软过程1. 微软过程准则2. 微软软件生命周期图1.13微软软件生命周期阶段划分和主要里程碑3. 微软过程模型图1.14微软过程的生命周期模型1.5小结习题11. 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?2. 假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?3. 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?4. 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
软件工程导论 第3章.ppt
结构化分析方法就是面向数据流自顶向下逐步求精 进行需求分析的方法。通过可行性研究已经得出了 目标系统的高层数据流图,需求分析的目标之一就 是把数据流和数据存储定义到元素级。为了达到这 个目标,通常从数据流图的输出端着手分析,这是 因为系统的基本功能是产生这些输出,输出数据决 定了系统必须具有的最基本的组成元素。
为了解决这些问题,往往需要向用户和其他有关人 员请教,他们的回答使分析员对目标系统的认识更 深入更具体了,系统中更多的数据元素被划分出来 了,更多的算法被搞清楚了。通常把分析过程中得 到的有关数据元素的信息记录在数据字典中,把对 算法的简明描述记录在IPO图(见3.7节)中。通过分析 而补充的数据流、数据存储和处理,应该添加到数 据流图的适当位置上。
一旦得出了意见一致的列表,就把与会者分成更小 的小组,每个小组的工作目标是为每张列表中的项 目制定小型规格说明。小型规格说明是对列表中包 含的单词或短语的准确说明。
7. 逆向需求
逆向需求说明软件系统不应该做什么。理论上有无 限多个逆向需求,我们应该仅选取能澄清真实需求 且可消除可能发生的误解的那些逆向需求。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴, 但是据分析将来很可能会提出来的要求。这样做的 目的是,在设计过程中对系统将来可能的扩充和修 改预做准备,以便一旦确实需要时能比较容易地进 行这种扩充和修改。
在展示了每个人针对某个议题的列表之后,大家共 同创建一张组合列表。在组合列表中消去了冗余项, 加入了在展示过程中产生的新想法,但是并不删除 任何实质性内容。在针对每个议题的组合列表都建 立起来之后,由协调人主持讨论这些列表。组合列 表将被缩短、加长或重新措辞,以便更准确地描述 将被开发的产品。讨论的目标是,针对每个议题(对 象、服务、约束和性能)都创建出一张意见一致的列 表。
最新软件工程导论第五版习题答案教学讲义PPT
D3生理信息
F4警告信息
F2生理信号
P1 接收信号
定时的生理信号
P5 更新日志
F2生理信号 定时的 生理信号
E1 护士
E3 时钟
F3日前、时间
P4 定时取样 生理信号
F6日志
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
从问题陈述可知,本系统数据源点是“病人”和“护士” ,他们分别提供生理信号和要求病情报告的信息。进一步 分析问题陈述,从系统应该“定时记录病人情况以形成患 者日志”这项要求可以想到,还应该有一个提供日期和时 间信息的“时钟”作为数据源点。
从问题陈述容易看出,本系统的数据终点是接收警告信息 和病情报告的护士。
F6日志
D1患者日志
E1
护士
F1要求报告
P6
13:07:42
重庆工学产院生计病算情机报科告学与工程学院 李梁(liliang@)
13
作业及解答(第3章)
2-5 北京某高校可用的电话号码有以下几类:校内电话号码 由4位数字组成,第1位数字不是0;校外电话又分为本市 电话和外地电话两类,拨校外电话需先拨0,若是本市电 话则再接着拨8位数字(第1位不是0),若是外地电话则拨3 位区码再拨8位电话号码(第1位不是0)。
8
作业及解答(第3章)
E1 护士
F4警告信息、病情报告 F1要求报告
E1 护士
E2 病人
F2生理信号
P0 患者监护系统
F6日志
D1患者日志
F5安全范围
D2患者安全范围
E3 时钟
软件工程导论(ppt 42页)
1.1 软件产品的概念与特征 1.2 软件危机 1.3 软件工程的产生及其发展
1.1 软件产品的概念与特征
1.1.1 软件产品的概念与分类
就本质而言,软件就是一个信息转换器,它的功能不外是 产生、管理、获取、修改、显示或转换信息。它担任着双重角 色,首先,它是一种产品,表达了由计算机硬件体现的计算潜 能;其次,它又是开发和运行产品的载体,是计算机控制(操作 系统)、信息通信(网络)的基础,也是创建和控制其他软件(软 件工具和开发环境)的基础。
(3) 软件产品不会“磨损”。和硬件产品类似,软件产品 也会出现故障。所不同的是,硬件产品的故障多来自外在条件 导致的“磨损”或“老化”,而软件产品如果发生故障,无一 例外的是在设计开发过程中留有隐患。因此,硬件的故障可以 通过简单的更换部件解决,而软件的故障必须通过全面的软件 维护活动才有望克服。同时,不完善的维护活动又可能在软件 中注入新的故障,导致软件质量的“退化”。也就是说,软件 故障的修复要比硬件故障的修复复杂得多。因此,衡量软件产 品质量的一个重要指标就是它的“可维护性”。图1.1是软、硬 件产品的失效率曲线。
(2) 软件的生产与硬件不同。软件是由开发或工程化而形成 的,不是由传统意义上的制造过程生产的。虽然软件开发和硬件 制造之间有一些相似之处,可是两者在本质上是不同的。这两者 都能够通过良好的设计获得高质量的产品,但即使有了良好的设 计和优秀的样品,硬件在批量制造过程中仍然可能引入质量问题, 这种情况对于软件而言几乎不存在。
1 M 1~10 M
1.1.2 软件产品的特征
在制造硬件时,人的创造性的劳动过程(分析、设计、建 造、测试)能够完全转换成物理的形式,但软件是逻辑的而不 是物理的产品,因此软件具有和硬件完全不同的特征:
《软件工程导论》张海潘_第五版_清华_课后答案PPT课件
护士 护士
社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系
统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息
an.c 利息
2.3
打印利息
值
d清a单 ai
w. 某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别…等)输入进该系统,系统 ww 为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印 网 出机票给旅客。
源
旅客
取票通知 账单/票款
网 检验信 源息
检验信 息过程
重试信息
资
SC 图
件 用户执行模块 课
案
答 读用户命令
命令处理
题
习
案系统设置
现用/非现用
密码处理
答 控制器
系统
控制器
爱
读系统 数据
建立配 置文件
读 密码
用文件 比较密码
密码输出 控制器
机票预订系统(参见习题 2 第 3 题)
显示信息 与状态
产生 无效信息
6
更新日志
日志
日志
7 产生病情 要求
报告
课件 事样务
数据 数据
案
D1 患者日志
答
6.数据定义 1、顺序 + 2、选择〔 | 〕3、重复
题 – 定货系统 P39 习 – 习题 2 第 5 题 P44 案 2-1 应该从哪些方面研究目标系统的可行性?
(完整版)《软件工程导论》第五版张海藩编著总结
总结重点:❖∙Unit1❖∙软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
❖∙软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。
❖∙软件是指程序、数据和文档三者共同构成的配置。
❖∙包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
❖∙软件的描述性定义:软件由计算机程序,数据结构和文档组成。
❖∙软件质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体”具体来说: 1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
❖∙将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户的观点——面向管理的观点,且是定性描述的。
❖∙软件质量度量体系:内部度量可用于开发阶段的非执行软件产品,外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用。
❖∙软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。
❖∙软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。
❖∙软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。
❖∙结构程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。
它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。
❖∙用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具(CASE)。
❖∙软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用的整个过程。
各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同。
软件工程导论第3章需求分析(第五版)(张海藩编著)a.pptx
软件需求分析的基本任务是准确地回答“系统必须 做什么?”
3.1 需求分析的任务
3.1.1 确定对系统的综合要求
1.功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应该划 分出系统必须完成的所有功能。
2.性能需求
性能需求指定系统必须满足的定时约束或容量约束,通常包括 速度(响应时间)、信息量速率、主存容量、磁盘容量、等方面 的需求。
软件不应该有的功能及性能。
9. 将来可能提出的要求
3.1.2 分析系统的数据要求
这是软件需求分析的一个重要任务。通常采用建立数据流 图、数据字典、数据模型的方法。
常用的图形工具有层次方框图HIPO和Warnier图,在本章 第3.7节中将简要地介绍这两种图形工具。
软件系统经常使用各种长期保存的信息,为减少数据冗余, 避免出现插入异常或删除异常,简化修改数据的过程,通 常需要把数据结构规范化(见3.5节)。
原则 3:考虑用户、分析员和实现者的交流
---对形式化和自然语言之间作出恰当的选择 --- 明确的理解最重要,不存在十全十美的软件规 格说明书
5. 接口需求
接口需求描述应用系统与它的环境通信的格式。常见 的接口需求有:用户接口需求;硬件接口需求;软件接 口需求;通信接口需求。
6. 约束
常见的约束有:精度;工具和语言约束;设计约束; 应该使用的标准;应该使用的硬件平台。
7、用户界面需求,系统环境
软件界面,多少台机器、机型等接口。
8、逆向需求
3.3.1 根据需求分析结果建立模型 模型:用于描述客观事物的图形。 根据需求分析过程中获取的用户需求,建立三种模型: 数据模型:E-R图,层次图,Warnier图 功能模型:数据流图 行为模型:状态转换图
软件工程导论全课件
可通过技术复审检查OOA和OOD的 模型的正确性和一致性。
2 面向对象测试策略 面向对象程序的特点对软件测试的影响:
•信息隐蔽对测试的影响 •封装和继承对测试的影响
•单元和集成测试策略必须有很大的改变 •测试用例的设计必须考虑OO软件的特
征
(1). OO的单元测试
单元概念的变化—封装的类或对象作为最小 的可测试单位
子类继承或重载的父类成员函数的测试问题
•对父类的测试是否能够照搬到子类?
上例中: Base∷Redefined() 和Derived ∷Redefined() 已 是两个不同的成员函数, 照理应对Derived ∷Redefined() 重新进行测试分析, 设计测试用例,但由于它们的相似性,只 需在Base∷Redefined() 的测试要求和测试用例上添加对 Derived ∷Redefined() 的新的测试要求和增补相应的测试
4.对每个消息,确定下一层被调用的操作,并把这些操作 结合进测试序列中.
ATM ATM User Interface verifyStatus depositStatus dispense Case printAccent Stat readCardInfo getCaseAmnt
cardInserted password deposit withdraw accentStatus terminate
在限制 下还是 存在操 作的许 多排列
系统对操作的限制: •必须在应用其它操作之前先打开帐户,在完成了 全部操作之后才能关闭帐户; •……
一个account类实例的最小行为历史包括下列操作: open . setup . deposit . withdraw . close account类的最小测试序列 大量的其它行为可能在下面序列中发生: open . setup . deposit . [deposit | withdraw | balance | summarize | creditLimit] n . withdraw . close
软件工程导论课件之第3章 需求分析(第五版)(张海藩编著)_d_百度文库
4系统需求 单击此处编辑母版标题样式
• 系统需求是更加详细地描述系统应该做什么, 通常包括许多不同的分析模型,诸如对象模 • 单击此处编辑母版副标题样式 型、数据模型、 状态模型等。 • 系统需求模型的描述
- 结构化英语( PDL ) - 可视化模型 - 形式化方法
•
系统需求主要是面向开发人员进行描述,是 开发人员 进行软件设计的基础。
4. 出错处理需求
在某些情况下,“出错处理”指的是当应用系统发现它自 己犯下一个错误时所采取的行动。但是,应该有选择地提出这类 出错处理需求。对应用系统本身错误的检测应该仅限于系统的关 键部分,而且应该尽可能少
青岛科技大学信息学院
5. 接口需求
接口需求描述应用系统与它的环境通信的格式。常见的 接口需求有:用户接口需求;硬件接口需求;软件接口需求; 通信接口需求。
需求分析的任务 与用户沟通获取需求的方法 分析建模与规格说明 实体-联系图 数据规范化
青岛科技大学信息学院
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
成功来之不易 单击此处编辑母版标题样式
• 单击此处编辑母版副标题样式 (取消)
31%
16.2%
(成功地完成)
16
非功能需求 单击此处编辑母版标题样式
• 单击此处编辑母版副标题样式
过程需求
软件交付 实现方法 标准
非功能需求
产品需求
外部需求
道德 法规 成本
互操作性
可用性
软件性能
存贮空间
可靠性
可移植性
安全性
17
非功能需求 单击此处编辑母版标题样式
•
度量指标 每秒处理的事务 用户或事件的响应时间 速度 单击此处编辑母版副标题样式 屏幕的刷新时间 特性
软件工程导论之第3章-需求分析(第五版)(张海藩编著)-b-百度文库PPT课件
55
单击此处编辑2.母需版求标专题题样式讨论会
• 单击此处编辑母版副标题样式
56
单击此处编辑母版3.标问题卷样调式查
• 问卷调查
• 单-击可此用于处确编认假辑设母和收版集副统计标倾题向样数据式
- 问卷需要快速回答,允许匿名方式
• 存在问题
- 相关的问题不能事先决定 -问题背后的假设对答案造成偏颇,如这符合你的期望吗? -- 难以探索一些新领域 - 难以继续用户的模糊响应
• 单需击要此系处统编做辑什么母。版副标题样式
• 用例建模的步骤
- 确定系统的参与者 确定场景 - 确定系统用例 - 确定用例之间的关系 编写用例描述文档
60
青岛科技大学信息学院
3.3 分析建模与规格说明
3.3.1分析建模
-需求分析的步骤
1、问题识别
双方确定对问题的综合需求。基于项目有 关的软件的功能、性能、环境、用户界面、可 靠性、安全性、保密性、可移植性、可维护性、 等方面的需求。
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
青岛科技大学信息学院
青岛科技大学信息学院
3.2 与用户沟通获取需求的方法
需求获取的关键在于通过与用户的沟通和交流,收集 和理解用户的各项要求。
3.2.(1) 访谈--访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察
3.3.2 软件需求规格说明
青岛科技大学信息学院
3.3.2 软件需求规格说明
软件需求规格说明书,是需求分析阶段得 出的最主要的文档。
补充:需求分析阶段要编写文档:
1)编写“需求规格说明书” 2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依 据). 4) 修改完善软件开发计划
软件工程导论PPT课件
软件(software)是计算机系统中与硬件 (hardware)相互依存的另一部分,
它包括程序(program)、 相关数据(data)及其 说明文档(document)。
软件特指大型复杂的程序
2021
5
软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2021
21
围棋与软件工程的感想
围棋
围棋棋谱拿过来的时候, 大师问“后面应该走哪里?”
十个初级爱好者选择的落
点散布在棋盘各处…… 十个职业棋手说的落子点
都差不多,甚至包括后面的几 步……
这就是高手和低手的差
别……
2021
13
软件危机的原因
● 一方面是与软件本身的特点 有关
● 另一方面是由软件开发和维 护的方法不正确有关
2021
14
软件开发工作量分配比例
40% ~ 50%
10% ~ 20%
测试
程序
其它
2021
15
引入同一变化付出的代价随时间变化的趋势
2021
16
费用分配比例
55%~70%
软件维护 其它
2021
25
总之: 软件工程是应用计算机科学、 数学及管理科学等原理开发软 件的工程。它借鉴传统工程的 原则、方法,以提高质量,降 低成本为目的。
2021
26
软件工程是一门交叉学科
软件工程的主要研究内容
软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境
软件工程管理:软件管理学 软件经济学 软件心理学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章可行性研究 & 第三章软件需求分析一、复习要求1. 了解可行性研究的任务2. 了解软件需求的目标和任务。
3. 了解软件软件需求的获取方法。
4. 掌握结构化分析方法(数据流图、数据字典)。
二、内容提要1. 可行性研究的任务可行性研究的目标是用最小的代价在尽可能短的时间内确定问题是否可解,或者确定问题是否值得去解。
这是在软件项目计划阶段应该做的事情,包括四个方面的研究:▪经济可行性:进行成本∕效益分析。
从经济角度判断系统开发是否“合算”。
▪技术可行性:进行技术风险评价。
从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。
▪操作可行性:判断系统的操作方式在该用户组织内部是否可行。
▪法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。
2.软件需求分析的目标和任务软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
需求分析阶段研究的对象是软件项目的用户要求。
一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,另一方面,要准确地表达被接受的用户要求。
只有经过确切描述的软件需求才能成为软件设计的基础。
通常软件开发项目是要实现目标系统的物理模型。
作为目标系统的参考,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
其实现步骤如图所示。
图参考当前系统建立目标系统模型具体讲,需求分析的任务就是在可行性分析的基础上,进一步了解、确定用户需求准确地回答“系统必须做什么?”的问题。
获得需求规格说明书。
还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。
它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。
3. 需求分析的过程需求分析阶段的工作,可以分成以下四个方面:(1) 问题识别首先系统分析人员要确定对目标系统的综合要求,即软件的需求。
并提出这些需求实现条件,以及需求应达到的标准。
这些需求包括功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求,并预先估计以后系统可能达到的目标。
此外,还需要注意其它非功能性的需求。
如针对采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的需求。
此外,要建立分析所需要的通信途径,以保证能顺利地对问题进行分析。
分析所需的通信途径如图所示。
图软件需求分析的通信途径(2) 分析与综合问题分析和方案的综合是需求分析的第二方面的工作。
分析员必须从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,判断是否存在因片面性或短期行为而导致的不合理的用户要求,是否有用户尚未提出的真正有价值的潜在要求。
剔除其不合理的部分,增加其需要部分。
最终综合成系统的解决方案,给出目标系统的详细逻辑模型。
(3) 编制需求分析阶段的文档已经确定下来的需求应当得到清晰准确的描述。
通常我们把描述需求的文档叫做软件需求说明书。
同时,为了确切表达用户对软件的输入输出要求,还需要制定数据要求说明书及编写初步的用户手册。
(4) 需求分析评审作为需求分析阶段工作的复查手段,应该对功能的正确性、文档的一致性、完备性、准确性和清晰性,以及其它需求给予评价。
为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。
评审结束应有评审负责人的结论意见及签字。
除分析员之外,用户/需求者,开发部门的管理者,软件设计、实现、测试的人员都应当参加评审工作。
4. 结构化分析方法结构化分析方法是一种建模技术。
它建立的分析模型如图所示。
图 分析模型的结构在模型的核心是数据词典,它描述了所有的在目标系统中使用的和生成的数据对象。
围 绕着这个核心的有三种图:实体—关系图(ERD)描述数据对象及数据对象之间的关系; 数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换 的功能(子功能);状态—迁移图(STD)描述系统对外部事件如何响应,如何动作。
因此,ERD 用于数据建模,DFD 用于功能建模,STD 用于行为建模。
(1) 功能建模和数据流 最初,结构化分析方法仅讨论数据流建模。
目标系统被表示成如图2.6所示的数据变换 流程图。
系统的功能体现在核心的数据变换中。
图2.6 数据流图(DFD )功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。
数据流图数据流图的基本图形元素有四种。
实体— 关系图数据 词典状态—迁移图数据流图数据对象描述控制规格说明 加工规格说明外部实体外部实体外部实体外部实体目标 系统输入信息输入信息输出信息输出信息图DFD的基本图形符号(2) 数据词典数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。
·词条描述在数据词典的每一个词条中应包含以下信息:①名称:数据对象或控制项、数据存储或外部实体的名字。
②别名或编号。
③分类:数据对象?加工?数据流?数据文件?外部实体?④描述:描述内容或数据结构等。
⑤何处使用:使用该词条(数据或控制项)的加工。
加工规格说明加工规格说明用来说明DFD中的数据加工的加工细节。
加工规格说明描述了数据加工的输入,实现加工的算法以及产生的输出。
另外,加工规格说明指明了加工(功能)的约束和限制,与加工相关的性能要求,以及影响加工的实现方式的设计约束。
必须注意,写加工规格说明的主要目的是要表达“做什么”,而不是“怎样做”。
因此它应描述数据加工实现加工的策略而不是实现加工的细节。
目前用于写加工规格说明的工具有结构化英语、判定表和判定树。
三、例题分析一、选择题1. 需求分析的主要目的是( B、C)。
2个A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”2. 需求分析的主要方法有( C、D)。
2个A) 形式化分析方法B) PAD图描述C) 结构化分析(SA)方法D) OOA法3. SA法的主要描述手段有( B)。
A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明4. 画DFD图的主要目的是( A 、D )。
2个A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析的工具5. 数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成。
( C )A) 数据说明条目、控制流条目、加工条目、数据存储条目B) 数据流条目、数据项条目、文件条目、加工条目C) 数据源条目、数据流条目、数据加工(处理)条目、数据文件条目D) 数据流条目、数据文件条目、数据池条目、加工条目6、软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( C )。
A) 总结B) 阶段性报告C) 需求分析评审D) 以上答案都不正确7、在结构化分析方法中,用以表达系统内数据的运动情况的工具有( A )。
A)数据流图B)数据词典C)结构化英语D)判定表与判定树9、可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是( B )A) 经济可行性B) 技术可行性C) 操作可行性D) 法律可行性二、判断题1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。
(×)2. SA法是面向数据流,建立在数据封闭原则上的需求分析方法。
(√)3. 加工说明是对系统流程图中的加工进行说明。
(×)4. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。
(×)5. 需求分析的主要方法有SD法、OOA法及HIPO法等。
(×)6. 分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。
(×)三、问答题1. 需求分析阶段的任务是什么?答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。
准确地回答“系统必须做什么?” 的问题。
获得需求规格说明书。
还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。
它还涉及到这些因素和系统的精确规格说明,以及系统进化之 间的关系。
2. M 公司的软件产品以开发实验型的新软件为主。
用瀑布模型进行软件开发已经有 近十年了,并取得了一些成功。
若你作为一名管理员刚加入M 公司,你认为快速原 型 法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总 裁不喜欢报告长度 超过一页(B5)。
参考答案提示: 应先简述瀑布模型的缺点,它已不适宜开发实验型的软件。
根据快速原型法的特点,说 明它特别适合于开发探索型、实验型的软件。
3. 如何画分层数据流图? 答:总的原则是:至顶而下,逐层分解(画分层数据流图)。
比较复杂的系统不能画在一张纸上,逐层分解的画法可以控制每一层的复杂度。
顶层:将整个系统作为一个加工,描述系统边界(输入与输出)。
中间层:表示某个加工分解为一组子加工,其中的子加工还需进一步分解。
底层:由不再进行分解的基本加工组成。
4. 加工说明有哪些描述方法? 答:● 结构化语言:介于自然语言和形式语言(如谓词逻辑)之间。
● 结构化英语:通常由外层和内层结构组成。
● 判定表:适用于表述比较复杂的加工逻辑,如具有多项选择条件的操作。
● 判定树:本质上与判定表相同,图形表示更易于理解。
5、考务处理系统的分层数据流图如下图所示。
该考务处理系统有如下功能:① 对考生送来的报名表进行检查; ② 对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生名单送给 阅卷站; ③ 对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者; ④ 填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生; ⑤ 按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难度分析, 产生统计分析表。
(1) 图(c)中,加工1.1的输入数据流是( A ),输出数据流是( B ),图(b)中,加工 2的输出数据流是( C ),它是由( D )和( E )组成。
供选择的答案: A E. ① 统计分析表 ② 报名表 ③ 准考证 ④ 考生通知单 ⑤ 合格报名表 ⑥ 难度分析表 ⑦ 错误成绩表 ⑧ 分类统计表考生考试中心考务处 理系统不合格报名表 报名表 统计分析表合格标准(2) 图(d)中的文件“试题得分表”是否在图(b)中漏掉了? 回答是( F )。