简答题
软件工程的定义
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
软件工程是将系统的、规范的、可度量的方法应用到软件的开发、运行和维护中的一种工程方法,同时也包括了与之相关的研究。
解释导致software crisis 本质原因、表现,述说克服软件危机的方法
本质原因
计算机硬件性能的提高、软件复杂度的增加与软件开发能力之间存在矛盾,导致对于复杂软件的需求无法得到满足。
表现
- 项目运行超过预算
- 项目运行超时
- 软件的使用效率较低
- 软件质量过差
- 软件不能满足用户需求
- 项目无法管理,代码难以维护
- 软件无法交付
克服软件危机的方法
应用更科学、高效的软件工程管理方法去指导软件开发的过程,提高效率并降低成本,改善产品质量。
软件生命周期
软件生命周期是指软件的产生知道成熟的全部过程。
SWEBoK 的 15 个知识域(An Overview of the SWEBOK Guide 请中文翻译其名称与简短说明)
英文名称 | 中文名称 | 解释 |
---|---|---|
Software Requirements | 软件需求 | 软件需求关注软件需求的启发,协商,分析,规范和验证。 |
Software Design | 软件设计 | 软件设计涵盖了设计过程和最终产品。 |
Software Construction | 软件构造 | 软件构造包括与满足其要求和设计约束的软件程序开发相关的主题 |
Software Testing | 软件测试 | 软件测试包括软件测试的基础知识;测试技术;人机界面测试与评估;与测试有关的措施 |
Software Maintenance | 软件维护 | 软件维护包括软件维护的基础知识 |
Software Configuration Management | 软件配置管理 | 软件配置管理涵盖 SCM 过程的管理;软件配置识别,控制,状态核算,审计;软件发布管理和交付 |
Software Engineering Management | 软件工程管理 | 软件工程管理涵盖了启动和范围定义;软件项目计划;软件项目制定; 产品验收;审查和分析项目绩效;项目结束 |
Software Engineering Process | 软件工程过程 | 软件工程关注软件生命周期过程的定义,实施,评估,测量,管理和改进 |
Software Engineering Models and Methods | 软件工程模型与方法 | 软件工程模型和方法解决了涵盖多个生命周期阶段的方法 |
Software Quality | 软件质量 | 软件质量包括软件质量的基础知识; 软件质量管理流程 |
Software Engineering Professional Practice | 软件工程专业实践 | 软件工程专业实践涵盖专业性;道德准则;小组动态;和沟通技巧 |
Software Engineering Economics | 软件工程经济学 | 软件工程经济学关注的是在业务环境中做出决策,以使技术决策与组织的业务目标保持一致 |
Computing Foundations | 计算基础 | 计算基础涵盖了提供软件工程实践所需的计算背景的基础主题 |
Mathematical Foundations | 数学基础 | 数学基础涵盖了提供软件工程实践所必需的数学背景的基础主题 |
Engineering Foundations | 工程基础 | 工程基础涵盖了提供软件工程实践所必需的工程背景的基础主题 |
简单解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
- Level 1 - Initial:无序,自发生产模式:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的
- Level 2 - Managed,可管理级: 建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
- Level 3 - Defined,已定义级: 已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
- Level 4 - Quantitatively Managed 量化管理级: 分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
- Level 5 - Optimizing 优化管理级: 过程的量化反馈和先进的新思想、新技术促使过程持续不断改进
用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI(能力成熟度模型集成)是用来衡量软件质量与成熟度的标准。其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加透明度和理解,建立了一个自动的、可扩展的框架。因而能够从总体上改进组织的质量和效率。CMMI主要关注点就是成本效益、明确重点、过程集中和灵活性四个方面