需求分析-程序员宅基地

技术标签: 软件工程  

(一) 需求分析的目标和任务

他的基本任务是:准确地回答“系统必须做什么”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求

1、确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束(设计约束或实现约束描述在设计或实现应用系统时应遵守的限制约束条件)、逆向需求(说明软件系统不应该做什么)、将来可能提出的需求

2、分析系统的数据需求

3、导出系统的逻辑模型

4、修正系统开发计划

(二) 软件系统的可行性分析

(三) 需求获取

①访谈

    正式访谈:系统分析员将提出一些事先准备好的具体问题

    非正式访谈:分析员将提出一些用户可以自由回答的开放性问题。

    调查表:需要调查大量人员的意见。

②面向数据流自顶向下求精

③建议的应用规格说明技术

④快速建立软件模型

(四) 需求规格说明书

是需求分析阶段得出的最主要的文档。

结构化分析模型

(五) 数据流建模(数据流图)

    描绘系统逻辑模型,图中没有具体的物理元素,只描绘信息在系统中流动处理情况。是非常好的通信工具和软件设计出发点。

1、数据流图符号

        正方形(立方体):表数据的原点或终点

        圆角矩形(或圆形):代表数据的处理

        开口矩形(或两条平行线):代表数据存储(临时或永久:可能文件、文件的一部分、一个表、记录的一部分都行,不用考虑怎么存储)

        箭头:表数据流,即特定数据的流动方向(有流动的数据项或数据集合)

        数据流图附加符号

2、解法:

①从问题描述提取数据流图四种成分

                原点、终点、处理、数据流、数据存储

②着手画数据流图的基本系统模型

                即一个原点一个处理一个终点,确定边界

③把基本系统模型细化,描绘系统主要功能

④主要功能进一步细化

⑤结束,或进一步分解到涉及如何具体实现功能时,不再分解。

3、分层数据流图:为表达数据加工情况,需采用层次结构数据流图

        顶层、中间层、底层

        分层数据流图的几个问题

            ①编号的设置父为2则子为2.1、2.2 。。。

           ②父子图的平衡

           ③局部数据存储不用平衡

4、数据流图的命名规则

    ①数据流:用名词;代表整个数据流(数据存储)内容,不仅仅反应某些成分;不用缺乏具体含义的名字如“数据”“信息”等

    ②处理命名:用动宾词组,避免使用“加工”“处理”等笼统词;反应整个处理的功能,不是一部分功能;通常只包括一个动词,否则分解

    ③数据原点/终点:在问题域习惯用命(如“采购员”“学生”)

5、数据流图的用途

    ①作为交流信息工具

    ②作为分析和设计工具:自动化边界划分

(六) 实体-关系建模(E-R 图)

描述数据对象之间的关系

图中数据对象属性用“数据对象描述”表达

1、组成:数据对象:软件必须理解的符合信息表达,复合信息是具有一系列不同性质或属性的事务

2、数据对象间关系:一对一、一对多、多对多

3、属性:定义数据对象的性质

4、实体关系图

(七) 系统行为建模

1、软件行为模型:状态、事件、行为

        状态:被观察到的系统行为模式

        事件:引起状态转换的外界事件抽象

        行为:进入某状态所作动作

2、状态转换图符号

        状态:

               初始状态(只能有一个)

                最终状态(可能多个)

                中间状态

                事件:

                        箭头:箭头上事件名。保安条件   [  ] 这种标志条件为真时导致改变

        行为:

                状态框内加   "do:行为名"

3、贼经典的例子

 

(八) 用例建模(用例图)

用例图描述外部执法者与系统的交互,表达系统功能,即系统提供服务

1、主要元素用例和执行者

        用例:执行者与计算机一次典型交互,代表系统某一完整功能

        执行者:描述与系统交互的人或物,代表外部实体(如用户,硬件、设备等)

                直线表示关系

2、建立用户模型

        ①发现执行者

                谁使用该系统;谁改变系统的数据;谁从系统取信息;谁需要系统的支持以完成日常任务;谁负责维护管理并保持系统正常运行;系统需要应付那些硬件设备;系统需要和哪些外部系统交互;谁对系统运行产生的结果感兴趣;

        ②获取用例

               向执行者提出问题(从用户观点)

                       执行者需要获取何种功能,需要做什么;执行者需要读取产生、删除、修改或存储;系统发生时间和执行者间是否要通信;

                用户观点非系统观点

        ③执行者间关联:

                泛化关系:一般特殊关系(特殊者指向一般执行者)

        ④用例间关系

                泛化关系

                包含关系:一个基本用例包含另一个用例行为(要实现基本用例必须满足另一个用例行为)

                扩展关系:允许一个用例扩展另一个用例提供的功能,与泛化类似,但有更多限制:基本用例必须声明“扩展点”,扩展用例只能在扩展点上增加新行为

3、我自己画的一个用例图---不对请留言指正,正在研究,有更好的画法,风格更好更正规的画法,请留言指正。

(九) 面向对象建模

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42119415/article/details/82884022

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签