软件开发过程与需求获取

  • 为学堂在线清华大学《软件工程》部分视频笔记

  • 8.1需求工程师

    • 需求分析是软件工程中的重要步骤,是决定软件醒目成败的关键影响因素之一。因此,需求工程成为软件工程和系统工程重要的分支领域之一。在需求工程中,我们主要关注的事软件和系统需求的获取、建模、分析、验证和管理。
    • 应具备的能力
      l.分析问题和解决问题的能力
      2.人际沟通及交流能力
      3.软件工程知识和技能
      4.应用领域有关知识
      5.书面语言组织和表达能力
    • 优秀需求工程师的目标
      1.识别错误假设
      2.确保一致性
      ​3.提升依从性
      ​4.减少彼此误解
      5.提高支持速度和效率
      6.提升客户满意度
      ​7.撰写优质需求文档
  • 8.2需求定义

    • 定义
      • 定义1
        “需求”是对外可见的系统特征。
        ​“需求管理”有三项任务:
        | 学习——需求获取
        | 剪枝——需求优选
        | 文档化——撰写需求规格说明书
      • 定义2
        需求,是人们要解决的某个问题或达到某种目的的需要。是系统或其组成部分为满足某种书面规定(合同,标准,规范等)所要具备的能力。需求将作为系统开发,测试,验收,提交的正式文档依据。—IEEE 6l0.l2.1990
      • 定义3
        每一个“人造物”都是一个内部环境与外部环境的“接口”。这里内部环境指人造物本身的设计组成。外部环境指人造物的周遭及其作用环境。对这个接口的描述既是需求。
        —— Herbert Simon. 1969
    • 需求应涵盖的内容
       为什么要设计该系统
      ·​系统由谁使用
      ·系统要做什么
      ​·系统涉及哪些信息
      ·对解决方案有何额外限制
      ​·如何使用该系统
      ·质量需要达到何种程度 
    • 需求规约
      好的需求是可以度量的,能给出项目成功的必要条件
      单个需求项的质量
      ​1.准确
      ​2.正确
      3.明确
      ​4.可行
      5.可证
      ​整个需求集合的质量
      ​1.现实
      ​2.精确
      ​3.全面
  • 8.7撰写需求文档

    • 需求规格说明用户
      客户和终端用户——提供需求,并保证其满足用户需要
      市场人员和销售——根据客户要求定义有竞争力的产品特征管理产品发布
      产品开发人员——通过需求了解系统要做什么并且开发系统
      测试人员——参照需求进行系统验证,通过测试和用户征询的方式
      项目管理人员——需要参照需球规格说那分,补充本地运行所需的特性
    • 高质量需求规格说明
      一个高质量的需求规格说明是
      1.​所有需求的集合
      2.描述产品要提供的所有功能
      3.是软件系统解决方案的商业合同的基础
      ​4.是测试计划的基础
      5.定义产品需求的度量标准
      ​6.是产品需求跟踪的先决条件
      7.​影响开发产品的项目计划
    • 高质量需求规格说明的评价标准
      1.正确性=经过验证的
      2.​无歧义
      3.完整的
      4.可测试=可以证明的可修改的
      5.可跟踪的
      6.易理解
      7.一致的
      ​8.有序的
      9.项目或产品特定的其他特征
    • 需求文档的组织形式
      文档需要有逻辑组织结构
      ​· 例如:参照IEEE的模板
      ​典型的组织形式包括
      · 按系统能够响应的各种外部环境情况组织
      ​· 按系统特征来组织
      · 按系统的响应方式来组织
      · 按所管理的外部数据对象来组织
      ​ ·按用户类型来组织
      · 按软件的工作模式来组织
      ​ ·按子系统的划分来组织
    • IEEE-80 SRS模板大纲(软件需求文档的框架)
      ·介绍
      ​·术语表
      ·用户需求规格说明
      ​·系统结构
      ·系统需求规格说明
      ​·系统模型
      ·系统的演化·附录
      ·索引
    • SRS模板的优缺点
      优点
      1.模板提高效率
      2.在有模板的情况下,面对一个完整的大纲,不容易遗漏重要的信息
      缺点
      1.并非对于所有的系统,模板的章节设计都是类似的
      2.如果仅仅为了满足标准,而填写模板的所有章节,在不相关的章节,会加入一些没有意义的内容
      3.读者很难将这些无意义的文字和真正的需求分开
    • 软件需求规格说明SRS的风格(获取需求的主要途径)


      须根据实际选择合适的需求规格说明方式
      • 描述性的自然语言文本
        用户故事
      • 从用例模型产生
        用例模型与需求转化可看成可逆的过程·如果需求模型以用例的形式表示,我们可以逆向生成需求的完整集合
      • 从需求数据库中生成
        ·商业需求数据库有内置的功能来生成经过筛选的需求规格说明
        ·从产品线需求规格数据库中生成特定产品的需求规格说明
      • 从混合模型中生成
        ·特征模型和用例模型
  • 4.1软件过程

    • 过程的含义


      过程是一组将输入转化为输出的相互关联或相互作用的活动。
    • 过程方法


      过程方法是系统地识别和管理组织内所使用的过程,保证更有效地获得期望的结果。
    • 软件过程


      软件维护:
      系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。
      ​软件开发过程是为了获得高质量软件,而实施的一系列活动。
      • 需求开发
        需求开发 : 在可行性研究之后,分析、整理和提炼所收集到的用户需求,建立完整的需求分析模型,编写软件需求规格说明。
      • 软件设计
        软件设计 ∶ 根据需求规格说明,确定软件体系结构,进一步设计每个系统部件的实现算法、数据结构及其接口等。
      • 软件构造
        软件构造︰概括地说是将软件设计转换成程序代码,这是一个复杂而迭代的过程,要求根据设计模型进行程序设计以及正确而高效地编写和测试代码。
      • 软件维护
        软件维护 : 系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。
    • 软件项目管理


      软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本.人员、进度、质量和风险进行控制和管理的活动。
    • 软件配置管理


      软件配置管理是通过执行版本控制、变更控制的规程,并且使用合适的配置管理软件,来保证所有产品配置项的完整性和可跟踪性。
  • 4.2软件过程模型

    • 软件过程模型
      • 瀑布模型
        将基本的开发活动看成是一系列界限分明的独立阶段,这是—种计划驱动的软件过程,有利于规范软件开发活动。活动线性方式顺序执行
        • 特点
          活动自上而下次序固定,当前活动接受上一项活动的完成结果
          用户只有在整个过程结束时才能看到开发结果(导致开发过程中间难以相应用户的变更需求)
        • 适用场合
          建适用于软件需求在开发初期就可以被完整确定的软件项目,而且用户使用的环境也很稳定
      • 原型化模型
        原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。
        • 特点
          初步实现产品的一部分,可以帮助开发人员评价和分析不同方案的实现效果
          原型化开发可以是可操作的软件界面,也可以是纸上原型
        • 适用场合
          需求不确定时
      • 迭代式开发
        将描述、开发和验证等不同活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分地逐步交付。
        • 特点
          逐步交付,缩短开发周期,更好地获得用户对产品的反馈,
          ​可以更快速的发布产品,可以快速响应客户的需求变化
        • 迭代式开发的两种形式
          • 增量模型
            增量模型: 在每一个新的发布中逐步增加功能直到构造全部功能。
          • 迭代模型
            迭代模型: 一开始提交一个完整系统,在后续发布中补充完善各子系统功能。
          • 适用场合
            开发周期短,需求不确定性高,需求变化可能性大
      • 可转换模型
        利用自动化的手段,通过一系列转换将需求规格说明转化为一个可交付使用的系统。
        • 特点
          由于数学方法具有严密性和准确性,形式化方法所交付的系统具有较少的缺陷和较高的安全性。
        • 适用场合
          特别适合于那些对安全性、可靠性和保密性要求极高的软件系统,这些系统需要在投入运行前进行验证。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值