软件工程第四章

合集下载

软件工程第四章 结构化分析

软件工程第四章 结构化分析

软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性

软件工程第4章 软件设计

软件工程第4章  软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。

软件工程第四章

软件工程第四章

4.3.2、面向数据结构的设计方法 、
2、Jackson方法 (1) 分析并确定输入数据和输出数据的逻辑结构, 并用Jackson 图描绘这些数据结构。 (2) 找出输入数据结构和输出数据结构中有对应关 系的数据单元。
4.3.2、面向数据结构的设计方法 、
2、Jackson方法 (3) 用下述三条规则导出描绘程序结构的Jackson 图: ① 为每对有对应关系的数据单元,按照它们在数据结构图 中的层次在程序结构图的相应层次画一个处理框; ② 根据输入数据结构中剩余的每个数据单元所处的层次, 在程序结构图的相应层次分别为它们画上对应的处理框; ③ 根据输出数据结构中剩余的每个数据单元所处的层次, 在程序结构图的相应层次分别为它们画上对应的处理框。
4.2.2、模块独立性 、
1、耦合性 (4)内容耦合:出现下列情况之一就认为是 内容耦合:一个模块访问另一个模块的内 部数据;一个模块不通过正常入口而转到 另一个模块内部;两个模块有一部分程序 代码重叠;一个模块有多个入口。
4.2.2、模块独立性 、
1、耦合性 对于模块设计,尽量使用数据耦合,少用 控制耦合,限制公共环境耦合的范围,完 全不用内容耦合
4.3.2、面向数据结构的设计方法 、
面向数据结构的设计方法就是用数据结构作为程序 设计的基础。这种方法的最终目标是得出对程序处 理过程的描述,即在完成了软件结构设计之后,可 以使用面向数据结构的方法来设计每个模块的处理 过程。
4.3.2、面向数据结构的设计方法 、
1、Jackson图 (1) 逻辑数据结构 (2) Jackson图的优点 (3) Jackson图与层次方框图的比较
4.2.3、软件结构设计 、
软件结构图,是Yourdon 提出的进行软件 结构设计的有力工具。 主要的模块:传入模块、传出模块、变换 模块和协调模块。

软件工程 第四章 概要设计

软件工程 第四章 概要设计
4.控制耦合 模块之间传递的不是数据信息,而是控制信息如标志、开关量,一个模块控制了另一模块 的功能。
第4章
4.4 模块的独立性
15
4.4.1 耦合性(Coupling)
5.外部耦合 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为 外部耦合。 6.公共耦合
若一组模块都访问同一全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据
4
4.2.1 概要设计的任务
概要设计的基本任务是: (1)设计软件系统结构; (2)数据结构及数据库设计; (3)编写概要设计文档;
(4)评审概要设计文档。
第4章
4.2 概要设计的任务与步骤
5
4.2.2 概要设计的步骤
概要设计的一般步骤如下: 1.选定体系结构 2.确定设计方案 3.设计软件结构
4.数据结构及数据库设计
(2)一个模块不通过正常入口而直接转入到另一个模块的内部;
(3)两个模块有一部分代码重叠(该部分代码具有一定的独立功能); (4)一个模块有多个入口。
第4章
4.4 模块的独立性
17
4.4.2 内聚性(Cohesion)
一个模块内各个元素彼此结合的紧密程度用内聚(或称聚合)来度量。一个理想的模块只
完成一个功能,模块设计的目标之一是尽可能高内聚。
第4章
4.4 模块的独立性
21
4.4.2 内聚性(Cohesion)
5.通信内聚
指模块内所有处理功能都通过公用数据而发生关系。即模块内各个组成部分都使用相同的 输入数据或产生相同的输出结果。
第4章
4.4 模块的独立性
22
4.4.2 内聚性(Cohesion)

软件工程实用案例 第4章 结构化需求分析

