软件工程第3章

合集下载

软件工程第三章

软件工程第三章

条目格式如下: 数据流名: 组成: 流量:
3.5 需求分析方法 SIT 来源: 去向: · 文件条目。 文件条目主要说明文件由哪些数据项组成,存储方式和
存取频率等。 条目格式如下: 文件名: 组成: 存储方式: 存储频率:
3.5 需求分析方法 SIT · 数据项条目。 数据项名: 类型: 长度: 取值范围: · 加工条目。 加工条目主要说明加工的输入数据、输出数据及其加工
3.2 需求分析任务 SIT
二、分析系统的数据要求 分析系统的数据要求通常采用建立概念模型的方法。
三、导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模
型,通常用数据流图、数据字典和主要的处理算法描述这个 逻辑模型。 四、修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解, 可以比较准确地估计系统的成本和进度,修正以前制定的开 发计划。 五、开发原型系统
3.3.2用户需求
用户需求是从用户角度来描述系统功能和非功能需求, 以便让不具备专业技术方面知识的用户能看懂。这样的需求 描述只描述系统的外部行为,要尽量避免对系统设计特性的 描述。
3.3 软件需求分析类型 SIT
3.3.3系统需求
系统需求是比用户需求更详细的需求描述,是系统实现 的基本依据,因此,是一个完全的和一致的系统描述,是软 件工程人员系统设计的起点。
需求描述的结构化是围绕三个主要内容进行的,一是系 统操作对象,二是系统运行的功能,三是系统处理的事件。
3.6 软件需求工程管理 SIT 软件需求管理指的是一个为系统的需求进行启发、组织、
建档的系统方法,一个建立和维护客户和项目团队之间关于 变更系统需求所达成的一致性的过程。
需求模型是指将软件需求的捕获与开发、管理作为一个 工程,以软件需求的捕获与开发、管理为研究对象,抽象化 的工程参考模型,用以指导软件需求的各项实践活动。

软件工程课本讲解第3章 软件设计(详细设计)

软件工程课本讲解第3章 软件设计(详细设计)

第3章 软件设计 章
3.6 软件详细设计表示法
关于描述工具的有关说明: 关于描述工具的有关说明: 1.为了给出软件结构图中每一个模块的算法和块内数据结构 为了给出软件结构图中每一个模块的算法和块内数据结构 的清晰描述,需要采用适当的表达工具。 的清晰描述 需要采用适当的表达工具。 需要采用适当的表达工具 2.详细设计的表达工具有三类:图形、表格和语言。 详细设计的表达工具有三类:图形、表格和语言。 详细设计的表达工具有三类 3.无论哪类描述工具不仅要具有描述设计过程,如控制流程、 无论哪类描述工具不仅要具有描述设计过程,如控制流程、 无论哪类描述工具不仅要具有描述设计过程 处理功能、数据组织及其它方面的细节的能力 而且在编码 处理功能、数据组织及其它方面的细节的能力,而且在编码 阶段能够直接将它翻译为用程序设计语言书写的源程序。 阶段能够直接将它翻译为用程序设计语言书写的源程序。 4.详细设计的描述工具除了以前介绍过判定树和判定表外, 详细设计的描述工具除了以前介绍过判定树和判定表外, 详细设计的描述工具除了以前介绍过判定树和判定表外 还有程序流程图、 图及PDL等几种常用的工具 等几种常用的工具. 还有程序流程图、N-S图、PAD图及 图 图及 等几种常用的工具
第3章 软件设计 章 1.采用自顶向下、逐步求精的程序设计方法 采用自顶向下、 在需求分析、 概要设计中, 都采用了自顶向下、 在需求分析 、 概要设计中 , 都采用了自顶向下 、 逐层细化的方法。使用“抽象”这个手段, 逐层细化的方法 。 使用 “ 抽象 ” 这个手段 , 上层对问 题抽象、对模块抽象和对数据抽象, 题抽象 、 对模块抽象和对数据抽象 , 下层则进一步分 进入另一个抽象层次。在详细设计中, 解 , 进入另一个抽象层次 。 在详细设计中 , 虽然处于 具体”设计阶段, “ 具体 ” 设计阶段 , 但在设计某个模块内部处理过程 中,仍可以逐步求精,降低处理细节的复杂度。 仍可以逐步求精,降低处理细节的复杂度。

