面向对象软件工程的特点及发展

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象软件工程方法的特点及发展

燕玉林244201222016

摘要: 这篇文章主要论述了面向对象软件工程方法的特点及发展以及面向对象软件工程方法的出发点和基本原则, 和建立三种模型——对象模型、动态模型和功能模型等。

关键词:软件工程; 软件工程方法

1软件工程的历史发展及定义

1. 1软件工程的历史发展

在20世纪六、七十年代, 由于软件开发的技术、管理和工程化的落后产生了一系列问题, 从而最终引发了软件危机。所谓软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上, 几乎所有的软件都不同程度地存在这些问题。

概括地说, 软件危机包含下述两方面的问题: 如何开发软件, 以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。越来越多的大型程序系统的出现, 使“危机”更加严重。

大型程序系统与小型程序相比, 二者有着本质的区别。小型程序规模小, 个人和几个人就能管理和控制其复杂性, 因此可以在较短的时间内完成程序的编制并实现预期的目标。但大型程序系统的程序规模大, 由几十、几百个模块组成, 模块间的接口较为复杂, 常常需要几百个程序员工作几年才能完成。因此, 大型程序具有程序大、复杂程度高、研制周期长、可靠性低等特点。这样的程序系统往往是不可维护的, 而且许多程序中的错误难以纠正。人们对正确可靠、可维护的软件系统的迫切需求与软件研制的手工作坊方式的矛盾日趋尖锐化。为了解决这一矛盾, 人们提出了软件工程的概念。

1. 2软件工程的定义

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术、方法来开发与维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方面结合起来, 经济地开发出高质量的软件并有效地维护它, 这就是软件工程。

软件工程运用计算机科学、数学及管理科学等原理, 借鉴传统工程的原则、方法, 创建软件以达到提高质量、降低成本的目的。其中, 计算机科学、数学用于构造模型与算法, 工程科学用于制造规范、评估成本及确定权衡, 管理科学用于计划、资源质量、成本等管理。

2软件工程方法

软件工程包含技术和管理两方面的内容, 是管理与技术的紧密结合。所谓管理就是通过计划、组织和控制等一系列活动, 合理地配置和使用各种资源, 以达到既定目标的过程。

通常把在软件生命周期全过程中使用的一整套技术的集合成为方法学, 也称为范型。所谓软件生命周期是指一个软件从定义、开发使用和维护, 直到最终被废弃所经历的一段漫长的时期。软件生命周期分为三个时期, 每个时期又进一步分成若干个阶段。软件生命周期模型如表1所示。

2. 1软件计划

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

2. 2软件需求分析

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

2. 3软件设计

根据需求说明建立软件系统的“结构”, 包括数据结构和模块结构。这部分又分为总体设计和详细设计两个阶段。其中: 总体设计, 它决定系统的模块结构, 给出模块的相互调用关系, 产生软件概要说明书; 详细设计, 它给出模块内部的细节及功能说明,产生详细设计说明书。

2. 4软件编码

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

2. 5软件测试

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

2. 6软件维护

经过测试的软件仍然可能有错, 另外, 用户的需求和系统的操作环境也可能发生变化, 因此, 交付运行的软件仍然需要继续排错、修改和扩充, 这就是软件的维护。软件生命周期各阶段的任务、应完成的工作如表2所示

3面向对象软件工程方法

3. 1面向对象软件工程方法要点

面向对象软件工程方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式, 使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程, 也就是使描述问题的问题空间( 也称为问题域) 与实现解法的空间( 也称为求解域) 在结构上尽可能一致, 因此, 这样的程序易于理解和维护。概括地说, 面向对象方法具有下述四个要点:

3. 1. 1把对象作为融合了数据及在数据上的操作行为的统一的软件构件。

面向对象程序是由对象组成的, 程序中任何元素都是对象, 复杂对象由比较简单的对象组合而成。

3. 1. 2把所有对象都划分成类。

每个类都定义了一组数据和一组操作, 类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性, 是对象的状态信息, 而施加于数据上的操作用于实现对象的动态行为。

3. 1. 3按照父类( 或称基类) 与子类( 或称派生类)的关系, 把若干个相关类组成一个层次结构的系统( 也称类等级) 。

在类等级中, 下层派生类自动拥有上层基类中定义的数据和操作, 这种现象称为继承。

3. 1. 4对象彼此之间仅能通过发送消息互相联系。

对象与传统数据有本质的区别, 它不是被动地等待外界对它施加操作, 相反, 它是进行处理的主体, 必须向它发消息, 请求它执行它的某个操作以处理它的数据, 而不是从外界直接对它的数据进行处理。也就是说, 对象的所有私有信息都被封装在该对象内,不能从外界直接访问, 这就是通常所说的封装性。

总之, 面向对象就是既使用对象又使用类和继承等机制, 且对象之间仅能通过传递消息实现彼此通信。而面向对象方法就是同时使用对象、类、继承和消息的方法。

3. 2面向对象建模

在解决问题之前必须首先理解所要解决的问题, 这是大家都知道的。对问题理解得越透彻, 就越容易解决它。当我们完全、彻底地理解了一个问题的时候, 通常就已经解决了这个问题。

相关文档
最新文档