十二章节面向对象系统设计

合集下载

《C语言程序设计》教案

《C语言程序设计》教案

《C语言程序设计》教案一、教案简介1. 课程名称:C语言程序设计2. 适用对象:计算机科学与技术专业本科生、研究生,以及对C语言编程感兴趣的初学者3. 课时安排:共计32课时,每课时45分钟4. 教学目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等概念,培养学生具备基本的编程能力和编程思维,为后续学习更高级的编程语言和计算机科学知识打下基础。

二、教学内容1. 第一章:C语言概述1.1 C语言的历史和发展1.2 C语言的特点1.3 集成开发环境(IDE)的使用1.4 简单的C语言程序实例2. 第二章:数据类型和运算符2.1 数据类型2.1.1 基本数据类型2.1.2 构造数据类型2.1.3 指针类型2.2 变量和常量2.3 运算符2.3.1 算术运算符2.3.2 关系运算符2.3.3 逻辑运算符2.3.4 赋值运算符2.3.5 其他运算符3. 第三章:控制结构3.1 顺序结构3.2 选择结构3.2.1 if语句3.2.2 switch语句3.3 循环结构3.3.1 while循环3.3.2 do-while循环3.3.3 for循环4. 第四章:函数4.1 函数的定义和声明4.2 函数的参数和返回值4.3 局部变量和全局变量4.4 函数的递归调用4.5 常用的库函数5. 第五章:数组和指针5.1 一维数组5.2 二维数组5.3 字符数组和字符串5.4 指针的基本概念5.5 指针与数组5.6 指针与函数三、教学方法1. 讲授法:讲解基本概念、语法规则、编程技巧等2. 案例教学法:通过编写实际程序,使学生理解和掌握相关知识3. 实验教学法:安排上机实验,让学生动手实践,培养编程能力4. 小组讨论法:组织学生进行小组讨论,分享学习心得,提高沟通与合作能力四、教学评价1. 平时成绩:包括课堂表现、作业完成情况、实验报告等,占总评的40%2. 期末考试:包括选择题、填空题、编程题等,占总评的60%五、教学资源1. 教材:《C程序设计语言》(K&R)2. 辅助教材:《C语言程序设计教程》3. 在线资源:编程网站、开平台、教学视频等4. 实验环境:配置有C语言编译器的计算机实验室六、第六章:结构体、共用体和枚举类型6.1 结构体的定义和使用6.2 结构体数组6.3 指向结构体的指针6.4 共用体和枚举类型的定义和使用七、第七章:动态内存分配7.1 动态内存分配的概念7.2 动态内存分配函数7.3 内存泄漏和溢出7.4 链表的基本操作八、第八章:文件操作8.1 文件的概念和文件操作流程8.2 文件的打开与关闭8.3 文件的读写操作8.4 文件的权限设置8.5 文件指针的概念和文件定位九、第九章:预处理指令9.1 宏定义9.2 文件包含9.3 条件编译9.4 其他预处理指令十、第十章:C语言编程实例10.1 学生信息管理系统10.2 计算器程序10.3 排序算法实现10.4 简易的图形界面程序10.5 网络通信程序十一、教学内容扩展11.1 C语言高级特性11.1.1 引用11.1.2 默认参数11.1.3 函数重载11.1.4 构造函数和析构函数11.2 面向对象程序设计11.2.1 类和对象11.2.2 继承和多态11.2.3 封装和抽象11.3 标准模板库(STL)11.3.1 容器11.3.2 迭代器11.3.3 算法11.3.4 函数对象和Lambda表达式十二、教学计划12.1 第一阶段:C语言基础(1-4章)12.2 第二阶段:控制结构与函数(5-7章)12.3 第三阶段:数组、指针和字符串(8-10章)12.4 第四阶段:高级C语言编程(11章)12.5 第五阶段:项目实践(12章)十三、教学活动安排13.1 课堂讲解(每周2课时)13.2 实验课(每周1课时)13.3 小组讨论和项目实践(每周1课时)13.4 课后作业和自学(学生自主安排时间)十四、教学反馈与改进14.1 学生评价14.2 同行评价14.3 教学反思与调整十五、教学总结15.1 课程收获与不足15.2 学生学习成果展示15.3 未来教学计划和目标十一、第十一章:C语言高级特性(续)11.4 动态内存分配的高级应用11.4.1 内存分配策略11.4.2 内存释放与回收11.4.3 内存泄漏检测与优化11.5 操作符重载与函数重载11.5.1 操作符重载的概念与规则11.5.2 函数重载的实现与规则十二、第十二章:面向对象程序设计(C++)12.1 C++概述与兼容性12.1.1 C++的发展与特点12.1.2 C++与C语言的兼容性12.2 类与对象12.2.1 类的定义与结构12.2.2 构造函数与析构函数12.2.3 封装与访问控制12.3 继承与多态12.3.1 继承的实现与类型12.3.2 多态的概念与实现十三、第十三章:标准模板库(STL)13.1 容器13.1.1 序列容器:vector、deque、stack、queue 13.1.2 关联容器:map、multimap、set、multiset 13.1.3 适配器容器:pr、array、bitset13.2 迭代器13.2.1 迭代器的概念与分类13.2.2 迭代器的使用与注意事项十四、第十四章:C语言编程实战14.1 项目一:简单的文本编辑器14.1.1 项目需求与设计14.1.2 项目实现与测试14.2 项目二:图书管理系统14.2.1 项目需求与设计14.2.2 项目实现与测试14.3 项目三:网络通信工具14.3.1 项目需求与设计14.3.2 项目实现与测试十五、第十五章:课程总结与展望15.1 C语言程序设计的重要性15.1.1 C语言在计算机历史中的地位15.1.2 C语言在现代编程中的应用15.2 学习收获与建议15.2.1 学生学习收获的评估15.2.2 对未来学习的建议和指导15.3 课程展望与未来计划15.3.1 课程内容的拓展与更新15.3.2 教学方法与技术的创新重点和难点解析一、教案简介重点:教案的目标和适用对象难点:无二、教学内容重点:C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等概念难点:指针的复杂应用,函数的递归调用,结构体、共用体和枚举类型的使用三、教学方法重点:讲授法、案例教学法、实验教学法、小组讨论法难点:实验教学法和小组讨论法的组织与实施四、教学评价重点:平时成绩和期末考试的评分标准难点:无五、教学资源重点:教材、辅助教材、在线资源、实验环境难点:在线资源的整合与利用六至十、章节内容重点:每个章节的基本概念和编程技巧难点:第九章的预处理指令的理解和使用,第十章的编程实例的实现十一至十五、教学内容扩展与总结重点:C语言高级特性、面向对象程序设计、标准模板库、编程实战、课程总结与展望难点:面向对象程序设计中类与对象的高级应用,标准模板库的容器和迭代器的使用,以及编程实战中的项目设计和测试这份教案旨在帮助学生全面掌握C语言的基本概念和编程技能,为后续学习更高级的编程语言和计算机科学知识打下基础。

