第1章概述1.1面向过程程序设计方法分析1.2面向对象程序设计方法分析1.3面向对象程序设计方法的优点1.4面向对象的软件开发过程1.5目前最流行的面向对象程序设计语言1.1面向过程程序设计方法分析采用“自顶向下、逐步求精”的设计方法把一个复杂的问题(主模块)划分为多个简单问题(子模块)的组合;对子模块进一步细化,分解成一个个更小的子模块,直到分解成一条条程序语句为止。实例:Internet环境远程家电监控洗衣机门锁电灯录像机电视机摄像机热水器报警器空调实例:本地家电监控洗衣机门锁电灯录像机电视机摄像机热水器报警器空调用面向过程设计方法如何实现?硬件结构网卡PCL-722空调热水器电视机电灯洗衣机门锁。。。PCL-885PCL-885Internet煤汽报警器防盗报警器。。。端口指令介绍intinportb(intport);从规定的输入端口读入一个字节,作为返回值。voidoutport(intport,charbyte);写一个字节到规定的输出口程序框图数据结构(定义变量并赋初值)控制空调控制热水器报警器处理开始接收指令显示处理。。。。。。接收用户控制指令程序结构...数据结构...函数数据结构与函数的关系-1第一章...数据结构...函数数据结构与函数的关系-2第一章...数据结构...函数面向过程程序设计的缺点-1...数据结构函数缺点...面向过程程序设计的缺点-2...数据结构...函数缺点1.如果数据结构发生变化,相关函数必须跟着变化。2.总体设计时要分析的问题量大、面广、复杂。3.课题组成员之间的接口信息多,协调难、效率低。4.可复用性差。(例:开发第二个类似工程时)面向对象的设计过程?1.2面向对象程序设计方法分析1.面向对象概念概述2.面向对象程序结构3.面向对象的软件开发过程1.面向对象概念概述对象类对象之间的相互关系对象属性行为现实世界是由各种各样的事物组成。每一类事物都有自己特定的属性(如大小、形状、重量等)和行为(如生长、行走、转弯、运算等)。在计算机科学中将这些现实世界中的事物称之为对象。例:家电监控项目中有哪些对象对象属性行为空调热水器电灯防盗报警器防火报警器煤气报警器例:空调对象–属性对象属性操作空调开/关标志制冷/制热标志温度风开/关标志...例:空调对象–行为对象属性行为将温度控制在20度左右开空调关空调...类类对象实例化抽象类是同种对象的集合与抽象属于类的某一对象称为是类的一个实例类及对象--举例电视机实例化抽象张三的电视机李四的电视机王五的电视机类对象对象之间的相互关系包含:当对象B是对象A的属性时,称对象A包含对象B。继承:继承是指一个新类可以从现有的类派生而来。新类继承了现有类的特性,包括一些属性和行为,并且可以修改或增加新的属性和行为,使之适合具体的需要。关联:当对象B的引用是对象A的属性时,称对象A与对象B之间有关联关系。包含----举例当显象管对象是电视机对象的属性时,称电视机对象包含了显像管对象。电视机显像管机壳。。。继承----举例黑白电视机对象继承了电视机对象。彩色电视机对象继承了电视机对象。黑白电视机彩色电视机电视机关联----举例电视机厂商对象的引用是电视机对象的属性,所以电视机对象与电视机厂商对象之间是关联关系。电视机厂商对象的引用。。。电视机对象。。。电视机厂商对象2.面向对象程序结构是类的集合唯一存在一个主类有继承关系的类以继承的关系联系起来注意:C++的结构有所不同。实例:Internet环境远程家电监控洗衣机门锁电灯录像机电视机摄像机热水器报警器空调面向对象的程序结构?家电控制面向对象程序结构-1报警器热水器摄像机电视机控制器空调…主程序应放在哪?家电控制面向对象程序结构-2报警器热水器摄像机电视机控制器空调…主程序应放在哪?控制器类中的main()函数控制器类—属性属性操作空调对象热水器对象报警器对象摄像机对象。。。。。。控制器类—操作属性操作。。。。。。主函数主函数数据结构(定义变量并赋初值)控制空调控制热水器报警器处理开始接收指令显示处理。。。。。。接收用户控制指令面向过程与面向对象程序结构比较……...面向过程面向对象1.3面向对象程序设计方法的优点更好的可重用性更好的可扩展性更好的可管理性更好的可重用性空调热水器空调热水器防盗报警器空调防火报警器防盗报警器项目A项目B项目C程序结构对比图………面向过程面向对象更好的可扩展性空调热水器空调热水器防盗报警器温度风扇湿度例一例二更好的可管理性类的数量函数的数量错误涉及的范围局部化1.4面向对象的软件开发过程OOA模型OOD模型程序源代码项目中涉及的对象第一步:面向对象分析(OOA)第二步:面向对象设计(OOD)第三步:面向对象实现(OOP)面向对象分析(OOA)由用户和设计人员协作完成分析用户需求,逐层完成OOA模型OOA模型OOD模型程序源代码项目中涉及的对象面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)Coad&YourdonOOA模型1.对象-类层2.静态属性层3.服务(行为)层4.结构层5.主题层Coad&Yourdon模型分五层:OOA模型OOD模型程序源代码项目中涉及的对象面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)第一层类及对象层电灯类风扇类空调类控制器类第二层属性层电灯类风扇类空调类控制器类-电灯开关标志-风扇开关标志-空调开关标志-电灯对象-风扇对象-空调对象***111第三层服务(行为)层电灯类风扇类空调类控制器类-电灯开关标志-风扇开关标志-空调开关标志-电灯对象-风扇对象-空调对象***111+开电灯+关电灯+开风扇+关风扇+开空调+关空调+开电灯+关电灯+开风扇+关风扇+开空调+关空调第四层结构层对象之间是否有继承关系第五层主题层主题当面临非常复杂、庞大系统时,主题层将定义若干个主题,把有关对象分别划归不同的主题,每个主题成为一个子系统。面向对象设计(OOD)设计用户界面设计任务管理设计数据管理OOA模型OOD模型程序源代码项目中涉及的对象面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)OOD模型OOA模型1.界面管理2.任务管理3.数据管理OOA模型OOD模型程序源代码项目中涉及的对象面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)加上界面之后•视窗图框类•按钮类•菜单类•显示图形所需的类•……加上任务管理之后•线程管理所需类•消息捕捉及传递所需的类•……加上数据管理之后•数据库管理及访问所需的类•文件管理及访问所需的类•……面向对象实现(OOP)选一面向对象语言实现之。OOA模型OOD模型程序源代码项目中涉及的对象面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)UML(UnifiedModelingLanguage)统一建模语言用于面向对象系统分析建模阶段的图形语言通过13种图来描述分析结果–用例图:描述系统与外部实体之间的关系–类图:描述系统结构–状态机器图:模拟对象的关键状态,并显示在什么环境下对象改变状态。–活动图:活动图模拟对象将执行的动作及顺序。–通信图:对系统中对象间的交互作用进行建模,侧重于发生什么交互。–顺序图:对系统中对象间的交互作用进行建模,侧重于交互何时发生。–……1.5目前最流行的面向对象程序设计语言C++:JAVA:(1995.5)C#:(2002.3.22北京)CSHARP