




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 面向对象软件开发与UML 计算机学院软件工程研究室 主讲人 王宇颖Wangyy 在这个变革的时代 学习者得以生存 而那些学习过 而不在继续学习 的人则会发现 他们掌握得很好的那些东西只适用于一个不存在的世界 埃里克 霍弗格言 请回答 什么是软件开发 2 是软件系统的创建 提交和维护等相关活动的组织方法 在软件开发中 什么是至关重要的 是一个对给定问题的求解过程 从认识论的角度看 软件开发归为两项主要活动 认识与描述 什么是软件开发方法 一个软件开发方法包括哪些重要的元素 你学过了哪些软件开发方法 什么是软件开发过程 softwaredevelopmentprocess 3 清楚以上问题吗 包括重要的元素 是一些规则和指导方针的集合 建模概念 modelingconcept 表示法 notation 开发过程 developmentprocess 开发过程的每一步都生成特定的模型 经验法则 role 软件开发方法 4 课程简介及特点 授课学时 讲课为主案例为辅实验结合 30学时 授课方法 实验学时 18学时 5 课程简介 面向对象的软件开发 UML建模 面向对象的概念 需求用例技术 面向对象的分析 建立对象模型 动态模型 面向对象的设计 面向对象的实现和测试 面向对象与软件复用 6 课程特点 本课程所讲述的内容适用性强 以概念为基础 以建模为主线 从多视图的角度建立软件开发各个阶段的模性 抽象与具体结合 概念与实例结合 案例与应用结合 使用统一建模语言UML对模型进行描述 建模过程有现代的软件开发工具Rose支持 7 达到目的 深入理解面向对象的概念 掌握面向对象的建模过程 掌握建模语言UML ROSE工具 设计健壮的 可扩展的 可复用的 可维护的软件系统 考试安排 笔试成绩占60 大作业实验成绩占25 平时考核成绩占15 要求 认真 思考 用 8 1 单词背诵系统2 KTV点歌系统3 教学管理系统4 学生成绩分析系统5 个人博客系统6 网上购物系统7 网上书店管理系统8 公寓管理系统9 超市销售管理系统10 网吧管理系统 分析和设计下列问题之一 并写出文档 11 桌面搜索引擎12 ACM在线上测试平台13 企业人力资源管理系统14 城市停车诱导系统15 电子市场管理系统16 局域网文件搜索系统17 基于图像的试卷识别系统18 航空票务管理系统19 医药超市管理系统20 邮件收发系统21 自选 面向对象的软件开发实践作业文档 9 HARBININSTITUTEOFTECHNOLOGY 软件学院面向对象的软件开发与UML大作业题目 XX X 学号 xxxx姓名 xxxxxxxxx2009年2月 目录正文内容 1需求分析 文字描述 1 功能性需求 关于系统做什么的描述 2 非功能性需求 关于系统约束的描述 性能 可靠性 环境等 3 用例的文字描述 用例名称 用例的简要说明 该用例的作用如 买车票用例供客户浏览客户航班信息 查询和用信用卡买票 11 前提条件 用例开始前必须满足的条件 可能是另一个己执行的用例 或用户具有运行当前使用用例权限 主流事件和其他事件流 从用户角度关注做什么 事件流描述执行用例功能的具体步骤 包括 用例如何开始用例的各种路径用例的主事件流 如 顺序买到票 12 用例的其他事件流 从主事件流分支出来的 如 客户用常客卡买票 客户信用卡无效或请求的航班没有票 错误流 表示系统本身问题 如无法访问信用卡系统 事后条件 也可缺省 用例结束后执行的动作 如 一个用例结束后 必须运行另一个用例 13 2 需求分析建模 1 领域模型 可用活动图描述 2 定义系统的外部行为usecase图参与者 用例 边界 参与者与用例通信3 建立包图 用用例进行分组4 建立初始类图 确定属性和关联 常规操作5 建立动态模型 确定类中的复杂操作6 建立完整的类图7 建立组件和展开图 面向对象的设计8 进行数据存储设计9 进行人 机交互设计10 写出伪码11 结论12 参考文献 14 作业提交到学院网站上 15 主要参考教材 1 ScottW Ambler TheApplicationDeveloper sGuidetoObjectOrientationandtheUML 车皓阳 刘锐等译 面向对象软件开发教程 机械工业出版社 20032 美 CayHorstmann Object OrientedDesign Patterns 张琛恩译 面向对象的设计与模式 电子工业出版社 2004 3 刘振安等编著 面向对象技术与UML 机械工业出版社 2007 4 16 主要参考教材 4 GradyBooch RobertA Maksimchuk etal Object OrientedAnalysisandDesignwithApplications 3rdedition 面向对象分析与设计 第3版 英文影印版 人民邮电出版社2008 5 JoeyGeorge DineshBatra JosephValacich JeffreyHoffer Object OrientedSystemsAnalysisandDesign 2ndedition 龚晓庆 张远军 陈峰 面向对象系统分析与设计 第2版 清华大学出版社 2008 17 其它的参考读物 国际上和面向对象技术有关的刊物 如 IEEESoftwareJSSJournalofSystemsandSoftwareUML 98 UML 99 UML 2000 UML 2001 UML 2002UML 2003RationalDeveloperNetwork RDN http www uml orgIEEESoftwarehttp www omg org uml OMG ObjectManagementGroup 18 其它的参考读物 Cont http www cetus links orghttp www omg org了解UML最详细说明 19 有助于开发Java代码的工具 BorlandJBuilder BorlandCorporation www B 20 1 1传统软件开发方法的问题1 2面向对象软件开发的由来1 3面向对象与面向过程的软件开发区别1 4面向对象软件开发的范型1 5面向对象的基本概念 第1章面向对象概述 21 理解并掌握如下概念 类和对象对象和实例对象和变量实例变量与类变量方法与操作抽象类和抽象方法两种方法的本质区别面向对象的软件开发模型 什么是面向对象 把应用程序分成许多小块 对象 这些对象是相互独立的 然后再组合这些对象 建立应用程序 23 1 1传统软件开发方法的问题 模型阶段性 模型的顺序性 以功能为主的方法 功能易变 模块的封装性 可重用性差 接口易变 没有很好解决软件开发中的两个经典问题 24 图1 1两个经典问题 大峡谷北端 大峡谷南端 处理模型 数据模型 科罗拉多河 问题 1 分析模型 设计模型 问题 2 大峡谷北端 科罗拉多河 传统方法 功能和数据各自描述系统的一部分 两种模型表示角度不同 若合起来 对一致性 精确性难以验证 OO的对象模型解决了此问题 传统方法 分析设计两个阶段描述工具不同 需要转换 重新建立模型 向程序员解释编程要求 OO方法的设计是对OOA的扩展 大峡谷南端 25 面向对象的发展过程 1 2面向对象方法的由来 26 Simula 67 DahlandNygaad 模拟现实世界对象的行为 Smalltalk XeroxParc实验室人员研制 Smalltalk80 普及了字节码 平台独立性 垃圾收集功能 SmalltalkVObjective C Cox1986 CoxandNovobilski1991 支持多态 信息隐敝 C 支持抽象 继承 自动引用 动态绑定 操作符重载等 但维护困难 Eiffel Myeer1990 有断言 解决正确性 健壮性 可移植性 效率等 Java Sun公司JamesGosling1990 在SunWorld95年会上公布 Java C 复杂性和奇异性 安全性和可移植性 27 函数和过程 图1 2结构化方法 1 3面向对象与面向过程的软件开发区别 1 3 1方法的区别 数据库 面向过程方法 以数据流为中心 描述数据由输入变换到输出过程 开发人员在问题空间和解空间进行对应 面向对象方法是以对象 事物 为中心 是对现实问题的近似和直接模拟 使人们对系统的认识过程和程序的实现过程尽可能一致 28 1 3 2面向对象与面向过程的分析与设计区别 图书馆信息系统 Catalog Librarian Book Library System RecordLoans AddResources ReportFines 图1 4按对象概念分解 图1 5按功能或过程分解 面向对象分析与设计 面向过程的分析与设计 分而治之 分析和设计的采用一致的概念 原则 表示法 如借阅记录 增加资源 罚款报告 29 1 3 3面向对象与面向过程的程序区别 面向对象的程序 对象 消息 存款 取款 图1 7面向对象的储蓄处理事务 银行账户对象 数据和施加在其上的操作分离 外部消息 利息结算 利息结算 存款 取款 账户余额 账户余额 图1 6面向过程的储蓄处理事务 在面向对象中 是在数据抽象内来组织过程即代码是按类组织的 每个类包含对该类实例进行操作的过程 代码按过程组织的 每个过程操作不同类型的数据 面向过程的程序 数据结构十算法 又如 在结构化编程中 要创建带列表框的窗体 怎么做 在结构化编程中 要编写大量代码 创建窗体代码 创建与填列表框的代码 创建OK按钮的代码 用来接受列表框中的值 在面向对象编程中 只用三个对象 窗体对象 列表框对象 OK按钮对象 然后在关联起来 31 图1 8喷泉模型 1990年 B Hendersonseller和J M Eduarols在其 面向对象系统生存期 一文提出的OO开发的七点框架 1 4面向对象的范型 1 4 1喷泉模型 fountainmodel 无隙性复用概括 聚集对客观世界对象的模型化 Bailin提出的实体数据流图或信息流图作底层工具 32 1 4 2OO软件开发生命周期 33 1 5面向对象的概念 面向对象概念的提出 使描述问题的问题空间和解决问题的方法空间一致 概念上 处理行为上一致 按问题领域的基本事物实现自然分割按人们思维方式建立问题域模型演绎思维 从一般到特殊 归纳思维 从特殊到一般 为此 必须建立直接表现组成问题域的事物 及这些事物间相互联系的概念 建立适应人们一般思维方式的描述范式 34 1 5 1对象 Object 问题空间的对象 现实世界中任何实际存在的事物都是对象 是对实体概念的一种描述 面向对象 对象 类 继承 通信 Coad和Yourdon给出了面向对象的定义 面向对象的概念 物理实体 软件实体 概念实体 35 对象是一个具有封装了的数据结构和操作的实体 这个实体有一个标识它的名字 对外通过相应的接口 提供相应的服务 计算机程序中的对象是具有三个特征的实体 标识 状态 行为 方法空间的对象 是对某个事物的抽象描述 Object OID DS OS MI 36 对象特征 对象的属性和行为 属性Atribute 描述对象 静态 结构 特征的一个数据项 属性是对象知道的事情 描述对象的当前状态 操作Operation 描述对象 动态 行为 特征的一个操作序列 操作是调用对象执行的转换或查询的规格说明 有可能改变对象的状态 操作是方法的抽象说明 说明对象在什么条件下是可行的 方法Method 对象完成的事情 是操作的实现或执行操作的函数或过程 是实现类的行为的过程抽象 规格 思考 属性完全相同的两个事物 是否是同一个对象 举例 两个教师姓名和职称都相同 但它们却是两个不同的对象 所有的对象都是独立的实体 都有其唯一的标识 对象之间的区别是由它们固有的存在性所决定的 而与它们的特征是否相同无关 38 类是具有相同属性和服务的一组对象的集合 它为属于该类的全部对象提供了统一的抽象描述 1 5 2类 Class 1 类的定义 类 ID DD OI ITF INH 2 类和对象 类可以是对象 但对象不是类 类是对象的抽象描述 对象是类的实例 实例 Instance具有身份和值的独立实体 39 概念层的类 Rectangle RectangleheightWidthgetArearesize RectangleHeight intWidth intgetArea intResize int int 对象 实例 p Rectangleheight 10Width 20 Rectangleheight 15Width 25 3 类的描述几种情况 说明层的类 实现层的类 如 学生类 getname setname getNo setNo Student NameNo 学号 又如 绘图中的点类 x Integery Integer move getX getY setX setY Point 用Java定义点类 ClassPoint intnx 点的x坐标intny 点的y坐标intnColor 颜色值voidmove intx inty 将当前点移到 y处intgetX 获当前点X坐标intgetY 获当前点Y坐标intsetX intsetY Pointmypoint 点类的一个对象 类是一个支持继承的抽象数据类型 4 类的作用 类是创建 实例化 对象的模板 类是对对象的抽象 类类似一张表 表内描述了数据和操作的封装体 类是一个命名空间 为类的泛化声明建立作用域 42 表示两个类之间是 isa islike 或 iskindof 关系 1 5 3继承 Inheritance superclass subclass 继承使两个以上的类共享相同的属性和 或相同方法 继承提高了复用性 继承的各个类可形成层次结构 继承集中的属性 只能声明一次 操作可以被多次声明 只要声明相同 43 1 5 4消息 message 消息包括的信息 消息是一个对象向另一个对象发出的服务请求 操作的请求 执行方法的请求 要求系统的某个对象完成它指定的操作 44 为不同的目的建立不同层次上的抽象 并将不同层次上的同一概念的两种元素联系起来的依赖关系 一个元素比另一个元素更详细 1 5 5抽象 Abstraction 抽象是确定一个事物的本质特征的行为 使这个事物与其他事物区分开 抽象是自底向上的对几组事物观察 找出事物的共性 把具有共性的事物划分成一类 45 抽象 abstract 是一个抽象类abstractclass抽象类是不能被直接实例化的类 即他没有直接的实例 对象是对问题域中某些事物的抽象 类是对对象的一个抽象 46 具体类 图1 10具体超类产生模糊性 47 抽象类 图1 11抽象超类避免模糊性 48 1 5 6封装 Encapsulation 将数据 属性 和行为 服务 细节封装在对象中 隐藏了对象的内部细节 信息隐蔽 informationhiding 封装性的条件 又如 单笔定购 Purchas 封装了一个外界无法存取的私有属性 金额 amount 外界可以调用的公开操作 计算 calculate 对象间通过传递消息及合作 投资人 Investor 对象传递一个消息给单笔定购 执行计算操作 Investor Purchase amount Double calculate Double Investor 1 Purchase 图1 14对象消息传递 图1 13对象封装 calculate 可见性 visibility UML有四种可见性 公开 public 在图中可表示为 十 私有 private 在图中可表示为 保护 protected 在图中可表示为 包 package 在图中可表示为 同包的类可以看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 栗子鼠阅读测试题及答案
- 九年级英语上册 Unit 5 What are the shirts made of Section B(3a-Self Check)说课稿(新版)人教新目标版
- 六年级品德与社会上册《我们爱科学》说课稿 辽师大版
- 道法专业理论考试题及答案
- 质量专业能力考试题及答案
- DB65T 4469-2021 伊犁鹅种用品质评定技术规范
- 电石厂应急预案(3篇)
- 电力抗震应急预案(3篇)
- 电缆接续应急预案(3篇)
- 数字化技术在零售门店智能顾客数据分析与营销策略的应用研究报告
- 湘潭大学人工智能课件机器学习
- 城乡规划管理与法规系列讲座城市规划依法行政案例
- 控制论与维纳
- 《红色旅游发展问题研究开题报告(含提纲)》
- GB/T 12718-2001矿用高强度圆环链
- 2023年山东省春季高考机械专业知识试题
- 承德避暑山庄
- 舞蹈教学课件第五单元-中外舞蹈名作赏析
- 2023年中国外运股份有限公司招聘笔试模拟试题及答案解析
- 肱骨近端骨折Neer分型及治疗课件
- 中职数学基础模块上册课件-
评论
0/150
提交评论