面向对象分析与设计_面向对象分析与设计期末考试

创业分享 2024-07-24 09:53:47

智能科学与技术专业个人职业规划怎么写

智能科学与技术专业职业规划书范文

面向对象分析与设计_面向对象分析与设计期末考试面向对象分析与设计_面向对象分析与设计期末考试


面向对象分析与设计_面向对象分析与设计期末考试


一、前言

在今天这个人才竞争的时代,职业生涯规划开始成为在人争夺战中的另一重要利器。对企业而言,如何体现公司“以人为本”的人才理念,关注员工的人才理念,关注员工的持续成长,职业生涯规划是一种有效的手段;而对每个人而言,职业生命是有限的,如果不进行有效的规划,势必会造成生命和时间的浪费。作为当代大学生,若是带着一脸茫然,踏入这个拥挤的怎能满足的需要,使自己占有一席之地?因此,我试着为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。有了目标,才会有动力。

二、自我分析

我是一个当代本科生,(平时)是家里的希望——成为有用之才,性格外向、开朗、活泼,业余时间爱交友、听音乐、外出散步、聊天,还有上网。喜欢看、散文,尤其爱看杂志类的书籍,心中偶像是,平时与人友好相处群众基础较好,亲人、朋友、教师关爱,喜欢创新,动手能力较强做事认真、投入,但缺乏毅力、恒心,学习是“三天打渔,两天晒网”,以致一直不能成为尖子生,有时多愁善感,没有成大器的气质和个性。但身高上缺乏自信心,且害怕别人在背后评论自己。

缺点如何克服?

所谓江山易改,本性难移,虽然恒心不够,但可凭借那份积极向上的热情鞭策自己,久而久之,就会慢慢培养起来,充分利用一直关心支持我的庞大亲友团的优势,真心向同学、老师、朋友请教,及时指出自存存在的各种不同并制定出相应以针对改正。经常锻炼,增强体质,以弥补海拔不够带来的负面影响。

三、专业就业方向及前景分析

我所学的专业是智能科学与技术,该专业是以信息领域为背景数学与信息,管理相结合的交叉学科专业.毕业以后,可以在信息与计算科学、计算机信息处理、经济、金融等部门从事研究、教学、应用软件开发或者是管理部门从事一些实际应用、开发研究或者管理工作。

前景分析:

(1)继续深造:由于智能科学与技术专业的毕业生不仅具有扎实的数学基础和良好的数学思维能力,而且掌握了信息与计算科学的方法与技能,受到科学研究的训练,因此继续深造的可选择领域将变得非常广泛,既可以继续攻读计算数学、计算力学、计算机应用与软件、信息与网络安全、信息科学、自动控制、金融信息等专业和研究方向的硕士学位,也可以攻读具有行业特色且与信息与计算关系比较紧密的某些专业的硕士学位,象地球物理、油藏数值模拟、试井、储运等方向都是继续深造的理想专业。

(2)高等院校、科研单位:信息与计算科学专业的毕业生可以在大专院校和科研单位从事教学和科研研工作,可以继续从事信息科学与计算数学的教学和研究工作,也可以凭借其出色的数学建模能力和计算能力解决实际应用问题。

(3)IT企业:信息与计算科学专业的毕业生进入IT企业是一个重要的就业方向,它们可以在这些企业非常高效的从事计算机软件开发、信息安全与网络安全等工作。信息产业对人才的需求首先是基本的“技能”,包括计算机编程的基本能力,要求具有良好的数据库和计算机网络的知识和使用技能,熟悉基本的软件开发平台。由于信息产业进入“应用”为主流的时代,高水平的从业人员不仅要掌握基本的“技能”,关键还要具备将实际问题提炼为计算问题以及求解该问题的能力,这正是信息与计算科学专业学生的优势所在,也是近几年来国内大型IT企业“抢购”知名高校计算数学专业毕业生的原因所在。

(4)特色行业的就业:在前面的办学指导思想中曾经提到过一条是重实际,即各学校应紧紧结合本校的实际,努力使所办专业与所在学校的定位相适应、与本校教师的特长与发展目标相适应、与所在地区经济发展对人才的需求相适应。

四、职业选择分析

职位描述

软件测试工程师是软件生产过程中的质量管理者,不但要对软件产品后的功能、性能负责,而且从软件的“需求分析”、“结构设计”阶段面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.以及文档规范等诸多方面就开始对软件的质量加以保障,使生产出来的软件的功能达到设计之初的要求,让用户用上高质量的软件。

工作职责

1、理解产品的功能要求,并对其进行测试;

2、负责bug登记和;

工作权限

1、根据项目开发,分阶段向相关开发人员索取测试软件(产品)及相关的技术文档;

2、及时向开发人员反映软件存在的Bug,并负责Bug跟踪测试。

任职资格

1、计算机相关专业

2、精通软件测试理论,熟悉常用测试工具(LR、QTP、TD)的使用,能够熟练设计测试用例;

3、熟悉Oracle、Sql数据库,精通SQL语法;

4、了解、JAVA等软件开发语言,有软件开发经验;

5、具有较强的沟通理解能力和协调能力,及团队协作精神;对工作积极主动、认真负责。

6、熟悉软件工程、软件测试理论和方法,了解相关的测试流程、规范、文档标准;

与职业选择目标的距

软件测试师是软件开发的质量把关者,当下软件产业升级,国内软件行业突破了传统的作坊式生产,从单打独斗的开发模式升级为工业化、流水线式的生产模式,理所当然的对开发的软件有更高的质量要求。对软件测试人才的需求不断扩大的同时,对人才的要求也会越来越高。对我来说,这既是机遇,又是挑战。

