当前课程知识点:软件工程 >  第7章 需求获取 >  7.3 需求的类型 >  讲课视频

返回《软件工程》慕课在线视频课程列表

讲课视频在线视频

下一节:讲课视频(2)

返回《软件工程》慕课在线视频列表

讲课视频课程教案、知识点、字幕

下面给大家介绍一下

软件需求的分类

软件需求的分类

可以从多个维度上进行

它们可以彼此交叉

首先 按照软件需求

修饰的对象的不同

可以将其分为

软件产品的需求

和软件过程的需求

产品需求主要约束的是

软件产品 软件制品本身的属性

而软件过程需求

则是修饰或者限制

软件开发过程的要求

产品需求又可以细分为

功能性需求和非功能性需求

功能性需求

指代软件产品的功能特性

而非功能性需求

则是软件产品的质量属性

是在功能性需求满足的情况下

的进一步的要求

按照软件需求面向对象的不同

以及其抽象层次

和详细程度的不同

又可以将需求分为

业务需求 用户需求 系统需求

和软件设计规约

其中业务需求主要是针对

业务部门的分析人员的

用户需求针对客户方 承包方

的管理人员

最终用户 客户工程师

和系统架构师

系统需求则是由最终用户

客户工程师 系统架构师

和承包方的程序员来关注的

软件系统的设计规约

则是由客户工程师参考

系统架构师和承包方的程序员

重点关注的

企业的业务需求

是指那些其达成

会影响企业完成

组织目标的需求项

企业业务需求

是关于业务的陈述

和需求如何被实现无关

无论是人工手动完成

还是通过系统完成

并不影响企业的业务需求

有时我们也把业务需求

称为业务目标

例如携程旅行这个公司

它的业务需求是销售飞机票

公司的目标是成为

当人们想买飞机票时

首先想到的公司

这是对一个企业的

业务需求的陈述

系统需求的满足

使得系统实现了预期的功能

它从用户的角度

描述系统做什么

而与系统由

什么样的软硬件实现是无关的

一个企业选择实现

某个软件系统的首要条件

就是该系统需求

应该是满足组织的业务需求的

下面给出了三条描述

第一条 卖票系统

需要和用户数据库交互

第二条 新的软件

会使汽车的启动速度加倍

第三条

我们新产品制造的低成本

将会让我们有更高的市场份额

并满足销售目标

在这三条需求中

其实我们可以看到

对预期功能进行定义的

只有其中的第二条

就是它是一个启动加速的软件

而第一条

它只是说明了

卖票系统它要和用户数据库

交互这个事实

那么它实际上是一种

设计的约束

而第三条

我们新产品制造的低成本

这件事情

实际上在说 低成本它是一个

对过程的一个约束

而并没有说出产品的一个功能

是什么

所以它不隶属于系统需求的范围

在一个软硬件结合系统中

软件需求是指关于系统中

软件部分的需求

它的满足将有助于

实现整体的系统需求

这里给出了三个

围绕软件的需求的描述的实例

一 订票系统软件通过标准的

网络服务接口和航班信息交互

这是在说明订票系统软件

与外部的其它系统之间

的交互方式

是通过网络服务接口

因此 它既是一个软件需求

也是一个关于接口的一个描述

第二条 用户接口需要设置关于

用户偏好的颜色和字体大小

这也是一个软件系统的功能

就是要设置用户偏好的

颜色和字体大小

而同时

它又是一种增强用户体验的

一条软件需求

是关于质量和非功能性属性的

而第三条

系统的API需要同时支持

C++和Java

来让程序员访问系统服务

那这就意味着

这是一条软件系统的设计约束

是对编程语言的要求

系统的用户需求

是指其满足程度会影响系统的

用户接受程度的需求

有时候我们也把用户需求

称为“用户接口需求”

例如 一个订票系统的用户接口

需要提供和系统交互的选项

或者通过控制命令

或者通过WIMP接口

客户希望

照相机背后有一个液晶屏幕

这样在拍照之后

可以马上看到照片

这些都是关于用户接口的描述

属于用户需求的范畴

系统的功能性需求

是指满足系统需求时

需要提供的功能

有时候功能需求

也被称为行为需求

对一个订票系统来说

两个可能的功能性需求包括

需要提供一个在任何航班上

预留座位的功能

和一个通过信用卡付费的功能

非功能性需求

它定义的是软件系统

及软件开发过程中

为满足系统的功能需求

而要满足的其它的约束条件

具体细分为

质量相关的需求

依从性需求

体系结构约束

和设计开发约束等

质量需求

描述软件系统正常工作时

需要满足的额外的

与质量相关的要求

在软件工程文献中

也称之为“质量属性”

它所应答的是关于

“提供的服务好到何种程度”

的问题

例如 在订票系统中

我们要求用户界面

要保证用户从选择出发站

到终到站的过程

不能超过四次按键

这个是一个关于用户友好性的

一条需求

订票系统的订票请求

响应时间要小于1分钟

这是一个关于

订票系统的响应时间

也就是性能的要求

图书馆的黑名单

应随时响应馆员的查询操作

这是一个对图书馆的

黑名单的可用性问题的一个需求

列车的加速控制软件

平均无故障时间是10的九次方

小时

这是对系统可靠性的一个要求

依从性需求着重描述

软件对国家法律 国际公约

社交法则 文化与政治习惯

环境标准等约束条件的满足

例如

在列车控制系统中

我们要求两列火车间的

最小间距

应满足

国际铁路运输安全规范中的

最坏情况下的停车距离

在会议调度系统中缺省情况下

我们要排除会议所在地的

地区的公众假期

这些依从性的需求往往是

一个系统它所处的经济

政治上下文要求的一些限制

它的满足是系统正常运行

或者合法运行的一个客观标准

体系结构设计需求

定义的是系统环境

对待设计系统在结构上的

约束和限制

这里主要是从两个方面

首先是分布式的约束

它要求软件系统的组件

满足由于目标组织在地理上的

自然分布而导致的对系统设备

节点的分布要求

以及数据的分布式存储

与处理的要求

比如说 在会议调度系统中

它应该与分布在世界各地的

参会者的邮件服务系统

和电子日程管理系统协同工作

它是由于组织机构本身

以及其外部相关系统

本身的分布的属性导致的

另外一类就是安装约束

它要求的是软件系统能够

在目标的运行环境下

正常的执行

比如

会议调度系统

要在微软的Window8

和Mac OS10.10的版本上

成功运行

设计开发约束

是对软件系统设计过程的约束

具体包括

从开发成本 开发时间周期

产品特征的变化性

可维护性 可重用性

可移植性等方面的约束

例如

清华大学图书馆

门户系统的开发成本

不应高于200万

是对一个项目开发成本的约束

动车控制软件

应在两年内投入使用

这是对开发时间周期的约束

会议日程安排系统

应根据会议的类型

动态调整会议安排的调度策略

具体的它的变化性包括

对专业会议和内部会议

它的策略应该是不同的

对固定会址

和轮换会址的会议类型

它的调度策略也是不同的

对参会人员的重要程度

是相同级别还是不同级别

也应该可以动态的设置

所以这个是对产品的变化性

以及适应性的一个约束

这些都隶属于

软件的设计开发约束

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

讲课视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。