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

  • 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软件过程模型

    • 软件过程模型

      • 瀑布模型
        将基本的开发活动看成是一系列界限分明的独立阶段,这是—种计划驱动的软件过程,有利于规范软件开发活动。活动线性方式顺序执行

        • 特点
          活动自上而下次序固定,当前活动接受上一项活动的完成结果
          用户只有在整个过程结束时才能看到开发结果(导致开发过程中间难以相应用户的变更需求)
        • 适用场合
          建适用于软件需求在开发初期就可以被完整确定的软件项目,而且用户使用的环境也很稳定
      • 原型化模型
        原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。

        • 特点
          初步实现产品的一部分,可以帮助开发人员评价和分析不同方案的实现效果
          原型化开发可以是可操作的软件界面,也可以是纸上原型
        • 适用场合
          需求不确定时
      • 迭代式开发
        将描述、开发和验证等不同活动交织在一起,在开发过程中建立一系列版本,将系统一部分一部分地逐步交付。

        • 特点
          逐步交付,缩短开发周期,更好地获得用户对产品的反馈,
          ​可以更快速的发布产品,可以快速响应客户的需求变化
        • 迭代式开发的两种形式

          • 增量模型
            增量模型: 在每一个新的发布中逐步增加功能直到构造全部功能。
          • 迭代模型
            迭代模型: 一开始提交一个完整系统,在后续发布中补充完善各子系统功能。
          • 适用场合
            开发周期短,需求不确定性高,需求变化可能性大
      • 可转换模型
        利用自动化的手段,通过一系列转换将需求规格说明转化为一个可交付使用的系统。

        • 特点
          由于数学方法具有严密性和准确性,形式化方法所交付的系统具有较少的缺陷和较高的安全性。
        • 适用场合
          特别适合于那些对安全性、可靠性和保密性要求极高的软件系统,这些系统需要在投入运行前进行验证。

软件开发过程与需求获取相关推荐

  1. 软件需求管理(二) 需求获取

    一. 需求获取概述 1.1相关概述 软件需求获取是软件工程的主体. 主要表现为: 发现问题->分析问题->解决问题 的过程. 需求获取阶段主要产生的文档:1.前景和范围文档 2.用例说明文 ...

  2. 实验四 基于原型的软件需求获取

    实验四 基于原型的软件需求获取 Deadline:2018-4-18 10:00,以博客发表日期为准 评分标准: 按时交 - 有分(满分15分,博客),检查项目包括: 此次作业为结对项目,单干户不得分 ...

  3. 论软件需求获取技术及应用

      声明:本文为本人在软考系统架构设计师备考期间的练手写作,不保证内容的原创性与正确性,仅供参考,请勿照抄和用于学术论文等正规场合,因不当使用产生后果一律自负. 摘要   2019年3月,我单位联合某 ...

  4. 在统一软件开发过程中使用UML

    如何在统一软件开发过程中使用UML? 起始阶段常用UML图 在起始阶段,通常有用例图.类图.活动图.顺序图等UML图的参与. 获取用户需求之后首先要将这些需求转化为系统的顶层用例图. 在确定了用例之后 ...

  5. 软件工程和软件开发过程

    Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发.运行和维护这些程序所必需的相关文件资料. IEEE:软件工程是开发.运行.维护和修复软件的系统方法. Fritz Bauer:建立并使用 ...

  6. 软件开发过程包括哪几个阶段?

    Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发.运行和维护这些程序所必需的相关文件资料. IEEE:软件工程是开发.运行.维护和修复软件的系统方法. Fritz Bauer:建立并使用 ...

  7. 软件开发过程与项目管理(14.项目核心计划执行控制)

    软件开发过程与项目管理(14.项目核心计划执行控制) 范围计划执行控制 范围核实 变更控制 进度与成本执行控制 图解控制法 挣值分析法(重点) 挣值分析法- 输入 BCWS-Budgeted Cost ...

  8. 论软件开发过程RUP及其应用

    RUP (Rational Unified Process)是IBM公司一款软件开发过程产品,它提出了一整套以UML为基础的开发准则,用以指导软件开发人员以UML为基础进行软件开发.RUP汲取了各种面 ...

  9. 软件开发过程(实习体会)

    在实习当中认我认识到开发一项好的软件不是某一个人就能完成的任务.一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的就好办法.俗话说得好:"不怕虎一样的敌人,就怕猪一样的队伍" ...

  10. 第二章 - 软件开发过程

    软件生命周期与开发过程 软件开发过程(software development process)又叫做软件开发生命周期(software development life cycle, SDLC),是 ...

最新文章

  1. 使用NetworkX绘制深度神经网络结构图(Python)
  2. PHP中Session的使用
  3. 面向对象原则之GOF是招式,九大原则才是精髓
  4. MySQL 5.7 深度解析: 半同步复制技术
  5. 华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...
  6. 选择大于努力!0基础学好C语言编程,首先要掌握的是什么?
  7. 【转】oracle 和 ' 特殊字符处理 ( like 'GAC/_%' escape ''; 这里面的 / 居然将 转义了 为什么?)...
  8. 阿里终面:如何设计一个高性能网关?
  9. 接口规范 12. 自动删除相关接口
  10. 大一软件工程C语言推荐书籍,大一软件工程学生,看完了谭浩强的书,越看越迷茫,感觉并没什么用,什么大程序都不会编,求指点?...
  11. 书籍翻译 - Fundamentals of Computer Graphics, Fourth Edition 虎书第四版中文翻译
  12. STR鉴定原理、流程已经报告数据解读指南
  13. mysql ctrl+y_mysql操作
  14. css margin为什么重叠,CSS 外边距(margin)重叠及防止方法
  15. 公有云 私有云及架构
  16. 计算机基础知识英文,计算机基础知识英文版-基础并不好,在电脑上学英语,什么软件最好用? 爱问知识人...
  17. 求出1-n之间的素数(质数)
  18. 使用密钥登录到ssh服务器
  19. yahoo(雅虎)工程师提供css 初始化代码
  20. win10电脑显示 “您的账户已被停用。请向系统管理员咨询”,如何启动账号?

热门文章

  1. bochs镜像java模拟器_bochs镜像下载
  2. 全国计算机等级考试二级Web程序设计考试大纲(2018年版)
  3. 软媒时间3.11正式版发布:天气信息获取更迅速
  4. 1080 MOOC期终成绩
  5. python生成三对角矩阵_块三对角矩阵python
  6. 三对角矩阵的存储和获取(C++版)
  7. java学习(分布式架构)
  8. graphpad做折线图_Graphpad Prism搞定折线和曲线图,so easy!
  9. 短视频APP系统源码 直播系统源码
  10. Java8新特性Stream流、Stream多字段排序