04 2009 档案

摘要:红五月,博文视点大讲堂成长专题 火红五月,燃情季节,博文视点大讲堂浓清奉献4场专题技术讲座。成长规划中,您不容错过的精彩,敬请关注!博文视点大讲堂第8期嵌入式Linux C语言开发与用户界面开发设计讲座内容:嵌入式Linux上的C语言编程实践:C语言在开发中的重要性;嵌入式行C语言开发的特点;如何更好掌握C语言;嵌入式GUI开发设计——基于MiniGUI: 嵌入式GUI开发设计的思想;MiniGUI系统介绍;MiniGUI与对中国嵌入式技术发展之路;如何精通一个新的GUI系统;未来图形用户界面开发的模式和技术特点。主讲人简介:韩超,嵌入式系统资深工程师、教育学者,曾从事嵌入式系统开发、教学以及 阅读全文
posted @ 2009-04-30 08:05 我的javaIT 阅读(150) 评论(0) 推荐(0)
摘要:软件架构发展的几个阶段1.基础研究阶段(1985年~1994年) 从20世纪60年代到20世纪80年代中期,软件系统的设计人员就已经习惯使用一些没有统一格式和语义的图线来描述系统的结构。当然,这样对所设计系统的表述是一种很直观和容易理解的下意识的做法。虽然这样的做法已经有二十几年的历史,长期的实践经验也使这些设计人员认识到:虽然描述的是各自负责的不同类型的系统,但在描述风格和手段方面却有着很多共性的东西。更重要的是,不同系统之间也有着很多设计手段或风格上的共性。不幸的是,大家依旧使用各自的办法、各自的思路和设计手段来解决相似的问题。这样花样百出的系统结构描述和设计方式已经开始被当时的软件工程界 阅读全文
posted @ 2009-04-29 15:22 我的javaIT 阅读(632) 评论(0) 推荐(0)
摘要:软件架构的历程 计算机科学的发展历程可以追溯到第一代电子管计算机(1945年~1956年)。1946年2月15日世界上第一台重达30顿的计算机ENIAC(Electronic Numerical Integrator and Computer)正式在费城公布于世,它标志着现代计算机科学的诞生。 相比来说,计算机软件架构的发展就更晚。从20世纪80年代晚期开始,整个计算机科学界为了应对大规模系统设计所带来的复杂度,才逐渐开始了软件架构的研究工作。因为先前的系统架构和设计是严重依赖相关人员各不相同的实践经验和观察,并不能客观地衡量和控制架构活动的质量。 历经了十几年的不懈努力,软件架构的研究逐步走 阅读全文
posted @ 2009-04-29 08:32 我的javaIT 阅读(210) 评论(0) 推荐(0)
摘要:系统架构与软件架构 再深一层分析,无论是建筑工程领域,还是其他工程领域(包括计算机科学),从它们的演化历史来看,直觉上我们似乎能够发现其共同点:即从哲学的角度上来说,它们都是人类为了克服与生俱来的恐惧而进行的创造、演化和发展。人类到底恐惧什么呢? 我们可以注意到,人类本能当中有这样一个重要的共同点:对不确定的、感觉到威胁的事物具有强烈的不安全感。这就激发了人类尽量把这些恐惧的因素控制在最小范围内的愿望。这也就是各个工程学科(包括系统及软件工程领域)在日积月累的发展历程中,逐步规范化、科学化、系列化以及统一化,最终保证人类在复杂环境中,当不确定的因素存在时,依然能够进行有效的控制和协调。 基于同 阅读全文
posted @ 2009-04-28 15:06 我的javaIT 阅读(421) 评论(0) 推荐(0)
摘要:架构的源起 “架构(Architecture)”一词,其实来自于建筑行业。本源自拉丁语的“Architectura”,而最早的词源是来自希腊语的“Arkitekton”一词。“Arkitekton”或者“αρχιτεκτων”都是主建筑师的意思,“Αρχι”是“主要的、首要的”意思,而“τεκτων”是建筑师或工匠的意思。 架构与建筑的关系,使得它与人类社会文明的发展紧密关联在一起。当我们翻开各地存在过的文明社会的历史长卷时,首先映入眼帘的是那些留给我们数不胜数的精湛建筑遗迹。无论是埃及人、中国人、印度人、巴比伦人,还是玛雅人、希腊人、苏美尔人、印加人、波斯人等,都是人类文明的伟大创造者,他们 阅读全文
posted @ 2009-04-28 08:02 我的javaIT 阅读(227) 评论(0) 推荐(0)
摘要:由塔科马大桥事件 谈软件架构 经常,我们会涉及系统架构、面向对象的架构(SOA)、软件架构等词,那么到底什么是“架构”?什么是“软件架构”?“系统架构”与“软件架构”有着怎样的区别和联系?“系统架构构建”和“系统设计”之间有什么区别和联系? 本章带着这些问题,追本溯源,对于架构及软件架构的一些基本概念及发展历程做一番说明。同时对一些人们认识上的误区进行分析,以还原事物的真实面目。1.1 引子 时间就像一条奔腾不息的大河,大浪淘沙,方显金石。翻开人类的建筑工程史,遍布世界各地,跨越几千年的时空,我们可以看到许多辉煌成功的工程。但是,人们往往最容易遗忘那些被历史长河所淹没的惨痛失败。而实际上,人类 阅读全文
posted @ 2009-04-27 14:41 我的javaIT 阅读(293) 评论(0) 推荐(0)
摘要:开发好的项目必须要有好的需求 好的开始是成功的一半,要充分认识需求分析对项目过程的重要意义。需求分析是项目的开始,其质量如何对整个项目的进展与最终结局都会起到重要作用。这里介绍的只是需求分析过程中一些常见的应对策略,正确理解与恰当运用这些经验将会有助于效率的提高与质量的改善。 这部分内容与本书后续内容存在着必然的内在联系。对于需求的研究不仅在项目中如此,对于控件对象的设计与封装也是异曲同工。我们基于项目的普遍性应用,从中构造基于应用的基础控件是有效提升设计生产能力的一个重要途径,也是面向对象理念的一种具体实践。 由于控件的应用范围更加广阔,所以在封装的过程中对经验的依赖性更强,需要更加透彻的分 阅读全文
posted @ 2009-04-27 08:34 我的javaIT 阅读(196) 评论(0) 推荐(0)
摘要:提升需求分析的能力 采取面向对象的理念需要战略性的决策、合适的人才与适当的成本,需要的是相对长期的积累与磨合,同时需要技术与经验的有机结合。天上不会掉馅饼,核心技术的竞争力只有通过不懈的努力才有可能逐渐形成。 基于对象的需求分析是更加具备挑战性的分析过程,它的存在强化了需求分析在项目前端的作用与地位,要求需求分析人员能够在需求阶段初步判定业务对象的性质、作用、作用空间、对业务系统的影响等问题。 如果有一个人能够兼顾需求分析与系统架构设计,就能减少设计过程中的障碍,对成功率也会有更多的保证。如果缺少一个能够纵观整个过程的角色,理解与认识上的差别将会延长设计过程,也会影响到设计质量。 先进的开发理 阅读全文
posted @ 2009-04-24 14:46 我的javaIT 阅读(283) 评论(0) 推荐(0)
摘要:细节也可以决定网站中交互设计的成败 2009年4月23日,外面的天气虽然是烟雨濛濛,但是在电子工业出版社博文视点公司的会议室里充满了阳光与热情,因为今天我们邀请到了《细节决定交互设计的成败》的作者 张亮老师给我们的团队进行了很好的交流,让我们对网站在设计和用户体验方面有了更多、更深的感受。与张亮老师交谈的主要内容有:用户识别 网站的目标用户都有哪些呢?用户目标及任务分析 用户想到网站上来完成什么任务,获取什么信息? 他们使用网站的目的是什么呢?竞争性分析 拿来主义 可以向哪些网站参考或学习呢?可用性测试 可以用出版社内部员工做测试对象 选择典型任务 其他浏览器测试网站信息导航 超链接的设计问题 阅读全文
posted @ 2009-04-23 17:43 我的javaIT 阅读(146) 评论(0) 推荐(0)
摘要:需求与项目风险 从定制一个软件项目到最终的实现不仅是个漫长的过程,也是充满变数的过程,全面理解与正确领悟用户需求演变的本质与应对的策略应当是需求分析人员所要具备的素质。有理由认为面向对象的理念降低了开发过程的难度,但却强化了需求分析在项目过程中的地位与作用。需求分析人员是否具备、是否能够驾驭面向对象的概念对项目的成功率关系会更加重大。下面就说明一下需求分析与项目风险的关系。1.5.1 来自用户的风险 投资者总是在摸索的过程中不断调整自己的实现目标,尽管软件开发商使尽浑身解数也跟不上用户需求的变化,最终只能是疲于应付敷衍了事。投资方的感觉是上当受骗却又无可奈何,开发商则抱怨用户需求漫无边界、任意 阅读全文
posted @ 2009-04-23 14:13 我的javaIT 阅读(222) 评论(0) 推荐(0)
摘要:需求规格 为设计过程中的需要而撰写的需求规格说明书是三种文体中要求最高的一种,因为它的用途在于为设计实现提供一个可以用来作为参照的基本约束。在有些情况下,它可能会包括需求报告的全部内容,并在此基础上进行扩充。 在这里有一个职责上的划分,原则上来说,需求分析只对用户需求的真实性负责,并不需要考虑数据设计与功能框架,后续工作会由专职的数据库工程师与架构设计师来完成。这种说法只有在具备规模的软件企业中才有可能做得到,对于中小企业的有限投资这并不是一个能够付诸实现的操作过程。从需求到实现设计到代码实现大约是这类项目的基本过程,有些项目干脆就是从需求直接到设计实现。 基于这种客观的项目状况,要求需求分析 阅读全文
posted @ 2009-04-23 09:21 我的javaIT 阅读(275) 评论(0) 推荐(0)
摘要:需求方案撰写之售前方案 需求素材调研与需求分析都是报告撰写的必然过程,在这里重点强调三种不同用途的需求文档在表述内容、表述方式上的差别与各自的特点。最全面的报告并不一定就是最合适的报告,尽可能采取相对简单的方式应当是基本策略,以满足特定的用途为出发点。1.4.1 售前方案 如果你所面对的需求分析是个相对标准的操作过程,大体上可以按照专业书籍提供的方法与步骤进行。但在中小企业的项目中,能够采取这种经典操作模式的项目并不多,所以就要研究中小企业项目过程中的需求所体现的特点与规律。 原则上来讲,需求分析应当是在项目签约之后进行。因为软件工程是个事前很难描述清楚的命题,开发商为了适应用户的心理,经常以 阅读全文
posted @ 2009-04-22 15:45 我的javaIT 阅读(682) 评论(0) 推荐(0)
摘要:需求分析样例 完整系统的需求分析太庞大了,很难说清楚。我们不妨从中找出一个节点,目的是说明在需求判别研究的过程中大体应当怎样对待各种管理目标的演变。限于篇幅我们只能以命题框架的构造为基点讨论问题,而不可深入到应用功能的内部细节。我们可以设想一个用户提供的《设备故障维修单》。它必然要包括设备名称、维修内容、维修人员、时间、地点、结果等基本信息,就简单管理过程而言不过如此。在不使用信息系统的情况下,这种管理手段只是一种责任性的记录,很难发挥更大的信息应用价值。 在这些数据被纳入系统之后,立刻会衍生一系列全新的应用课题。反过来对原始数据的采集过程又会带来一系列的变化与影响。我们给出与该业务相关的各种 阅读全文
posted @ 2009-04-22 08:29 我的javaIT 阅读(374) 评论(0) 推荐(0)
摘要:面向对象之软件需求中的体系构造 这里需要一种特定的思维方式与特有的方法论,正确地理解与恰当地运用经典的需求分析理论是必要的。 1.在思想方式上尽快建立起一个系统的整体框架,大体定位各种具体目标在系统框架中所处的位置及其对总体的作用,同时要分析各个部分之间的相互作用与内在联系。在这个阶段中,往往重视交流过程而忽视真实的操作过程。实际上,通过亲临现场的走访过程来了解需求所要达到的目的往往会更快地了解命题,同时也能够更准确地把握设计目标。 2.在总体框架的基础上,分别剖析每个应用节点上所要产生或应用的数据集合与表现方式,尽早搭建各个业务节点之间在数据体系上的内在联系,而不是单纯地从业务层面上理解应用 阅读全文
posted @ 2009-04-21 14:24 我的javaIT 阅读(157) 评论(0) 推荐(0)
摘要:写软件的 需求分析全方位考虑 需求总是在回答“需要什么”的问题,而实现总是在解决怎样才能做到的问题。需求是所要达到的目的,就是要在事先确定出到达目的地的路径与方法。为了避免误入歧途,就要避免由于需求分析误差产生的误导。 首先要明确,“分析”是一个主动思维的过程,而不是一个总结归纳的过程。很多需求调研人员认为,只要把用户提出的原始需求归纳在一起就是需求分析了,这是一个误区。 针对不同的用途,需求文档可能会表现为不同的撰写方式。 1.售前方案书:在项目签约之前为用户提供的重点功能描述。 2.需求分析报告:为项目双方约定设计任务的基本内容,限定设计任务的边界。 3.需求规格说明书:对系统的设计目标与 阅读全文
posted @ 2009-04-21 08:53 我的javaIT 阅读(218) 评论(0) 推荐(0)
摘要:面向对象之需求分析要略 这里不想讨论经典的需求分析理论,只是提出些经验性的工作过程供读者参考。 笔者多次主持软件架构体系设计,有很多机会接触到很多客户的决策者,也有机会与项目管理人员、开发人员并肩协作。在这个过程中对用户经常关心的问题、经常提出的需求及其原因有所了解与领悟。借此机会就需求调研与系统架构设计之间的关系简单地谈谈个人的看法。虽然有些看法难登大雅之堂,但也算是出于经验的一隅之见吧。 需求调研人员在实践工作中经常会遇到一些棘手的问题。由于用户需求杂乱零散甚至是自相矛盾,导致进退维谷无所适从的难堪局面。尤其是在项目交付的过程中,会突然冒出大批的需求与变更,甚至会导致前功尽弃的结果,这是令 阅读全文
posted @ 2009-04-20 15:43 我的javaIT 阅读(176) 评论(0) 推荐(0)
摘要:认真对待失败的支付 对于一个在线网店来说,订单列表中有未支付的订单是一个常见的现象。从消费者的行为分析,造成订单没有支付的原因可以大致分为两类,一类为主观原因,另一类为客观原因。如果你的网站在支付页面进行了用户行为跟踪的话,可以轻而易举地分析出这两种不同的情况。例如,如果消费者在购物结束后跳转到支付页面,但不再进一步操作的话,基本上,可以将此消费者的未支付订单归类为第一种情况,即因为消费者主观原因而产生的未支付的订单;如果消费者在购物结束后跳转到支付页面,然后又填写个人信息(如物流信息)接着进行支付操作,但是没有支付成功,这种情况就可以归类于第二种情况,即因为网站的支付系统的客观原因而造成的未 阅读全文
posted @ 2009-04-20 08:16 我的javaIT 阅读(1007) 评论(0) 推荐(0)
摘要:面向对象之封装的成本价值 本章对一些具有代表性数据控件实现了自定义封装,其内容已经足够翔实精细,同样还有一些控件被封装,比如: • 自定义“TabControl”到“TC_”类; • 自定义“RichTextBox”到“RTB_”类等。 因为它们在需求把握与设计构思上没有太多值得强调的特点,所以就不再一一列出。只要把握了自定义封装的一般理念与实现方式,在任何必要的时候随时可以对一些必要的命题实现自定义封装。 对操作逻辑的封装有益于全面提升操作员对系统的评价,这一点是基本可以肯定的结果。实际上,我们从操作逻辑上实现控件封装只是浅层次的目的,这种封装在更深层次上的意义是为容器、窗体及业务模式的封装 阅读全文
posted @ 2009-04-17 14:41 我的javaIT 阅读(173) 评论(0) 推荐(0)
摘要:自定义“TB_定位访问”子类 在很多应用中,经常需要通过某个“特征值”从给定的数据对象(前台的数据集或后台的物理表)中得到一条(或一组)满足约束的记录,并在此基础上实现某种给定的后续功能,“TB_定位访问”就是要以最简洁的操作并经过标准化的封装设计实现这一系列的连续动作。4.3.1.1 命题提出 对数据库的访问是实现过程中必不可少的实现过程,由于物理表可能是个庞大的记录集合,要想从中找到某个需要的目标记录并不是件容易的事。一般会通过某些事先知道的“特征值”并形成恰当的逻辑表达式,然后再通过逻辑条件达到记录搜索的目的。在项目的设计过程中,类似的数据方位需求太多了,所以就有必要封装一个专用的控件类 阅读全文
posted @ 2009-04-17 08:11 我的javaIT 阅读(152) 评论(0) 推荐(0)
摘要:面向对象之自动生成助记码 这是个母体语言导致的问题。随着计算机应用技术的日益成熟,那种单纯依靠编码实现数据操作的方式早已过时,通过基于母语的方式实现各种操作就是必然要达到的设计目标。4.2.4.1 命题提出 我们基于汉语环境,所以汉语就是交流效果最好的数据表现方式。现实的问题是:最好的表现与最简单的操作方式并不吻合。为了解决这个矛盾,最经典的方法是通过汉语拼音的字头组合(习惯上被称为“助记码”,词汇会延续这种说法)形成一种可以完成数据操作的简洁方式。这里的问题是:如何通过汉字自动生成标准形态的“助记码”数据。这是汉语用户最基本的特定需求,所以也是封装过程中首先要解决的问题。4.2.4.2 设. 阅读全文
posted @ 2009-04-16 14:05 我的javaIT 阅读(918) 评论(0) 推荐(0)