查看原文
其他

《非程序员》电子杂志下载(39-51期)

UMLChina 2023-06-27

在2001-2005年间发布的免费电子杂志《非程序员》,杂志从“软件以用为本”出发,重点关注软件需求和设计技能。杂志发行到51期后停刊。许多内容到今天依然有参考价值。

全51期-百度网盘下载>>

http://pan.baidu.com/s/1bnHE5mn

《非程序员》电子杂志下载(1-38期)>>


第39期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer39.pdf

【新闻】

建模工具领域的IBM和微软对决

Rational揭开其工具集升级版的面纱

Leap SE将自然语言直接转换为对象模型

IBM为Rational打开Hyades大门

【访谈】

Grady Booch展望UML之路,eWEEK,袁峰

......我的观点是,很高兴看到微软认识到建模的重要性。因为我们已经为之努力多年,而且我们也很高兴地看到几乎所有的主流平台厂商都在真正进入这一领域。看看Sun公司的James Gosling以及他的TopHat项目,这显然是在同一方向上的努力。天啊,当你面对这些对手的时候,有一点是可以保证的:巨大的变化是不可避免的。...

【方法】

基于模型的通信系统设计,Sari Leppänen、Markku Turunen,黄蕾

......图2大致描述了在系统实现时采用组装和分解方式逐步细化服务描述的过程。一个扩展的设计方法将覆盖从服务说明到完全实现的各个阶段。不同的阶段参与的人也不同。举例来说,在协议工程中,设计方法覆盖了从前标准化到协议实现的所有阶段。服务说明阶段与文献【4】中标准化过程的阶段1相对应。服务分解阶段主要是在标准化阶段2中,服务分配阶段覆盖了标准化阶段2和阶段3 ......

软件工程与软件工艺,紫云英

......工程未必追求最佳的质量,但是能够控制质量。对工程产品和工艺产品看法的一个误区是工程产品的质量会比较高。其实未必是这样的。比如,很多人就觉得妈妈或女友编织的毛衣(工艺产品)要比商店里买到的机器编织的毛衣(工业产品)要好;手工制作的糕点和馒头要比机器制作的好吃;天然的食品要比工场化养殖/种植的食品好吃,而人工养殖/种植的食品又要比通过生物技术手段生产的人工合成蛋白质食品好吃。当然,前者的价格也往往比后者贵,而质量差距往往其实也没有你想象得那么大。事实上,工业产品的质量一般都在某个中等范围内,不会太差,但工艺产品的质量可能会参差不齐。(可能你妈妈织的毛衣非常精美,但你女友的作品却一个袖子长、一个袖子短。)总的来说,这些产品并不复杂,手工制作是可行的,质量差异也是可以接受的。工程主要扮演了降低成本的角色。...

使用Together让你的项目变得更加敏捷(上),周小辉

......通过建模,加强了团队成员之间的沟通。例如,笔者在进行PeopleSoft ERP系统的运行维护时,为了深入了解系统在处理业务时的商业逻辑,更为了与业务人员的沟通,使用Together根据对系统的了解绘制了如下的费用报销状态图:...

【书籍】

《人月神话》、《人件》近期动态,UMLChina

......昨天,看了《手机》的DVD,恰好这几天也看了《人件》中关于电话和工作环境的论述,感觉两者有很多的相似之处,我不知道刘震云和冯小刚是否读过《人件》...

《领域驱动设计》中译本(草稿)节选,Eric Evans,陈大峰、张泽鑫

......这张十八世纪的中国地图表示整个世界。中间占据了绝大多数空间的部分是中国,周围寥寥几笔勾勒了其他的国家。这是适应于那个社会的世界模型,它有意地偏重于内部。这张地图表现的世界视图对于外国人是没有太大用处的,当然它也不能够适应于现代的中国。地图就是模型,每个模型都代表了我们所感兴趣的现实或观点的某些方面。模型是一种简化,它对现实进行阐述,只是抽象出对于解决手头问题有关的方面而忽略掉无关的细节问题。...


第40期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer40.pdf

【新闻】

UMLChina讲座大师不断

像Booch一样思考

Gentleware新版本提供新的License机制

Select公司和政府签署产品采购合同

【方法】

数据模型的质量:良好数据的开始,David C. Hay,Michael Zhou

......令人惊奇的是,这些使用不同方法进行数据建模的人之间还能互相交流。尽管如此,数据模型毕竟是要交付给客户的一个产品,并且至少在表面上,它们之间还是有好坏之分的。不幸的是,这一好坏之分的判断标准却很少被人清楚的表述出来,并且大多数时候,每个人建立的数据模型还是以几乎宗教般的热情用一种有争论的形式表述出来。本文试图能平息这些争论,并尽可能冷静客观地描述有关数据模型质量的一些基本原则。至少,我们希望能够把问题摆到桌面上来讨论。......

羊的门,章柏幸

......两个客户来观看我们的样品,他们对我们的创造赞不绝口,尤其是那个三轮车的轻便性。可是,其中一个问道:“请诸位解释一下这种设备如何在艾格尔上的北坡用于救援登山者。”我们呆在那里了。你是否也呆在那里了?......

打开需求之门――在中国实践用例技术的感悟,潘加宇

......用例确定的只是交流的目的,而不是交流的手段。客户并不需要了解执行者、用例这些概念。用例能告诉开发团队“去向客户了解什么”(目的),不能告诉你如何向客户去了解(手段)。把目的当手段,当然行不通。...