面向对象系统设计与开发

面向对象系统设计与开发

面向对象系统设计与开发随着计算机技术的发展,软件系统的规模和复杂度越来越高,要想开发高质量的软件系统,面向对象的系统设计和开发已成为必不可少的方法。

本文将从面向对象的基本概念、面向对象系统设计的模式、面向对象语言的特点和面向对象的软件开发流程等方面来进行阐述。

一、面向对象的基本概念面向对象是一种基于对象的编程思想,它将现实世界中的事物抽象为对象,并通过对象之间的关系来描述真实世界中的事物及其行为。

面向对象的基本概念包括:类、对象、继承、多态、封装等。

1.类类是面向对象系统设计中的最基本的概念,它是对对象的抽象描述。

类是一组属性和方法的集合,它定义了对象的属性和方法,是描述对象属性和行为的蓝图。

2.对象对象是类的实例化结果,它是现实世界中一个实体的具体表现。

对象具有自己的状态和行为,它可以对外提供服务或者被其他对象协作完成特定的任务。

3.继承继承是面向对象编程中实现代码复用的一种机制。

子类从父类继承属性和方法,对父类进行扩展或进行修改,并且可以添加新的属性和方法。

4.多态多态是指不同对象可以对同一消息做出不同的响应。

它通过方法的重载和方法的覆盖来实现。