不论是专业技能还是专业素养,目前的我与一名合格的软件测试工程师还有很大的距。要成为一名要想获得更大发展空间或者持久竞争力function exec():void;的测试工程师,则智能科学与技术专业技能是必不可少的。软件测试人员必须具有两三年的软件开发经验,并且与软件开发人员相比,测试人员不但需要一技之长,还需要掌握诸如作系统、数据库、网络等多方面的知识。

五、实际职业目标的具体行动(未来二学年)

首先,要认真听课,保证学习成绩,拿到奖学金。因为软件测试这一行经验比学历重要,大多数人认为上研究生不如在企业积累经验,不需要保研或者考研,所以不用好好学习与计算机无关科目。但是,我认为,眼光应当放远一些,在我的大学时代多方面培养自己,丰富知识,提高综合素质,而不是急功近利,纯粹为了就业而学习。当然,学习中应当有所偏重,计算机方面的课程如数据结构,数据库,JAVA语言程序设计,面向对象分析与设计,作系统,软件工程等科目应当对自己的要求更高,更严格。到了后期,要开始系统的学习软件测试方面的知识,找一些测试书籍来看。

其次,多参与活动,将所学知识运用于实践,初步积累编程和测试经验。目前,国内软件测试人才的来源主要有三方面:一是以前做软件开发转行的技术人员;二是来智能科学与技术专业的高等学院毕业生;三是来自培训机构的专业学员。而企业普遍认为智能科学与技术专业应届毕业生缺乏动手能力。所以,在不断提高专业知识水平的同时,更应该多参与实践,培养动手能力,取得丰富的经验。为此,我决定利用寒暑的时间,争取到软件公司实习,为顺利就业增加砝码。

平时利用网络与软件测试从业人员交流,多去软件测试的、贴吧。让自己在加入软件测试队伍之前对这个职业有更深更全面的认识,并且能在这个过程中积累人脉资源

具体:

大二下学期

认真听课,成绩达到要求,过英语四级。

大二暑

暑期实践,找一份

大三上学期

大三寒

在家乡找一份,同时学习软件测试

大三下学期

学好各门课程,自学软件测试相关知识

大四上学期

继续自学软件测试知识

大四寒

运用所学知识进行软件测试,通过这种方式检测自己的在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。测试水平以及相关知识掌握程度

大四下学期

完善软件测试知识,参加相关专业培训。

六、结语

人生犹如在大海里漂泊的船,如果找不到航行的方向,就会迷失自己。就像万吨巨轮没有罗盘掌控方向就不能远航。对自己的未来没有系统的规划,梦想只能遥遥无期,永远实现不了,只能导致自己找不到自己奋斗的目标,一切的理想都将成为空谈。

以上是智能科学与技术专业职业规划书范文正文,仅供参考。若需要更专业的大学生个人职业生涯规划书范文,请在职导网直接免费向职场导师寻求职业指导。

◎智能科学与技术专业就业前景分析:

智能科学技术是信息科学技术的核心、前沿和制高点。如果说20世纪末期,推动世界发展的引擎是信息化;那么21世纪初期,世界发展的火车头就是智能化。智能科学与技术的学科内涵:综合信息科学与生命科学技术,通过获取信息和提炼知识,应用策略达到解决实际问题的目的。目前,智能科学与技术专业已是上公认的具发展前景的专业之一,无论是科研院所,还是公司企业,都亟需智能专业本科人才,他们是智能科学研究及应用领域的生力军。首都师范大学智能科学与技术专业成立于2003年,是国内早建立的智能专业之一,具有的师资和教学环境,本专业教师具有博士学位,50%的教师具有职称,建立了“智能机器人开放实验室”、“虚拟现实实验室”及“智能信息处理实验室”三大平台,为专业教学活动、学生科研实践活动提供了良好的教学和科研实践环境。

结构化程序设计与面向对象设计主要区别

多态性增强了软件的灵活性和重用性。

自己百度下啊。。。看看再总结下。。。以下看看,是否对你有帮助

概念结构设计

1..思想的区别

结构化程序设计

思想:在编程之前,先对程序系统根据业务需要进行整体的规划,描述出系统的流程。对程序系统进行模块化分和功能分配。设计出各种图表,指明数据的流向。

1)缺少扩展性:进行程序设计的时候只将系统着眼于现有业务功能的实现,没有考虑到系统将来的业务变化情况。

2)灵活性:进行程序设计,时没有对软件的系统的设计和实现进行合理的分工。

3)违反职能均衡原则。

面向对象程序设计

思想:在进行程序开发之前,先将程序的业务变化进行合理的分析,将程序中的代码与现实中的事物结构特征结合起来考虑。

优点:实现了程序系统的可扩展性,可重用性,可维护性。

缺点:体系庞大,难以掌握。

2.面向对象程序设计和结3,记管理器:构化程序设计应用程序的区别

面向对象应用程序将程序中的数据和对数据的作描述为一个整体,即类。

jsd方法是一种面向什么的分析和设计方法

多对多,即两种实体之间,种实体可以对应多个第二种实体,第二种实体也可以对应多个种实体。例如作者和书籍的关系就是一种多对多的关系,一个作者可以写多本书,同时,一本书有可能有多个作者共同写成。对于这种关系,则需要建立两种实体数据表以及一张关系表来进行描述。jackson系统开发方法(jsd)是一种典型的面向数据结构的分析设计法, 它是以信息驱动的,是将信息转换称软件的程序结构

