05《构建之法》阅读笔记
在软件工程领域中,所谓需求分析,就是去确定计算机去“做什么”,
在软件工程中,需求分析包括功能需求、性能需求、可靠性和可用性需求、错误处理需求、接口需求及其他需求等等方面。
对产品功能性的需求要求产品必须实现某些功能。例如,学校的选课软件只允许有学生身份的用户浏览并选择课程,同时要求学生选择某一门课时必须要满足“先修课”的要求,等等
对产品开发过程的需求要求软件的开发流程必须满足某些约束条件,例如,开发过程必须产生某种类型的文档,必须在某个时间点达到某个状态,必须对源代码施以某种约束(安全性核查、代码版权核查、代码规范和支持文档的核查)
非功能性需求这也叫“服务质量需求”。例如,股票交易系统必须在一定时间内返回用户查询结果(它对时间的要求要比“科技文献检索”网站要高),火车票购票系统、大学选课软件必须能支持一定数量的用户同时访问,等等
需求分析是一个面向用户的过程,需要根据用户的要求去确定相关产品所能实现的功能。但在现实世界中往往存在着诸多困难,首先从软件开发人员的角度,他们并不是十分了解用户自己所处的工作环境和心理需求,与用户直接交流不然存在隔阂。其次从用户的角度来说,用户对于计算机应用也不是十分了解,只能粗略的给出自己的需求,具体能不能实现还是看开发人员的技术水平。
作为软件,最大的目的不是考验“软件工程”,而是“用户至上”的使用性好坏。所以多了解一些“用户之法”多有裨益。