软件工程实用案例 第4章 结构化需求分析
2 项目前景 2.1 前景概述 2.2 主要特性
3项目范围 3.1 第一版范围 3.2 后续版本范围 3.3 限制与排除
4项目环境 4.1 操作环境 4.2 涉众 4.3 项目属性
词汇表 参考资料 附录
4.3 需求获取
4.3.3 选择信息的来源
• 1. 涉众
• 包括用户、客户、领域专家、用户替代源(市场人员、销售人员) 等。
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-12 功能分解示意图
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-13 食物订货系统的1层图
4.4 需求分析
4.4.1 过程建模
4.4.1.2 微规格说明
正式规定文档所需具有的条件或能力。
(3) 对(1)或(2)所描述的条件或能力的文档化表述。 其中,(1)是从用户角度定义的,(2)是从开发人员、
系统的角度定义的。
4.1 需 求
4.1.2 需求的层次
需求通常体现为三个层次:业务需求、用户需求和系 统需求。
4.1 需 求
4.1.2 需求的层次
4.3 需求获取
4.3.2 定义项目前景和范围
• 1.明确问题
P1 决策者:生产的废品过多。
• 2.发现业务需求
BR1:提供销售订单的准确性,减少因此而产生废品。
BR2:提供销售订单的准确性,在使用后3个月内,减少50%因此而产生 的废品。
4.3 需求获取
4.3.2 定义项目前景和范围
• 3.定义解决方案及系统特性
4.3 需求获取
4.3.4 需求获取的方法

软件工程第四章结构化需求分析

软件工程第四章结构化需求分析

数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。

软件工程导论第四章 概要设计

软件工程导论第四章 概要设计

模式4:共享数据模式
共享数据系统以一个或多个数据库 / 数据仓库为中心进行 组织,其它部件可以从中读写存储的数据。共享数据系统还 提供并发访问、容错处理、访问权限控制等功能。 典型的共享数据系统包括: a. 数据库 b. 知识库 c. 源代码控制程序
模式5:信息系统模式
现代信息系统平台模式,主要考虑B/S模式。 B/S模式的三层:表示层(presentation),业务 层(business),和数据存储层(data access) 。 B/S模式的优点: a. 架构简化了客户端。它无需象C/S模式那样在 不同的客户机上安装不同的客户应用程序,而只需安 装通用的浏览器软件。 b. 简化了系统的开发和维护。 c. 使用户的操作变得更简单。 d. 特别适用于网上信息发布 。
第四章 概要设计
•4.1软件体系结构 •4.2概要设计任务与步骤 •4.3软件设计的基本概念 •4.4面向数据流的设计方法 •4.5面向数据结构的分析设计方法 •4.6概要设计文档评审
概要设计
一是要覆盖《需求规格说明书》的全部内容, 二是要作为指导详细设计的依据。
概要设计注重于宏观上和框架上的设计,它是软 件系统的总体结构设计、全局数据库(包括数据结 构)设计、外部接口设计、功能部件分配设计、部 件之间的接口设计。 概要设计又称为架构设计。 • 用于描述系统最顶的结构和组织形式,标识出软 件的各个组成部分。
2.子系统和模块的区别 (1)一个子系统独立一个构成系统,不依赖 于其他子系统提供的服务。 (2)一个模块通常是一个能提供一个或多个 服务的系统组件。 3.体系结构设计的结果 体系结构设计过程的结果是一个体系结构 的设计文档。
4.1软件体系结构 4.1.1概述
4.体系结构模型 (1)静态结构模型 将子系统或组件作为一个个独立的单元来开发 (2)动态过程模型 给出系统在运行时的过程组成。它与静态模型不 同。 (3)接口模型 定义每个子系统从他们的公共接口能得到的服务。 (4)关系模型 关系模型给出子系统间的数据流的关系。

软件工程第四章结构化需求分析

