1.目前在软件开发领域有两种主流的开发方式:结构化的软件开发方式和面向对象的软件开发方式。结构化的开发方式是一种比较传统的开发方式,早期的高级编程语言,如Basic、C、Fortran等,都是可以支持结构化软件开发的编程语言。随着软件系统的需求不断地更新,结构化软件开发方式在提高软件的可重用性、可扩展性和可维护性方面变得“无能为力”,因此面向对象的软件开发方式应运而生,Java语言就是一种纯面向对象的编程语言。
2.结构化的软件开发方法简介:
1978年E.Yourdon和L.L.Constan-tine提出了结构化的软件开发方法,后来又经过完善,逐步形成了现在的结构化开发方式。其最核心的方法就是SASD方法,即Structure Analysis Structure Design.
结构化开发方式采用的方法是将系统看做是一个由若干个子系统组成的整体,在考虑问题时,就需要从全局出发,考虑整个系统的功能,然后按照系统的功能进行设计。
下面使用一个案例,来帮助理解结构化设计的原理:
假如现在有一个需求为:设计一个程序,通过用户输入的图形信息,来画出相应的图形。
在结构化开发中,首先要考虑问题的目的是画出图形,因此此程序的功能就是画图形。
下图是程序分析图:
下面使用C语言编写这个程序
```c
#include <stdio.h>
/**定义常量*/
#define CIRCLE 1
#definr RECTANGLE 2
#define LINE 3
/**画圆模块*/
void drawCircle(){...} //省略具体执行过程
//画直线模块
void drawLine(){...}
//画矩形模块
void drawRectangle(){...}
//选形状模块
void selectShape(){
int shape;
scanf("%d",&shape);
switch(shape){
case CIRCLE:
drawShape();
break;
case RECTANGLE:
drawRectangel();
break;
case LINE:
drawLine();
break;
default:
printf("此图形不存在");
break;
}
}
//程序入口
void main(){
selectShape();
}
假如此时需求发生变化,还需要加入一个新的画图形的功能:画正方形,那么就需要更改源程序的多处:
(1)在整个系统中,新增一个常量:
#define SQUARE4;
(2)在整个系统范 围内增加一个画正方形的功能:
void drawSquare(){…}
(3)在选择图形模块增加以下逻辑:
case SQUARE:
drawSquare();
break;
由此可见,结构化开发方式限制了程序的可扩展性和可维护性,修改或增加一个需求,就得需要进行大幅度的改动,这样很麻烦。。。。。