系统分析与设计的三个发展阶段

系统分析与设计的三个发展阶段


1. 面像数据驱动分析与设计

系统分析与设计的第一阶段是面向数据驱动分析与设计,这一阶段的特征就是围绕数据库编程,应用系统是典型的两层架构,分为展示层和数据库层。
在这里插入图片描述

这种面向数据驱动分析与设计的方法导致了过程化的编程思维。数据库结构由DBA设计后交由程序员编写 SQL 语句,而 SQL 语句执行是有先后顺序的,所以面像数据驱动分析与设计,容易形成面像过程的思维方式。

面像过程(procedure Oriented)是一种思维方式,在面对问题时,我们关注的是解决该问题的过程。例如经典的问题:如何把大象放入冰箱:
第一步:打开冰箱
第二步:装入大象
第三步:关上冰箱

优点 VS 缺点:

  • 面向过程可以更直接、更有效的解决问题,但是面对更复杂的问题时,解决问题的过程也会变得费城复杂和难以理解。
  • 不能迅速、有效、全面地认识和反应需求,是一种扭曲的分析方法。
  • 系统的性能很难提升,容易导致软件运行时负载集中在数据库端,使系统编程集中式和高风险的大型单体模式,丧失分布式集群处理能力。
  • 面向对象的编程语言和关系型数据库本身是矛盾的。因为关系型数据库分析与设计本身是面向过程的。

2. 面向对象和服务分析与设计

面向对象和服务分析与设计的方法产生了具有划时代意义的三层架构:展示层、业务层、数据访问层。
在这里插入图片描述

  • 此时出现独立进行分析与设计的两个阶段,系统分析与设计开始上升到一个更高的层次,拥有自己的一套科学且艺术的方法论,但也带来了一个致命的缺点:分析阶段和设计阶段不能很好的衔接,出现了难以逾越的鸿沟。因为分析人员负责从需求领域中收集基本概念,而设计人员负责指明一组能够在项目中适应编程工具构造的组件,这些组件必须能够在目标环境下有效执行,并且能够正确解决应用程序出现的问题。
  • 可以看到,分析阶段和设计阶段的目标并不一致,分析人员只关注需求分析,并不关注是否适合设计或者能否导出适合设计的分析结果;设计人员发现分析结果过于简单,无法进行编码实现。于是,分析阶段和设计阶段无法对接,导致整个项目无法顺里进行,以失败告终。

3.面像问题域分析与设计

问题域模型有一个流行的名字:领域模型,是对现实世界或领域中的对象的可视化表示,可分为概念模型、领域对象模型、分析对象模型

Eric Evans 在 2004 年发表了 Domian-Driven Design - Tackling Complexity in the Heart of SoftWare 的论文,主题便是领域驱动设计,还提出了领域模型的分层架构,将整个系统划分为基础设施层领域层应用层用户接口层

在这里插入图片描述

领域建模是一种艺术,融合了分析阶段和设计阶段,目的是使复杂的软件快速应付变化。

领域模型同时适用分析原型和程序设计,如果一个模型在实现时不具备可行性,就需要重新寻找新的模型,如果该模型没有忠实表达领域的关键概念,则也必须重新寻找新的模型。
所以,领域建模的过程就是把分析阶段和设计阶段变成了单个循环阶段,把分析与设计紧密联系起来,使领域建模专家不再只是关注需求概念收集,也关注程序代码的设计与实现。


参考图书:《程序员的三门课》

猜你喜欢

转载自blog.csdn.net/weixin_36908494/article/details/108494546