软件工程

CASE软件工程:

计算机软件:
CASE软件工程:
软件工程包含
计算机软件:
1. 系统软件
2. 应用软件
3. 工程/科学软件
4. 嵌入式软件
5. 产品线软件
6. Web应用软件
7. 人工智能软件
8. 开发计算
9. 网络资源
开源软件
软件工程基本原理:
1. 分阶段的生命周期
2. 坚持进行阶段评审
3. 严格的产品控制
4. 采用现代程序设计技术
5. 结果应能清楚的审查
6. 开发小组的人员应该少而精
承认不断改进软件工程实践的必要性
软件工程基本原理:
1. 分阶段的生命周期
2. 坚持进行阶段评审
3. 严格的产品控制
4. 采用现代程序设计技术
5. 结果应能清楚的审查
6. 开发小组的人员应该少而精
7. 承认不断改进软件工程实践的必要性
软件生存周期:
软件周期
软件模型:
能力成熟模型:CMM
初始级Intitial:
杂乱无章,项目成功依赖个人和核心人物
可重复级Repeatable:
建立基本的项目管理过程和实践来跟踪项目费用进度和功能特性,有可以重复的模板
已定义级Defined:
管理和工程两方面的软件过程已经文档化和标准化、有自己的标准流程
已管理级Managed:
制定了软件过程和产品的详细度量标准
优化级Optimized:
加强了定量分析,能不断改进

能力成熟模型CMMI:
阶段性模型:
初始的:过程不可预知且缺乏控制
已管理的:过程为项目服务
已定义的:过程为组织服务
定量管理:过程已定量和控制
优化的:集中于过程改进
连续式模型:
CL0:未完成的
CL1:已执行的
CL2:已管理的
CL3:已定义的
CL4:定量管理
CL5:优化的

统一过程:

起始阶段: 生命周期目标
项目计划、风险评估
精化阶段: 生命周期架构
需求分析、概要设计
构建阶段: 初始运作功能
详细设计、编码、测试
移交阶段: 发布
交付 维护

软件过程模型:
瀑布模型:
瀑布模型
w模型:
w模型
转载自一个记不到的地方。。。
这里写图片描述
逐步求精的方式
螺旋模型:
分很多周期:
制定计划
风险分析
实施工程
用户评估
螺旋模型
喷泉模型:
面向对象的

基于组件的开发模型
COTS
形式化开发模型

软件开发方法:

结构化开发:
自顶向下、逐步求精
数据流图 、数据字典、结构化语言、判定表、判定树组成

Jackson方法:
适用于时序特点较强

原型方法:
适用于需求不清 需求经常变化的方法
面向对象的开发方法:

敏捷方法:
1.极限编程Xp
价值观:沟通、反馈、勇气、简单性
水晶法
并列争求法
自适应软件开发ASD
软件工具和开发环境:
需求分析工具
设计工具
编码和拍错工具
测试工具

软件维护工具:
版本控制工具
文档恢复工具
逆向工程工具
开发信息库工具
再工程工具
软件管理和软件支持工具:
项目管理工具:
配置管理工具
软件评价工具
软件开发环境:
特征:
环境的服务是集成的;
环境应支持小组的工作 方式
环境应支持各种软件开发活动

项目管理:
软件项目的范围:
4P:
Person 人员
Product 产品
procedure过程
Project项目

人员:
项目管理人员: 项目经理
高级管理人员:负责项目定义
开发人员:需求分析、测试、编码、设计
客户:说明需求的人
最终客户:与产品进行交互的人
产品:
软件开发者和客户必须一起定义产品的目的和范围:
软件范围的定义为:
项目环境: 要开发的软件如何适用于系统、产品、业务环境、该环境有何约束
信息目标:产品要哪些用户可见的数据作为输出哪些对象作为输入
功能和性能:
软件要什么功能、要满足什么特殊的性能需求
19:08

