初学软工——面向对象的软件设计

来源:互联网 发布:协作机器人 知乎 编辑:程序博客网 时间:2024/06/06 00:59

        面向对象的设计一直是我们现在所接触的(VB不完全是),也是听说的遍数最多的设计程序方法。其中的基础,我感觉还是模块的设计和具体软件流程的设计,但是在这期间确有有很多小部分在其中,同样是不可以忽视的,例如数据/文件的设计等,下面是我的导图:


在UML视频里还讲了用例设计分析,用户界面设计分析等,在此只说软工视频里的面向对象设计。

(一)、模块设计(核心)

   (1)、 基本属性:功能、逻辑、状态

        基本来讲为功能是描述了模块实现了什么功能,逻辑描述了模块内部应该怎么做,而状态则描述了模块的使用环境。

   (2)、模块的耦合,内聚

       作为模块而言,软件工程的要求为高内聚低耦合,旨在降低后期维护的难度,增加软件各个模块之间的配合简易度,使之成为专用的东西。

        1)、耦合

              模块间的耦合通常有非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合7种耦合方式,他们的耦合性如图所示:

         从软工的角度来讲有:尽量用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合

        耦合之间的区别其实质上在于访问方法和传送的数据不同,而限制耦合性大小的因素主要是关联的大小,也就是数据的重要性和访问是否需要调用很多的东西。

       2)、内聚

         模块的内聚有功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、巧合内聚这7个内聚方式,具体内聚性大小如图所示:

        所以我们要尽可能的使用功能内聚,不使用巧合内聚,加强模块的独立性。

        内聚之间的区别主要是功能涵盖的区别,访问文件/数据的不同,使用的接口不同,和在数据结构的分布不同这几个特点,主要区分他们就可以分清楚是哪个内聚类型了。

(二)、结构化设计方法

         该设计方法是在模块设计的基础上对系统功能进行逐步的分析和构建数据流向,它主要基于数据流图和业务流图,进行设计实现模块间的高扇入低扇出,应该明确模块的功能及作用范围。

(三)、数据/文件设计

         是为了具体的过程设计大好基础,实现了数据是明确的,可循的,文件的结构也是要确定下来的,文件中存储的数据也是要确定的。

(四)、过程设计

          该阶段主要是设计具体的功能实现的算法,实现特定的功能,主要的辅助工具是各种图表和PDL设计语言,最重要的是可以明确模块的接口类型和使用地方以及作用范围。

(五)、编写概要设计文档

           把上述设计的流程和可能出现的错误表述出来,指出程序所需要的基本配置和文件。


面向对象的软件设计主要是把软件分解成为一个个功能对象,然后实现功能之间的联系和数据访问,最后形成软件的初步形态,这是软件设计的初步。

       


0 0
原创粉丝点击