软件工程课件 第三章

软件工程课件 第三章

软件工程课件第三章在软件工程的领域中,第三章通常聚焦于软件设计的核心概念与方法。

软件设计是软件开发过程中的关键环节,它将需求分析阶段所确定的功能和性能要求转化为具体的软件架构和模块结构,为后续的编码和测试工作奠定坚实的基础。

软件设计的目标是创建一个高效、可靠、可维护且易于理解的软件系统。

这需要综合考虑诸多因素,如系统的功能需求、性能要求、安全性要求、用户体验等。

同时,还要考虑软件的可扩展性,以适应未来可能的变化和升级。

在软件设计中,架构设计是至关重要的一环。

架构设计就像是为一座大楼绘制蓝图,它决定了软件系统的整体结构和组织方式。

一个良好的软件架构应该具有清晰的层次结构,各个模块之间的职责明确,并且能够有效地支持系统的功能和性能需求。

例如,常见的分层架构将软件系统分为表示层、业务逻辑层和数据访问层。

表示层负责与用户进行交互,业务逻辑层处理核心的业务逻辑,数据访问层则负责与数据库进行交互。

这种分层架构使得各个层次之间的职责清晰,便于开发和维护。

模块设计也是软件设计的重要组成部分。

模块是软件系统中的基本单元,具有相对独立的功能。

在进行模块设计时,需要遵循高内聚、低耦合的原则。

高内聚意味着模块内部的各个元素紧密相关,共同完成一个特定的功能;低耦合则表示模块之间的依赖关系尽量少,使得一个模块的修改对其他模块的影响最小化。

例如,一个负责用户登录的模块,应该只专注于处理登录相关的功能,而不涉及其他诸如用户信息管理等功能。

接口设计在软件设计中也不容忽视。

接口是模块之间进行交互的桥梁,定义了模块之间的通信方式和数据格式。

良好的接口设计能够提高模块之间的协作效率,降低系统的复杂性。

例如,在设计一个数据存储接口时,需要明确规定数据的读写方法、参数类型和返回值类型等。

数据结构的选择也是软件设计中的一个关键决策。

不同的数据结构适用于不同的场景,选择合适的数据结构能够提高软件的性能和效率。

例如,对于频繁插入和删除操作的场景,链表可能是一个更好的选择;而对于快速查找操作,二叉搜索树或者哈希表可能更为合适。

软件工程第03章

软件工程第03章

【例3.1】 • “家庭保安系统”的软件允许用户在安装时进行系统
配置,实施对传感器的监控并通过控制面板与户主进 行信息交互。 • 系统开机后,软件系统负责显示系统当前的工作状态, 接收并处理户主的命令。 • 当系统处于配置状态,软件系统允许户主进行配置操 作。配置操作包括:
① 指定每一传感器的种类和编号; ② 设置开、关机密码; ③ 指定报警电话号码; ④ 指定报警延迟和电话重拨延迟时间(以秒为单位)。
在分析阶段构筑的模型不应涉及软件实现的细节,以 免分散分析人员的注意力、限制软件设计人员为提高 软件质量和效率而选择实现方法的自由度。
需求分析结束时确立的软件模型是生成需求规格说明 的依据,也是软件设计和实现的基础。
3.2.3 快速原型技术
如果按照传统的软件开发方法,需要经过漫长的开 发时间之后用户才能看到目标软件的最初版本。此 时用户常常会提出许多修改意见,有时甚至全盘否 定,导致开发失败。为了降低开发风险,在需求分 析阶段常常采用快速原型技术。
该模型是形成需求规格说明、进行软件设计的 基础。
2.需求描述
该步骤的主要任务是以需求模型为基础,生成 需求规格说明和初步的用户手册,并制定软件 产品验收测试计划。 需求规格说明是软件项目的一个关键性文档。 其中应包含对目标软件系统的功能、外部行为、 性能、质量、可靠性、可维护性、约束条件和 需求验证标准等的完整的描述。 初步用户手册应包括目标软件系统的用户界面 的描述和使用方法的初步构想。 验收测试计划是进行软件产品验收测试的依据。
3.2 需求分析的一般性技术
为了克服困难,更有效地开展需求分析工作, 软件系统分析人员必须掌握一些基本的需求分 析技术,主要包括:
初步需求获取技术; 需求建模技术; 快速原型技术; 问题的分解与抽象; 多视点分析技术等。

