系统分析与设计 01

Assignment 01

1 简单题

  • 软件工程定义

    • IEEE[IEE93] 的定义

      1. 将系统化、规范化、可度量的 方法应用与软件的开发、运行和维护的过程, 即将工程化应用于软件中。
      2. 对(1)中所述方法的研究。
    • 其他定义:

      ​ 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方 法来开发与维护软件,把经过实践考验而证明 正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。

  • 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型

    • software crisis

      ​ 软件危机(Software Crisis)是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。在《人月神话》中提到了大型软件开发的成本随着规模的扩大,难度呈指数性增长。当缺乏一定的方法论支撑时,开发大型软件可能会导致难以预料的后果,例如软件设计极端复杂、难以按时交付、漏洞百出等情况。为了修补这些问题,从而加入更多的人力物力,非但不能使开发难度下降,还可能会让进度变得更加延后。

    • COCOMO 模型

      ​ 构造性成本模型(Constructive Cost Model)最初发表于1981年巴里·勃姆《软件工程经济学》一书中,作为一种在软件项中估算工作量、成本以及时间表的模型。构造性成本模型由三个不断深入和详细的层次组成。

      1. 基本COCOMO:适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计,但因其缺少不同的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。
      2. 中级COCOMO:是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。中级COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。
      3. 详细COCOMO:包括中间COCOMO模型的所有特性,但更进一步考虑了软件工程中每一步骤(如分析、设计)的影响,加入了对不同软件开发阶段影响的考量。
  • 软件生命周期

    典型划分GB8567(4个时期7个阶段)

    1. 软件分析时期:问题定义、可行性研究、需求分析
    2. 软件设计时期:总体设计、详细设计
    3. 编码与测试时期:编码、测试
    4. 运行与维护时期
  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

    • 软件需求 Software Requirements
    • 软件设计 Software Design
    • 软件构造 Software Construction
    • 软件工程工具和方法 Software Engineering Tools and Methods
  • 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

    1. Level 1 - Initial 软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
    2. Level 2 - Managed 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
    3. Level 3 - Defined 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
    4. Level 4 - Quantitatively Managed 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
    5. Level 5 - Optimizing 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
  • 用自己语言简述 SWEBok 或 CMMI (约200字

    CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型)。其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。

2 解释 PSP 各项指标及技能要求

  • 阅读《现代软件工程》的 PSP: Personal Software Process 章节。
  • 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
    • 计划
      • 估计这个任务需要多少时间
    • 开发
      • 分析需求
      • 生成设计文档
      • 设计复审 (和同事审核设计文档)
      • 代码规范 (为目前的开发制定合适的规范)
      • 具体设计
      • 具体编码
      • 代码复审
      • 测试(包括自我测试,修改代码,提交修改)
    • 记录时间花费
    • 测试报告
    • 计算工作量
    • 事后总结
    • 提出过程改进计划

上一篇     下一篇