系统分析与设计 作业1

1、简单题

  • 软件工程的定义
    将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中。是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

  • 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
    软件危机(software crisis)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。是落后的软件生产方式无法满足迅速增长的计算机软件需求, 从而导致软件开发与维护过程中出现一系列严重问题的现象。这些严重的问题阻碍着软件生产的规模化、商品化以及生产效率,让软件的开发和生产成为制约软件产业发展的“瓶径”。
    COCOMO模型是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm)于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本。
    COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为:
    1 基本模型 (Basic Model)。 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。
    2 中间模型 (Intermediate Model)。 则在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
    3 详细模型 (Detailed Model) 包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

  • 软件生命周期。
    软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
    典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型、螺旋模型。

  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
    软件需求、软件设计、软件构件和软件模型和方法。

  • 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
    Level 1 - Initial:无序,自发生产模式。
    Level 2 - Repeatable:管理制度化,建立了基本的管理制度和规程,管理工作有章可循。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。
    Level 3 - Defined:开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解。
    Level 4 - Managed:产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。
    Level 5 - Optimizing:可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。

  • 用自己语言简述 SWEBok 或 CMMI (约200字)
    SWEBok是软件工程知识体系,描述了关于软件工程普遍接受的知识。体系总结了软件工程的基本概念。体系包含3个版本,最新版本是2014年推出的v3版本,包含了15个知识领域,包括软件需求、软件设计、软件构建、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法、软件质量、软件工程专业实践、软件工程经济学、计算基础、数学基础、工程基金会。体系还为每个知识领域都表明了参考材料,方便读者对各个知识领域进行详细的了解。

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、提出过程改进计划
    我打算用工作时间以及工作量作为统计数据,工作时间可以精确到小时进行计算,而工作量则根据任务的不同有不同的计算方法,例如编码可以将代码行数进行参考,设计文档根据设计功能的多少进行区分等等。

猜你喜欢

转载自blog.csdn.net/weixin_39629939/article/details/79535168
今日推荐