《面向对象系统的分析与设计》学习报告刘勇
- 格式:doc
- 大小:115.51 KB
- 文档页数:12
面向对象系统分析与设计第二版教学反思近年来,随着信息技术行业的不断发展,面向对象技术日益成为软件开发的主流。
作为软件开发领域中重要的一环,面向对象的系统分析与设计也成为了软件工程教学的重要内容之一。
而本文所述的教学反思中,主要围绕《面向对象系统分析与设计》第二版的教学内容与方法进行反思,旨在探讨如何提高系统分析与设计教学的效果。
教材内容《面向对象系统分析与设计》第二版作者Bernd Bruegge和Allen H. Dutoit,在书中主要介绍了面向对象系统分析与设计的基本概念、原则和方法等知识点。
该教材首先介绍了面向对象的分析和设计的基本概念与特征,然后着重介绍了用例建模、对象建模和动态建模等内容。
在对象建模方面,该教材涉及了面向对象的基本概念、类设计、对象设计和设计模式等方面。
在动态建模方面,书中主要讲解了动态行为建模和状态建模等内容。
综上所述,该教材内容全面,且涉及到面向对象分析与设计的各个方面。
该教材对于理解面向对象技术的含义有很大的帮助,能够帮助学生建立起系统全面的认识体系。
教学方法在《面向对象系统分析与设计》第二版的教学中,主要采用了一系列的教学方法,例如讲授、演示、案例分析等。
在教学前,老师需要通过讲授相关的理论知识,帮助学生建立起面向对象技术的认知框架。
然后,通过展示案例分析或演示,向学生介绍相关的实际案例,使学生能够更好地理解相关的理论知识。
同时,也可采用问题导向式的学习方式,帮助学生在实践中不断地掌握相关的技能和方法。
然而,在实际教学中,我们也发现了一些问题。
首先,在教学过程中,老师讲授的内容有时候会较为复杂,对于一些初学者来说可能比较难以理解。
其次,在演示和案例分析过程中,有时候反馈不及时,学生可能难以精准地抓住重点。
这些问题可能导致学生的学习效果不佳。
改进措施为了进一步提高面向对象系统分析与设计教学的效果,我们需要采取一些改进措施。
具体包括以下方面:教学内容的优化在教学内容上,我们可以加入具体的实际案例,使学生可以更深入地理解相关的理论知识,同时注重理论与实践的结合。
《面对对象系统的分析和设计》学习报告面对对象系统的分析和设计课程是本专业的一门重要的专业课。
通过本课程的学习,使我在已有的计算机软硬件基础学问、程序设计学问、数据库和网络通信学问的基础上系统驾驭了面对对象系统的分析和设计方法和技术,并初步具备了针对特定环境下的应用问题进行信息系统开发(包括系统分析、设计和实现)的实力。
现将学习状况作以下汇报。
一、面对对象概述在20世纪60年头以前,软件开发者构造的软件系统大多都是较小的,且相对简洁。
编程语言及编程环境也相对简洁,随着软件困难性的增长,为了更好地维护代码,软件开发也须要方法来进行约束。
传统的方法中,结构化方法和基于建模方法是典型的软件开发方法。
结构化方法是结构化分析、结构化设计和结构化编程的总称。
结构化方法的思想萌发于20世纪60年头,是在70年头由Tom De Macro和Ed Yourdon等人被系统地进出来。
其目的在于,供应一个有序的机制,通过抽象来理解待开发的系统,试图产生结构良好的软件系统。
但对于较困难的系统而言,简洁导致模块的低内聚和模块间的高耦合,从面使得系统缺乏灵敏性和可维护性。
基于建模方法在20世纪70年头末提出,即Peter Chen的实体——关系法和Ed Codd的关系数据库理论相结合提出的一种新的软件开发方法。
其强调对信息实体建模,而不是对象建模。
结构化方法和基于建模方法都没有较强地描述系统的动态行为的实力。
随着计算机技术的飞速发展,计算机管理系统应用的普及,企业信息化势在必行。
传统开发方法结构化开发的软件存在许多问题,其有稳定性、可修改性和可重用性都比较差,生产效率低等缺陷,这是因为传统的软件开发是面对过程的。
然而,用户需求的变更大部分是针对功能的,接受面对对象方法开发可以满足用户的需求,因为面对对象有以下优点:能够比较自然地反映现实事物,可重用性、可维护性和可扩展性比较强。
什么是面对对象呢?“面对对象”本身没有任何意义。
一、实训背景随着计算机科学技术的不断发展,面向对象编程已经成为现代软件开发的主流方法。
为了更好地掌握面向对象编程技术,提高自己的编程能力,我在本学期参加了面向对象实训课程。
通过这段时间的学习和实践,我对面向对象编程有了更深入的了解,以下是我对本次实训的感想总结。
二、实训内容本次实训主要围绕面向对象编程的核心概念展开,包括面向对象思想、封装、继承、多态等。
具体内容包括:1. 面向对象思想:通过学习面向对象思想,我明白了将现实世界中的事物抽象为对象,并通过对象之间的交互来实现程序功能的方法。
这种方法使得编程更加贴近现实,提高了代码的可读性和可维护性。
2. 封装:封装是将对象的属性和方法封装在一起,对外提供统一的接口。
通过封装,可以隐藏对象的内部实现细节,提高代码的安全性。
3. 继承:继承是面向对象编程的一个重要特性,它允许一个类继承另一个类的属性和方法。
通过继承,可以复用代码,提高代码的复用性。
4. 多态:多态是面向对象编程的另一个重要特性,它允许一个接口调用多个不同的实现。
通过多态,可以降低代码的耦合度,提高代码的灵活性。
三、实训过程在实训过程中,我按照以下步骤进行学习:1. 理论学习:通过阅读教材、观看教学视频等方式,系统地学习了面向对象编程的相关知识。
2. 编程实践:根据实训要求,完成了一系列编程任务,如编写简单的面向对象程序、实现类的继承和多态等。
3. 小组讨论:与同学们一起讨论编程过程中遇到的问题,共同解决难题。
4. 上机练习:在实验室进行上机练习,巩固所学知识。
四、实训收获通过本次实训,我收获颇丰:1. 提高了编程能力:通过实践,我熟练掌握了面向对象编程的相关技术,能够独立完成一些简单的面向对象程序。
2. 深入理解面向对象思想:通过学习面向对象思想,我明白了如何将现实世界中的事物抽象为对象,并通过对象之间的交互来实现程序功能。
3. 培养了团队合作精神:在小组讨论和上机练习过程中,我与同学们互相学习、互相帮助,共同解决问题。
学习《面向对象的系统分析》(第2版)——先睹为快开卷有益我主持信息化工作几十年,由于多年工作经验的积累驱使我对软件开发中的总体设计很感兴趣;同时由于发现软件开发应用中的许多问题需要一种好的总体设计理论和方法来给予解决。
在这种情况下,我迫切需要一本这样的书:能够帮我释疑又帮我解惑,给我以指导和“点拨”;能够与我进行“面对面”式的平等交流,给我一种科学的解决问题的思维方法;能够使我在现有水平下对若干新概念、新技术看得明白,又在原有基础上有较大提高;能够在阅读时充分调动大脑神经兴奋起来而不至于像一般技术书籍那样读起来感到索然无味。
后来我受聘于某软件公司任技术总监,继续主持应用软件开发工作。
这时原来出现的问题照旧产生,我的想法依然没有实现。
这时又出现了新的情况:软件开发技术人员多用C++、Java编程语言,这些都是面向对象的编程语言,在软件开发中出现许多类型的问题,都同时指向一个目标:面向对象的分析与设计,特别是用户需求分析及其说明书的编制。
如果有这样一本书讲解面向对象的分析与设计,帮助我解决以前曾经遇到过而未解决的问题,那该多好!大约是2003年前后,一次偶然的机会,也忘记了在哪个地方,我看到北京大学邵维忠教授和杨芙清院士所著的《面向对象的系统分析》,看了“前言”后,顿时产生一种直觉:这不就是我需要而一直没有得到的书吗?书买到后就迫不急待地阅读起来,没想到越读越想读,越想读越爱读,竟有些废寝忘食、爱不释手,并且在很短时间内读完了全书,并尝试着做了实例练习。
读完后掩卷而思,真有一种满足感、如释重负感、升华感。
我很快和邵教授取得联系,告诉他我的感受,并当面向他请教问题,也谈了我发现的个别文字差错。
邵教授对我有求必应,与我面谈并一一赐教。
这本书不仅内容丰富,立意很高,理论阐述严谨,示例详实可信,而且文字表达酣畅淋漓,语言阅读朗朗上口,足见著者文字功底之深厚。
我所想的正是书中所讲的,我所要的正是书中所给的。
作者写书的立场与读者平起平坐,似乎在一起商量着研究和判断是非,没有那种以权威自尊、居高临下之感,而是以一个技术学人的口气,用文学的语言娓娓道来,由不得你不接受,不为著者的高深造诣所折服。
实验(实训)报告软件学院(系)软件学院专业时间:2011-11-14图书管理员:再继承读者需求的基础上,还能完成图书信息管理操作,包括借书操作、还书操作,还书时还可能出现过期罚款。
1。
3用例:登录:为用户提供登录操作。
图书信息查询:为用户提供图书浏览查询操作。
网上订阅:用于读者预定图书操作。
读者信息管理:用于系统管理员对读者信息管理操作。
图书信息管理:用于系统管理员对图书信息管理操作。
借书管理:图书管理员借书操作.还书管理:图书管理员还书操作过期罚款:用于借书过期罚款。
催还书:系统自动提醒读者按期还书。
2。
设计模型:2。
1用例视图演示:2.2类视图演示:2.3顺序图&通信图演示:(1)登录人机交互设计:读者输入帐号密码,点击“确认”按钮if 帐号不存在 then提示“帐号不存在,请重新登录";else if 密码错误 then提示“密码错误,请重新登录”;end if;登录成功,进入图书馆里系统主界面;(2)图书信息查询人机交互设计:读者在图书查询界面输入查询图书的信息;点击“搜索";系统模糊搜索相关图书,并以列表显示输出;点击选中图书;显示该书详细信息;(3)网上订阅人机交互设计:读者登录成功后进行图书查询操作;选中图书后,打开图书详细信息界面;点击“预定”按钮;if 读者借阅数量已达上限 then 提示“您的借阅数量已达上线”;else if 图书不在库 then提示“该书不在库”;else 已本预定 then提示“该书以被预定”;end if;预定成功;(4)借书管理人机交互设计:读者刷卡;for 读者提交图书;管理员扫描条形码;if 读者借阅数量已达上限 then 提示“您的借阅数量已达上线";else if已本预定 then提示“该书以被预定”;end if;借阅成功;end for;(5)还书管理人机交互设计:for 读者提交图书;管理员扫描图书条形码;if 已过期 then计算罚款金额;提示“过期罚款”及过期时间和罚款金额;end if;还书成功;end for;实验思考题(实训心得):本次上机实验,了解到了如何做到人机交互.评语:。
面向对象系统分析和设计综合实验报告4综合实验报告:面向对象系统分析和设计一、引言面向对象系统分析和设计(Object-Oriented System Analysis and Design,简称OOSAD)是软件工程中的重要环节,它涉及到软件系统的需求分析、设计和建模等过程。
本实验旨在通过一个综合案例,加深对面向对象系统分析和设计的理解,并能够熟练运用相关的建模工具和方法。
二、实验背景本次实验的案例为一个在线购物系统,该系统允许用户浏览商品、添加到购物车、下定单并完成支付等功能。
通过对该系统进行分析和设计,可以掌握面向对象的建模技巧,包括用例图、类图、时序图等。
三、系统需求分析1. 功能需求根据用户的需求,我们确定了以下功能需求:- 用户注册和登录:用户可以通过注册账号并登录系统。
- 浏览商品:用户可以查看系统中的商品列表,包括商品的名称、价格、库存等信息。
- 添加到购物车:用户可以将感兴趣的商品添加到购物车中,以便后续下单。
- 下定单:用户可以选择购物车中的商品,并生成定单。
- 支付定单:用户可以选择支付方式,完成定单的支付。
2. 非功能需求除了功能需求外,我们还需要考虑以下非功能需求:- 性能要求:系统需要能够处理大量的用户请求,并保证响应时间在合理范围内。
- 安全要求:用户的个人信息和支付信息需要进行加密和保护,确保不被恶意攻击者获取。
- 可靠性要求:系统需要具备一定的容错能力,能够在浮现故障时自动恢复,并保证数据的完整性。
四、系统设计1. 用例图根据需求分析,我们可以绘制出以下用例图,用于描述系统的功能和用户之间的交互关系。
(用例图示例)2. 类图在进行系统设计时,我们需要确定系统中的各个类及其之间的关系。
以下是一个简化的类图示例:(类图示例)在类图中,我们可以看到系统中的各个类以及它们之间的关系,如商品类、用户类、购物车类、定单类等。
通过类图,我们可以清晰地看到系统的结构和模块之间的依赖关系。
实验名称:实验3 设计模型实验1 学期:2017-2018学年第二学期一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的创建型设计模式和行为型模式,包括简单工厂模式、工厂方法模式、抽象工厂模式和模板方法,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。
二、实验要求1. 选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图;2. 结合实例,正确无误地绘制简单工厂模式、工厂方法模式、抽象工厂模式和模板方法的模式结构图;3. 实现简单工厂模式、工厂方法模式、抽象工厂模式和模板方法,代码运行正确无误。
三、实验内容1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:Circle+ + + + +init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidTriangle+++++init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidRectangle+++++init ()setColor ()fill ()setSize ()display ()...: void: void: void: void: voidClient在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形,setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。
客户类(Client)在使用该图形库时发现存在如下问题:①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;②在图形库中增加并使用新的图形时需要修改客户类源代码;③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。
实验名称:实验4 设计模型实验2 学期:2017-2018学年第二学期一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的设计模式,包括单例模式、策略模式、装饰模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。
二、实验要求1. 选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图;2. 结合实例,正确无误地绘制单例模式、策略模式、装饰模式和适配器模式的结构图;3. 实现单例模式、策略模式、装饰模式和适配器模式,代码运行正确无误。
三、实验内容1. 现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第一次申请身份证时将号码分配给居民,如果之后因为遗失等原因补办时,还是使用原来的身份证号码,不会产生新号码,现使用单例模式模拟该场景。
1)类图2)实现代码:public class IdClient {public static void main(String[] args) {IdentityCardNo.getInstance();IdentityCardNo.getInstance();}}package Refactoring1;public class IdentityCardNo {private static IdentityCardNo instance;private String no;private IdentityCardNo() {}public static IdentityCardNo getInstance() {if (instance == null) {System.out.println("第一次办理身份证,分配新号码");instance = new IdentityCardNo();instance.setNo("No6000654321");System.out.println("身份证号码为:" + instance.getNo());} else {System.out.println("重复办理身份证,获取旧号码!");}return instance;}public String getNo() {return no;}public void setNo(String no) {this.no = no;}}2. 每一麻将局都有两个骰子,因此骰子就应当是双例类。
面向对象程序设计A(Java)实验报告实验名称:类的继承与多态实验实验类型:指导教师:***专业班级:信安1203******学号:********实验地点:东六E-301实验成绩:日期:2014年3月29日实验三类的继承与多态实验一、实验目的1、练习类的继承与多态设计过程;2、练习面向对象的图形用户界面设计、事件设计方法。
二、实验内容1、5-8(P136).抽象类名改为Figure,三角形改为“等腰直角三角形”,各具体类名称分别为RightTriangle、Square和Cycle;2、编写测试类TestSquare,检验第一题的结果;3、在第1题的基础上,在抽象类中增加一个drawSquare()方法,具体类中实现这个方法;4、设计一个类似Windows的Application应用程序,在窗体上调用第2题的drawSquare()方法显示不同类型Square。
三、实验设计1.抽象一个Figure类:定义一个double类型属性edge和一个double返回类型类型方法getArea()。
再分别定义三个实体类继承抽象类Figure的属性并分别实现继承抽象方法。
2. 定义一个测试类分别求对应面积3. 在抽象类中定义一个drawSquare()方法,根据具体类的不同实现这个方法4. 设计一个类似Windows的Application应用程序,在窗体上调用drawSquare()方法显示不同类型Square。
四、实验过程1. 按照设计的步骤完成。
遇到的问题:不能继承抽象类的有参构造方法解决:在实体类中定义有参构造方法2. 定义一个测试类,在测试类分别定义类的对象,再用类对象调用其getArea方法求其面积3. . 在抽象类中定义一个drawSquare()方法,具体类通过Graphics类型参数的方法实现相应功能(drawPolygon(),fillPolygon()实现多边形的绘制,drawOval(),fillOval(实现圆的绘制))4. 添加一个的Application应用程序,在面板上添加鼠标点击响应方法,方法中定义不同square实体类对象调用响应drawSquare()方法在面板上绘画响应square五、实验结果1.2:3.4:六、讨论与分析1.通过这次实验懂得了类的继承和多态的基本设计及其实现过程。
《面向对象系统的分析与设计》学习报告题目:院系:计算机学院专业:软件工程年级: 2012级姓名:刘勇学号: 2012127072指导教师:刘晓鸿提交日期: 2013年7月1.面向对象技术面向对象的开发方法OOSD是一种新的软件工程方法,基本思想是尽可能的按照人类认识世界的方法和思维方式来分析和解决问题,这种方法能够提供更加清晰的需求分析和设计,是指导和开发活动的系统方法。
但是至今在面向对象领域,大多数工作都集中在编程语言上。
面向对象的开发方法,贯穿了整个软件的生命期,这里主要讨论一下面向对象的基本概念、方法和设计等内容。
1.1面向对象的基本概念这里主要讨论几个重要的面向对象的基本概念,了解基本概念对面向对象的思想,学习和掌握你想的开发方法十分重要。
1.1.1对象和分类面向对象的方法是以对象作为最基本的元素,它是分析问题、解决问题的核心,对象与类是讨论面向对象的最基本概念。
1)对象对象是客观事物活动概念的抽象表述,对象不仅能表示具体的实体,也能表示抽象的规则、计划或事件。
通常有以下的对象类型:(1)有型的实体:在现实世界中,每个实体都是对象,入飞机、计算机、机器、房子等都属于有型的实体,这是容易识别的对象。
(2)作用:指人或组织,入学生、老师、公司、政府部门等所起的作用。
(3)事件:指在摸个特定时间所发生的事情。
入学习、演出等。
(4)性能说明:如对产品的行为能够说明,比如计算机硬盘、内存、性能说明等。
即对象不仅能表示结构化的数据,而且也能表示抽象的事件、规则以及复杂的工程实例,这是结构化方法所不能做到的,因此,对象具有很强的表达能力和描述功能。
2)类类又称对象类是指一组具有相同属性和运算的对象的抽象,u、一组具有相同数据结构和相同操作的对象的几盒,类是对象的模板。
在一个类中,每个对象都是累的实例,它们都可以使用类中的提供的函数。
例如轿车是一个类,东风牌轿车、奇瑞轿车都是它的一个对象。
类具有属性,用数据结构来描述累的属性,类具有操作,它是对象行为的抽象,用操作名和实现操作方法,即操作时间实现的过程和描述。
3)对象和类的描述类和对象的描述如下图1.1和1.2所示:在图1.1中人事类名,包括两个属性:姓名和年龄,具有两个运算:改变工作和改变地址。
图1.2则描述了人这个类的两个对象实例。
图1.1类的描述图1.2对象的描述由于对象是类的实例,在进行系统分析和设计时,通常把注意力集中在类上,而不是具体对象上。
4)继承继承是使用现存的定义作为基础,建立新定义的技术,是父类和子类之间共享数据机构和方法的机制,这是类之间的一种关系。
在定义和实现一个类的时候,可以再一个已经纯在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新内容。
图1.3是集成的一种图式方法。
继承现存类定义父类(一般类)图1.3继承性5)多态性多态性是指相同的操作或函数、过程作用于不同的对象上并获得不同的结果。
相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,而产生不同的结果。
一个行为的多态性从外界看来具有相同的行为属性,因此外界看到的是一种行为,而具体执行那种形态则有对象自己根据所接到的消息的相关参数决定。
6)消息消息是指对象之间在交互中所传送的通信消息。
一个消息包括以下信息:消息名、接收消息对象的标识、服务标识、消息和方法。
7)方法类中操作的实现过程成为方法,一个方法包括方法名、参数及法体。
2.1面向对象的设计面向对象的方法不强调分析与设计之间严格的阶段划分。
按照描述OO方法的“喷泉模型”,软件生命周期的各阶段交叠回溯,整个生命周期的概念一致,表示方法也一致,因此从分析到设计无需表示方式的转换。
当然,分析和设计也有不同的分工和侧重。
与OOA的模型比较,OOD模型的抽象层次较低,因为它包含了与具体实现有关的细节,但是建模的原则和方法相同。
2.1.1面向对象设计的准则由于OOA与OOD在概念,属于、描述方式的一致性,建立一个针对具体是辖区内的OOD模型,可以看做是按照设计的准则,对分析模型进行细化。
虽然这些准则并非面向对象的系统独用,但对面向设计起着重要的支撑作用。
面向对象的准则有:1)抽象抽象是指强调实体的本质、内在的属性,二忽略了一些无关紧要的属性。
在系统开发中,分析阶段使用抽象仅仅涉及应用域的概念,在理解问题域以前不考虑设计与实现。
而在面向对象的设计阶段,抽象概念不仅用于子系统,在对象设计中,由于对象具有极强的抽象表达能力,而类实现了对象的数据和行为的抽象。
2)信息隐蔽信息隐蔽在面向对象的方法中也称“封装性”,封装性是保证软件不见具有优良的模块性的基础。
3)弱耦合按照抽象与封装性,弱耦合是指子系统之间的联系应该尽量的少。
子系统应具有良好的接口,子系统接口与系统的其他部分联系。
4)强内聚是指子系统内不时有一些关系的类构成,除了少数的通信类外,子系统的类应该只与该子系统中的其他类协作,构成强内聚性的子系统。
5)可重用弱耦合、强内聚的子系统和类,才能有效的提高所设计的部件的可重用性。
2.2.2面向对象涉及的基本任务面向对象的设计OOD是面向对象方法阿紫哦软件设计阶段应用与扩展的结果,试讲OOA所创建的分析模型转换为设计模型,解决如何做的问题。
面向对象的设计主要目标是提高生产效率,提高质量和提高可维护性。
OOA主要考虑系统做什么,而不是关心系统如何实现的问题。
在OOD中为了实现系统,需要以OOA模型为基础,重新定义或补充一些新的类,活在原有的类中补充或修改一些属性及操作。
因此,OOD的目标是产生一个满足用户需求,可实现的OOD模型。
1)系统设计系统设计的任务包括:将分析模型中紧密相关的类划分为若干子系统,子系统应该具有良好的接口,子系统中的类相互协作。
标识问题本身的并发性,将各子系统分配给处理器,建立子系统之间的通信。
进行系统设计关键是子系统的划分,子系统由它们的责任及所提供的服务表示,在OOD中这种服务是完成特定共轭能的一组操作。
讲划分的子系统组织成完整的系统时蛮有水平的层次组织和垂直组织两种方式,层次结构分为封闭式和开放式。
所谓封闭式是指每个子系统仅使用其直接下层的服务,这就降低了各层次之间的互相依赖,提高了易理解性和可修改性。
开放式则润徐隔层子系统使用其下属任意子系统提供服务。
图1.4典型应用系统的组织结构2)对象设计在面向对象的系统中,模块、数据结构及接口等都是集中体现在对象和对象层次结构中,系统开发的全过程都与层次结构直接相关,是面向对象系统的基础和核心。
面向对象的设计通过对象层次结构的组织,确定解空间中应存在的对象和对象层次的结构,并确定外部接口和主要的数据结构。
3)设计优化对设计进行优化,主要涉及提高效率的技术和建立良好的继承结构的方法。
提高效率的技术包括增加冗余来提高访问效率,调整查拳层次,优化算法等技术。
建立良好的继承关系式优化设计的重要内容,通过对继承关系的调整实现。
3.1典型的面向对象的方法随着面向对象开发方法的发展,逐渐形成了几个主要的流派:Coad/Yourdon方法、BOOCH方法、OMT方法和OOSE法。
它们各有特色,主要描述方式、图例,考虑的重点有所不同。
但在描述方式上有意图形方式为主的特性。
下面主要讲一下Coad/Yourdon 方法和OOSE方法。
3.1.1Coad/Yourdon 方法Coad/Yourdon 方法由于1990年推出,该方法主要是面向对象的分析和面向对象的设计构成,特别强调OOA和OOD采用完全要养的概念和表示法,是分析和设计之间不需要表示发的转换。
该方法的特点是表示简练、易学,对于对象、结构、服务的认定较系统、完整、可操作性。
1)OOA在Coad/Yourdon 方法中,OOA的任务是主要建立问题域的分析模型。
分析过程和构造OOA概念模型的顺训有5个层次组成,这五个层次是:类与对象、属性层、服务层、结构层和主题层。
(1)类和对象的认定:面向对象的分析的核心是确定系统的累及对象,它们是构成软件系统的基本元素。
(2)结构的认定:指的是描述累及对象之间的结构关系,用来反映问题空间中复杂的实物和复杂关系。
(3)认定主题:主题是一种帮助理解复杂模型的抽象机制,它是将关系较密切的类及对象住址在一起,主题起到一种控制作用。
(4)定义属性:属性是类的实质,定义类和对象的属性和实例连接。
(5)定义服务:定义类和对象的服务和消息连接。
下图给出了Coda/Yourdon 方法一些应用实例:图 1.5服务层的例子图1.6泛华与特化结构的例子2)OOD面向对象的设计结构通过对象的认定和层次结构的组织,确定解空间中应存在的对象和对象层次结构,病确定外部接口和主要的数据结构。
面向对象设计的主要目标是提高生产效率,提高质量及可维护性。
主题层类与对象层结构层属性层服务层图1.7Coda方法的OOD模型OOD设计模型是在面向对象的分析模型的5各层次上由四个部件构成,如图1.7所示。
3.1.2 OOSE方法面向对象软件工程是将面向对象的思想应用于软件的工程中。
OOSE方法采用五类模型建立目标系统:需求模型RM、分析模型AM、设计模型DM、实现模型IM和测试模型TM。
OOSE的开发活动主要分为三类,分析、构造和测试。
其中分析过程分为需求分析和健壮分析两个子过程,分析活动分别产生需求模型和分析模型。
构造活动包括设计和实现两个子过程,分别忏悔是呢过设计模型和实现模型。
测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。
下图是00SE的开发活动:需求模型RM 设计模型DM 测试模型TM分析模型AM 实现模型IM以上从基本概念、方法和设计,讨论了面向对象技术这门课程,还有很多不足的地方,还请老师多多指教。