SlideShare a Scribd company logo
1 of 562
软件工程 哈尔滨工业大学 ( 威海 ) 计算机科学与技术学院 孟凡超 Email : [email_address] Tele: 15163155787
参考教材 ,[object Object],[object Object],[object Object],[object Object]
主要内容 5 6 3   7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
主要内容 5 6 3   7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],软件 = 程序 + 文档 可执行部分 不可执行部分 文档 1 文档 2 文档 3 程序
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],C 语言程序 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Java 语言程序
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object]
软件工程概述 ,[object Object],[object Object]
软件工程概述 ,[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],软件、硬件成本变化趋势
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object]
软件工程概述 结构化程序开发 面向对象开发  分布式对象 / 系统 基于构件的开发 面向服务的开发 ,[object Object]
软件工程概述 操作 对象 消息 ,[object Object],对象 对象 面向对象编程范型的 3 个基本特征:封装、继承和多态。 数 据 数 据 数 据
软件工程概述 ,[object Object],构件: 模块化的、可部署、可替换的软件系统组成部分,它封装了内部的具体实现并对外提供一组接口。 数据 对象 数据 数据 消息 对象 构件的接口
软件工程概述 服务 1 服务 2 服务 3 服务 4 异构系统的功能被封装为服务以方便复用 ,[object Object],服务: 是自治、开放、自描述、与实现无关的网络构件。 服务层 应用 1(J2EE) 应用 2(.Net) 应用 3(Legacy) 应用层
软件工程概述 ,[object Object],客户 发起系统 开发人员 客户 构建系统 使用系统 需要的资金 合同契约 需要 软件系统 客户 (Customer) : 是为将要开发的软件系统支付费用的公司、组织或个人。 开发人员 (Developer) : 是为客户构建软件系统的公司、组织或个人,其中包括任何协调并指导程序员和测试人员的管理人员。 用户 (User): 是将实际使用系统的人,包括坐在终端前的人、提交数据的人和阅读输出的人。
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],屏蔽计算机硬件的异构性发展了操作系统 屏蔽应用软件和开发平台之间的差异产生了体系结构 / 框架 / 设计模式 屏蔽操作系统之间和编程语言之间的异构性出现了支撑软件和中间件 屏蔽不同中间件之间的异构性发展了 Web 服务 LINIX UNIX Windows Fortran  Java  Application  .Net/COM J2EE/EJB Web service Architecture framework design pattern  Support software     middleware  C/C++
软件工程概述 ,[object Object],LINIX UNIX Windows Fortran  Java  Application  .Net/COM J2EE/EJB Web service Architecture framework design pattern  Support software     middleware  C/C++
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件工程概述 ,[object Object],[object Object],[object Object],[object Object]
软件工程概述 系统 过程 硬件 软件 人 数据库 文档 输入 输出 基于计算机的系统要素
软件工程概述 ,[object Object],[object Object],[object Object],[object Object],[object Object]
主要内容 5 6 3   7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
软件开发模型 ,[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 需求分析 软件设计 编码 维护   测试 问题定义 可行性研究 计划时期 开发时期 维护时期
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 用户要求 需求分析 需求规格说明 总体设计 软件结构图 详细设计 模块说明 编码 程序清单 单元测试 综合测试 确认测试 系统测试 ,[object Object]
软件开发模型 ,[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object]
软件开发模型 需求分析 原型评价 最终系统设计   最终系统实现   原型开发 规格说明 可运行原型 用户反馈 ,[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object]
软件开发模型 构建发布 1 构建发布 2 构建发布 3 发布 1 发布 2 发布 3 开发系统 (Development System) 开发人员 用户 时间 准备用来替换现行产品系统的下一个版本 产品系统 (Production System) 当前正在被客户和用户所使用的系统 ,[object Object]
软件开发模型 增量开发 (Incremental Development) 迭代开发 (Iterative Development) 在增量开发中,需求文档中指定的系统按照功能划分为子系统。定义发布时首先定义一个小的功能子系统,然后在每一个新的发布中增加新功能。 迭代开发是在一开始就提交一个完整的系统,然后在每一个新的发布中改变每个子系统的功能 ,[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object]
软件开发模型 确定目标、可选方案及约束 操作概念 预算 1 预算 2 预算 3 预算 4 风险分析 1 需求、生命周期计划 约束 1 约束 2 约束 3 约束 4 风险分析 2 风险分析 3 风险分析 4 原型 1 原型 2 原型 3 原型 4 软件需求 经确认的需求 开发计划 软件设计 评估方案,明确并排除风险 可选方案 2 可选方案 1 可选方案 3 可选方案 4 计划下一阶段 集成和测试计划 开发验证下一级产品 经确认的设计 详细设计 编码 单元测试 系统测试 验收测试 实施计划 评审约定部分 累计费用 ,[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object],[object Object],[object Object]
软件开发模型 ,[object Object],[object Object]
软件开发模型 将新构件 存入库中 标志候选构件 在构件库中 查找构件 进行下一次 迭代 构造构件 是否存在  构件? 是 否 计划 风险分析 用户通信 产品开发与发布 用户评估 提取构件 ,[object Object]
软件开发模型 UP 的历史 Rational 统一过程 (RUP) 是 IBMUP 的商业版本。 RUP 是 UP 的扩展。 ,[object Object]
软件开发模型 需求 分析 设计 实现 测试 迭代 评估 计划 项目相关 其他活动 UP 中 5 个核心工作流 其它工作流 需求 :  捕获系统应该做什么 分析 :  精化和结构化需求 设计 :  在系统架构内实现需求 实现 :  构造软件 测试 :  验证实现是否如期望那样工作
软件开发模型 第 1 次 迭代 第 2 次 迭代 第 n-1 次迭代 初始 细化 构造 移交 需求 第 n 次 迭代 分析 设计 实现 测试 随着项目按 UP 的阶段进展,每个核心工作流的工作量发生变化
软件开发模型 与需求比 较后修正 形式化 规格说明 形式化开发记录 变换 n 变换 2 变换 1 测 试 系统 需求 目标 系统 ,[object Object]
软件开发模型 计算无关模型 (CIM) 平台独立模型 (PIM) 代码 (Code)  平台相关模型 (PSM) PIM 是独立于任何底层平台的 ( 例如, EJB, .Net) 、表达软件系统业务语义的模型。 PSM 包含了所有在 PIM 中表达的功能,并且还添加了针对实现平台的设计思想。 软件系统 (Software System)  映射 产生 部署 ,[object Object],CIM 是非常高级层次的抽象模型,它以一种独立于计算机的方式捕获了系统的关键需求以及问题域的词汇。
软件开发模型 ,[object Object],[object Object],[object Object],[object Object]
主要内容 5 6 3   7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object]
软件需求分析 (1) 通过对现实环境的调查研究,获取当前系统的具体模型。 学 生 张秘书 王会计 李出纳 赵保管 学 生 购书申请 购书证明 购书发票 领书单 书 学生购买教材的具体模型
软件需求分析 ,[object Object],[object Object],审查有效性 学 生 开发票 开领书单 发书 学 生 购书单 有效购书单 发票 领书单 书 学生购买教材的逻辑模型
软件需求分析 ,[object Object],目标系统是一个使用计算机的系统。一般来说,它的功能比当前现行业务系统更强,不必也不应该完全模拟现行系统! 学 生 审查并开发票 开领书单 发书 学 生 购书单 发票 领书单 书 计算机售书系统的逻辑模型
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 学 生 审查并开发票 开领书单 学 生 购书单 发票 领书单 改进的计算机售书系统的逻辑模型 无效购书单
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],数据 词典 数 据 流 图 实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对 象 描 述 功能模型 行为模型 信息模型
软件需求分析 ,[object Object],数据流图 (DFD) 指明系统中的数据是如何流动和变换的,以及描述使用数据流进行变换的功能 . 在 DFD 中出现的每个功能的描述写在加工规格说明 (PSPEC) 中 . 状态转换图 (STD) 用于指明系统在外部事件的作用下将会如何动作,表明了系统的各种状态以及各种状态之间的变迁 . 控制规格说明 (CSPEC) 描述了控制方面的附加信息 . 数据字典 (DD) 是系统所涉及的各种数据对象的总和 . 实体关系图 (E-RD) 描述数据对象之间的关系 . 在 E-R 图中出现的每个数据对象的属性均可用数据对象说明 (DOSPEC) 来描述 . 数据 词典 数 据 流 图 实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对 象 描 述 功能模型 行为模型 信息模型
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],加工 / 转换 / 处理 数据流 实体 数据存储 DFD 图的基本符号
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 检查取款单合理性 取款单 合理取款单 不合理取款单 账目  生产 统计 生产日报 生产月报 生产统计报表 +
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],生产 统计 生产日报 生产月报 生产统计报表 +
软件需求分析 ,[object Object],数据流 源点 数据流 终点 学 生 审查并开发票 开领书单 学 生 购书单 发票 领书单 无效购书单
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],互斥关系 与关系 或关系 检查取款单合理性 取款单 合理取款单 不合理取款单 账目  生产 统计 生产日报 生产月报 生产统计报表 +
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 顶层 DFD ,[object Object],教材购销 系统 学 生 书库 保管员 购书单 领书单 缺书单 进书通知 第 2 层 DFD(0) 1 销售 学 生 书库 保管员 购书单 领书单 缺书单 进书通知 2 采购 F1 教材存量表 F2 缺书登记 进书通知
软件需求分析 1.1 审查购书单有效性 学 生 购书单 无效购书单 领书单 发票 进书通知 第 3 层 DFD- 销售子系统 (1) 1.2 开发票 1.3 打印发票 1.4 登记售书 和打印 领书单 1.5 登记缺书 1.6 产生补 售书单 采 购 有效购书单 发票 学 生 暂缺书单 补售书单 F1 教材存量表 F2 缺书登记 F3 学生用书表 F4 售书登记表
软件需求分析 销 售 进书通知 2.3 修改教材库存 和待购量 2.2 按出版社 统计缺书 2.1 按书号 汇总缺书 书库 保管员 缺书单 进书通知 第 3 层 DFD- 采购子系统 (2) F1 教材存量表 F2 缺书登记 F5 待购教材表 F6 教材一览表
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],数据项名称 数据流“发票”字典条目 备  注: 组  成: 学号 + 姓名 +{ 书号 + 单价 + 数量 + 总价 }+ 书  费合计 别  名: 购书发票 数据流名: 发票
软件需求分析 ,[object Object],[object Object],数据文件“各班学生用书表”字典条目 组  织: 按系、专业和班编号从小到大排列 备  注: 组  成: { 系编号 + 专业和班编号 + 年级 +{ 书号 }} 别  名: 文  件  名: 各班学生用书表
软件需求分析 ,[object Object],数据项“年级”的条目 备  注: 取值及含义: F-freshman, 一年级 M-sophomore, 二年级 J-junior ,三年级 S-senior ,四年级 别  名: 数据项名: 年级
软件需求分析 数据项“数量”的条目 数据项“书费合计”的条目 备  注: 取  值: 正整数 别  名: 购书量 数据项名: 数量 备  注: 取  值: 00.00-99.99 别  名: 数据项名: 书费合计
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],实体名称 实体表示 属性名称 属性表示 学生 成绩 示例 学生 学号 姓名 性别 专业 籍贯 示例
软件需求分析 关系名称 关系表示 工程 零件 供应 供应商 1 m n 存储 仓库 1 m 示例
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 实体名 / 实体号 实体名 / 实体号 独立实体表示符号 依赖实体表示符号 学生 /1 学生成绩 /2
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 实体名 / 实体号 属性名 [ 属性名 ] … [ 属性名 ](AK1) [ 属性名 ](AK2) [ 属性名 ](AK2) 主关键字属性 次关键字 雇员 /1 雇员号 身份证号码 (AK1) 雇员名 (AK2) 生日 (AK2) …
软件需求分析 发票 /2 发票编号 学号 姓名 书费合计 发票行 /3 发票编号 发票行号 书号 单价 数量 总价 独立标识实体 依赖标识实体 ( 不能脱离发票而独立存在 )
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 实体 A/1 关键字 A 实体 B/2 关键字 A(FK) 关键字 B 父实体 关系名 子实体 标识联接关系
软件需求分析 零个、 1 个或多个 P 1 个或多个 Z 0 个或 1 个 n 只有 n 个 nm 有 n 到 m 个 (n) 参考注释中的说明 实体 A/1 关键字 A 实体 B/2 关键字 B 父实体 关系名 子实体 关键字 A(FK) 非标识联接关系
软件需求分析 发票 /2 发票编号 学号 姓名 书费合计 发票行 /3 发票编号 发票行号 书号 单价 数量 总价 包含
软件需求分析 ,[object Object],一般实体 分类实体 分类实体集 鉴别器 分类属性
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 一般实体 一般实体 鉴别器 分类实体 分类实体 鉴别器 完全分类关系 非完全分类关系
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],DFD PSPEC CFD CSPEC 行为模型 过程模型 输入数据 输出数据 输入控制 输出控制 数据条件 加工激活信号
软件需求分析 ,[object Object],处理 / 加工 数据流 实体 数据存储 CFD 的符号 控制流 被引用的控制说明
软件需求分析 ,[object Object],[object Object]
软件需求分析 对于实时系统,在创建了 DFD( 过程模型 ) 之后还必须创建 CFD( 行为模型 ) ,以便描述相关的事件以及系统状态在时间坐标系中的变迁。 例如,首先画出光电管采集 DFD 。
软件需求分析 光电管 采集 计数 传送 工控机处理 班数据处理 实时数据显示 信号 半分钟数据 光电管采集 DFD 例如,首先画出光电管采集 DFD 。 半小时数据 班数据
软件需求分析 在光电管采集 DFD 的基础上加上事件和控制信息,并加上控制说明的引用,即可得到光电管采集系统的 CFD 。 光电管采集 CFD 光电管 采集 计数 传送 工控机处理 班数据处理 实时数据显示 半小时数据 班数据 信号 半分钟数据 物品经过 某型号累加 无动作 半分钟 半小时 翻屏 人工驱动信息 时钟
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 1 2 0 A B A B V 图编号 1.1 1.2 1.3 A V M N 1 处理编号
软件需求分析 教材购销系统 DFD
软件需求分析 ,[object Object]
软件需求分析
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 F5 和 F6 是采购子系统局部数据存储,与父图中的其它加工无关,所以在父图中不必画出。 F1 和 F2 是采购子系统与销售子系统之间的接口,所以在父图中必须画出。
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],数据流: 领书单、发票、暂缺书单、购书单 ( 有效 / 无效 ) 、补售书单、进书通知。 数据存储: 教材存量表、缺书登记、学生用书表、售书登记 数据流: 缺书单、进书通知。 数据存储: 教材存量表、缺书登记、待购较教材表、教材一览表
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 面向对象分析方法
软件需求分析 ,[object Object],Booch : Booch 方法 Rumbaugh :对象建模技术 (OMT) Jackson : Jackson 方法
软件需求分析 ,[object Object],UP 的历史 Rational 统一过程 (RUP) 是 IBMUP 的商业版本。 RUP 是 UP 的扩展。 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 逻辑视图 进程视图 实现视图 部署视图 用例视图 关注: 项目词汇表 功能 关注: 性能 伸缩性 吞吐量 关注: 系统装配 配置管理 关注: 系统拓扑 分发 移交 安装 ,[object Object],图: 类图 复合结构图 对象图 包图 状态图 图: 组件图 图: 类图 复合结构图 对象图 图: 部署图 图: 用例图 交互图
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],用例 : 是参与者想要系统做的事情。 参与者 ( 角色 ): 说明当与系统直接交互时,一些外部实体采用的角色。 主题 ( 系统边界 ) : 定义由谁或什么 ( 即,参与者 ) 使用系统,系统能够为哪些参与者提供什么特定利益 ( 即,用例 ) 。
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 用例名称 用例 ID 简要描述 参与用例的参与者 前置条件 主流 后置条件 附流
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 一般参与者 参与者泛化 特殊者泛化
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 Y Y Y 附流 Y Y Y 主流中的步骤 Y Y Y 后置条件 Y Y Y 前置条件 N Y Y 扩展点 N Y Y 关系 覆写 添加 继承 用例特性
软件需求分析 一般用例 特殊用例 用例泛化 ,[object Object],继承不改变  3.(3.) 继承和重复编号  6.2(6.1) 继承且覆写  1(o1) 继承、覆写及重编号  5.2(o5.1) 添加  6.3
软件需求分析 继承不改变  3.(3.) 继承和重复编号  6.2(6.1) 继承且覆写  1(o1) 继承、覆写及重编号  5.2(o5.1) 添加  6.3
软件需求分析 ,[object Object]
软件需求分析 基础用例 内含用例 包含关系
软件需求分析 ,[object Object]
软件需求分析 基础用例 包含用例
软件需求分析 ,[object Object]
软件需求分析 扩展用例 基础用例 扩展关系
软件需求分析 基础用例 扩展用例 扩展类名称 ,[object Object],扩展类
软件需求分析 ,[object Object],基础用例 扩展用例
软件需求分析 ,[object Object],基础用例 扩展用例 扩展类名称
软件需求分析 ,[object Object],基础用例 扩展用例
软件需求分析 ,[object Object]
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 属性值 操作 对象中的数据被隐藏,仅能通过调用对象的函数才能操纵数据。 ,[object Object],123456 Jim 300.00 Deposit() withdraw() getOwner() setOwner()
软件需求分析 Bank 对象 Account 对象 Bank 对象发送信息“ withdraw 150.00” 给 Account 对象 Account 对象响应,调用它的取款操作。该操作减少账户余额 150.00 withdraw(150.00) 对象交互产生系统的行为 交互涉及对象之间来回发送消息。当接收到消息时,则调用相应的方法,这可能引起状态的改变。 ,[object Object]
软件需求分析 JimsAccount:Account accoutNumber:String=“123456” owner:String=“Jim” balance:double=300.00 对象名称 类名称 属性名称 属性类型 属性值 名称分栏 属性分栏 ,[object Object]
软件需求分析 ,[object Object],bookClub:Club 张三 :Person 李四 :Person 王二 :Person chairperson secretary member 角色名称 双向链接
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 <<entity>> Account -number:String -owner:String -balance:double=0.0 +create( theNumber:String, theOwner:String ) +deposit( amount:double ) +withdraw( amount:double ) +getNumber(): String  +getOwner(): String  +getBalance(): double  +setOwner( theOwner:String ) {author=Jim, Status=tested} 名称分栏 属性分栏 操作分栏 可见性修饰 构造型 类名称 标记值 初始值 类范围操作 ( 加下划线 ) ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],可见性 名称 类型 多重性 初始值 visibility name: type [multiplicity]=initialValue
软件需求分析 1) 可视性: 可视性修饰作用于类内属性和操作。它也可以作用于关系上的角色名称。 与该类处于相同包中的或者是在嵌套子包中的任何元素能够访问该类带有的包可视性的任何特征 package ~ 只有该类及其子类的操作才能访问该类带有的保护可视性的特征 protected # 只有该类的操作才能访问该类待有的私有可视性的特征 private - 能够访问该类的任何元素可以访问该类带有的公共可视性的任何特征 public + 语义 可视性名称 修饰
软件需求分析 2) 类型:属性的类型可以是其他的类型或者原始类型。 字符的序列,字符串被双引号括起来 String 浮点数 Real OCL 可以取值 true 或者 false Boolean 大于等于零的整数 UnlimitedNatural 整数 Integer UML 语义 原始类型
软件需求分析 3) 多重性: 多重性允许你在一个属性上通过使用多重性表达式建模两种显著不同的事物:集合和空值。 4) 初始值: 当某个类实例化对象时,初始值允许你说明属性此时采用的值。 5) 构造型和标记值: <<stereotype>> attribute{tag1=value1,tag2=value2,…} address{ addedBy=“Jim”, data Added=“20MAR2004”}
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],visibility name(direction parameterName:parameterType =defaultValue,…):returnType 操作签名 参数列表
软件需求分析 该操作接受 p2 作为输入参数 / 输出参数 该操作以某种方式使用 p2 的值,并且接受该操作的输出 p2 可以被该操作所修改 inout p2:Integer 默认情况, 该操作使用 p1 作为输入参数 该操作以某种方式使用 p1 的值 p1 不能被该操作所修改 in p1:Integer 语义 参数方向
软件需求分析 该操作使用 p4 作为返回值参数 该操作返回 p4 作为返回值之一 return p4:Integer 该操作使用 p3 作为输出参数 该参数作为接收器接受该操作输出的值 P3 可以被该操作所修改 out p3:Integer 语义 参数方向
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 JimAccount:Account accoutNumber:String=“123456” owner:String=“Jim” balance:double=300.00 <<instantiate>> <<instantiate>> ,[object Object],TomAccount:Account accoutNumber:String=“123457” owner:String=“Tom” balance:double=1000.00 Account accoutNumber:String owner:String balance:double deposit() withdraw() getOwner() setOwner()
软件需求分析 ,[object Object],Company Person employs 1 * 关联名称 导航性 多重性 Company Person employer 1 * 角色名称 多重性 employee 导航性
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],Company Person employee 1 7 BankAccount employer 1 1..* owner operator 0..* 0..*
软件需求分析 ,[object Object],[object Object],[object Object],Order Product * * 可导航的 不可导航的 Company Person 1 * 可导航的 可导航的
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],Company Person * * Company Person * * salary: double Job 关联类 关联类由类、关联和虚线组成
软件需求分析 一些对象弱相关,像计算机和它的外设 一些对象强相关,像树和树叶 聚合 组合 ,[object Object]
软件需求分析 Computer Printer 0..1 0..* 整体或聚集 部分 聚合 聚合语义: 聚集有时能够不依赖部分而独立存在,有时又不能;部分可以独立于聚集而独立存在;如果有一些部分遗失,聚集在某种意义上是不完整的;部分的所有权可能由几个聚集来共享。 1) 聚合: 聚合是一种整体 - 部分关系,其中聚集由许多部分组成。
软件需求分析 如果 C 是 B 的部分, B 是 A 的部分,那么 C 是 A 的部分 ,[object Object],[object Object],A B C Product 自反对称 * * A:Product B:Product C:Product D:Product 不允许循环
软件需求分析 Product 自反对称 * * A:Product B:Product C:Product D:Product
软件需求分析 Tree leaf 1 0..* 组成 部分 组合 2) 组合: 组合是一种更强形式的聚合,也具有类似的语义,但是更加受约束。组合具有传递性和非对称性。 组合与聚合的区别在于: 在组合中,部分脱离了整体就不能独立存在,此外,组合中的每个部分至多属于一个整体,也只能属于一个整体;在聚合中,一个部分可以由几个整体共享。
软件需求分析 ,[object Object],客户使用由提供者所提供的服务以实现它的行为。 Usage( 使用 ) 语义 类型
软件需求分析 提供者为客户提供某种权限以访问提供者的内容,这是一种提供者控制和限制对其内容访问的方法。 Permission( 授权 ) 这表示客户和提供者之间的关系,提供者必客户更加抽象。“更加抽象”意味着提供者和客户处于开发中的不同阶段,例如,提供者处于分析模型,客户处于设计模型。 Abstraction( 抽象 ) 语义 类型
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 A foo(b:B) bar():B doSomthing() B <<use>> 提供者 客户
软件需求分析 2 )  <<call>> : 操作之间的依赖,客户操作调用提供者操作。 3 )  <<parameter>> : 提供者是客户操作上的参数。 4 )  <<send>> : 客户把提供者 ( 它必须信号 ) 发送到指定的目标。 5 ) <<instantiate>> : 客户是提供者的实例 ( 对象与类之间的实例化关系 ) 。
软件需求分析 Shape Square Circle Triangle is a kind of 父类 超类 基类 先辈 特  化 泛  化 更一般元素 更特殊元素 儿子 子类 后裔 ,[object Object]
软件需求分析 ,[object Object]
软件需求分析 覆写超类操作 Shape origin:Point width:int Height:int draw(Grahics g) getArea():int getBoundingArea():int Square draw(Grahics g) getArea():int Circle draw(Grahics g) getArea():int
软件需求分析 ,[object Object],[object Object]
软件需求分析 抽象操作 具体操作 抽象类 具体类 Shape origin:Point width:int Height:int draw(Grahics g) getArea():int getBoundingArea():int Square draw(Grahics g) getArea():int Circle draw(Grahics g) getArea():int
软件需求分析 ,[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],RegistrationManager Course Student 0..* 0..* registration 1 1 0..* 0..* course student 用例 分析类图
软件需求分析 ,[object Object],:RegistrationManager :Registrar uml:Course addCourse(“UML”) <<create>> 生命线 激活 同步消息 返回消息 The Registrar selects “add course”. sd addCourse 注释 对象创建消息 对象在该点被创建 关键字 顺序图名称
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 aMessage(aParameter) aMessage(aParameter) <<create>>aMessage() :A 同步消息 异步消息 返回消息 消息创建 发现消息 丢失消息
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],shoppingBasket getItem():Item Item quantity:int setQuantity():int 1 0..*
软件需求分析 :ShoppingBasket :Customer item:Item getItem() sd ManageBasket alt [chanageQuantity] [deleteItem] setQuantity() Opt[item.quantity<=0] <<destroy>> <<destroy>>
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object]
软件需求分析 sd LoopAndBreakSyntax :A :B loop min,max[condition1] op1() loop[condition2] op2() op3() op4() 循环 min 次,然后当 condition1 为 true ,循环 (max-min) 次 break[condition3] 当 condition2 为 true ,执行循环 循环中断结束后执行 op3 如果 break 执行, op4 将不执行 当 condition3 为 true ,循环中断
软件需求分析 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 Off On turnOn turnOff burnOut 灯泡
软件需求分析 EnteringPassword entry /display password dialog exit /validate password keypress/echo “*” help/display help do /get password 状态名称 入口和出口动作 内部迁移 内部活动 动作语法: eventName/someAction 活动语法: do/someActivity  ,[object Object]
软件需求分析 A B event1,event2[guardcondition]/anAction 行为状态机 ,[object Object],当事件 event1 和 event2 发生时,如果条件 condition 成立,则执行动作 anAction
软件需求分析 OnLoan Overdue FineDue Terminated [after maximumDuration] returnBook returnBook payFine Loan [extend] [!extend] 监护条件互斥 带有汇合和分支的交叉 ,[object Object]
软件需求分析 Unpaid Overpaid Fullypaid Partiallypaid acceptPayment [payment>balance] [payment<balance] [payment=balance] MakeRefund acceptPayment BankLoan 选择伪状态 ,[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 deposit(m)/balance=balance+m  InCredit Rejecting withdrawal entry/logRejectedWithdraw()  Accepting withdrawal entry/balance-m  withdraw(m) [balance<m] withdraw(m) [balance>=m] close() BankAccount 调用内部事件 动作 调用外部事件 条件 入口动作 ,[object Object]
软件需求分析 deposit(m)/balance=balance+m   InCredit Rejecting withdrawal entry/logRejectedWithdraw()  Accepting withdrawal entry/balance-m  withdraw(m) [balance<m] withdraw(m) [balance>=m] close() BankAccount 信号发送 RejectedWithdrawal ,[object Object]
软件需求分析 ProcessRejectedWithdrawl (e:RejectedWithdrawal) Calling  customer 信号接收 <<signal>> RejectedWithdrawal date:Date accountNumber:String requestedAmout:double availabelBalance:double
软件需求分析 ,[object Object],deposit(m)/balance=balance+m balance>=5000/notifyManager() InCredit Rejecting withdrawal entry/logRejectedWithdraw()   Accepting withdrawal entry/balance-m  withdraw(m) [balance<m] withdraw(m) [balance>=m] close() BankAccount 布尔表达式 RejectedWithdrawal
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object]
软件需求分析
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object],物料 材料 在制品 国产材料 进口材料 显象管 荫罩 屏 锥
软件需求分析 ,[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object],[object Object]
软件需求分析 ,[object Object],[object Object],[object Object]
主要内容 5 6 3   7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
软件设计 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件设计 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件设计 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
软件设计 ,[object Object],[object Object],[object Object]
软件设计 ,[object Object],[object Object],[object Object]
软件设计 ,[object Object],[object Object],[object Object],[object Object],[object Object]
软件设计 模块数与开发工作量的关系 1 接口成本 1 模块成本 模块数 软件开发工作量 1 总成本 最小成本区间
软件设计 ,[object Object],[object Object],[object Object],[object Object]
软件设计 ,[object Object],弱 强 低内聚 中内聚 高内聚 ,[object Object],功能 内聚 顺序 内聚 通讯 内聚 过程 内聚 时间 内聚 逻辑 内聚 偶然 内聚
软件设计 ,[object Object],[object Object],[object Object],[object Object],读入分数 计算平均分 计算最高分 平均 / 最高 输出结果 逻辑内聚性模块
软件设计 ,[object Object],[object Object]
软件设计 ,[object Object],过程性内聚性模块 建立方程组系数矩阵 高斯消去法 回 代 高斯消去法解题流程
软件设计 ,[object Object],开领书单 登记售书 领书单 售书登记表 发票 具有相同的输入数据 删除 修改 售书登记表 具有相同的输出数据
软件设计 ,[object Object]
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010
软件工程2010

