大纲图:
软件工程
软件开发模型
瀑布模型
适合需求明确的项目;升级的项目;阶段明确,强调一次性完成系统
原型
适合需求不明确;简易系统
快速原型模型
抛弃型原型
演化性原型
在原型的基础上继续完善
增量模型
先做核心模块
一块一块补充
螺旋模型
原型,演化型,瀑布型 合并起来
指定计划,风险分析,实施工程(瀑布),客户评估
自由主题
V模型
瀑布模型 + 加强测试
强调测试贯穿始终
测试驱动
喷泉模型
面向对象;阶段不间隔
快速开发模型
瀑布模型 + 组件
构建组装模型
把一个系统的各个模块抽象独立后成为组件
使用构建不断组装
VB,Delphi,.NET 就是基于构件的开发,构件他们叫控件
统一过程UP(RUP)
核心特点:用例驱动;以架构为中心;迭代和增量
1.初始
确定项目范围和边界
2.细化
建立软件架构基础 - 完成某种软件架构
3.构建
构件组装与测试 - 寻找可复用的构件,完后输出软件产品
4.交付
确认测试(内部确认测试;阿尔法测试;贝塔测试;验收测试);制作发布版本
敏捷方法
极限编程XP
价值观:沟通(面对客户和团队),简单(设计,够用就好),反馈(流程的反馈),勇气(用于接受变更)
原则:快速反馈;简单性假设;逐步修改;提倡修改;优质工作
实践:小型发布;简单设计;集体代码所有制;持续集成;编码标准
基本原则
短平快的会议;小版本发布;适应性调整;结对编程;测试驱动开发;持续集成;重构
信息系统开发生命周期
具体步骤
1.系统规划
见上面“系统规划”
系统设计任务书(建设方案,实施计划)
包括可行性研究
2.系统分析
做什么
延误流程分析,数据与数据流程分析,软件需求分析,网络需求分析
系统需求规格说明书,软件需求规格说明书,确认测试计划,系统测试计划,初步的用户手册
3.系统设计
怎么做
软件架构设计,软件概要设计,详细设计,网络设计
架构设计文档,概要设计文档,详细设计说明书,程序规格说明书,概要测试计划,详细测试计划,,各类设计图
4.系统实施
软件编码,软件单元集成系统测试,综合布线
源码,单元测试,集成测试报告,操作手册
5.系统验收
确认测试,试运行
确认测试报告,项目验收报告
阶段:规划,分析,设计,实施,验收; 维度: 软件,硬件,网络
净室工程
强调正确性验证而不是测试,作为发现和消除错误的主要机制
逆向工程
概念:对现有系统进行抽象,然后再次进行开发形成新的产品
抽象的层次
1.实现级
语法树,符号表,过程设计 - 类方法实现维度
2.结构级
依赖关系,调用关系,结构,数据结构 - 代码设计维度
3.功能级
功能之间的调用关系,数据流图 - 流程维度
4.领域级
需求层次,ER图 - 需求维度
这个过程也成为“再工程”
开发方法 & 开发模型
开发方法 比 开发模型的抽象层次更高
对于关系 M:N
开发模型 是 开发方法的践行的体系化方案
开发模型 包含 开发的步骤;开发步骤中就会体现开发方法
相当于:论持久战是思想, 地道战是持久战的实践模型
** 驱动
用***事件来驱动
比如:用例驱动;测试驱动;模块驱动
信息系统生命周期
立项阶段
需求分析,企业全局
开发阶段
相当于成长阶段,详细见:信息系统开发生命周期
运维阶段
运行维护
消亡阶段
版本变化,上次版本丢失重建的系统,或者上次版本通过功能扩展升级为本次版本
系统生命周期 & 开发生命周期区别
1. 开发生命周期只是 生命周期开发阶段一段
2.生命周期偏重项目管理; 开发生命周期偏重于技术
……