第七章分为五小节分别是:1.大公司手中的算盘2.回到工程的关键点3.思考项目成本的经理4.审视AOP5.审视MDA/MDD。第八章分为七小节分别是:1.软件工程的三个要素的价值2.其实RUP是一个杂物箱3.UML与甲骨文之间的异同4. 经营者离开发者很远,反之亦然5. 矛盾:实现目标与保障质量6. 枝节与细节7. 灵活的软件工程
第七章1. 大公司手中的算盘。从最早仅仅关注于软件开发工具到现在,软件行业中的巨头们已经在层出不穷的思想中涅槃了一回又一回。Rational 被IBM 购并的真实原因在于 IBM 需要构建一个完整的软件工程体系。同样,Borland 也从开发工具厂商的位置跳出来,希望构建类似的软件工程体系。软件业界如今的局面,不是一些人( 例如程序员或者评论家们) 争争吵吵的结果,而是大公司们相互制衡的结果。Borland 与IBM ,IBM 与SUN,以及SUN与Apple都在做着相同的事, 又都有各自的算盘。他们一面打压对手的优势,一面又借助对手和同盟的力量来削弱自己的劣势或者补充实力。2. 回到工程的关键点.。在“程序”与“方法”层面,是关注于“( 具体的) 实现”的;而在“过程”和“工程”层面,更首要考虑的是团队问题。从角色的角度上来说:开发经理思考项目的实施方案和管理具体的开发行为;而项目经理则保障团队的稳定性和一致性。 然而这只是基本模式,或者说,是理想模式。3. 思考项目成本的经理。作为一个经理最重要的就是思考成本。不计成本的项目计划不会得到经营者的支持;毫无目的地消耗成本是项目中的慢性毒药;最致命的风险是成本的枯竭。4. 审视AOP。AOP不是语言。AOP首先是方法论,这就象 OOP是“面向对象的编程方法”是方法论一样。OOP所基于的数据结构是对象(Object) ,而AOP所基于的数据结构就是方面(Aspect)。切分点是 AOP作为一个框架时所需要的一个工具:一组辨识Acpects 和Objects的索引。5. 审视MDA/MDD。MDA(Model Driven Architecture)也是一个方法论层面上的名词。它讨论的是“创建出机器可读和高度抽象的模型”的方法。在工程中,“以什么驱动开发”其实是一个过程问题。尽管对MDA提出了一套完备的技术和方法体系,工程实施者却无法在这个体系中找到一个可以适用的软件过程模型。——MDA不讨论过程。
第八章1. 软件工程三个要素的价值。工具、方法与过程也被称为软件工程的三个要素。它们实际上是相互作用的。例如“过程”问题,就既有实施过程的工具,也有相关的过程方法理论。工程的整体问题仍旧是“实现”。2. 其实RUP是一个杂物箱。RUP它是对前人在软件过程思想方面高度包容。RUP其实就象一个杂物箱一样“包容”了全部的已知理论。RUP能不能被用起来取决于你的辨识能力与组织能力。3. UML与甲骨文之间的异同。UML 与甲骨文都是符号文字,都具有象形含义。然而这并不表明UML符号本身能表达多么丰富的含义。如果要象甲骨文一样用几代人、上千册的论著去解释它,那么UML图的价值也就只剩下象征性的意义了。所以在工程中使用UML图,应该有相应的文字来描述它。而且这种描述与图之间的对应关系要持续地维护下去。4. 经营者离开发者很远,反之亦然。一个完全不懂软件技术的老板。在EHM模型中,他所处于的位置在最右端,而开发者在最左端,在二者之间没有相同的关注界面( 关注点)。项目经理这个中间角色就有了一种使命:协调经营者与开发者之间的沟通。5. 矛盾:实现目标与保障质量。在需求阶段我们就会面临“目标”的问题。然而( 在大多数时候) ,与此相反的是我们会在项目交付和试用时才会碰到客户在质量上的投诉。总之一件事,没有人会跳出来说:我们原本就错了。然而事实上可能真的出在源头:我们把目标定错了。6. 枝节与细节。枝节是事实发展的次要的分枝,它不涉及行为本身,也不是对行为本身的考量。“跳出枝节”。——细节只有做到何种程度的问题,而不并是关不关注( 或做不做) 的问题。只要你感到你的脚趾已经沾上了泥淖,就快点回头。 用脚趾去感觉,有时比用头脑去思维来得有效。7. 灵活的软件。工程死读一本书是不会做软件工程的