软件工程之面向对象技术

软件工程 同时被 2 个专栏收录
11 篇文章 1 订阅
10 篇文章 3 订阅

前言:

        前面的关于软件工程的系列博客讲述的是传统的软件工程,本文讲述一下现在现代软件工程。软件并不是纯物化的东西,其中包含着人的因素,于是就有甚多变动的东西,不可能像理想的物质生产过程一样,基于物理学的原理来做,早期的软件开发仅考虑人的因素,传统的软件工程强调物性的规律,传统软件工程以模块为研究单位。而现代软件工程强调的是人和物的关系,在不同层次的不断循环发展中的关系现代软件工程为类为研究单位。面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。

面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的“部件”是类。在面向对象生存期的各个阶段对各个类的信息进行细化,类成了分析、设计和实现的基本单元。

本章概要:

       本章主要从基本概念、面向对象的的开发过程、OOA与模型化、OOD、程序的实现预测这几个方面来对面向对象技术进行分析。

                                   

基本概念:

        什么是面向对象?Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。我们认为如果一个软件系统是使用这样4个概念设计和实现的。则我们认为这个软件系统是面向对象的。

        对象是面向对象开发模式的基本成分,每隔对象可用它本身的一组属性和它可以执行的一组操作来定义。而消息指的是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明,类是一组具有相同数据结构和相同操作的对象的集合,是对象抽象化的结果。继承是使用已存在的定义作为基础,建立新定义的技术。新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。应用生存期如下图所示。

面向对象开发过程:



                       

                             

        在应用生存期中最主要的是论域分析和应用分析。相当于传统软件工程的需求分析,最主要的是确定什么是问题域。那么问题域又是如何定义的呢?问题域指的是未开发系统的应用领域。也就是在现实世界中由这个系统进行处理的业务分析。论域分析关键是找出开发问题的模型,应用分析则是根据特定应用的需求进行论域分析。

面向对象的分析方法(OOA):

       对象模型化技术OMT:对象模型化技术是非常重要的一个技术,它把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。如下图所示。这个模型化的过程是一个迭代的过程。对象模型定义“对谁做”,功能模型定义“何时做”,动态模型定义“做什么”。

                      

       对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。在OMT中,类和类之间的关系叫做关联。对象模型通俗的讲就是一句话,如何把系统中的对象找到。

       动态模型着重于系统的控制逻辑,它包含两个图,一是状态图,一是事件追踪图。动态模型是由多个状态图组成。各个状态图并发地执行,并且可以独立的改变状态。事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”,有点类似于电影的一个小分镜头。状态图是描述一个对象的个体行为,而事件追踪图则给出多个对象所表现出来的集体行为。

       功能模型由多个数据流图组成,往往形成一个层次结构。在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。

        OOA有两个任务:一个是确定系统对象,另一个是对象之间相互协同关系。构造OOA和评审OOA概念模型的顺序和由五个层次组成。这五个层次是:类与对象、属性、服务、结构和主题。这五个层次的工作都为系统的规格说明增加了一个组成部分。采用OOA主要有两个原则,一个是抽象,一个是封装。

                       

面向对象设计(OOD):

       面向对象设计解决的是“类与相互通知对象之间的组织关系”面向对象设计描述的是软件设计,因此它使独立于变成语言的。当然,面向对象的设计仍要通过通过面向对象语言来表达。如VB.NET、C++等。

                       

面向对象的实现与测试:

       这个与传统的面向过程的测试方法相类似:

                   

总结:

       面向对象技术是目前目前流行的系统设计开发技术,主要包括对象对象分析和面向对象设计。面向对象程序设计的提出,主要为了解决结构化设计方法所不能解决的代码重用的问题。因此面向对象技术有四个基本特征:抽象、继承、封装、多态性。

                      





  • 1
    点赞
  • 27
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值