需求工程之什么是需求?

课外作业:昨天有几个在线学习平台宕机了。大家试着从需求工程角度分析一下原因在哪?如何解决?

软件的分类:
  • 系统软件
    • 操作系统软件(如:Win7)
    • 开发环境软件(如:visual studio)
  • 应用软件(如:qq)
  • 中间件:一类连接软件组件和应用的计算机软件,包括一组服务。
什么是软件工程?

应用系统的、规范的、可量化的方法来开发、运行、维护软件,即将工程应用到软件。

在软件开发之初,就应该进行需求开发,从空白开始,主要的目的是建立系统的解决方案。

软件工程的几个阶段:
  • 项目计划
  • 需求分析
  • 系统设计
  • 编码
  • 测试
  • 发布和维护
什么是需求?

(1) 用户为了解决问题或者达到某些目标所需要的条件和能力
(2) 系统或者系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力
(3) 对上面的两个任一个的文档表述就为需求
例如
客户要求:我要一只羊。
客户要求不明确,此时,我们应该实时询问客户:什么时间、地点要这只羊,为什么要这只羊?用这只羊做什么?处理这只羊的过程是什么。
通过需求分析,我们再决定,客户需要的是宠物羊、玩具羊、羊肉、还是商标羊。

注意:
需求除了客户提出的要求,还有用户的潜在要求。

用户需求不明确,可能会导致软件危机。

软件危机:

指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机可能出现的问题:

  • 开发成本超出预算
  • 用户对现有的系统或软件不满意
  • 软件产品的质量靠不住
  • 软件的可维护程度非常低
  • 软件没有适当的文档资料
  • 软件成本不断提高
  • 软件开发生产率的提高赶不上硬件的发展和人们需求的增长
用户需求不明确的几个可能方面:

(1) 用户自己不明确自己需要什么
(2) 软件开发人员对用户需求描述的理解有偏差
所以在软件开发前期,要做好充足的需求分析,找用户确认需求文档,然后才能保证软件开发的正确性。

需求最重要的特点是:
  • 完整性
  • 正确性
  • 一致性
需求工程的特性:
  • 必要性
  • 重要性
  • 复杂性
需求工程的基本活动:
  • 需求开发
    • 需求获取
    • 需求分析
    • 需求规格说明
    • 需求验证
  • 需求管理

课后作业:昨天有几个在线学习平台宕机了。大家试着从需求工程角度分析一下原因在哪?如何解决?
场景:为了减少人群聚集,预防疾病传播,各大学校都采用线上教学,所以需求就产生了。
需求:可以提供老师授课、学生听课的线上交互平台。
对于平台的要求:
功能性需求
(1) 业务需求
YW1:实现线上授课、听课系统
(2) 用户需求
UR1:老师可以实现以下操作:电脑屏幕共享、使用视频、音频、点名、发起签到、发起讨论、答疑群、观看视频等。
UR2:学生可以实现以下操作:观看直播、签到、进入答疑群、使用视频、音频、观看视频等。
UR3:用户可以进行注册和登录(分为教师端和学生端)、修改用户名和详细信息等。
(3) 系统需求
上课登录系统,进入直播,用户操作,退出系统。
非功能性需求
(1) 性能需求
PR1:200人同时登录平台,进入课堂,响应时间尽量短
PR2:200人同时登录上课,基本功能模块响应时间不能太长,保持系统稳定。
(2) 质量属性
QR1:要求视频流畅
QR2:要求音频清晰
QR3:互动实时性刷新,延迟不能超过1秒
QR4:后期维护要简单,减少模块之间的耦合性,方便后期维护
(3) 对外接口
IR1:安卓,mac系统
IR2:PC端、客户端、网页等都可以。
(4) 约束
在线学习平台宕机的原因分析
(1) 需求分析不足:软件设计之前的需求分析没有预料到这种大型的线上授课情况
(2) 设备缺陷:同时登录人数过多,服务器响应超时,或者说服务器无法承受如此大的流量
(3) 同时登录人数过多:太多的学校同时开学,导致平台宕机。

发布了26 篇原创文章 · 获赞 2 · 访问量 780

猜你喜欢

转载自blog.csdn.net/id__39/article/details/104625017
今日推荐