软件工程第3章newOK

软件工程第3章newOK

软件工程第3章newOK在软件工程的世界里,每一章都像是一座蕴藏着知识宝藏的山峰,等待着我们去攀登和探索。

而这第 3 章,更是有着独特的魅力和重要的价值。

第 3 章通常会聚焦于软件开发过程中的一些关键环节和技术。

比如说,需求分析这个至关重要的部分。

需求分析就像是为一座建筑绘制蓝图,如果在这个阶段出现偏差或者误解,后续的工作就可能像在沙滩上建高楼,摇摇欲坠。

在需求分析中,我们需要与各种利益相关者进行深入的交流。

这可能包括项目的投资方、最终的用户,以及开发团队中的各个角色。

通过与他们的沟通,我们要尽可能清晰地了解他们对软件系统的期望和需求。

这可不是一件轻松的事情,因为每个人的想法和需求都可能不同,甚至相互冲突。

我们需要像一个协调者一样,将这些纷繁复杂的需求进行梳理和整合,形成一份清晰、明确、完整的需求文档。

除了需求分析,第 3 章还可能会涉及到软件设计的初步概念。

软件设计就像是给一个建筑搭建框架,决定了软件的结构和模块划分。

一个好的软件设计应该具有高内聚、低耦合的特点。

这意味着软件的各个模块内部应该紧密相关,而模块之间的联系则应该尽量减少。

这样可以使得软件系统更加易于维护和扩展。

比如说,如果我们要开发一个在线购物系统,可能会将用户管理、商品管理、订单管理等功能划分为不同的模块。

每个模块都有自己明确的职责和功能,相互之间通过定义良好的接口进行交互。

这样,当我们需要对某个功能进行修改或者扩展时,就不会影响到其他的模块,从而降低了开发的风险和成本。

在软件设计的过程中,还需要考虑到软件的性能、安全性、可扩展性等非功能性需求。

这些需求虽然不像具体的功能那样直观,但却对软件的质量和用户体验有着至关重要的影响。

另外,第 3 章可能还会探讨一些软件开发方法和模型。

比如瀑布模型、敏捷开发模型等等。

不同的开发模型有着各自的优缺点,适用于不同的项目和场景。

瀑布模型是一种线性的开发过程,每个阶段都有着明确的输入和输出,并且只有在前一个阶段完成并通过审核后,才能进入下一个阶段。

软件工程第3章 软件工程过程模式

软件工程第3章  软件工程过程模式

组件技术是基于面 向对象技术发展起来的, 可以把组件视作为一个 盒子,它里面封装了许 多个类模块。
在基于组件复用的
软件开发中,软件由组 件装配而成,如同用标 准零件装配汽车一样。
7. 组件复用模式
组件复用模式是对基于组件的系统集成的过程 支持。组件复用可带来了流水线软件装配,系 统所需组件大多无须专门开发,而可通过专业 制作机构提供,由此可提高软件开发效率,并 可提高软件产品质量。
7. 组件复用模式
需求框架描述 组件复用分析 需求修改与细化
系统设计 组件开发 系统集成
(1)问题定义:这是软件生存期的第一个阶段, 主要任务是弄清用户要计算机解决的问题是什 么。
(2)可行性研究:任务是为前一阶段提出的问 题寻求一种至数种在技术上可行、且在经济上 有较高效益的解决方案。
(3)需求分析:弄清用户对软件系统的全部需 求,主要是确定目标系统必须具备哪些功能。
软件开发时期
开发时期具体设计和实现在前一个时期定义的软件, 它通常由下述4个阶段组成:总体设计,详细设计, 编码和单元测试,综合测试。其中前两个阶段又称 为系统设计,后两个阶段又称为系统实现。 (1)总体设计(也称为概要设计):设计软件的 结构,即确定程序由哪些模块组成以及模块间的关 系。 (2)详细设计:针对单个模块的设计。 (3)编码和单元测试:按照选定的语言,把模块 的过程性描述翻译为源程序,并进行测试。 (4)综合测试:通过各种类型的测试(及相应的调 试)使软件达到预定的要求。
瀑布模式在编码之前设置了系统分析与系统设计 的各个阶段,分析与设计阶段的基本任务规定,在 这两个阶段主要考虑目标系统的逻辑模型,不涉及 软件的物理实现。
3、质量保证的观点
软件工程的基本目标是优质、高产。为了保 证所开发的软件的质量,在瀑布模式的每个阶 段都应坚持两个重要做法。

