最近要分析好几个系统。简单总结一个学习和分析系统的方法,供大家参考。

如何去了解一个庞大的现有软件系统:

  • 先从业务角度出发,了解产品、客户、功能、价值。
  • 业务架构:了解这个产品中都有哪些业务组件,以及相互之间的关系如何。了解这个产品还与外部哪些业务应用有何种关系。
  • 逻辑架构:了解整个系统划分为哪些子系统或模板。这些子系统间是什么关系。
  • 物理/部署架构:了解整个系统(含子系统),分为哪些物理的部署组件,以及这些组件如何部署在各物理机上,以及它们的调用关系是怎样的。
  • 开发架构:从开发人员视角,了解各子系统的开发架构,如分层逻辑、划分模块、调用关系等。
  • 领域模型:在深入了解业务子系统或业务模块时,重点需要对内部的业务进行领域建模,绘制出相应的领域模型图。
  • 数据架构:了解子系统内部的领域模型是以何种方式来存储的。
  • 关键模块设计:先了解此模块的使用方法、对外的接口,然后再了解此模块的内部结构。一边看代码的同时,一边绘制相应的包图、类图、序列图。

整个分析过程,我觉得至少必备的工具:思维导图、UML。

转载于:https://www.cnblogs.com/zgynhqf/p/10253900.html

如何分析一个复杂系统相关推荐

  1. 用系统架构中的系统思维分析一个咖啡厅系统

    此文是对<系统架构>中第2章系统思维的笔记,前前后后看了很多遍,为了达到活学活用,尝试用系统思维分析一个生动的现实生活中的案例,这样有助于更深刻的理解及现实的建模能力.现分享给大家一起讨论 ...

  2. 如何对一个老系统进行梳理分析

    我们大部分时候面临的都是老系统改造,在老的系统上进行代码的开发,需求的实现.当我们觉得老系统实在"太老"的时候,就想着应该怎么分析老系统,以便支持我们去重构.本文从老系统分析的方向 ...

  3. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的监护系统,试写出问题定义并且分析开发这个系统的可行性

    目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机.某医院打算开发一个以计算机为中心的监护系统,试写出问题定义,并且分析开发这个系统的可行 ...

  4. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危害病人的病情变化,还可能会延误抢救时机.某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统

    目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危害病人的病情变化,还可能会延误抢救时机.某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的 ...

  5. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时间,某医院打算开发一个以计算机为中心患者监护系统是写出问题定义并且分析开发这个系统的可行性

    目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时间.某医院打算开发一个以计算机为中心患者监护系统,试写出问题定义,并且分析开发这个系统的可 ...

  6. 《Android深度探索(卷2):系统应用源代码分析与ROM定制》——第6章,第6.4节分析第一个Android系统应用:计算器...

    本节书摘来自异步社区<Android深度探索(卷2):系统应用源代码分析与ROM定制>一书中的第6章,第6.4节分析第一个Android系统应用:计算器,作者 李宁,更多章节内容可以访问云 ...

  7. Unity技能系统框架(三)分析一个具体被动技能

    这一篇分析一个具体的被动技能:蚁人的影矛 首先看下技能描述:"每个蚁人都是天生的掷手,投掷出长矛刺穿目标的身躯.普通攻击有几率对攻击范围内其他{0}名目标进行相同攻击.",只要是个 ...

  8. 设计一个秒杀系统-秒杀方案分析

    学习使用,老鸟飞过,欢迎交流 秒杀系统应该考虑哪些因素 高可用:秒杀系统最大的特点就是并发高,在极短的时间内, 瞬间用户量大.试想一下双11的时候可能会有几十万的用户去访问同一个商品详情页面秒杀同一个 ...

  9. 面试必备:一个秒杀系统的设计思考

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:阿哲 segmentfault.com/a/11900000 ...

最新文章

  1. 牛逼了!一周内咸鱼疯转 3.6w 次,最终被所有大厂封杀!
  2. 单手也能创奇迹!独臂博士单手敲代码获奖 30 余项:感恩所有的善意
  3. PostgreSQL中的大容量空间探索时间序列数据存储
  4. Spring – ${} is not working in @Value--转载
  5. Python概念:生成唯一性序号uuid
  6. 我怀疑全国最会吹牛的人,都在这8个公众号上了
  7. [css] 请说说颜色中#F00的每一位分别表示什么?为什么会有三位和六位的表示呢?
  8. 8次c语言上机作业答案,计算机二级C语言上机题库及答案2017
  9. imx6 android快速启动,freescale imx6 开机启动速度优化之Bootchart工具的使用问题
  10. C++:VS2019遇到C1083 无法打开包括文件: “opencv2/opencv.hpp”: No such file or directory
  11. 薅羊毛新思路!腾讯游戏:成年人借未成年人名义申诉退款频发
  12. mysql publishedtime_MySQL数据库中的Date,DateTime,TimeStamp和Time类型
  13. ie浏览器框架不显示_Python 爬虫(四):Selenium 框架介绍与使用
  14. unity替换鼠标图标
  15. 应用在AVR上的拼音输入法
  16. 请教FlashCs3导入图片时出现无法导入问题。
  17. BAT 面试题:25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次能比出前3名?前5名?
  18. 爬动漫网站数据_通过这三种动漫爱上数据科学和技术
  19. 科技爱好者周刊:第 90 期
  20. 微信小程序实现PDF预览功能——pdf.js(含源码解析)

热门文章

  1. Python基础(五)
  2. 连载17:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
  3. 用python写网络爬虫 -从零开始 4 用正则表达式 编写链接爬虫
  4. 【20160924】GOCVHelper MFC增强算法(2)
  5. 罗森伯格荣获2015年度中国数据中心优秀供应商与中国十大布线品牌两项大奖
  6. 关于CAS服务器磁盘占用的问题,锁定目录惹的祸
  7. Ubuntu文本编辑器适合linux平台的其它版本
  8. [转]Linux线程同步之条件变量
  9. 创维25TI9000工厂模式
  10. java socket 丢字节_Java:socket消息丢失了