软件设计开发方法主要包括以下两种:
1)结构化的软件开发
它是由E.Yourdon和L.L.Constantine,1978年提出;
使用结构化分析(Structure Analysis,SA)对软件进行需求分析,
然后用结构化设计(Structure Design,SD)方法进行总体设计,
最后进行结构化编程(Structure Programming,SP)
优点:它使得开发步骤明确,SA,SD和SP相辅相成,一气呵成。
缺点:它属于自顶向下的设计,在设计阶段就不得不考虑入耳实现系统的功能,因为分解功能的过程其实就是实现功能的过程。
不能灵活地适应用户不断变化的需求。
2)面向对象软件开发
面向对象开发方法把软件系统开成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
对象模型:
A)自底向上的抽象。
1)把问题领域中的事物抽象为具有特定属性和行为的对象。
2)把具有相同属性和行为的对象抽象为类。
3)若多个类之间存在一些共性,把这些共性抽象到父类中。
B)自顶向下的分解。
优点:
A)把软件看成是各种对象的集合,更接近人类的自然思维方式。
B)软件需求的变动往往是功能的变动,而功能的执行者-对象一般不会有大的变化。使得结构比较稳定。
C)对象包括属性和行为,对象把数据及方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高可维护性。
D)支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。
缺点:?