系统分析与设计——作业1
1.简单题
(1)软件工程的定义
软件工程是一门研究和应用如何以系统性的、规范性的、可定量的过程化方法去开发和维护软件,以及如何把经过时间验证而证明正确的管理技术和当前能得到的最好的技术方法结合起来的学科。
(2)阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
software crisis:
软件危机是指计算机软件的开发和维护过程所遇到的一系列严重问题,它的表现包括对软件开发成本和进度的估算不准确、无法满足用户需求而导致用户很不满意、软件质量不可靠等等。软件危机出现的原因包括:从主观上,软件开发人员缺乏工程性的、系统性的方法论;从客观上,软件产品开发的复杂度和难度随软件规模呈指数级别增长。
COCOMO模型:
COCOMO模型是一种常见的软件规模估算方法。
它采用3个不同层次的模型来反映不同程度的复杂性,包括:基本模型、中间模型、详细模型。
根据不同应用软件的不同应用领域,COCOMO模型划分为3种软件应用开发模式:组织模式、嵌入式应用开发模式、中间应用开发模式。
(3)软件生命周期
软件生命周期是软件的产生直到报废或停止使用的生命周期。
(4)按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
Software requirements
Software construction
Software design
Software engineering models and methods
(5)解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。
a.初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
b.可重复级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
c.已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
d.量化管理级
分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
e.优化管理级
过程的量化反馈和先进的新思想、新技术促使过程持续不断改进。
(6)用自己语言简述 SWEBok 或 CMMI (约200字)
CMMI :CMMI全称Capability Maturity Model Integration,中文翻译“软件能力成熟度集成模型”,它起源于美国国防部的一个设想,1994年由美国国防部和卡内基梅隆大学下的软件工程研究中心和美国国防工业协会共同开发研制。
作为一套融合多学科的、可扩充的产品集合,它研制的初步动机是利用两个或多个单一学科的模型实现一个组织的集成化过程改进。CMMI的本质是软件管理工程的一个部分,它有五个级别:初始级、可管理级、已定义级、量化管理级和优化管理级。
CMMI在软件管理方面大获成功,也使其他学科相继开发出类似的过程改进模型。
2.解释 PSP 各项指标及技能要求:
(1)一个软件工程师在接到一个任务后要先计划,估计这个任务需要多少时间;在开发阶段,需要分析需求、生成设计文档、设计复审 (和同事审核设计文档)、代码规范 (为目前的开发制定合适的规范)、具体设计、具体编码、代码复审和测试(包括自我测试,修改代码,提交修改);然后要记录时间花费、测试报告、计算工作量、总结,并提出过程改进计划。
(2)除了技术技能,还需要职业技能,包括自我管理的能力、表达和交流的能力、与人合作的能力、把任务按质按量完成的执行力。
(3)统计项目的大小(不包括空行/注释行/单字符行的代码行数),统计时间(人均),统计软件质量(可以用缺陷的数量来除以项目的大小),软件是否按时交付。