系统分析与设计作业_1

1、简单题

  • 软件工程的定义

    软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

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

    software crisis即“软件危机”,是早期计算机科学的一个术语,指的是早期在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。软件生产的复杂性和高成本使大型软件的生产出现了很大的困难,即出现软件危机。

    COCOMO英文全称为Constructive Cost Model,即构造性成本模型,是由巴里·勃姆(Barry Boehm)提出的一种软件成本估算方法。这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。构造性成本模型由三个不断深入和详细的层次组成:基本COCOMO模型,中间COCOMO模型,详细COCOMO模型。

  • 软件生命周期

    分为四个时期和七个阶段。
    软件分析时期:问题定义、可行性研究、需求分析
    软件设计时期:总体设计、详细设计
    编码与测试时期:编码、测试
    运行与维护时期

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

    SWEBOK指南将软件工程知识体系划分为10个知识域(Knowledge Area,KA),分为两类过程。
    一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;
    一类是支持和组织过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。

    本课程关注:软件需求、软件工程管理、软件工程模型和方法、软件质量。

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

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

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

    SWEBok全称是Software Engineering Body of Knowledge,软件工程知识体系,由IEEE计算机协会发布,目前已经发布了第三版。它是一个旨在规范软件工程知识体系的国际标准。软件工程知识体系提出了每一个软件工程师都应该具备或者了解的一些知识,对软件工程领域从业者具有重要意义。这些领域包括:软件需求、软件设计、 软件构造、 软件测试、 软件维护、 软件配置管理、 软件工程管理、 软件工程过程、 软件工程模型和方法、 软件质量、 软件工程职业实践等。

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

  • 阅读《现代软件工程》的PSP:Personal Software Process章节 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html

  • 按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据

    要做什么

    1.计划: 估计这个任务需要多少时间
    2.开发: 分析需求、 生成设计文档、 设计复审 (和同事审核设计文档)、 代码规范 (为目前的开发制定合适的规范)、 具体设计、 具体编码、 代码复审、测试(包括自我测试,修改代码,提交修改)
    3.记录时间花费
    4.测试报告
    5.计算工作量
    6.事后总结
    7.过程改进计划

    需要哪些技能

    能够评估工作时间的能力、分析需求能力、编写文档能力、代码编写审查能力、沟通能力、总结思想能力等等

    统计方法

    严格且合理使用时间管理软件记录时间,记录实际有效率的工作时间。

    及时更新工作计划

    利用代码合作管理工具进行工作量统计