软件工程及软件方法学
-
软件工程齐治昌,谭庆平,宁洪编著本书是由教育部组织遴选出来的研究生教材。本书比较全面、系统地介绍了软件工程的概念、技术与方法,主要内容包括;软件开发模型,软件项目管理,计算机系统工程,需求分析,软件设计,编码与测试,软件维护,配置管理,软件重用,快速原型,集成化CASE环境,Java与Internet环境下的软件开发,对象链接与嵌入(OLE)技术,CORBA与分布计算技术等。书中含有丰富的例题与习题,便于教学与自学。本书强调理论与实践相结合、软件开发方法与CASE工具相结合,可作为研究生或高等学校计算机专业高年级学生教材,也可作为软件开发人员的参考书。 -
数据挖掘技术及其应用刘同明等编著国防科技图书出版基金资助。本书主要内容包括:绪论;面向属性的归纳学习技术;数据挖掘中的粗糙集方法;基于神经网络技术的数据挖掘方法等。 -
数据结构陈雁主编本书是教育部高职高专规划教材,是“计算机应用与维护专业系列教材”之一。本书主要内容包括:数据结构的基本概念、线性表、栈、队列、树、图、查找、排序等,最后部分介绍了―些实用算法和面向程序设计中数据结构的描述方法。本书每章配有习题及上机实习题。本书可作为高等职业学校、高等专科学校、成人高等学校以及本科院校二级职业技术学院计算机类专业或信息类相关专业的教材。也可作为非计算机专业学生选修课或辅修课的教材,还可作为计算机应用人员和工程技术人员的自学参考书。 -
企业资源规划叶宏谟著;飞思科技产品研发中心改编一直以来,在企业资源规划(ERP)中,制造的部分最难完成,因为制造是企业流程中最复杂的!本书就是为了揭开ERP中有关制造规划与控制方法的神秘面纱而作的。■为了使企业用户、ERP从业者和学生更加得心应手地了解其原理,本书采用国际标准,以实际事务为导向,配合以完整的理论,融合不同技术,逻辑清晰地向读者讲述了ERP的基本原理。本书所有表格均以电子试算表写成,读者可从中确切掌握所有程序的计算逻辑,学习起来能够游刃有余。■本书适合企业主管或信息专业人员进修用,也适用在资源管理,企业管理,会计等相关专业大学高年级或研究所的课程中. -
CMM软件过程改进指南(美)Joseph Raynus著;邱仲潘等译;邱仲潘译本书是用SEI的能力成熟度模型(CMM)改进机构软件开发过程的实用指南,向软件项目经理和管理员提供CMM软件过程改进的实用知识,并介绍软件寿命周期每个阶段的实现方法。本书强调软件过程定义、有效利用软件度量和常识软件项目管理。这种集成方法能帮助专业人士用CMM作为工作准则,不断实现软件过程改进。前言在我们的生活中,有时会遇到特别的人物,发现某种产品,从而改变我们对某个东西的看法。对我来说,这个人就是Joe Raynus,这个产品就是他实现的软件工程衡量标准。我在20世纪80年代末遇到他,听说他开发了一个令人不可思议的产品,可以自动生成软件衡量标准,帮助分析结果。毫无疑问,经过几个星期的讨论与评估,我不仅理解了这个产品及其工作原理,而且理解了这个人及其思考方法。简而言之,他可以把每个复杂的过程与计算简化成我能方便地理解和交流的管理术语与图表。许多软件专家还在把软件工程看成一门艺术,而Joe已经可以向产品经理说明如何把原先的知识与软件工程原则联系起来了。Joe的工作不断改进,Carnegie Mellon大学软件工程学会(SEI,Software Engineering Institute)收集和建档的知识也在不断?慕4邮鹿廊砑钅康娜硕蓟辜堑茫琒EI的能力成熟度模型(Capability Maturity Model)是用于帮助政府项目经理更好地理解参与政府工作的公司具有的成熟程度,但其大多数内容要求了解软件开发活动中如何出错,为何出错。将我在政府部门遇到的问题与在商业化市场中遇到的问题相比,我发现问题是相同的。速度、质量、要求满意度、测试方法、配置管理、项目计划与监管、成本、风险管理和预见性在小项目和大型政府软件开发中都要遇到。SEI的知识和Joe的智慧能帮助任何软件公司更好地建立世界一流的产品。他的方法简单而直接,他的例子非常明确,他的实践极为丰富。商业部门的同行在机构中领导软件改进活动时应密切关注CMM和Joe的作品,也许你还不知道,你的许多竞争对手已经实现了能在时间和质量上占优势的关键过程。Michael J. Prowse 质量与客户服务部主任Sun公司Solaris软件公司序十五年前,老板的老板把我叫到办公室,提出了三个“简单”问题:1. 支持与维护软件产品的费用为什么这么高?2. 产品可靠性如何?3. 一个软件故障的平均成本如何?为了回答这些问题,我成了查错者和制错者。几年之后,我自己开了一家公司,主要产品是自动生成软件衡量标准的工具。当时我是个经理,是软件厂商。生活中有时需要进行一些艰难的决定。我离开自己创办的公司和倍感亲切的产品,回到行业中。我看到自己的使命就是帮助客户回答上述问题。不久,我发现,要了解这些问题,就要“深入基层,了解民情”。即使是一组软件衡量标准,也不可能对这些问题提供现成的方案。每个客户的情形各不相同,除非了解特定问题,否则不可能提出建议。没有像了解美国空军一样了解软件管理问题的机构。大约有一年时间,我曾是源选择评审委员会(Source Selection Evaluation Board,SSEB)的技术顾问。审查各种提案,很好地了解外部看到的潜在问题,这些问题的影响程度,客户有什么预期,软件生产过程可能遇到怎样的问题。之后,我成为了一名客户。结束了在SSEB的工作之后,我花了几年的时间帮助我的客户管理和控制他们的软件问题。我将软件开发过程中遇到的问题组织起来,供客户参考。有时,很明显的信息被隐藏了起来。我已经体验了他们的生活,并帮助他们解决了问题。后来我做了顾问。了解能力成熟度模型(CMM)对我很重要。我在评审小组期间进行的几次评审使我对软件管理问题有了更深的了解。与此同时,我知道有一种方法可以帮我在软件项目管理的迷途中导航。解释的灵活性保证了导航的自由度。我的解释来自下列简单的观点:做软件行业中可行和正确的事,保证软件更好、更成熟。我开始用CMM作为参考指南,用软件衡量标准作为软件过程改进工作的基础与粘接剂。我把这个方法介绍给客户,他们使用CMM,帮我改进CMM与软件衡量标准。我发现,任何事情的最佳做法是自己感到合理的方法。说明本书用苏菲的故事,讲述既聪明又愚蠢的毛拉。苏菲认为,直觉是知识的惟一真正准则,并用这些故事作为例证。这些故事适用于许多不同情形,包括软件管理过程。苏菲的故事来源于Indries Shah的《The Pleasantries of the Incredible Mulla Nasrudin》(ARKANA Penguin图书出版公司,1993年再版)。“什么是命运?”一位学者问毛拉。“无穷无尽相互交织的事件,每个事件都是相互影响的。”“这个答案并不好,我信的是因果。”“好的,”毛拉说,“你看。”他指向街上的人群,“那人就要送上绞刑架了,是别人给他银子,让他买了匕首,杀了人,还是别人看到他这么干,还是因为没有人阻止他?” -
个体软件过程(美)Watts S.Humphrey著;吴超英,车向东译《个体软件过程》(简称“PSPI”),是Watts S.Humphrey于1997年特为美国大学一年级学生编写的教科书。书中描述了很多资深的软件工程师解决软件工程问题的方法,特别是有关软件项目计划和软件质量控制方面的先进方法,并提供了很多练习来帮助读者掌握这些方法。美国Embry-Riddle航空大学计算机科学系以本书初稿为教材,为该系一年级学生讲授了这门课程,经验证明,这对造就学生成为合格的软件专业人员很有帮助。每章之后还附有习题,以帮助读者复习与掌握该章的主要内容。由于本书是在两个学期的计算机科学或软件工程导论课程中使用,所以本书的内容分成两部分,在第一学期中讲授时间管理(前10章),在第二学期中讲授质量问题(后10章)。本书实用性与可读性较强,可作为高等学校计算机软件工程课程的教材,也可作为工程技术人员自学个体软件过程的教材,是进行软件过程改善和能力成熟度模型SW-CMM评估的重要参考资料。本书同样适用于软件开发项目经理、程序员和一般编程爱好者在开发软件时参考。 -
基于项目的软件工程(美)Evelyn Stiller,(美)Cathie LeBlanc著;贲可荣,张秀山等译;贲可荣译本书是为初学者提供的集软件工程实用性和实践性与一体的第一本教科书。通过本书的学习,没有工作经历的学生也可以获得现实世界的实践经验并亲身体会到使用软工程技术的益处。本书阐述了软件工程生命周期的各个阶段,并通过两个现行案例分析来认识开发过程中的概念化、分析、设计和实现阶段。这两个案例可以由一个小型软件开发项目,学生可将对各阶段的理解的经验应用于其中。本书集中讨论面向对象软件开发,并按此范型组织内容。本书不依赖于具体的程序设计语言(必要的代码示例用Java给出),并采用统一建模语言(UML)的子集来为软件建模,解释学生工作中需要用到的符号。本书为学生而写,同时对于那些想在软件项目分析、设计、实现和测试方面获得切身体会的专业人员也非常适用。 -
极限编程实施[美]Ron Jeffries等著;袁忠国译极限编程(XP)是一种经历过实践考验的轻量级软件开发方法学。本书阐述了极限编程的核心法则,详细介绍了XP开发的每一个步骤,涵盖了XP方法的精髓—实施技巧、可能遇到的障碍和成功实施的经验之谈。本书共分34章,分别介绍了XP项目的生命周期、现场客户、用户故事、验收测试、故事估算、小型发布、迭代规划、结对编程、单元测试、指导发布和迭代、处理缺陷等内容。通过阅读本书,客户将学到简单、有效的交流方式,从而确保需求得到满足,并指导项目走向成功;程序员将学会如何快速地提供业务价值,如何应对不断变化的需求,如何获得客户的信任和支持;管理者将学会如何度量项目进度,如何度量质量,如何回答非常重要的问题—项目何时能完成。本书是为参与XP项目的客户、程序员和管理者编写的,也适合于软件开发人员、软件项目管理人员以及软件工程研究人员参考。 -
领导软件开发团队(美)理查德·怀特黑德(Richard Whitehead)著;吴志明译;吴志明译译本书从一个软件开发团队的领导艺术的视角,围绕着在软件开发进程中团队领导将面临的种种现实问题,分别就团队的建设和领导、人际关系处理、压力和冲突管理、项目计划和决策制定等方面,以问答形式给予了切中要害的解答和切实可行的建议。所有这些建议均来源于作者作为译名开发技术人员、软件团队领导的多年实践和丰富经验,伴随着这些反传统的、创新的深邃而睿智的观点,很快你就能成为一名有效的领导者,就像你曾经是一名优秀的开发人员那样。译者序从20世纪80年代以来,团队及团队建设一直是国际管理学界最流行的两个术语之一。一方面,许多学者总结了自19世纪40年代以来的一些有关团队的研究成果,提出了一些有关团队成员角色理论及构建有效团队的途径和方法;另外一方面,从19世纪60年代以来,一些大企业顺应外部环境的迅速变化,在企业内部采用团队管理的模式获得了巨大成功。这些因素导致了团队及团队管理模式的流行。团队是应组织外部环境及组织结构发生的变化而产生的。随着组织结构的扁平化和柔性化的发展趋势,为了适应不断发展变化的外?炕肪场⒀杆俣钥突У男枨笞龀龇从Γ橹械暮芏喙ぷ餍枰韵钅康男问嚼唇饩觯枰榻偈毙缘南钅客哦印U庋扛鋈硕伎赡芑嵊谐涞毕钅客哦恿斓嫉幕帷=裉炷且桓鐾哦又械某稍保魈炷涂赡艹晌硗庖桓鐾哦拥牧斓迹虼耸欠衲芄怀晌细竦纳踔潦怯判愕耐哦恿斓冀晌矶嗳酥耙瞪闹械男碌奶粽健?初次涉足这个领域的专业人士头脑中一定会有很多问号,在实际工作中也会遇到很多困惑:团队领导往往不像传统上的直线领导那样具有组织系统所赋予的权力和权威,那么团队领导该怎样发挥自己的影响力呢?我过去是一个技术专家,而现在要面临很多技术之外的事情,我该怎样取得技术与管理工作的平衡?我的下属很多人在技术方面比我更在行,我怎么才能领导得了他们呢?我该怎样协调项目组成员、公司管理层、公司中的其他部门、外部的客户等方方面面的需求和利益呢?……这许许多多的问题将会在《领导软件开发团队》一书中找到答案。本书的作者在传统及等诸多行业中,而且在从新兴的高科技企业到大型跨国企业等不同规模和文化的企业中有广博的经验,近年来领导了许多软件开发项目团队,在团队领导方面具有丰富的经验。通观本书,有这样几个特色:一是体系完整、观点新颖。本书较为完整地向读者展现了团队管理中所涉及的工作内容,包括团队的领导如何着手工作、如何进行项目的计划和过程监控、如何建设项目团队、如何获取客户的需求、如何解决项目进程中出现的问题并进行决策,等等;特别是关于团队领导如何准确定位自己的角色、发挥领导应有的作用方面的内容,对那些新任团队领导或者出身于技术专家、专业人士的团队领导尤其具有参考价值。这些内容将启发他们完成从专家到领导的角色转换。全书中贯穿了以客户为导向进行项目管理的思想,同时在项目团队的管理中特别强调了对人的管理,这些都是与当今世界管理发展的大趋势相吻合的,因此在实践中具有重要的指导意义。二是操作性强。作者本人具有极强的实践背景,全书的组织是以一个新上任的团队领导的团队管理工作过程为脉络的,涉及了大量的实际工作中的问题。书中的团队领导所面临的问题也是现实中的团队领导所面临的最普遍的问题。读者在与书中的团队领导共同思考和解决这些问题的过程中,必将提升实际的管理技能。书中还将一些重要的知识和技能以“信息栏”和“技能百宝箱”的形式呈现,令人一目了然。三是行文简洁流畅。本书不是学院派的理论著作,所采用的语言生动活泼,读起来比较轻松愉快,让您感觉是一个长者在对您进行悉心的指教。本书虽然是以软件开发团队的管理作为实例,但其中很少涉及纯技术内容,管理和解决问题的思路和方法具有跨领域、跨行业应用的可能性,因此本书不仅适合应用于软件开发团队的管理,对于其他行业的团队管理也比较适用。尤其适用于以项目管理方式运作的项目团队的领导。需要指出的是,本书不仅适用于在团队管理一线的管理者,也适合学术研究工作者参考。本书的翻译得到了许多人的支持和帮助。在初稿的翻译中,邓园、郭久龙、王瑶平、李晓娟等翻译了部分章节;其余大部分章节由我本人翻译;全书的译稿由我统一修改审订。此外,本书的翻译工作还得到了武欣、常玮、李华等人的热情帮助。由于水平所限,难免会有错误和不当之处,恳请读者批评指正。吴志明前言2002年3月于清华园为什么写这本书随着软件工程作为一个行业逐渐成熟起来,越来越多的人意识到:团队领导(负责项目技术方向以及管理团队中其他工程师工作的人)对一个软件开发项目的成功起着至关重要的作用。本书给软件开发团队的领导们提供了所需的帮助,使他们担负起领导项目的责任。这是一本很实用的书,包括了许多已经被尝试和检验过的建议和技术,能帮助领导们战胜常见的问题,并带领其他成员做出正确的决定,按时、圆满地完成项目。这本书是为哪些人写的本书是为那些工作要涉及到以下两方面内容的人写的:*需要做出有关软件产品的结构、设计或编码方面的详细决策,或亲自从事软件开发工作的队员。*领导、管理或监督开发软件的人员。本书尤其是为那些第一次领导软件开发团队的人,或者那些觉得自己与人相处的技能不如技术技能那么好,并感到在人际沟通方面需要帮助和指导的人写的。本书最适合于那些领导中型团队(4~8人)的人。但从某种程度上说,它也可用于只有一个人的项目的领导,或者用于较大团队的领导以及复合型团队的领导。本书对实习工程师来说也很有用。本书并不只是要教授管理理论,也并非介绍各个领域的最新思想。本书只是推广那些在实际工作中已经证明有效的实践经验。如何做一名软件开发团队的领导一个真正好的软件开发团体领导需要有很强的技术能力,同时也要非常善于发挥其他人的能力。团队领导是一个独一无二的位置,它既需要精细的软件知识和技能,又需要超越细节,并具有更宏观的视野。领导团队的方式对软件项目的成败有着决定性的影响。团队领导决定着软件的质量、技术决策的合理性、团队精神以及团队成员喜爱的激励方式。成为一名团队领导迫使您从不同的角度看待软件开发。作为一名开发人员,您工作的好坏是根据您所做的设计和编码的质量来评判的。但是作为一名领导,则有两种不同的评判方法:*由您的老板进行评判。根据项目的完成速度、费用的高低、客户或最终用户的满意程度来评判。*由您的团队进行评判。根据您的决策合理与否、您与他人共同工作的方式来评判。本书的目的是为了帮助您更好地完成以上的这些事情?佣鼓永习搴推渌哦映稍蹦抢锘竦酶嗟纳褪逗妥鹬亍?领导软件开发团队是一项充满压力的工作,这项工作也存在风险。虽然它的压力或风险可能不如带领一个足球队那么大,但是它也有同样的紧张和压力,您要设法满足很多渴望获得成功的人们,而且一旦做错了就没有重新再来的机会了。并不奇怪,这不是一件人人都能做好的工作。但当您做好了这项工作时,您也就得到了更多的回报。一旦您成功地领导了一个项目,您就希望继续做下去并一直保持成功。我希望这本书能帮助您获取和保持成功。本书是如何组织的本书是围绕着领导在每天工作中所面临的现实问题进行组织的,例如,“我该如何起草项目计划?”以及“我该如何赢得团队的尊重?”。许多现实问题既有关于人员方面的问题,也有关于技术方面?奈侍猓臼榘颜饬礁龇矫娼岷掀鹄矗魑掣鎏囟ㄇ榫跋碌牟煌矫婕右钥悸牵皇堑弊鐾耆掷氲奈侍狻?正如您从目录中所看到的,本书的结构按照一些主要方面的问题集合起来。所以,必要的话,您可以从某个特定方面的问题开始阅读。各部分内容都是完整独立的,并且当提及与其他部分和参考书目有关的内容时会加以指明,因此可以按照任何顺序进行阅读。关于本书中的职位名称,如“团队领导”和“项目经理”软件行业没有一套被广泛认可的职位名称。不同的公司中的职位名称各不相同。本书中,我使用的是以下的职位名称:*开发人员:那些做软件开发工作的人。他们做出具体的技术决策,从事设计、编码、测试、文档编写等工作。他们对自己所从事的开发领域负责,但不必对整个项目负责。*团队领导:那些做出关于软件项目的结构、设计、编码等技术决策的人。主要负责整个项目的技术上的成功,指导和检查其他团队成员的工作,负责软件产品的质量;有广泛的、先进的开发经验,或许要亲自进行软件开发工作;在一个小型项目中,可能也充当项目经理的角色。*项目经理:负责计划、预算、与管理层联系、与客户谈判。可能受过技术培训,但是不做开发工作;在一个大型项目或跨领域项目里,可能要指导好几个团队领导开展工作;主要负责项目按时、在预算之内交付。*软件经理:开发人员的直接主管。负责招聘、解雇、培训和发展员工;同时也负责工作程序和工作规范;为组织设定策略性的技术方向;是管理团队中的一部分。如果您的工作内容(或者您的部分工作内容)涵盖了前面所定义的团队领导工作,那么这本书就是为您写的。不论您是被正式地授予领导职责,还是仅仅负有部分领导职责,这些都不是很重要。您的职位名称也无关紧要。这些职位的区别不是很明显。大多数的团队领导也做?⒌墓ぷ鳌C扛鐾哦恿斓级急匦胱鲆恍┘苹约捌渌钅抗芾砉ぷ鳌1臼橹校颐挥邪凑沼伤醋稣庑┕ぷ魅挝穸星郑抑皇窍刖∥宜芨切┬枰娜颂峁┳詈玫陌镏?联系作者如果您想对本书的任何方面的内容提出评论,可以浏览作者的的主页:www.richardwhitehead.com。 -
可视化项目管理(美)凯文·福斯伯格(Kevin Forsberg),(美)哈尔·穆兹(Hal Mooz),(美)霍华德·科特曼(Howard Cotterman)著;刘景梅,许江林,于军译;刘景梅译译本书结合项目管理和系统工程,详细讲解一种独特的可视化项目管理方法。书中采用精心设计的图表和3D模型,将项目管理的顺序管理和情景管理行为与项目管理的通用词汇表、团队协作、项目周期和项目管理元素结合在一起,使复杂的项目管理形象化为简单的流程和原则,为读者提供了一种易于理解的界面。作者为国际著名项目管理模型与实施的设计人与培训师。书中提出的项目管理过程及技术,已在3万多名项目经理和朗讯等100多个公司的成功实践中得到印证。本书列国外实用类项目管理图书销售之首。
