软件工程-复习
软件工程期末复习
一、概述
1. 软件特性
复杂性
一致性
可变性
不可见性
(复一变不见)
演化性
2. 系统
本质
- 相互联系的一组元素的集合
- 有特定功能的有机整体
- 有边界
- 需要与其他系统交互
- 可能包含另一个系统
- 是逐渐演变形成的
3. 软件工程
定义
① 将系统的、规范化的、可定量的方法应用于软件的开发、运行和维护
② 对①中所述方法的研究
基本目标
- 低成本
- 按时交付
- 实现功能
- 良好性能
- 较高可靠性、可扩展性、可移植性
- 维护费低
软件开发活动
- 问题定义
- 需求分析
- 软件设计
- 软件实现
- 软件测试
- 软件演化
软件需求
- 功能需求
- 性能需求
- 可靠性需求
- 约束性需求
4. 常用模型
- 瀑布模型——适用于有明确需求、规范化的过程
- 原型化模型——迅速建造一个可运行的软件原型,它使用户和开发人员对系统的相关方面进行检查,以决定是否合适和恰当。
- 阶段化开发
- 增量模型——在每一个新的发布中逐步增加功能直到构造全部功能。
- 迭代模型——一开始提交一个完整系统,在后续发布中补充完善各子系统功能。
- 可转换模型——采用形式化的数学方法描述系统,并利用一系列转换将形式化的需求规格 说明变为可交付使用的系统。
二、 需求获取与UML建模
UML概述
UML为面向对象软件设计提供统一的、标准的、可视化的建模语言
UML模型图构成
- 事物
- 关系
- 图
分类
- ①用例图

- ②类图

- ③对象图——类图的实例(写出了具体数据)

- ④顺序图

- ⑤协作图——类操作的实现

- ⑥状态图——一个类对象可能经历的所有历程的模型图

- ⑦活动图
- ⑧构件图

用例图
四种关系:
- 关联 包含 扩展 泛化

类图
类图主要有类、接口、各种关系组成,是其他图的基础
主要作用有:
- 对系统词汇、简单协作、逻辑数据库模式建模
从上到下:类的名称、属性、操作
可见性

公有属性-保护属性-默认(包内可见)-私有属性
关系
关联
- 一般的关联关系

- 聚合关系
- 组合关系(语义更强的聚合,离不开)
- 一般的关联关系
泛化
实现

依赖

顺序图
组成
- 参与者
- 对象
- 生命线
- 消息


状态图
三、用户故事
如何开展需求抽取
- 识别干系人
- 抽取方式
- 输出
如何撰写用户故事(3C + 验收)
3C
① Card
As a [role], I want [function], so that [value]
② Conversation
③ Confirmation
验收标准:描述在什么条件下系统应表现什么行为
四、软件体系结构
1.分层体系结构
- 表示层
- 控制层
- 实体层
- 持久层
2.循环依赖
A 依赖 B,B 又依赖 A
消除方法:
- 抽取公共接口
- 引入中间层
- 依赖倒置
3.耦合&内聚
耦合:模块彼此联系有多紧密
内聚:模块内部是否专一(围绕一个目标展开)
架构设计目标:高内聚,低耦合
4.体系结构风格
- 分层体系结构
- 仓库体系——编译器
- 客户端-服务器
- 瘦客户机/服务器——网站系统
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BaBaLiBoo!


