UML基础案例与应用第一章绪论

UML基础案例与应用第一章绪论

软件过程

软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

软件过程应该有明确的定义

  • 团队人员的工作和职责
  • 所执行的活动及其顺序关系
  • 活动的内容和步骤

软件过程的目标:

  • 标准化、预见性、生产率、高质量、计划进度和遇见的能力

软件过程的基本活动:

  • 规格说明( s p e c i f i c a t i o n specification specification)定义软件功能及对使用的限制
  • 软件开发( D e v e l o p m e n t Development Development)设计和实现满足规格说明的软件
  • 软件确认( v a l i d a t i o n validation validation)验证软件以保证满足客户的要求
  • 软件演化( E v o l u t i o n Evolution Evolution)改进软件以适应不断变化的需求

软件规格

软件规格说明是确定系统需要的服务以及运行和开发中约束的过程,也称为需求过程

软件的设计与实现

软件设计是根据需求规格说明,确定软件体系结构,进一步设计每个系统部件的实现算法、数据结构及其接口等。软件实现是将软件设计转换成程序代码。

软件确认

验证和确认需要指出软件是否符合规格说明以及是否满足客户的需求

  • 验证和确认包括检查和评审过程以及系统测试
  • 系统测试是使用由规格说明产生的测试用例执行软件的过程

软件演化

软件的内在本质是灵活的的可变的

  • 随着业务需求的变化,软件必须进化和变更
  • 尽管在开发过程和演化(维护)过程之间存在划分,但是现实中全新的系统越来越少

认识软件演化过程

  • 好的软件需要维护
  • 维护软件的成本很高的,应在开发阶段考虑维护的问题
  • 文档是很重要的,但在实际开发过程中经常存在文档过时或缺少文档的情况

软件过程模型

软件过程模型是对实际过程的抽象描述,包括软件过程的活动,软件产品以及人员的不同角色

常见的软件过程模型

  • 瀑布模型
  • 快速原型模型
  • 增量模型
  • 螺旋模型
  • 形式化方法模型
  • 基于组件的开发模型

瀑布模型

适用于:在开发的早期阶段软件需求被完整确定

挑战:实际的项目开发很少是线性的过程,客户很难明确地描述软件的需求

缺点:

  • 各个阶段的划分完全固定,阶段之间产生大量文档,极大的增加了工作量
  • 开发过程中很难响应客户的变更需求
  • 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果

快速原型模型

快速原型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识。

目的:减少开发风险和需求的不确定性

缺点:

  • 原型系统的内部可能结构不好
  • 开发人员需要掌握建立快速原型的开发技术和工具

适用于:

  • 小型或中等规模的交换式系统
  • 大型系统的某些部分,例如用户界面
  • 生命周期较短的系统

增量模型

优点:

  • 整个产品分解成若干个构件逐步交付,用户可以不断地看到所开发的软件的可运行的中间版本
  • 将早期增量作为原型有助于明确后期增量的需求
  • 降低开发风险
  • 重要功能首先交互,从而使其得到最大的测试

缺点

  • 需要软件具备开放式的体系结构
  • 需求难以在增量实现之前详细定义,因此增量于需求的准确映射以及所有增量的有效集成可能回比较困难
  • 容易退化为边做边改方式,使软件过程的控制失去整体性

螺旋模型

螺旋回线:每一个回线表示开发过程的一个阶段

四个步骤

  1. 缺点阶段目标、完成这些目标的可选方案及其约束条件
  2. 从风险角度分析方案的开发策略,努力排除各种潜在风险,在需求不适当的情况下可能需要建造原型系统
  3. 软件开发和验证工作
  4. 评价该阶段的结果,并规划下一个开发阶段

优点:

  • 关注软件的重用
  • 关注早期错误的消除
  • 将质量目标放在首位
  • 将开发阶段与维护阶段结合在一起

缺点

  • 契约开发通常需要事先指定过程模型和发布产品
  • 需要风险评估的经验

基于组件的开发模型

基于组件的开发技术是使用可重用的组件或商业组件建立复杂的软件系统。

组件开发的两个重要因素

  • 基于组件的软件体系结构
  • 基于组件的开发过程

优点

  • 充分体现了软件复用的思想
  • 实现快速交付软件

缺点

  • 商业组件的修改受到限制,影响系统的演化