工程方法:结构化方法、JSD方法、面向对象方法。(2)软件工具:具有自动化特征的软件开发集成支撑环境。(3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护

JSD方法实际上是支持软件分析使用分层来引用,作.·分理处雇佣出纳员;而不用管计算机内部如何处理.与设计的一组连续的技术步骤:

(1)实体动作分析:从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织),以及现实世界作用于实体上的动作()。

(2)实体结构分析:把作用于实体的动作或由实体执行的动作,按时间发生的先后次序排序,构成进程,并用一个层状的.Jackson结构图表示。

(3)定义初始模型:把实体和动作表示成一个进程模型,定义模型与现实世界的联系。模型系统的规格说明可用系统规格说明图(SS[),Systern Specification Diagam)来表示。

自考新生注册报名审核没通过,说已有籍准考证,是什么意思啊?

(2) 自顶向下将现有的类细化为更具体的子类。具体化常常可以从应用域中明显看出来。应用域中各枚举字情况是常见的具体化的来源。例如:菜单,可以有固定菜单,顶部菜单,弹出菜单,下拉菜单等,这就可以把菜单类具体细化为各种具体菜单的子类。当同一关联名出现多次且意义也相同时,应尽量具体化为相关联的类,例如"事务"从"出纳站"和"自动出纳机"进入,则"录入站"就是"出纳站"和"自动出纳站"的一般化。在类层次中,可以为具体的类分配属性和关联。各属性和都应分配给一般的适合的类,有时也加上一些修正。

是说这个号注册过准考证,你可以咨询当地自考办咨询下,报名是无法重复的。

·自动出纳机与用户接口;报名条件:

1、中华公民,以及港澳台同胞、海外侨胞,不受性别、年龄、民族、种族、学历、身体健康状况、居住地等限制,均可报考(可不考虑户口在异地报名)。

2、能遵纪守法、接受改造、积极学习的劳改、劳教人员,经有关本专业培养的人才具有扎实的自然科学基础、较好的人文科学基础和外语综合能力;能系统地掌握计算机网和通讯网技术领域的基本理论、基本知识;掌握各类网络系统的组网、规划、设计、评价的理论、方法与技术;获得计算机软硬件和网络与通信系统的设计、开发及应用方面良好的工程实践训练,特别是应获得较大型网络工程开发的初步训练;本专业是专门为网络领域人才市场供不应求的迫切需要而设置的专业。部门批准后也可申请报考。

招生专业之一:

软件工程

本专业培养具有良好综合素质、坚实软件理论与软件工程专业基础知识,具有较强软件设计与实践能力和良好的项目管理能力,能在计算机软件领域从事科研、技术开发及管理工作的实用型、复合型高级专门人才。

主要课程:工程数学、数据结构和算法、面向对象分析与设计、作系统、软件工程、网络原理、数据库原理及应用、软件测试、软件项目管理等。

北大青鸟ja培训:程序员需要了解的10个面向对象设计?

·自动以上内容参考:出纳机接受卡;

面向对象设计原则是OOPS编程的核心,学习面向对象编程像“抽象”、“封装”、“多态”、“继承”等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。

(设计原则)底线是永远追求高内聚、低耦合的编码或设计。

Apache和Sun的开源代码是学习和OOPS设计原则的良好范例。

它们向我们展示了,设计原则在编程中是如何使用的。

JDK使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、.io类中的装饰器模式。

顺便说一句,如果您真的对编码原则感兴趣,请阅读JoshuaBloch的Effective,他编写过API。

我个人喜欢的关于面向对象设计模式的是KathySierra的HeadFirstDesignPattern(深入浅出设计模式),以及其它的关于深入浅出面向对象分析和设计。

这些书对编写更好的代码有很大帮助,充分利用各种面向对象和SOLID的设计模式。

虽然学习设计模式(原则)的方法是现实中的例子和理解违反设计原则带来的不便,本文的宗旨是向那些没有接触过或正处于学习阶段的程序员介绍面向对象设计原则。

DRY_Don’trepeatyourself我们个面向对象设计原则是:DRY,从名称可以看出DRY(don’trepeatyourself)意思是不写重复代码,而是抽象成可复用的代码块。

如果您有两处以上相同的代码块,请考虑把它们抽象成一个单独的方法;或者您多次使用了硬编码的值,请把它们设置成公共常量。

这种面向对象设计原则的优点是易于维护。

重要的是不要滥用此原则,重复不是针对代码而是针对功能来说。

它的意思是,如果您使用通用代码来验证OrderID和SSN,这并不意味着它们是相同的或者他们今后将保持不变。

通过把通用代码用于实现两种不同的功能,或者您把这两种不同的功能密切地联系在一起;当您的OrderID格式改变时,您的SSN验证代码将会中断。

所以要当心这种耦合,而且不要把彼此之间没有任何关系却类似的代码组合在一起。

封装经常修改的代码EncapsulateWhatChanges在软件领域永远不变的是“变化”,所以把您认为或怀疑将来要被修改的代码封装起来。

这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码。

如果您在用编程,那么请遵守以下原则:变量和方法的访问权限默认设置为私有,并且逐步放开它们的访问权限,例如从“private”到“protected”、“notpublic”。

中的一些设计模式使用了封装,工厂设计模式就是一个例子,它封装了创建对象的代码而且提供了以下灵活性:后续生成新对象不影响现有的代码。