《软件工程实用教程》第3_章_结构化需求分析

《软件工程实用教程》第3_章_结构化需求分析

第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 5.掌握數據流建模技術

软件工程 第3章 可行性研究

软件工程 第3章 可行性研究

第3章
3.2 可行性研究
18
3.2.4 可行性研究的工具
系统流程图的作用: (1)绘制系统流程图的过程是系统分析员全面了解系统业务处理的过程,是系统分析
员做进一步分析的依据。
(2)是系统分析员、管理员、业务操作员相互交流的工具。 (3)系统分析员可直接在系统流程图上画出可以有计算机处理的部分。
(4)可利用系统流程图来分析业务流程的合理性。
第3章
3.2 可行性研究
23
3.2.5 成本/效益分析
成本/效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。
成本/效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较
和权衡。 效益分为有形效益和无形效益,有形效益容易量化,无形效益很难量化。主要介绍有形效
益的分析。
第3章
3.2 可行性研究
24
3.2.5 成本/效益分析
1. 成本估计
取决于软件的复杂 程度和工资水平
根据经验和历 史数据估算
(1)代码行技术
软件成本 = 每行代码的平均成本×估计的源代码总行数 (2)任务分解技术 软件开发项目分解为若干个相对独立的任务,分别估计每个单独任务的成本: 单独任务成本 = 任务所需人力估计值×每人每月平均工资; 软件开发项目总成本估计 = 各个单独任务成本估计值之和。
60 40 20 0 1 2 投资回收期 该系统成本
盈亏平衡点
3、系统安装和维护费用
4、人员培训费用费用
3
4
5

