《面向对象技术1》_第1页
《面向对象技术1》_第2页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机应用技术面向对象技术Object-Orie nted tech no logy目前,计算机软件界的各方人士都已认识到了面向对 象技术的优越性,大多数较先进的软件开发组织在分析、设计、编程和测试阶段都全面地采用了面向对象技术。面 向对象技术无疑已经成为当前软件领域的主流技术。面向对象机制对软件来说,就像立柱和横粱对建筑设计以及芯 片对计算机硬面向对象技术是 2 0 世(纪 9 0 年代对软件的最重 要的发展和变革。 它改变了我们构建软件的方式, 也改变了设计方式。件设计一样重要.基于以下原因:(1)精通更高层次的面向对象模型可以为软件设讣者提供现实的可 编程的构件,减少软件的开发费用.(2

2、)使用面向对象技术来共享和复用代码将减少开发应用程序的时 间.(3)通过程序抽象机制,面向对象技术具有将修改的彩响局部化和 最小化的能力,这种能力允许进行更快的增值开发,并且可提供更 可靠和更健壮的软件.(4)面向对象的管理复杂性的能力允许开发者开发更困难的应用. UML 是一种用于对软件密集型系统进行可视化 描述、构造和文档化的建模语言。UML 对系统模 型的表达能力超出了以往任何一种面向对象分析 和面向对象设计方法。流行的面向对象程序设计语言有很多,C+是 其中的佼佼者。它实现了面向对象的主要机制, 此外,C+是一种多范型语言,支持多种编程范型。石目录_:第1章:软件工程概述:第2章:面向

3、对象技术概论:第3章:面向对象开发方法:第4章:面向对象的Coad方法:第5章:面向对象的0MT方法:第6章:UML与Visio (Rose)简介:第7章:面向对象程序设计C+第8章:案例分析:第9章:面向对象测试参考资料1吴炜煜编著.面向对象分析设计与编程OOA/OOD/OOP/AOP(第二版) 清华大学出版社(2007 年、27 元)(ISBN 9787302141204)2 殷人昆等译.实用而向对象软件丄程教程电/丄业出版社3 宛延闿等.而向对彖分析和设计清华大学出版社4 普里斯特著;龚晓庆,卞雷等译面向对彖设计 UML 实践(第 2 版)消华人学出版衬5 麻志毅等译.C+ +面向对彖开

4、发机械工业出版补6 韩柯等译.软件测试(原书第 2 版)机械工业出版社面向对象分析设计与编程IOOA/OOD/OOP/AOP内容简介本书系统地介绍了面向对象软件的分析理论和 表达实现方法。从面向对象技术的概念、原理、软件工程过程方法,至 UUML 建模语言的使用、 C+ +等面向对象编程语言表达;从面向对象分析 设计、面向方面编程方法,到有关各类编程环境 与工具的使用。右面向对象设计UML实践内容简介本书详细的阐述了 UML 的原则和应用。 本书涉 及 UML导论、对象建模、软件开发过程、餐馆系 统的业务建模、分析、设计及实现,类和对象 图、交互图、状态图等及设计原则和模式等。(世界著名计算机

5、教材)iC+面向对象开发内容简介本书将面向对象技术与 C+相结合,并使用 UML 这一可视化描述的建模语言进行表述。 本书 附有两个完整的案例,在案例中使用特定的面向 对象技术,就一个项目在面向对象分析、设计和 编程的各个阶段展开讨论,并详细阐述了如何使 用 C+根据设计模型进行编程。软件测试内容简介本书全面地介绍了软件测试的基本知识和方 法。通过问题、图表和案例研究,对软件测试数 学问题和技术进行了深入的研究。本书还介绍了 面向对象测试的内容。(本书是 ACM 和 IEEE 计算机学会联合编写的“软 件工程知识体系”试用标准的主要引用文献之一, 具有权威性。)教学方式(40学日寸)授课(20

6、)讨论(8 )考试(大作业、论文、试卷等)(12)右第1章软件工程概论软件的概念、特点和分类软件的发展和软件危机软件生存期和软件生存期模型软件工程的基本目标软件开发方法结构化方法 1一1 1-2 1-3 1-4 1-5 1一6m . i.士刖言_在近代!支术发展的历史上,工程学科的进步一直是产 业发展的巨大动力。传统的工程学科走过的道路已为人们所熟知,如:水利工程、建筑工程、机械工程、电力工程等。近年 来,人们开始对气象工程、生物工程、计算机工程、软 件工程有了新的认识。事实上,软件工程的地位非常重要,它对软件产业 的形成和发展起着决定性的作用,在计算机的发展和应 用中至关重要,在人类进入信息

7、社会时已成为新兴信息 产业的支柱.右1-1软件的概念、特点和分类概念“软件”这一词是20世纪60年代初从国外传来。英文Software一词确是Soft和ware两字组合而成。有人译为“软制品”,也有人译为“软体”,现在人们统称它为软件。ISO 的定义计算机软件(Computer Sof tware ):包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作。软件:是包括程序、数据及其相关文档的完整 集合。(软件=程序+数据+文档)其中:程序:是指按事先设计的功能要求执行的指令序列。 数据:是使程序能正常操纵信息的数据结构。文档:是与程序开发、维护和使月有关的图文材料。特点(1)软件

8、是一种逻辑实体,具有抽象性.这个特点使得它与计算机硕件或其它工程有明显的差别。 人们 可以把它储存起來,但却无法看到软件本身的形态,必须通过观察. 分析、判断去了解它的功能、性能及其它特性。(2)软件的生产与硬件不同,在其开发过程中无明显制造过程。软件是通过人们的智力活动,把知识与技术转化成信息的一种 产品。一旦某一软件项冃研制成功,以后就口 J 以人量复制。软件的 质量控制是在软件开发方面下工夫。(3)软件在运行使用期间无机械磨损与老化问题.软件的运行虽没有磨损和老化问题,但存在退化问题。软件经 过大量的维护、修改,失效率将升高,从而使得软件退化。(4)软件的开发和运行对计算机系统有不同程度

9、的依赖性.为了消除这种依赖性,在软件开发过程中提出了软件的移植问 题。(5)软件的开发至今尚未完全摆脱手工艺的开发方式.近年來,软件技术虽然取得了不少进展,提出了许多新的开发 方法,如软件复用技术、白动生成技术等,也研制了一些软件开发 匸具和软件开发环境,但在软件项目中采用的比率仍然较低。(6)软件本身是复杂的.软件的复杂性一方而來门反映实际问题的复杂性,如反映自然 规律、社会事务等,都具有一定的复杂性;另一方面,來白程序逻 辑结构的复杂性。(7)软件的成本是昂贵的.软件的研制需要投入人量的人力、物力和财力,需要投入人量 的、复杂的和窩强度的脑力劳动,它的成本比较高。现在,软件的 开销大大超过

10、硬件的开销。美国每年投入软件开发的经费多达几百 亿美元,然而,也非所有的软件开发的花费都能获得成果。(8)社会因素的彩响。许多软件的开发和运行涉及到机构、体制及管理方式的问题, 其至涉及到人的观念和心理。对于这些人的因素重视不够常常是软 件遇到的问题之一。分类(1)按功能划分系统软件:与硬件配合在一起,使得各部件及相关软件、 数据、协调拓效 I作的软件(如操作系统、编译系统、数据库管理 系统等)。应用软件:在特定领域里开发,为特定目的服务的软件(CAD、CAI、ERP 等)支撑软件:支撑软件的开发和维护的软件。(2)按规模划分:极大型、甚大型、大型、中型、小型和微型.(3)按工作方式划分实时处

11、理软件:即时处理 分时软件:分用户系统 批处理软件:成批处理 交互式软件:实现人机通信几十年的发展,最根本的变化体现在:(1)人们改变了对软件的看法(艺术品一工程化产品) 随着计算机的广泛应用,人们逐渐抛弃了那种“只有通篇充满 程序设计技巧的程序才是高水平的好程序”的观点。要求这些程 序易懂、易用、易修改和易扩充。于是,程序便从个人按 H 己意 图创造的艺术品转变为能被广人用户接受的工程化产品。(2)软件的需求是软件发展的动力(自给自足一用户需求) 早期的程序开发者只是为了满足 11己的需要, 是-种门给 H足的 生产方式。进入软件工程阶段以后,软件开发的成果具有社会性, 它要在市场中流通满足

12、广大用户的需要。(3)软件工作范用从只考虑程序的编写扩展到设计整个软件生存期(程序编写一软件生存期)计算机硬件价格的人幅度下跌为它的广泛应用创造了条件。 这一形势卜,要求软件与之相适应,一些复杂的、大型的软件开 发项冃提了出來,然而,软件技术的进步一直未能满足形势发展 的要求,在软件开发中遇到的问题找不到解决的方法,致使问题 积累起来,形成了H 益尖锐的矛盾,即软件危机!!占软件危机典型实例:_美国IBM公司的IBM360操作系统。该项冃花了5000人年的工作屋,最 多时有1000人投入开发工作,写出了近100力彳的源程序。尽管投入了这么 多的人力和物力,得到的结杲却#常糟糕。据统计,这个操作

13、系统每次发行 的新版本都是从询一版本中找出1000个程序错谋而修正的结果。可以想彖, 这样的软件质量糟糕到什么程度。难怪该项R的负责人在总结开发过程中的 沉痛教训时说:正像一只遥亡的野善,落到泥潭中做垂死挣扎,越是挣扎,陷得越 深,最后无法逃脱灭顶之灾.以上这些矛盾至少描绘了软件危机的某些侧而,如果这些障碍不能突破,软件的发展是没有出路的。路在何方?软件工程化! !妙寸|1-3软件生存期和软件生存期模型从上述软件危机的现象和发生软件危机的原因可以看出:想摆脱 软件危机不能只从 i 两个方面着于解决。如何针对软件的特点,对 此加以分析,排除人们的一些传统观念和错误认识足井淆重要的任 务。只有端正

14、了对软件的认识,貞止抓住了它的特点和发展趋势, 才能逃出危机,走上软件发展的正确道路。开发一个软件,除去规模很小的项 H 之外,通常都是山多个软件人 员分工合作、共同完成;开发阶段之间的工作也要很好的衔接;开发 工作完成之后,软件成果还要面向用户,在应用中接受用户的检验。所肓这些活动都要求人们改变过去那种把软件半做个人才智产物的观 点,抛弃那些只按门己的工作习惯,不顾与周围其他人员用合的做 法。在这一点上,软件开发与硬件研制,甚至高楼建设没有木质差别。任何参加这些项 II 的人员,他们只有在工程项 II 的总体要求和技 术规范的约束下充分发挥和施展。许多计算机科学家尝试把具它工 程领域中行Z

15、有效的工程学知识运用到软件开发工作中來,经过不 断实践和总结,最后得出一个结论:按工程化的原则和方法组织软件开发工作是有效的,也是摆脱软件危机的一个主要出路!一、软件生存期软件生存期:软件孕育、诞生、成长、成熟和衰亡的生存过程。 软件牛存期的六个步骤:制定计划、需求分析、软件设 计.程序编码、软件测试和运行维护.制定计划(planning)确定要开发软件系统的总冃标,给出它的功能、性能、町靠件及 接口等方面的要求,由分析员和用户合作,研究完成该项软件任务 的可行性,探讨解决问题的可能方案,并对可利用的资源(计算机 硬件、软件、人力等)、成本、可取得的效益、开发的进度作出估 计,制定出完成丿|:

16、发任务的实施计划及町行性报告提交管理部门审 查。需求分析(requirement)対待开发软件提岀的要求进行分析并给出详细的定义。软件人员 和用户共同讨论决定:哪些要求是町以满足的,并对其加以确切地 描述。然后编写出软件需求说明书或系统功能说明卩,以及初步的 系统用户手册,提交管理机构评审。软件设计(software design)设计是软件工程的技术核心。在设计阶段,设计人员把己确定了 的各项需求转换成一个相应的体系结构。 结构中的毎一个成分都是 意义明确的模块,每个模块都和某些需求相对应,即槪要设计。进 而对每个模块要完成的匸作进行具体的描述,为源程序编码打下基 础,即所谓详细设计。所仃设

17、计中的考虑都 W 以设计说明书的形式 加以描述,以供后继工作使用,并提交评审。程序编码(coding 或 programming)把软件设计转换成计算机可以接受的程序代码,即写成以某种 特定程序设计语言表示的源程序消单,这-步工作称为编码当 然,写出的程序应当是结构良好、沽附易读,并与设计-致的。软件测试(testing)测试是保证软件质量的亟要手段,其主要方式是在设计测试用例 的基础上检验软件的各个组成部分。首先进行单元测试,查找个模块在功能和结构上存在的问题并加 以修改;其次,进行组装测试,将已测试过的模块按一定的顺序组 装起來:最后, 按规定的各项要求, 逐项进行确认测试, 决定已开 发

18、的软件是否合格,能否交给用户使用。 运行/维护 (running/maintenance)已交付的软件投入正式使用,便进入运行阶段,这一阶段口 J 能持 续很长一段时间。 软件在运行中可能由于多方而的原因, 需要对其 进行修改。其原因有:运行中发现了软件中的错谋需要修改;为了 适应变化了的软件环境,需作适当的变更;为了增强软件的功能需 作变更等.二、软件生存期模型为了反映软件生存期内各种活动应如何组织,6个步骤如何衔 接,需耍用软件生存期模型作出直观的图示表达.软件生:期模型 是从软件项H需求开始到软件交付使用为止,跨越整个住存期的系 统开发、运行和维护所实施的全部过程的结构框架。目前为止,已

19、经提出了多种软件生存期模羽:瀑布模军演化模型螺旋模型喷泉模型智能模舉瀑布模型规定了备项软件 工程活动(制定开发计划、进 行需求分析和说明、软件设计、 程序编码、软件测试和运行/ 维护)自上而下,和垃衔接的 固定次序如同!布模型(waterfallmodel)瀑布流水、逐步 下落。瀑布模型的两个主要问题:已经确认为是项目中的风险管理;能够在项目一开始产生明确的需求陈述的假设。由于在项目开发的初始阶段,人们对软件的需求认识常常不够沽 瞅,因而使开发项冃难以做到-次开发成功,出现返工开发在所难 免。有人说,往往要干两次后开发出來的软件才能较为满意。第一 次只是试验开发,其冃标只是在于探索可行性,弄消

20、软件盂求;第 二次则是在英基础上获得较为满意的软件产品。人们通常把第一次 得到的软件实验性产品称为“原型”。显然,演化模型在克服瀑布模型的缺点,减少由丁软件需求不明 确而给软件开发工作带來风险方面确有显著的效果。演化模型(evolutional model)演化模型的缺点:很难看出项目经理如何明确规划一个项目或进行项目 的工点分配;无法保证演化过程实际上总是向着一个稳定的系统汇 集;不能保证所形成的系统的整个体系结构将会使维护活 动能够有效进行。对于复杂的人型软件,开发一个原型往往达不到要求,螺旋模型 是将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的 风险分析,弥补了两者不足。在制定

21、软件开发计划时,系统分析员必须冋答:项目的需求是什 么?需要投入多少资源及如何安排开发进度等一系列问题。旋模型(spiral model)喷泉模型(wall funtain model)瀑布模型的另一个不足之处在丁二它对软件复用和生存期中多项 开发活动的集成未提供支持,因而难于支持面向对象的开发方法。;喷泉” 一词本身体现了迭代和无间隙特性。系统某个部分常常 重复工作多次,札 1 关功能在每次迭代中随之加入演进系统。所谓无间 隙是指在开发活动(分析、设计和编码等)之间不存在明显的边 界。:智能模型(intelligence model)智能模型也称基于知识的软件开发模型。它综合了上述若干模型,

22、 并把专家系统结合在一起。该模型基于规则,采用归约和推理机 制,帮助软件人员完成开发工作,并使维护在系统规格说明-级进 行。为此,建立了知识库,将模型本身、软件工程知识与特定领域 的知识分别心入数据府,以软件工程知识为基础的生成规则构成的 专家系统与含有应用领域知识规则的其它专家系统相结合,构成了 这一应用领域软件的开发系统。士1-4软件工程的基本目标定义1983 勺 IEEE 给出的定义为:“软件工程是开发、运行、维护和修 复软件的系统方法” O 其中:软件的定义为计算机程序.方法.规 则.相关的文档资料以及在计算机上运行时所必需的数据。 要素软件工程包括三个要素:方法、工具和过程。软件工程

23、方法为软件开发提供了 “如何做”的技术,它包括多方的任务,如项目计划与估算、软件系统需求分析.数据结构、系统 总体结构设计、算法过程的设计、编码.测试以及维护等。软件工 程方法常采用某一 种特殊的语言或图形的农达方法以及-套质量保 证标准。软件工具为软件工程方法提供了门动或半门动的软件支撑环境。目前,已经推出了许多软件工具,已经能够支持上述的软件匚程方 法。特别地,已经有人把诸多的软件工具集成起米,使得一种工具 产生的信息町以为其它工具所使用, 这样建立起一种被称之为计算 机辅助软件工程(CASE)的软件开发支撑系统。CASE 将各种软件工 具、开发机器和一个存放开发过程信息的工程数据炸组介起來形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论