敏捷软件过程的局限性,Dan Turk、Robert France、Bernhard Rumpe,bn007

......尽管看起来有许多软件开发基于敏捷过程获得成功,到目前为止大多数成功的故事都仅仅是逸闻。对比敏捷方法和非敏捷方法的效果和局限性将极大地促进我们理解敏捷过程真正的优点和局限性。本文我们根据对部分称为“敏捷”的过程的原则和假设的研究列举了一系列局限性。并不是所有的假定适应所有这些过程,例如,仍然未发表的“Crystal Blue”,亦即 “Crystal Clear”的兄弟 [7],就很好地支持大型软件的开发,但可能并不很“敏捷”。很显然,有些领域更需要敏捷开发过程,其中有Internet应用领域,这些应用面临着显著的尽快推向市场的压力和下一个版本更新的成本尽可能小。然而,同样很明显,开发长期规划、大型复杂系统的公司在目前形式下不太可能采用敏捷过程。...

适应性Web应用程序开发模式,Nora Koch、Gustavo Rossi,车皓阳

......我们的模式基于UML Web工程方法所支持的适应性技术,它用于适应性Web应用程序[Koch 01]的开发。在本文的模式集和[Rossi 01]中的链接个性化(Link Personalization)、内容个性化(Content Personalization)、结构个性化(Structure Personalization)和客户端个性化(Client-Side Personalization)等模式之间,在概念上有两种主要的区别。首先新模式的粒度更细,其次,通过内容和应用拓扑的动态适应性,它们提供了一种更动态的个性化方法。我们在附录中讲述了前面提到的模式。...

Put it into a Context!――跨越用例的粒度问题,孙向晖

......那么,这会引出一个新的问题:我们应该关注系统用例的哪个层次?(这也是一个粒度的问题)。还有其他一些由粒度引发的相关问题:采用倒推法,让我们来思考,用例驱动的受益者,他们都需要从用例中得到什么?现在他们还有什么需要我们没有满足?如何能在我们需要保证的质量和有限的工作时间之间做一个最优化的平衡?......

【书籍】

以美的名义,熊节

......从他的作品中,我们可以明显地看出:Martin Fowler一直致力于为企业级应用开发者提供一套完备、自足的话语系统,一个理型的世界。Analysis Patterns告诉我们如何分析用户需求,Refactoring告诉我们如何改善代码质量,Planninge Xtreme Programming告诉我们如何规划敏捷的开发过程。这本PoEAA恰好是拼图的最后一块,它所记录的47个模式直指架构企业级应用时无法回避的那些问题。现在,Martin Fowler的信徒们可以完全用自己的一套话语来谈论企业级应用开发了。...

《UML风格》书评,Douglas

......完成了《UML风格》一书,Scott Ambler给软件建模界帮了个大忙。作为一名为数个公司客户服务的咨询者和培训者,我看到许多团队里尽管个人了解UML的语义符号学,但还不能达成整个团队的共同的实现和风格。对于这些团队,当争论聚焦于“为什么某些东西以这种方式建模,而我的方法如何之好”的时候,沟通力和生产率往往大打折扣。团队成员应该在共同的实现和风格问题上达成一致。《UML风格》就可作为解决此类问题的入门教材。...


第41期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer41.pdf

【新闻】

Sun在应用生命周期管理(ALM)上另辟蹊径

PolySpace和EmbeddedPlus发布第一个UML测试集成环境

Borland倾力连接软件与业务要求

用Wilde来进行软件设计

UML:大了,小了,还是刚好?

【方法】

打开需求之门――在中国实践用例技术的感悟,潘加宇

......需求工程师应该把捕获需求的责任承担起来,他需要亲临第一线,到涉众那里去,灵活运用各种方法从各类涉众那里得到需求的素材【5】,而不应该对客户有太多的要求,只要客户了解自己的利益,需求工程师就应该有能力完成工作。婴儿也不会直接表达需求,但出色的公司仍然可以探索出“天线宝宝”这样的需求。...

从基本用例到对象(详见程序员杂志2004年第10期),Robert Biddle James Noble,李胜利

......一个典型的CRC程序应当从一个候选类或对象集开始,每个候选类或对象都具有初始职责建议。然后跟踪用例来研究分布,反复修正对象和职责。可选的DSR程序应当从简单系统对象和它的职责开始,然后跟踪CRC。就典型的CRC来说,我们也应该找出一个候选的对象和它们的职责集,并且我们也应该研究作为用例驱动的设计。......

敏捷MDA,Stephen J. Mellor,汪磊

......我们认识到建模者和敏捷程序员之间的冲突是基本和广泛的,一方面因为不同的技术焦点不同,对预设的流程反应激烈,一部分原因是因为各自的夸大。然而,在现实中,这种隔阂是很小的。敏捷联盟和极限编程的许多思想同时控制着模型,是否我们简单地用可执行模型代替文字编码。无论如何,你的作者已经成为敏捷宣言的签名者就足够了。...

使用分析模式的软件重用,Andreas Geyer-Schulz、Michael Hahsler,刘杰

......与Fowler(1997)不同的是,他采用的是一种自由的,非正式的方式来描述分析模式,而我们采用的则是一种统一的,前后一致的方式。Vlissides(1998)和其他作者都强调,依照某种结构来描述模式是非常重要的,因为,对结构化信息来说,一旦其组织方式被理解,它就会易于被传授、学习、比较、描述和使用。表格1介绍了我们为描述分析模式而提出的模板,本文后面部分中的四个模式实例都使用了这一模板。...

