2007年4月2日
摘要: 迭代是一种软件开发的生命周期模型,在设计中应用迭代设计,我们可以得到很多的好处。Context在软件生命周期中,我们如何对待架构设计的发展?Problem架构设计往往发生在细节需求尚未完成的时候进行的。因此,随着项目的进行,需求还可能细化,可能变更。原先的架构肯定会有不足或错误的地方。那么,我们应该如何对待原先的设计呢?我们在简单设计模式中简单提到了"Planned Design"和"Evolut... 阅读全文
posted @ 2007-04-02 18:47 念时 阅读(445) 评论(0) 推荐(0) 编辑
摘要: XP非常强调简单的设计原则:能够用数组实现的功能决不用链表。在其它Agile方法中,简单的原则也被反复的强调。在这一章,我们就对简单性做一个全面的了解。Context架构应该设计到什么程度? Problem软件的架构都是非常的复杂的,带有大量的文档和图表。开发人员花在理解架构本身上的时间甚至超出了实现架构的时间。在前面的文章中,我们提到了一些反对象牙塔式架构的一个原因,而其中的一个原因就是象牙塔式... 阅读全文
posted @ 2007-04-02 18:46 念时 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 团队设计是敏捷方法论中很重要的一项实践。我们这里说的团队,指的并不是复数的人。一群人就是一群人,并没有办法构成团队。要想成为团队,有很多的工作要做。 我们之所以考虑以团队为单位来考虑架构设计,是因为软件开发本身就不是一件个人的事情,架构设计更是如此。单个人的思维不免有考虑欠妥之处,单个人的学识也不可能覆盖所有的学科。而组织有效的团队却能够弥补这些缺憾。Context 谁来负责架构的设计? Prob... 阅读全文
posted @ 2007-04-02 18:45 念时 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 我们说,和重型方法偏重于计划、过程和中间产物不同,敏捷方法更加看重人和沟通。人和沟通永远是第一位的,而计划、过程和中间产物,那只是保证沟通、实现目标的手段。这并不是说计划、过程、中间产物不重要,只是不能够本末倒置注:我们把中间产物定义为为了实现跨边界的沟通而制定的文档、模型、代码。例如设计文档、数据模型等。参考RUP的Artifact。 评判软件成功的标准有很多,对于敏捷方法论来说,成功的标准首先... 阅读全文
posted @ 2007-04-02 18:44 念时 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 通过上一章的介绍,我们对敏捷和方法有了一个大致的了解,从这一章起,我们开始对软件开发过程中架构设计的研究。记住一点,我们并不是为了架构设计而研究架构设计,我们的目的在于敏捷方法学的应用。架构设计是一种权衡(trade-off)。一个问题总是有多种的解决方案。而我们要确定唯一的架构设计的解决方案,就意味着我们要在不同的矛盾体之间做出一个权衡。我们在设计的过程总是可以看到很多的矛盾体:开放和整合,一致... 阅读全文
posted @ 2007-04-02 18:41 念时 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 方法论对软件开发而言意味着什么?我们如何看待软件开发中的方法论?方法论能够成为软件开发的救命稻草吗?在读过此文后,这些疑惑就会得到解答。在第一篇文章中,我们来了解标题中的一些词的含义。 方法学是什么? 敏捷是什么? 为什么讨论架构?方法论方法论的英文为Methodology,词典中的解释为"A series of related methods or techniques"我们可以把它定义为软件开... 阅读全文
posted @ 2007-04-02 18:40 念时 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 1、XML的局限性 目前,许多Web网站的内容数据都存放在数据库或数据文件中。对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。 为了提高系统服务的灵... 阅读全文
posted @ 2007-04-02 18:38 念时 阅读(912) 评论(0) 推荐(0) 编辑
摘要: 一、XSL模板的使用 XSL在输出模板中描述输出格式,这些格式可以是各种字符串、标签符号、节点值或者是一些XSL语法结构,如条件判断、循环处理等。在许多应用场合中,输出模板中需要使用节点的取值,此时可以根据需要使用元素输出节点值,最直接的使用方式是,这样可以输出当前节点及其所有后继节点的取值。而如果仅仅是想输出指定节点的取值,可以利用select属性进行限定(select属性可以是任意合法的路... 阅读全文
posted @ 2007-04-02 18:37 念时 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 一、XML文档转换原理 数据格式转换的重要思想是要把XML文档视为一种树结构,转换的过程就是从源树生成结果树的过程。XSL样式单定义了源树和结果树中对应部分的转换规则,每条规则中包含了一个模板,并对应着一种模式。模板定义了转换的结果,而模式则规定了需要进行转换的元素或属性对象。 XML中引用XSL的语法格式如下: 如果在声明部分引用了多个XSL样式单,则只有第一个样式单会生效,其... 阅读全文
posted @ 2007-04-02 18:36 念时 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 一、显示XML XML文档本身只描述数据内容,它的显示功能由样式单来完成。利用样式单技术时,输出平台不局限于显示器,可以是打印机、绘图仪或者是多媒体播放器。使用独立的样式单文件制定显示格式的一大优势在于:对同一份数据文件可以制定不同的样式风格,应用在不同的场合,使数据能够更合理、更有针对性地表现出来,提高了数据的重用性。 目前,W3C正式推荐的样式单标准有两种: 一种是层叠样式单CSS(C... 阅读全文
posted @ 2007-04-02 18:34 念时 阅读(484) 评论(0) 推荐(0) 编辑
摘要: XML与HTML的比较 Internet提供了全球范围的网络互连与通信功能,Web技术的发展更是一日千里,其丰富的信息资源给人们的学习和生活带来了极大的便利。特别是应运而生的HTML(超文本置标语言),以简单易学、灵活通用的特性,使人们发布、检索、交流信息都变得非常简单,从而使Web成了最大的环球信息资源库。然而,电子商务、电子出版、远程教育等基于Web的新兴领域的全面兴起使得传统的Web资源... 阅读全文
posted @ 2007-04-02 18:33 念时 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 在上两篇文章中,我们介绍了软件体系结构的概念、现状及发展方向,读者可能会觉得"软件体系结构太抽象、太理论化,没有什么实际的东西"。然而,任何实践都必须接受理论的指导,如果抛弃理论基础,一味地追求实用,那也只能是囫囵吞枣。 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中,使用同一体系结构。基于这个目的,学者们开始研究和... 阅读全文
posted @ 2007-04-02 18:31 念时 阅读(3791) 评论(0) 推荐(0) 编辑
摘要: 一直以来,信息技术(IT)领域存在着一大隐忧,不论是所谓的企业内(In house)或是软件公司(Software house)的IT团队,大多数都缺乏架构设计师(Architect)的编制。架构规划的工作大都由项目经理、系统分析师与程序设计师兼任或分摊了,导致普遍轻忽软件架构专业人才的培养与任用。再不然就是常常将架构设计师(architect)职位作为留住项尖开发人员所用的升级奖励。其实架构... 阅读全文
posted @ 2007-04-02 18:29 念时 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 1.软件复用的特点和现状 软件复用就是将已有的软件成分用于构造新的软件系统。可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。如果是在一个系统中... 阅读全文
posted @ 2007-04-02 18:27 念时 阅读(226) 评论(0) 推荐(0) 编辑
摘要: Part 1 层 层(layer)这个概念在计算机领域是非常了不得的一个概念。计算机本身就体现了一种层的概念:系统调用层、设备驱动层、操作系统层、CPU指令集。每个层都负责自己的职责。网络同样也是层的概念,最著名的OSI的七层协议。 层到了软件领域也一样好用。为什么呢?我们看看使用层技术有什么好处: ● 你使用层,但是不需要去了解层的实现细节。 ● 可以使用另一种技术来改变基础的层,而不会... 阅读全文
posted @ 2007-04-02 18:25 念时 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 一、三层C/S的基本硬件结构 传统的二层C/S结构存在以下几个局限:1它是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;2受限于供应商;3软、硬件的组合及集成能力有限;4难以管理大量的客户机。因此,三层C/S结构应运而生。 三层C/S结构是将应用功能分成表示层、功能层和数据层三部分。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为DBMS... 阅读全文
posted @ 2007-04-02 18:24 念时 阅读(1794) 评论(0) 推荐(0) 编辑
摘要: 一、概述 传统的应用系统模式是“主机/终端”或“客户机/服务器”,客户机/服务器系统(Client/Server System)的结构是指把一个大型的计算机应用系统变为多个能互为独立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机则各自处理相应的功能,共同实现完整的应用。随着Internet 的发展壮大,这些传统模式已经不能适应新的环境,于是就产生了新的分布式应用系统,即所谓... 阅读全文
posted @ 2007-04-02 18:22 念时 阅读(840) 评论(0) 推荐(0) 编辑
摘要: 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。通常将这些软件元素称为软部件。 为了能够在软件开发过程中重用现有的软部件,必须在此之前不断的进行软部件的积累,并将它们组织成软部件库。这就是说... 阅读全文
posted @ 2007-04-02 18:20 念时 阅读(1064) 评论(0) 推荐(0) 编辑
摘要: IT168发布的《中国IT应用技术蓝皮书2006-2007》,其中关于软件人才的部分,以独特的视角,从职业结构方面进行了统计分析。笔者尝试按照传统软件工程理论的思想去解读这些数据,结果发现中国软件行业的职业结构是严重失衡的。 1. 独特的视角:职业结构 近日IT168发布了《中国IT应用技术蓝皮书2006-2007》(以下简称蓝皮书),全书凡二十多万字,计两百六十余页,论及人才、应用以及过... 阅读全文
posted @ 2007-04-02 18:16 念时 阅读(189) 评论(0) 推荐(0) 编辑

细节决定成败!态度决定一切!