【系统分析与设计】作业一

一、简答题

Q1. 软件工程的定义

定义一:

(1)将系统化、规范化、可度量的方法应用与软件的开发、运行和维护的过程,即将工程化应用于软件中。(2) 对(1)中所述方法的研究。 —— IEEE

定义二:

是指导计算机软件开发和维护的工程学科。 采用工程的概念、 原理、 技术和方法来开发与维护软件, 把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 这就是软件工程。

Q2. 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型

software crisis(软件危机):

六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。
软件工程正是为克服软件危机而提出的一种概念,并在实践中不断地探索它的原理,技术和方法。在此过程中,人们研究和借鉴了工程学的某些原理和方法,并形成了一门新的学科─软件工程学。 不同时代,人思考解决的问题大不相同, 但人的思维模式和方法却是相对稳定的, 经验也是渐进积累的。 新兴行业完全应该继承传统行业的所积累的智慧和财富
虽然时至今日人们并没有完全克服软件危机, 但软件工程却很大的改善了软件业的情况, 让人们看到了希望,也说明我们还要继续努力, 更深入地认识软件开发管理的规律、 深化软件工程的研究和实践

COCOMO 模型

COCOMO,英文全称为constructive cost model,中文为构造性成本模型。它是一种精确、易于使用的,基于模型的成本估算方法,最早由勃姆 (Boehm) 于 1981 年提出。从本质上说是一种参数化的项目估算方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本(类似于居住面积作为参数计算的整体的住房成本)
COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为:
● 基本模型 (Basic Model)。 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。
● 中间模型 (Intermediate Model)。 则在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
● 详细模型 (Detailed Model) 包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。
同时根据不同应用软件的不同应用领域,COCOMO模型划分为如下3种软件应用开发模式:
● 组织模式(Organic Mode)。这种应用开发模式的主要特点是在一个熟悉稳定的环境种进行项目开发,该项目与最近开发的其他项目有很多相似点,项目相对较小,而且并不需要许多创新。
● 嵌入式应用开发模式 (Embedded Mode)。在这种应用开发模式种,项目受到接口要求的限制。接口对整个应用的开发要求非常高,而且要求项目有很大的创新,例如开发一种全新的游戏。
● 中间应用开发模式 (Semidetached Mode)。这时介于组织模式和嵌入式应用开发模式之间的类型。
COCOMO 模型具有估算精确、易于使用的特点。在该模型中使用的基本量有以下几个: (1)DSI( 源指令条数 ) ,定义为代码行数,包括除注释行以外的全部代码。若一行有两个语句,则算做一条指令。 (2)MM( 度量单位为人月 ) 表示开发工作量。 (3)TDEV( 度量单位为月 ) 表示开发进度,由工作量决定。 (4)COCOMO 模型重点考虑 15 种影响软件工作量的因素,并通过定义乘法因子,从而准确、合理地估算软件的工作量。
但是COCOMO也存在一些很严重的缺陷,例如分析时的输入时优先的,不能处理意外的环境变换,得到的数据往往不能直接使用,需要校准,只能得到过去的情况总结,对于将来的情况无法进行校准等.

Q3. 软件生命周期。

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。

Q4.按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

  • 软件需求分析Software requirements
  • 软件设计Software design
  • 软件开发过程Software construction
  • 软件工程工具和方法Software engineering models and methods

Q5. 解释 CMMI 的五个级别。例如:Level 1 - Initial:无序,自发生产模式。

  • Maturity Level1 - Initial初始级:无序,自发生产模式。软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。
  • Maturity Level 2 - Managed可管理级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。
  • Maturity Level 3 - Defined 已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。
  • Maturity Level 4 - Quantitatively Managed量化管理级:分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。
  • Maturity Level 5 - Optimizing优化管理级:过程的量化反馈和先进的新思想、新技术促使过程持续不断改进

Q6. 用自己语言简述 SWEBok 或 CMMI (约200字)

CMMI的全称为Capability Maturity Model Integration,即能力成熟度模型集成。这是一个过程改进方法,它的目的是帮助组织改进他们的绩效,它可以被用于引导横贯一个项目、一个部门或一个完整的组织的过程改进。CMMI目前主要应用于以下三个领域:产品和服务开发——希迈开发方面,服务创建、管理和交付,产品和服务采购。CMMI实施时有连续式和阶段式两种改进实施方式。在阶段式中有五个等级。由于第一级“初始级”是组织的初始状态,故成熟度级别评定从2到5级被授予。五个等级分别为:Initial、Managed、Defined、Quantitatively Managed、Optimizing。

二、解释 PSP 各项指标及技能要求:

阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html。按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据? (期末考核,每人按开发阶段提交这个表)

这里写图片描述
统计数据时,应该注意计算的是某个阶段的有效时间。比如需求分析阶段,软件工程师可能没有连续工作,那么休息时间就不能被包含进去。此外,有些阶段可能是同时进行的,比如coding和Test,此时应该把这两种阶段的具体时长分别清楚地统计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值