使用XP和Scrum通过CMM L2和ISO9001认证,Christ Vriens,李胜利

......然后Scrum来了。经历了一年的仅XP使用的工作后,一本关于Scrum [8]的书引起了我们的注意。我们立即认可了问题(issue)3到6,和由Scrum提供的比得上我们介绍自己的解决方案。我们决定结合Scrum和XP,因为XP注重与工程实践,Scrum注重于管理和组织方面,工作进行得非常平稳。他们由称为Sprint的XP计划竞赛和在Scrum中的计划会议相互交迭,这不奇怪,正如Kent Beck在XP中重用Scrum中的元素。后来,我们意识到经常结合使用XP和Scrum,甚至给它一个名字XP@Scrum。...

【工具】

通过用例整合业务流、工作流和对象模型,Proforma,王志航

......新的建模技术和应用软件从90年代就已经出现了,主要是由于大量的BPR和OO的出现。今天,工作流模型、统一建模语言(UML)、关系技术、面向对象技术(OO)和用例建模技术代表了主要的无异议的标准。总之,这些是连续生命周期的关键组件。......

使用Together让你的项目变得更加敏捷(下),周小辉

......我们知道,在CMM中,特别强调在项目中进行代码评审,代码评审可以提高软件项目的成功率,因而XP提倡结对编程,将这一做法发挥到了极致。Together的审计与度量特性可以使你的代码评审过程更加富有效率。....

利用模型驱动架构加速嵌入式软件开发,PathMATE,sunpengsun

......MDA特别适用于嵌入式软件开发,是因为它把功能逻辑从执行细节分离出来,并且自动生成和测试任何嵌入应用架构都只使用MDA技术。MDA为嵌入式软件开发人员提供一个根本不同的、高水平的方法来适应变化的需求,提高重用率和扩展系统寿命。....


第42期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer42.pdf

【新闻】

Borland为微软的VSTS提供UML支持

IBM Rational新开发平台对非洲的影响

Aonix发布High-Integrity Profile for Ameos

Metamill公司发布Metamill 4.0-支持UML2.0的UML CASE工具

【访谈】

连接三种建模技术――王晓昀访谈,think

......一般大公司里会有三个软件:用Rose或Together画UML,用PowerDesigner或者ERWin做数据库设计,还有企业流程建模的工具。如果说只允许选择一种工具来完成上面三个任务,一般人都会选PowerDesigner。因此微软的动作对我们来说影响不大,我们支持微软,不和微软竞争。像某些厂商那样集成度高有好处也有坏处,很容易造成重复购买。应该允许从这家买点这个,从那家买点那个,这样有选择的话,厂家就不容易提价。...

重构极限编程(上),Mark Collins-Cope,张江

......从根源来说,我最早是几年前在OTUG(the Object Technology User Group),主要是与Bob Martin和Ron Jeffries,开始关于XP的争论。在热烈讨论克莱斯勒C3项目的下马到底是公司所声称的成功还是在我们很多人看来的失败时,这场争论达到了白热化。我随后的一些幽默讽刺被广为接受,特别是我在UMLWorld主题演讲并且在最近的Rational用户大会再次演说的《Alice in Use Case Land》 ...

【方法】

使用Borland ALM解决方案的统一过程,Tom Gullion,高天成

......统一过程 (UP) 和它的一个广为人知的改进产品——IBM Rational统一过程或称RUP,都包含一个最佳实践的集合。以下6个实践都来自于对成功开发团队的观察资料。[RUPBP]下面的部分将描述Borland ALM解决方案是如何在对这些最佳实践的支持中领先于同类产品的。...

Charles Simonyi的新方向,北京飞箭软件

......如果你让Simonyi解释怎样使像工蜂那样的编程工作可以自动完成,从而消除由于人为差错造成的程序错误,他会给你举出喷气发动机的例子。他说,拿涡轮叶片来说,它们必须做得非常精确。即使由很细心的熟练工人加工叶片,仍然不可能达到你要求的精度,而必须另造一台机器来加工叶片。其中会有人干预这个过程吗?当然,制造、维修和调整机器必须由人来完成。机器也会出错,机器一旦出错会很显著,你能马上发现,并改正它。程序编码也是如此。不需要人去接触编码。否则程序易于出错。人能制造这种机器。...

XP和FDD的比较,Serguei Khramtchenko,李晨光

......XP几乎完全省略了这个步骤。来自XP社区的建议是:“我们建议你应该写一个能够满足需求的程序,文档尽可能少”。FDD也不需要创建设计文档。在Process One的最后,开发者创建一个UML图的描述,用来记录一些被否决的可选方法以及该决定的原因。这些文档以后会有用:在一个耗时很长的项目里,人们可能会忘记最初决定的细节,文档可以作为提醒。如果用户要求,正式的用户需求可以在这个文档的基础上撰写。......

开源软件的可用性,David M. Nichols、Michael B. Twidale,droplet