打开/关闭设计原则OpenClosedDesignPrinciple类、方法/函数应当是对扩展(新功能)开放,对修改闭合。

这是另外一个优雅的SOLID设计原则,以防止有人修改通过测试的代码。

理想情况下如您添加了新功能,那么您的代码要经过测试,这就是打开/关闭设计原则的目标。

顺便说一句,SOLID中的字母“O”指的是打开/关闭设计原则。

单一职责原则SingleResponsibilityPrinciple(SRP)单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的就是它。

按照SRP,一个类修改的原因应当有且只有一个,或者一个类应当总是实现单一功能。

如果您在中的一个类实现了多个功能,那么这些功能之间便产生了耦合关系;如果您修改其中的一个功能,您有可能就打破了这种耦合关系,那么就要进行另一轮测试以避免产生新的问题。

依赖注入/反转原则DependencyInjectionorInversionprinciple不要问框架的依赖注入功能将会给你带来什么益处,依赖注入功能在spring框架里已经很好的得到了实现,这一设计原则的优雅之处在于:DI框架注入的任何一个类都易于用模拟对象进行测试,并且更易于维护,因为创建对象的代码在框架里是集中的而且和客户端代码是隔离的。

有多种方法可以实现依赖注入,例如使用字节码工具,其中一些AOP(面向切面编程)框架如切入点表达式或者spring里使用的。

想对这种SOLID设计原则了解更多,请看IOC和DI设计模式中的例子。

SOLID中的字母“D”指的就是这种设计原则。

优先使用组合而非继承ForComitionoverInheritance如果可以的话,要优先使用组合而非继承。

你们中的一些人可能为此争论,但我发现组合比继承更有灵活性。

组合允许在运行时通过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系提供了灵活性。

甚至Effective也建议优先使用组合而非继承。

里氏替换原则LiskovSubstitutionPrincipleLSP根据里氏替换原则,父类出现的地方可以用子类来替换,例如父类的方法或函数被子类对象替换应该没有任何问题。

LSP和单一职责原则、接口隔离原则密切相关。

如果一个父类的功能比其子类还要多,那么它可能不支持这一功能,而且也违反了LSP设计原则。

为了遵循LSPSOLID设计原则,派生类或子类(相对父类比较)必须增强功能,而非减少。

接口隔离原则接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口。

这大多在以下情况发生:一个接口包含多种功能,而实现类只需要其中一种功能。

接口设计是一种棘手的工作,因为一旦发布了接口,您就不能修改它否则会影响实现该接口的类。

在中这种设计原则的另一个好处是:接口有一个特点,任何类使用它之前都要实现该接口所有的方法,所以使用功能单一的接口意味着实现更少的方法。

编程以接口(而非实现对象)为中心编程总是以接口(而非实现对象)为中心,这会使代码的结构灵活,而且任何一个新的接口实现对象都能兼容现有代码结构。

所以在中,变量、方法返回值、方法参数的数据类型请使用接口。

原则不要期望一个类完成所有的功能,电脑培训://

原则的是:中的equals()和hashCode()方法。

这种设计(3) 动作:关联应该描述应用域的结构性质而不是瞬时,因此应删除"自动出纳机接受卡","自动出纳机与用户接口"等。原则的好处是:没有重复编码而且很容易修改类的行为。

什么是面向对象的程序设计

软件 银行网络 出纳员 自动出纳机 分行

什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的

(2) 查找多余的类。

语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心得,不怕贻笑大方,写出已供广大同行批评指正。

“对象(Object)”一词,早在十九世纪就有现象学胡塞尔提出并定义。对象是世

界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东西。譬如,当我们看到另外一棵树是,并不会因为所见的棵树不在了失去了供参照的模板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象

当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。

上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常

所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来解决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我们可以将它作为一个对象来进行分析。一个系统(解决某个问题的解决方案)作为一个对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组作方法。这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类的事情。甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。这样,更能显示面向对象的优势。

上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当中,还应该采用适当

的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。这主要表现在处理对象与对象的关系上没有做好,对象与对象的层次不分明。如上面所举得关系型数据库得例子,如果在元组层面上得对象过多得考虑一个表对象得因素,或一个表层面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的面向对象的设计方法。这一点,在语言实现方面,Ja比C更有优势,因为它不允许多重继承,从而使对象之间的关系更明确。谁也不会否认C的功能更强大,但是它也要由次付出巨大代价——当现在代码库发展到一定程度、一定规模时,个对象之间的层次关系将变得异常复杂,给后继使用者得学习、理解带来很大的困难,应用上很难把握。另外,虽然C具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C完全可以不用面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C看成是C扩充的初学者,这就为以后的发展埋下了隐患。在者一方面,Ja的限制更多一点。就者一点还远远不够。搞开发的是人,开发方法是由人决定的。要应用面向对象的方法开发出的软件,必须要求开发人员具有良好的面向对象的思想。好的工程师可以利用适当的工具开发出的软件——而不在乎他所使用的语言工具——Ja、C、Object Pascal、Ada等。

要能应用面向对象的思想熟练得做好系统分析、设计、实现(编程),首先要求开发人

员知道什么是对象,什么是面向对象得概念,否则是谈不上应用面向对象得思想搞软件开发了。希望读者能在看到我在前面的不太严密、详细的论述之后可以对“对象”这个概念由一个初步的了解,同时也希望有不同看法的同行提出批评。其次,还要求开发人员有比较丰富的开发经验。否则,光谈理论,那是不能真正体会“面向对象”的含义的。尽管如此,我们还是可以定出一般的规则的。抛开生命周期的其它阶段,对一个确立的系统一般可以进行以下几个过程:

一、首先应用面向对象的思想进行系统分析。仔细的划分系统的各个部分,明确它

们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。例如,要设计一个用户界面,它可能由几个主要的窗体组成:主窗体MainFrame、功能性子窗体以及对话对话框Dialog。其中,MainFrame中可能还包括菜单、工具条、文本框、状态条等Windows组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务——不要让它有缺陷,也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。

实际上,如果你是用Ja进行开发,你会发现swing组件本身就非常好用,因为它们

之间的关系是很分明的——你无须去理解分清象C中的组件那性能比面向对象高,因为类调用需要实例化,开销比较大,比较消耗资源。样复杂的关系。在开发你自己的组件时,也需要力求达到这样的效果。

二、其次时应用面向对象的思想进行系统设计。其实在真正做好了系统分析的工作之后,进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各个对象之间的关系

为了能够更好地帮助实现人员明白各个对象之间的关系,可以利用一些工具将这些组件的关系表示出来,统一建模语言(Uniformed Mole Language,UML)就是这样的一种好东西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,给以后的工作提供巨大的方便。

网络工程专业主要做什么?

区别:对数据和对数据的处理的区别

一、培养目标

property name:String;

培养德、智、体等全面发展的,掌握计算机网络工程技术的基本理论、方法与应用,从事计算机网络工程及相关领域中的系统研究、设计、运行、维护和管理的高级工程技术人才。

缺点:

二、课程设置

主要的课程体系包括:

1、公共基础课程: 主要包括高等数学、大学物理、英语、体育、理论、计算机文化基础、C语言 等课程。

2、专业基础课程: 线性代数、概率论、电路分析基础、电子电路基础、数字电路基础、电子线路CAD 、电子技术实验、电子技术课题设计、离散数学、汇编语言程序设计、计算机组成原理与系统结构、单片机原理、接口技术、作系统原理、数据结构、面向对象程序设计、计算机网络、现代通信技术、数据库系统原理、计算机图形学、编译原理、科技英语等。

3、专业课程: 网络设备、综合布线技术、网络的组建与设计、计算机安全技术等课程 。

4、专业限选课: lotus、Ja程序设计、网页制作技术、VB程序设计等课程。

5、实践类课程: 重点应包括每年的一次的教学实践和的毕业设计。

三、修业年限及授予学位

1、修业年限: 四年制本科

2、授予学位: 工学学士

招生对象:初中以上文化程度者,有志于从事计算机硬件维护、网络工程等相关工作;希望拥有高薪和令人敬慕的稳定的职业的一切毕业生或各界人士。

培养目标:掌握常用作系统的使用、网络设备的配置,深入了解网络的安全问题,具有综合性的网络管理能力。可以胜任中小企业的网络管理工作,并具备发展成为网络工程设计专家的能力

授课内容:

阶段(计算机初级应用阶段)

1、计算机应用基础:计算机基础、汉字录入、Windows98/2000/XP、网络基础、互联网应用基础

2、办公软件:文档处理-Word;电子表格-Excel XP/2003;演示文稿-PowerPoint XP/2003

第二阶段(中级应用阶段)

电脑的组装与维护、网络技术基础、互联网技术及高级应用、Windows 2000/2003网络构建与管理、 网络高级应用、Exchange 2000/2003邮件服务系统、网络设备、Linux网络作系统、网络数据库SQL 2000

第三阶段(高级应用阶段)

综合布线设计、网络安全技术、、网络管理技术、网络工程设计、网络技术、网络工程师需求分析及方案设计、网络工程案例分析、综合网络技术实战训练

第四阶段(毕业设计阶段)

在导师的指导下,进行网络管理、网络安全、网络系统集成、网络营销综合训练,以检验、巩固所学的专业知识。

网络工程专业

网络工程专业培养掌握网络工程的基本理论与方法以及计算机技术和网络技术等方面的知识,能运用所学知识与技能去分析和解决相关的实际问题,可在信息产业以及其他国民经济部门从事各类网络系统和计算机通信系统研究、教学、设计、开发等工作的高级科技人才。计算机网与通讯网(包括有线、网络)的结合是本专业区别于其他高校网络工程专业的显著特色。

本专业修业年限四年。学生在修完教学所规定的全部课程并考试合格后,将被授予工学学士学位。

本专业主要课程有:高等数学、线性代数、概率论与随机过程、数学建模与模拟、组合数学、运筹学、形式语言与自动机、排队论、电路与电子学基础、数字逻辑与数字系统、离散数学、计算机导论与程序设计、算法与数据结构、计算机组成与系统结构、作系统、数据库系统原理、软件工程、面向对象分析与设计、接口技术与汇编语言、嵌入式系统、信号与系统、计算机网络、通信导论、通信原理、现代交换原理、现代通讯网、网络工程、信息与网络安全、接入网技术、宽带通信网络、通信软件设计、Internet技术等。

在理论课学习的同时,非常重视学生实践动手能力的培养,建立了国内的实验教学环境,主要专业基础课和专业课都开设了实验课。此外,还有课程设计、大型作业、专业实习、毕业设计等实践教学环节,培养学生的综合能力和素质。

面向对象建模分析(一)

饮料名 Varchar(256) Primary key

软件是一种特别的产品,随着规模和复杂性的进步以及应用领域的扩大逐渐形成了工程。

5,故障系统实体

是计算机中与硬件相互依存的另一部分,包括程序、数据和说明文档。

