构建之法阅读笔记04

  软件是以人为本的,我们软件工程专业除了编程之外,更多的就是与人打交道。在我们反复锤炼自身的编程素养的同时,我们也应当注意与人的沟通交流。老师常说,一个软件的好坏,并不完全取决于功能的多少,很大程度上也取决于能否解决客户的需求,能让客户满意的软件才是好的软件。
  为了做好一个软件,为了更好的解决客户的麻烦,更好的帮助客户,我们便需要很好的去了解客户的需求,需要我们做好软件的需求分析。人们的需求五花八门,那么在我们做软件的同时,又该如何去准确而全面地做好软件的需求分析呢?在通过软件的发展当中,前人也总结出了以下几点建议:
1、获取和引导需求。

2、分析和定义需求。

3、验证需求。

4、在软件产品的生命周期中管理需求。
  而在各种各样的软件需求当中,也可以从不同的角度做一些不同的划分:
1、对产品功能性的需求。

2、对产品开发过程的需求。

3、非功能性需求。

4、综合需求。
  只有经过长时间的锤炼,我们才能更好的完成对于软件需求的分析。在软件需求分析的过程当中,我们的前辈也为我们总结出了相应的需求分析模型,比如说最为广泛使用的NABCD模型。
1、N (Need 需求)

2、A (Approach 做法)

3、B (Benefit 好处)

4、C (Competitors 竞争)

5、D(Delivery 推广)
  在以往的软件开发过程中,我们更多地只是参与编程,并没有很好地参与到软件需求分析的过程当中。说白了就是只知道编程,完全没有理会任何的需求分析,或许在学校当中,在我们完成老师布置的做业当中不会出现什么太大的问题,但在我们跨入社会工作的时候,肯定会因此而尝到苦头。我们必须在学校期间作出改变,对于各种知识予以借鉴,加强自我的各方面素养,努力提升自己各方面的能力。
  在我们进行软件需求分析的时候,我们都知道要为用户考虑,但是用户又在哪里呢?所以我们还要注意对于典型用户的分析和用户场景的分析。典型用户和场景也是我们在学习过程当中必须要注意的一方面。在书本中也有相关的信息与模板,我们应当以此来学习和锻炼相应的能力。
  我们时常提到,软件行业不仅注重个人的编程素养,更加注重团队。当我们处于一个团队当中,只有充分发挥团队的巨大作用和优势,才能更好的作出优秀的成绩。在团队当中,我们必须明确分工,精诚合作,了解团队角色的作用,才能更好的发挥出团队的优势。

原文地址:https://www.cnblogs.com/crazy-soul/p/5566150.html