作业目录
简答题
1、软件工程的定义
- 软件工程是将系统方法用于软件开发的一种工程应用。
- IEEE标准中,将软件工程定义为:
(1)一种系统,规范,可量化的方法,应用于发展、操作和维护软件;是一种软件的应用工程。
(2)一种研究(1)中的方法的学课。
2、解释导致 software crisis 本质原因、表现,述说克服软件危机的方法
-
本质原因:
导致 software crisis 本质原因就是软件的本质:
1、complexity 复杂性
2、conformity 一致性
3、changeability 可变性
4、invisibility 不可视性
-
表现:
1、软件危机的原因与硬件和软件开发过程的整体复杂性有关。危机以几种方式表现出来:
2、项目运行超预算
3、项目运行时间过长
4、软件效率很低
5、软件质量很差
6、软件通常不符合要求
7、项目难以管理,代码难以维护
8、软件从未交付过
-
克服方法:
1、开发了各种过程和方法来改进软件质量管理,例如过程编程和面向对象的编程。
2、建立软件工程知识体系(SWEBoK),指导软件工程人才的培养与学科建设。
3、建立能力成熟度模型集成(CMMI),用于度量一个企业的软件工程能力。
4、建立软件工程相关标准。例如ISO 9000 系列 质量管理体系。基本思想是通过标准化生产行为,保障并提升产品质量。其核心是 PDCA 循环模型的建立与实施。
5、尝试各种实践管理工具。
3、软件生命周期
软件生命周期:在时间维度,对软件项目任务进行划分,以改进设计,产品管理和项目管理的过程。又称为软件开发过程。常见的方法论有瀑布模型、螺旋模型、敏捷的模型等。
4、SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)
表征软件工程实践的知识领域
-
软件要求(Software Requirements)
软件要求KA关注软件需求的启发,协商,分析,规范和验证。
-
软件设计(Software Design)
设计被定义为两个限定的体系结构,组件,接口,以及其它的系统或部件的特性的过程,和过程的结果(IEEE 1991)。软件设计KA涵盖了设计过程和最终产品。软件设计过程是软件工程生命周期活动。
-
软件构建(Software Construction)
软件构建是指通过结合详细设计,编码,单元测试,集成测试,调试和验证来详细创建工作软件。软件构建KA包括与满足其要求和设计约束的软件程序开发相关的主题。
-
软件测试(Software Testing)
测试是一项旨在评估产品质量并通过识别缺陷来改进产品质量的活动。软件测试涉及在有限的测试用例集上针对预期行为动态验证程序的行为。
-
软件维护(Software Maintenance)
软件维护包括增强现有功能,调整软件以在新的和修改的操作环境中运行,以及纠正缺陷。这些类别称为完善,自适应和纠正性软件维护。
-
软件配置管理(Software Configuration Management)
系统的配置是硬件,固件,软件或这些的组合的功能和物理特征。它还可以被视为根据特定构建过程组合的特定版本的硬件,固件或软件项的集合,以满足特定目的。因此,软件配置管理(SCM)是在不同时间点识别系统配置的规则,用于系统地控制配置的改变,以及在整个软件生命周期中维持配置的完整性和可追溯性。
-
软件工程管理(Software Engineering Management)
软件工程管理涉及规划,协调,测量,报告和控制项目或程序,以确保软件的开发和维护是系统化的,规范化的和量化的。
-
软件工程过程(Software Engineering Process)
软件工程KA关注软件生命周期过程的定义,实施,评估,测量,管理和改进。
-
软件工程模型和方法(Software Engineering Models and Methods)
软件工程模型和方法KA解决了涵盖多个生命周期阶段的方法; 其他KAs涵盖特定生命周期阶段的特定方法。
-
软件质量(Software Quality)
软件质量是许多SWEBOK V3 KAs中普遍存在的软件生命周期问题。
-
软件工程专业实践(Software Engineering Professional Practice)
软件工程专业实践关注软件工程师必须具备的专业,负责和道德的软件工程知识,技能和态度。
表征软件工程教育要求的知识领域
-
软件工程经济学(Software Engineering Economics)
软件工程经济学KA关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致。
-
计算基础(Computing Foundations)
计算基础KA涵盖了提供软件工程实践所需的计算背景的基础主题。
-
数学基础(Mathematical Foundations)
数学基础KA涵盖了提供软件工程实践所必需的数学背景的基础主题。
-
工程基础(Engineering Foundations)
工程基础KA涵盖了提供软件工程实践所必需的工程背景的基础主题。
5、简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
- Level 1 - Initial:无序,自发生产模式。
- Level 2 - Managed:管理,以项目为特征,被动生产模式。
- Level 3 - Defined:定义,以项目为特征,主动生产模式。
- Level 4 - Quantitatively Managed:定量管理,项目可度量,可控制生产模式。
- Level 5 - Optimizing:优化,注重项目过程发展的生产模式。
6、用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI
CMMI,即能力成熟度模型集成。
- CMMI的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。
- CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架,因而能够从总体上改进组织的质量和效率。
- CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面。
- CMMI起源于软件工程,但多年来一直高度概括,以涵盖其他感兴趣的领域,例如硬件产品的开发,各种服务的提供以及产品和服务的获取。“软件”一词未出现在CMMI的定义中。这种改进概念的概括使CMMI极为抽象。