成本及效益分析图
第3章
3.2 可行性研究
12
3.2.1 可行性研究的任务
3. 操作可行性(用户使用可行性) 判断为新系统规定的运行方式是否可行。首先要分析用户类型(如外行型、熟练型或专家

《软件工程》课件第3章 软件设计

《软件工程》课件第3章 软件设计
第3章 软件设计
第3章 软件设计
3.1 软件概要设计概述 3.2 软件设计的基本原理 3.3 软件结构准则 3.4 基于IDEF0图的设计方法 3.5 软件详细设计 3.6 软件详细设计表示法 3.7 小结 习题
第3章 软件设计
3.1 软件概要设计概述
3.1.1 概要设计基本任务 1.设计软件系统结构(简称软件结构) 为了实现目标系统,最终必须设计出组成这个系
4.评审 在该阶段,对设计部分是否完整地实现了需求中 规定的功能、性能等要求,设计方案的可行性、关键 的处理和内外部接口定义正确性、有效性以及各部分 之间的一致性等,都一一进行评审。
第3章 软件设计
3.1.2 软件概要设计文档 概要设计说明书是概要设计阶段结束时提交的技
术文档。按国标GB8576—88的《计算机软件产品开发文 件编制指南》规定,软件设计文档可分为“概要设计 说明书”、“详细设计说明书”和“数据库设计说明 书”。
在大多数情况下,模块间的控制耦合并不是必需的, 可以将被调模块内的判定上移到调用模块中去,同时将 被调模块按其功能分解为若干单一功能的模块,将控制 耦合改变为数据耦合。
第3章 软件设计
(5) 公共耦合:指通过一个公共数据环境相互作 用的那些模块间的耦合。公共数据环境可以是全程变 量或数据结构、共享的通信区、内存的公共覆盖区及 任何存储介质上的文件和物理设备等(也有将共享外部 设备分类为外部耦合的)。
概要设计说明书的主要内容如下: (1) 引言:编写目的,背景,定义,参考资料。 (2) 总体设计:需求规定,运行环境,基本设计 概念和处理流程,结构。
第3章 软件设计
(3) 接口设计:用户接口,外部接口,内部接口。 (4) 运行设计:运行模块组合,运行控制,运行时 间。 (5) 系统数据结构设计:逻辑结构设计,物理结构 设计,数据结构与程序的关系。 (6) 系统出错处理设计:出错信息,补救措施,系 统恢复设计。

软件工程第三章

软件工程第三章

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
2、数据流图 (1)、数据流图的组成 “ 四大组成部分:外部实体(也就是数据的源点或终 点)、处理、数据流和数据存储
3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
2、数据流图 (2)、数据流图的符号 “ a、基本符号 b、附加符号: * ——表示数据流之间是“与”的关系。 + ——表示数据流之间是“或”的关系。 ⊕ ——表示只能从中选一个(互斥关系)。
数据流图实例:××培训中心管理系统

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
数据流图实例:××培训中心管理系统

3.2.1、结构化分析(SA) 3.2.1、结构化分析(SA)方法
3、数据字典 数据字典是关于数据的信息的集合,也就是对数据 “ 流图中包含的所有元素的定义的集合。当数据流图 和对数据流图中每个元素的精确定义(数据字典)放 在一起时,才能共同构成系统的规格说明
1、Jackson系统开发方法 前期(20 世纪70 年代): “ 主要研究以处理数据为主的结构化程序设计,称 JSP(Jackson Structured Programming)方法 后期(20世纪80 年代): 集中研究软件系统的开发,称JSD(Jackson System Development)方法
3.2.4、Jackson系统开发方法 Warnier方法 3.2.4、Jackson系统开发方法、Warnier方法 系统开发方法、
1、Jackson系统开发方法 基本思想是从数据结构出发建立对应的程序结构, “ 适合于设计企事业事务管理类的数据处理系统。
3.2.4、Jackson系统开发方法 Warnier方法 3.2.4、Jackson系统开发方法、Warnier方法 系统开发方法、

软件工程第三章习题及参考答案

软件工程第三章习题及参考答案

第三章习题及参考答案1、用逐步求精方法解决下述得更新顺序主文件得问题。

美国某杂志社需要一个软件,以更新存有该杂志订户姓名、地址等数据得顺序主文件。

共有插入、修改与删除等3种类型得事务,分别对应于事务代码1、2与3。

也就就是说,事务类型如下:类型1:INSERT(插入一个新订户到主文件中)类型2:MODIFY(修改一个已有得订户记录)类型3:DELETE(删除一个已有得订户记录)事务就是按订户名字得字母顺序排序得。

如果对一个订户既有修改事务又有删除事务,则已对那个订户得事务排好次序了,以便使修改发生在删除之前。

2.分析图3、1所示得层次图,确定每个模块得内聚类型。

3.分析图3、2,确定模块之间得耦合类型。

在图3、2中已经给模块之间得接口编了号码,表3、1描述了模块间得接口。

4、假设您在一所职业高中工作,负责该校信息系统得建设与维护。

财务科长请您研究用学校拥有得微型计算机生成工资明细表与各种财务报表得可能性。

请详细描述您用结构化分析方法分析上述问题得过程。

用面向数据流方法设计工资支付系统得软件结构。

5.用3种方法计算图3、3所示流图得环形复杂度。

6、图3、4就是用程序流程图描绘得程序算法,请把它改画为等价得盒图。

7、某交易所规定给经纪人得手续费计算方法如下:总手续费等于基本手续费加上与交易中得每股价格与股数有关得附加手续费。

如果交易总金额少于1000元,则基本手续费为交易金额得8、4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额得5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额得4%加上134元。

当每股售价低于14元时,附加手续费为基本手续费得5%,除非买进、卖出得股数不就是100得倍数,在这种情况下附加手续费为基本手续费得9%。

当每股售价在14元到25元之间时,附加手续费为基本手续费得2%,除非交易得股数不就是100得倍数,在这种情况下附加手续费为基本手续费得6%。

软件工程-第3章

软件工程-第3章

3.2 与用户沟通获取需求的方法 21
3.2.4 快速建立软件原型
为了快速地构建和修改原型,通常使用下述3种方法 和工具。
第四代技术 可重用的软件构件 形式化规格说明和原型环境
第3章需求分析 3.2.4 快速建立软件原型
3.2 与用户沟通获取需求的方法 22
快速原型就是快速建立起来的旨在演示目标系统主要 功能的可运行的程序,快速原型应该具备的特性:
3.2.3 简易的应用规格说明技术
简易的应用规格说明技术是为了解决使用传统的访谈或 面向数据流自顶向下求精方法定义需求时,用户处于被动 地位而且往往有意无意地与开发者区分“彼此”。由于不 能像同一个团队的人那样齐心协力地识别和精化需求,这 两种方法的效果有时并不理想的问题,提出的。
第3章需求分析 3.2.3 简易的应用规格说明技术
客观世界中的事物彼此间往往是有联系的。 数据对象彼此之间相互连接的方式称为联系,也称为 关系。联系可分为以下3种类型。
一对一联系(1∶1) 一对多联系(1∶N) 多对多联系(M∶N)
第3章需求分析
3.4.3 联系
32
3.4 实体联系图
(1) 一对一联系(1∶1) 例如,一个部门有一个经理,而每个经理只在一个部门任 职,则部门与经理的联系是一对一的。 (2) 一对多联系(1∶N) 例如,某校教师与课程之间存在一对多的联系“教”,即 每位教师可以教多门课程,但是每门课程只能由一位教师来 教(见图3.2)。 (3) 多对多联系(M∶N) 例如,图3.2表示学生与课程间的联系(“学”)是多对多 的,即一个学生可以学多门课程,而每门课程可以有多个学 生来学。
第3章需求分析
3.4实体联系图
28
3.4 实体联系图
数据模型中包含3种相互关联的信息:数据对象、 数据对象的属性及数据对象彼此间相互连接的关系。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


信息域

信息域:包括信息内容、信息流、以及信息结构。 信息内容表示了单个数据和控制对象,目标软 件所有处理的信息集合由它们构成。 例如,数据对象“工资”是一组重要数据体的 组合:领款人的姓名、净付款数、付款总额、 扣除额等等


信息流表示了数据和控制在系统中流动时的变化 方式,输入对象被变换为中间信息(数据和/或控 制),然后进一步被变换为输出
用户提出的要求超出软件系统可以实现的 范围或实现能力; 不同的用户提出了相互冲突的需求

系统建模


建模工具的使用在用户和系统分析人员之间建 立了统一的语言和理解的桥梁,同时系统分析 人员借助建模技术对获取的需求信息进行分析, 排除错误和弥补不足,确保需求文档正确反映 用户的真实意图。 常用的分析和建模方法有面向数据流方法、面 向数据结构方法和面向对象的方法。
FAST基本原则


③ ④ ⑤ ⑥
在中立的地点举行由开发者和用户出席的会议; 建立准备和参与会议的规则; 建议一个足够正式的议程以便可以进行自由的交流; 一个“协调者”(他可以是用户、开发者或其他外人)来控制 会议; 使用一种“定义机制”(它可以是工作表、图表、墙上胶黏 纸或墙板); 目标是标识问题、提出解决方案的要素、商议不同的方法、 以及在有利于完成目标的氛围中刻画出初步的需求。
为何进行需求分析



干系人的需要(needs)、期望和优先级通常 不会描述足够细化或使用定量的术语 设计、开发和测试等活动都需要详细的、可 测量的需求描述 定义需求意味着把需要(needs)转化为需求 (requirement)描述
注意:需求定义可能会经历多轮迭代。
需求分析的目标


完整的理解用户/客户的需求 消除需求中的不一致性、不规则的地方 识别隐含的需求,特别是非功能性需求 需求文档化

本书将软件需求工程细分为:需求获取、 需求分析与协商、系统建模、需求规约、 需求验证和需求管理六个阶段。
需求获取


系统分析人员通过与用户的交流、对现有系统的 观察及对任务进行分析,确定系统或产品范围的 限制性描述、与系统或产品有关的人员及特征列 表、系统的技术环境的描述、系统功能的列表及 应用于每个需求的领域限制、一组描述不同运行 条件下系统或产品使用状况的应用场景以及为更 好地定义需求而开发的任意原型。 需求获取的工作产品为进行需求分析提供了基础
需求获取的两个层面


项目层面的需求获取 关注特定产品的需求 关注短期需求,为项目开发提供输入 一次性的,参与人员有限 组织层面的需求获取 关注客户的需求,没有产品的限定 不仅关注短期需求,更关注中长期需求,为产 品规划提供输入 持续不断的,全员参与
需求分析与协商


需求获取结束后,分析活动对需求进行分类 组织,分析每个需求其它需求的关系来,检 查需求的一致性、重叠和遗漏的情况,并根 据用户的需要对需求进行排序。 在需求获取阶段,经常出现以下问题:
分析原则


在创建需求分析之前先理解问题、挖掘用户需求 所有的需求要有来源 为不清楚的需求开发原型 平衡和消除需求间的冲突 使用不同视图/模型表达需求
分析原则


定义所有的功能
定义所有的信息域 表达外部事件的因果关系与行为 描述信息、功能和行为的模型必须以分层的形 式描述 分析的过程是从基本信息向实现的细节迁移的 过程
内容摘要



需求工程概述 需求获取 需求分析、协商与建模 需求规约与验证 需求管理
软件需求包括



功能需求 性能需求 用户或人的因素 环境需求 界面需求 文档需求
• • • •
数据需求 资源使用需求 安全保密要求 可靠性需求
• 软件成本消耗与开 发进度需求 • 其他非功能性要求
软件工程
第3章 需求工程Leabharlann 内容摘要
需求工程概述 需求获取 需求分析、协商与建模 需求规约与验证 需求管理
内容摘要


需求工程概述 需求获取 需求分析、协商与建模 需求规约与验证 需求管理



Alan Davis 把需求工程定义为“直到(但不包括) 把软件分解为实际架构构件之前的所有活动” Herb Krasner定义了需求工程的五阶段生命周期: 需求定义和分析、需求决策、形成需求规格、需 求实现与验证、需求演进管理 Matthias Jarke和Klaus Pohl提出了三阶段周期的 说法:获取、表示和验证
需求获取方法与策略



建立顺畅的通信途径 访谈与调查 观察用户操作流程 组成联合小组 用况(Use Case)
建立顺畅的通信途径

建立分析所需要的通信途径,以保证能顺利 地对问题进行分析。
访谈与调查

在具体的实践中,通常采用折衷的方法,即适当 地计划好面谈,但不要过于详细,允许有一定的 灵活性。一般按照如下原则进行准备:
软件需求层次结构
使用用户语言、简 单描述问题解决方 案,目的是同用户 沟通做确认 分解细化需求规格, 明确地描述产品的 外在行为和特征
理解客户需要,即 背后的问题
各层次需求描述样例
需求层级 业务需求 产生方式 客户提出/市场 识别出 例子(ATM提款机) 不在银行柜台客户也可以提款,方便客户、减少缓解银行业 务工作量 1、要有可靠的安全措施确保客户的账户不会被盗取; 2、提取的金额有一定限度,以确保ATM存储的款项不被一次 性提空,别人无法提取; 3、… 1、用户验证功能: 1.1 用户插入银行卡,系统进入密码输入界面,密码为6 为数字; 1.2 如果密码正确,系统进入操作界面; 1.3 如果密码错误,系统提示“密码错误,请重新输入”, 最多允许输入3次错误密码,如果第4次输入密码依然错误, 则系统提示“因多次密码输入错误,您的银行卡已被ATM 机保护,请到银行办理取手续”,且银行卡无法取出 2、…
需求规约


软件需求规约是分析任务的最终产物,通过建立 完整的信息描述、详细的功能和行为描述、性能 需求和设计约束的说明、合适的验收标准,给出 对目标软件的各种需求。 需求规约作为用户和开发者之间的一个协议,在 之后的软件工程各个阶段发挥重要作用。
需求验证

作为需求开发阶段工作的复查手段,需求验证对 功能的正确性、完整性和清晰性,以及其它需求 给予评价。为保证软件需求定义的质量,评审应 以专门指定的人员负责,并按规程严格进行。
FAST会议 步骤 (续)


4) 一旦创建了意见一致的列表,应该将团队分为更小的小 组,每个小组力图为每个列表中的一个或多个项开发出小型 的规约(即对包含在列表中的单词或短语的精细化)。每个 小组然后将他们开发的每个小规约提交给所有的FAST 出席者 讨论,进行添加、删除或进一步的精化等工作。(在所有讨 论过程中,团队可能提出某些不能在会议过程中解决的问题, 此时要保留问题列表以使这些思想在以后的活动中产生作 用。) 5) 在小规约完成后,每个FAST 的出席者提出一个针对产品 的确切标准列表,并将该列表提交给团队,然后创建一个意 见一致的确定的标准列表。这个列表作为需求获取的结果, 为需求分析和建模提供基础信息。