一对一,即两个实体之间的关系是一一对应的。如:一个公民跟他的是绑定的,知道就能够找到对应的人,同样对应的人也能够找到与其对应的的。类似这种关系,通常是建立两张实体数据表,然后关系可以同时放两个实体表中。

程序是按照设计要求和性能指标设计的指令序列

数据是程序能够正常纵信息的数据结构

说明文档是用于开发和维护软件程序的各种图文资料。

软件工程是软件的工程性方法,涵盖了所有生命周期,并提供了一整套工程性方法来指导软件开发。

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。

包含:1. 软件开发技术 2. 软件项目管理

软件工程三要素:方法、工具、过程

软件工程应包括的知识(10个):软件需求、软件设计、软件构建、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量

指计算机软件的开发和维护过程中所遇到了一系列问题。

包括分析、设计、实现、测试和维护等。

软件工程目标:正确性、可用性、费用合算

软件工程活动:需求、设计、实现、确认、支持

软件工程原则:适宜开发范型、合适设计方法、高质量工程支持

是为了获得高质量软件所需要完成的一系列步骤。

生命周期模型把生命周期划分成那些阶段以及执行顺序,也称为软件过程模型。

常见模型:瀑布模型、快速原型模型、增量模型、螺旋模型

应用场景: 大型软件项目;需求明确;需求变化少

特点:

应用领域: 客户不熟悉软件、沟通理解困难

缺点

适用范围: 需求比较明确、架构稳定

适用范围: 大型复杂的系统

五个阶段: 规划、分析、设计、实施、运行维护

Jackson方法的表示: 顺序、选择、重复

自底向上的归纳、自顶向下的分解,尽可能运用人类自然思维方式

要点:

三大重要特征: 封装、继承、多态

基本概念: 对象、类、封装...

核心概念: 对象、类

哪些软件或技术用到了面向对象的相关知识

优点:

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

职导网职业规划师,某名企人力资源总监曾先生表示,

解析:

面向对象

中科永联高级技术培训中心(itisedu)

面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。

面向对象是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

一、传统开发方法存在问题

1.软件重用性

重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。

2.软件可维护性

软件工程强调软件的可维护性,强调文档资料的重要性,规定终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性,维护困难,导致可维护性。

3.开发出的软件不能满足用户需要

用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个层的处理。因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的 ,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。

二、面向对象的基本概念

(1)对象。

对象是人们要进行研究的任何事物,从简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、或。

(2)对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。

对象还有作,用于改变对象的状态,对象及其作就是对象的行为。

对象实现了数据和作的结合,使数据和作封装于对象的统一体中

(3)类。

具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有作,它是对象的行为的抽象,用作名和实现该作的方法来描述。

(4)类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。

②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。

(5)消息和方法。

类中作的实现过程叫做方法,一个方法有方法名、参数、方法体。消息传递如图10-1所示。

二、面向对象的特征

(1)对象性。

每个对象都有自身的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

(2)分类性。