......但是当为这些非技术用户设计产品时,传统的可用性问题就出来了。在Greenstone研究(Nichols et al., 2001)中,一些命令行的使用习惯,如正确的执行没有提示会使用户迷惑。使用名词’man’(UNIX命令行)来代表帮助系统,在GNOME界面中使用名词’regexp’(正则表达式)都是典型的将开发人员的术语呈现给最终用户的案例。开源软件方法在解决可用性问题时失效了,因为查看界面的都是一些“错误的眼球”,他们不能发现可用性问题。从某些方面来说,开源软件可用性的问题重现了早期商业软件开发中的一些问题:最初,大多数应用是计算机专家为另一些计算机专家开发的,但随着时间推移,系统的使用者中的大多数变成了非专家用户。向非专家用户转移,开源软件和商业软件走过了相同的轨迹,只是开源软件晚了几年。......


第43期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer43.pdf

【新闻】

聆听James Rumbaugh的演讲

Borland的ALM产品2004年赞誉如潮

IBM掀起Atlantic大潮

Accelerated为使用UML的嵌入式开发人员提供应用开发平台

【访谈】

通过纪律达到敏捷——一场辩论,Kent Beck、Barry Boehm,米全喜

......从前,在一个叫“隐喻”的岛上,住着一只猴子和一只大象。他们都住在一条宽阔、水流湍急的河水的一边。河水两岸长满了果树。猴子很敏捷。他能够爬到果树的顶部,尽情地吃水果。大象很高。他能够用躯干够着果实并尽情享受。但是果树越长越高。很快大象就够不着果实,也就吃不饱了。但是他很强壮,能够自给自足。他发现当他饥饿的时候,他可以把树扳倒,吃果实。......

【方法】

业务建模 vs 系统建模,think

......业务用例就是使用用例的观点来研究业务,把业务内部的各种流程看成是为业务执行者提供价值的方式。这种思路对改进业务流程有非常大的帮助:先归纳出业务对外提供什么价值,再思考如何更好地优化内部流程来实现这些价值。Ivar Jacobson在这方面做出了主要的贡献,可以参看他的著作《软件复用》...

业务建模实践:使用RUP、WBI Modeler和Rose/XDE,Maria Ericsson,李胜利

......目前,IBM软件组提供两个用来指导业务建模的补充产品组:IBM WBI Modeler,它与IBM的流程配合与监控的产品捆绑。WBI Modeler支持在RUP业务建模规则中定义的建模活动的一个子集,主要是业务用例的可视化实现。WBI Modeler也提供了允许分析模型的模拟能力。IBM Rational Rose/XDE, 支持全面的UML业务建模,并且捆绑在IBM的软件开发平台和由RUP业务建模规则定义的所有建模活动中。...

需求问题的根源-需求启发,think

......当我们关起门来“编写有效用例”的时候,当我们激烈争辩一个用例的“粒度”的时候,一定要记住,答案根本不在我们这里,在涉众那里。到第一线去,用我们上面提到的各种技术,探索涉众心中所想,才是需求的正道。...

从基本用例到对象,Robert Biddle、James Noble、Ewan Tempero,李胜利

......Sokoban是一种涉及仓库中“箱子”、“架子”和“墙”的难题。当唯一可用操作是“推箱子”时,目标是将所有的箱子放到架子上。这里有一些变化。其中一个如下:Sokoban游戏包含一个关卡集。每个关卡描述一个仓库,由一个墙、架子、箱子和工人的起始位置的集合组成。倘若箱子对面是空的或空架子,工人可能在任何空位置移动,或者移动到被箱子占有的位置。也就是说,工人只能“推”箱子。当所有的箱子在架子上时,这一关卡完成,下一关卡开始。一旦所有关卡完成,游戏结束。如果游戏结束时游戏者既没有重新开始一个关卡也没有跳过任何关卡,然后他们输入游戏排行榜中他们的名字。...

UML重构浏览器,Marko Boger、Thorsten Sturm、Per Fragemann,elanzhou

......其中一个role name是和类名本身一样。这样看来DeliveryAddress这个类名不是很合适。使用rename class重构,把类名改成Address,这样就更好的反映出它的用法。因为这是一个非常简单的重构,不会出现冲突。如图2...


第44期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer44.pdf

【新闻】

DMTF和OMG结盟用UML和XMI来打造CIM

新工具简化UML顺序图和call flow图的绘制

Ivar Jacobson中国行,在CSDN做交流

IRIS2.0自动化RUP过程

软件工厂+DSL: 微软对MDA的回答

Sybase宣布PowerDesigner 11

【方法】

从业务建模到需求说明的转换,Svatopluk Štolfa,李玉蓉

......从业务建模到需求说明的转换至今尚无规范的定义,但用我们的方法可以得到一种直观感受。我们的方法包含了以下几步:首先建立业务流程模型,再由业务流程导出用例模型,然后通过模式匹配来组织用例。...

UP实作的一些常见问题(上),think

......用"治病"举例,对于复杂的病情,必须承认这个事实:一次性地检查症状、拟定治疗方案、实施是不可能的。应该分成若干疗程,根据病人的情况随时调整。但不管如何“迭代”地治疗,检查 (拍片、望闻问切) 的技能、拟定治疗方案的技能,实施治疗方案(打针、理疗、手术)的技能必不可少。如果医院团队不具备这些技能,把一个虚的“过程”倒背如流又有什么用?...

掌握需求管理中的需求,Thomas Murphy,liujie

......如果使用了统一的模版,就上升到了第二级别(有组织的)。有组织的文档不但要求所有的文档格式化,而且要求它们要采用统一的格式和编号方案,并进行版本控制,这一点与CMM的第二级别是相同的。然而,组织可以不借用任何具体的需求管理工具而达到这一级别,这是因为这一级别关注的是一致性和建立过程,而非可跟踪性和度量指标。这一级别还要求组织进行培训并对原有过程做出相应改进。...