在实际的开发过程中,获取、分析、建模、 编写规约和验证这些需求开发活动不会是线 性地、顺序地完成。实际上,这些活动是交 叉的、递增的和反复的。
重新评估 获取 分析与建模 证实 更正并减小误差 编写规约 重写 验证
需求管理


需求工程包括获取、分析、规定、验证和管理软 件需求,而“软件需求管理”则是对所有相关活 动的规划和控制。 换句话说,需求管理就是:一种获取、组织并记 录系统需求的系统化方案,以及一个使用户与项 目团队对不断变更的系统需求达成并保持一致的 过程。
FAST会议 步骤
1) 当举行了开发者和用户之间的初步访谈后,确定一个 FAST会议的时间地点,并在会议日之前将产品请求发 布给所有的与会者。 2) 要求每个FAST 出席者会前列出一组围绕系统环境的对 象,以及对这些对象的操作或对象之间的交互功能, 并开发出约束列表(如,成本、规模大小、权重)和性能 标准列表(如,速度、精度)。这些列表可以不是穷尽的, 但是,希望每套列表反映的是每个人对系统的感觉。 3)进行FAST 会议时,当团队的每个成员提出单个列表后, 整个团队将创建一个组合的列表,该组合列表删去冗 余项,并加入在表达过程中出现的新思想。在建好所 有主题的组合列表后,开始讨论活动。缩短、加长或 重新组合列表以适当地反映将被开发的产品。
用况(USE CASE)


当需求作为非正式会议、Fast的一部分而收集起来之 后,分析员就可以创建一组标识一串待建造系统的 使用场景。 创建用况模型的主要步骤如下:
1) 2) 3) 4) 5)
确定谁会直接使用该系统,即参与者(Actor) 选取其中一个参与者 定义该参与者希望系统做什么,参与者希望系统作的每件 事将成为一个用况 对每件事来说,何时参与者会使用系统,通常会发生什么, 这就是用况的基本过程 描述该用况的基本过程
内容摘要



需求工程概述 需求获取 需求分析、协商与建模 需求规约与验证 需求管理
需求分析原则
1.必须能够表示和理解问题的信息域 2.必须能够定义软件将完成的功能 3.必须能够表示软件的行为(作为外部事件的结 果) 4.必须划分描述数据、功能和行为的模型,从而 可以分层次地揭示细节 5.分析过程应该从要素信息移向细节信息



所提问的问题应该循序渐进,从整体的方面开始提问, 接下来的问题应有助于对前面的问题更好的理解和细 化; 不要限制用户对问题的回答,这有可能会引出原先没 有注意的问题; 提问和回答在汇总后应能够反映用户需求的全貌。
相关文档
最新文档