软件工程第九章(上)

来源:互联网 发布:python 字符串字节数 编辑:程序博客网 时间:2024/06/06 06:31
本章内容较多分开写,明天这个文档会有更新并且和下一起发出
1.概述:
a . 面向对象方法学的出发点和基本原则:尽可能模拟人类习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,使描述问题的问题空间(也称问题域)与实现解法的解空间(求解域)在结构上尽可能一致
问题域对象:客观世界中的实体
解空间对象:计算机中的实体
解空间对象取决于程序设计语言:
例:汇编语言的解空间: 存储单元
面向过程的语言的对象:变量、数组
面向对象的高级语言对象:窗体、菜单、按钮等
面向对象方法以数据为主线,将数据和操作方法封装在对象中,通过消息请求对象主动执行它的内部操作,改变其内部私有数据
面向对象的四个要点
1.认为客观世界是由对象组成
2.把所有对象都划分成各种对象类
3.把若干对象类组成一个层次结构的系统(类等级)
4.对象彼此间仅通过传递消息互相联系
OO = Objects + Class + Inheritance + Communication with message
面向对象就是既使用对象,又使用类和继承等机制而且对象之间仅能够通过传递消息实现彼此间的通信
面向对象方法优点:
1.与人们习惯思维方法一致
2.稳定性好
3.可重用性好
4.校易开发大型软件系统
5.可维护性好
1.对象的概念:对象是具有相同状态的一组操作的集合,对象是对属性值和操作的封装
2.对象的特点:以数据为中心对象是主动的实现了数据封装本质上具有并行性模块独立性好
其他概念:
类:类是对具有相同数据和相同操作的一组相似的对象的定义
实例:由某个特定类描述的一个具体的对象
消息:消息是用来请求对象执行某个处理或回答某些信息的要求
消息既可以是数据流也可以是控制流一条消息可以发送给不同的对象,对消息的解释完全由接受的接收消息的对象来完成,不同的对象对相同形式的消息可以有不同的理解
与传统程序的“调用/返回”不同的是,对于传来的消息,对象可以返回相应的应答也可以不返回
消息组成部分:1.接受信息的对象,信息选择符(消息名),零个或多个变元
方法:方法是对象所能执行的操作
属性:是类中定义的数据
封装:封装是信息隐藏,通过封装对外界隐藏了对象的实现细节
继承:继承是指能够直接获得已有的性质和特征而不必重复定义他们
多态:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类也可以放松给子类,不同等级的类可以公用一个方法的名字
c++中多态是根据虚函数实现的,在不同的层次中,虚函数实现的算法不同,在运行时根据接收消息的对象所属于的类来决定执行虚函数的版本,称为动态联编
重载(需要重新看一下)
a:函数重载:在同一作用域的参数不同的相同函数名的函数执行不同的功能
b:运算符重载:指同一运算符可以施加于不同类型的操作数上面,当被操作数类型不同时,运算符的含义不同,编译时根据被操作数的类型决定使用运算符的哪种语义
面向对象建模
需要建立三种模型:1.对象模型:描述系统的数据结构(最基本的最重要的)
2.动态模型:描述系统的控制结构
3.功能模型:描述系统的功能
UML:标准建模语言的内容:uml 是标准的建模语言而不是标准的开发过程
UML的定义包括UML语义和UML表示法两个部分组成
uml的重要内容可以由五类图(九种图)来定义
1. 用例图:从用户角度描述系统功能,并且指出各功能
2.静态图:包括类图、对象图和包图

3.行为图:描述系统的动态模型
4.交互图:描述对象间的交互关系
5.实现图:如配置图,定义系统中软硬件的物理体系结构

标准建模语言UML的应用领域:
UML使用于软件开发中从需求分析到测试的不同阶段
需求获取:用例图、活动图
需求分析:类图、对象图、包图
系统分析与设计:状态图、顺序图、合作图、活动图、部件图、配置图
测试:a.单元测试用类图
b.集成测试用部件图和合作图、确认测试用用例图












原创粉丝点击