面向对象软件开发方法概述

软件开发所经历的生命周期

总的来说,软件开发都会经历一下生命周期

  • 分析需求:分析问题领域,了解用户的需求
  • 软件设计:设计软件的总体架构,把整个软件系统划分成大大小小的多个子系统,设计每个子系统的具体结构
  • 软件编码:用选定的编程语言来编写软件功能,实现软件设计阶段所勾画出来的软件蓝图
  • 软件测试:测试软件是否实现特定的功能,以及软件的运行性能
  • 软件部署:为用户安装软件系统,帮助用户正确的使用软件
  • 软件维护:修复软件中存在的BUG,当用户的需求发生变化时(增加新的功能,或更改现有功能的实现方式)修改相应的软件模块

为了提高软件的开发效率,降低软件的开发成本,一个良好的软件系统应具备以下特点

  • 可重用性:减少软件的重复代码,避免重复编程
  • 可扩展性:当软件系统的需求必须放生更改时,可以方便的在现有架构的基础上构建新的子系统,也不需要改变软件系统的现有结构且不影响其它以存在的子系统
  • 可维护性:当软件系统的某个功能需要更改时只需修改相关子系统的少量代码即可,而不需要修改软件系统中的多个子系统。

如何才能使软件系统具备以上特点呢?加入吧整个软件系统分解成多个小的子系统,每个子系统之间相对独立把这些子系统像最积木一样灵活的组装起来构成整个大的软件系统。这样设计出来的软件肯定能获得以上的优良特性。软件系统中的子系统具备以下特性:

  • 结构稳定性:软件设计阶段把一个软件系统划分成更小的子系统时,设计合理,是系统的结构健壮能适应用户变化的需求
  • 可扩展性:当软件必须增减新的功能时,能够在现有子系统的基础上创建出新的子系统,该子系统继承了原有子系统的一些特性,并且还具有一些新的特性,从而提高的系统的可重用性及可扩展性
  • 内聚性:每个子系统只完成特定的功能,每个子系统不会有功能的重叠
  • 可组合性:若干个小的子系统组合起来就成了一个完整的大系统,子系统的可组合性会提高软件的可维护性及可重用性 并简化开发过程
  • 松耦合:每个子系统之间相对独立,修改一个子系统不会影响到其它的子系统。

面向对象开发:

咋面向对象的开发方法中把软件系统看成是各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点

  • 把软件系统堪称是各种对象的集合,这更符合人类的自然思维方式
  • 软件需求的改动往往是功能的改动,而功能的执行者————对象一般不会有太大的变化这使得按照对象设计出来的系统结构比较稳定
  • 对象包括属性(数据)和行为(方法)把对象的数据及方法的实现方式一起封装起来,这使得方法以及与之相关的数据不再分离,提高的子系统的相对独立性,从而提高的软件的可维护性
  • 支持封装、继承、多态和抽象,提高的系统的可重用性、可维护性和可扩展性

对象模型:

在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型,建立对象模型包括自底向上的抽象过程也包括自顶向下的分解过节过程。

建立对象模型的第一步使从问题领域入手,彻底搞清用户的需求,然后建立正确的对象模型,开发人员需要进行一下自低向上的抽象思维

  • 吧问题领域的属性和行为抽象成具体的对象
  • 把具有相同属性和行为的对象抽象成类
  • 若多个类中存在共性(具有相同的属性和行为)把这些共性抽象到父类中

在自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使类体系更加合理。由于这种类体系的构造是由具体到抽象,再从抽象到具体,符合人类的思维规律,因此能更好更快的完成任务。

时间: 2024-07-30 03:29:21

面向对象软件开发方法概述的相关文章

关于传统的软件开发方法在实际软件开发过程中的使用情况

