软件工程与计算总结(六)需求分析方法

本贴介绍需求分析方法,涉及到诸多实践性的东西,掌握各种图表的绘制是重中之重~ 

一.需求分析基础

1.原因

需求获取中得到的信息仅仅解释了用户对软件系统的理解与期待,使用的是实际业务的表达方式,还不是开发者能够立即加以实现的解决方案~

需求分析的任务:

  • 建立分析模型,达成开发者和用户对需求信息的共同理解~
  • 依据共同的理解,发挥创造性,创建软件系统解决方案

2.模型

(1)定义

模型是对事物的抽象,帮助人们在创建一个事物之前有更好的理解~

(2)建模

建立系统的一个表示,这个表示以精确统一的方式描述系统,使得系统的使用更加容易~

  • 抽象:一方面要求人们只关注重要的信息,忽略次要的内容;另一方面要求认知保留在适当的层次,屏蔽更深层次的细节~
  • 分解:将单个复杂和难以理解的问题分解为多个相对容易得子问题
(3)特点及其常见需求分析模型

需求分析模型是专门用来描述软件解决方案的模型技术。

定位:

常见模型:

二.结构化分析

1.方法

把现实世界描绘为数据在信息系统中的流动,以及在数据流动过程中数据向信息的转化。他帮助开发人员定义系统需要做什么(处理需求),系统需要存储和使用哪些数据需求(数据需求),需要什么样的输入和输出,以及如何把这些功能结合在一起来完成任务。

(常见模型:数据流图、实体关系图、状态转移图、数据字典等)

2.数据流图(DFD图)

将系统看为过程的集合,过程的执行就是对数据的处理,接受数据输入,并进行数据转换,输出数据结果;执行过程中可能涉及到人机交互等外界输入的数值~

(1)基本元素

  • 外部实体:处于待构建软件系统之外的人、组织、设备或者其他软件系统
  • 过程:施加于数据的动作或者行为
  • 数据流:数据的运动(动态)
  • 数据存储:软件内部手机的数据集合(静态)

如下是一个DFD图的样例:

(2)语法规则
  • 过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集应该存在差异
  • 数据流是必须和过程产生关联的,他要么是过程的数据输入,要么是过程的数据输出
  • 所有对象都应该有一个可以唯一标识自己的名称,过程使用动词,外部实体、数据流和数据存储使用名词

(3)分层结构

