阅读笔记一之《软件需求与分析》

 

关于我们怎样做需求分析:

  本学期《软件需求与分析》需要掌握需求调研、需求分析和需求确认三大基本内容。以下为针对每一个内容的自己的理解。

 

一、需求调研

初识:刚开始与客户接触的时候,一定要建立良好的职业微信。在对需求进行分析时,应分角色进行需求分析。并且从宏观上制定目标与方案。

拜访:“需求调研不是一蹴而就的事情,是一件持续数月甚至数年的工作(假如项目还有后期维护)。”在拜访中,我们需要与客户简历长期友好的关系。也一定要抱着相互尊重的态度与客户交往,因为这个过程中不可避免的有一些阻碍项目进行的一些基层人员。还可以在其中找到一些可以帮助我们的人。

研讨会:业务研讨会是重要的,但同时又是灵活的,没有一个定式,甚至有时都不能称之为会议。项目经理需要根据实际情况,合理地与客户组织研讨会。但不论怎样组织,必须注意两点:有效抑制个性化差异、分模块组织专项研讨会。

需求研讨:需求分析不是一种简单的你说我记的收集活动,而是在大量业务分析与技术可行性分析基础上的分析活动。只有建立在这种分析基础上的软件研发,才能保证需求的正确与变更的可控。

迭代:需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获,需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。每深入一步,我们的软件就更接近客户的满意。所以,应该一点一步一步。

需求捕获:还有两类需求需要我们自己去挖掘:客户嘴中没有说出来的需求,和客户压根儿就没有想到的需求。在真正开始这个项目的编程之前,可以先给客户制作一个模型来参考。

 

二、需求分析

功能角色分析与用例图:绘制用例图对业务需求进行分析、抽象、整理、提炼,进而形成抽象模型的过程称之为用例建模,而这个模型就是用例模型。在画用例图的时候,应该尽可能的能使客户看的懂。

业务流程分析:我们进行业务流程分析,是要分析业务流程中哪些是需要信息化管理的,而哪些是不需要信息化管理的。

用例说明:在对需求进行分析时,不能是空对空且不落到纸上。所以需进行用例说明。其中一些基本元素还是相同的。

查询报表分析:一个有效的报表往往会揭示一些客观规律。每一个报表都有它的主要意图。报表作用体现的是报表对于不同用户的真实意图;输出列体现的是对各个数据项及其数据来源的说明;假设与约束罗列的是报表中各个数据项的运算公式、数据规则与约束;还有使用频率、数据链接、非功能需求,以及最后的界面原型等。

子用例与扩展用例:子用例与扩展用例的学习,能够帮助我们在后面的系统设计更好的复用,提高系统的内聚并降低了系统的耦合。

行动图和状态图:行动图和状态图能够有效的对业务流程进行整体的描述(是与子用例与扩展用例相比),并且生动形象。注意“在需求分析中,状态图并不是必须的,它仅仅出现在你认为需要对某个对象的状态进行说明的时候。 ”

业务领域分析:这是需求分析里的最后一项工作,我们进行业务领域分析,是通过与用户进行交流,掌握领域知识,绘制成业务领域模型,去指导我们软件开发的过程。

原文分析法、领域驱动设计:原文分析法和领域驱动设计是指导我们的业务领域分析的两种方法。原文分析发,是在用例说明与流程分析的基础上进行的业务领域分析,是一项在需求研讨会后整理和分析需求的工作。领域驱动设计(在我的理解)就是客户与你之间形成一种统一语言,这种语言有助于两者之间的交流。

非功能需求:非功能需求对于一个软件的开发是很重要的,可以有效避免以后存在的风险。

 

三、需求确认

需求列表:需求列表是用来记录原始需求,以此来验证最终的软件。这样使每一阶段每一个领域的需求分析都能够很清楚,没有变得越来越模糊。

快速原型法:快速原型法就是拿出一个模型。并且在展示模型之前一定要先跟客户说明情况,这并不是最终的软件,也就是软件不是一天两天就能做出来的。

需求规格说明书:需求规格说明书要分两种,一种是用户需求规格说明书,另一种是产品需求规格说明书。需求规格说明书也是非常重要的,它提供了一种切实可行的解决方案。

评审与签字确认会:需求评审会分为内部评审会与外部评审会两部分,要分开进行。

 

 

转载于:https://www.cnblogs.com/xiaxiaoshu/p/7602632.html

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

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

相关文章

java代码删除ElasticSearch索引