传统的软件开发方法主要有两大类:面向过程和面向对象,他们两者在实际的软件开发中其实是相互融合相互补充的.具体做法如下: 用面向过程的方法开发软件的过程中,需求分阶段一般通过建立功能模型来分析系统功能.面向过程的方法学中提供的功能模型的建模工具是数据流图,在这一阶段可以引入面向对象方法学中提供的用例图来建模,效果很好:用面向过程方法学开发软件过程中的详细设计阶段要为每个模块设计算法,这时可借用面象对象方法学中提供的活动图来进行算法的设计.用面向对象方法开发软件过程中的总体设计阶段本不需要建立软件结

【软工视频】软件开发方法与模型

这篇博客将软件开发方法与模型一起写,是想给它们进行比较,分析它们的不同.. 开发方法 通过看自己的软工视频和查阅百度百科,发现软件的开发方法有很多种,下面是我在百度百科上的截图: 就目前而言,我需要学习的是结构化开发方法(SASD).面向数据结构开发方法和面向对象的开发方法.由于面向数据结构和面向对象的开发方法没有进行系统的学习,所以我现在要写结构化开发方法.结构化开发方法也会贯穿[软件视频]这一系列博客,希望大家给我指正! SASD是面向数据流的开发方法,下面一张图是我对它的总结: 感觉自己的

2014软考软件设计师考前辅导:软件开发方法综述

51CTO学院,在软考备考季特别整理了"2014年软考-软件设计师考前辅导[汇总篇]",帮助各位学院顺利过关!更多软件水平考试辅导及试题,请关注51CTO学院-软考分类吧! 查看汇总:2014年软考-软件设计师考前辅导[汇总篇]  1.结构化方法 结构化开发方法是由E.Yourdon 和 L.L.Constantine 提出的,即所谓的SASD 方法, 也可称为面向功能的软件开发方法或面向数据流的软件开发方法.Yourdon方法是80年代使用最广泛的软件开发方法. 它首先用结构化分析(

类Kingdom Rush塔防游戏的数值设计(一)——玩法概述和基础战斗模型建立

玩法概述---- Kingdom Rush,即皇家守卫军,IronHide出的一款塔防游戏.其涂鸦的风格.独特的英雄和士兵系统.较为庞大的战斗场面,在塔防游戏中独树一帜,取得了巨大的成功. 在这里,基于Kingdom Rush的核心玩法,推拟出游戏所需的核心战斗数值(包括战斗内成长数值). 首先,需要明确游戏的玩法. 游戏大概的战斗场景如下 战斗地图区域划分 1.出怪点:2.预设路径:3.防御塔建造点:4.防守点 战斗单位划分 我方 1.防御塔:2.英雄:3.士兵 敌方 1.怪物 游戏玩法概述

09.面向对象多态的概述及其代码体现

09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic [,p?l?'m??f?k])概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案例演示 代码体现多态 案例: class Demo1_Polymorphic { public static void main(String[] args) { Cat c = new Cat();//猫是一只猫 c.eat(); Animal a = new Cat

面向对象(异常概述)

/** * Created by rabbit on 2014-08-05. * 异常:就是程序在运行时出现不正常情况 * 异常由来:问题也是现实生活中一个具体的事物,也可以 * 通过java的类形式进行描述,并封装成对象.其实就是 * java对不正常情况进行描述后的对象体现. * * 对于问题的划分,一种是严重的问题,一种是非严重的问题. * * 对于严重的,java通过Error类进行描述 * 对于Error一般不编写针对性的代码对其进行处理 * * 对于非严重的,java通过Except

【OOAD】面向对象设计原则概述

软件的可维护性和可复用性 知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成:? 过于僵硬(Rigidity) ? 过于脆弱(Fragility) ? 复用率低(Immobility) ? 黏度过高(Viscosity) 软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:? 可扩展性(Extensibility) ? 灵活性(Flexibility)? 可插入性(Pluggabil

面向对象开发方法概述

1.面向对象方法 01.简介 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学.对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象.而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式.所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识.理解.刻画客观世

面向对象思想初识概述

概述 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计.开发计算机程序. 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为.面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征.行为特征抽象出来,描述成计算 机事件的设计思想. 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现. 特点 面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