方面——丢失的链接,Ivar Jacobson,summin

......自从1986年用例被引入到需求规约中,很快,用例就成了这方面的流行工具。在需求获取阶段开始用例,在分析和设计阶段被转化为协作关系,并在测试阶段转化为一种变体——测试用例。因此,我们可以把系统概念化,就如同把一条面包切成片。使用用例,我们能够通过生命周期各个阶段的元素把系统切成“用例片”,几乎所有的阶段都可以做到。为何是“几乎”,而不是全部呢?有两个原因:首先,构造一个构件或类,我们必须合并来自多个用例的代码,最终这些独立的块已无法辨别。其次,UML中的用例扩展机制(通过<<extend>>关系表现)却无法被分析元素和设计元素(类、构件等)的“协作关系”所支持,更不能被Java、C#等实现语言所支持。根本的问题是当前实现语言的局限性造成的。...

从UML状态图产生代码,Iftikhar Azim Niaz、Jiro Tanaka,赵成

......使用状态图的OO方法学充分的叙述了描述对象行为所遵循的步骤,但是未能描述在OO语言中状态图的实现,这是因为缺乏对状态图的语法支持。高层次的建模语言和编程语言之间存在一个鸿沟。从类图到OO编程语言的转化是简单的,并被多数CASE工具支持。为了实现面向对象系统的行为,必须要实现描述类动态行为的状态图。我们的工作是在设计和实现之间架起一座桥梁。通过在Java语言和UML之间的映射,我们可以直接从状态图产生低层次的Java代码。我们的主要目的是在OO语言,如Java中,展示一个简单和有效的UML状态图实现方法。本文所提出的实现技术是有价值的,因为它们提升了抽象层次,并且支持直接将状态图映射到紧凑和有效的代码。...

Web应用中的设计模式,Michael Weiss,wh89954

......例如,在设计对不同在线商店中的书目价格进行比较的应用时,用户可能需要通过作者、题目、关键字、或ISBN号来进行检索。检索结果是由每一个商店中的价格、是否有货构成的表格。用户可以将在该网站上不同的检索结果进行保存。关键的功能(如about us, search, saved results)在每一个页面中都应该具备。站点的导航设计产生了上述的站点地图。...


第45期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer45.pdf

【新闻】

微软: "UML and more" 的延期和期待

Forrester发布MDA和基于模式开发报告

Excel公司正式发售WinA&D 4.0

【访谈】

重构极限编程(下),Mark Collins-Cope,张江

......相关于我们一直在做的研究,Rob和我最近几天创作的一首歌已经在我的脑子里(甚至Matt都还没看到过,它是新歌,但是它涉及到我们已经讨论过的一些观点)。如果您的杂志还有地方,您的读者或许对此有兴趣…它叫“单元测试编写者”,它配上披头士乐队“Paperback Writer”的旋律。...

【方法】

《UML参考手册》2.0中译本摘录,James Rumbaugh、Ivar Jacobson、Grady Booch,UMLChina

......UML是一门博大多变的建模语言,适用于许多层次和开发生命周期的不同阶段。有人批评它过于庞大和复杂,但是对于任何现实世界中实际使用的通用应用程序来说,复杂性都是固有的,比如操作系统、编程语言、多媒体编辑软件、电子表格编辑器和桌面系统。这些应用能够变得很小,如果把他们做成玩具。UML的开发者们并不希望它只是一个玩具。...

《对象设计》中译本样章,Rebecca Wirfs-Brock, Alan McKean,鲍志云

......对于软件对象,Alan Kay最喜欢的类比是生物系统。和细胞一样,软件对象并不知道别的对象内部是怎么工作的,但是它们互相沟通,并且协同执行复杂任务。与此相反,“浑然一体”的单体式软件则像机械钟那样包含无数的齿轮。每个齿轮都不具备智能,只和其他邻近的齿轮发生关系。这样的设计不仅仅是具有瑕疵,而且无可救药。Kay说过,“当你制造机械钟的时候,最后复杂性总会达到某个地步,就像搭积木一样,再多垒一块整个结构就会倒塌。”...

UP实作的一些常见问题(中),潘加宇

......这种习惯比较隐蔽。“订单项”里带有“零件编号”,看起来很符合现实――订单打印出来,每一个订单项上会有零件编号,但“零件编号”并不是“订单项”的属性,而是零件的属性。“订单项”知道的是“零件”。映射到关系数据库时,确实需要把“零件”表的主键(可能不是“编号”而是系统生成的代理主键)放在“订单项”表中建立外键连接,但类图并不需要理会这些。...

《About Face 2.0》中译本精彩节选,Alan Cooper、Robert M. Reimann,詹剑峰

......很多开发人员认为理想的界面应该与用户进行双向交流。然而,大多数用户都不这样想。例如,他们更愿意用和自己的车交互的方式与软件交互。打开车门,上车,然后去目的地。要继续向前时踩油门,想停下来时踩刹车,转弯的时候打方向盘。这种理想的交互情形不是对话,更像是在使用工具。当木匠看到锤子时,他不想和锤子讨论钉子的问题。他会直接用锤子钉钉子。在车里,如果司机想改变方向,他转动方向盘。司机喜欢通过合适的设备从车子和外部环境直接获得反馈:挡风玻璃外面的视野;仪表板的读数;疾驰而过的风声;轮胎压在道路上的声音;对侧向重力的感觉以及路面传来的的振动。木匠也希望有类似的反馈:钉子下沉的感觉,铁互相击打的声音以及举起锤子的感觉。司机当然不期望车子通过对话框与自己交互,木匠更不希望看锤子上显示这样的信息(如图9-1)。...

