您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > Chapter7用例建模-review29-04-2015
信息系统分析与设计7.1面向对象方法概述7.2用例建模第7章用例分析信息系统分析与设计7.1面向对象方法概述面向对象的软件工程面向对象的分析,简称:OOA面向对象的设计,简称:OOD面向对象程序设计,简称:OOP面向对象的测试,简称:OOT面向对象数据库系统,简称:OODBMS面向对象计算机软件辅助工程,简称:OOCASE信息系统分析与设计面向对象的语言信息系统分析与设计1程序设计技术的发展1.1面向机器的语言机器语言是硬件逻辑设计所实现的机器指令的集合,也就是由硬件所能实现的语义序列集合。其表现形式为能被机器直接接收的二进制代码序列。汇编语言是机器语言的直接符号映射。它用人类能够理解的助记符号来表示机器指令、寄存器、存储器地址等物理概念,以提高程序的可读性。信息系统分析与设计程序设计语言的发展机器语言汇编语言高级语言信息系统分析与设计机器语言与汇编语言由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。计算机语言的发展信息系统分析与设计高级语言高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。计算机语言的发展信息系统分析与设计面向对象的语言出发点:更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。特点:是高级语言。将客观事物看作具有属性和行为的对象。通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承与多态实现代码重用计算机语言的发展信息系统分析与设计面向对象的语言优点:使程序能够比较直接地反映问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。计算机语言的发展信息系统分析与设计早期的计算机应用以问题求解为主要目标,算法的设计和实现是程序设计活动的焦点。注重追求算法的效率,并不特别注意算法与数据结构的依赖关系,算法和数据处于相对独立的状态。1.2面向问题的语言信息系统分析与设计FORTRAN语言引入了程序设计语言中程序控制结构、符号命名机制等一些最重要的基本概念。例如:命名子程序、变量作为存储单元的抽象以及数组的概念等。随着编译技术的突破产生的高级语言用接近人类习惯的自然语言或数学语言表达问题、编制程序。高级语言通过引入一些抽象概念,屏蔽机器底层的差异,使它独立于机器,不但有效地提高了程序设计的效率,也带来了程序的可移植性。信息系统分析与设计由于算法总是以过程(子程序)的形式出现,面向问题的程序也叫做过程化程序设计。信息系统分析与设计模块化程序设计FORTRAN语言还引入了独立编译的模块和可重用子程序库的概念,这种技术后来被称为模块化程序设计。模块化的思想是将应用程序划分若干个规模适度的模块,每个模块独立命名、独立编译,最后通过连接程序形成可招待的应用程序。信息系统分析与设计模块化程序设计带来了以下一些重要概念:模块内信息隐藏,一个模块中的变量可以与其它模块中的变量同名而不至于产生混淆;模块间通过全局环境共享数据;模块间通过外部变量、公共变量实现通信。模块化程序设计倡导的这些概念被证明是程序组织和管理有效的基本手段,在以后程序设计技术发展的各个阶段得以延续和发展。信息系统分析与设计1.3面向数据结构的程序设计研究证明,仅用顺序,分支,循环三种基本控制结构即能构造出任何单入口、单出口的程序块。这些研究结果与模块化的概念相结合,形成了采用自顶向下、逐步求精的设计步骤和单入口单出口基本控制结构的结构化程序设计方法。信息系统分析与设计Pascal语言和C语言都是结构化程序设计语言。同时它们也是过程化程序设计语言。Pascal语言用过程来组织程序。C语言用函数来组织程序。过程(Procedure)和函数(Function)是子程序(Subroutine)的两种具体形式。过程没有返回值。函数函数有且只有一个返回值。信息系统分析与设计结构化程序设计的研究中有一个重要的结论,表示为公式:程序=算法+数据结构,强调算法对数据结构的依赖性,体现了一种数据结构为中心的观念。大多数结构化语言都具有定义新的数据类型的功能,如C语言中枚举(enum)、结构(struct)类型等。这有利于比较准确地描述待求解问题中的实体,并保证数据的一致性。数据库技术和数据库管理语言也体现了程序设计以数据结构为中心的鲜明特色。信息系统分析与设计以数据结构为中心的蔽端:整个程序中许多重要的过程和函数的实现依赖于一个或几个关键数据结构,如果关键数据结构中的一个或几个数据有所改变,则会波及到整个系统,许多过程和函数必须重写。这是不利于程序的维护和扩展的。信息系统分析与设计1.4面向对象的程序设计面向对象的程序设计方法继承了结构化、过程化、模块化等方法的所有积极成分,创造性地引入了“对象”这一构建程序的基本构件。对象是由数据结构和对数据结构的操作或运算封装而成的一个整体。封装使得算法和数据结构的关系由算法对数据结构单方面的依赖变成了相互依存的关系。信息系统分析与设计在面向对象的软件系统中,一个个不同类型的对象相互作用,自底向上构建起整个程序系统。它以“对象=数据结构+算法,程序=对象+对象…+对象”取代了“程序=数据结构+算法”的传统程序设计模式。因而引起了一场程序设计观念的革命。信息系统分析与设计面向对象方法采用数据抽象与隐藏、层次结构体系,动态绑定等概念和措施,提供一种模拟人类认知方式的软件系统建模方法,带来了系统的安全性、可扩充性、代码重用、易维护等人们期待的特性。信息系统分析与设计OOPL的来源与发展OOPL(ObjectOrientedProgrammingLanguage面向对象程序设计语言)20世纪60年代,由挪威计算中心OleDahl和KrystenNygaard.主持开发的Simula67被公认为是面向对象语言的先驱。20世纪70年代,由美国国防部资助开发的Ada语言,以它对抽象数据类型的支持,而在面向对象语言发展中占有重要地位。Simula67和Ada被看作是OOPL的两个直接的“祖先”,一个引入“模拟”,一个引入“抽象”。信息系统分析与设计20世纪70年代到80年代,美国Xerox公司,PaloAlto研究中心(PARC)的AlanKay,AdaleGoldberg和DanIngans等人主持开发的Smalltalk语言正式使用了“面向对象”这个术语。它的问世标志着面向对象程序设计方法的正式形成。1981年推出的Smalltalk-80是Smalltalk语言最完善的版本。它是第一个能够实际应用的纯的面向对象语言。在Smalltalk_80中类和对象不仅仅是语言成分,而且是交互式程序设计环境的组成部分。信息系统分析与设计80年代中期,Simular67、Smalltalk_80等语言的影响仅仅局限在学术界。面向对象语言对计算平台的特殊要求使这些语言难于被软件开发商和程序员接受。贝尔实验室的BjarneStroustrup及其研究小组在当时最受欢迎的C语言基础上开发的C++语言,引入了对面向对象概念的支持。C++语言以其与C语言兼容、高运行效率等优良特性,使面向对象程序设计技术受到软件工业界的广泛关注,使之进入一个全面发展的时期。尽管C++只能算作一种混合式面向对象语言。但是正是由于大量C程序员通过C++的帮助才迅速掌握了面向对象的概念和方法,全面促进了面向对象技术的应用,从而使C++成为最有影响的面向对象语言,甚至许多人把C++当作面向对象的代名词。信息系统分析与设计面向对象技术的流行进一步促进了面向对象语言的繁荣。90年代涌现出了一大批实用的面向对象语言,如ObjectPascal、Eiffel、Java等等。Java语言是由SunMicrosystem公司推出的一种纯面向对象语言。Java从C++语言中继承了大量的语言成分,抛弃了C++语言中冗余的和容易引起问题的功能,它将面向对象、平台无关性、稳定性、安全性等集于一身,提供了一个良好的程序设计环境,因而成为适合于分布式计算的程序设计语言。Java语言于90年代中期的迅速流行与它定位于当时迅速发展的Internet的应用开发有关。展示了面向对象技术与分布式计算结合的重大前景。信息系统分析与设计程序设计语言:C++,Java脚本语言:JavaScript,VBScript标记语言:SGML,HTML,XML样式语言:CSS,XSL建模语言:UML信息系统分析与设计2面向对象的基本概念2.1面向对象的目标建立一个既能在计算机系统中自然地表示客观世界的问题、又能够超越程序复杂性障碍的程序设计模型。信息系统分析与设计面向对象方法通过对客观世界和问题世界的直接模拟,建立较为准确、自然的程序设计模型,从而获得信息处理的更高性能。计算机世界(程序空间)主观世界(问题空间)客观世界(真实空间)图1客观世界、主观世界和计算机世界信息系统分析与设计从计算机软件设计的角度,引入类和对象的概念,将客观世界和主观世界中的实体和问题直接映射到计算机世界的程序空间。这就是面向对象方法的基本出发点。信息系统分析与设计对象具有的特征万物皆为对象每个对象都有自己的惟一标识对象具有属性和行为对象具有状态对象之间依靠消息实现通信信息系统分析与设计分类:从大量相似的实体中归纳、抽象出相同特征,为辨识新的个体形成参照模式。对象和类的概念是面向对象技术中最重要的概念。对象和类分别对应认识论中实体和对实体的分类。实体:客观世界或问题世界中可直接或间接观察的个体。物理实体:一本书,一辆汽车观念实体:一笔帐,2008北京奥运会抽象是对具体事物简化描述的过程,它强调了系统的某些主要特性面而忽略了其它特性。信息系统分析与设计一个分类至少应抽象出两个方面的特征,一是数据特征,一是行为特征。比如人类,有年龄、性别、身高、体重,健康状态、所属工作单位等特征,这些特征可以用一些具体的数值来描述,属于数据特征。数据特征又称属性或状态,是区分不同个体的依据。人类还有行为特征,如吃饭、走路、学习、成长等。行为特征是同一个类的所有个体共有的。信息系统分析与设计2.2面向对象语言中的类和对象在面向对象语言中通常以下面描述的方式来定义类:类定义:类名1{私有数据:数据类型1:属性数据1;数据类型2:属性数据2;数据类型3:属性数据3;…公有方法:方法(行为)1;方法(行为)2;…};类是一个形体定义,它对一个数据特性和方法特性的封装体进行说明。类定义中包含两类成员:数据成员和方法成员。类的定义为该类的对象提供了创建的模式。信息系统分析与设计根据已定义的类,可以按下述方式创建对象:类名1:对象名1,对象名2;类名2:对象名3;…对象是类的实例。对象是按照类提供的模板进行的实体定义,它将为对象在内存中分配实际的存储空间。在程序中对象间相互通信和作用,共同完成程序功能。类与对象的关系就是数据类型和该类型变量的关系。如:intx.y;floatf1,f2;clockt1,t2;Complexc1,c2,c3;信息系统分析与设计数据类型是不同形式的信息在内存中分配方式的基本约定,是构造程序的基础。每种程序设计语言中都定义了自己的基本数据类型集合和利用基本数据类型定义的扩展数据类型。常量、变量甚至函数都有自己的数据类型。C语言等结构化程序设计语言还为用户提供了自定义数据类型的手段。从抽象数据类型的观点看类和对象信息系统分析与设计一个数据类型的定义包括一个值集和一
本文标题:Chapter7用例建模-review29-04-2015
链接地址:https://www.777doc.com/doc-2905586 .html