多态增强了程序的灵活性和可扩展性,使得代码更易于维护和修改。

5.封装封装是指将数据和方法包含在一个类中,以达到保护数据、隔离变化和隐藏细节的目的。

封装增强了程序的安全性和可靠性,使得其他类无法直接访问该类的属性和方法。

二、面向对象系统设计的模式面向对象系统设计中有一些常用的模式,它们是帮助开发人员更加高效和规范的进行设计的。

1.工厂模式工厂模式是一种创建型模式,它提供了一种统一的接口来创建对象,可以隐藏对象创建的复杂性,同时降低对象之间的耦合度。

2.单例模式单例模式是一种保证类只有一个实例的设计模式,它可以控制实例数量,降低系统的复杂度和资源的消耗。

单例模式广泛应用于数据库连接、线程池等方面。

3.装饰器模式装饰器模式是一种结构型模式,它提供了一种在不修改原对象的情况下,动态地给一个对象添加额外的职责的方法。

面向对象设计课件

面向对象设计课件
做到对扩展开放,对修改封闭呢? 实现开放封闭的核心思想就是对抽象编程,而不对
具体编程,因为抽象相对稳定。让类依赖于固定的 抽象,所以对修改就是封闭的;而通过面向对象的 继承和多态机制,可以实现对抽象体的继承,通过 覆写其方法来改变固有行为,实现新的扩展方法, 所以对于扩展就是开放的。
✓ 另一种定义方式如下: • 就一个类而言,应该仅有一个引起它变化的原因。
✓ 其英文定义为: • There should never be more than one reason for a class to change.
面向对象设计
单一职责原则
单一职责原则分析
✓ 一个类(或者大到模块,小到方法)承担的职责越多,它被复用的 可能性越小,而且如果一个类承担的职责过多,就相当于将这些职 责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运 作。
软件的可维护性和可复用性
✓ 软件的复用(Reuse)或重用拥有众多优点,如可以提高软件 的开发效率,提高软件质量,节约开发成本,恰当的复用还 可以改善系统的可维护性。
✓ 面向对象设计复用的目标在于实现支持可维护性的复用。 ✓ 在面向对象的设计里面,可维护性复用都是以面向对象设计
原则为基础的,这些设计原则首先都是复用的原则,遵循这 些设计原则可以有效地提高系统的复用性,同时提高系统的 可维护性。
✓ 开放封闭原则主要体现在两个方面: 对扩展开放,意味着有新的需求或变化时,可以对现有 代码进行扩展,以适应新的情况。 对修改封闭,意味着类一旦设计完成,就可以独立其工 作,而不要对类尽任何修改。
面向对象设计
开闭原则
为什么要用到开放封闭原则呢? 软件需求总是变化的,世界上没有一个软件
的是不变的,因此对软件设计人员来说,必 须在不需要对原有系统进行修改的情况下, 实现灵活的系统扩展。

面向对象课程设计