用例点估算方法,Mel Damodaran、Aqua Netta E. Washington,徐异婕

......人们设想,基于用例模型来估算规模和工作量是可能的。因为用例模型被广泛用于捕捉功能需求,所以人们认为,应该有基于用例的估算方法来代替功能点方法。然而,有几点困难可能阻碍基于用例的估算方法的应用(Smith, 1999):....

使战略规划和敏捷开发相一致: 扩展敏捷思考用于业务改进,Colin Rand、Bruce Eckfeldt,liteng

......在确信对订单处理过程有控制能力以及希望降低物资损耗的情况下,客户要求我们实现一个在上午11点前将店长锁在系统之外的功能,以此迫使他们在掌握实际需要的供货量之前就把订单发出来。我们同他在物流中心一起坐下来开了一个会议,他说:“哈哈,我现在能让所有的店长在中午之前就把他们的订单发出来!”...

【书籍】

《人月神话》和《功夫》……,UMLChina

......忽然发现“功夫”是一个描述软件开发度量的理想单位(终于绕回本行了 ),想想《人月神话》中反复讨论的人-月之间的关系,想想项目管理三角中的资源-时间-功能和三角中间的质量。“功夫”两个字,似乎都已蕴含其中了。...


第46期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer46.pdf

【新闻】

Borland购入外脑来驱动SDO

微软冷眼旁观UML2.0

Compuware和SteelTrace结盟

【方法】

会写代码就会写需求,Jim Heumann,李胜利

......写得好的程序包含增加代码信息解释它做什么或为什么这样书写的注释。好的注释不解释代码如何做,这些从代码本身看来很明显,相反地,它提供帮助用户,维护者和评审员去理解代码做什么和保证编码质量的知识。同样,需求也有属性,使需求更易于理解和使用的信息。当你得出需求时,你也应当发现属性信息。例如,一个重要的属性是来源:需求来自何处?如果你需要回去得到更多的信息,对你的需求来源保持跟踪将节省大量的时间。另一个属性是用户优先级。如果一个用户给你50条需求,它也应当让你知道每一条需求与它相关的需求如何重要。然后在项目周期的后期,当时间越来越少,你意识到不能满足每一条需求时,你至少知道哪一些是最重要的。...

精确用例,David Gelperin,James

......Cockburn[7]总结说人们不喜欢写形式的用例。他坚决认为,虽然形式或者非形式的用例都不能自动产生系统设计,用户界面设计,或者特征表单。形式用例似乎(做起来)费力,没有什么益处。但是,形式的用例能支持自动设计测试(手工或者自动的)脚本。另外,在精确上的尝试可以发现非形式描述中的潜在问题。有时,由于产品风险的本身和其涉及的范围必须保证是形式的...

在嵌入式系统开发中应用敏捷方法,Doug Dahlby,rowvy

......一个要求所有组件都工作才能提供有用功能的系统称为“整体式系统”。组件性能到系统性能的非线性跳跃和其他类型的软件相反,其他软件在完成50%时就能提供50%或更多的功能。例如,建造一个用于旅行或到其它星球并发回信息的航天探测器。虽然存在很多航天探测器组件的底层职责,例如定位、着陆、展开探测器、展开太阳电池板、和通讯,且每个底层职责都是整体功能不可缺少的组成部分。但如果任一重要组件失灵,航天探测器就无法使用,即使此时其他的所有组件都运作正常。...

UP实作的一些常见问题(下),think

......甚至也可以不用UML的元素。如使用CRC卡取代顺序图(协作图)作为职责分配的工具,用户故事取代用例作为一种需求的表现形式等。模型不一定等于图形,它可以表现成任何一种形式,用例文档一定要是“文本”文档吗?对象交互一定是交互“图”吗?关键是其中的内容!...


第47期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer47.pdf

【新闻】

微软将在VSTS中集成CMMI

Genuitec宣布MyEclipse 4.0

Borland升级在Eclipse的会员资格

Ivar Jacobson中国行

【方法】

字斟句酌看UML变迁(上),潘加宇、李嘉兴

......那个《database》不见了。在UML1中,组件可以用来表示物理结构,象数据库、DLL、EXE、JSP…等,在UML2中,这样的表达由部署图中的工件承担。组件的重点已经从UML1中的物理视图转向了更加逻辑的概念,这样它们就能够在概念模型中使用。...

用UML为系统的系统建模,Rob Cloutier、Andrew Winkler、John Watson,、Clay Fickle,徐异婕

......如今,随着系统的复杂程度日益提高,产生了“系统的系统(Systems-of-Systems)”这一概念。传统系统工程(System Engineering)中,为复杂系统进行建模的方法是进行功能分解,从而确定系统的每个主要功能;接下来,一旦主要功能被确定,就再使用同样的方法将大的功能划分为小的功能。该建模方法倾向于从工程师视角,而不是用户视角来描述系统。这种做法有失偏颇,因为它可能导致产生一个技术复杂、而未必满足用户需求的系统。相反,本文介绍了一种现代面向对象系统工程(object oriented systems engineering ,OOSE)方法,来解决“系统的系统”相关的规格说明及分解问题。...

