欢迎来到天天文库
浏览记录
ID:43720422
大小:619.26 KB
页数:82页
时间:2019-10-13
《[精品]敏捷思维-架构设计中的方法学》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、敏捷思维一架构设计中的方法学目录1.从方法论看架构设计32.架构设计的敏捷视图83.源白需求144.团队设计195.简单设计256.迭代设计307.组合使用模式378.架构愿景429.分层(上)4610.分层(下)5411.精化和合并6112.Refactoring6713.稳定化7214.代码验证7615.进一步阅读811.从方法论看架构设计方法论对软件开发而言意味着什么?我们如何看待软件开发中的方法论?方法论能够成为软件开发的救命稻草吗?在读过此文后,这些疑惑就会得到解答。在第一篇文章屮,我们来了解标题屮
2、的一些词的含义。•方法学是什么?•敏捷是什么?•为什么讨论架构?方法论方法论的英文为Methodology,词典中的解释为〃Ascriesofrelatedmethodsortechniques"我们可以把它定义为软件开发(针对软件开发)的一整套方法、过程、规则、实践、技术。关于方法论的出现的问题,我很赞同AlistairCockburn的一句话,〃方法论源丁恐惧。〃出于对项目的超期、成木失控等等因索的恐惧,项目经理们从以前的经验出发,制定出了一些控制、监测项目的方法、技巧。这就是方法论产生的原因。在Ag订e
3、SoftwareDevelopment—书中,作者提到了方法论的十三个要素,基本能够函盖方法论的各个方面:•角色(Roles)•个性(Personality)•技能(Skills)•团队(Teams)•技术(Techniques)•活动(Activities)•过程(Process)•丄件(Workproducts)•里程碑(Milestones)•标准(Standards)•质量(Quality)•工具(Tools)•团队价值(TeamValues)它们之间的关系可以用一幅图来表示:图1.方法论的十三个要素
4、MilestonesQislityActivitiesjTeamsBungrvnmimpKevircssiDntest55、cpcrSIT.VlicrosoftHrojsctMeProductsMKrosoflPrjj^^iro^^increnieiIJMI./wrrfi、StaiiviardsTeamValuesRole6、sfoclsJADikelialioi:yaprogiimmngPersonalitySkills很多的方法论,都涉及了上而列举的十三要素中的部分要素,因此,我们可以把方法论看作是一个抽象的、无穷的超集,而现实屮的方法论都是指超集的一个有限的了集而已。它们Z间的关系就好像有理数和1至IJ100Z间的整数的关系一样。不论是XP,还是ui设计经验之类,都属于方法论的一个子集,只是这两个子集之间有大小的差别而已。我们还应该看到,讨论一个完备的方法论是没有意义的,因此这种方法论铁定不存在,就好像你视图穷举岀所有的有理7、数一样荒唐。因此,我们关于一个通用的方法论的说法也是无意义的。好的方法论,比如说XP、水晶系列,它们都有一个适合的范围,因为它们了解一点,口己并不是一个无所不能的方法论。在现实中,我们其实不断的在接触方法论。比如说,为了控制项目的进度,项目经理要求所有的开发人员每周递交一份详细的进度报告,这就是一种方法、一种技巧。如果把开发过程屮的这些技巧系统的组织起来,就能够成为一种方法论。你可能会说,那一种方法论的产生也太容易了吧。不,这样产生的方法论并没有太大的实用价值,没有实用价值的方法论根木就没有存在的必要。因此,8、一个成功的方法论是要能够为多个的项目所接受,并且能够成功实现软件的交付的方法论。我和我的同事在实践中做了一些试验,希望能够把一些好的方法论应用于开发团队。试验的结杲很无奈,方法论实施的效呆并不理想,一开始我们认为是方法本身的原因,到后来,我们发现事情并不是这么简单。在试验的过程中,开发人员一致认同方法论的优势所在,但是在实施过程屮,鲜有坚持的下来的。在AgileSoftwareDevelopment中,我发现作者遇到了和我们一样的问题。AlistairCockburn在和大量的项目团队的访谈之后,写成了Agi9、leSoftwareDevelopment—书。在访谈之前,他笃定自己将会发现高度精确的过程控制是成功的关键所在,结果他发现事实并非如此,他把他的发现归结为7条定律。而我在实际中的发现也包含在这七条定律中,总结起來就只冇两点:沟通和反馈。只要能够保证良好的沟通和即时的反馈,那么开发团队即使并没有采用先进的方法论,一样可以成功。相反,那些〃高质量〃的团队却往往由于缺乏这两个因索而导致失败(我们这里指的
5、cpcrSIT.VlicrosoftHrojsctMeProductsMKrosoflPrjj^^iro^^increnieiIJMI./wrrfi、StaiiviardsTeamValuesRole
6、sfoclsJADikelialioi:yaprogiimmngPersonalitySkills很多的方法论,都涉及了上而列举的十三要素中的部分要素,因此,我们可以把方法论看作是一个抽象的、无穷的超集,而现实屮的方法论都是指超集的一个有限的了集而已。它们Z间的关系就好像有理数和1至IJ100Z间的整数的关系一样。不论是XP,还是ui设计经验之类,都属于方法论的一个子集,只是这两个子集之间有大小的差别而已。我们还应该看到,讨论一个完备的方法论是没有意义的,因此这种方法论铁定不存在,就好像你视图穷举岀所有的有理
7、数一样荒唐。因此,我们关于一个通用的方法论的说法也是无意义的。好的方法论,比如说XP、水晶系列,它们都有一个适合的范围,因为它们了解一点,口己并不是一个无所不能的方法论。在现实中,我们其实不断的在接触方法论。比如说,为了控制项目的进度,项目经理要求所有的开发人员每周递交一份详细的进度报告,这就是一种方法、一种技巧。如果把开发过程屮的这些技巧系统的组织起来,就能够成为一种方法论。你可能会说,那一种方法论的产生也太容易了吧。不,这样产生的方法论并没有太大的实用价值,没有实用价值的方法论根木就没有存在的必要。因此,
8、一个成功的方法论是要能够为多个的项目所接受,并且能够成功实现软件的交付的方法论。我和我的同事在实践中做了一些试验,希望能够把一些好的方法论应用于开发团队。试验的结杲很无奈,方法论实施的效呆并不理想,一开始我们认为是方法本身的原因,到后来,我们发现事情并不是这么简单。在试验的过程中,开发人员一致认同方法论的优势所在,但是在实施过程屮,鲜有坚持的下来的。在AgileSoftwareDevelopment中,我发现作者遇到了和我们一样的问题。AlistairCockburn在和大量的项目团队的访谈之后,写成了Agi
9、leSoftwareDevelopment—书。在访谈之前,他笃定自己将会发现高度精确的过程控制是成功的关键所在,结果他发现事实并非如此,他把他的发现归结为7条定律。而我在实际中的发现也包含在这七条定律中,总结起來就只冇两点:沟通和反馈。只要能够保证良好的沟通和即时的反馈,那么开发团队即使并没有采用先进的方法论,一样可以成功。相反,那些〃高质量〃的团队却往往由于缺乏这两个因索而导致失败(我们这里指的
此文档下载收益归作者所有