软件工程
软件开发方法
软件开发方法***
软件开发方法常见的有四种方法
结构化法
原型法
面向对象方法
面向服务的方法
软件开发模型****
瀑布模型
** 特点**:
适用于需求明确的项目
原型模型
螺旋模型
特点:
1.制定计划
决定目标、方案和限制
2.风险分析
评价方案、识别风险、消除风险
3.客户评估
4.实施工程
开发验证下一产品
V模型
特点:
强调测试贯穿于始终
测试今早做提前做
喷泉模型
特点:
面向对象
快速应用开发(RAD)
构建组件模型
统一过程(UP/RUP)
特点:
1.用例驱动
2.以架构为中心
3.迭代和增量
四个阶段
1.初始
需求方向的内容: 确定项目范围和边界 确定项目范围和边界 确定项目范围和边界 确定项目范围和边界
2.细化
简历软件架构基础--完成架构设计 分析系统问题领域 淘汰最高风险元素
3.构建
将软件拼装起来的阶段构件组装与测试 开发剩余的构建
4.交付
敏捷方法
使用场景:
适用于小型项目的开发
考点: 哪种属于/不属于敏捷方法的思想
特点: 砍掉了许多文档
极限编程 (XP)
费用控制严格的公司中的使用,也是被证明是非常有效的。
水晶方法
用最少的纪律约束而仍能成功的方法
开放式源码
程序开发人员在地域上分布很广
SCRUM
明确的定义了的可重复的方法过程
2-4周一个冲刺
功用驱动开发方法 (FDD)
编程开发人员分为两类:
首席程序员
和"类"程序员
ASD 方法
其核心是三个非线性的、重叠的开发阶段:测试、合作、学习
逆向工程
**重点知识:**实现的层级 特点及产出物
1.实现级
程序的抽象语法树、符号表、过程的设计表示
2.结构级
程序分量之间的相互依赖关系例如
调用图、结构图程序和数据结构
3.功能级
程序段功能及程序段之间关系的信息,例如
数据和控制流模型
4.领域级
程序分量或程序诸实体与应用领域概念之间对应关系例如
实体关系模型
净室软件工程
需求工程
需求开发--技术维度
需求获取 ***
分类
从技术维度分类
业户需求
--高层次需求
用户需求
系统需求
—计算机方面
功能需求
性能需求
设计约束
界面约束,数据库版本
从项目管理维度分类
基本需求
明确提出的需求
期望需求
隐含的需求
兴奋需求
需要注意** 镀金需求
获取方法
需求分析 ***
结构化需求分析(SA)
**描述:**围绕数据字典生成多种模型
数据字典
行为模型
状态转换图(STD)
状态(初始、终态)
事件
功能模型
数据流图 DFD
数据流
加工
数据存储
外部实体
数据模型
E-R图
实体
联系
面向对象(OOA)需求分析
相关概念
对象
--> 属性、方法、ID
类
–进一步对对象抽象形成的(实体类、边界类、控制类)
实体类
–描述数据库中的数据
边界类
—接口
控制类
–衔接不同得类完成业务数据的处理
抽象
封装
继承与泛化
多态
接口
消息
组件
模式和复用
统一建模语言(UML)***
组成
I 构造块***
事务
结构事务
行为事务
分组事务
注释事务图–>熟悉分类及特点
II 规则
规范性
可见性
完整性
执行
III 公共机制
规格说明
修饰
公共分类
扩展机制