【摘要】随着面向对象研究的不断深入,面向对象技术的应用越来越广泛,面向对象的思想被应用到许多不同的领域。在介绍软件工程方法的基础上分析了面向对象的软件工程方法的分析技术、设计及软件开发方法,从而说明了面向对象技术贯穿于软件开发的全过程。
【关键词】软件工程;面向对象;软件开发
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);第二项工作是测试并调试面向对象的程序。面向对象程序的质量基本上由面向对象设计的质量决定,但是,所采用的程序设计语言的特点和程序设计风格也将对程序的可靠性、可重用性和可维护性产生深远的影响。
综上所述,面向对象软件工程方法可概括为如下的过程:分析用户需求,从问题中抽取对象模型;将模型细化,设计类,包括类的属性和类间相互关系,同时考察是否有可以直接引用的已有类或部件,选定一种面向对象的编程语言,具体编码实现上一阶段的设计,并在开发过程中引入测试,完善整个解决方案。■
【参考文献】
[1]钮海燕. 大连:引智趋动软件产业国际化[J]. 中国经济快讯, 2001, (42) .
[2]学术文摘[J]. 西北大学学报:自然科学版,1989, (04).
[3]郭彦坤. 用软件工程方法规范应用软件的管理[J]. 中国金融电脑, 1998, (02).
[4]梁宁利. 利用软件工程基本原理对一个电子信息发布管理平台设计[J]. 科技经济市场, 2007, (10) .
[5]傅智杰.基于构件的软件开发方法在银行业中的应用[J].中国金融电脑, 2006,(01).
[6]崔启亮. 软件国际化与本地化管理[J]. 软件世界, 2006, (23).
[7]刘欣苗. 软件工程方法在MIS开发中的运用[J]. 科技创新导报, 2008, (27) .
[8]吴立明. 面向对象的机械CAD软件工程方法探析[J]. 科技创新导报, 2009, (24) .
[9]石研, 冯阿芳, 张锡琨. 敏捷方法[J]. 价值工程, 2010, (04).