第3章 需求分析与用例模型
需求分析与用例模型
特殊需求
➢非功能需求URPS
软件需求
可用性Usability
可靠性Reliability 性能Performance
非功能需求
功能需求
设计约束
可支持性Supportability
➢设计约束
用Oracle数据库平台;用PB开发…
软件必须符合ISO×××标准
……
本质上不是需求;只是从商业 行政 技术上的约 束
第3章 需求分析与用例模型
第3章 需求分析与用例模型
在软件工程中;需求分析指的是在建立系统时描写系统 的目的 范围 定义和功能时要做的所有工作
需求分析是软件工程中的一个关键过程 在这个过程中; 系统分析员和软件工程师要确定顾客的需求
第3章 需求分析与用例模型
软件开发过程中常见的场景
第3章 需求分析与用例模型
实例分析:网上书店
用例粒度
➢ 用例的粒度指的是用例所包含的系统服务或功能单元 的多少
➢ 用例的粒度越大;用例包含的功能越多;反之则包含的 功能越少
比用较例下列粒两度图用例的粒度
用例粒度
➢ 如果用例的粒度很小;得到的用例数就会太多 反之; 如果用例的粒度很大;那么得到的用例数就会很少
➢ 如果用例数目过多会造成用例模型过大和引入设计困 难大大提高 如果用例数目过少会造成用例的粒度太 大;不便于进一步的充分分析
➢ 在UML中;扩展关系用虚线箭头加<<extend>>表示;箭头指 向基础用例;即被扩展的用例
4 扩展关系
4 扩展课表关查询系系统
4 扩展关系
使用场合 对扩展用例的限制规则:将一些常规的动作放在一个
基本用例中;将可选的或只在特定条件下才执行的动作放 在它的扩展用例中
第03章 用例和用例图
5
用例的特点 ① 用例用于描述系统的功能,这个功能是外 部使用者看到的系统功能,不反映功能的实现 方式。
储蓄系统
开户 存款
√
√ √ √
取款
转帐
6
用例的特点
② 用例描述用户提出的一些可见需求,对应 一个具体的用户目标。
储蓄系统 √ √ √ 开户 存款 取款 转帐
√
×
数据上传
7
用例的特点 ③ 用例反映系统与用户的一次交互过程,应 该具有交互的信息的传递。
泛化关系代表一般与特殊的关系, 与继承类似.
在泛化关系中, 子用例继承了父用例的行为和含义, 子用例也可以增加新的行为和含义或覆盖父用例中 的行为和含义.
20
3.4.2 泛化关系
21
3.4.3 包含关系
包含关系是指一个用例(基本用例)的行为包含了另一 个用例(包含用例)的行为.
包含关系是依赖关系的版型, 但其含义更多.
3.6 用例的描述
用例阐述:写用例规约
用例规约:更进一步的精度
用例文档的核心,作为用例文档的总图 进一步的精度:有层次的文档 文档中每一句话都有其价值
用例图是骨架,而用例规约则是其内在的血肉
43
3.6 用例的描述
谁来写用例文档 ?
最完美:业务人员接受训练,写出优美的 用例文档 最现实:业务人员提供素材,开发人员写 用例文档 最糟糕:业务人员不管,完全由开发人员 杜撰
3
3.7 寻找用例的方法
3.8 用例的常见问题
15
3.3 脚本
脚本(scenario)在UML中指贯穿用例的一条单一路径, 用来显示用例中的某种特殊情况. 其它译名: 情景、场景、情节、剧本.
面向对象的软件开发过程中的需求分析与建模研究
面向对象的软件开发过程中的需求分析与建模研究第一章引言随着信息技术的快速发展,软件已逐渐成为了现代社会不可或缺的组成部分。
而软件开发过程中的需求分析与建模是确保软件开发质量的重要步骤,因此在面向对象的软件开发中,需求分析与建模研究具有重要的意义和价值。
本文将从面向对象的软件开发出发,介绍需求分析和建模的概念、方法和工具,并重点探讨基于面向对象的软件开发过程中的需求分析与建模研究。
第二章面向对象的软件开发面向对象的软件开发是一种软件开发方法,它以对象为中心,实现了软件的高内聚、低耦合和易维护性,具有较高的开发效率和软件重用性。
在面向对象的软件开发中,需求分析和建模是其中的关键环节。
基于面向对象的软件开发过程主要包括以下几个阶段:1.需求分析阶段。
在该阶段中,需求分析人员将收集和分析用户和系统需求,以确定软件开发的需求和目标。
2.设计阶段。
在设计阶段中,设计人员将根据需求分析阶段的结果,设计面向对象的软件系统架构和对象模型。
3.编码和测试阶段。
在这个阶段中,开发人员将根据设计人员的指示开发代码和进行测试,以确保软件能够按要求正确运行。
4.部署和维护阶段。
在这个阶段中,开发人员将软件部署到用户环境中,并进行维护和修复错误。
在整个软件开发过程中,需求分析和建模是相互关联、相互作用的关键环节。
第三章需求分析与建模基础知识3.1 需求分析需求分析是软件开发的首要任务,它是确保软件开发符合用户需求的前提条件。
需求分析包括两个方面,即功能需求和非功能需求。
1.功能需求功能需求是软件开发中最基本的需求,它是用户对软件功能的具体要求。
在软件开发中,功能需求可以通过用例图、活动图、状态图和顺序图等方法进行描述和分析。
2.非功能需求非功能需求是软件开发中的另一个重要因素,它主要描述软件的性能、可靠性、安全性、可维护性和可移植性等方面的要求。
常用方法包括场景模型、质量属性树和系统特征模型等。
3.2 需求建模需求建模是将需求分析的结果转换为相应的模型,以便于软件设计和开发人员的理解和使用。
uml复习题
《新修的同学实验报告一定要交》《新修的同学实验报告一定要交》《考试时间 16周,请班长费心通知》周,请班长费心通知》《复习》《复习》《论述》基于UML 的软件开发的一般过程答:UML 是按OO 思想进行系统建模时使用的一组表示法,它并不对采用何种OO 分析、分析、设计以及设计以及开发过程模型构成限制。
开发过程模型构成限制。
基于基于UML 的软件开发通常是以体系结构为中心,的软件开发通常是以体系结构为中心,用例驱动的迭代用例驱动的迭代和增量式开发,并结合职责分配模式进行具体设计。
开发过程可以包括计划和细化、迭代的构造和实施3大阶段。
在经过一个初步的计划和细化阶段后,进入若干迭代构造开发周期,每个周期都包含分析、设计、构造和测试步骤。
(1)计划和细化:通过各种传统的需求获取手段(调查、访谈、原型等)得出系统目标、系统功能和系统属性,系统功能和系统属性,撰写系统规格说明。
撰写系统规格说明。
撰写系统规格说明。
基于参与者和外部事件基于参与者和外部事件基于参与者和外部事件(动宾词组)(动宾词组)构建用例,以增进对领域过程和功能需求的理解《做什么》。
按照风险、业务主线及对体系结构的影响程度(系统属性)划分用例的优先级,并据此决定用例的时间调度。
对高优先用例采用扩展格式细化。
同时建立概念模型草案、系统体系结构草案。
(2)分析阶段:根据当前周期的用例描述,采用概念目录列表、非正式分析或事务模式,识别出相关概念,建立初始概念模型,根据通用关联列表和信息存储的需要,为概念模型添加关联和属性。
将用例分解为系统事件,并对应系统操作,建立系统顺序图;分析系统操作被调用后系统状态(概念)的变化,为系统操作建立契约,进一步理解系统行为《做的效果》。
(3)设计阶段:设计一个合理的体系结构,建立真实用例。
针对每个系统操作,使用操作契约和契约的后置条件以及用例描述文档作为起点,按照职责分配模式或BCE 模式为对象(来自概念模型)分配职责,通过协作图体现对象间的交互《怎么做》。
第3章 需求分析
网上查某 本书<3秒
图书名称 /作者姓 名
按照输入的组 合条件,进行 模糊查询
显示“图书名称、作 者姓名、是否借出、 内容简介”
2
后台查询读 者信息响应 时间 后台查询图 书信息响应 时间
图书 馆借 阅部 图书 馆借 阅部
借阅 操作 员 借阅 操作 员
后台查某 读者信息 <2秒 后台查某 部书<2秒
案例3-3 【案例3-3】网上图书馆信息系统的部分接口列表,如 表3-3所示。 表3-3 目标系统的接口列表(接口模型)
3.2 需求分析的任务及过程
表3-3 目标系统的接口列表(接口模型)
编 号 接口 名称 接口 规范 接口 标准 入口参数 出口参数 传输 速率
1
与财 务系 统接 口
财务 系统 规定 的接 口规 范
3.2 需求分析的任务及过程
图3-2需求分析过程
3.2 需求分析的任务及过程
根据实际项目的规模和特点确定合适的需求分析常规过 程如下。 1.需求获取 2.综合需求与描述 3. 需求验证 4.需求文档
课堂讨论:
(1)需求分析具体任务有哪些? (2)需求分析常规步骤是什么?
3.2 需求分析的任务及过程书信息系统的 部分性能点列表(性能模型),如表 3-2所示。
3.2 需求分析的任务及过程
表3-2 图书馆系统的性能点列表
编号 性能名称 使用 部门 网上 读者 使用 岗位 网上 读者 性能描述 输入 系统响应 输出
1
读者网上查 询图书信息 响应时间
一张 凭证 一次 处理 传送
3.2 需求分析的任务及过程
7.确定系统运行环境及界面 8.修正开发计划和新系统方案 9. 编写需求文档,验证确认需求 【注意】上述任务要具体分析,灵活运用。如果需求 分析之后,对将要实现的新系统,仍然感到不够明确时, 不应签字确认,还需进行进一步深入分析。
面向对象分析与设计(3)-用例建模
有些备选事件流将返回到基本事件流,而有些将结束
此用例的执行
2021/4/17
35
基本流
❖ 基本流描述的是该用例最正常的一种场景,在基本流中系统执行一 系列活动步骤来响应参与者提出的服务请求。
3.用户选择准备购买的图书,并加入购物车。系统 记录已加入购物车的图书并计算价格。
4.用户准备结账,系统提示确认购物清单,并提示 输入银行账号、送货地址等关键信息。
5.用户输入以上信息,并确认。系统完成交易,并 显示交易信息。用例结束。
以用例的方式定义需求处处关心用户
2021/4/17
到底想用系统做什么,如何做
❖ 这种参与者与系统功能特性间的交互关系就 是我们所说的“用例”
2021/4/17
14
用例建模的特点
❖ 显式地表达用户的任务目标层次,突出系 统行为与用户利益间的关系;
❖ 通过描述执行实例情节(交互行为序列、 正常/非正常事件流)能够完整地反映软件 系统用以支持特定功能的行为;
❖ 以契约(前/后置条件等)的形式突出了用 户和系统之间常常被忽略的背后的关系;
2021/4/17
33
流程四:用例规约详述
❖ 用例名字(Name)
❖ 简要说明(Brief description)
❖ 事件流(Flows of Events)
❖ 特殊需求(Special requirements)
❖ 前置条件(Pre-conditions)
▪ 开始用例前所必需的系统及其环境的状态
▪ 起始于参与者的输入 .其中,系统是一个黑盒 ▪ 用于描述系统行为,但不描述如何实现
❖ 识别用例时需要注意
▪ 用例的粒度不要太大也不要太小 ▪ 用例描述的是系统做什么,初始识别用例的时候不要
第3章 需求分析
需求分析一、选择题(1)在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,( C )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
A.业务需求 B.系统要求 C.非功能需求 D.用户需求(2)需求分析的任务包括( D )。
A.确定对系统的综合要求 B.分析系统的数据要求C.导出逻辑模型并修正开发计划 D.以上全是(3)需求分析的任务不包括( C )。
A.确定对系统的综合要求 B.分析系统的数据要求C.从技术角度分析系统是否可行 D.导出逻辑模型并修正开发计划(4)要将一个复杂的系统分析清楚,传统软件工程常用方法是结构化分析方法,结构化分析方法就是( A )。
A.面向数据流自顶向下,逐步求精的方法B.由内向外进行分析的方法C.先局部后整体的分析方法D.使用IPO图形工具分析的方法(5)需求分析是要完整、准确、清晰、具体地确定系统所要完成的工作,其主要依据是前一阶段的文档( D )。
A.用户手册和参考手册 B.软件需求规格说明书C.开发计划 D.可行性研究报告(6)需求分析阶段的主要任务是确定( D )。
A.软件开发方法 B.软件开发工具C.软件开发费 D.软件系统的功能(7)数据字典是用来定义( D )中的各个成份的具体含义的。
A.流程图 B.功能结构图C.系统结构图 D.数据流图(8)数据流图是一种用来描述( B )的图形化工具。
A.系统物理组成 B.系统信息流和数据流C.所有功能 D.系统控制流和数据流(9)( C )和数据流图共同构成系统的逻辑模型,没有它,数据流图就不完整。
A.系统流程图 B.E-R图 C.数据字典 D.层次方框图(10)数据流图DFD中的每个加工至少需要( B )。
A. 一个输入流B.一个输出流和一个输入流C. 一个输入或输出流D.一个输出流(11)数据流图(DFD)是( A )方法中用于表示系统的逻辑模型的一种图形工具。
软件工程导论第3章
2.访谈
访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍 然广泛使用的需求分析技术。 访谈有两种基本形式: 正式访谈:系统分析员将提出一些事先准备好的具体问题。 非正式访谈:分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人员说出自己的想法。 调查表是当需要调查大量人员的意见时的一个十分有效的做法。 分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户, 以便向他们询问在分析调查表时发现的新问题。 在访问用户的过程中可以使用情景分析技术。情景分析技术的 用处主要体现在下述两个方面: (1) 它能在某种程度上演示目标系统的行为,从而便于用户理解, 而且还可能进一步揭示出一些分析员目前还不知道的需求。 (2) 由于情景分析较易为用户所理解,使用这种技术能保证用户在 需求分析过程中始终扮演一个积极主动的角色。
(1) 数据对象
数据对象是对软件必须理解的复合信息的抽象。所谓 复合信息是指具有一系列不同性质或属性的事物,仅有单 个值的事物(例如,宽度)不是数据对象。 数据对象可以是外部实体(例如,产生或使用信息的任 何事物)、事物(例如,报表)、行为(例如,打电话)、事件 (例如,响警报)、角色(例如,教师、学生)、单位(例如,会 计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可 以由一组属性来定义的实体都可以被认为是数据对象。 数据对象彼此间是有关联的,例如,教师“教”课程, 学生“学”课程,教或学的关系表示教师和课程或学生和 课程之间的一种特定的连接。
(4)需求验证 由软件开发者和用户一起来进行软件需求规格
说明的复审。确保需求规格说明可作为软件设计和最 终系统验收的依据。
二. 需求获取的常用方法
1. 建立联合分析小组 建立一个由用户、系统分析员和领域专家参加 的联合分析小组,密切合作,共同标识问题,提出 解决方案要素,商讨不同方案并指定基本需求。 这是一种面向团队的需求收集法,又称为简易 的应用规格说明技术。
需求分析与用例建模
(2)系统的用户 进销存管理子系统的用户包括客户、仓库管理员、销售人员、采购人员、公司经 理、财务管理 系统、生产调度管理系统等 (3)系统运行用户界面 销售合同管理用户界面,采购合同管理用户界面,仓库货物清单管理用户 界面 (4)系统运行的软件、硬件环境 执行者:采购人员,销售人员,仓库管理员,客户,公司经理, 生产调度管理子系统,财务管 理子系统 二、 系统的 UML 建模 (1) “企业综合信息管理系统”中的用例 财务管理,人力资源管理,生产调度管理,进销存管理, 生产设备安全管理,行政事务管理。企业综合信息管理系统,企业综合信息管理系统最高用例图。 (2) “进销存管理子系统”中的用例 销售管理,采购管理,库存管理。 进销存管理子系统 (3) “销售管理子系统”中的用例 制定产品销售计划,签订销售合同,督促客户付款,监督产品发 货,检查合同履约,提供售后服务。销售管理子系统用例图,销售合同管理子系统用例图。 (4) “采购管理子系统”中的用例 制定采购计划,签订采购合同,货物入库检验,支付货款,检查 合同履约,销售合同管理子系统的用例图。 (5) “库存管理子系统”中的用例 入库管理,出库管理,库存管理。 2. 使用 Rose 创建一个模型,实现教材案例“企业综合信息管理系统”的用例建模。 3. 对照教材 P97~P103 内容,学习确定用例和用例描述、理解并使用 Rose 绘制各个用例图。 4. 对照教材 P104~P106 内容,学习用活动图描述用例、理解并使用 Rose 绘制各个活动图。 5. 对照教材 P106~P108 内容,学习细化活动图、理解并使用 Rose 绘制各个活动图。 6. 保存模型文件。以便以后细化和完善 ①
4,简述用例的主要关联分为哪几种?如何理解和表示?
1 、 泛化关系 Generalization 、 代表一般与特殊的关系。 (类似于继承) 在用例泛化中,子用例表示父用例的特殊形 式,子用例继承了父用例的行为和属性,也可以增加新的行为和属性或覆盖父用例中的 行为。
第三章 软件工程 需求分析-基础部分
3.1.4 需求分析的过程
分析与综合 从信息流和信息结构出发,逐步细化所有的软件功能, 从信息流和信息结构出发,逐步细化所有的软件功能,找 出系统各元素之间的关联,接口特性和设计上的约束, 出系统各元素之间的关联,接口特性和设计上的约束,分 析它们是否满足功能要求,是否合理. 析它们是否满足功能要求,是否合理.剔除其不合理的部 增加其需要部分.最终综合成系统的解决方案, 分,增加其需要部分.最终综合成系统的解决方案,给出 目标系统的详细逻辑模型. 目标系统的详细逻辑模型. 常用的分析方法 面向数据流的结构化分析方法 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 面向数据结构的Jackson方法 (JSD) 面向数据结构的结构化数据系统开发方法 面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 面向对象的分析方法 (OOA) 等
16
3.2.1 需求获取技术
需求调查对象 对组织的高层管理者, 对组织的高层管理者,进行组织管理目标或经营方针等 组织战略问题的调查 对中层的管理者, 对中层的管理者,进行全部业务流的调查 对业务工作人员, 对业务工作人员,进行详细业务信息的调查 市场调查 了解市场对待开发软件有什么样的要求; 了解市场对待开发软件有什么样的要求;了解市场上有 无与待开发软件类似的系统 考察现场 了解用户实际的操作环境,操作过程和操作要求. 了解用户实际的操作环境,操作过程和操作要求.对照用 户提交的问题陈述,对用户需求可以有更全面, 户提交的问题陈述,对用户需求可以有更全面,更细致的 认识. 认识. 观察用户工作流程 用户和开发人员共同组成联合小组
具体化 表 达 需 求
3
目标系统
物理模型
实例化
逻辑模型
制造企业仓储管理信息系统
大连民族大学制造企业仓储管理信息系统学院(系):机电信息工程学院专业:工业工程学生姓名:宋长红学号:2011*******评阅教师:完成日期:大连民族学院摘要.................................................................................................................................... . (3)Abstract ........................................................................................................................... .. (5)第一章绪论 (6)1.1 选题背景及研究意义 (6)1.2 国内外研究地发展状况 (7)1.2.1管理信息系统发展回顾 (7)1.2.2 国外近年来应用状况调查 (8)1.2.3国内企业管理信息系统地应用现状 (9)1.3 系统目标 (9)1.4 本章小结 (9)第二章系统支撑技术 (10)2.1 网络计算模式 (10)2.2 ASP技术 (11)2.3 Dreamweaver CS5 (13)2.4 IIS服务器 (14)2.5 Access2007 (16)2.6 Rational Rose2003 (16)第三章制造企业仓储管理信息系统需求及整体建模 (17)3.1 需求分析 (17)3.2 系统参与者 (19)3.2.1 构建系统用例模型 (19)3.3 创建系统地静态模型 (23)3.4 创建系统地动态模型 (24)3.4.1 创建序列图和协作图 (24)3.4.2 采购员登录管理系统地工作流程 (24)3.4.3采购员查询生产物料信息地工作流程 (25)3.4.4 仓库管理员登录仓储管理系统地工作流程 (27)3.4.5 仓库管理员添加产品入库信息地工作流程 (28)3.4.6 仓库管理员添加产品出库信息地工作流程 (30)3.4.7 仓库管理员设置管理信息(修改供应商信息、修改产品信息) (31)3.4.8 系统管理员管理员工信息地工作流程 (32)3.4.9 销售员销售商品地工作流程 (33)3.5 创建状态图 (34)3.5.1 系统管理员查询员工信息活动图 (34)3.5.2 系统管理员添加员工信息地活动图 (35)3.5.3 系统管理员修改员工信息活动图 (36)3.6 创建系统部署模型 (37)第四章系统数据库设计 (39)4.1 数据库需求分析 (39)4.2 数据库逻辑结构设计 (39)5.1 用户登录 (45)5.2 权限分配 (46)5.3 后台管理 (46)5.4 工程管理 (47)第六章论文总结 (49)致谢.......................................................................................................... 错误!未定义书签。
软件需求分析中的用例模型
软件需求分析中的用例模型软件开发是现代科技的重要表现形式,而软件需求分析是软件开发的第一环节。
软件需求分析的主要任务是将用户需求转化为软件所需功能的详细规格说明,这些规格说明成为软件开发中的基准标准,同时也是软件测试的基础。
需求分析有很多方法,用例分析是常用的一种。
用例是针对某一特定场景下的系统行为、功能、性能等的具体描述,它从用户的角度出发,描述了用户与系统之间的交互过程。
本文主要介绍在软件需求分析过程中的用例模型。
一、用例的定义用例主要是用来描述软件的功能以及用户与软件的互动过程。
用例模型是一种面向对象的需求分析方法,它把用户使用系统的一组典型路径描述清楚,并通过文档的形式来呈现这些标准路径,让开发人员和客户都能够理解。
用例模型的主要作用在于记录与评审需求、澄清需求和确认需求。
二、用例模型构建过程用例模型的构建过程可以分为以下几个步骤:1、识别参与角色:用例模型最基本的概念就是参与角色,用户就是用例模型中的参与角色之一,系统管理员、客户或其他用户等也是用例模型的参与角色。
用例模型的构建需要准确地识别并区分参与角色。
2、确定用例:用例是由一系列的动作和反应组成的流程,需要通过观察用户与系统的交互,并记录下来,以便将来进行分析。
在用例构建过程中需要考虑应用场景、功能需求以及业务规则等因素。
3、撰写用例:用例的撰写需要遵循一定的规范,一般情况下用例会包括一个简要的描述、用例步骤和用例结束时需要达到的状态等信息。
撰写好的用例需要经过严格的问题验证与测试操作,以保证其描述的准确性。
三、用例模型的应用用例模型不仅可以用于需求分析,还可以用于测试与开发过程中,如下图所示:图1 用例模型在需求分析、测试与开发中的应用在需求分析中,用例模型可以协助开发人员更好地了解用户需求,并且设计满足用户需求的软件系统。
在开发过程中,通过回顾用例模型可以评估软件的质量和性能,找出潜在的问题并进行修正。
而在测试过程中,用例模型可以作为测试计划的一部分,并且可以作为测试人员在测试过程中的参考依据。
软件工程第三章需求应用全面分析
结构化英语、判定树、判定表用于描述数据流 图中的处理逻辑说明。
• SA方法的实质*:是采用一组分层数据流图及数据
字典作为系统的模型,从总体来看,是一种依赖数
据流图的自顶向下的建模方法。
2020/11/25
5
数据流图:分层扩展的功能模
型
数据流图(DFD)是SA方法中用于建立系统逻辑模型 的一种工具,它以图形的方式描绘数据在系统中处理的流 动过程。由于它只反映系统需要完成的逻辑功能,所以它 是一种功能模型。*
配件库存
顾客
订货单 发货单
1
处理 业务Biblioteka 订货单 发货单供应 商
2020/11/25
15
数据流图: DFD绘制步骤(续)
* (2)再绘制二层DFD:是顶图的分解,表明子系统划分及其 边界。 • 系统划分几个子系统,一个子系统在二层图中只有一个处理逻辑(需
求来源是业务子系统或用例图中的用例); • 每一子系统析取所有的外部项、输入输出数据流和主要数据存储; • 各子系统之间的依赖关系(数据流直接依赖,数据存储缓存依赖)。
软件工程 Software Engineering
第三章 需求应用全面分析
2020/11/25
1
本章主要内容
• 3.1 软件需求概念
-软件需求的问题、定义、层次、来源、依据、目标
• 3.2 需求工程过程
- 需求开发:需求获取、需求分析、规格说明、需求验证 - 需求管理:覆盖需求开发全过程
• 3.3 需求获取技术
数据存储可以是一个文件,也可以是文件的一部分或 数据库记录的一部分。数据可以存储在磁盘、磁带、存储 器等任何介质上。指向数据存储的箭头可以是单向的,也 可以是双向的。
第3章 用例图
案例分析--用例图
实例:“杂志流通”
在杂志的内容被一个雇员分析之前,每个杂志 首先由图书馆登记;分析员认为有意义的文章 被汇总输入到系统中;随后,杂志在雇员中传 阅。在此过程中,要求生成流通通知。该通知 被附到杂志上,并且包含现在正在阅读杂志的 雇员的名字。最后,在最后一名读者把杂志返 回到图书馆时,它由图书馆来存档。
3.1 参与者
从上面的问答得到系统中初步的类和对象:
GUI(图形用户界面):识别用户的命令,接收 用户的输入,显示程序的结果。
Recorder(记录员):记录中奖信息。 Chooser(抽奖者):抽出中奖号码。 Printing(打印对象):打印中奖信息。 Searching(查询对象):为奖票持有者查询中
3.2 用例
问:抽奖主持人用这个系 抽奖程序初步的用例图
统做什么事情?兑奖人员
抽奖程序
如何用这个系统帮助兑奖
?
抽出中奖号码
答:抽奖主持人用这个系统 活动主持人 抽出中奖号码,兑奖人员用
活动主持人
这个系统打印本次活动所有
打印中奖记录
的中奖记录。再对照记录兑 兑奖者
兑奖者
奖。
查询中奖情况
奖票持有者
奖票持有者
用例图的构成4要素:
参与者 用例 系统边界 关联
用例图的基本概念
3.1 参与者
1. 参与者(Actor)的概念
参与者是指存在于被定义系统外部并与该系统发生 交互的人或其他系统,他们代表的是系统的使用者 或使用环境。
在确定系统的用例时,首要问题就是识别参与者 (是一个类!!!!!!不是对象)。
如何识别用例?
参与者要向系统请求什么功能? 每个参与者的特定任务是什么? 参与者需要读取、创建、撤消、修改、或存储系统的某些信息吗? 是否任何一个参与者都要向系统通知有关突发性的、外部的改变?
用例分析
泛化(generalization)代表一般与特殊的关系。 use case间的泛化关系与类之间的泛化关系 (继承关系)类似。
三 包含(include)关系
1.含义 包含(Include)关系是指一个基本Use Case 的行为包含了另一个Use Case的行为。 前者叫基用例(客户用例),后者叫包含 用例(提供者用例)。
三 用例描述的一些常见错误分析
例1:下面是一个用例描述的片断: Use Case: Withdraw Cash(提取现金) 参与者:Customer 主事件流:
1. 储户插入ATM卡,并键入密码。 2. 储户按 “Withdrawal” 按钮,并键入取款数目。 3. 储户取走现金、ATM卡并拿走收据。 4. 储户离开。
2. 作用:包含用例使一个用例功能可在另一用 例中使用。 它有两种场合使用: 如果两个以上用例有大量一致的功能,将其分 解至另一用例; 一个用例功能太多,可以建模子用例。
包含关系的例子:
base use case
inclusion use case
四 扩展(extend)关系
扩展(extend)关系的基本含义与泛化关系类似,但 是对于扩展Use Case有更多的规则限制,即基本 的Use Case必须声明若干“扩展点” (extension point),而扩展Use Case只能在这些扩展点上增 加新的行为。
actor说明: Actor是虚拟的概念,可以指人,外部系 统,设备等。 一个actor可以执行多个use case;一个 use case也可以由多个actor所使用。 尽管在模型中使用actor,但actor实际 上并不是系统的一部分。
二 表示
第3章用例和用例图
3.1 用例
用例(use case)是Ivar Jacobson发明的. 其它的中文译 名有: 用况、用案等. 它是站在用户的角度看待系统、 定义系统 ;使用用户能够看懂的语言来表述
定义1: 用例是对一个活动者(actor,角色,参与者)使用 系统的一项功能时所进行的交互过程的一个文字描述序 列. 定义2: 用例是系统、子系统或类和外部参与者交互的动 作序列的说明, 包括可选的动作序列和会出现异常的动 作序列. 用例是代表系统中各个项目相关人员之间就系统的行为 所达成的契约, 软件开发过程是用例驱动的.
18
面向对象分析与设计 & UML
3.4.1 泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子 用例也可以增加新的行为和含义或覆盖父用例中的行 为和含义.
右图的例子演示了 泛化关系
19
面向对象分析与设计 & UML
3.4.1 泛化关系
•
可以用来表示参与者与参与者之间,用例与用例之间的 特殊/一般化关系
33
面向对象分析与设计 & UML
3.6 用例的描述
用例描述一般包括的内容:
用例的目标 用例是怎么启动的 参与者与用例之间的消息如何传送 用例中除了主路径外, 其它路径是什么 用例结束后系统的状态 其它需要描述的内容
描述用例时的原则是尽可能写得“充分”, 而不是形式 化、完整或漂亮.
柜员机系统中,银行后台系统就是一个参与者; 2)硬件设备:如果系统需要与硬件设备交互时,如在 开发IC卡门禁系统时,IC卡读写器就是一个参与者; 3)时钟:当系统需要定时触发时,时钟就是参与者
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
带箭头的线段来描述,箭头表示在这一关系中 哪一方是对话的主动发起者,箭头所指方是对 话的被动接受者。
一、 什么叫用例图
在用例建模中,为了更加清楚的描述用例或者参与者,会 使用到注释。
一、 什么叫用例图
3、用例图的作用
用例图是需求分析中的产物,主要作用是描述参与者和用例之间 的关系,帮助开发人员可视化的了解系统的功能。借助于用例图,系 统用户、系统分析人员、系统设计人员、领域专家能够以可视化的方 式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。 用例图可视化地表达了系统的需求,具有直观、规范等优点,克 服了纯文字性说明的不足。 用例方法是完全从外部来定义系统功能,它把需求和设计完全的 分离开来。我们不用关心系统内部是如何完成各种功能的,系统对于 我们来说就是一个黑箱子。
系统的诞生
系统架构如何开始?
从 用 例 图 开 始!
一、 什么叫用例图
1、用例图的目的
在系统开发的初期阶段,基于以下目的做成用例图: 明确开发系统的主要功能 明确开发系统的范围 明确开发对象和外界的关系
一、 什么叫用例图
2、用例图的含义
由参与者(Actor)、用例(Use Case)以及 它们之间的关系构成的用于描述系统功能的动 态视图称为用例图(Use Case Diagram)。 要在用例图上显示某个用例,可绘制一个椭 圆,然后将用例的名称放在椭圆的中心或椭圆 下面的中间位置。 要在用例图上绘制一个参与者(表示一个系 统用户),可绘制一个人形符号。 参与者和用例之间的关系使用带箭头或者不
软件需求
用例编号 用例名称 用例概述 参与者 前置条件 后置条件
UC01 用例规约实例 用户注册 未注册用户注册成为会员 未注册用户 用户在主页单击“注册”,进入注册程序 注册时填写的用户信息保存到系统中
1.系统显示注册页面; 2.用户填写用户名、密码等相关信息后提交; 基本事件流 3.系统处理该请求并显示注册成功; 4.注册成功后跳转到登录页面;
用例图是骨架பைடு நூலகம்而用例规约则是其内在的肉
用例规约
用例规约包含以下内容: 1 简要说明:对用例作用和目的的简要描述。 2 事件流:事件流包括基本流和备选流。基本流描述的是用例的基本 流程,是指用例“正常”运行时的场景。 3 用例场景:同一个用例在实际执行的时候会有很多不同的情况发生, 称之为用例场景,也可以说用例场景就是用例的实例。 4 特殊需求: 特殊需求指的是一个用例的非功能性需求和设计约束。 特殊需求通常是非功能性需求,包括可靠性、性能、可用性和可扩展性 等。例如法律或法规方面的需求、应用程序标准和所构建系统的质量属 性等。 5 前置条件: 执行用例之前系统必须所处的状态。例如,前置条件 是要求用户有访问的权限或是要求某个用例必须已经执行完。 6 后置条件:用例执行完毕后系统可能处于的一组状态。例如,要求 在某个用例执行完后,必须执行另一个用例。
一、 什么叫用例图
3、用例图的作用 获取需求、指导测试、对开发过程中的其他工作起指 导作用。
二、用例图的构成要素
用例图包含3方面内容:
参与者(Actor)
用例(Use Case)
关系: 关联(Association)
泛化(Generalization)
包含(Include) 扩展(Extend)
用例图中可以包含注释、约束
二、用例图的构成要素
参与者 参与者是系统外部的一个实体,以某种方式参与用例的
执行过程。是为了完成一个事件与系统进行交互的实体
,是与系统交互作用的外部用户、进程或其他系统的理 想化概念。
在UML中,参与者用名字写在下面的人形图标表示。
二、用例图的构成要素
参与者由它们参与用例时所担当的角色来表示。
用例名
用例的识别
用例图对整个系统的建模过程非常重要,在绘制系统用例图前, 有许多工作需要做。 系统分析者必须分析系统的参与者和用例,它们分别描述了 “谁来做”和“做什么”这两个问题。 识别用例最好的方法就是从分析系统的参与者开始,考虑每个 参与者是如何使用系统的。使用这种策略的过程中可能会发现 新的参与者。
参与者之间的关系
多个参与者之间可以具有与类之间相同的关系。 在用例图中,可以使用泛化关系来描述多个参与者之间的 。
参与者之间的关系
例如,在图书馆管理系统中,借书者可以泛化成两类:学生和 老师。 再如,航空售票系统接受客户预定机票,客户可以进行电话预 定和网上预定,如果不考虑客户是如何与系统接触的,可以使 用一般角色的参与者,即父类;如果强调接触发生的形式,那 么必须使用实际的参与者,即子类。
会员
输入用户名
<<include>>
会员
登录
验证用户名和密码
身份验证
用例粒度
错误二:把系统活动当用例
<<include>> 建立数据库连接 <<include>> 查询订单 执行SQL语句
用例规约
用例图只是在总体上大致描述了系统所提供的各种服 务,让用户对系统有一个总体的认识。但对于每一个用例 还需要有详细的描述信息,以便让其他人对于整个系统有 一个更加详细地了解,这些信息包含在用例规约之中。 用例模型指的也不仅仅是用例图,而是由用例图和用 例的详细描述——用例规约所组成的。
特殊需求
非功能需求(URPS) 可用性(Usability) 可靠性(Reliability) 非功能需求 功能需求 设计约束 性能(Performance) 可支持性(Supportability) 设计约束 用Oracle数据库平台,用PB开发… 软件必须符合ISO×××标准 …… 本质上不是需求,只是从商业、行政、技术上 的约束
用例之间的各种关系
3.包含关系 包含关系描述的是一个用例需要某种功能,而该功能被另外一个 用例定义,那么在用例的执行过程中,就可以调用已经定义好的用 例。 在UML中,用例之间的包含关系含有关键字<<include>>的带有箭 头的虚线表示。
3.包含关系
3.包含关系
3.包含关系
3.包含关系
借书者
客户
学生
老师
电话客户
网上客户
参与者之间的关系
更具一般的,可以由下图表示参与者之间的关系。
超类参与者
特殊化参与者
特殊化参与者
用例
用例是站在使用者的立场上看到的系统所提供的功能。
用例是系统中的功能 一个用例表示一个功能,集中所有的用例,可完整描述如何使用该 系统 可以通过关联线与参与者连接,一个用例至少与一个参与者相关联。 给用例取名字要站在使用者的立场上考虑 可以用系统边界把用例框起来以区分系统内外 在UML中,用例用一个椭圆来表示,用例的名字可以写在椭圆的下方。
用例的识别
在识别用例的过程中,通过回答以下几个问题,系统分析者可 以获得帮助。 • ⑴ 参与者要从系统中获得哪种功能?参与者需要做什么? • ⑵ 参与者需要读取、产生、删除、修改或存储系统中的某种信 息吗? • ⑶ 系统中发生的事件要通知参与者吗?或者参与者需要通知系 统某事件吗?这些事件(功能)能干什么? • ⑷ 用系统的新功能处理参与者的日常工作是简化了,还是提高 了工作效率?
4.扩展关系
课表查询系统 4.扩展关系
4.扩展关系
使用场合 对扩展用例的限制规则:将一些常规的动作放在一个 基本用例中,将可选的或只在特定条件下才执行的动作放 在它的扩展用例中。
扩展关系误用
实例分析:棋牌馆管理系统
实例分析:网上书店
用例粒度
用例的粒度指的是用例所包含的系统服务或功能单元 的多少。 用例的粒度越大,用例包含的功能越多,反之则包含 的功能越少。
什么是需求?
需求层次 内容 客户对系统、产品高层次的目标要求。通常问题定义 就是业务需求 描述用户使用产品必须要完成什么任务,怎么完成, 通常是在问题定义的基础上进用户访谈、调查,对用 户使用的场景进行整理,从而建立从用户角度的需求 从系统的角度来说明软件的需求,它就包括了用特性 说明的功能需求,质量属性以及其它非功能需求,还 有设计约束。
事件流
说明用例如何开始和结束。只说明属于该用例的事件, 而不是发生在其他用例中或系统外部的事件。 避免不明确的术语,如“例如”、“等等”和“信息”
事件流
在事件流里要对事件流进行结构化说明 基本事件流 • 描述每个情节的行为者:目标语句对的顺序 • 假设之前的每一步都是成功的 备选事件流 • 异常情况
注意:执行基用例时,每次都必须调用被包含用例。
包含关系误用
用例之间的各种关系
4.扩展关系
扩展关系是一个用例被定义为基础用例的增量扩展,通过 扩展关系把新的行为插入到已有用例中。扩展关系中,扩 展用例是基础用例的一个相对独立并且可选的用例。 在UML中,扩展关系用虚线箭头加<<extend>>表示,箭头 指向基础用例,即被扩展的用例
第3章 需求分析与用例模型
第3章 需求分析与用例模型
在软件工程中,需求分析指的是在建立系统时描写系统 的目的、范围、定义和功能时要做的所有工作。 需求分析是软件工程中的一个关键过程。在这个过程中, 系统分析员和软件工程师要确定顾客的需求。
第3章 需求分析与用例模型
软件开发过程中常见的场景
第3章 需求分析与用例模型
二、用例图的构成要素
任何事物 人、外系统、特殊的硬件、时间(到某一时间触发某一事件)等
参与者的识别
在获取用例前要先确定系统的参与者,可以根据以下 的一些问题来寻求系统参与者。 (1)使用系统主要功能的人是谁? (2)需要借助于系统完成日常工作的人是谁? (3)谁来维护管理系统保证系统正常工作? (4)系统控制的硬件有哪些? (5)系统与哪些其他系统交互? (6)对本系统产生的结果感兴趣的人或事是哪些?