简单题
- 软件工程定义
(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。
(2)对(1)中所述方法的研究。
(3)软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 Software Crisis & COCOMO
(1)Software Crisis
六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成
本,使大型软件的生产出现了很大的困难,即出现软件危机。
(2)COCOMO
构建成本模型 (COCOMO) 是Barry W. Boehm开发的程序性软件成本估算模型。模型参数是通过使用历史项目中的数据 (61 个项目为 COCOMO 81 和163项目 COCOMO II) 来拟合一个回归公式而得出的。
基本 COCOMO 计算软件开发工作量 (和成本) 作为程序大小的函数。程序大小以估计数以千计的源代码行(SLOC, KLOC). II)。COCOMO 适用于三类软件项目:
(1)有机项目-“小” 团队 “良好” 的工作经验, “不太严格” 的要求
(2)半独立项目-“中型” 团队, 混合使用刚性和小于刚性要求的混合经验
(3)嵌入式项目-在一组 “紧” 约束中开发。它也是有机和半独立项目的组合。(硬件、软件、操作、…)
基本 COCOMO 对软件成本的快速估计很有好处。然而, 它并没有说明硬件限制、人员素质和经验、现代工具和技术的使用等方面的差异。软件生命周期
在软件工程中,软件开发过程是将软件开发工作划分为不同阶段以改进设计、产品管理和项目的过程管理。它也称为软件开发生命周期。该方法可以包括对特定可交付结果的预定义, 以及由项目团队创建和完成以开发或维护应用程序的工件。
从时间角度,把整个周期划分为若干个阶段。
划分的原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。受软件规模、性质、种类、开发方法等因素的影响。
典型划分GB8567(4个时期7个阶段):
(1)软件分析时期:问题定义、可行性研究、需求分析
(2)软件设计时期:总体设计、详细设计
(3)编码与测试时期:编码、测试
(4)运行与维护时期按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
《软件工程知识体指南》 (SWEBOK 指南) 是通过若干专业机构和行业成员之间的合作创建的, 并由ieee 计算机协会(ieee) 发布。
本课程关注软件要求、软件设计、软件工程过程。解释 CMMI 的五个级别。
Level 1 - Initial:无序,自发生产模式。
Level 2 - Managed管理:过程特征为项目并且经常是被动的
Level 3- Defined已定义: 过程特征为组织并且是主动性的
Level 4-Quantitatively Managed量化管理: 过程测量和控制
Level 5-Optimizing优化:注重流程改进- 用自己语言简述 SWEBok 或 CMMI
CMMI,能力成熟度模型集成,是过程级改进培训和评估计划。CMMI给过程定义了以下五个成熟度级别:(1)初始(2)管理(3)已定义(4)量化管理(5)优化。CMMI主要是解决了三个领域的问题,这三个领域分别是产品和服务开发,服务建立、管理和产品和服务获取。CMMI在为开发或改进满足组织的业务目标的流程提供了指导的同时,还可以被用作评估组织的过程成熟度的框架。CMMI有两种形式:连续和分级。连续表示法使用户能够专注于被认为对组织的直接业务目标很重要的特定过程,或组织分配给高风险程度。分级表示是为了提供一个标准的改进序列,可以作为比较不同项目和组织的成熟度的基础。
按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?
我打算现根据此表做一个大致的规划,具体到每一天在具体的某一项上花费的时间,然后如果发生变化就根据实际情况修改。