软需课堂笔记

本文介绍了软件开发中的挑战和项目成功的要素,强调了需求工程的重要性。内容涵盖面向对象和结构化方法,以及如何进行有效的需求分析。面向对象方法的优势在于可修改性和复用性,而需求分析的核心在于将定性非功能性需求转化为定量指标。此外,文中还提及了业务知识、沟通能力和场景法在做好需求分析中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软需

210911

  • 推荐阅读 人月神话
  • 软件开发是焦油坑,能力越大,责任越大,风险越大,同理困难越大,说明你能力越大
  • 现在是最好的时代,技术在发展,也是最不好的时代,焦油坑仍然存在,且越来越严重
  • 我们遇到的所有的问题,只能解决自身的问题,不能解决别人的问题,我们要想自身怎么改善从而让事情得到改善,需求分析就是解决自己的问题,让自己开心一点
  • 成功的项目和项目的成功不是一个含义
    • 项目三要素:时间、成本、质量,三角形,面积是项目的范围,面积不变,若要一种要素变高,其他要素也要变
    • 成功的项目是项目可以使用
    • 项目的成功是在规定的时间内,在规定的成本要求下,达到或超过项目利益干系人(用户)的要求
  • 应用软件开发的战略性技术,项目成功的必要条件
    • 需求工程:这门课介绍的内容
    • 项目管理
    • 软件架构
  • 软件工程就是通过工程化的方法去做软件,工程化是总结出来的,用什么样的工具,什么样的方法,什么样的过程,什么样的组织去做软件,去干活
  • 大学:分析问题解决问题的方法,学习的方法,沟通的方法,自我调节的能力
  • 软件需求分析与设计要研究用什么样的方法去分析,用什么样的技术去设计,需求分析和设计要做到什么程度
    • 不做会有什么问题
    • 做要做到什么程度
  • 软件开发的主流方法主要有两个:
    • 面向对象的方法
      • 核心是按照对象或概念来进行分解
      • 软件行业有几个通用核心能力:抽象能力,分解能力,逻辑思维能力
    • 结构化的方法
      • 按照功能和过程分解
  • 这门课用面向对象方法讲解
  • 代码是可增加不可修改的,代码不是编坏的是改坏的
  • 用面向对象语言编写但没有面向对象思维,仍然是结构化代码
  • 面向对象的好处:可修改、可复用、灵活性
  • 实例:赤壁之战
  • 实例:五子棋
    • 结构化:开始游戏、黑子先行、绘制画面、判断输赢、轮到白子、绘制画面…
    • 面向对象:棋子、棋盘、输赢系统
    • 如果要改成围棋、象棋,要改的就是输赢逻辑或棋子棋盘的样式

210912

  • 利益干系人,希望项目成功/失败的人,政府
  • 摘录process model,在课件中,是一个通用模型
  • A process model:
    • states an order for carrying out activities;
    • specifies what development artifacts are to be delivered and when;
    • assigns activities and artifacts to developers;
    • offers criteria for monitoring a project’s progress, for measuring the outcomes, and for planning future projects
  • ISO9000核心
    • if the processis right then the process outcome (product or service) will also be right
  • uml入门
  • SWOT方法
  • 把需求分析做好两个基本能力:
    • 业务/领域知识,在一个领域浸润
    • 沟通能力
  • 什么是需求:谁(主体)需要什么样的(形式)东西(内容)。
    • 主体就是用软件的最终用户,谁提出来的不一定就是谁用,明确最终用户才能谈友好性和易用性
    • 需求是产品必须完成的事(功能性需求)以及必须具备的品质(非功能性需求,即约束,一般是对性能、安全性、扩展性、灵活性等的要求)
    • 定性的非功能性需求都要转化成定量的,如很快–>3s内
    • 可利用场景法,即用具体的场景来衡量,在什么样的场景下达到什么样的要求
    • 非功能性需求更重要!如何将定性的内容定量化是需求分析的关键!!!
  • 需求的层次
    • 业务需求(目标需求)
      • 反映了组织机构或客户对系统、产品高层次的目标要求
    • 用户需求
      • 描述了用户使用产品必须要完成的任务
    • 功能需求(非功能性需求)
      • 定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求
    • 设计需求
      • 指实现的具体细节
  • 需求分析就是从业务需求、用户需求分析得到功能需求、设计需求的过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值