论软件工程需求的分类与获取

论软件工程需求的分类与获取

摘要:在软件工程的生命周期中,需求分析是很核心的一环,如果是自顶下上的设计,那么它就是顶层的核心设计。软件工程的过程中,不仅仅只有代码编写,明确需求,分析需求,是对产品目标的设计。当需求完整,准确,清晰,具体的时候,软件的开发才可能事半功倍。那么如何去获取软件需求,软件需求又有哪些类型,这是我们要去探讨的。需求分为功能性需求与非功能性需求,非功能性需求包括性能要求,系统外部构件接口要求,设计约束要求,质量属性要求等。需求的获取可以有文献查阅,用户访谈,问卷调查以及大数据分析等。

一、需求的类型

  1. 功能性需求:即是系统所要完成的所有功能的需求,整个需求的主体。
  2. 非功能性需求:
    1)性能需求:一个系统或者系统构件必须具有的性能特性。比如响应时间,吞吐量,资源利用率等。不管是移动端还是网页端,如果一个系统的响应时间较长,客户的烦躁指数会急速上升,客户的使用感就会降低。
    2)外部接口需求:外部接口需求规约了系统或系统构件必须与之交互的硬件、软件或数据库元素。它也可能规约其格式、时间或其他因素。有系统接口,用户接口,硬件接口,软件接口,通讯接口等。保障系统的物理条件。
    3)设计约束需求:设计约束限制了系统或系统构件的设计方案。通俗的讲,就是在设计这个系统的时候,产生的一些设计要求:比如这个系统需要使用某种语言实现;比如设计某个板块的时候,必须以某种形式出现等。
    4)属性质量:这是非功能需求中很重要的一个标准。质量属性规约了软件产品必须具有的一个性质是否达到质量方面一个所期望的水平。包括可靠性:即容错率,故障转移恢复性等,比如发生故障后,此系统的重建能力,对数据的影响,备份等。存活性:当系统的某一部分系统不能运行时,该软件继续运行或支持关键功能的可能性。可维护性与可拓展性:互联网的不断发展,促使系统需要不断变化与发展,当变化时,还应该以较小的付出得到较大的回报。此时就需要系统具有模块和复用性,可以局部改变微调减少成本。并且系统的更新日志与备份,也加强了可维护与拓展。用户友好性:客户在使用这个系统时候,应该能被体会到简单易懂,易操作。可移植性:系统可以在不同的平台运行。安全性:信息安全在我们生活中已经越来越重要了,在这个数据时代,数据事非常重要的。一个没有安全意识的开发人员是不完美的。数据的保密性:数据在传输的过程中不被偷看、窃取、篡改,并以加密的形式传输。数据防泄漏:不因为硬件的原因,导致数据内存的泄露。系统的权限控制,不被有心人利用提权,然后对系统进行操作。系统防攻击:比如IP限制,高频访问限制,防治Ddos攻击,web端还要考虑有心人进行漏洞攻击,这些在设计系统安全的时候,在编写代码的时候都应考虑到,服务器环境部署的时候,也要考虑到。
    以上都是在需求分析中需要考虑到的一些要求,在进行需求分析的时候,解决以上条件任务是很有必要的。

二、需求的获取

  1. 文献查阅法:这是一种追溯历史法,通过一些互联网会议记录的文献,通过行业的年度报告等了解目前行业的发展,了解用户的未来需求,在这些文献的基础上,查阅分析,可以推测出未来潜在的需求。
  2. 问卷调查法:通过对特定人群,比如软件系统的主要面向人群,发放问卷调查,调查内容可以有关于用户想要什么样的功能,可以是功能性的也可以是非功能性的比如设计样式,用户喜欢什么样的排版,颜色深浅等,还有比如如果系统触及用户的经济利益,用户如何看待处理等。在问卷调查中的问题应该定性定量,一般是制作方应该有一个小的需求的demo了,然后去征求用户的意见。
  3. 用户访谈法:关于如果有效率地与用户进行访谈,来获取他们的地需求,这又是一门学问。与不同的许多的用户进行访谈,不能一开始就问用户你觉得怎么样,需要给用户一个带入的例子,在访谈的时候最好实际举一个例子,然后你们可以开启问答模式,在问用户问题时,用户在回答的过程中,可以适当打断用户,可以让用户回答的更详细点,提出疑问或者重复客户的回答,确认一遍。在进行访谈的时候,把自己当作在回答的用户,可以帮助自己理解用户的回答。不能层面的用户的访谈,收到的结果也是不同的,专业的与非专业的,都是可以得到不同的答案,得以补充。
  4. 同类产品分析法:如果你要做的系统,跟市场上已有的某些系统类似,你是继承与发展的话,你可以分析同类产品,找出他们的缺点与弱势,而你作为使用的用户,你希望得到怎样的发展与改变,这一点大概就是用户的需求。如果你能分析出不同的产品发展方向,不同的竞争方向,不同的定位,不同的功能,这样未尝不可,毕竟有一点创新也是创新。
  5. 大数据分析法:说实在的,大数据分析更是一门学问了,具体的本人也不太清楚。只能说说大数据分析是近几年比较火爆的产物,我们的搜索记录,被很多商家用于分析,通过分析,他们来向我们推荐物品,文章等。虽然感觉隐私被侵犯了,但是不得不说,你的日常搜索行为,确实一定意义上体现了你的需求。以这种数据分析,也客观体现了你的需求,这往往与你平常接触的,与你正在学习工作的,内心渴望的相关。数据挖掘与数据分析,只要运用到位,某一定意义上来说,比本人提出的需求可能更加准确,只要数据不做假。
    以上的需求获取,基本都是争对用户的体验感,喜欢感而开展的。但是系统的需求不仅仅只有用户表面的感受,为了这表面的用户感受,制作方往往还需要满足系统的硬件要求,比如以上提到的系统并发性,吞吐量,资源利用率,还有系统的安全性等。这种系统需求,往往没必要要求要做得很出色,只需要满足标准,满足需要的需求就行。比如淘宝双十一的时候,淘宝的并发性等就要很好,很出色才可以满足用户的需求,而没有这么大用户群体的你,系统需求上就不用做得像淘宝一样了。

综述:软件工程中,系统的需求分析是至关重要的一个核心环节,不管你是自顶向下还是自下而上,需求最终是需要明确,清晰,完整的,这样你的产品的定位才会准确,目标才会明确,才可能带来经济效益。制作一个系统如果不是为了公益,一般最终都是为了带来经济效益,如果你不明白自己产品的优势,又怎么去和别的产品竞争,又怎么可能带来经济效益。

注:以上需求的类型言论有参考中国大学MOOC(慕课)北京大学软件工程的公开课。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chrisyyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值