继承性:子类自动共享父类中数据和方法的机制
封装性:数据和加工该数据的方法封装为一个整体,实现独立性很强的模块
多态性:可作用于多种类型的对象上并获得不同的结果
面向对象(OO):以对象为中心,以类和继承为构造机制
面向对象的设计(OOD):设计软件的对象模型,就是在软件内设计各个对象,对象之间的关系(层次关系,继承关系),对象间的通信方式
面向对象的实现(OOI):指软件工程的编码实现,确定对象哪一些处理能力应在哪些类中进行描述
UML基本构造块:事物,关系,图
事物:结构事物:类,接口 行为事物:交互
关系:用事物结合在一起,包括依赖,关联,泛化和实现
图:用例图,类图,包图,对象图,状态图,顺序图
面向对象的分析模型:用例模型,对象模型,交互模型
用例模型:通过用例和场景表示的功能模型
对象模型:用类和对象表示的静态模型
交互模型:是由状态图,顺序图,活动图表示的动态模型
管道与过滤器风格
每个构件都有一组输入和输出,通过数据流,经过内部处理,然后产生输出数据流
缺点是导致进程成为批处理结构,不适合处理交互应用,每个过滤器增加了解析和合成数据的工作,增加了编写过滤器的复杂性
数据抽象与面向对象风格
构件是对象,对象负责保持资源的完整型,对象之间通过调用来交互
信息隐藏,改变一个对象的表示,不影响其他对象。为了使得对象间进行交互,必须指导对象的标识,只要一个对象标识改变就必须修改所有其他明确调用它的对象
仓库风格
中央数据结构说明当前状态,独立构件在中央仓库的数据存储上执行
控制算法和中心存储库严格分离,具有可更改性和可维护性,知识源具有可复用性
面向对象语言的特点
具有支持类和对象概念的定义与实现机制
具有实现继承的语言机制
具有实现属性和服务机制
具有参数化类
提供类型检查
提供类库
提供持久对象的保存
提供封装
提供可视化开发环境
软件的维护
改正性维护:为了识别和纠正软件错误,改正软件的缺陷
适应性维护:为了适应环境的变化而修改软件的活动
完善性维护:为了满足用户新功能和性能要求,需要修改和再开发软件
预防性维护
CMM将软件过程的成熟度分为5个等级
初始级:工作无序,管理无章法,开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一旦离去,工作秩序面目全非
可重复级:初步实现标准化,变更依法进行,稳定可跟踪,新项目计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件
已定义级:开发过程均已实现标准化,文档化。完善的培训和专家评审制度,技术和管理活动均可控制,对项目的过程,岗位和职责均有共同的理解
已管理级:产品和过程已建立了定量的质量标准,开发活动中的生产率和质量时可度量的,已实现项目产品和过程的控制,可预测过程和产品质量趋势
优化级:可集中精力改进过程,采用新技术,新方法