你的浏览器不支持canvas

我们笑着说再见,却深知再见遥遥无期。

系统分析第一次作业

Date: Author: JX

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。转载请注明来自JX的博客

1、软件工程部分要点

Software Engineering Definition

Software engineering is “(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software,” and “(2) the study of approaches as in (1).” – IEEE Standard 610.12

History of Software Engineering

  • Also see : https://en.wikipedia.org/wiki/Software_engineering
  • 什么是 “software crisis”-软件危机?
  • 什么是 “Constructive Cost Model (COCOMO)”? 为什么要度量软件规模? 答:2. 软件度量(software measurement)是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量,就不能从软件开发的暗箱中跳将出来。

软件工程标准

Software LifeCycle

以上内容必考


2、作业

  1. 简单题
  • 软件工程的定义
    1. (1)将系统化、 规范化、 可度量的方法应用与软件的开发、 运行和维护的过程,即将工程化应用于软件中。 (2)对(1)中所述方法的研究。
    2. 指导计算机软件开发和维护的工程学科。 采用工程的概念、 原理、 技术和方法来开发与维护软件, 把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 这就是软件工程。
  • 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
    1. software crisis

      由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难.软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维 护过程中出现一系列严重问题的现象.

    2. COCOMO模型

      COCOMO模型——构造性成本模型,常见的软件规模估算方法,是指由巴里·勃姆(Barry Boehm)于 1981 年提出的一种精确、易于使用的,基于模型的软件成本估算方法。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本的回归分析公式。做为一种在软件项中估算工作量、成本以及时间表的模型。

  • 软件生命周期。

    从时间角度,把整个周期划分为若干个阶段 划分的原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理. 典型划分GB8567( 4个时期7个阶段): 1. 软件分析时期:问题定义、可行性研究、需求分析 2. 软件设计时期:总体设计、详细设计 3. 编码与测试时期:编码、测试 4. 运行与维护时期

  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

    本课程主要关注以下的 KA: - Software requirements - Software design - Software configuration management - Software engineering management - Software engineering process - Software engineering models and methods - Software quality - Engineering foundations

  • 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
    • 1. 初始级

      软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理 是反应式的。

    • 2.可管理级

      建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复 早先类似应用项目取得的成功经验。

    • 3. 已定义级

      已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有 项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过 程是可见的。

    • 4. 量化管理级

      分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管 理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

    • 5. 优化管理级

      过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。

  • 用自己语言简述 SWEBok 或 CMMI (约200字)

    CMMI将用于制造软件产品的一系列的活动,方法和实践管理起来,并从不成熟的开发到成熟的开发,将软件开发的质量分为5分等级。CMMI 模型的五个成熟度级别分别为 初始级、管理级、定义级、量化管理级和优化级,每个级别都对一个企业的配置管理 CM、度量和分析 MA 、项目监控 PMC 等十六个核心过程区域进行了评价和度量,是综合评价一个企业当前过程中软件生产能力的重要指标。这些指标也可以指导一个企业的软件开发管理。

  1. 解释 PSP 各项指标及技能要求:
    • 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html
    • 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)
    • PSP2.1 做什么 需要技能 我打算如何统计数据
      Planning 计划 软件开发流程 估计人力财力
      —-Estimate —-估计这个任务需要多少时间 经验 按照每个人以前的做的项目和掌握的技能估计
      Development 开发 基本开发技能和规范  
      —-Analysis —-分析需求 需求收集和分析 资料收集,调研,讨论
      —-Design Spec —-生成设计文档 规范写作,工具使用 使用优秀的工具和好的规范
      —-Design Review —-设计复审 (和同事审核设计文档) 写作规范 讨论
      —-Coding Standard —-代码规范 (为目前的开发制定合适的规范) 熟悉开发标准和代码规范 学习高效代码风格
      —-Design —-具体设计 使用工具,清晰规范  
      —-Coding —-具体编码 编程水平  
      —-Code Review —代码复审 编程水平,优化  
      —-Test —测试(包括自我测试,修改代码,提交修改) 测试工具和测试规范流程 测试文档和反馈,重现方法
      Record Time Spent 记录时间花费 每天写总结报告和task日志  
      Test Report 测试报告 学习优秀规范  
      Size Measurement 计算工作量 用人和耗时  
      Postmortem 事后总结    
      Process Improvement Plan 提出过程改进计划    

3、deadline

下周四,24点前!


对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。