博文
软件工程[3](2008-08-11 11:04:00)
摘要:
最早出现的软件工程模型是线性模型(又称瀑布模型)。线性模型太理想化,太单纯,已不再适合现代的软件开发模式,几乎被业界抛弃。偶而被人提起,都属于被贬对象,未被留一丝惋惜。但我们应该认识到,“线性”是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的“非线性”问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如渐增式模型实质就是分段的线性模型,如图1.3所示。螺旋模型则是接连的弯曲了的线性模型。在其它模型中都能够找到线性模型的影子。
套用固定的模型不是程序员的聪明之举。比如“程序设计”与“测试”之间的关系,习惯上总以为程序设计在先,测试在后,如图1.4(a)所示。而对于一些复杂的程序,将测试分为同步测试与总测试更有效,如图1.4(b)所示。
不论是什么软件工程模型,总是少不了图1.1中的各个环节。本书擗开具体的软件工程模型,顺序讲述人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试,以及维护与再生工程。其中程序设计部分以C++/C语言为例。
四、软件体系结构和工具的选择
软件体系结构表示了一个软件系统的高层结构,主要特点有:1)软件系统结构是一个高层次上的抽象,它并不涉及具体的系统结构(比如B/S还是C/S),也不关心具体的实现。2)软件体系结构必须支持系统所要求的功能,在设计软件体系结构的时候,必须考虑系统的动态行为。3)在设计软件体系结构的时候,必须考虑有现有系统的兼容性、安全性和可靠性。同时还要考虑系统以后的扩展性和伸缩性。所以有时候必须在多个不同方向的目标中进行决策。
当前已经有一些关于规范化软件体系结构,比如:ISO的开放系统互联模型、X Window系统等等。软件系统的结构通常被定义为两个部分:一个是计算部件。另一个就是部件之间的交互。如果把软件系统看成一幅图的话,计算部件就是其中的节点,而部件之间的交互就是节点之间的弧线。部件之间的连接......
软件工程[2](2008-08-11 11:02:00)
摘要:
二、软件工程的七条基本原理
自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续 提出了100多条关于软件工程的准则或信条。 美国著名的软件工程专家 Boehm 综合这些专家的意见,并总结了TRW公司多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。
Boehm 认为,着七条原理是确保软件产品质量和开发效率的原理的最小集合。
它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。
人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。
下面简要介绍软件工程的七条原理:
1 用分阶段的生命周期计划严格管理
这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护进行管理。 Boehm 认为,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。
2 坚持进行阶段评审
统计结果显示: 大部分错误是在编码之前造成的,大约占63%; <2> 错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。
3 实行严格的产品控制
开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。
4 采纳现代程序设计技术
从六、七时年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术即可以提高软件开发的效率,又可以减少软件维......
软件工程[1](2008-08-11 10:58:00)
摘要:软件工程
软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。
(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品......
成功经理人:第二章 领导智商(IQ) [第三节] 群体中的个别差异(2008-08-11 10:43:00)
摘要:团队和汽车电瓶很像,如果你把电瓶的电力耗光,要再发动车子就难上加难了。
——速霸陆铃木汽车小组召集人孟多萨
你也许会像其他经验老到的领导者一样,吐出这么一大串你目睹或经历过的成员差异问题:
w 语言上的差异造成沟通困难。
w 团队会依文化背景、教育程度或其他差异,分裂成许多小圈圈。
w 在男性主宰的部门中工作的女性,会受到男性轻视,反之亦然。
w 社会或文化观点大异其趣(例如对准时或礼貌的看法),会造成团队的分裂。
w 数理或语言技巧拙劣,会使热衷工作的员工的贡献受限。
这些问题及其他问题,往往会在背景互异的人共事时乍然出现,除非你协助团队接纳彼此差异,并公开且积极解决他们的问题,否则他们将永远无法做到大方妥协,真正同舟共济。
背景不同的人,会把不同的处事观点和能力带到工作上,如果你能将这些差异集中起来完成共同目标,就比较可能组成具多样性的团队,和可以履行既富创意又行得通的构想。一旦能把一群龙蛇杂处的员工凑在一起和谐共事,团队成员通常都会接纳彼此的意见,建构出共同的计划,每个人的贡献,也可反映出本身独特的背景和经历。
迷思与现实
身为领导者,你不仅要帮助形形色色的员工,想出具创意的构想,还要选择性地履行他们的构想,并追踪实践这些构想会造成何种影响。奇异电器公司(GE)董事长魏尔契(John F. Welch. Jr)表示,在团队进行复杂的互动时(如讨论决策、解决问题和排解纷争),团队领导人是要靠“帮助并讨好大家找到使事情顺利进行的方法”,来把许多个人的观点集中起来。“如果我们没有花费大量时间,帮忙处理群体差异的问题,公司就动弹不得了。”康明引擎公......
成功经理人:第二章 领导智商(IQ) [第二节] 第二节 如何成为引爆专家(2008-08-11 10:41:00)
摘要:一个新品种的管理者正在美国出现,这类管理者发现并运用到一种可以因应员工善变本质,以及竞争压力的管理方式。这是一项重大的社会发明,其重要性大到不容任何关心长期生存与发展的组织所忽视。
——摘自美国职业研究所做的全国性研究“管理者的新角色”
顺风航行
受泰勒理论传承的管理者,倾向于将注意力集中在控制工作场所内的活动。当世界变动的速度缓慢,而变动的方向又可以预期的时候,这么做也许恰当。但是,对于把大半时间用来发展稳固组织控制系统的领导者来说,现在的世界变得太快也太不可预测了。深具影响力的管理权威学者彼得斯(Tom Peters)说:“大家不能再用一九二¡年代,以垂直阶层组织经营福特汽车的方式,来管理现代组织了。”他把有竞争实力的公司,比作善用风力的帆船,继续说道:“如果市场在跳舞时始终与你保持距离——像船帆那样一下朝这里,一下转那里,你就心须拥有一个可以调整帆向的组织,来配合市场情况。”
对许多公司而言,最能抓住今日市场变幻莫测风向航行的帆船,就是透过团队让员工参与的这艘船。
管理者在团队中,不仅要全神贯注于提高组织稳定性,还要注重加强组织的弹性。以控制为导向的传统领导观点,和团队领导的观点之间最大的差异,可以下表扼要说明:
传统观点
团队观点
领导者最重要的工作是:维持控制大权。
领导者最重要的工作是:预期变动发生。
一旦你从团队的观点来看自己——把自己当作协助团队预知并准备迎接外界持续变化的人,你就可以开始强化你们的组织,还有自己的事业前途。
如果管理者的责任,是把组织变得更灵活和更有弹性,当他们善尽职责之后,组织会如何改变呢?表2-1罗列出承袭泰勒学说传统的组织(至今仍相当普遍),以及迈向廿一世纪的团队组织之间的一些主要差异。
传统组织
团队组织
管理者决定并计划工作项目
管理者与团队成员共同决定与计划工作项目
工作内容狭隘
所做工作需要广泛技巧与知识
混合训练(cross-training)被视为无效率
混合训练是常规
大部分资讯是“管理阶层的财产”
......
成功经理人:第二章 领导智商(IQ) [第一节]【2】(2008-08-11 10:40:00)
摘要:运用团队参与的力量
团队可以使员工参与得到预期表现。与外界隔绝的非管理阶层,通常都缺乏改善跨部门作业程序,以及大规模缩减生产周期与成本的资讯。这些牵涉到很多部门的问题,都需要隶属某个部门、不同部门或处于部门之间断层的许多员工来参与。因此,当某个组织跨出重要的一步,变得比较以顾客为导向,和以作业程序为重心时,用各种方式把员工组织成团队就变得十分重要了。
以下让我们大略介绍一下四种基本的团队类型,你有可能加入这些团队,扮演新的领导角色。
P 部门内组型团队(Intrafunctional Teams)
有些组织会在部门内部拓展主管和员工的才能与责任范围。例如:
一名会计经理和手上几名科长,一起设计一套复杂的工作程序,直到这些科长有能力承担这项责任才放手。然后她就有余暇花更多时间与顾客交谈,判断如何进一步满足顾客的需要,那些科长也比较明了工作流程,并寻求改善方法。他们也让自己的团队参与解决问题,培养大家承担更多责任的能力,做与本身工作有关的决策。
P 破解难题型团队(Problem-Solving Teams)
有些组织会以特殊方式,运用临时性的破解难题团队和机动小组来对付一些问题。例如:
一名制造部门经理,得知公司有一连串引进某个新产品的计划,就派一支团队研究生产这项产品所需的空间与设备,并计划将作业现场重新配置,以配合产品的生产。
P 跨越部门型团队(Cross-Functional Teams)
有些组织成立永久性的跨部门团队,以便监督、改善横跨不同部门的作业程序,并使这些程序标准化。例如:
一家批发配销公司认定,对顾客最有利的作业改善方式,就是缩减客户订单往返的时间。于是,订单登录、订单处理、发票......
成功经理人:第二章 领导智商(IQ) [第一节](2008-08-11 10:36:00)
摘要:
第一节 更好、更快、更省
置身九¡年代,人人都可能在短短数年之内,从引领市场风骚,变为一蹶不振。唯有灵活机警者,才能避免遭此恶运。
——一九九三年一月四日版《富比士》(Forbes)杂志所载“美国产业年度报告”
一九六¡年代早期,美国成为世界至强的经济大国,那时候,企业通往成功的途径,几乎可以用下列标语概括:
优良
迅速
低廉
任选两项!
这是块系在美国中西部某制造厂厂长办公桌上方的标语牌。那位干得有声有色的厂长曾一面看看标语,一面对一位偶然来参观的年轻人诉说美国企业实际上是如何经营的。他说:“如果你要产品品质优良,又要生产迅速,就要不惜血本。如果你想产品做得又快又省钱,没有问题,但过不了冬天,品质就撑不下去了。如果你又要有好品质,又要价钱合理,那也可以,但别想一口气把产品做出来,说不定要花一辈子的时间呢!”这名参观者天真地接腔同意道:“你总得用一个条件换其他两个条件。”
那个时候我们的确会同意这说法,美国就是在几乎全由卖方主控的市场上,运用这种交换条件的做法,变成支配全球的经济机器。第二次世界大战之后,由于世界各地生产能力下降,全球均渴望买到大量制造的产品,因此这种做法相当奏效。
后来,有人想出了反击的方法:三管齐下,品质、速度、成本兼顾。
美国的竞争对手想到了如何在较为省时、省钱的情况下,设计和制造大量更好的产品,像是汽车、电视、相机、手表、机具、高技术零组件、传真机,甚至棒球手套。同样的压力也给服务业市场带来冲击,例如平价零售业、邮件包裹递送业、信用卡和电讯服务业。今天,无法同时迅速又经济地生产高品质产品的企业,都要甘冒严重的生存危险。一个产品优良、生产迅速,而成本高昂的企业,也许一时之间可以逃过此劫,产品优良、成本低廉,而生产缓慢的企业亦然,但要长期在......
第一章 传统经理人的迷思[3](2008-08-10 12:47:00)
摘要:<错误11>纵容能力不足的人
对有生产力的员工,我们有责任维持一个能助长他们成功的环境。留住一个拒绝自助的人,对整个团体有欠公平。
在<错误10>中,我们把管理的复杂性缩减成两项主要的挑战:使员工由入门的层次升至绩效水准,并且在它达到之后维持可接受的绩效。
在训练员工的过程中,我奉劝你避免惩罚学习者。我还建议,在员工展示出期望的行为之前,绝对不可申斥他。观察真正成功的经理人的特征,你会毫无例外地发现:成功的经理人拒绝缺乏宽容能力的人。
如果我们变得漫不经心而且避重就轻,我们就会很轻易宽容没干好的工作。身为经理人,我们因为下列各原因而跌入此陷阱:
² 因为我们感觉需要得到爱,并且在办公室内寻求它。
² 因为我们希望,如果我们不去理会问题,它会自己消失。
² 因为我们缺乏意愿或能力去面对其他人。
需要得到爱:我们都感觉需要被爱。毫无疑问,没人能坚强独立得不需要别人喜欢他,不过经理人一定要在工作地点寻求尊重。一个绝对要得到爱的人将永远无法有效地执行工作。
停下来想想曾当过你上司的人。看看你是否能分辨出哪个人你觉得最像是有效的经理人。现在以一到十的分数评估他,其中一代表随和,十代表坚定。
几项研究显示,大部分人给最佳经理人大约七点九的评分,并且解释说:这些经理人坚定而公平。由坚定与公平的组合之中才会显示出员工的尊重。
当一位经理人容许对爱的需求盖过他的责任,他就变成一个软弱的人,对不可接受的行为视而不见,而且接受任何未产生绩效的藉口。他会这样做,因为他畏惧变成一个要求严格的监工。
<错误12>眼中只有超级巨星
中等生产者并未被当成优胜者,而是被视为理所当然。他们的经理人假设他们知道自己成绩不错,但从未发给他们奖品。
如果你把你那一行最顶尖的人全请到你公司去,那一年结束......
第一章 传统经理人的迷思[4](2008-08-10 12:47:00)
摘要:<错误8>不当老板,只做哥儿们
如果在员工面前行动不格外慎重,那就表示我们不尊重他们。要是经理人未能尊重员工,员工显然不会也无法尊重经理人。
经常有经理人希望跟属下称兄道弟一阵子,第二天来上班又管理他们——员工无法接受这种事。这是一个“二选一”的情况:好兄弟或经理人之间,你只能选择一样。在此情况中,成功的混合体并不存在。
关于经理人与员工相处时应如何表现,多年来大部分人都接受过忠告。我相信绝大多数这类忠告都属于个人的见解,或者是人云亦云而已。
我建议一个较广泛的原则。就你的员工—经理人的基本关系而言:“如果有任何事你不愿跟公司的头号客户或顾客一起做,你就绝不可以与员工去做它。”如果你维持一项政策,不跟你最佳的顾客一起喝酒,那就别认为你可以跟手下一起喝酒。要是有任何事可能冒犯你的客户,那也可能冒犯为你工作的人,而且你有责任对待他像对待客户一样,也就是说,他的价值不下于出钱购买你货品或服务的人。
简单地说,如果在员工面前行动不格外慎重,那就表示我们不尊重他们。要是经理人未能尊重员工,员工显然不愿也无法尊重经理人。记住这一点:当经理人跟他手下的人在一起时,那不完全算是一种社交。公司的野餐或圣诞晚宴对员工也许是社交活动,但对你而言,那是业务。这并不表示你不该放轻松,找点乐趣,享受一段美好时光——只是你要记住:当你跟手下的人在一起时,双方的关系是专业性的,也是公事性的。
<错误9>未能设定标准
当一切有关的人把标准视为一种誓约,一种品质的要求,自尊心在公司中就会变得愈来愈强——管理也就变得愈来愈轻松。
对很多经理人而言,设定标准的观念并不讨好。事实上他们很可能希望完全避开这个话题,因为他们把标准视为由惩罚性规定所组成的工具,用于惩罚生产力不够或避免遵从的人。
把“标准”这个字眼赋予如此负面定义的人,事实上误解了这项公司经营完善的关键。因为就一家公司制定的行政纲领而言,并不需指明一定要符合的一系列规定,但不绝对要有建立个人与公司荣耀的目标。
不管我们经济或社会的阶层为何,我们都会使用到某种原则,使我们与同辈的人有别,并且提升个人的自尊。无论那些原则是写在公司的手册上,还是描述于组织文件中,它们都会存在于道理......
第一章 传统经理人的迷思[2](2008-08-10 12:46:00)
摘要:<错误3>只重结果,忽视思想
你无法光凭数字来管理员工,当经理人对人性的因素了解增加,而且有效地对应员工的心情、恐惧以及盘旋在他们心中的阴影,他们的生产力才会增加。
工作人员的表现不一致是很明显的事,有的人生产力就是比别人高。不管是什么企业活动场所:打字中心,资料处理部门,一个销售据点,或医院内的护理部门,总会有些生产力比别人强的人。
在我们较易追踪结果的区域,这种情况尤其明显,比方说销售,经理人每天都能注意到这种差别。同一城市内的每一销售据点都有两批推销人员,他们向基本上相同的顾客推销相同的产品或服务,有一批推销员的成交额就是比另一批多。我觉得在我们职业生涯的某个时间,几乎所有管理者都会对此现象感到烦恼,甚至觉得有些神秘。
观察一下自己的员工并且问:“差别在哪里?”我们会发现:表现较优的人容貌不见得比别人强,他们也不一定更聪明;在表面上他们工作也未必更卖力。
对这个问题已有几千本书问世,但我坚信,有人成功而其他人失败,其中并无了不起的神秘可言。成功者与不成功者之间的差别,就在于成功者已发展出做事的习惯,而不成功的人则否。毫无疑问的,很多因素影响成功,但大多数人领袖群伦的基本理由是他们工作干得好。
一个人的成功与失败当然是以他的工作习惯为基础,很多管理者多年以前就分辨出这一点。不过工作习惯只是冰山的一角,根据了解,增加生产力的挑战才是工作习惯的根本,由此才能解释人们为何以及如何去发展工作习惯。
<错误4>加入错误的人群
当一位经理人把高级管理层称之为“他们”,他在心中与管理单位不会有亲和感,也不会认为自己是管理阶层的一份子,因此他破坏了员工与公司其他部门之间的团结。
当告诉你别加入错误的人群时,并不是指企业的不光明手段,而是在谈如何鼓励正当的态度,下面做详细解释。
当你在为各式各样公司服务时,必须学会去注意某些危险信号。有些字眼或词句使我们知道一位经理人的处境有多危险。应特别注意代名词的使用,因为在谈到你公司的任何部分时,只有一个代名词应该使用:我们。
一家大企业的管理阶层曾表示需要一项广泛的效率分析。公司总裁、几位重要首长和我与各生产线经理会谈。大家都表示,就最近的改革而言,很多员工似乎不晓得该把注意力放在何处,以及如何适当地分......