week1

1、简单题
  • 软件工程的定义
软件工程:IEEE软件工程术语标准术语表(IEEE Standard 610.12)中将“软件工程”定义为:(1)将系统化、工程化、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)对(1)中所述方法的研究。
  • 阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型
软件危机:六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的复杂性和高成本,使大型软件的生产出现了很大的困难,即出现软件危机。软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

COCOMO模型:由TRW公司开发,Boehm提出的结构化成本估计模型。从本质上说是一种参数化的项目估计方法,参数建模是把项目的某些特征作为参数,通过建立一个数字模型预测项目成本,估算精确且易于使用。 COCOMO用3个不同层次的模型来反映不同程度的复杂性,他们分别为:
基本模型 (Basic Model): 是一个静态单变量模型,它用一个以已估算出来的源代码行数 (LOC) 为自变量的函数来计算软件开发工作量。
中间模型 (Intermediate Model):在用 LOC 为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
详细模型 (Detailed Model):包括中间 COCOMO 模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。
同时根据不同应用软件的不同应用领域,COCOMO模型划分为如下3种软件应用开发模式:
组织模式(Organic Mode):这种应用开发模式的主要特点是在一个熟悉稳定的环境种进行项目开发,该项目与最近开发的其他项目有很多相似点,项目相对较小,而且并不需要许多创新。
嵌入式应用开发模式 (Embedded Mode):在这种应用开发模式种,项目受到接口要求的限制。接口对整个应用的开发要求非常高,而且要求项目有很大的创新,例如开发一种全新的游戏。
中间应用开发模式 (Semidetached Mode):这时介于组织模式和嵌入式应用开发模式之间的类型
  • 软件生命周期
软件生命周期:为了降低软件开发的复杂度,便于软件开发过程中的组织管理,把软件从产生直到报废的整个周期划分为若干阶段,各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能的相同。典型划分GB8567共包括4个时期7个阶段,即:
软件分析时期:问题定义、可行性研究、需求分析
软件设计时期:总体设计、详细设计
编码与测试时期:编码、测试
运行与维护时期
  • 按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?

SWEBok Version3在软件工程方面有15个KA,2004版的SWEBok在软件工程方面有10个KA,本课程关注的KA:软件需求、软件设计

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

Level2 - Managed:具有项目管理规范,能重复之前类似项目的成功经验

Level3 - Defined:能自定义管理体系与流程

Level4 - Quantitatively Managed:量化控制管理

Level5 - Optimizing:优化

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

CMMI:软件能力成熟度集成模型,1994年由美国国防部和卡内基梅隆大学下的软件工程研究中心共同开发和研制的,计划把现在所有现存实施的和即将被发展出来的各种能力成熟度模型集成到一个框架中去,是软件行业十分必要的一个资质认证,为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模型框架消除了各个模型的不一致性,帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时的、不超出预算的开发出高质量的软件。


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

PSP 2.1Personal Software Process Stages
Planning计划
  • Estimate
  • 估计这个任务需要多少时间
Development开发
  • Analysis
  • 分析需求
  • Design Spec
  • 生成设计文档
  • Design Review
  • 设计复审(和队友审核设计文档)
  • Coding Standard
  • 代码规范(为目前的开发制定合适的规范)
  • Design
  • 具体设计
  • Coding 
  • 具体编码
  • Code Review
  • 代码复审
  • Test
  • 测试(包括自我测试,修改代码,提交修改)
Record Time Spent记录时间花费
Test Report测试报告
Size Measurement计算工作量

Postmortem&Preocess Improvement Plan

事后总结&提出过程改进计划

需要哪些技能:清楚软件开发的整个流程(软件生命周期),能正确评估不同开发阶段的工作量;将需求转化为具体的设计的能力;根据软件开发的常用模型制定开发的计划;编程能力;测试能力。

统计每项数据:做计划的时候,根据之前的开发经验结合要做项目的具体情况对开发的每个阶段的工作时间进行估计并累加得到一个项目总工作量的估计值;开发和报告阶段,都以实际工作时间计算,比如“分析需求”我们就以开始进行需求分析到得到最终确定的需求list这整个过程中实际花费的时间计算。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值