一.软件的开发概述
软件设计的原则:
为了提高软件的开发效率,降低软件开发成本,一个优良的软件系统应该具有以下特点:
1.可重用性
遵循DRY原则,减少软件中的重复代码;
2.可扩展性
当软件需要升级增加新的功能,能够在现有的系统架构上方便的创建新的模块,而不需要改变软件的现有结构,也不会影响已经存在的模块;
3.可维护性
当用户需求发生变化时,只需要修改局部模块中少量的代码即可;
如何让软件系统达到上述的特点,我们对模块的要求:
1).结构稳定性:
在软件设计阶段,把一个模块划分为更小的模块时,设计合理,是系统结构健壮,以便适应用户的需求变化;
2).可扩展性:
当软件必须增加新的功能时,可在现有的模块基础上创建新的模块,该模块继承了原有模块的一个特性,并且还具有一些新的特性,从而实现软件的可重用性和可扩展性;
3).可组合性:
若干模块经过组合,形成大的系统,模块的可组合性提高软件的可重用性和可维护性,并且能简化软件开发过程;
4).高内聚性:
内聚,强调一个模块内的功能联系,每个模块只完成特定的功能,不同模块之间不会有功能重叠,高内聚性可以提高软件的可重用性和和维护性;
5).低耦合性:
低耦合,强调的是多个模块之间的关系,模块之间相互独立,修改某一个模块,不会影响到其他的模块,低耦合性提高了软件的可维护性;
二.软件的开发方式
1.面向过程
一种较早的编程思想,顾名思义该思想就是站在过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先做什么,后做什么;而每个功能我们都使用函数(类似于方法)把这些步骤一步一步实现,使用的时候依次调用函数就可以了;
最小的程序单元是函数,每个函数负责完成某一个功能,用以接受输入数据函数对输入的数据进行处理,然后输出结果数据;
整个软件系统由一个一个的函数组成,其中作为程序的入口的函数称之为主函数,主函数依次调用其他的函数,普通函数之间可以相互调用,从而实现整个系统功能;
面向过程的缺陷:
面向过程的设计, 是采用自上而下的设计方式,再设计阶段就需要考虑每一个模块应该分解成那些子模块,每一个子模块又细分为更小的子模块,如此类推,直到将模块细化为一个个的函数;
存在的问题:
- 1.设计不够直观与人类的思维习惯不一致;
- 2.系统软件适应性差,可扩展性差,维护性低;
面向过程最大的问题就是在于随着系统的膨胀,面