软件工程第四章结构化需求分析
在开始建立分析模型之前先理解问题。 以业务流程为中心来理解用户需求。 使用多个需求分析视图,建立数据、功能和行为模
型。
结构化分析模型
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环
境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处 理的数据结构建模。
实例分析:图书馆系统
借书者 1 借书记录 包含 1 预约 M 书目
1
借/还/续借
M
图书 N
预约记录
实例分析:图书馆系统
实体:图书、借书者、管理员、借书目录、 预约记录、书目 属性给出如下:
借书者:借书者编号、姓名、性别、借书数、
最大借书数、罚金金额、有限期 图书:图书号、书目号 书目:书目号、书名、作者、出版社、丛书名、 收藏数、在馆数、预约数 借书记录:图书号、借书者编号、借出日期、 应还日期、续借次数 预约记录:书目号、借书者编号、预约日期
数据字典
数据字典是分析模型中出现的所有名字的一个 集合,并包括有关命名实体的描述 数据字典有以下两个作用:
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发
机构的信息存储
数据字典应该由四类元素的定义组成:
数据流 数据流分量 数据存储 处理
实例分析:POS机系统
1 销售记录 1 付款 包含 M 商品 N 描述
N
1
商品描述
支付记录
实例分析:POS机系统
实体有销售记录、支付记录、商品、商品 描述 关联:
销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。
实体的属性:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


4.2初步需求获取技术
例 家庭保安系统

负责人应要求小组成员对接收传感器事件、用户编 程控制、电话报警等操作进行更详细的描述,必要 时可用流程图表示。

用户可能提出一些条件,如造价不能超过3,000元, 对传感器事件必须在 1 秒内作出响应,事件必须按 优先级进行处理等。会后小组负责人对这些信息进 行综合、整理,形成文档,该文档应能反映“家庭 保安系统”的全貌。
4.1分析的任务与原则
需求描述
文档

遵循规范,内容全面、结构清晰、措辞准确、格式 严谨。 将初步用户手册作为分析文档 , 有助于分析人员从 用户角度考虑软件需求,并鼓励用户尽早参予软件 开发活动。

4.1分析的任务与原则
3 需求评审

分析人员在用户和软件设计人员的配合下 , 对自己 生成的需求规格说明和初步的用户手册进行评审, 确保软件需求的完全性、精确性和一致性,并使用 户和软件设计人员对需求规格说明及用户手册的理 解达成一致。 需求规格说明得到用户和软件开发方的确认后,应 成为用户方与软件开发方合同的一部分。
4.2初步需求获取技术
4.2.2 考察用户软件或其子系统业务流程
调查研究 学习用户的有关业务知识,在用户帮助下了解用 户的软件或子系统业务流程,结合软件开发和应用 的经验提出新的用户需求。
4.2初步需求获取技术4.2.3Fra bibliotek
建立软件开发方和用户方共同组成的联合小组,小 组成员对分析负有相同的责任。 联合小组要制定自己的工作制度和计划,确定专门 的记录员,另设专人负责会议的议程和资料的综合、 整理。 选择易于理解、比较简洁、精确的表示机制作为描 述语言,如辅以文字说明的流程图。
4.2初步需求获取技术
4.2.4 例
家庭保安系统
问题描述: 家庭保安市场正以每年 40% 的速度增长。希望 建立一种基于微处理器的家庭保安系统,它能够识 别异常事件并采取相应的防护措施。这些异常事件 包括:非法侵入、火灾、水淹等。一旦异常情况被 传感器探测出来,系统应自动通过电话向监控中心 报警。此外,应允许户主对系统行为进行程序控 制。
分析人员应精心准备问题,通过用户对问题的回答,逐 步理解用户对目标软件的要求。 (1) 循序渐进 首先关心一般性、整体性问题,然后再讨论细节问题。 (2)客观、公正 不应限制用户在回答问题过程中自由发挥。 (3) 总结 问题汇总后应能反映软件或其子系统的全貌,能覆盖用 户对目标软件或其子系统在功能、行为、性能诸方面的要 求。 细节问题留待以后解决。
问题分析
4.1分析的任务与原则
系统模型
为用户的问题及准备开发的软件建立模型,从 不同的角度、不同的抽象级别精确地说明对问题的 理解、对目标软件的需求。
问题分析
4.1分析的任务与原则
系统模型



