本文介绍了系统分析设计的两种方法:结构化分析与设计和面向对象的分析与设计。

结构化分析与设计

  结构化程序设计的概念最早由E. W. Dijkstra提出,其理由是GOTO语句对程序的可结构化程序设计的概念最早由E. W. Dijkstra提出,其理由是GOTO语句对程序的可读性、可测试性和可维护性带来极大的危害,应该用更可维护的控制结构替代它。随后,Bohm和Jacopini证明了仅用“顺序”、“分支”和“循环”三种基本的控制构件即能构造任何单入口单出口程序,这个结论奠定了结构程序设计的理论基础。
  何谓结构程序设计,目前尚无定论,较流行的定义为:结构程序设计是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。
自顶向下逐步求精的方法是人类解决复杂问题时常用的一种方法,采用这种先整体后局部,先抽象后具体的步骤开发的软件一般具有较清晰的层次。此外,由于仅使用单入口单出口的控制构件,使程序有良好的结构特征,这些都能大大降低程序的复杂性,增强程序的可读性、可维护性和可验证性,从而提高软件的生产率。
  另一方面,采用结构程序设计的技术可能会多占用一些时间和空间资源,这也是那些反对从高级语言中排除GOTO语句者的主要依据。实际上,随着硬件技术的飞速发展,因结构程序设计所增加的这点耗费对大多数应用来说已不再是重要的因素。
  结构程序设计的思想应该在软件设计中体现出来,但这并不排除为效率或其他原因对结构程序设计做一点修正。随着面向对象、软件重用等新的软件开发方法和技术的发展,更现实、更有效的开发途径可能是自顶向下和自底向上两种方法有机的结合。

面向对象的分析设计

面向对象的分析模型主要由顶层架构图用例与用例图领域概念模型构成

设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图

为完成这一转换过程,设计人员必须处理以下任务:

  1. 针对分析模型中的用例,设计实现方案。实现方案用UML交互图表示。
  2. 设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。例如,数据的持久存储服务、安全控制服务和远程访问服务等。在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。

  设计用户界面。针对分析模型中的领域概念模型以及引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对已经形成的类图进行各种微调,最终形成足以构成面向对象程序设计的基础和依据的详尽类图。面向对象的软件设计过程如图1所示。

面向对象的软件设计过程

图1. 面向对象的软件设计过程

参考文献

  • 杨春晖.《系统架构设计师教程》. 清华大学出版社, 2012.

相关文章

Q.E.D.