More Related Content

Similar to 软件工程2010

软件构造第一章
软件构造第一章软件构造第一章
软件构造第一章guest58ec466
 
杨根兴 软件过程改进与敏捷方法
杨根兴   软件过程改进与敏捷方法杨根兴   软件过程改进与敏捷方法
杨根兴 软件过程改进与敏捷方法Odd-e
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
软件工程
软件工程软件工程
软件工程bill0077
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)Rick Hwang
 
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角yushilin
 
[圣思园][Java SE]000 讲师张龙简介
[圣思园][Java SE]000 讲师张龙简介[圣思园][Java SE]000 讲师张龙简介
[圣思园][Java SE]000 讲师张龙简介ArBing Xie
 
CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13moris lee
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生appuniverz
 
大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践Sean Zhong
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列Chris Wang
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意cucued
 
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ryan4task
 

Similar to 软件工程2010 (20)

软件构造第一章
软件构造第一章软件构造第一章
软件构造第一章
 
杨根兴 软件过程改进与敏捷方法
杨根兴   软件过程改进与敏捷方法杨根兴   软件过程改进与敏捷方法
杨根兴 软件过程改进与敏捷方法
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
OOAD
OOADOOAD
OOAD
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
软件工程
软件工程软件工程
软件工程
 
Ch16
Ch16Ch16
Ch16
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
從理想、到現實的距離,開啟品味軟體測試之路 - 台灣軟體工程協會 (20220813)
 
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
 
