软件工程 第8章 面向对象的开发技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 分析过程
用户 开发人员 管理人员
生成需求
问题陈述
Leabharlann Baidu
访问用户 领域知识 现实世界
建立模型
OM DM FM
界限模糊
设计过程
Software Engineering
2. 需求陈述(Requirement Statement) 需求陈述( Statement)
说明What 而不是 How 说明 内容
1+
1+
Software Engineering
OOA的五个层次 OOA的五个层次
Software Engineering
OOA大体顺序 OOA大体顺序
寻找类-&-对象 对象 寻找类 识别结构 识别主题 定义属性 建立动态模型 建立功能模型 定义服务
不严格按照顺序 OOA不需要严格遵守自顶 不需要严格遵守自顶 向下的原则
物理实体 人或组织 要处理的事件 对象间的活动 抽象概念
非正式分析: 非正式分析: 名词 → Class-&-Object 形容词 → Attribute 动词 → Method
Software Engineering
列出候选Class列出候选Class-&-Object
某银行拟开发一个自动取款机系统,它是一个由自动取款机,中央计算机,分 银行拟开发一个自动取款机系统,它是一个由自动取款机,中央计算机, 拟开发一个自动取款机系统 自动取款机 行计算机及柜员终端组成的网络系统 组成的网络系统. 和中央计算机由总行购买. 行计算机及柜员终端组成的网络系统.ATM和中央计算机由总行购买.总行拥有 和中央计算机由总行购买 多台ATM,分别设在全市各主要街道上.分行负责提供分行计算机和柜员终端. 多台 ,分别设在全市各主要街道上 分行负责提供分行计算机和柜员终端. 街道 负责提供分行计算机和柜员终端 柜员终端设在分行营业厅及分行下属的各个储蓄所 营业厅及分行下属的各个储蓄所内 该系统的软件开发成本 软件开发成本由 柜员终端设在分行营业厅及分行下属的各个储蓄所内.该系统的软件开发成本由 各分行分摊. 各分行分摊. 银行柜员使用柜员终端处理储户提交的储蓄事务 储户可以用现金 支票向自 柜员使用柜员终端处理储户提交的储蓄事务. 现金或 银行柜员使用柜员终端处理储户提交的储蓄事务.储户可以用现金或支票向自 己拥有的某个帐户内存款或开新帐户.储户也可以从自己的帐户中取款.通常, 己拥有的某个帐户内存款或开新帐户.储户也可以从自己的帐户中取款.通常, 帐户内存款或开新帐户 一个储户可能拥有多个帐户. 一个储户可能拥有多个帐户.柜员负责把储户提交的存款或取款事务输进柜员终 接收储户交来的现金或支票,或付给储户现金. 端,接收储户交来的现金或支票,或付给储户现金.柜员终端与相应的分行计算 机通信,分行计算机具体处理针对某个帐户的事务并且维护帐户. 机通信,分行计算机具体处理针对某个帐户的事务并且维护帐户. 拥有银行帐户的储户有权申请领取现金兑换卡.使用现金兑换卡可以通过ATM 拥有银行帐户的储户有权申请领取现金兑换卡.使用现金兑换卡可以通过 现金兑换卡 访问自己的帐户.目前仅限于用现金兑换卡在ATM上提取现金,或查询有关自己 上提取现金, 访问自己的帐户.目前仅限于用现金兑换卡在 上提取现金 帐户的信息(如帐户余额).将来可能还要求使用 余额).将来可能还要求使用ATM办理转帐,存款等事务. 办理转帐, 帐户的信息(如帐户余额).将来可能还要求使用 办理转帐 存款等事务.
Software Engineering
3. OM的五个层次 OM的五个层次
Coad&Yourdon, 1991 相当于把五张透明 胶片(transparencies) 胶片(transparencies) 叠在一起, 叠在一起,每一层 显示更多的细节
Category Class-&-Object Structure Attribute Method
Software Engineering
一,面向对象分析(Object-oriented Analysis, OOA) ObjectOOA)
提取用户需求
理解 表达 验证
建立三个模型
OM DM FM
Requirement statement Rapid prototype Models
Software Engineering
某银行拟开发一个自动取款机系统,它是一个由自动取款机,中央计算机, 某银行拟开发一个自动取款机系统,它是一个由自动取款机,中央计算机,分 行计算机及柜员终端组成的网络系统. 和中央计算机由总行购买. 行计算机及柜员终端组成的网络系统.ATM和中央计算机由总行购买.总行拥有 和中央计算机由总行购买 多台ATM,分别设在全市各主要街道上.分行负责提供分行计算机和柜员终端. 多台 ,分别设在全市各主要街道上.分行负责提供分行计算机和柜员终端. 柜员终端设在分行营业厅及分行下属的各个储蓄所内. 柜员终端设在分行营业厅及分行下属的各个储蓄所内.该系统的软件开发成本由 各分行分摊. 各分行分摊. 银行柜员使用柜员终端处理储户提交的储蓄事务. 银行柜员使用柜员终端处理储户提交的储蓄事务.储户可以用现金或支票向自 己拥有的某个帐户内存款或开新帐户.储户也可以从自己的帐户中取款.通常, 己拥有的某个帐户内存款或开新帐户.储户也可以从自己的帐户中取款.通常, 一个储户可能拥有多个帐户. 一个储户可能拥有多个帐户.柜员负责把储户提交的存款或取款事务输进柜员终 接收储户交来的现金或支票,或付给储户现金. 端,接收储户交来的现金或支票,或付给储户现金.柜员终端与相应的分行计算 机通信,分行计算机具体处理针对某个帐户的事务并且维护帐户. 机通信,分行计算机具体处理针对某个帐户的事务并且维护帐户. 拥有银行帐户的储户有权申请领取现金兑换卡.使用现金兑换卡可以通过ATM 拥有银行帐户的储户有权申请领取现金兑换卡.使用现金兑换卡可以通过 访问自己的帐户.目前仅限于用现金兑换卡在ATM上提取现金,或查询有关自己 上提取现金, 访问自己的帐户.目前仅限于用现金兑换卡在 上提取现金 帐户的信息(如帐户余额).将来可能还要求使用ATM办理转帐,存款等事务. ).将来可能还要求使用 办理转帐, 帐户的信息(如帐户余额).将来可能还要求使用 办理转帐 存款等事务.
Software Engineering
【例】ATM系统的需求陈述 ATM系统的需求陈述
所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号. 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号.分行代码唯一 标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户.通常, 标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户.通常,一张卡 可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户.每张现金 可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户. 兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本. 兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本.因此必须考虑同 时在若干台ATM上使用同样的现金兑换卡的可能性.也就是说,系统应该能够处 上使用同样的现金兑换卡的可能性. 时在若干台 上使用同样的现金兑换卡的可能性 也就是说, 理并发的访问. 理并发的访问. 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获得有关这次事 当用户把现金兑换卡插入 之后, 就与用户交互, 之后 就与用户交互 务的信息,并与中央计算机交换关于事务的信息.首先, 要求用户输入密码, 务的信息,并与中央计算机交换关于事务的信息.首先,ATM要求用户输入密码, 要求用户输入密码 接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求 把从这张卡上读到的信息以及用户输入的密码传给中央计算机, 接下来 把从这张卡上读到的信息以及用户输入的密码传给中央计算机 中央计算机核对这些信息并处理这次事务. 中央计算机核对这些信息并处理这次事务.中央计算机根据卡上的分行代码确定 这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码.如果用 这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码. 户输入的密码正确, 就要求用户选择事务类型( ).当用户选 户输入的密码正确,ATM就要求用户选择事务类型(取款,查询等).当用户选 就要求用户选择事务类型 取款,查询等). 择取款时, 请求用户输入取款额. 从现金出口吐出现金, 择取款时,ATM请求用户输入取款额.最后,ATM从现金出口吐出现金,并且打 请求用户输入取款额 最后, 从现金出口吐出现金 印帐单交给用户. 印帐单交给用户.
Software Engineering
4. 建立OM 建立OM
确定Class-&-Object 确定 确定关联 确定关联 结构层 划分主题 确定属性 识别继承关系 反复修改 建立DM 建立 建立FM 建立 定义服务
Software Engineering
(1)确定Class-&-Object 确定Class第1步:列出候选 步 列出候选Class-&-Object(candidates) ( )
软件工程
Software Engineering
计算机学院 软件工程课程组
Computer School of Wuhan University
第8章 面向对象的开发技术
如何进行面向对象分析( 如何进行面向对象分析(OOA)? )? 如何进行面向对象设计( 如何进行面向对象设计(OOD)? )? 面向对象实现有何特点? 面向对象实现有何特点? 面向对象的软件开发模型具有哪些特点? 面向对象的软件开发模型具有哪些特点?
问题范围 功能需求 性能要求 应用环境 假设条件
Software Engineering
【例】ATM系统 ATM系统
柜员 储户 柜员终端
帐户 ATM ATM ATM 中央计算机 帐户 储户 分行计算机 帐户 分行计算机 帐户
Software Engineering
【例】ATM系统的需求陈述 ATM系统的需求陈述
Software Engineering
列出候选Class列出候选Class-&-Object
所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号. 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号.分行代码唯一 磁卡 分行代码 标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户.通常, 标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户.通常,一张卡 可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户.每张现金 可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户. 兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本 副本. 兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本.因此必须考虑同 时在若干台ATM上使用同样的现金兑换卡的可能性.也就是说,系统应该能够处 上使用同样的现金兑换卡的可能性. 时在若干台 上使用同样的现金兑换卡的可能性 也就是说, 理并发的访问 访问. 理并发的访问. 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获得有关这次事 当用户把现金兑换卡插入 之后, 就与用户交互, 之后 就与用户交互 务的信息 并与中央计算机交换关于事务的信息.首先, 信息, 要求用户输入密码 务的信息,并与中央计算机交换关于事务的信息.首先,ATM要求用户输入密码, 要求用户输入密码, 接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求 把从这张卡上读到的信息以及用户输入的密码传给中央计算机, 接下来 把从这张卡上读到的信息以及用户输入的密码传给中央计算机 中央计算机核对这些信息并处理这次事务. 中央计算机核对这些信息并处理这次事务.中央计算机根据卡上的分行代码确定 这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码.如果用 这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码. 户输入的密码正确, 就要求用户选择事务类型 ).当用户选 户输入的密码正确,ATM就要求用户选择事务类型(取款,查询等).当用户选 就要求用户选择事务类型(取款,查询等). 择取款时, 请求用户输入取款额 从现金出口吐出现金, 择取款时,ATM请求用户输入取款额.最后,ATM从现金出口吐出现金,并且打 请求用户输入取款额.最后, 从现金出口吐出现金 帐单交给用户 交给用户. 印帐单交给用户.