架构设计实践总结【原创】

  1. 先做需求,把需求功能列表,挑出最影响架构的点作为关键需求,在本期架构中完成实现。完成最关键的功能,这样不会面面俱到浪费过多前面的时间,但是本期排除的功能又不是关键需求,就算调整,也不影响架构。只有关键需求明确,才能决定架构要HOLD住那些问题,明确需求范围。与全员评审。
  2. 明确非功能性需求,仍然重点在关键需求。其他的没有时间就不做。非功能性需求一定要有模型,场景的描述。架构设计过程中,实时考虑是否满足非功能性需求。只有非功能确定,后期的架构才能决定用什么方式达到关键需求的目的。很关键的一点是,要让全员参与讨论,这样既让全员了解了需求,也让全员都贡献了智慧,避免架构师的闭门造车。
  3. 串流程,把需求的关键流程都画出来。从结果上日后也会进行调整,但是尽量详细,细节尽量全想到,用最简单的方法实现,如果流程串的很复杂,说明有问题,需要重画。不然以后实现的时候,浪费时间,且复杂易有问题。仍然很关键的是,要让全员参与讨论。
  4. 要开始写概要设计了,概要设计能用图,不用字。除了5视图要写,还要写关键技术及解决方法,落实到具体功能实现上。编码规范要说明(JAVA、SONAR、运行日志等)。仍然很关键的是,要让全员参与讨论。

 

总结至此,希望对各位下一次架构设计能起到降低学习曲线,提高生产率的作用。

 

以下是各视图小总结:

  1. 接口视图:能体现出有什么系统、体现什么是外部、什么是内部,体现几类用户,体现外部网元都有哪些,体现每个系统和网元间都有哪些接口关系,方向是什么,协议是什么,承载的业务是什么(用列表附录)。
  2. 逻辑视图:体现内部有多少系统,外部有多少系统,系统和系统间有什么方向的关系,内部系统有哪些功能点,可用大包套小包的方式逐层描述。
  3. 部署视图:有多少种系统,每种系统用什么方式部署,几台服务器,每个系统之间都有什么消息交互,包括运行系统、接口系统、数据库系统、磁盘阵列、数据存放系统、日志系统等。
  4. 数据视图:数据放在哪里,不仅是DB,数据与谁有关系,流转关系是什么,流转的业务是什么(用列表附录),什么形式存放数据,(文件/mc/Q),操作日志记在哪里。哪些系统只是描述,不是本图重点,本图重点在于数据存放以及流转描述。要把本期要完成的数据库表设计出来。
  5. 实现视图:技术(视图层、实现层、持久层)、包(工程包的关系和工程目录)、pom文件(Jar依赖关系、生命周期)。
  6. 进程视图:描述网元和用户有哪些,谁发起,谁接收,谁工作,用生命线描述该系统的起始和结束。描述重点流程。
  7. 状态迁移图:描述出起始是哪里,中间状态是什么,最终状态是什么,状态流转是通过什么操作,方向是什么,要考虑异常。操作失败了,如何处理或提醒。
  8. 用例视图:描述角色,描述用例包,由包向内描述用例点。

 

posted @ 2018-10-28 18:07  小程序猿86  阅读(124)  评论(0编辑  收藏  举报