系统分析与设计Hw-1
1.软件工程的定义
在软件的开发和维护中,对系统的,有组织的,可度量的方法的研究
2.阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。
软件危机是指,在早期的软件开发中出现的一系列问题,包括
- 软件开发成本和进度不受控制
- 难以维护,调试和更改
- 用户需求满足不全
COCOMO模型,即Constructive Cost Model,结构式成本模型 COCOMO模型分为基本、中间、详细三个层次 分别用于软件开发的三个不同阶段。
- 基本COCOMO模型 用于系统开发的初期,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。
- 中间COCOMO模型 用于估算各个子系统的工作量和开发时间。
- 详细COCOMO模型 用于估算独立的软部件,如子系统内部的各个模块。
3.软件生命周期。
软件生命周期(Systems Development Life Cycle,SDLC)是软件的产生直到报废的生命周期,是一种按时间分程的思想方法周期包括有
- 问题定义
- 可行性分析
- 需求分析
- 总体设计
- 详细设计
- 编码,调试和测试
- 验收与运行、维护
每个阶段从时间上是相对独立的
4.按照 SWEBok 的 KA 划分,本课程关注哪些 KA 或 知识领域?
SWEBOK,即Software Engineering Body of Knowledge,软件工程知识体系 是通用的软件工程指导的国际化标准 本课程主要关注的知识领域包括
- Software requirements 软件需求
- Software design 软件设计
- Software construction 软件架构
- Software quality 软件质量
5.解释 CMMI 的五个级别。
- Level 1 - Initial:无序级,自发生产模式。
- Level 2 - Managed:已管理级,项目过程制度化。
- Level 3 - Defined:已定义级,组织过程制度化。
- Level 4 - Quantitatively Managed:量化管理级,度量并基于统计去控制过程。
- Level 5 - Optimizing:优化级,过程持续改进。
6.用自己语言简述 SWEBok 或 CMMI (约200字)
软件工程知识体系(swebok)是国际标准iso 的,详细说明了普遍接受的软件工程知识体系的技术指南。涉及到软件工程的各个方面,包括有
- 软件需求
- 软件设计
- 软件构造
- 软件测试
- 软件维护
- 软件配置管理
- 软件工程过程
- 软件过程工具与方法
- 软件质量
- 相关科学知识
SWEBOK的作用是指导在软件工程方面遇到的问题,可以根据问题快速定位到相关知识领域,然后查找各种方法、标准。
7.解释 PSP 各项指标及技能要求:
PSP指标要求
- 项目/任务大小:项目的大小, 一般用代码行数 (Line Of Code, LOC) 来表示;也可以用功能点 (function point)
- 花费时间:完成项目用时
- 代码质量:使用代码中缺陷的数量来除以项目的大小来衡量
- 按时交付:稳定,一致的交付时间
8.按表格 PSP 2.1, 了解一个软件工程师在接到一个任务之后要做什么,需要哪些技能,解释你打算如何统计每项数据?
接到任务后: 计划
- 估计这个任务需要多少时间
开发
- 分析需求
- 生成设计文档
- 设计复审 (和同事审核设计文档)
- 代码规范 (为目前的开发制定合适的规范)
- 具体设计
- 具体编码
- 代码复审
- 测试(包括自我测试,修改代码,提交修改)
记录时间花费 测试报告 计算工作量 事后总结 提出过程改进计划
所需技能:
- 规划能力
- 理解能力
- 书面表达能力
- 编码测试能力
- 总结能力
- 执行力
统计方法:
- 将项目明确划分阶段,确定每个阶段的工作任务和结束指标
- 每次完成阶段的工作任务后,利用代码统计工具对完成的代码进行统计
- 项目完成后,对记录的结果进行分析。