过程:
工作任务
项目:
1) 明确目标及过程
2) 保持动力跟踪进展
3) 跟踪进展
4) 做出明确决策
5) 进行事后分析
软件项目估算:
1) 基于已完成类似项目估算
2) 基于分解项目进行估算
3) 基于经验估算模型估算
成本估算方法:
自顶向下的估算方法:
高阶到低阶 缺点
自底向上的估算方法:
分别估算每个子任务的开发总量、然后把他们加起来
缺点每个任务链接没算进去 成本往往偏低
差别估算法:
与已完成的项目比较
专家估算法
类推估算法
算式估算法

进度管理:
进度管理的基本原则:
1) 划分
2) 相互依赖性
3) 时间分配
4) 工作量确认
5) 确认责任
6) 明确输出结果
7) 确定里程碑
进度安排:
1) 任务的开始时间和完成时间
2) 各个任务的完成标志
3) 各个任务的参与工作人数
4) 完成各个任务的物理资源和数据资源
常用的图形有Gantt图和PERT图
甘特图 恩
圈圈图 恩
软件项目的组织:
1) 尽早落实责任
2) 减少交流接口
3) 责权均衡
程序设计小组的组织方式:
主程制小组 、民主小组、层次式小组
质量特性
功能性:
适应性、准确性、互用性、依从性、安全性
可靠性:
成熟性、容错性、易恢复性
易使用性:
易理解性、易学性、易操作性
效率:
时间特性、资源特性
可维护性:
易分析、易改变、易维护、稳定
可移植性:
适应性、易安装、一致性、易替换性

质量特性、质量子特性、度量指标

MC Call软件质量模型:
质量特性、评价准则、度量指标

软件质量保证:
1. 软件必须满足需求
2. 软件符合开发准则
3. 软件满足隐含需求
控制质量的途径
1) 应用技术方法
2) 进行技术评审
3) 标准化
4) 控制变更
5) 度量
6) 记录和保存报告
软件评审:
设计质量:设计规格说明书符合要求
程序质量:程序规格说明书符合要求

设计质量的评审:
1) 是否合乎用户需求
2) 是否可靠
3) 保密措施实现情况
4) 操作特性实施情况
5) 性能实现情况
6) 可修改性、可扩展性、可互换性、可移植性
7) 软件是否有可测试性
8) 可复用性

软件的结构:
功能结构: 数据结构、功能结构、数据结构和功能结构的对应关系
功能的通用性。
模块的层次
模块结构
模块结构和功能结构的对应关系

与环境的接口:
与硬件的接口
与用户的接口

软件的容错技术:
对自身错误能屏蔽
能自动恢复正常
在发生错误时仍能完成功能
在一定程度上能容错
容错手段 :
结构冗余:动态、静态、混合冗余
信息冗余:
时间冗余
冗余附加技术

风险:
软件配置管理:
SCM 标识变更 、控制变更
基线:
开发阶段的特定点、用于检查和肯定阶段结果
软件配置项目:
SCI
1. 软件规格说明书
2. 软件项目实施计划
3. 软件需求规格说明书
4. 设计规格说明书
5. 源代码清单
6. 测试计划和过程、测试用例、测试结果记录
7. 操作和安装手册
8. 可执行程序
9. 数据库描述
10. 用户手册
11. 维护文档
12. 软件工程标准
13. 项目开发小结
版本控制;
每个版本都是SCI的汇集

变更控制:
开发库、受控库、产品库

软件风险:
商业风险:
市场
策略
销售
管理
预算 风险
风险识别:
1) 产品规模
2) 商业影响
3) 客户特性
4) 过程定义
5) 开发环境
6) 开发技术
7) 人员才干和规模
1. 性能风险
2. 成本风险
3. 支持风险
4. 进度风险

风险预测:
建议尺度和标准
描述风险产生的过程
估算风险对项目的影响
标注风险预测的整体精确性以免产生误解

风险评估:

风险控制:
风险避免;
风险监控
RMMM计划

软件度量:
面向规模的度量 、面向功能的度量、面向人的度量

生产率度量、质量度量、技术度量

面向规模的度量:
LOC 代码行数 KLOC千行代码数
面向功能度量:
EI、EO、EQ、ILF、EIF
软件复杂性度量原则:
规模、难度、结构、智能度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值