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


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

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

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

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

优点 VS 缺点:

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

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

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

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

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

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

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

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

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


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

系统分析与设计的三个发展阶段相关推荐

  1. 系统分析与设计结对项目———Wordcount

    系统分析与设计结对项目---Wordcount 合作者:201631062513.201631062511 本次作业要求链接地址:https://edu.cnblogs.com/campus/xnsy ...

  2. 详细介绍软件架构设计的三个维度

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中 ...

  3. 软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧!

    架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会.这篇文章主要介绍面向对象OO.面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用. 架构设计有 ...

  4. 软件架构设计_软件架构设计的三个维度,软件架构师需要知道的点,了解一下吧...

    架构设计是一个非常大的话题,不管写几篇文章,接触到的始终只是冰山一角,更多的是实践中去体会.这篇文章主要介绍面向对象OO.面向方面AOP和面向服务SOA这三个要素在架构设计中的位置与作用. 架构设计有 ...

  5. 系统分析与设计 复习

    文章目录 系统分析与设计 复习 第 1 章 系统分析与设计概述 系统特性 DevOps 第 2 章 系统规划 **系统规划步骤** 规划模型 诺兰模型 **CMM 模型** 系统规划方法 战略集合转换 ...

  6. 信息系统分析与设计 机票预定管理系统

    系统规划 1.1系统开发背景 随着人均收入水平的提高,人们出行的方式也变得多种多样,更多的人会选择节约时间的飞机出行,因此航班数和飞机数量也就随之增加.为了增强用户的购票体验,需要一种如本实验所做的机 ...

  7. 信息系统分析与设计-信息、管理与信息系统

    信息系统分析与设计-信息.管理与信息系统 1.信息与信息系统 1.1 信息的概念 1.2 信息系统的定义 1.3 信息系统的基本功能 1.4 小结 2.信息系统结构 2.1 信息系统的概念结构 2.2 ...

  8. 【亿可控】第一天系统分析与设计

    第1章 亿可控系统分析与设计 学习目标 了解物联网应用领域及发展现状 能够说出亿可控的核心功能 能够画出亿可控的系统架构图 能够完成亿可控环境的准备并了解亿可控的功能结构 完成设备管理相关功能的开发 ...

  9. java毕业设计员工绩效考核系统分析与设计Mybatis+系统+数据库+调试部署

    java毕业设计员工绩效考核系统分析与设计Mybatis+系统+数据库+调试部署 java毕业设计员工绩效考核系统分析与设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 ...

  10. [架构之路-177]-《软考-系统分析师》-17-嵌入式系统分析与设计 -2- 系统分析与设计、低功耗设计

    目录 1 7 . 4 嵌 入 式 系 统 开 发 17.4.1 开发平台 1 . 交叉开发环境 2 . 交叉编译环境 17. 2 开发流程 1. 过程模型 2 . 分析与设计方法 17.4.3 软硬件 ...

最新文章

  1. 【LeetCode】455. 分发饼干(图解)
  2. 平板电脑安装软件_概述嵌入式工业平板电脑的安装方法和注意事项!
  3. CodeForces - 451A - Game With Sticks(博弈论)
  4. java 二叉树迭代器_C,为二叉树实现自定义迭代器(长)
  5. Linux创建名为vgtest的分区,第五周作业,
  6. html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...
  7. Win11高效日历推荐
  8. GitHub上有不错的 C 开源项目?
  9. TPU原理技术与xPU
  10. 更新pip下载jupyter lab
  11. Mini Cheetah 代码分析(六)机身控制器MPC控制器
  12. 全球IP地址分配对应表
  13. win7计算机无法连接投影仪,Win7电脑如何连接投影仪?投影仪连接电脑用什么线连接?...
  14. 位图的实战场景及源码分析
  15. python解码base64_Python Base64转码解码
  16. 【Linux】安装网易云全攻略
  17. LEFT JOIN左连接示例
  18. Android Studio部分汉化中文包
  19. Vue 源码解读(11)—— render helper
  20. EAUML日拱一卒-微信小程序实战:位置闹铃 (16)-单元测试是个技术活

热门文章

  1. 产品能力提升|《金字塔原理》
  2. php与sap系统,sap系统是什么系统
  3. 计算机系统感染了病毒怎么办,笔者教你电脑感染了病毒怎么解决
  4. 机器学习基石 5.4 Break Point
  5. android模拟器电视,AndroidTV 模拟器的搭建
  6. JAVA_JSP考勤带请假的管理系统
  7. 3d max morpher教程
  8. Java 基础入门训练
  9. 美通企业周刊 | 世界最长海底公路隧道在青海开工;乐高华南首家品牌旗舰店开业;洲际加速布局粤港澳大湾区...
  10. STM32或GD32驱动TM1637