面向对象课程设计
C#支持类和对象的定义,支持封装、继承和多态等面向对象特性。C#拥有丰富的.NET框架类库,可以方便地实现各种应用程序的开发。
C#中的LINQ(Language Integrated Query)功能可以帮助开发人员更方便地处理数据。
LINQ允许开发人员在C#中使用类似SQL的查询语句来操作数据,可以方便地对数据进行筛选、排序和聚合等操作。
详细描述
Java中的异常处理通过try-catch语句块实现,可以捕获和处理程序中出现的异常情况,保证程序的稳定性和可靠性。
详细描述
Java通过类和对象的概念来组织代码,支持封装、继承和多态等面向对象特性。Java提供了丰富的API和框架,方便开发人员快速构建各种应用程序。
总结词
Java中的多线程编程可以实现并发执行和资源共享。
对象通过消息传递来相互通信,从而实现模块化编程,提高代码的可重用性和可维护性。
什么是面向对象编程
将数据和操作数据的函数捆绑在一起,形成对象。这有助于隐藏对象的内部状态,并控制对它的访问。
封装
一个类可以从另一个类继承属性和方法。这有助于代码重用,并形成类之间的层次结构。
继承
允许使用基类的引用或指针来调用派生类的方法。这增加了代码的灵活性和可扩展性。
工厂模式
总结词:定义了对象之间的依赖关系,使得当一个对象改变状态时,其相关依赖对象也会得到通知并自动更新。 详细描述:观察者模式是一种行为型设计模式,它定义了对象之间的依赖关系,使得当一个对象改变状态时,其相关依赖对象也会得到通知并自动更新。这种模式通常用于实现事件处理、数据更新等场景。 适用场景:当一个对象的改变需要通知其他对象时,例如,事件处理、数据更新等。 实现方式:定义一个抽象观察者接口和具体观察者类,以及一个抽象被观察者接口和具体被观察者类。在被观察者类中注册观察者对象,并在状态发生变化时通知所有观察者对象。Fra bibliotek单例模式

面向对象设计系统分析与设计概述

面向对象设计系统分析与设计概述

面向对象设计系统分析与设计概述xx年xx月xx日CATALOGUE目录•面向对象设计基本概念与原则•面向对象系统分析过程•面向对象系统设计过程•面向对象高级技术•面向对象程序设计语言与工具•面向对象软件工程与软件开发过程•系统分析与设计实践案例01面向对象设计基本概念与原则面向对象基本概念现实世界中的实体,如学生、教师、汽车等都可以作为对象。

每个对象都有其属性(状态)和行为(状态的变化)。

对象具有相同属性和行为的对象的抽象,是对象的模板或蓝图。

例如,学生类包含所有学生的共同属性和行为。

类子类继承其父类的属性和行为,并可以添加自己特有的属性和行为。

继承同一消息发送到不同对象,根据对象所属的类而产生不同的结果。

多态单一职责原则(Single Responsibility Principle):一个类只应该有一个引起变化的原因。

每个类应该只有一个职责,只有一个改变它的原因。

依赖倒置原则(Dependency Inversion Principle):高层模块不应该依赖于低层模块,它们都应该依赖于抽象接口隔离原则(Interface Segregation Principle):使用多个特定的接口,而不使用单一的总接口,客户端不应该被强制依赖于它们不使用的接口。

里氏替换原则(Liskov Substitution Principle):子类必须能够替换其父类面向对象设计原则关注对象而非过程面向对象设计关注如何定义和组织对象以及它们之间的交互,而不是描述如何从数据出发来实现特定功能。

通过将代码组织成可重用的组件(即对象),可以轻松地修改或扩展现有系统,而不会影响到其他部分的代码。

面向对象设计鼓励将代码分解为小模块(对象),每个模块都具有明确定义的职责和接口。

这使得代码更易于理解和测试。

面向对象设计使用类和接口来定义模块,这些模块具有明确定义的接口和行为。

这使得代码更易于模块化和组织。

面向对象设计优点提高代码可重用性和可维护性提高代码可理解性和可测试性更好的模块化02面向对象系统分析过程1识别对象23通过需求分析,确定系统中的对象以及它们之间的关系。

面向对象系统的分析与设计

面向对象系统的分析与设计

《面向对象系统的分析与设计》学习报告面向对象系统的分析与设计课程是本专业的一门重要的专业课。