用java代码删除ElasticSearch索引 public class ElasticsearchDeleteIndexTest {public static void main(String[] args) throws IOException {RestHighLevelClient restHighLevelClient new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9…

java代码查询elasticsearch索引

用java代码查询ES索引 public class ElasticsearchSearchTest {public static void main(String[] args) throws IOException {RestHighLevelClient restHighLevelClient new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http&…

67 个JavaScript和CSS实用工具、库与资源

在这篇文章中,我不会与大家谈论大型的前端框架,如 React、Angular、Vue 等,也没有涉及那些流行的代码编辑器,如 Atom、VS Code、Sublime,我只想与大家分享一个有助于提升开发人员效率的工具列表合集。 或许&#xff0c…

NGINX生命周期-转

转载于:https://www.cnblogs.com/justart/p/7611427.html

Flush tables with read lock (FTWRL)全局锁就是对整个数据库实例加锁

一:加全局读锁命令 FLUSH TABLE WITH READ LOCK; 二:执行新增语句 报错了 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near VALUES3,"语文&qu…

深入研究Servlet线程安全性问题

Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线…

查看当前数据库存储引擎

一:查看当前数据库支持的存储引擎 show ENGINES; 二:查看指定数据库所有表使用的存储引擎 使用 show table status from dbname;命令,可以查看指定数据库所有表使用的存储引擎,其中“dbname”为数据库名。 show table status from 库名; 三…

System.gc() 和 Runtime.gc() 会做什么事情?

System.gc()和runtime.gc()用于提示jvm进行垃圾回收。立即开始回收还是延迟回收回收取决于jvm 会触发full gc 调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()

西门子博途编程 - 另类状态机

这次我们用博途来写上次的控制任务,发现还是有些不一样。 和AB比,还是有点复杂啊。转载于:https://www.cnblogs.com/TomDing/p/7617427.html

提升面对电脑的工作效率

用ubuntu已经有一段时间了。现在还不得不在WIN上用的东西就是OUTLOOK和MS OFFICE了。OPENOFFICE还需要很长的路要走呀。不过有一个比较深的感受,就是我会越来越多的使用快捷键来完成原来需要鼠标点好几次的动作。不知道是不是因为我的工作原因,需要长时间…

面试题finalize() 方法什么时候被调用?析构函数 (finalization) 的 目的是什么?

finalize是Object类的一个方法,该方法在Object类中的声明 在垃圾回收器执行时会调用被回收对象的finalize()方法,可以覆盖此方法来实现对其资源的回收。注意:一旦垃圾回收器准备释放对象占用的内存,将首先调用该对象的finalize()方…

maven setting.xml 配置

<localRepository>/Users/wangzeyu/.m2/repository1</localRepository> 修改为自己本地仓库的路径&#xff0c;没有新建一个 <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.…

C:\WINDOWS\Installer文件夹的安全清理

这几天微软发布了不少补丁&#xff0c;系统盘&#xff08;C:\&#xff09;又开始空间告警。没办法又要研究一下哪些空间是可以释放的&#xff0c;我的C:\分配了10G的空间&#xff0c;一度又一度的空间紧张&#xff0c;大家的系统盘是多大呢&#xff1f;这一次我准备向 C:\WINDO…

springboot出现org.springframework.beans.factory.NoSuchBeanDefinitionException问题

报错 with path [] threw exception [Request processing failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type org.springframework.transaction.TransactionManager available] with root causeorg.…

java在读取excel时出现Unable to recognize OLE stream错误解决方法

报错截图如下 这个问题是因为你的excel版本不对&#xff0c;要把.xlsx后缀另存为.xls后缀 {"type": "error","message": "数据导入出错&#xff01;Unable to recognize OLE stream出错行&#xff1a;1,异常流水号:1724238","co…

git pull 时报错 Untracked Files Prevent Pull

untrack表示是新文件&#xff0c;没有被add过&#xff0c;是为跟踪的意思 可以看看有哪些文件会被删除&#xff0c;但是不会真正执行 git clean -n 删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过 在…

测试邮件系统需要做的准备工作

大部分企业在搭建邮件系统时&#xff0c;基本上都会对市场上的邮件主流产品进行测试。软件这一类型的产品在购买前一般都要经过客户测试这个环节&#xff0c;否则很难保证其实用性和适用性。邮件系统或者叫邮件服务器&#xff0c;这类企业信息沟通的软件也不例外&#xff0c;Tu…

17.10.05

上午 模拟考试 Prob.1&#xff08;AC&#xff09;一道简单的博弈题&#xff0c;找到必胜态&#xff0c;反推普遍情况是否可以达到必胜态即可。Prob.2&#xff08;AC&#xff09;做到原题了呢。入门OJ 2092: [Noip模拟题]舞会Prob.3&#xff08;WA了3个点&#xff09;一道高精度…

Mysql之CURDATE()函数,NOW()函数,CURTIME()函数

可以看到CURDATE() 取的是年月日&#xff0c;CURTIME()取的是时分秒, NOW()取的是年月日时分秒 NOW()取的是年月日时分秒SELECTNOW();可以看到CURDATE() 取的是年月日 SELECTCURDATE();CURTIME()取的是时分秒, SELECTCURTIME();

MS SqlServer中少用但是好用的SQL语句

代码 /*-- 2010-02-26 -- 布朗-- QQ:156298979*/--with ties可以附加与排序字段相同值的多个行selecttop3withties *fromhrEmployee orderbyshortName ascsetrowcount3--设置全局变量,使每次返回的行数都为3行select*fromhrEmployee orderbyshortName ascsetrowcount0--设置全局…