目录: 第一部分 基础知识 第1章 UML简介 3 1.1 在纷繁复杂中寻求解决问题的办法 3 1.2 UML的诞生 4 1.3 UML的组成 5 1.3.1 类图 5 1.3.2 对象图 6 1.3.3 用例图 7 1.3.4 状态图 7 1.3.5 顺序图 8 1.3.6 活动图 9 1.3.7 协作图 10 1.3.8 构件图 11 1.3.9 部署图 11 1.4 其他特征 12 1.4.1 注释 12 1.4.2 关键字和构造型 12 1.5 UML 2.0中的新图 13 1.5.1 组成结构图 13 1.5.2 交互纵览图 14 1.5.3 计时图 15 1.5.4 有创新也有保留的包图 15 1.6 为什么需要这么多种图 16 1.7 这不仅仅是一系列图 16 1.8 小结 17 1.9 常见问题解答 17 1.10 小测验和习题 18 1.10.1 小测验 18 1.10.2 习题 18 第2章 理解面向对象 20 2.1 无处不在的对象 20 2.2 一些面向对象的概念 22 2.2.1 抽象 22 2.2.2 继承 23 2.2.3 多态性 24 2.2.4 封装 24 2.2.5 消息传递 25 2.2.6 关联 26 2.2.7 聚集 27 2.3 意义 28 2.4 小结 29 2.5 常见问题解答 29 2.6 小测验和习题 30 第3章 运用面向对象 31 3.1 类的可视化表示 31 3.2 属性 32 3.3 操作 33 3.4 属性、操作和可视化表达 34 3.5 职责和约束 35 3.6 附加注释 36 3.7 类——应该做什么和如何识别它们 37 3.8 小结 39 3.9 常见问题解答 39 3.10 小测验和习题 39 3.10.1 小测验 39 3.10.2 习题 40 第4章 关系 41 4.1 关联 41 4.1.1 关联上的约束 42 4.1.2 关联类 43 4.1.3 链 43 4.2 多重性 43 4.3 限定关联 45 4.4 自身关联 45 4.5 继承和泛化 46 4.5.1 找出继承关系 47 4.5.2 抽象类 48 4.6 依赖 48 4.7 类图和对象图 49 4.8 小结 50 4.9 常见问题解答 51 4.10 小测验和习题 51 4.10.1 小测验 51 4.10.2 习题 51 第5章 聚集、组成、接口和实现 53 5.1 聚集 53 5.2 组成 54 5.3 组成结构图 54 5.4 接口和实现 55 5.5 接口和端口 58 5.5.1 可见性 58 5.5.2 作用域 59 5.6 小结 59 5.7 常见问题解答 60 5.8 小测验和习题 60 5.8.1 小测验 60 5.8.2 习题 60 第6章 介绍用例 61 6.1 什么是用例 61 6.2 用例的重要性 62 6.3 举例:饮料销售机 62 6.3.1 用例“买饮料” 62 6.3.2 其他用例 63 6.4 包含用例 64 6.5 扩展用例 65 6.6 开始用例分析 66 6.7 小结 66 6.8 常见问题解答 66 6.9 小测验和习题 67 6.9.1 小测验 67 6.9.2 习题 67 第7章 用例图 68 7.1 用例模型的表示法 68 7.1.1 回顾饮料销售机 69 7.1.2 跟踪场景中的步骤 69 7.2 用例之间关系的可视化表示 70 7.2.1 包含 70 7.2.2 扩展 71 7.2.3 泛化 72 7.2.4 分组 73 7.3 用例图在分析过程中的作用 73 7.4 运用用例模型:举例 73 7.4.1 理解领域 73 7.4.2 理解用户 74 7.4.3 理解用例 75 7.4.4 进一步深入 76 7.5 “清查存货” 77 7.5.1 结构元素 77 7.5.2 关系 77 7.5.3 分组 78 7.5.4 注释 78 7.5.5 扩展 78 7.5.6 其他 78 7.6 UML“大图” 78 7.7 小结 79 7.8 常见问题解答 79 7.9 小测验和习题 79 7.9.1 小测验 80 7.9.2 习题 80 第8章 状态图 81 8.1 什么是状态图 81 8.1.1 基本符号集 82 8.1.2 在状态图标中增加细节 82 8.1.3 增加转移的细节:事件和动作 83 8.1.4 增加转移的细节:保护条件 84 8.2 子状态 84 8.2.1 顺序子状态 84 8.2.2 并发子状态 85 8.3 历史状态 86 8.4 UML 2.0中的新变化 86 8.5 为什么状态图很重要 87 8.6 UML“大图” 87 8.7 小结 88 8.8 常见问题解答 89 8.9 小测验和习题 89
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gowi_fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值