[圣思园][Java SE]000 讲师张龙简介
[圣思园][Java SE]000 讲师张龙简介[圣思园][Java SE]000 讲师张龙简介
[圣思园][Java SE]000 讲师张龙简介
 
CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13CBAP商業分析讀書會 20140218 CH13
CBAP商業分析讀書會 20140218 CH13
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生
 
大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践大数据的Reactive设计范式和akka实践
大数据的Reactive设计范式和akka实践
 
歡迎加入軟體構築行列
歡迎加入軟體構築行列歡迎加入軟體構築行列
歡迎加入軟體構築行列
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意
 
Ch03
Ch03Ch03
Ch03
 
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
ACCELERATE:精益軟體與DevOps背後的科學-重點整理、個人見解與實務經驗
 
Ch01
Ch01Ch01
Ch01
 

More from fantasy zheng

Vpn intro by dongshuzhao
Vpn intro by dongshuzhaoVpn intro by dongshuzhao
Vpn intro by dongshuzhaofantasy zheng
 
The true story_of_hello_world
The true story_of_hello_worldThe true story_of_hello_world
The true story_of_hello_worldfantasy zheng
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python introfantasy zheng
 
开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2fantasy zheng
 
开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2fantasy zheng
 
开源沙龙第一期个人知识管理
开源沙龙第一期个人知识管理开源沙龙第一期个人知识管理
开源沙龙第一期个人知识管理fantasy zheng
 

