首页 > 编程知识 正文

河北软件职业技术学院软件开发与设计,软件开发与设计方向

时间:2023-05-03 16:58:49 阅读:252022 作者:4963

本人经常对模块化编程、面向对象编程,以及他们与软件设计的关系有点模糊,且不清楚他们之间的层次联系,今天翻阅了书本资料和百度百科资料进行了整理如下:

软件设计(或者说怎样构建一个(稍具规模的)软件):确定软件的总体架构(架构包括了整个关联系统,框架指的是单个系统的骨架),把整个软件系统划分成大大小小的多个子系统,设计每个子系统的具体结构。

软件开发(目前在有两种主流的开发方法):结构化开发和面向对象开发。

结构化开发是一种比较传统的开发方法,早期的高级编程语言,如Basic、C、Pascal等,都是支持结构化开发的编程语言。随着软件技术的逐步发展,为了进一步提高软件的可重用性、可扩展性和可维护性,面向对象的编程语言及面向对象的设计理论应运而生,Java、C#、Smalltalk等都是支持面向对象开发的语言。另外,C++、ES6是既支持结构化开发,又支持面向对象开发。 其实,面向对象是一种设计思想,是以对象为核心。比如,面向对象语言是一类以对象作为基本程序结构单位的程序设计语言。虽然C语言原本是面向过程的语言,但我们还是可以利用 C 语言本身已有的特性来实现面向对象的一些基本特征,比如封装、继承、多态。

结构化开发(SASD,1978年提出):也称面向功能的软件开发方法。它首先用结构化分析(Structure Analysis,SA)对软件需求进行分析,然后用结构化设计(Structure Design,SD)方法进行总体设计,最后进行结构化编程(Structure Programming,SP)。
结构化设计:自顶向下设计,首先考虑整个软件系统的功能,然后按照模块划分的一些基本原则(如内聚性和松耦合)等,对功能进行分解,把整个软件系统划分为多个模块,每个模块实现特定的功能。
结构化编程:程序的主体是方法,方法是最小的功能模块,每个方法都是具有输入输出的子系统,方法的输入数据来于方法参数、全局变量和常量。

缺点:结构化设计的局限性在于不能灵活的适应用户不断变化的需求。当用户需求发生变化,比如修改现有功能实现方式或追加新的功能时,就需要自顶向下的修改模块的结构,有时候甚至整个软件系统的设计被完全推翻。

面向对象开发: 把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
面向对象的分析与设计:致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。
a) 自底向上的抽象:把问题领域的事物抽象具有特定属性和行为的对象–》抽象出类–》抽象出父类。
b) 自定向下的分解:系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。