系统分析与设计作业1

简单题

  • 软件工程的定义

    软件工程是:

    1. 将系统化、规范化、可度量的方法应用于软件的开发、运行与维护的过程中,即将工程化应用于软件中–采用工程的技术原理来开发和维护软件,把各种证明正确或有用的方法应用于软件开发中;
    2. 对(1)中方法的研究。
  • 阅读经典名著“人月神话”等资料,解释software crisis、COCOMO模型

    software crisis:即软件危机,是计算机软件在它的开发和维护过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。概括地说,其主要包含两方面的问题:如何开发软件,怎样满足对软件日益正常的需求;如何维护数量不断膨胀的已有软件。软件危机的原因与软件流程的整体复杂度以及软件工程这领域的不成熟有关。

    COCOMO:构造性成本模型(英文全称为ConstructiveCost Model)。它是一种精确、易于使用的,基于模型的成本估算方法,最早由Boehm于1981年提出。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。这种模型由三个层次组成。第一层,“基本COCOMO”,适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计,但因其缺少不同的项目属性(“成本驱动者”)的因素,所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段影响的考量。

  • 软件生命周期

    指软件的产生直到成熟的全部过程。生命周期是事物发展的客观规律,软件同样存在生命周期。早期的软件生命周期往往是说“软件从计划、需求开始,经历分析设计、实现、部署、维护,直到最后逐渐消亡的”。这是受到了第一个软件生命周期模型—瀑布模型[1]影响,上述语句实质上简要的描述了瀑布型生命周期。现在的软件生命周期不再只考虑瀑布型生命周期,另外常见的软件生命周期模型有原型模型、螺旋模型、迭代模型。所以现在的软件生命周期说明应当不再包括瀑布型生命周期中的典型阶段。

    因此,现在对软件生命周期及软件生命周期模型采用如下定义:

    1. 软件生命周期是指软件的产生直到成熟的全部过程。
    2. 软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。
  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA或 知识领域?

    在SWEBOK(Software Engineering Body of Knowledge)中提到,软件工程领域中的核心知识包括:

    • 软件需求(Softwarerequirements)
    • 软件设计(Software design)
    • 软件建构(Softwareconstruction)
    • 软件测试(Software test)
    • 软件维护与更新(Softwaremaintenance)
    • 软件构型管理(Software ConfigurationManagement, SCM)
    • 软件工程管理(SoftwareEngineering Management)
    • 软件开发过程(SoftwareDevelopment Process)
    • 软件工程工具与方法(SoftwareEngineering Tools and methods)
    • 软件质量(SoftwareQuality)

    而我认为本课程主要关注软件需求、软件设计、软件工程管理、软件工程开发过程、软件质量。

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

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

  • 用自己语言简述SWEBok或CMMI

    CMMI全称是Capability Maturity Model Integration,是能力成熟度集成模型,是由美国国防部首先提出,并于1994年与卡内基-梅隆大学和美国国防工业协会共同开发和研制的。CMMI是一套融合多学科的、可扩充的产品集合,其研制的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。

    CMMI的主要依据的是:如果集中精力、持续努力地去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件开发中的困难。它提供了一个单一的集成化框架,从而消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解。

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

  • Planning(计划)
    • Estimate(估计这个任务需要多少时间)
  • Development
    • Analysis(分析需求)
    • Design Spec(生成设计文档)
    • Design Review(设计复审(和同时审核设计文档))
    • Coding Standard(代码规范(为目前的开发指定合适的规范))
    • Design(具体设计)
    • Coding(具体编码)
    • Code Review(代码复审)
    • Test(测试,包括自我测试,修改代码,提交修改)
  • RecordTime Spent(记录时间花费)
  • Test Report(测试报告)
  • Size Measurement(计算工作量)
  • Postmortem(事后总结)
  • ProcessImprovement Plan(提出过程改进计划)