在核仪器控制软件中应用敏捷方法,P.V.Hathaway、T.Lam、N.Hauser、A.Gotz、F.Franceschini,iampole

......NBIP(The Neutron Beam Instruments Project,中子波仪器项目)的主要任务是为一个正在准备实施的仪器提供一个先进、稳定、可扩展的控制系统,并能够积累操作员的经验。这个项目的特殊之处在于,开发团队是在没有硬件设备,甚至有时连元器件都没用的条件下开始工作的。...

游戏设计模式,Jussi Holopainen、Staffan Björk,anyion

......我们的level设计人员无法百分之百地保证什么样的droid会穿过房间,在许多情况下,他们创造出独特的物理过滤器机制,在一个level只允许特定类型的droid能通过:一个陡峭的山丘会清除两足的droid,一个深坑会清除有轮子、不能跳跃的droid,一个峡谷会清除宽的droid,一扇矮门会挡住高的droid。设计者使用地形作为障碍,来降低迷宫的复杂度。...

【工具】

UML相关工具一览A-I,UMLChina

......自称为“IMDE”(集成建模和开发环境)。双向工程以垃圾代码少而颇受好评。提供对Visual Studio .NET 2003和Sun One Studio Java开发平台的集成支持。还可以和ER/Studio, Caliber, DOORS集成,支持协作开发。...


第48期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer48.pdf

【新闻】

Borland再次携手.NET

SI的军队系统UML应用

UML工具SDE获得Jolt奖

【访谈】

Rumbaugh嘲笑微软在UML上的姿态

......我们会看他们是否真正支持UML。他们现在也在用其他方式支持UML。他们似乎在骑墙,我打赌如果他们发现有足够的人想用UML,如果他们不能说服人们使用他们的方法,他们最终会回到UML上的。但再重复一次,很多的人都认为UML是有用的。只是微软说了一些其他的话,这代表不了任何事情。他们并没有在所有可能的领域获得成功,这是肯定的。...

【方法】

字斟句酌看UML变迁(下),潘加宇、李嘉兴

......在UML2中,状态机和活动的元模型被分离开,并且活动的语义主要(松散地)基于Petri网的语义(把活动图理解成令牌沿活动边流动而不是状态转换),添加了许多新的流特征。节点、令牌等概念就来自Petri网。...

敏捷软件开发中的需求工程,Frauke Paetsch,Anyion

......在DSDM中,JAD 会议用于在项目的开始时获取对新系统的理解。JAD促进了在不同参加者小组之间的合作、理解和配合。由于参加者会具有不同背景,关于新系统的不同部份的信息可能被收集并为进一步需求捕获提供基础。它们也鼓励客户介入和信任。这显然与敏捷原则是一致的。...

一个生物化学领域的面向对象案例研究,Jacqueline Signorini、Patrick Greussay,曹想华

......有五种类型的关系:关联,聚合,组合,泛化,依赖。这四个类设计了复杂的凝血过程(图1),共用了三种关系。接触阶段的类,相应于凝块形成的初期(受损的血管壁中血浆形成胶原质),因为其对内源通路的类有着逻辑上和物理上的依赖,所以使用一个聚合的连线把它们联系起来。这个连线在关系对象的一方有菱形箭头。...

基于MDA的Web信息系统开发方法,Paloma Cáceres、Esperanza Marcos、Belén Vela,徐异婕

......在本节中,我们将展示研究案例的一部分。这是一个马德里电影协会的Web信息系统,电影协会由几条电影院线组成。这个WIS可以在http://kybele.escet.urjc.es/ejemplos/cine_entradas/访问到。它提供协会方方面面的信息,以及在线购买电影票的服务。本文只集中讨论这个WIS的结构维。...

应用程序的安全架构模式,Joseph Yoder、Jeffrey Barcalow,朱小平

......军事基地的工作人员都有一个徽章,它会在通过检查岗时被检查。他们同样有一些钥匙,允许他们进入他们已被授权的区域。任何人如果没有徽章都不允许进入受限区域。任何人如果没有经过许可而进入受限区域都将受到严厉的处罚。...


第49期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer49.pdf

【新闻】

Telelogic收购Popkin

【方法】

爱丽丝漫游用例奇境——并非如你所想的超现实主义题材,Doug Rosenberg,hairui

......爱丽丝走着走着,突然一只大白兔从身旁冲了过去,在她面前突然停了下来,转了三圈,嘴里喊道,“我们迟了!我们迟了!我们要马上开始写代码!公爵夫人要发怒了!” “你到底在干什么呢?”爱丽丝问道。“迭代!”兔子说道,然后又开始转了圈。“停下来!”爱丽丝说道。“这样的迭代不会让你头晕吗?”她问道。“你能告诉我怎么样从用例到代码吗?”......

控制软件设计的复杂性,Karl J. Lieberherr,李静

......我们的研究聚焦于辩识出软件开发过程中采用的技术,应用这些技术开发的软件能够经受住代码重构的考验。在这方面,“Demeter法则”(LoD)作出了贡献。“LoD”,通俗的表述就是只与你的朋友们通信,在严格面向对象的开发环境下,遵循“LoD”引起了一些问题,正是这些问题促使我们在“面向方面的软件开发”(AOSD)这个领域进行研究。...

领域驱动设计讨论,Silicon Valley Patterns Group,潘加宇、孙向晖

