一、系统开发方法,包括如下方法:
-
1.结构化方法【别名:生命周期法】
- 由结构化
分析
、结构化设计
、结构化程序设计
三部分组成。 - 精髓是:项目自顶向下、逐步求精和模块设计。
-
特点:
- 开发目标清晰化 【遵循“用户第一”原则】
- 开发工作阶段化 【每个阶段工作内容明确,注重开发过程控制】
- 开发文档规范化
- 设计方法结构化
-
缺点:
- 开发周期长
- 难以适应需求变化
- 很少考虑数据结构
- 由结构化
-
2.面向对象方法
-
概念:客观世界是由各种对象组成的,任何事物都是hi对象。也就是面向对象开发中说的
万物皆对象
。 -
阶段:系统分析、系统设计、和系统实现三个阶段之间已经没有
缝隙
-
特点:
- 使系统的描述及信息模型的表示与客观试题相对应,符合人们的思维习惯。
- 有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期。
-
结构化方法
和面向对象方法
系统开发领域相互存在,不可以代替
-
使用范围:
- 普遍适用于各类信息系统的开发
-
结构化方法
进行自顶向下
的整体划分,面向对象方法【简称:OO方法】
进行自底向上
开发
-
特征:
-
继承性
- 分为单继承和多继承
-
封装性
- 把数据和基于数据的操作封装成一个整体对象。访问只能通过外部提供的
接口
进行访问。
- 把数据和基于数据的操作封装成一个整体对象。访问只能通过外部提供的
-
多态性
- 多个类中可以定义同一个操作或者属性名,并且每一个类中中都允许有不同的实现。
-
-
其他知识点:
-
对象特点:
- 计算机语言描述:对象是由一组
属性
和对这组属性进行的操作
构成的。 - 由
数据
和操作
构成的封装体
. - 三个基本要素:对象
标识
、对象状态
、对象行为
。
- 计算机语言描述:对象是由一组
-
类特点:
- 将实体的
属性【数据】``和操作【函数】
封装在一起。
- 将实体的
-
区别:
- 每一个对象都是某一个类的实例
- 每一个类在某一时刻都有零或更多的实例
- 类是静态的,对象是动态的
- 类是生成对象的模板。
-
关系:
对象是类的示例,类是对象的模板
-
需要了解的扩展知识点:
名称 说明 接口 类与类之间或者说对象之间操作的规范和说明 消息 对象之间的交互,通过消息往目标对象发送操作请求 组件 软件系统可替换的物理组成部分, 封装了模块功能的实现
。组件的特点应该是内聚
的。具有相对稳定的公开接口。
-
-
- 原型化方法
-
指模拟某种产品的原始模型。
-
原型法的开发过程:
- 确定用户基本需求->设计系统初始原型->试用和评价原型->用户不满意->修改和完善原型->用户满意->整理原型、提供文档。
- 确定用户基本需求->设计系统初始原型->试用和评价原型->用户满意->整理原型、提供设计文档。
-
原理:
- 系统开发初期必须明确系统的功能要求,确定系统的边界。
- 根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户。在这个基础上与用户交了,最终实现用户需求的信息系统快速开发的方法。
-
分类:
-
是否实现功能:
-
水平原型
- 行为原型【探索预期系统的一些特定行为,达到细化需求的目的】
- 功能的导航【功能导航,并未真实实现功能】
- 主要用的界面上
-
垂直原型
- 结构化原型【实现部分功能】
- 用在复杂算法实现上
-
-
最终结果:
- 抛弃式原型
- 用在解决需求不确定性、不完整性、模糊不定
- 演化式原型
- 为开发增量式产品提供基础,逐步把原型演化成最终系统
- 必须易于升级和优化的场合,特别适用于Web项目
- 抛弃式原型
-
特点:
- 使系统开发周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益
- 以用户为中心来开发系统,用户参与程度大大提高,开发的系统也更容易符合用户的需求,因而增加了用户的满意度,提高了系统开发的成功率。
- 因为有用户参与了系统开发的全过程,对系统功能和结构容易理解,有利于系统的转交、系统运行与维护
-
优点:
- 主要在于能更有效地确认用户需求
- 用于需求不明确的系统开发
- 对于分析层面难度大、技术层面难度不大的系统,适合与原型法开发
- 而对于技术层面的困难远大于其分析层面的系统。不适合用原型法
-
-
- 面向服务的方法
- 定义:应用构建在类和对象之上,随后发展起来的建模技术,会把相关对象按照
业务功能
分组,这样一来就形成了构件
的概念。跨构件的功能调用使用接口形式暴露出来
。
把接口的定义与时间进行解耦,就催生了服务和面向服务(SO)
的开发方法 - 各类开发方法对比:
开发方法 | 主要优点 | 主要缺点 | 适用范围 |
---|---|---|---|
结构化 | 逐层分解、逐步求精的原则,强调完整和顺序 | 开发周期长,难适应需求变化,很少考虑数据结构 | 大型复杂不适用 |
面向对象 | 更好的复用性,缩短开发周期 | 必须依靠一定的OO技术,大型项目的开发上具有一定的局限性 | 普遍适用 |
原型化 | 开发周期短,增加了用户满意度,利于移交和维护,成本和风险低 | 开发环境要求高,管理水平高。 | 需求不明确、技术层面难度大的不适用 |
面向服务 | 更高的重用度,松耦合 | 概念导入末尾期,标准尚未统一案例和工程实践刚起步 | 快速响应需求与环境变化高复用性、高操作性 |
网友评论