通过本课程的学习,使我在已有的计算机软硬件基础知识、程序设计知识、数据库和网络通信知识的基础上系统掌握了面向对象系统的分析与设计方法和技术,并初步具备了针对特定环境下的应用问题进行信息系统开发(包括系统分析、设计与实现)的能力。

现将学习情况作以下汇报。

一、面向对象概述在 20 世纪 60 年代以前,软件开发者构造的软件系统大多都是较小的,且相对简单。

编程语言及编程环境也相对简单,随着软件复杂性的增长,为了更好地维护代码,软件开发也需要方法来进行约束。

传统的方法中,结构化方法和基于建模方法是典型的软件开发方法。

结构化方法是结构化分析、结构化设计和结构化编程的总称。

结构化方法的思想萌发于 20 世纪 60 年代,是在 70 年代由 TomDe Macro 和Ed Yourdon 等人被系统地进出来。

其目的在于,提供一个有序的机制,通过抽象来理解待开发的系统,试图产生结构良好的软件系统。

但对于较复杂的系统而言,容易导致模块的低内聚和模块间的高耦合,从面使得系统缺乏灵活性和可维护性。

基于建模方法在20 世纪70 年代末提出,即 Peter Chen 的实体——关系法与Ed Codd 的关系数据库理论相结合提出的一种新的软件开发方法。

其强调对信息实体建模,而不是对象建模。

结构化方法和基于建模方法都没有较强地描述系统的动态行为的能力。

随着计算机技术的飞速发展,计算机管理系统应用的普及,企业信息化势在必行。

传统开发方法结构化开发的软件存在很多问题,其有稳定性、可修改性和可重用性都比较差,生产效率低等缺陷,这是因为传统的软件开发是面向过程的。

然而,用户需求的变化大部分是针对功能的,采用面向对象方法开发可以满足用户的需求,因为面向对象有以下优点:能够比较自然地反映现实事物,可重用性、可维护性和可扩展性比较强。

什么是面向对象呢?“面向对象”本身没有任何意义。

面向对象的软件系统设计与开发

面向对象的软件系统设计与开发

面向对象的软件系统设计与开发随着计算机技术的发展,软件已经成为人们日常工作生活中不可或缺的一部分。

而软件系统作为软件的核心,其设计与开发则直接关系到软件系统的质量和稳定性。

在软件系统中,面向对象的设计与开发已经成为主流。

本文将针对面向对象的软件系统设计与开发进行探讨和分析。

一、面向对象的软件系统设计面向对象的软件系统设计强调“对象”而非“过程”,主要思想是将复杂的系统分解为若干个对象,每个对象代表一个实体,对象之间通过消息进行通信和交互,从而形成一个互相依赖的系统。

面向对象的软件系统设计具有以下优点:1.可重用性:面向对象的软件系统设计可以将对象视为可重用组件,使得在设计系统时可以重复利用已有的函数库和对象库,从而提高了开发效率。

2.可拓展性:面向对象的软件系统设计强调继承和多态,通过继承可以扩展已有的对象库,通过多态可以在运行时动态绑定对象,从而使得系统更加可拓展。

3.可维护性:面向对象的软件系统设计可以将系统分解为若干个对象,每个对象仅关注自身的实现细节,从而易于维护和修改。

4.可靠性:面向对象的软件系统设计强调封装性,隐藏对象的内部实现细节,避免外部对对象的直接访问,从而更加安全可靠。

在面向对象的软件系统设计中,最核心的一步是类的设计。

在设计类时,需要考虑以下几个方面:1.类的属性:类的属性是描述对象的特征,需要根据实际需求选择属性类型和属性名称。

2.类的方法:类的方法是描述对象操作的行为,需要根据实际需求确定方法的名称和方法签名,同时考虑方法之间的依赖关系。

3.类的关系:类的关系是描述对象之间的依赖关系,主要包括继承、聚合、组合等关系。

4.类的封装:类的封装是隐藏对象的内部实现细节,避免外部对对象的直接访问,提高系统的安全性和可靠性。

