软件工程及软件方法学
-
UML业务建模Hans-Erik Eriksson,Magnus Penker著;夏昕,何克清译本书介绍如何利用UML技术进行业务建模,如何利用业务模型来明确业务支持软件的正确需求,如何构造业务模型,以及模型应当包含什么等等。另外,本书还提供许多业务模式,同时举例说明如何从不同角度进行业务建模,从而帮助读者了解如何利用业务模型提供的信息和知识来确定相应软件系统的正确需求,并了解在软件模型中如何重用这些信息和知识。本书适合软件开发人员、管理人员参考。对本书的赞誉“对于那些渴望将日常的业务过程工作记入文档的实践者而言,这是一本精彩的实践指南。这本清晰实用的书适合所有致力于业务过程映射、维护和改进的读者阅读。”——RichardMarkSoley,OMG主席及CEO“Eriksson和Penker并非只是撰写了一本关于模式的书,这是对融合业务—信息技术的关键领域的一个重大贡献。在讲述高深理论的同时,本书还包含大量示例,其严谨的风格也是本书的一大特色。”——PaulAllen,CBDStrategiesandArchitectures,SterlingSoftware公司负责人“UML是软件工程师为自己所设计的语言,但是Eriksson和Penker却将UML进行了扩展,以描述业务过程。这个扩展后的UML能与许多常见的通用业务模式结合使用。”——PhilippeKruchten,RationaI公司过程开发部“本书是经过验证的业务建模概念和UML技术之间的完美结合。它以一种综合了软件和业务专业技术的方式提供了开发大规模、任务为主的业务系统的实际策略。”——ScottW.Ambler,《ProcessPatterns》的作者
-
软件维护(美)Penny Grubb,(美)Armstrong A.Takang著;韩柯,孟海军译;韩柯译今天软件系统已经渗透到我们日常生活的每个领域。然而,我们却一直在努力建立真正能够领带的系统。如果我们想在软件系统的各个层次结构上工作,就必须掌握改进的方法。本书为读者提供了可靠的软件维护知识,并介绍了软件维护如何影响软件改进过程的各个方面。本书是一本有关软件维护的教材,全书结构组织和论述都很严谨,强调基本概念、基本原理、基本方法的阐述,全面论述了软件维护的影响因素和控制管理方法,给出比较多的案例研究和思考题,本书适合大学高年级学生阅读也适合各类软件工程人员阅读。软件维护是在软件新产品交付之后进行的修改工作。软件维护的目的是修改缺陷、提高性能或其他属性,或使该软件新产品适应经过修改后的环境。本书阐述了有关软件维护的基本概念、基本原理基本方法,并全面论述了软件维护的影响因素和控制管理方法。
-
数据结构教程彭波编著数据结构是计算机专业的重要基础课程,也是该专业的核心课程之一,它足一门集技术性、理论性和实践性于一。体的课程。本书介绍了抽象数据类型和基本数据结构,阐述了各种数据结构内在的逻辑关系,讨论了各种数据结构在计算机中的存储表示,给出了在各种数据结构上的基本运算及算法实现。内容包括:数据结构概述、线性表、栈和队列、串、多维数组与广义表、二叉树与树、图、查找表、内部排序、外部排序、文件和数据结构程序设计方法。书中使用类C语言作为算法描述语言,且所有算法都可以在任何一种C语言的开发环境中实现。书中每一章后面都配有适量的习题,以供读者复习提高自身水平。本书可以作为高等院校计算机专业及相关专业的教材。对于计算机类专业的学生或从事计算机工程与应用:工作的科技工作者,本书也是一本实用的参考教材。
-
数据结构习题解析与上机指导周云静编著本书共分四部分,分为习题与解析、上机实验指导、模拟全真试卷、参考答案等。
-
软件质量工程洪伦耀,董云卫编著本书从软件工程的实际出发,详细介绍了有关软件质量管理、控制、保障及度量的程序、方法和技术。考虑到软件可靠性是软件质量中最重要的因素,本书对软件可靠性模型及其应用、软件可靠性测试、软件可靠性数据收集和处理进行了深入的论述。本书是在广泛参考了国内外有关资料的基础上,结合作者多年来在软件工程、软件质量和软件可靠性方面的研究成果,特别是近年来作者在软件公司任职期间的体验,精心写成的。全书内容具有理论联系实际、系统及简洁等特点,在软件开发、使用和维护方面具有较强的工程应用价值。本书可作为软件项目管理人员、开发人员、系统分?鋈嗽奔叭砑房突У牟慰际椋部勺魑扑慊蛉砑こ套ㄒ档母吣昙堆⒀芯可慕滩幕虿慰际椤?随着计算机与因特网的普及和社会信息化进程的加快,计算机软件的地位已发生了巨大的变化,它已成为支撑社会正常运行和发展的重要基础设施。软件变得越来越复杂,人们对软件的要求也越来越高,特别是对软件的可靠性、易用性、应变性和兼容性等各方面都提出了很高的要求。软件的生产方式也发生了巨大的变化。开始时是手工业生产方式,软件的质量依赖于软件编制者个人的技艺和才智。后来,演变为工业化的规模生产,软件成为软件公司一批开发人员共同协作的产品。这时,软件产品的质量在很大程度上取决于软件公司实施的开发过程的优化程度和具体的管理水平。现在,又进一步扩展为软件生产的社会化。一个软件系统常常要由不同软件专业公司生产的软件构件产品集成而成。于是为保证软件的质量,又要求有相关的统一标准和协议,以及按照标准进行的测试和认证。软件质量的控制和管理技术是一门实践的技术,它是根据软件开发的大量实践经验积累而来的。这其中有很多成功的经验,也不乏惨痛的失败教训。坦诚地讲,我们国家软件产业发展较晚,目前真正能称得上是有一定规模的,具有大型自主软件开发能力的软件公司还不多,还缺乏这种规模化开发软件的实践经验。因而,人们往往对软件质量管理的重要性和必要性认识不足,理解不深,同时也缺乏相应的量化的实际数据。大家知道,只有在大量数据的基础上才能做到软件开发过程的真正的优化,而数据要靠长期实践的积累。洪伦耀教授和董云卫高级工程师联合编写的这本《软件质量工程》一书,全面、系统地介绍了国内外流行的软件开发过程中实施的质量管理、控制、度量和保障技术。其内容大都是根据他们多年来的实践经验,从国?谕饨闲隆⒔铣墒於冶冉鲜涤玫募际踔芯《吹摹1臼榈某霭娑杂谥傅嘉夜砑档穆蚣纳迫砑返闹柿浚俳夜砑档姆⒄箍隙ɑ崞鸬椒浅V匾淖饔谩M蔽乙财谕樗孀盼夜砑档男纬珊头⒄梗夜萍既嗽蹦茉谖铡⑾獾娜砑⒓际醯幕∩希ü陨泶罅咳砑⒌氖导欢系刈芙帷⑻岣吆痛葱拢徊轿夜砑⒓际醯姆⒄棺龀鲇τ械墓毕住?自从第一台计算机诞生以来,信息技术革命无疑成为当今世界最快的技术变革。今天,计算机的应用已渗透到了人类现代生活的各个方面,人们对它的依赖程度与日俱增,因计算机系统故障而引起危机的可能性也逐渐增大。同时,在计算机的发展与应用中,存在着严重的软/硬件不均衡发展的现象,软件的质量、性能、生产率及耗费等,都无法与硬件同步。随着人们对软件需求的日益增大,软件产品的功能复杂性和结构复杂性越来越高,因软件系统失效造成计算机系统失败和瘫痪的重大事故屡见不鲜。例如:(1)在美国宇航局的''''旅行者''''计划中,天王星探测器就是因为深度太空网络软件发送信息迟缓和能力衰竭而处于危险之中。(2)软/硬件干扰问题是使一些航天飞机经常推迟发射时间的主要原因。(3)在美国国防部某项工程中,事先设计好的先进程序无一可用,从而导致AFTI/F-16的首航时间耽搁了一年。关键软件系统的失败也影响了大量民用项目和科学工作。例如:如果不是数据分析程序由于''''越界溢出''''而隐藏了异常数据,南极上空的臭氧空洞本来可以更早引起科学界的注意。软件失效也可导致巨大的经济损失。例如:1990年1月15日,美国一通信中转系统新投入使用的软件发生了错误,导致主干线远程网大规模崩溃;1991年夏季,美国一系列局域电话网由于软件问题而中断。这些严重事故使?郧Ъ埔揽康缪豆驹擞滴竦墓舅鹗Я司薅钭式稹?出错的软件还会危及人们的生命安全。例如:(1)美国的Therac-25放射性治疗仪曾以其安全性著称于世,但有一次由于其软件出错而使其控制系统失灵,导致多名病人失去生命。(2)据专家们统计后指出,软件控制系统对飞行员在异常飞行期间发出的紧急查询反应不当,是发生飞行事故以致造成机毁人亡的主要原因。这一切表明:软件中哪怕是很微小的差错,都可能导致生产、生活和其他各项活动中的质量事故,如产品报废,商业停顿,甚至是人员伤亡。面对这样一些问题,在要求软件质量越来越高的情况下,应该怎么办呢?答案只有一个:因为软件产品是人类智力活动的产物,所以软件的质量问题,也只有用人类的智力活动来解决!本书就是考虑到目前人们对高质量软件的迫切需要而撰写的,它集中讨论了与软件产品质量密切相关的质量管理、质量控制、质量度量和质量保障等问题。本书的内容实际上就是人们为了解决软件的质量问题,在总结长期的开发实践经验的基础上逐渐形成的智力成果。另外,从软件产品在质量范畴内区别于硬件产品的特殊性来说,撰写本书还有如下的理由:(1)软件质量是在开发过程中构建(需求分析、设计、编码和集成等)人软件产品之中的,开发过程完成之后是加不进去的。(2)软件产品是由许多人通过集约式作业方式,在绞尽脑汁的智力活动中开发出来的,而人的思维活动是非常易变的,集约在一起的众多人的思维更难保持协调一致。(3)导致软件产品质量低下的差错和缺陷,是随着软件开发的进展而向后面阶段传播的。值得注意的是,这些差错和缺陷的危害程度,随着从它发生到被纠正的时间间隔的增加而成倍地增长。(4)通过智力活动开发出来的产品,它的质量也只有通过智力活动来确认和检验,而不能像硬件产品那样,可以用有关的测量仪器来检验。相应地,针对质量方面的上述特殊性,软件的质量管理、质量控制、质量度量和质量保障要解决的主要问题有:(1)如何建立必要的标准、规范、条例及程序,使开发人员和开发过程保持以下三个方面的一致性:横向的,人与人之间的一致性;纵向的,一个开发阶段与另一个开发阶段的一致性;产品(含阶段性产品)的输入与输出的一致性。(2)如何将一个软件产品的整个开发过程分解为若干个可实现并可管理的部分;对每个部分,应用相应的、有效的技术和方法,展开软件的开发活动并对其阶段性产品的质量进行验证和确认,保证其高质量;最终组合成整个软件产品,并验证和确认其质量是否达到要求。(3)如何尽可能地避免在开发中产生差错;如何尽可能多地检测出并纠正已经产生的差错;当差错不可避免地残留在软件中时,如何容差。(4)当差错不可避免地引入到软件中时,如何保证自它们引入时起,尽可能早地发现并纠正它们。(5)软件这个无形的智力产品,它的质量究竟如何定义,又如何度量。(6)如何控制软件的开发过程、开发资源和产品,使得产品质量、工期和费用实现最佳的折中。进行质量管理、质量控制、质量度量和质量保障的目的就在于:在开发过程中,在有限的资源限制下和规定的时间内,把软件产品的质量构建人软件产品之中。当读者在阅读这本书的时候,抓住上述问题,就可以更好地理解书中各章节的内容。同时,在读完了书中各章节之后,对上述问题也就会有更实质性的把握。本书作者洪伦耀教授,在软件可靠性和软件质量方面,有着近二十年的研究和教学经验;作者董云卫高级工程师,曾就职于西安协同软件股份有限公司、西安软件工程技术研究中心等单位,一直从事软件项目的组织、管理和软件的实际开发工作以及软件工程理论与应用的研究。2003年,本书的两位作者先后就职于国家863软件专业孵化器西安基地(西安软件工程技术研究中心),参加863计划相关课题的研究工作。西安软件工程技术研究中心是西安市科学技术局批准设立的独立的科学研究与技术开发机构。它围绕西安软件产业的发展和国家863软件专业孵化器的建设,专门从事技术开发及测试评估、质量咨询等软件工程技术服务。在此期间,课题组对软件质量管理、控制、度量以及软件质量保障的各种技术和方法的深入探讨,使作者长期积累的有关软件质量管理的研究与教学经验以及软件开发经验得到了系统升华,拓展了作者的视野,并使作者坚信:科学的软件质量管理、控制、度量和保障的方法和手段是可以形成一种面向软件产业发展的服务能力的,一旦这种能力与软件产业结合并广为产业界所接受,它将对软件产业的发展起到巨大的推动作用。这也就是作者写作本书的用意所在。本书是面向软件项目开发领导部门、管理机构、质量组织、开发人员和软件项目的购置者、使用者和维护者的工程实用性读物。同时,本书也面向培养上述人才的大专院校教师、高年级学生、研究生。因此,本书不追求冗长、复杂的理论叙述,而着重于''''做什么''''、''''为什么做''''、''''怎样做''''、''''结果是什么''''等这样一些实用性软件工程的内容。本书共分7章。第1章作为基础,叙述了软件与硬件之间的区别及质量、软件质量等一般性的概念,并叙述了造成软件质量低下的根源:软件中的差错。第2章、第3章和第4章分别介绍了软件质量管理、质量控制和质量度量。由于软件可靠性是软件质量中最重要的质量因素,因此第5章专门对软件可靠性、软件可靠性模型及其应用进行了专门的论述。由于上述各质量活动不能无序、无计划自动进行,而是要在强有力的监督和保障之下,落实到开发过程的每一个阶段和每一个环节,因此,第6章安排了这样的内容:软件质量保障。第7章对近期软件工程和软件可靠性研究的某些问题做了简单的提示。作者特别要感谢863计划计算机软硬件技术主题专家组和西安市科学技术局领导富有远见的支持;还要感谢西安软件工程技术研究中心楼文晓主任和西安协同软件股份有限公司前任总经理苏新雷先生,正是有了他们对软件质量在软件产品开发过程中及软件产业发展中重要地位的深层次理解,才使我们有机会尝试、应用和实践软件质量管理、控制、度量和保障的理论和方法;更要感谢郝克刚教授在写作过程中给予作者的指导,他还在百忙之中给本书撰写了序言。武汉大学软件工程研究所的徐仁佐教授,中国航天总公司204研,究所的宋晓秋(博士)研究员,空军工程大学的王兴亮教授以及西安软件工程技术研究中心、西安协同数码软件股份有限公司的同仁对本书的编写和出版给予了热情的关心、帮助和支持,在此一并表示感谢。参加本书编写、审校、资料收集和其他辅助工作的还有:凌惠娟、孙训峰、姬伟锋、王海滨、杜宏、安宣、李水清等。由于作者知识水平和工作经验有限,书中难免有错误和不当之处,敬请读者指正。
-
系统分析与设计教程(美)Gary B.Shelly等著本书全面讨论了系统开发生命周期的方方面面,从商业案例分析、需求建模、企业建模、开发策略、数据设计、用户界面设置、系统架构、系统实施和支持到最新的发展趋势,内容丰富,信息全面,完美地结合了理论和实践工具。本书的主要特点:■ 每章开篇采用学院书店的系统开发案例来生动说明每章主题,便于理解。■ “On the Web”提供了万维网链接,使学生可以了解重要课题的更多信息。■ “What Do You Think?”专栏提出多个问题,探讨不同的观点,鼓励批评性的思考,可作为课堂讨论的话题。■ “Learn It Online”小节提供了基于Web的练习、实践测试以及游戏。■ 每章都提供一组练习,包括复习题、讨论主题以及项目实践,以便学生实践该章所介绍的技巧和概念。■ 每章中的“Apply Your Knowledge”小节提供4个小型案例,让学生在真实的场景中使用该章介绍的技巧和知识。■ “Case-Sim:SCR Associates”小节是一个独特的、交互式的基于Web的案例分析,其中的“Web Preview”描述了有关该案例的在线内容。■ “Systems Analyst's Toolkit”包括跨阶段的多个工具,如交流工具、CASE工具、财务分析工具、项目管理工具、面向对象工具以及因特网资源工具。■ 附带光盘上的“Student Study Tool”为学生提供了一组资源,帮助他们理解和掌握各章的内容。
-
ATM技术实用教程韩毅刚本书由两个有机部分组成:部分是ATM技术基础,这是ATM技术的专家级的导引,介绍了协议、物理层、呼叫控制过程、交换、流量管理以及网络管理。第二部分是ATM服务的提供,简称ATM业务,它描述了如何通过ATM提供服务,给出今天重要的ATM应用的详细方案,通过设计实例帮助网络工程师快速创建实际的ATM应用系统。本书适合大学计算机和通信系作为ATM课程的教材或教学参考书,也可作为计算机网络工程师和通信网络工程师的参考书。
-
极限编程实践指南(美)David Astels等著本书主题:·如何预见你要构筑的软件系统·如何编写业务导向代码·如何编写有效的用户故事和验收测试用例·有关集成、重构、测试与交付的最佳实践·如何计划项目的迭代与发布周期·如何应对实施XP的挑战本书特色内容:·在实际项目中应用XP的原则·在整个项目周期内的最佳实践·理解开发人员、管理人员及客户等每一个参与者的角色·各种最常见的XP实施问题的具体解决方案极限编程爱好者必备的——站式指南弹指间,极限编程(XP)已成为先进的敏捷方法中的代表模型。本书是一本简明、易懂、全面的XP指南,包含了XP的诸多最佳实践,对于实施XP大有裨益!本书并非仅仅停留在介绍XP的基本概念和原则——如简单性、沟通和反馈,更重要的是演示了如何在实际项目中综合运用这些原则。本书通过一个完整的案例分析,描述了整个项目生命周期、每一项关键任务以及每一个XP参与者(开发人员、管理人员及客户)的角色。您想从XP中受益吗?您想一帆风顺地实施XP吗?那就从本书开始吧!
-
项目管理办公室解决方案(美)J·肯特·克劳福德(J.Kent Crawford)著;戴炼译;戴炼译我们希望本书围绕着以上所有四个方面展开讨论,因为没有以所有层次的认可与接受,项目办公室的文化很难在组织中开展。项目经理应了解他们的项目是如何适应于组织整体的,如何适应于项目组合的,如何适用于战略的。项目经理的经理和项目办公室总监需制定一个计划,通过这个计划,他们能够提高项目和项目经理的绩效,并领导项目知识在整个公司文化中的传播。那些曾经担当过项目办公室先锋职责的人们,将掌握这些领导大家的指南。J·肯特·克劳福德是ProjectManagementSolutions公司的首席执行官和创造者、项目管理研究机构的前任总裁,还是许多行业出版物、报刊文章和有关项目办公室专题学术讨论会的作者和合著者。克劳福德目前是CenterforBusinessPractices的顾问委员会成员和项目管理认证专家。戴炼,项目管理专业人士(PMP)、英国特许公认会计师公会(ACCA)会员,现为国家外国专家局培训中心特聘专家,致力于与项目管理相关的项目管理专业人士(PMP)考前培训与企业内部培训工作。曾在朗讯等跨国公司工作过,积累了丰富的项目管理实践经验。于2002年底作为中国地区代表,参加了项目管理协会(PMP)专为PMP考试而设的考试命题活动。主要译著:《优势能力》、《怀特曼项目管理词汇手册》。?臼槲谱胖葱泄芾聿恪⑾钅堪旃易芗唷⑾钅烤淼木砗拖钅烤硭母鲋匾愦蔚墓芾碚撸晗嘎凼隽舜诱铰越嵌冉⑾钅抗芾戆旃业闹匾裕约叭绾蜗低澈透咝У毓芾碜橹谕苯械亩喔鱿钅俊Mü私庀钅堪旃业谋尘埃约八胂钅抗芾沓墒於群拖钅孔楹瞎芾淼牧担宰橹龀隹焖倨拦溃傅计笠底榻ㄓ行Ф室说南钅抗芾戆旃遥佣诱迳咸岣呦钅亢拖钅烤淼募ㄐВ⒘斓枷钅恐对谡龉疚幕械拇ァ?
-
机械系统控制软件(美)D.M.Auslander等著为复杂机械设备构建实时软件的完全指南! 机械系统的性能日益成为其控制软件的功能,因此,在系统设计和实现的每一个阶段,都必须考虑控制软件的计算能力及其所受到的限制。本书全面阐述了如何为今天日益复杂的机械设备构建实时控制软件。 本书介绍了实时软件开发的每一个步骤:性能说明书、设计文档、模拟、实验室和生产原型设计、生产系统的开发与维护等;讨论了在任何一种机电环境下,如何最大限度地保持实时软件的可靠性和一致性。本书涵盖以下主题: ·为机电系统构建实时软件所面临的挑战 ·如何有效实现实现任务内及任务间通信 ·状态转换逻辑计时、任务调度、多任务以及基于中断的调度 ·基于图形和字符的操作界面 ·直接实现系统控制软件,包括MATLAB模拟 ·分布式控制:多处理器体系结构、TCP/IP与UDP、应用层编程 ·详细的案例分析同时采用Java和C++语言 本书中的详细实例和案例分析同时采用Java和C++语言,所涉及的应用领域非常广泛,如皮带传动、炉温控制以及成型加工等。