软件工程概论 第2讲:软件过程与软件建模
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计模型
实现模型
测试模型
测试软件的模型描述。
教学进程
(四) 软件建模方法
1 面向功能的软件建模
2 面向数据的软件建模
3 面向对象的软件建模
2.4.1 面向功能的软件建模
含义
通过对软件功能的分析, 分步、分层建立软件模型
的方法。
特点
● 侧重在软件功能; ● 由粗到细分步建模; ● 需求、设计、实现等多种模型; ● 属一类建模方法。
Booch
Jacobson
OMT方法
Booch方法
OOSE方法
UML
Baidu Nhomakorabea UML 2.0
UML的发展过程
´97.12 OMG Standard
UML 1.4
UML 1.3
UML 1.1 工业化
´96.12 1.0 Open
UML 1.0 标准
UML Partnres
feedback
´96.1 & ´96.10
Java编写的 “雇员对象”程 序
public Employee(Sting name,int bYYYY, int bMM, int bDD, int hYYYY, int hMM,int hDD) { this.name = name; birthDate = new EmployeeDate(bYYYY,bMM,bDD); hireDate = new EmployeeDate(hYYYY,hMM,hDD); } public String to String() { return name+” birthday:”+ birthDate.toString()+ “hired:”+hireDate.toString();
● 对象是软件建模的重心; ● 需求、设计、实现等多种模型; ● 属一类建模方法。
特点
教学进程
面向对象的软件建模
方法
库存 订 购 订购 图书入 库 图 书 出 库 待售 报损 报 损 报废
销售
售出
图 书店图书状态图
教学进程
(五) 统一软件建模语言UML
2.5.1 软件建模语言
软件建模语言:是描述软件模型的规则符 号集。不同的开发方法,采用不同的建模语言。
身体发育过程
人的生命周期
心理成熟过程 性格形成过程 接受教育过程
2. 软件过程的概念
软件过程(software process)是指软件
在其生命周期中,一系列相关活动按照确定的
次序演绎变化的进程。象获取过程、管理过程、
开发过程、维护过程等。
3. 软件过程的提出
◆软件80年代中期以前,软件过程没有受
例:
学校
●缩略表示:
实体类 边界类
控制类
3、 类关系 ① 关联
●关联的概念:本指事物之间存在的固有
的牵连关系,在面向对象方法中,是对具有共
同结构特征、关系和语义的链接描述。
●关联的表示:
教师 学生
●关联的要素 关联名 ◆ 关联名 公司 ◆ 角色 ◆ 多重性 单向导航 ◆ 关联的导航
公司
多重性
雇佣▶ * 1 雇员 雇主
通过对软件所处理的数据及其结构的分析, 分步、分 层建立软件模型的方法。
● 侧重在软件的数据及其结构上; ● 由粗到细分步建模; ● 需求、设计、实现等多种模型; ● 属一类建模方法。
特点
教学进程
面向数据的软件建模
方法
● JSD建模的阶段和步骤
教学进程
2.4.3 面向对象的软件建模
含义
采用与人的思维方式相一致的,直接面向客观事物,面 向所要解决的需求问题,并用一套对象、类、继承、 消息等机制开发软件的系统化建模方法。
⑤.测试(Test)
测试是对所实现的软件系统进行的测试。 测试的工作包括: ●编制测试计划 ●构造测试用例 ●实施测试
二 软件建模与UML
内 容
● 模型 ● 软件模型 ● 软件模型的基本内容 ● 软件建模方法 ● 统一软件建模语言UML
(一) 模型
2.1.1 模型
模型是对现实的抽象或模拟,是对现实系 统的本质特征的一种抽象、简化和类比式的描 述 。
计包括:
1)软件结构设计 ●系统平台设计 ●软件体系结构设计
●软件结构设计
2)详细设计 ●子系统设计 ●界面设计 ●数据库设计
④.系统实现(System Implemention)
系统实现的任务是把软件系统的设计方案 转变成为可以交付测试的软件系统实物。系统 实现的工作包括
● 编程;
● 单元测试; ● 系统集成。
◆ 获取过程 ◆ 供应过程 ◆ 运作过程 ◆ 维护过程
◆ 管理过程
◆ 开发过程
◆ 支持过程
◆ 裁剪过程
支持
获取过程
合同
管理 管理过程
供应过程
供需观点
需方、供 方 管理者
管理观点
支持
开发过程 运行过程 维护过程 工程观点 操作者 开发者 维护者
支持过程: 文档过程 质量保证过程 配置管理过程 验证过程 培训过程 评审与审计过程 环境建立过程
教学进程
面向功能的软件建模
方法
● 功能分解
教学进程
面向功能的软件建模
方法
● 需求建模
教学进程
面向功能的软件建模
方法
● 设计建模 ●软件结构建模
教学进程
面向功能的软件建模
方法
● 设计建模 ●软件详细设计建模
教学进程
面向功能的软件建模
方法
● 测试建模
教学进程
2.4.2 面向数据的软件建模
含义
雇佣日期
雇员( )
雇员对象 }
}
2.3.2 面向对象基本概念
二、类
1、类的概念
类用来描述具有相同性质的一组对象。
汽车
灯泡
扳手
农村
共产主义
类
2、类的表示 ●简化表示:
类名
学校 例:
传感器
●规范表示:
类名 属性 操作
校名: Name 地址: String 电话: Number 增加学生( ) 删除学生( )
2 类图
3 顺序图
4 协作图
5 活动图
图书入库 采购员
库管员
凭到货通知单领 取图书
核对图书
有误
核对入库单 填入库单 图书入库 修改入库单
有错
图书上架 登记入库账
图4.18 图书入库的活动图
6 状态图
报损 库存 订购 图书入库 图书出库 销售 报损 报废
订购
待售
售出
图 书店图书状态图
7 构件图
职员 角色
雇佣▶
职员
双向导航
雇佣▶
公司
职员
◆ 关联类
1 雇佣 ▶ * 雇主
公司
雇员
人
雇佣
雇佣期 合同约束
关联类
●关联的种类 ◆一元关联
◆二元关联 ◆多元关联
学生
*
同舍▶ 1
教师
*
管理▶ 1
汽车
灯泡
扳手
农村
共产主义
对象
2.3.2 面向对象基本概念
2、对象在三个世界中的含义
客观世界:
(客观事物)
共产 主义
主观世界:
(概念)
汽车
灯泡
扳手
农村
软件世界:
(对象)
汽车
灯泡
扳手
农村
共产 主义
客观空间
事物
软件空间
概念
对象 主观空间
汽车 扳手 软盘 图片 吊车 显微 镜
3、软件中的对象及性质 软件中对象由一组属性和操作组成。
到重视,软件过程分含在不同的软件开发方法 之中,软件过程十分混乱; ◆90年代软件过程开始受到重视,95年 国际ISO正式颁布软件过程标准; ◆ 98年OMG正式接受Rational提出的R UP:统一软件开发过程。
4. 软件工程过程的基本内容 按照国标GB-8566-1995(信息技术软件 生存期过程)规定,软件过程共包括
2.1.2 模型的作用
●简化问题 ●抽象描述问题 ●直观描述问题
2.1.3 模型的类型
地图模型
建筑模型
规划模型
数学模型
定积分的含义:
爱因斯坦引力场方程:
2.1.4 建模过程
模型分析
需求理解
现实系统
建立模型
模型
(二) 软件模型
2.2.1 软件模型的概念 软件模型:对软件系统在各个开发阶段本
第2讲 软件过程与建模
本讲主要内容
● 软件开发过程
● 软件建模与UML
● 面向对象方法基础
一 软件开发过程
1.1 软件过程
1. 生命周期与过程
生命周期:指事物衍生存在的时间历程。
人的生命周期
幼 年
少 年
青 年
中 年
老 年
过程:是事物在其生命周期中,按照某种特 征,一系列相关活动按照确定的次序演绎变化的 进程。
领域模型 需求模型 设计模型 实现模型 测试模型
2、面向对象方法的特点 3)提高软件可重用性和效率
老软件:
框架
方案
程序
继 承
类
文档
新软件:
2.3.2 面向对象基本概念
一、对象
1、对象的概念 对象是系统中用来描述客观事物的一个实体, 它是构成系统的一个基本单位。 对象既可以描述客观存在的事物,也可以表 示由人主观构造的抽象观念。
时间维: 初始、细化、构建、移交4个阶段。 工作维:领域分析、需求分析、系统设计、实 现和测试等核心工作。
图2 统一软件开发过程的二维结构
图3 软件各开发阶段工作的比例
3) 软件的主要开发工作
①.领域分析(Business Analysis)
对软件所服务的业务领域进行深入分析。对管 理型软件来说,领域分析的工作有: ●现行企业系统调查; ●机构和职能分析; ● 企业目标分析; ● 业务流程分析;
●结构化方法:数据流图,数据字典,结构 图,判定树,判定表,伪码等作为建模语言。 ●面向对象方法:类图,活动图,状态图等。
2.5.2 统一建模语言UML
为了规范软件建模语言,Rational于 1995年开始召集三位面对对象的创始人,
与1996年提出统一建模语言UML。
UML的创建人:
Rumbaugh
8 配置图
三 面向对象方法基础
2.3.1 面向对象方法含义
1、面向对象方法的含义
在软件开发中,采用与人的思维过程相一致
的,直接面向客观事物,面向所要解决的需求问
题,并用一套对象、类、继承、消息等机制开 发软件的系统性方法。
2、面向对象方法的特点
1)直接面向客观事物与人类思维方法一致
客观对象
2、面向对象方法的特点 2)采用一致连贯的软件模型
UML 0.9 & 0.91
集成
OOPSLA ´95
Unified Method 0.8
Booch ´ 93 OMT - 2 OMT - 1 What's UML OOSE
Other methods
Booch ´ 91
多种方法
57
UML的构成
要素
结构: (共7种) 行为: (消息, 状态) 分组: (包) 注释: (注释)
需求模型
描述软件向用户所能够提供的 外在特性,包括软件的目标、 功能、性能等。
教学进程
领域模型
需求模型
设计模型
软件的设计方案。 包括软件的结构,详细设计, 界面,数据库等设计方案。
教学进程
领域模型
需求模型
设计模型
实现模型
软件的实现方案。 包括软件的实现结构,构件, 文件等。
教学进程
领域模型
需求模型
软件产品
3) 软件模型是人员交流的媒介
用户
软件模型
中介机构
开发人员
4) 软件模型是软件升级、维护的依据
软件模型
2.2.3 软件建模的要素
建模方法
建模过程
建模语言
建模工具
(三) 软件模型的基本内容
业务模型 领域模型
也叫业务模型,描述软件所要服 务的业务领域的业务状况和业务 关系。
教学进程
领域模型
基本语言构成
关系
依赖 关联 泛化 实现
类图, 对象图, 用例图, 顺序图, 协作图, 状态图, 活动图, 构件 图, 部署图
语义 规则
命名 范围 可见性 完整性
图
通用机制
规范说明 修饰 通用划分 扩展机制(版型, 标记值,约束)
UML的模型表示 UML共定义了两类八种图形,如下所示:
1 用例图 用例图用来描述系统功能 。
质特性的描述,它要反映软件系统的形成过程。
领域模型
需求模型
设计模型
实现模型
测试模型
2.2.2 软件模型的作用
1) 软件模型是软件的中间形态
业务领域
软件产品 软件模型 用户需求
2) 软件模型是对业务领域、用户需求、设 计意图、实现环境的反映
实现环境 设计意图 用户需求 业务领域
软件模型
软件开发过程
●企业实体分析;
●建立领域模型等。
②.需求分析(Requirements Analysis) 需求分析是对所开发的软件系统应该 具有的功能、性能和作用的分析。需求分 析主要工作: ● 需求调查; ● 需求分析; ● 需求建模;
●
需求审核。
③.系统设计(System Design)
系统设计的任务是确定软件系统的设计方案。系统设
对象名称
对象名 属性 操作
对象的动态 性质 对象的静态 性质
3、软件中的对象及性质
例如:
雇员 雇员姓名 雇员出生日期
Public class Employee { private String name; private EmployeeDate birthDate; private EmployeeDate hireDate;
支持观点
介入支持过程的人员
图1 软件过程
5.统一软件开发过程RUP
1) RUP的提出
美国Rational公司,于1998年6月公布了统 一 软 件 开 发 过 程 RUP ( Rational Unified Process)。 结束软件开发过程的混乱局面,使软件开发 过程得到了统一。
2) RUP的结构