二、面向对象的软件系统开发在面向对象的软件系统开发过程中,需要遵循以下几个基本原则:1.开发应以需求为导向,根据需求设计类和对象,实现系统的功能。

2.开发应注重模块化,将系统分为若干个模块,每个模块都具有独立的功能,并且模块之间有明确的接口和依赖关系。

面向对象的系统功能设计

面向对象的系统功能设计

之前在写我的程序人生的过程中,很多网友都希望我介绍一些编程开发方面的经验。

我之前也说过,虽然我也算计算机专业科班出身,不过很多东西并不是在学校里从老师那里学来的,而是在工作中经过失败后总结出来的。

至于总结出来的是不是最好的,最适合的,那就不知道了。

我只知道在我目前的系统开发过程中,还是有一定作用的。

本文我就想从系统功能设计方面简要介绍一下自己的一些思路和模式,也希望能够对大家起到抛砖引玉的作用。

如果您有更好的方法,请务必留言赐教。

1。

系统设计目标封装性:高内聚,低耦合对模块进行封装,便于重用,模块变化产生的影响范围最低。

可扩展性:考虑未来扩展的可能函数,接口的设计,要考虑未来可能产生的扩展一致性:包括模块设计的一致性,以及不同系统中同一模块的一致性模块设计的一致性,要求各个模块采用一致的设计思路,简化设计的复制度,提高可读性和可维护性。

2。

系统设计要点追求完美,但不镀金要有追求完美的心态,但却不能镀金,过犹不及。

注意80:20原则。

争取用20%的成本实现80%的功能,而避免用大量的时间解决非重点问题或低概率问题。

换位思考,从用户角度考虑问题特别对于界面的设计,包括图形和内容的显示。

要以一个用户的角度来考虑。

操作简单,界面美观,稳定高效等。

各尽其责理解类和模块的意义,明确每个类和模块的责任和角色。

不做不属于它的工作。

一旦出现不应该由本类来完成的工作,那么意味着你的模块已经存在缺陷。

3。

系统框架结构具体每个部分的作用在以下的各个部分进行介绍。

4。

MFC基础类职责MFC基础类包括应用程序类,主框架类,视图类和文档类。

