面向对象的软件工程应用浅研-阿里云开发者社区

开发者社区> zting科技> 正文

面向对象的软件工程应用浅研

简介:
+关注继续查看
来源:http://www.biyelww.com/

 

  【摘要】随着面向对象研究的不断深入,面向对象技术的应用越来越广泛,面向对象的思想被应用到许多不同的领域。在介绍软件工程方法的基础上分析了面向对象的软件工程方法的分析技术、设计及软件开发方法,从而说明了面向对象技术贯穿于软件开发的全过程。

【关键词】软件工程;面向对象;软件开发

  1.软件工程的定义
  软件工程是指导计算机软件开发和维护的工程学科 采用工程的概念、原理、技术、方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方面结合起来.经济地开发出高质量的 软件并有效地维护它.这就是软件工程软件工程运用计算机科学、数学及管理科学等原理.借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的 其中,计算机科学、数学用于构造模型与算法,工程科学用于制造规范、评估成本及确定权衡,管理科学用于计划、资源质量、成本等管理。

  2.软件工程方法的流程
  2.1软件计划
在设计任务确立前.首先要进行调研和可行性研究.理解工作范围和所花费的代价.然后做出软件计划。

2.2软件需求分析
对用户要求进行具体分析.确定用户要求软件系统做什么.并用软件需求规格说明书表达出来.作为用户和软件人员之间共同的约定。

2.3软件设计
根据需求说明建立软件系统的结构.包括数据结构和模块结构。这部分又分为总体设计和详细设计两个阶段。

2.4软件编码
按软件设计的要求为每个模块编写程序。

2.5软件测试
发现和排除程序中留存的错误.经过测试排错.得到可交付运行的软件。软件测试又分为单元测试和综合测试两个阶段。

2.6软件维护
经过测试的软件仍然可能有错.另外 用户的需求和系统的操作环境也可能发生变化,因此,交付运行的软件仍然需要继续排错、修改和扩充.这就是软件的维护。

 3.面向对象的软件工程方法
  3.1面向对象的软件工程方法的定义
面向对象技术(OO)是一个非常实用而强有力的开发方法。它是为了提高软件系统的稳定性、可修改性和可重用性创造出来的一种软件工具,具有方法的唯一 性、高度连续性等特性,并把面向对象分析、面向对象设计和面向对象编程集成到软件生存周期的相应阶段面向对象的软件工程(OOSE)自上至下、自始至终地 贯彻面向对象思路,可以用于系统分析、系统设计、程序设计.也可以用于其他环境的开发.如数据结构设计、数据库设计等。

3.2面向对象的软件工程方法的特征和要点
面向对象软件工程方法的出发点和基本原则.是尽可能模拟人类习惯的思维方式.使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程.也 就是使描述问题的问题空间(也称为问题域)与实现解法的空间(也称为求解域)在结构上尽可能一致,因此,面向对象方法有以下的基本特征:
(1)封装性:对象是数据和有关操作的封装体。
(2)继承性和类比性:在对象继承结构上.下层对象继承上层对象的特征属性和操作。不同的对象具有某些相同的属性时.常常把它们归并成一类。
(3)动态连接性:对象和对象之间所具有的一种统一、方便、动态地连接和传递消息的能力与机制 动态连接性便于在概念上体现并行和分布式结构。
(4)易维护性:任何一个对象都是把如何实现对本对象功能的细节隐藏在该对象的内部。这就增强了对象和整个系统的易维护性。

概括地说.面向对象方法具有下述四个要点:
(1)把对象作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的.程序中任何元素都是对象.复杂对象由比较简单的对象组合而成。
(2)把所有对象都划分成类。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性.是对象的状态信息 而施加于数据上的操作用于实现对象的动态行为。
(3)按照父类(或称基类)与子类(或称派生类)的关系,把若干个相关类组成一个层次结构的系统(也称类等级)。在类等级中.下层派生类自动拥有上层基类中定义的数据和操作.这种现象称为继承。
(4)对象彼此之间仅能通过发送消息互相联系。对象与传统数据有本质的区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体.必须向它发消息.请求它执行它的某个操作以处理它的数据.而不是从外界直接对它的数据进行处理。

3.3面向对象建模
为了更好地理解问题.人们常常采用建立问题模型的方法 通常.模型由一组图示符号和组织这些符号的规则组成.利用它们来定义和描述问题域中的术语和概念。更进一步讲.模型是一种思考工具.利用这种工具可以把知识规范地表示出来。

用面向对象方法开发软件.通常需要建立三种形式的模型.它们分别是描述系统数据结构的对象模型.描述系统控制结构的动态模型和描述系统功能的功能模 型、这三种模型都涉及数据.控制和操作等共同的概念.只不过每种模型描述的侧重点不同。这三种模型从三个不同但又密切相关的角度模拟目标系统.它们各自从 不同侧面反映了系统的实质性内容.综合起来则全面地反映了对目标系统的需求3.4面向对象软件开发方法的几个阶段实际上.用面向对象方法开发软件时,阶段 的划分是十分模糊的.通常在分析、设计、实现等阶段问多次迭代。

(1)面向对象分析。面向对象分析(通常缩写为OOA).就是抽取和整理用户需求并建立问题域精确模型的过程。面向对象分析的关键,是识别出问题域内 的对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。在面向对象分析中,主要由对象模型、动态模型和功能模型组成。在用面 向对象观点建立起的三种模型中.对象模型是最基本、最重要、最内核的。

(2)面向对象设计 从面向对象分析到面向对象设计(通常缩写为OOD)是一个逐渐扩充的过程 或者说.面向对象设计就是用面向对象观点建立求解域模型的过程 面向对象设计可再细分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式及实现服务的算 法。

(3)面向对象实现。面向对象实现主要包括两项工作:
第一项工作是把面向对象设计结果.翻译成用某种程序设计语言书写的面向对象程序(通常此阶段缩写为OOP);
第二项工作是测试并调试面向对象的程序。面向对象程序的质量基本上由面向对象设计的质量决定.
但是.所采用的程序设计语言的特点和程序设计风格也将对程序的可靠性、可重用性和可维护性产生深远的影响。

综上所述.面向对象软件工程方法可概括为如下的过程:分析用户需求.从问题中抽取对象模型:将模型细化,设计类。包括类的属性和类间相互关系.同时考 察是否有可以直接引用的已有类或部件.选定一种面向对象的编程语言.具体编码实现上一阶段的设计.并在开发过程中引入测试,完善整个解决方案



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/02/29/2372934.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【COM原理和应用】2、COM对象和接口
1、COM对象 在客户程序与组件交互的过程中,COM组件将以COM对象形式封装的实体提供给客户程序。与C++等面向对象语言中类的概念类似,COM对象也包含其成员属性和成员方法,前者反应COM对象的状态,后者是对象提供给外界的接口。
1119 0
用 Flask 来写个轻博客 (18) — 使用工厂模式来生成应用对象
目录 目录 前文列表 工厂模式 使用工厂方法 Factory Method 创建 app 对象 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写个轻博...
1421 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4620 0
Java面向对象高级--继承的应用----整形数组类、排序类、反转类
<p><img src="http://img.blog.csdn.net/20130924111658296" alt=""></p> <p>分析:</p> <p><img src="http://img.blog.csdn.net/20130924111727328" alt=""><br></p> <p></p> <pre name="code" class="java">c
1010 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载