对于复杂的系统,解决的方式是分而治之:即利用过程具有不同抽象层次表达能力的特点,依据过程的功能分解结构,建立层次式的DFD描述:

  • 上下文图:最高层次的图,是系统功能的最高抽象,将整个系统看做一个过程,这个过程是实现系统的所有功能,所以上下文图中仅存在一个过程,表示整个系统

  • 0层图:上下文图的下面一层,被认为是上下文图中单一过程的细节描述,是对单一过程的第一次分解
  • N层图:0层图中的每一个过程都可以进行分解,以展示更多的细节~被分解的过程成为父过程,分解后产生的揭示更多细节的图成为子图(可以持续分解到无法再分解

(分解过程中要保证平衡性,即不会出现需求偏差的方法,要求DFD子图的输入流、输出流必须和父过程的输入流、输出流保持一致

3.实体关系图(E-R图)

能够弥补过程建模在数据说明方面的缺陷,描述数据的定义、结构和关系等特性的技术~

3个基本元素:实体、属性、关系

  • 实体:需要在系统中收集和存储的显示世界的类别描述
  • 关系:实体之间并不是孤立存在的,他们之间相互交互、相互影响
  • 属性:可对实体进行描述的特征

标识符/键:可以唯一确定一个实例的一个或者多个属性~

三.面向对象分析

1.方法

认为系统是对象的集合,对象之间相互协作,共同完成系统的任务。(与结构化完全不同,面向对象以对象为基础,而结构化分析以功能和数据为基础)

主要优点:

  • 自然性:对人类而言更加自然和直观
  • 可复用性

UML(统一建模语言):多种技术的综合体,并非单一的技术——用例图、类图等

2.用例

需求获取和组织的主要手段~

定义:在系统和外部对象的交互中所执行的行为序列的描述——换句话说,用例是对相关场景的集合

一种理解:关于x+y=z的程序,x=1 y=2 z=3即为一个用例 

3.用例图

(1)基本元素

  • 用例:最重要的元素(椭圆)
  • 参与者:发起或者参与一个用例的外部用户及其他软件系统等角色
  • 关系
  • 系统边界:一个系统所包含的系统成分与系统外界事物的分界线

(2)建立

步骤大致如下:

  • 进行目标分析与确定解决方向:进行目标的分析,确定项目的目标,定义高层次解决方案的系统特性。
  • 寻找参与者:根据上一步确定的目标系统与系统特性,发现系统功能相关的参与者
  • 寻找用例:根据参与者寻找用例
  • 细化用例:将用例的粒度调整为更加适宜的存在

用例粒度的判断标准——对应一个业务事件,由一个用户发起,并在一个连续时间段内完成,可以增加业务价值的任务~

 

4.用例描述

5.概念类图(领域模型)

(1)基本元素
  • 对象:分析方法的基础,包含标识符、状态、行为3个方面的内容 
  • 类:对象分类思想的结果,是共享共同属性的对象的集合
  • 链接:对象之间的相互协作的关系
  • 关联:类之间的关系

(部分与整体之间的关系被称为聚合,如果整体还拥有对整体的管理职责,则这种聚合称为组合

  • 继承:某类拥有另一类的全部属性和服务~子类也可以认为是父类的特化
(2)建立概念类图

步骤如下:

  • 对每个用例文本描述,建立局部概念类图
  • 将所有用例产生的局部概念类图进行合并,建立软件系统的整体概念类图
  • 识别关联
  • 识别重要属性

 

6.交互图(顺序图)

描述对象协作的技术,描述特定上下文环境中一组对象的交互行为

(1)顺序图

(2)系统顺序图——常用于系统分析阶段

7.状态图

系统总是存在于一定状态之中,有限状态机理论是状态图的基础~

四.使用需求分析方法细化和明确需求 

1.细化和明确需求内容

需要强调的是需求分析模型不是简单机械的对已有内容进行转述,而是要细化和明确具体的需求内容~

2.建立系统级需求

基于最后建立的需求分析模型,还可以顺利的将用户需求转换为系统级需求~

tips:理论部分非常枯燥乏味,重点在于掌握图表的绘制,敬请期待专题~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法|动态规划No.16】leetcode931. 下降路径最小和

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

VSCODE+PHP8.2配置踩坑记录

VSCODEPHP8.2配置踩坑记录 – WhiteNights Site 我配置过的最恶心的环境之一:windows上的php。另一个是我centos服务器上的php。 进不了断点 端口配置和xdebug的安装 这个应该是最常见的问题了。从网上下载完php并解压到本地,打开vscode,安装…

基于SpringBoot的网上摄影工作室

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 作品分类管理 轮播图管理 摄影作品管理 摄影作品收藏 摄影圈 摄影作品发布 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统…

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南

目录 引言 ​编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代,性能优化和调优对于…

Qt QPair

QPair 文章目录 QPair 摘要QPairQPair 特点代码示例QPair 与 QMap 区别 关键字: Qt、 QPair、 QMap、 键值、 容器 摘要 今天在观摩小伙伴撸代码的时候,突然听到了QPair自己使用Qt开发这么就,竟然都不知道,所以趁没有被人发…

3、在 CentOS 8 系统上安装 PostgreSQL 15.4

PostgreSQL,作为一款备受欢迎的开源关系数据库管理系统(RDBMS),已经存在了三十多年的历史。它提供了SQL语言支持,用于管理数据库和执行CRUD操作(创建、读取、更新、删除)。 由于其卓越的健壮性…

k8s 集群部署 kubesphere

一、最小化部署 kubesphere 1、在已有的 Kubernetes 集群上部署 KubeSphere,下载 YAML 文件: wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/…

iPhone手机记笔记工具选择用哪个

iPhone手机大家应该都比较熟悉,其使用性能是比较流畅的,在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等,在iPhone手机上记笔记工具选择用哪个呢? 可以在iPhone手机上使用的笔记工具是比较多的&#xff0…

Andriod学习笔记(一)

写在前面的话 App开发的编程语言Java和KotlinXML App连接的数据库App工程目录结构模块级别的编译配置文件清单文件 界面显示与逻辑处理 安卓是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备。 Mininum SDK表示安卓该版本以上的设备都可以运行该…

在Openresty中使用lua语言向请求浏览器返回请求头User-Agent里边的值

可以参考《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1,使用systemd管理OpenResty服务》安装Openresty。 然后把下边的内容写入到openresty配置文件/usr/local/openresty/nginx/conf/nginx.conf(根据实际情况进行选…

基于SSM的网络安全宣传网站设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

医疗机构又进化了,一招搞定UPS设备太爽了!

在现代社会中,能源供应的可靠性至关重要,不间断电源(UPS)系统是维持关键设备运行的关键组成部分。UPS监控是一种重要的技术,用于实时监测UPS的性能、电池状态和电力质量。 客户案例 四川某医院是一家大型医疗机构&…

应对广告虚假流量,app广告变现该如何风控?

移动广告市场中的虚假流量一直是困扰各移动应用厂商的难题,广告作为app商业化变现最为直接快捷的途径,也引申出了流量作弊与反作弊的纷争。 根据《2021中国异常流量报告》,2021年中国品牌广告市场因异常流量造成的损失约为326亿人民币&#…

适合学生写作业的台灯有哪些?高品质学生读写台灯推荐

不得不说如今我国青少年儿童的近视率还是非常高的,据国家卫健委疾控局数据,我国儿童青少年总体近视率为52.7%,其中6岁儿童为14.3%,小学生为35.6%,初中生为71.1%,高中生为80.5%,造成近视的原因不…

2. redis常见数据类型

一、Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合…

1800*C. Table Decorations(贪心 || 二分)

Problem - 478C - Codeforces 解析: 做法一:二分,显然左右边界为 0 和 总数量除以3。check时mid,任意两项之和都不能小于mid 做法二:贪心,当数量最大的气球数量的一半小于另外两种颜色气球的数量之和&#…

[Python]图片转字符画——这就是我的表情!!!!!!

背景 偶尔看到一些视频,他们把图片转字符画,平常也没有去关注,今天来捣鼓一下。 研究了一下还超级简单的,都是调用别人写好的框架。 网上也有很多教学。 代码实现 from PIL import Image # 表示字符颜色,由深到浅&am…

阿里云ModelScope 是一个“模型即服务”(MaaS)平台

简介 项目地址:https://github.com/modelscope/modelscope/tree/master ModelScope 是一个“模型即服务”(MaaS)平台,旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的…

浅谈智能型电动机控制器在斯里兰卡电厂中的应用

摘要:传统的低压电动机保护是通过继电保护二次回路实现,但是我们结合电厂辅助控制设备的特点及其控制要求,推荐ARD2F智能型电动机控制器。以下综合介绍ARD2F智能型电动机控制器产品的特点及其智能化保护、测量、控制和通讯等。 Abstract: Th…

ppt录屏没有声音?超实用教程来了!

随着信息技术的发展,ppt已经成为工作中必不可少的工具。无论是工作报告、项目展示还是学术交流,都离不开ppt的辅助。屏幕录制功能是ppt的一个重要特性,可以帮助用户方便地录制幻灯片演示,但在使用过程中,有时会遇到ppt…