模型应帮助用户和分析人员发现、排除用户需求不 一致,不合理的部分,挖掘潜在的用户需求。 模型是分析人员根据问题创建的软件系统结构,包 括与问题和环境相关的信息流、处理功能、用户界 面、行为及设计约束。 模型是形成需求规格说明、进行软件设计的基础。 需求建模方法 面向数据流的分析方法、面向数据的分析方法、 面向对象的分析方法。
第四章 需求分析基础

软件需求 用户对目标软件系统在 功能、行为、性能、设计 约束等方面的期望。

软件需求分析阶段的任务, 通过对问题及环境的理解、 分析,将用户需求精确化、 完全化,最终形成需求规 格说明,描述系统信息、 功能和行为。
第四章 需求分析基础
需求分析基础
主要内容

三个主要阶段:问题分析、需求描述、需求评审 技术和方法 初步需求获取技术 需求建模技术 象、问题分解与多视点分析
第四章 需求分析基础
4.1
需求分析分为3个阶段:
问题分析 需求描述 需求评审
4.1分析的任务与原则
1 问题分析

分析人员应了解问题及环境,应与用户合作清除用 户需求的模糊性、岐义性和不一致性,并对相互冲 突的需求进行折衷。

分析人员与用户合作对问题进行分析、综合,结合 软件的特点及开发经验,寻求软件需求。
第四章 需求分析基础
第四章 需求分析基础
用户需求、系统需求和软件设计描述
用户需求 用自然语言和图表描述 说明系统必须提供哪些服务、系统运行要受哪些约束 系统需求 详细说明系统将要提供的服务以及系统受到的约束 精确的描述软件的功能 系统买方和软件开发者签订合同的重要内容 软件设计描述 在系统需求的基础上,加入更详细的内容,构成软件 设计活动的概要描述,是软件设计和实现的基础

4.1分析的任务与原则
需求评审
分析活动
对于大型软件项目,分析人员可以先对问题的 某些子系统进行需求分析、描述与评审,子系统完 成后,再对其它子系统进行分析,进而构筑整个系 统的需求模型。
第四章 需求分析基础
4.2

访谈与会议 深入调查研究 开发原型
4.2初步需求获取技术
4.2.1
个别访谈或小组会议

快速原型技术 问题抽

例 “家庭保安系统” 展示部分方法的使用过程。 需求建模方法和CASE工具的进一步研究 面向数据流的分析 面向数据的分析 面向对象的分析

第四章 需求分析基础
软件需求的产品和过程
软件需求分析产品 用户需求 系统需求 软件需求规格说明(软件设计描述) 需求规格说明是软件设计、实现、测试、维护的基础。
4.1分析的任务与原则
2 需求描述
任务



以需求模型为基础,考虑到软件问题的可解性,生 成需求规格说明和初步的用户手册。 需求规格说明包含对目标软件系统的外部行为的完 整描述、需求验证标准以及用户在性能、质量、可 维护性等方面的要求。 用户手册包括用户界面描述以及有关目标软件使用 方法的初步构想。
4.2初步需求获取技术
家庭保安系统
联合小组首先制定工作制度:每次会议开始前必 须有确定的议程,参加者必须针对各项议程进行充 分的准备,并用文字表示。
4.2初步需求获取技术
例 家庭保安系统

经过会议讨论,明确问题的范围、问题与环境的关 系,并就开发软件产品的必要性达成共识。 小组负责人要求每位参加者列出问题及环境中的有 关对象,对这些对象施行的操作以及对象间的相互 作用。列出的操作和对象尽可能完全,如,控制面 板、电话机、监控中心、烟雾传感器、门窗监视器、 警报器等对象,以及用户编程控制、电话拔号、报 警等操作。
相关文档
最新文档