软件工程coursera第三课__软件需求



(一)需求的作用

我们平时用的软件究竟有什么作用呢?
1、起到了控制作用,如遥控系统
2、集成其他的软件硬件,形成一个综合性的系统,起到耦合作用
3、实现该软件本身具有的功能
认识软件的这样一个作用,以及怎么去捕获软件的这样一个需求呢?
所谓系统工程,是指从一定的问题 来出发,希望呢给出,分析出它诸多的解决方案,最终给出最优解。 也就是说,最优化是系统工程追求的一个目标,这是与我们软件工程中相当于 最大的这样的一个区别

软件工程coursera第三课__软件需求_第1张图片

软件工程coursera第三课__软件需求_第2张图片

注:所以说第一步是要研究这个软件所处于的系统环境。 第二点看一下 这样的软件需求,又可以如何去对它进行进一步的细化。


自顶向下开发:
类似瀑布模型,先需求,再分析设计,再编码、测试、维护等,按照这一套流程走下来

自底向上开发:
先考虑可以复用哪些成熟的软件构件,根据构件能提供的功能, 往上去堆积。最终把新开发出来的软件单元,跟已有可复用的软件构件集成在一起, 构成满足目标软件系统。

总之,需求很重要,它是指方向的,如果方向都错了,做的任何努力都白费



(二)需求的定义

描述了待开发产品或者系统功能上的能力性能参数或其他的性质。
不光是功能的描述

软件工程coursera第三课__软件需求_第3张图片
具备这些性质才能称得上是需求

所以说,并不是看到一段话的描述它就是作为需求。要从这几点来检验,看符不符合这个五个性质。



(三)需求的分类
软件工程coursera第三课__软件需求_第4张图片

其中,功能需求是主体,其他几个都是非功能需求

功能:

软件工程coursera第三课__软件需求_第5张图片

性能需求:
软件工程coursera第三课__软件需求_第6张图片

如:并发响应数
外部接口需求:
软件工程coursera第三课__软件需求_第7张图片

如:第三方插件

可以理解为,交互数据时,数据的参数个数和类型要与接口相符合

设计约束:

软件工程coursera第三课__软件需求_第8张图片
涉及约束举例

如:运行平台
质量属性:
质量属性规定了软件产品必须具有的一个 性质是否达到质量方面一个所期望的水平

软件工程coursera第三课__软件需求_第9张图片


(四)需求的发现

自悟:

自悟 是指把自己作为系统的最终用户,来审视这个系统并提出问题。

一般情况下你就要把自己放在一个用户的角度去考虑问题,如果我是这样一个用户, 那么我借鉴于以前使用过的经验以及我能查询的一些资料,想象这样的一个系统应该提供什么样的功能?

它适用的条件是指需求工程师不能直接与用户进行交流的情况

交谈:
能很好地提出问题
如果直接问客户 "你想要什么",客户可能会漫无天际地告诉你 说 "我想要什么,想要什么,想要什么"。 这就要求,要做一些相关领域的知识储备,可以给用户一些选择,叫用户选择,而不是让用户漫无边际地回答。

观察:

小组会:

提炼:
已经有了些可复用的文档,比如说有关需求的陈述,功能和性能目标的陈述(可能来自于其他类似的项目, 也可能来自其他地方),那么这个时候就可以采用提炼的方式 来从可复用的这样的一些技术文档里面 来针对已有的部分需求文档来提取出需要的东西。

总之,上述技巧要综合、灵活地运用。



你可能感兴趣的:(软件工程coursera第三课__软件需求)