作业 2- 学习心得
个人总体感悟:
1、软件架构设计一定要基于业务场景
2、软件架构设计方案展现形式多样,但是要针对对象去沟通/汇报
3、软件架构设计方案从业务场景、业务逻辑、实施过程、物理部署等多个方面
4、软件架构设计应该自顶向下,逐步分解,目标是分解到能落实实施的层面
1、UML
UML的定位 是语言,重要的是表达你的思维
是用来沟通和交流的,也是用来思考的
各个公司可能有方言,UML图画的好不好不重要;
依赖和关联比较容易混淆关联是更强的依赖
组合起来的:生命周期是一致的;组合的生命周期更强些;
聚合:聚合一起形成一个新的生命周期;分开来后,还能继续使用;
组合拆开了不能单独实现功能
组合:人和器官,聚合:乐高积木
2、七种模型
用例建模:功能需求描述
【用例图】通常是动宾短语,描述什么样的角色在使用什么功能。
用例图的元素
(1)角色(小人):ACTOR,可以是人,也可以是一个系统;
(2)用例(椭圆):用例就是做什么,通常都是动宾短语
(3)外面的方框是边界框;
(4)用例之间的关系,有两种:使用和扩展;
用例可以使用另一个用例;
用例图描述:系统有哪些功能,供哪些人使用;
用例图可以有很多页;一个用例图,尽量维护在10-20个元素的规模;因此需要控制规模。
用于描述系统的功能需求,在宏观上给出模型的总体轮廓;
通过对典型用例的分析;使开发者能够有效的了解用户的需求;
/************************************************************/
对象和对象之间消息是同步的;
线程的运行是异步的;
/*************************************************************/
【时序图】的定位-非常重要
时序图什么时候使用?在各个阶段都能使用
具体如下:
(1)需求分析阶段;
待开发系统和现有系统的关系
(2)概要设计阶段;
服务器之间、组件之间如何交互
(3)详细设计阶段:
对象与对象之间
/*************************************/
【活动图】
UML没有流程图,所以通常采用活动图来代替流程图。
泳道是一种分组机制;
活动图 也可以在各个阶段使用;
最小可以在方法内部去使用;
/*************************************/
【状态图】
典型场景:订单状态;
在重要的场景下效果很好;
有状态变迁的模块,通常都是核心模块。
把产品经理状态变迁的文字图改成可指导代码的
/*************************************/
【合作图】 可以由时序图来自动生成;
这个图看不出前后关系;
大部分情况下,使用时序图,能使用尽量使用时序图;
/*************************************/
【组件图】
组件之间的关系
为什么要放到一个组件内,而不是两个组件?组件和功能模块的区分?
组件是物理上的,功能是逻辑上的。
组件分物理组件、逻辑组件:
一个组件是一个开发的粒度,通常是一个人来做的;
如果一个组件太大,可以进一步的细分;
组件的样例:
JAVA内一个JAR包;WIN 内一个DLL文件;
架构师可以通过组件来把控开发的进度;
通过组件图来控制;
组件也可以描述开发的过程,开发依赖关系;
/***************************************/
评论