分类性是指将具有一致的数据结构(属性)和行为(作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

(3)继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

多态性使指相同的作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

三、面向对象的要素

(1)抽象。

抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。

类实现了对象的数据(即状态)和行为的抽象。

(2)封装性(信息隐藏)。

封装性是保证软件部件具有优良的模块性的基础。

面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。

对象是封装的基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。

(3)共享性

面向对象技术在不同级别上促进了共享

同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、行为特征的共享关系。

在同一应用 享。在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。

在不同应用 享。面向对象不仅允许在同一应用 享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。

4.强调对象结构而不是程序结构

四、面向对象的开发方法

目前,面向对象开发方法的研究已日趋成熟,上已有不少面向对象产品出现。面向对象开发方法有Coad方法、Booch方法和OMT方法等。

1.Booch方法

Booch描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。

2.Coad方法

Coad方法是Coad和Yourdon提出的面向对象开发方法。该方法的主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、结构、属性和作的认定方面,提出了一套系统的原则。该方法完成了从需求角度进一步进行类和类层次结构的认定。尽管Coad方法没有引入类和类层次结构的术语,但事实上已经在分类结构、属性、作、消息关联等概念中体现了类和类层次结构的特征。

3.OMT方法

OMT方法是19年由James Rumbaugh等5人提出来的,其经典著作为“面向对象的建模与设计”。

该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系统。该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力寻求一种问题求解的实际方法。

4.UML(Unified Modeling Language)语言

UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,终统一为大众接受的标准建模语言。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。

五、面向对象的模型

·对象模型

1.对象和类

(1) 对象。

对象建模的目的就是描述对象。

(2) 类。

通过将对象抽象成类,我们可以使问题抽象化,抽象增强了模型的归纳能力。

(3) 属性。

属性指的是类中对象所具有的性质(数据值)。

(4) 作和方法。

作是类中对象所使用的一种功能或变换。类中的各对象可以共享作,每个作都有一个目标对象作为其隐含参数。

方法是类的作的实现步骤。

2.关联和链

关联是建立类之间关系的一种手段,而链则是建立对象之间关系的一种手段。

(1) 关联和链的含义。

链表示对象间的物理与概念联结,关联表示类之间的一种关系,链是关联的实例,关联是链的抽象。

(2) 角色。

角色说明类在关联中的作用,它位于关联的端点。

(3) 受限关联。

受限关联由两个类及一个限定词组成,限定词是一种特定的属性,用来有效的减少关联的重数,限定词在关联的终端对象集中说明。

限定提高了语义的性,增强了查询能力,在现实世界中,常常出现限定词。

(4) 关联的多重性。

关联的多重性是指类中有多少个对象与关联的类的一个对象相关。重数常描述为“一”或“多”。

图10-8表示了各种关联的重数。小实心圆表示“多个”,从零到多。小空心圆表示零或一。没有符号表示的是一对一关联。

3.类的层次结构

(1) 聚集关系。

聚集是一种“整体-部分”关系。在这种关系中,有整体类和部分类之分。聚集重要的性质是传递性,也具有逆对称性。

聚集可以有不同层次,可以把不同分类聚集起来得到一颗简单的聚集树,聚集树是一种简单表示,比画很多线来将部分类联系起来简单得多,对象模型应该容易地反映各级层次,图10-10表示一个关于微机的多极聚集。

(2)一般化关系。

一般化关系是在保留对象异的同时共享对象相似性的一种高度抽象方式。它是“一般---具体”的关系。一般化类称为你类,具体类又能称为子类,各子类继承了交类的性质,而各子类的一些共同性质和作又归纳到你类中。因此,一般化关系和继承是同时存在的。一般化关系的符号表示是在类关联的连线上加一个角形,如图10-11

4.对象模型

(1)模板。模板是类、关联、一般化结构的逻辑组成。

(2)对象模型。

对象模型是由一个或若干个模板组成。模板将模型分为若干个便于管理的子块,在整个对象模型和类及关联的构造块之间,模板提供了一种集成的中间单元,模板中的类名及关联名是的。

·动态模型

动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制

性质,它关心的是系统的控制,作的执行顺序,它表示从对象的和状态的角度出发,表现了对象的相互行为。

该模型描述的系统属性是触发、序列、状态、与状态的组织。使用状态图作为描述工具。它涉及到、状态、作等重要概念。

1.

是指定时刻发生的某件事。

2.状态

状态是对象属性值的抽象。对象的属性值按照影响对象显著行为的性质将其归并到一个状态中去。状态指明了对象

对输入的响应。

3.状态图

状态图是一个标准的计算机概念,他是有限自动机的图形表示,这里把状态图作为建立动态模型的图形工具。

状态图反映了状态与的关系。当接收一时,下一状态就取决于当前状态和所接收的该,由该引起的状态变化称为转换。

状态图是一种图,用结点表示状态,结点用圆圈表示;圆圈内有状态名,用箭头连线表示状态的转换,上面标记名,箭头方向表示转换的方向。

·功能模型

功能模型描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。功能模型由多张数据流图组成。数据流图用来表示从源对象到目标对象的数据值的流向,它不包含控制信息,控制信息在动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。图10-15给出了一个窗口系统的图标显示的数据流图。

数据流图中包含有处理、数据流、动作对象和数据存储对象。

1.处理

数据流图中的处理用来改变数据值。层处理是纯粹的函数,一张完整的数据流图是一个高层处理。

2.数据流

数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。在一个计算机中,用数据流来表示一中间数据值,数据流不能改变数据值。

动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。

4.数据存储对象

数据流图中的数据存储是被动对象,它用来存储数据。它与动作对象不一样,数据存储本身不产生任何作,它只响应存储和访问的要求。

六、面向对象的分析

面向对象分析的目的是对客观世界的系统进行建模。本节以上面介绍的模型概念为基础,结合“银行网络系统”的具体实例来构造客观世界问题的准确、严密的分析模型。

分析模型有三种用途:用来明确问题需求;为用户和开发人员提供明确需求;为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架。

(一) 面向对象的分析

系统分析的步是:陈述需求。分析者必须同用户一块工作来提炼需求,因为这样才表示了用户的真实意图,其中涉及对需求的分析及查找丢失的信息。下面以“银行网络系统”为例,用面向对象方法进行开发。

银行网络系统问题陈述: 设计支持银行网络的软件,银行网络包括人工出纳站和分行共享的自动出纳机。每个分理处用分理处计算机来保存各自的帐户,处理各自的事务;各自分理处的出纳站与分理处计算机通信,出纳站录入帐户和事务数据;自动出纳机与分行计算机通信,分行计算机与拨款分理处结帐,自动出纳机与用户接口接受卡,与分行计算机通信完成事务,发放,打印收据;系统需要记录保管和安全措施;系统必须正确处理同一帐户的并发访问;每个分处理为自己的计算机准备软件,银行网络费用根据顾客和卡的数目分摊给各分理处。

图10-18给出银行网络系统的示意图。

(二)建立对象模型

首先标识和关联,因为它们影响了整体结构和解决问题的方法,其次是增加属性,进一步描述类和关联的基本网络,使用继承合并和组织类,作增加到类中去作为构造动态模型和功能模型的副产品。

1.确定类

构造对象模型的步是标出来自问题域的相关的对象类,对象包括物理实体和概念。所有类在应用中都必须有意义,在问题陈述中,并非所有类都是明显给出的。有些是隐含在问题域或一般知识中的。

按图10-19所示的过程确定类

分处理 分处理计算机 帐户 事务 出纳站

事务数据 分行计算机 卡 用户

访问 安全措施 记录保管

根据下列标准,去掉不必要的类和不正确的类。

(1) 冗余类:若两个类表述了同一个信息 ,保留富有描述能力的类。如"用户"和"顾客"就是重复的描述,因为"顾客"富有描述性,因此保留它。

(2) 不相干的类:除掉与问题没有关系或根本无关的类。例如,摊派费用超出了银行网络的范围。

(3) 模糊类:类必须是确定的,有些暂定类边界定义模糊或范围太广,如"记录保管"就模糊类,它是"事务"中的一部分。

(4) 属性:某些名词描述的是其他对象的属性,则从暂定类中删除。如果某一性质的性很重要,就应该把他归属到类,而不把它作为属性。

(5) 作:如果问题陈述中的名词有动作含义,则描述的作就不是类。但是具有自身性质而且需要存在的作应该描述成类。如我们只构造电话模型,"拨号"就是动态模型的一部分而不是类,但在电话拨号系统中,"拨号"是一个重要的类,它日期、时间、受话地点等属性。

在银行网络系统中,模糊类是"系统"、"安全措施"、"记录保管"、"银行网络"等。属于属性的有:"帐户数据"、"收据"、""、"事务数据"。属于实现的如:"访问"、"软件"等。这些均应除去。

3.确定关联

两个或多个类之间的相互依赖就是关联。一种依赖表示一种关联,可用各种方式来实现关联,但在分析模型中应删除实现的考虑,以便设计时更为灵活。关联常用描述性动词或动词词组来表示,其中有物理位置的表示、传导的动作、通信、所有者关系、条件的满足等。从问题陈述中抽取所有可能的关联表述,把它们记下来,但不要过早去细化这些表述。

下面是银行网络系统中所有可能的关联,大多数是直接抽取问题中的动词词组而得到的。在陈述中,有些动词词组表述的关联是不明显的。,还有一些关联与客观世界或人的设有关,必须同用户一起核实这种关联,因为这种关联在问题陈述中找不到。

银行网络问题陈述中的关联:

·银行网络包括出纳站和自动出纳机;

·分行共享自动出纳机;

·分理处提供分理处计算机;

·分理处计算机保存帐户;

·分理处计算机处理帐户支付事务;

·分理处拥有出纳站;

·出纳站与分理处计算机通信;

·出纳员为帐户录入事务;

·自动出纳机发放;

·自动出纳机打印收据;

·系统处理并发访问;

·分理处提供软件;

·费用分摊给分理处。

隐含的动词词组:

·分行由分理处组成;

·分理处拥有帐户;

·分行拥有分行计算机;

·系统提供记录保管;

·顾客有卡。

基于问题域知识的关联:

·卡访问帐户。

使用下列标准去掉不必要和不正确的关联:

(1) 若某个类已被删除,那么与它有关的关联也必须删除或者用其它类来重新表述。在例中,我们删除了"银行网络",相关的关联也要删除。

(2) 不相干的关联或实现阶段的关联:删除所有问题域之外的关联或涉及实现结构中的关联。如"系统处理并发访问"就是一种实现的概念。

(4) 派生关联:省略那些可以用其他关联来定义的关联。因为这种关联是冗余的。银行网络系统的初步对象图如图10-20所示。其中含有关联。

4.确定属性

属性是个体对象的性质,属性通常用修饰性的名词词组来表示.形容词常常表示具体的可枚举的属性值,属性不可能在问题陈述中完全表述出来,必须借助于应用域的知识及对客观世界的知识才可以找到它们。只考虑与具体应用直接相关的属性,不要考虑那些超出问题范围的属性。首先找出重要属性,避免那些只用于实现的属性,要为各个属性取有意义的名字。按下列标准删除不必要的和不正确的属性:

(1) 对象:若实体的存在比它的值重要,那么这个实体不是属性而是对象。如在邮政目录中,"城市"是一个属性,然而在人口普查中,"城市"则被看作是对象。在具体应用中,具有自身性质的实体一定是对象。

(2) 定词:若属性值取决于某种具体上下文,则可考虑把该属性重新表述为一个限定词。

(3) 名称:名称常常作为限定词而不是对象的属性,当名称不依赖于上下文关系时,名称即为一个对象属性,尤其是它不惟一时。

(4) 标识符:在考虑对象模糊性时,引入对象标识符表示,在对象模型中不列出这些对象标识符,它是隐含在对象模型中,只列出存在于应用域的属性。

(5) 内部值:若属性描述了对外不透明的对象的内部状态,则应从对象模型中删除该属性。

(6) 细化:忽略那些不可能对大多数作有影响的属性。

5.使用继承来细化类

使用继承来共享公共机构,以次来组织类,可以用两种方式来进行。

(1) 自底向上通过把现有类的共同性质一般化为父类,寻找具有相似的属性,关系或作的类来发现继承。例如"远程事务"和"出纳事务"是类似的,可以一般化为"事务"。有些一般化结构常常是基于客观世界边界的现有分类,只要可能,尽量使用现有概念。对称性常有助于发现某些丢失的类。

应用域中各枚举情况是常见的具体化的来源。

6.完善对象模型

对象建模不可能一次就能保证模型是完全正确的,软件开发的整个过程就是一个不断完善的过程。模型的不同组成部分多半是在不同的阶段完成的,如果发现模型的缺陷,就必须返回到前期阶段去修改,有些细化工作是在动态模型和功能模型完成之后才开始进行的。

(1) 几种可能丢失对象的情况及解决办法:

·同一类中存在毫无关系的属性和作,则分解这个类,使各部分相互关联;

·一般化体系不清楚,则可能分离扮演两种角色的类

·存在无目标类的作,则找出并加上失去目标3.动作对象的类;

·存在名称及目的相同的冗余关联,则通过一般化创建丢失的父类,把关联组织在一起。

类中缺少属性,作和关联,则可删

版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 a13828211729@163.com 邮箱删除。