分享
 
 
 

软件开发方法杂想

王朝other·作者佚名  2006-07-04
窄屏简体版  字體: |||超大  

作者:fasiondog

来源:http://blog.csdn.net/kongdong/

自年前写了《破冰》(http://blog.csdn.net/KongDong/archive/2006/01/19/584356.aspx)以来,很少人理解我所说的和我所困惑的是什么,只有自己寻找答案,当时主要的问题是:

1、基于“特性”设计的思路不可以完全抛弃,它不利于我们理解系统;

2、组件化需要实现技术上的突破,否则流程的改进没有方向和支撑,只有更多的困扰。而“过滤树”是破解组件化中大量if else的一种可能技术,当然出来性能问题需要实践才能解决。

事有凑巧,就在我还想着“过滤树”究竟如何应用的时候,看到了一本书,里面介绍了“组合过滤器”,深感兴趣,便买回研究了一把,才发现自己所困惑和所想的正是AOP思想的萌芽。这本书介绍的是AOP(Aspect-Oriented Programming)技术,过滤器则是AOP实现的一个重要分支。AOP本身是一种编程技术,它起源于破解代码中缠绕和分散情况的目的,但是它所引入的“维度、分离、合成、系统编织”等观念,对于存粹的系统分层思想是极大的进步,也破除了当前方法和过程在我眼前凝聚的迷雾。AOP的思想已经在角落里偷偷发展了近10年,其基本思想目前正是囤积欲发的时刻,已经形成了不少关于AOSD(面向方面的软件开发方法)。利用AOP中的“维度、分离与合成”的观点,去看待当前系统设计、软件开发、测试、组件、可靠性等等,以及他们的整合,会有柳暗花明的感觉,也是真正理解当前方法和过程中问题的关键。也许,AOP作为一种编程技术,并非是革命性的进步,但它所引入的概念和“分层”思想一样,体现着人们理解、看待系统的基本原理。

下面是近期学习和思考所得,由于时间的关系,寥寥数笔,无法成文尽述,后续有时间再梳理成文,暂先共享之:

1、架构是基础,它承载了所有的需求,其重要性毋庸置疑;

2、系统只有为需求的人创造价值才是有意义的,因此需要从不同利用相关人的“关注点”去理解系统究竟可以做什么;

3、“关注点”有一个重要的特性——分离,这是理解系统的关键,也解释了以前基于特性设计的存在理由;

4、“关注点”的分离,应该贯穿需求、分析、设计与实现的全过程,这是理解系统价值以及如何运作发挥作用的唯一途径;

5、与“分离”相对应的概念是“合成”。分离和合成的概念可以这样理解:建筑师构造了基础的房屋结构,但建筑本身还包含其它许多方面,如电线系统、排给系统、电话线布线等等。现在假设建筑师将基础的结构画在了一张幻灯片上,然后复制这样一张幻灯片给电线布线设计师,电线布线设计师在复制的幻灯片上独立的完成了布线设计。同样,复制基础结构的蓝图给不同领域的设计人员们,最终我们将得到一系列的幻灯片。接着,放映第一张基础结构的幻灯片,然后将第二张叠加上去,接着是第三张,如此下去,知道最后一张幻灯片叠加到最顶端,现在,你看到了什么?

6、在需求、分析、设计阶段很容易做到“分离”与“合成”。目前支持UML2.0的建模工具使用XML来描述和保存模型,即使工具本身无法很好的支持分离和合成,我们也可以轻易的编写扩展工具来实现其支持。

7、开发的实现阶段是分离和合成的关键阶段,也是目前组件化的症结所在。

8、实现阶段的合成技术,如果不能解决,会产生所谓的代码“缠绕(tangle)和分散(scatter)”,意味着新增一个功能,需要涉及修改众多的代码和模块。

9、“合成”意味着能够容易的叠加不同的关注点(包含功能需求和非功能需求),其需要实现阶段的技术支持。虽然在我们当前的系统中,无法达到完美,但依然有很多技术可以借鉴。比如消息驱动,其本身具备一定的分离与合成特性。

10、关注点保持分离解释了“特性”设计存在的合理性,虽然并不一定完美。

11、保持关注点的全程分离也对系统模型的维护有较大的好处。当前基于项目形式的开发方式造成的最大的问题是文档无法检索和维护(因为当前公司基于项目的开发方式既不是模块分离,也不是关注点分离),而分离的思路给予了启迪。以前基于特性设计的最大优点,就是保持关注点的分离,它利于归档和检索,比如《XXX特性设计规格说明书》、《YYY特性说明书》。将每一个特性分离看成不同的部件(Part),那么所谓系统的描述,可以通过配置管理的概念,予以轻易的集成和检索,因为每一个都是独立的配置项,可以轻易的抽离并重新组装系统。另外一种基于系统结构即模块方式的文档开发,是从结构上保持了分离。分离是软件开发中文档编档的重要因素。

12、分离的概念比分解要广阔的多,也许分解可以算是分离的一个特例。

13、模块的分离也同样重要,只有系统文档的可理解性和架构的充分结合(可以理解为结构和关注点的分离)才是一个好的开发方法。

14、分层的概念(含模块化、信息隐藏等)、关注点分离与合成的概念的结合将是系统与软件开发方法中最终要的基础和方向。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有