......Eric: 很多领域还在领域建模的阶段,只有少数领域已经做得很好,象会计,已经有很多强有力的抽象,总帐,贷方,借方等。但大多数其他领域还是处女地。...

【工具】

UML相关工具一览I-N,UMLChina

......和Eclipse集成,支持多国语言。支持RUP和WAE设计模式,支持DoDAF框架。...


第50期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer50.pdf

【新闻】

敏捷开发者发现新西兰人干得更好

Visual Studio 2005要等到2006年了

Telelogic发布基于角色的生命周期集成解决方案

【方法】

敏捷软件开发调查――改进项目的方法,Gocept,李静

......在Scrum 中强调管理者也能参加会议——但是他们不允许坐在会议桌旁,也不允许站在参与者中。他们不可以说话,只可以倾听。Ken Schwaber以一个不是很有趣的笑话的强调了这点:一只鸡和一头猪在一起,这时这只鸡说“我们开一个餐厅吧”猪想了想然后说“我们给餐厅起什么名字呢?” 鸡说:“Ham n’ Eggs!” 猪说:“不好。我要对餐厅负责,但是名字中只提到你!” ...

模型驱动软件开发模式(上),Markus Völter、Jorn Bettin,徐异婕

......模型驱动软件开发(Model-Driven Software Development,MDSD)是一种软件开发方法,旨在通过领域相关模型(domain-specific model)开发软件。领域分析、元建模、模型驱动的自动生成、模板语言、领域驱动的框架设计、以及敏捷软件开发原则,扮演着这种方法的中坚力量,而OMG的MDA是这种方法的“特有风味”。...

采纳RUP――缺陷和解决方案,Cogenture,李静

......项目成员被分派到一个学习流中,这个学习流符合RUP的原则。这比选择RUP角色更重要,它激励团队通过小组学习整合。下表列出了学习流、项目成员在流中执行的关键活动、执行活动所需的技能以及使用的工具。...

需求工程师的素质,潘加宇

......一大群人,半夜不睡觉,讨论过去一天的各种事情,然后把它们整理成厚厚的一叠纸,送到你的办公室,只收1元钱。有一种动物很奇怪,每天从壳子钻进钻出,一到晚上,就几个一组钻进一个壳子里盯着一个发出荧光的盒子一动不动。......

【工具】

UML相关工具一览O-Q,UMLChina

......线上的FlashUML工具...基于开源项目ArgoUML的商业产品,支持多国语言。集成到Eclipse,使得Poseidon利用其他工具的方便性大大增加,减少了许多import/export的工作。支持团队建模。下载量已经超过1,000,000份。...


第51期下载>>

http://www.umlchina.com/xprogrammer/XProgrammer51.pdf

【新闻】

惠普裁员,Alan Kay离开

Borland发布Together2006

用UML2.0对Linux 2.6 kernel建模

【方法】

模型驱动软件开发模式(下),Markus Völter、Jorn Bettin,徐异婕

......在“Zemindar”项目中,本文作者之一运用DSL实现了在运行期间终端用户的复杂算法和统计函数的设计。在这个例子中,DSL不必发明创造,并且第三方的现货供应的Java电子表格组件被作为DSL在项目中应用。这个项目也用到了模型驱动产生器,但重新从头实现一个电子表格功能的框架是很不切实际的——甚至是更加糟糕的,应该尽量“产生”这样的功能。......

测试驱动开发全攻略,Brian Sun

......千万不要把“测试”和“除虫”混为一谈!“除虫”是指程序员通过自己的努力来减少bug的数量(消除bug这样的字眼我们还是不要讲为好^_^),而“测试”是指程序员书写产品以外的一段代码来确保产品能有效工作。虽然TDD所编写的测试用例在一定程度上为寻找bug提供了依据,但事实上,按照TDD的方式进行的软件开发是不可能通过TDD再找到bug的(想想我们前面说的“完工时完工”),你想啊,当我们的代码完成的时候,所有的测试用例都亮了绿灯,这时隐藏在代码中的bug一个都不会露出马脚来。......

【工具】

UML工具发展趋势,潘加宇、王继伟

......你不喜欢那么正规,觉得白板是最方便的“UML工具”?也行!使用Ideogramic UML(http://www.ideogramic.com/products/uml/),你可以随意在白板上建模,这个工具会使用特有的识别算法把你的涂鸦转换成UML图,还可以通过XMI,输入到Rose等各种提供XMI支持的工具。......

UML相关工具一览R-S,UMLChina

......Rose/XDE的新版本。基于UML2.0的高端建模以及工具集,还包括应用开发、Web开发、软件配置管理等工具. 这些工具中都增加了对Eclipse3.0的支持,以及减少手工编码的各种新功能...

【书籍】

《人月神话》2005最新动态,UMLChina

......我们发专业英语的课本,也叫人吐血啊!一个汉字找不到不说,里面的软件工程思想更是表达的那个叫曲折!:( 不过名字还是好听的,叫《人月神话》。刚开始看的时候感觉很浪漫,后来知道人月就是一个人一个月的工作量。本来该半个小时读四篇的,却一篇读了半个小时,还都是错的,好受不了哦. 读完都觉的很内疚呢. ...

UMLChina建模竞赛题大全-题目全文+分卷自测(10套100题)


《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题


6月27-28、7月4-5晚网络软件需求设计方法学全程实例剖析公开课


建模示范视频(2020年6月)增加公开课真实案例-合同管理系统(催款)


UMLChina视频哔哩哔哩频道(20200322更新)




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存