More from fantasy zheng (9)

Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Phpsecurity.ppt
Phpsecurity.pptPhpsecurity.ppt
Phpsecurity.ppt
 
Vpn intro by dongshuzhao
Vpn intro by dongshuzhaoVpn intro by dongshuzhao
Vpn intro by dongshuzhao
 
F**k Gfw
F**k  GfwF**k  Gfw
F**k Gfw
 
The true story_of_hello_world
The true story_of_hello_worldThe true story_of_hello_world
The true story_of_hello_world
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python intro
 
开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2
 
开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2开源沙龙第一期 个人知识管理2
开源沙龙第一期 个人知识管理2
 
开源沙龙第一期个人知识管理
开源沙龙第一期个人知识管理开源沙龙第一期个人知识管理
开源沙龙第一期个人知识管理
 

Recently uploaded

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 

Recently uploaded (6)

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 

软件工程2010

  • 1. 软件工程 哈尔滨工业大学 ( 威海 ) 计算机科学与技术学院 孟凡超 Email : [email_address] Tele: 15163155787
  • 2.
  • 3. 主要内容 5 6 3 7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
  • 4. 主要内容 5 6 3 7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. 软件工程概述 系统 过程 硬件 软件 人 数据库 文档 输入 输出 基于计算机的系统要素
  • 45.
  • 46. 主要内容 5 6 3 7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
  • 47.
  • 48.
  • 49. 软件开发模型 需求分析 软件设计 编码 维护 测试 问题定义 可行性研究 计划时期 开发时期 维护时期
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70. 软件开发模型 需求 分析 设计 实现 测试 迭代 评估 计划 项目相关 其他活动 UP 中 5 个核心工作流 其它工作流 需求 : 捕获系统应该做什么 分析 : 精化和结构化需求 设计 : 在系统架构内实现需求 实现 : 构造软件 测试 : 验证实现是否如期望那样工作
  • 71. 软件开发模型 第 1 次 迭代 第 2 次 迭代 第 n-1 次迭代 初始 细化 构造 移交 需求 第 n 次 迭代 分析 设计 实现 测试 随着项目按 UP 的阶段进展,每个核心工作流的工作量发生变化
  • 72.
  • 73.
  • 74.
  • 75. 主要内容 5 6 3 7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. 软件需求分析 (1) 通过对现实环境的调查研究,获取当前系统的具体模型。 学 生 张秘书 王会计 李出纳 赵保管 学 生 购书申请 购书证明 购书发票 领书单 书 学生购买教材的具体模型
  • 83.
  • 84.
  • 85.
  • 86. 软件需求分析 学 生 审查并开发票 开领书单 学 生 购书单 发票 领书单 改进的计算机售书系统的逻辑模型 无效购书单
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94. 软件需求分析 检查取款单合理性 取款单 合理取款单 不合理取款单 账目  生产 统计 生产日报 生产月报 生产统计报表 +
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104. 软件需求分析 1.1 审查购书单有效性 学 生 购书单 无效购书单 领书单 发票 进书通知 第 3 层 DFD- 销售子系统 (1) 1.2 开发票 1.3 打印发票 1.4 登记售书 和打印 领书单 1.5 登记缺书 1.6 产生补 售书单 采 购 有效购书单 发票 学 生 暂缺书单 补售书单 F1 教材存量表 F2 缺书登记 F3 学生用书表 F4 售书登记表
  • 105. 软件需求分析 销 售 进书通知 2.3 修改教材库存 和待购量 2.2 按出版社 统计缺书 2.1 按书号 汇总缺书 书库 保管员 缺书单 进书通知 第 3 层 DFD- 采购子系统 (2) F1 教材存量表 F2 缺书登记 F5 待购教材表 F6 教材一览表
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111. 软件需求分析 数据项“数量”的条目 数据项“书费合计”的条目 备 注: 取 值: 正整数 别 名: 购书量 数据项名: 数量 备 注: 取 值: 00.00-99.99 别 名: 数据项名: 书费合计
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121. 软件需求分析 关系名称 关系表示 工程 零件 供应 供应商 1 m n 存储 仓库 1 m 示例
  • 122.
  • 123.
  • 124.
  • 125. 软件需求分析 实体名 / 实体号 实体名 / 实体号 独立实体表示符号 依赖实体表示符号 学生 /1 学生成绩 /2
  • 126.
  • 127. 软件需求分析 实体名 / 实体号 属性名 [ 属性名 ] … [ 属性名 ](AK1) [ 属性名 ](AK2) [ 属性名 ](AK2) 主关键字属性 次关键字 雇员 /1 雇员号 身份证号码 (AK1) 雇员名 (AK2) 生日 (AK2) …
  • 128. 软件需求分析 发票 /2 发票编号 学号 姓名 书费合计 发票行 /3 发票编号 发票行号 书号 单价 数量 总价 独立标识实体 依赖标识实体 ( 不能脱离发票而独立存在 )
  • 129.
  • 130. 软件需求分析 实体 A/1 关键字 A 实体 B/2 关键字 A(FK) 关键字 B 父实体 关系名 子实体 标识联接关系
  • 131. 软件需求分析 零个、 1 个或多个 P 1 个或多个 Z 0 个或 1 个 n 只有 n 个 nm 有 n 到 m 个 (n) 参考注释中的说明 实体 A/1 关键字 A 实体 B/2 关键字 B 父实体 关系名 子实体 关键字 A(FK) 非标识联接关系
  • 132. 软件需求分析 发票 /2 发票编号 学号 姓名 书费合计 发票行 /3 发票编号 发票行号 书号 单价 数量 总价 包含
  • 133.
  • 134.
  • 135. 软件需求分析 一般实体 一般实体 鉴别器 分类实体 分类实体 鉴别器 完全分类关系 非完全分类关系
  • 136.
  • 137.
  • 138.
  • 139.
  • 140. 软件需求分析 对于实时系统,在创建了 DFD( 过程模型 ) 之后还必须创建 CFD( 行为模型 ) ,以便描述相关的事件以及系统状态在时间坐标系中的变迁。 例如,首先画出光电管采集 DFD 。
  • 141. 软件需求分析 光电管 采集 计数 传送 工控机处理 班数据处理 实时数据显示 信号 半分钟数据 光电管采集 DFD 例如,首先画出光电管采集 DFD 。 半小时数据 班数据
  • 142. 软件需求分析 在光电管采集 DFD 的基础上加上事件和控制信息,并加上控制说明的引用,即可得到光电管采集系统的 CFD 。 光电管采集 CFD 光电管 采集 计数 传送 工控机处理 班数据处理 实时数据显示 半小时数据 班数据 信号 半分钟数据 物品经过 某型号累加 无动作 半分钟 半小时 翻屏 人工驱动信息 时钟
  • 143.
  • 144.
  • 145.
  • 146. 软件需求分析 1 2 0 A B A B V 图编号 1.1 1.2 1.3 A V M N 1 处理编号
  • 148.
  • 150.
  • 151. 软件需求分析 F5 和 F6 是采购子系统局部数据存储,与父图中的其它加工无关,所以在父图中不必画出。 F1 和 F2 是采购子系统与销售子系统之间的接口,所以在父图中必须画出。
  • 152.
  • 153.
  • 154.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168. 软件需求分析 用例名称 用例 ID 简要描述 参与用例的参与者 前置条件 主流 后置条件 附流
  • 169.
  • 170.
  • 172.
  • 173. 软件需求分析 Y Y Y 附流 Y Y Y 主流中的步骤 Y Y Y 后置条件 Y Y Y 前置条件 N Y Y 扩展点 N Y Y 关系 覆写 添加 继承 用例特性
  • 174.
  • 175. 软件需求分析 继承不改变 3.(3.) 继承和重复编号 6.2(6.1) 继承且覆写 1(o1) 继承、覆写及重编号 5.2(o5.1) 添加 6.3
  • 176.
  • 178.
  • 180.
  • 182.
  • 183.
  • 184.
  • 185.
  • 186.
  • 187.
  • 188.
  • 189.
  • 190.
  • 191.
  • 192.
  • 193.
  • 194.
  • 195.
  • 196.
  • 197.
  • 198.
  • 199. 软件需求分析 1) 可视性: 可视性修饰作用于类内属性和操作。它也可以作用于关系上的角色名称。 与该类处于相同包中的或者是在嵌套子包中的任何元素能够访问该类带有的包可视性的任何特征 package ~ 只有该类及其子类的操作才能访问该类带有的保护可视性的特征 protected # 只有该类的操作才能访问该类待有的私有可视性的特征 private - 能够访问该类的任何元素可以访问该类带有的公共可视性的任何特征 public + 语义 可视性名称 修饰
  • 200. 软件需求分析 2) 类型:属性的类型可以是其他的类型或者原始类型。 字符的序列,字符串被双引号括起来 String 浮点数 Real OCL 可以取值 true 或者 false Boolean 大于等于零的整数 UnlimitedNatural 整数 Integer UML 语义 原始类型
  • 201. 软件需求分析 3) 多重性: 多重性允许你在一个属性上通过使用多重性表达式建模两种显著不同的事物:集合和空值。 4) 初始值: 当某个类实例化对象时,初始值允许你说明属性此时采用的值。 5) 构造型和标记值: <<stereotype>> attribute{tag1=value1,tag2=value2,…} address{ addedBy=“Jim”, data Added=“20MAR2004”}
  • 202.
  • 203. 软件需求分析 该操作接受 p2 作为输入参数 / 输出参数 该操作以某种方式使用 p2 的值,并且接受该操作的输出 p2 可以被该操作所修改 inout p2:Integer 默认情况, 该操作使用 p1 作为输入参数 该操作以某种方式使用 p1 的值 p1 不能被该操作所修改 in p1:Integer 语义 参数方向
  • 204. 软件需求分析 该操作使用 p4 作为返回值参数 该操作返回 p4 作为返回值之一 return p4:Integer 该操作使用 p3 作为输出参数 该参数作为接收器接受该操作输出的值 P3 可以被该操作所修改 out p3:Integer 语义 参数方向
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216. 软件需求分析 Computer Printer 0..1 0..* 整体或聚集 部分 聚合 聚合语义: 聚集有时能够不依赖部分而独立存在,有时又不能;部分可以独立于聚集而独立存在;如果有一些部分遗失,聚集在某种意义上是不完整的;部分的所有权可能由几个聚集来共享。 1) 聚合: 聚合是一种整体 - 部分关系,其中聚集由许多部分组成。
  • 217.
  • 218. 软件需求分析 Product 自反对称 * * A:Product B:Product C:Product D:Product
  • 219. 软件需求分析 Tree leaf 1 0..* 组成 部分 组合 2) 组合: 组合是一种更强形式的聚合,也具有类似的语义,但是更加受约束。组合具有传递性和非对称性。 组合与聚合的区别在于: 在组合中,部分脱离了整体就不能独立存在,此外,组合中的每个部分至多属于一个整体,也只能属于一个整体;在聚合中,一个部分可以由几个整体共享。
  • 220.
  • 221. 软件需求分析 提供者为客户提供某种权限以访问提供者的内容,这是一种提供者控制和限制对其内容访问的方法。 Permission( 授权 ) 这表示客户和提供者之间的关系,提供者必客户更加抽象。“更加抽象”意味着提供者和客户处于开发中的不同阶段,例如,提供者处于分析模型,客户处于设计模型。 Abstraction( 抽象 ) 语义 类型
  • 222.
  • 223. 软件需求分析 A foo(b:B) bar():B doSomthing() B <<use>> 提供者 客户
  • 224. 软件需求分析 2 ) <<call>> : 操作之间的依赖,客户操作调用提供者操作。 3 ) <<parameter>> : 提供者是客户操作上的参数。 4 ) <<send>> : 客户把提供者 ( 它必须信号 ) 发送到指定的目标。 5 ) <<instantiate>> : 客户是提供者的实例 ( 对象与类之间的实例化关系 ) 。
  • 225.
  • 226.
  • 227. 软件需求分析 覆写超类操作 Shape origin:Point width:int Height:int draw(Grahics g) getArea():int getBoundingArea():int Square draw(Grahics g) getArea():int Circle draw(Grahics g) getArea():int
  • 228.
  • 229. 软件需求分析 抽象操作 具体操作 抽象类 具体类 Shape origin:Point width:int Height:int draw(Grahics g) getArea():int getBoundingArea():int Square draw(Grahics g) getArea():int Circle draw(Grahics g) getArea():int
  • 230.
  • 231.
  • 232.
  • 233.
  • 234.
  • 235.
  • 236.
  • 237. 软件需求分析 aMessage(aParameter) aMessage(aParameter) <<create>>aMessage() :A 同步消息 异步消息 返回消息 消息创建 发现消息 丢失消息
  • 238.
  • 239.
  • 240.
  • 241.
  • 242. 软件需求分析 :ShoppingBasket :Customer item:Item getItem() sd ManageBasket alt [chanageQuantity] [deleteItem] setQuantity() Opt[item.quantity<=0] <<destroy>> <<destroy>>
  • 243.
  • 244.
  • 245. 软件需求分析 sd LoopAndBreakSyntax :A :B loop min,max[condition1] op1() loop[condition2] op2() op3() op4() 循环 min 次,然后当 condition1 为 true ,循环 (max-min) 次 break[condition3] 当 condition2 为 true ,执行循环 循环中断结束后执行 op3 如果 break 执行, op4 将不执行 当 condition3 为 true ,循环中断
  • 246.
  • 247.
  • 248. 软件需求分析 Off On turnOn turnOff burnOut 灯泡
  • 249.
  • 250.
  • 251.
  • 252.
  • 253.
  • 254.
  • 255.
  • 256. 软件需求分析 ProcessRejectedWithdrawl (e:RejectedWithdrawal) Calling customer 信号接收 <<signal>> RejectedWithdrawal date:Date accountNumber:String requestedAmout:double availabelBalance:double
  • 257.
  • 258.
  • 259.
  • 260.
  • 261.
  • 262.
  • 263.
  • 265.
  • 266.
  • 267.
  • 268.
  • 269.
  • 270.
  • 271.
  • 272. 主要内容 5 6 3 7 8 2 4 9 软件测试 软件维护 软件工程概述 软件编码 软件设计 软件需求分析 软件质量管理 软件工程管理 1 软件开发模型
  • 273.
  • 274.
  • 275.
  • 276.
  • 277.
  • 278.
  • 279. 软件设计 模块数与开发工作量的关系 1 接口成本 1 模块成本 模块数 软件开发工作量 1 总成本 最小成本区间
  • 280.
  • 281.
  • 282.
  • 283.
  • 284.
  • 285.
  • 286.

Editor's Notes

  1. W.Royce 于 1970 年提出。 特点: 1 阶段间的顺序性和依赖性。 2 推迟实现观点。 3 质量保证的观点。 a) 每一阶段都要完成文档; b) 每一阶段都要对完成的文档进行复审,以便尽早发现问题。
  2. 1 我们把对象看作数据和函数的内聚包。 2 获得对象数据的唯一方法是通过调用可用对象函数,我们把这些函数称为方法。把对象的数据部分隐藏在函数这层之下,称为封装或数据隐藏。
  3. 1 对象形成到其它对象的链接并且通过这些链接来回发送消息。 2 当一个对象接收消息时。它查看它的操作集以了解是否存在一个操作,它的签名与消息的签名匹配。如果存在,那么它调用该操作。 这些签名包括消息 ( 或者操作 ) 名称、参数类型和返回值。
  4. 代码 走查 是一个开发人员与架构师集中与讨论代码的过程。代码 走查 的目的交换有关代码是如何书写的思路,并建立一个对代码的标准集体阐述。