应用程序类负责系统初始化,包括检查配置文件信息的有效性,数据库是否能正确连接,系统是否注册等前端工作,以确定是否需要启动系统;主框架类负责工具条,状态条,菜单和浮动窗体的管理,并作为整个工程中消息收发的中转站;浮动窗体将作为一个容器,以TAB页的方式集成各个模块的信息展示和交互窗口,使得整个系统能有有效的窗口管理,不至于出现浮动窗口满天飞的现象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人机交互 部分
第十二章 面向对象系统设计
12.3 从面向对象分析到面向对象设计
视图模式
默认文件名 FrontPage编辑区
网页查看方式
人机交互 部分
第十二章 面向对象系统设计
12.3人机交互部分(HIC)设计 2 如何设计人机交互部分
人机交互部分 (HIC)设计
·对人分类; ·描述人和他们的任务脚本; ·设计命令层次; ·设计详细的交互; ·继续做原型;
问题域部分 (PDC)设计
第八考虑因素:
在进行小组分工时,不要分裂问题域的基本结 构和类,要遵守稳定性、可重用性和可扩充性 的原则,那种因人设事的修改是毫无意义的。 相反,应完整地保持问题域部分,把较大的结 构和类分配到各个小组。
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·复审并挑剔对面向对象分析结果增补
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·调整继承的支持级别;
问题域部分 (PDC)设计
第四考虑因素:
1 多 继 承 模 式
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·调整继承的支持级别;
问题域部分 (PDC)设计
第四考虑因素:
2 针 对 单 继 承 语 言 的 调 整
当没有一种更满意的组合机制可 用时,这实际上就是一种把类库 中的某些类组织在一起的方法。 而且这样的类可以用于建立一个
协议
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·把问题域专用类组合在一起;
面向对象分析Root
面向对象分析 Subject
面向对象分析 Attribute
面向对象分析 Class
问题域部分 (PDC)设计
第九考虑因素:
考察所做的选择,重新审查和挑剔对问题域
部分的内容所作的任何修改。无论何时何地, 要尽可能地保持建立的基本问题域的结构。
第十二章 面向对象系统设计
12.3人机交互部分设计(HIC:用户界面部件)
人机交互部分 (HIC)设计
1. 为什么需要人机交互部分设计 人机交互部分突出人如何命令系统以及系统如何向用户提交信 息,人在使用计算机过程中的感受直接影响到他(她)对系统 的接受程度。
第十二章 面向对象的设计方法
12.4 任务管理部分(TMC)设计
任务增加了设计、编码和过程的复杂 性,因此必须细心地选择并作最终调 整。 (1)用户输入错误。 (2)设备错误。 (3)物理限制。 (4)代码错误。
任务管理 部分
第十二章 面向对象的设计方法
11.2问题域部分(PDC)设计 ·重用设计和编程类;
首先考虑如何从自己的 或别人的源程序中把现 成的类增加到问题域部 分。 现成的类可能是
用面向对象方法编写的, 也可能是用某种非面向 对象方法编写的可用软 件,
在后一种情况下,把软 件封装在一个特意设计 的、基于服务的界面中, 改造成类的形式,把现 成的类增加到问题域部 分中。
12.2问题域部分(PDC)设计 ·通过增添一般类而建立协议;
问题域部分 (PDC)设计
第三考虑因 素:
有时,一些专用类将需要一个相似的协议,这 意味着它们将要定义一个相似的服务(以及相应 的属性)集合。在这种情况下,可引进一个附加 类,以便建立这种协议。
在上面例子中的“面向对象分析Part”就是这 样的一个类,它为所有的特殊类定义了一个共同 遵守的协议。
非计算机专业人员 在使用计算机的人群中 所占的比例不断增加;
人机交互部分的友 好性直接关系到一个软
件系统的成败; 性能很差的人机交
人机交互中起主导作用的是人,为 了考察其产品的用户友好性,国外 一些大的软件公司在新产品上市之 前,总要组织一些实际的用户进行 产品试用,并通过详细考察和记录 被试验者的生理反应,从而确定产 品是否使用户感到满意。
发现类及对象; 识别结构; 识别主题; 定义属性; 定义服务。 这些活动,不必按顺序进行。这些活动指导人们从高的 抽象层 (如问题域的类及对象)到越来越低的抽象层(结构、
第十二章 面向对象系统设计
面向对象设计针对与实现有关的因素继续开展面向对 象分析的五个活动,包括问题域、人机交互、任务管理和 数据管理等四个部分的设计。如图所示,面向对象设计模 型从横向看是上述四个部分,从纵向看每个部分仍然是五 个层次。
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·改进性能;
问题域部分 (PDC)设计
第五考虑因素:
性能是一个系统成功的关键因素。性能的含义 远不只是一个系统或应用程序执行得多快,上乘的软 件能把该做的事情做得“足够快”(符合需求或客户 期望),而且费用和进度又符合要求。 下面有几种可望改进性能的措施:
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计 ·调整继承的支持级别;
问题域部分 (PDC)设计
第四考虑因 素:
有时如果面向对象分析的一般/特 殊结构包括多继承,在使用一种只有 单继承或无继承性的编程语言时,就 需要对面向对象分析的结果作一些修 改。 (1)多继承模式 (2)针对单继承语言的调整
第十二章 面向对象系统设计
第十二章 面向对象系统设计
在软件开发人员完成了面向对象 的分析之后,面向对象详细设计和开 发阶段就可以开始,我们面对的问题 是如何针对系统的具体实现进行面向 对象的设计。
第十二章 面向对象系统设计
面向对象的软件构建过程见图12.1,注意此时我 们应建立了经过分析设计得到的定义得很好的类。 编程语言应是面向对象的,如C++、Java、Delphi 等等。
在对象之间具有高度繁忙消息流通的情况下,
把两个或更多的类加以合并可实现高度耦合;
在类及对象中扩充一些保存临时结果的属性。
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计
问题域部分
(PDC)设计
·提供数据管理部分;
第六考虑因
为 了 提 供 数 据 管 理 部 分 , 每 个 被 保 存素:
第十二章 面向对象系统设计
12.2问题域部分设计 (PDC:主体部件设计)
问题域部分
(PDC)设计
1. 为什么需要问题域部分设计
首先,让我们先来分析一下在描述系统时的遇到的变动因
素和稳定因素,这是面向对象分析方法的策略基础。
系统需求 最容易变动的就是加 工与子加工,就是服务; 其次,与外界的接口 也是容易变动; 第三,描述问题空间 中的实体所用的数据属性 有时也在发生变化.
其次,划掉现成 类中任何不用的 属性和服务;并 增加一个现成类 到问题域类之间 的一般/特殊关 系。
问题域部分 (PDC)设计
首先考虑 的因素:
接着,划掉问题 域类中不再需要 的部分,这些属 性和服务现在是 从现成类中继承 的了,并修正问 题域类的结构和 连接,必要时把 它们移向现成类 。
第十二章 面向对象系统设计
但是,系统中最稳பைடு நூலகம்的方面,就
是问题空间被当作整体看待的对象 ,
要使系统从容地适应变化的需求
,保持总体结构的稳定性就显得格 外重要,重用的关键\可扩充性所需 要的。
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计
问题域部分 (PDC)设计
2 如何进行问题域部分设计
首先:对需求说明修改,使它们反映到问题模型中,
一组语句就形成了一个服务(方法)。服务与 特定类相关,每个服务代表一个所需的操作方法, 使得类能完成系统中的职责。服务类似于系统中的 模块。类组合形成子系统或系统软件,再与其他4 个部件组合形成软件系统。
语句
一个或多个语句 组成服务
服务
一个或多个服务 属于一个类或对象类
类 属性 服务
一个或多个对象类 组成子系统或系统

计计
第十二章 面向对象系统设计
从面向对象分析到面向对象设计
面向对象分析是针对问题域和系统责任的,对应着分析工作
五个活动,存在着面向对象分析的各层模型化的“问题空 间”。
最终呈现越来越多的细节,层次是总体模型的一些水平薄片
第十二章 面向对象系统设计
从面向对象分析到面向对象设计
五个层次对应着在面向对象分析中介绍过的五个主要活 动:
互部分将使一个功能很 强的产品变得不可接受。
第十二章 面向对象系统设计
12.3 从面向对象分析到面向对象设计
其它三个部分则是面向对象分析阶段 未曾考虑的,全部在面向对象设计阶段建立。
人机交互部分包括有效的人
机交互所需的显示和输入,这些 类在很大程度上依赖于所用的图 形用户界面环境,例如Windows, Foxbase,C++,而且可能包括 “窗口”、“菜单”、“滚动 条”、“按钮”等针对项目的特 殊类。
面向对象分析 Connection
面向对象分析 Service
面向对象分析GenSpec Connection
面向对象分析Instance Connection
面向对象分析Message Connection
面向对象分析Part
Connection
问题域部分 (PDC)设计
其次考虑 的因素
第十二章 面向对象系统设计
12.2问题域部分(PDC)设计
问题域部分 (PDC)设计
·把问题域专用类组合在一起;
其次考虑
在面向对象设
的因素
计中,通常先
引入一个类以
便把问题域专
用的类组合在 一起,它仅仅 起到“根”类 的作用,把全
如图所示的例子中的“面向对象 分析Root”就是这样的一个“根” 类
部下层的类组 合在一起。
一般/特殊结 构
的对象需要知道自己是怎样被存储的。
相关文档
最新文档