软件工程及软件方法学
-
现代软件工程郭荷清主编本书根据教学、科研和工程项目的经验编写,共分三大部分。第一部分软件工程的基本原理包括可行性研究、软件需求工程、软件设计工程、软件测试工程和软件维护工程;第二部分软件工程方法包括传统开发方法、快速原型开发方法、面向对象开发方法和Web技术开发方法;第三部分软件工程管理包括软件质量管理、软件项目管理、软件配置管理和软件安全管理。全书较全面地反映软件工程的全貌,既兼顾了传统内容又包括新技术的发展,便于读者学习。本书可作为高等学校计算机科学专业、计算机软件专业和计算机应用技术专业的教材,也可供软件开发人员与软件管理人员作参考。
-
软件测试的有效方法(美)William E. Perry著;兰雨晴,高静等译;兰雨晴译本书提供了两种可以改进软件测试质量的策略,一是对团队软件测试能力的评估,二是对软件测试人员测试资格的评价。本书介绍了一套软件测试的方法,这种方法对应于软件开发生命周期的各个阶段,用11步软件测试过程详细讲述了从制定测试计划到执行测试以及获得最终测试结果的全过程,并对测试策略、测试工具、测试方法、测试指标等具体内容进行了全面的阐述。另外,本书还对一些特殊系统,如客户/服务器系统、基于Web的软件系统的测试过程做了专门介绍,并提出了一整套的测试指标,使测试活动能够得到量化的结果,便于做出测试结论。本书内容丰富、实用性强,既可作为计算机及相关专业学生的学习用书,同时又可用作广大软件工程技术人员的指导用书。为了保证软件能够按照计划运行,我们就需要了解有关软件测试的技术。否则,可能会导致生产率下降、收入降低、顾客不满意等情况的发生。本书提出了一个11步软件测试过程,涵盖了评价软件的所有测试内容。这个测试过程包含了大量的工作表和检查单,可以直接采用或修改,以测试软件的各个方面。在组建有效的软件测试环境时,从制定测试策略到选择和使用测试工具,读者都可以从本书中得到非常有益的指导。本书还提供了—些改进软件开发过程和提高软件测试人员能力的方法。需要特别指出的是,本书在第2版中对以下内容给出了详细的测试程序:·Internet/Intranet应用·成品软件·多平台环境·系统安全·数据仓库应用·客户/服务器系统·快速应用开发本书较少谈及理论,而更多地去指导如何解决疑难问题,为软件测试提供了有效的方法。从而可以向客户保证生产出最可靠的软件。
-
UML和模式应用(美)Craig Larman著本书是当今最畅销的介绍面向对象的分析/设计、迭代开发和UML的书籍。本书的目的是帮助开发人员或学生掌握关于面向对象的分析和设计的核心原理和最佳实践,并将它们真正应用到软件设计中去。本书的作者是颇有声望的对象技术和迭代方法的领军人物。本书在第一版的基础上做了全面的修订,增加了新的案例研究,更新了关于模式、用况、统一过程、架构分析等的探讨。前言PrefaceThankyouforreadingthisbook!Thisisapracticalintroductiontoobject-orientedanalysisanddesign(OOA/D),andtorelatedaspectsofiterativedevelopment.IamgratefulthatthefirsteditionwasreceivedasapopularintroductiontoOOA/Dthroughouttheworld,translatedintomanylanguages.Therefore,thissecondeditionbuildsuponandrefines-ratherthanreplaces-thecontentinthefirst.Iwanttosincerelythankallthereadersofthefirstedition.Hereishowthebookwillbenefityou.Designrobustandmaintainableobjectsystems.First,theuseofobjecttechnologyhasproliferatedinthedevelopmentofsoftware,andmasteryofOOA/Discriticalforyoutocreaterobustandmaintainableobjectsystems.Followaroadmapthroughrequirements,analysis,design,andcoding.Second,ifyouarenewtoOOA/D,youareunderstandablychallengedabouthowtoproceedthroughthiscomplexsubject;thisbookpresentsawell-definedroadmap-theUnifiedProcess-sothatyoucanmoveinastep-by-stepprocessfromrequirementstocode.UsetheUMLtoillustrateanalysisanddesignmodels.Third,theUnifiedModelingLanguage(UML)hasemergedasthestandardnotationformodeling;soitisusefulforyoutobeconversantinit.ThisbookteachestheskillsofOOA/DusingtheUMLnotation.Improvedesignsbyapplyingthe"gang-of-four"andGRASPdesignpatterns.Fourth,designpatternscommunicatethe"bestpractice"idiomsandsolutionsthatobject-orienteddesignexpertsapplyinordertocreatesystems.Inthisbookyouwilllearntoapplydesignpatterns,includingthepopular"gang-of-four"patterns,andtheGRASPpatternswhichcommunicatefundamentalprinciplesofresponsibilityassignmentinobjectdesign.Learningandapplyingpatternswillaccelerateyourmasteryofanalysisanddesign.Learnefficientlybyfollowingarefinedpresentation.Fifth,thestructureandemphasisinthisbookisbasedonyearsofexperienceintrainingandmentoringthousandsofpeopleintheartofOOA/D.Itreflectsthatexperiencebyprovidingarefined,proven,andefficientapproachtolearningthesubjectsoyourinvestmentinreadingandlearningisoptimized.Learnfromarealisticexercise.Sixth,itexhaustivelyexaminesasinglecasestudy-torealisticallyillustratetheentireOOA/Dprocess,andgoesdeeplyintothornydetailsoftheproblem;itisarealisticexercise.Translatetocode.Seventh,itshowshowtomapobjectdesignartifactstocodeinJava.Designalayeredarchitecture.Eighth,itexplainshowtodesignalayeredarchitectureandrelatethegraphicaluserinterfacelayertodomainandtechnicalserviceslayers.Designaframework.Finally,itshowsyouhowtodesignanobject-orientedframeworkandappliesthistothecreationofaframeworkforpersistentstorageinadatabase.ObjectivesTheoverarchingobjectiveisthis:Helpstudentsanddeveloperscreateobjectdesignsthroughtheapplicationofasetofexplainableprinciplesandheuristics.Bystudyingandapplyingtheinformationandtechniquespresentedhere,youwillbecomemoreadeptatunderstandingaproblemintermsofitsprocessesandconcepts,anddesigningasolidsolutionusingobjects.IntendedAudienceThisbookisanintroductiontoOOA/D,relatedrequirementsanalysis,andtoiterativedevelopmentwiththeUnifiedProcessasasampleprocess;itisnotmeantasanadvancedtext.Itisforthefollowingaudience:Developersandstudentswithexperienceinanobject-orientedprogramminglanguage,butwhoarenew—orrelativelynew—toobject-orientedanalysisanddesign.Studentsincomputerscienceorsoftwareengineeringcoursesstudyingobjecttechnology.ThosewithsomefamiliarityinOOA/DwhowanttolearntheUMLnotation,applypatterns,orwhowanttosharpenanddeepentheiranalysisanddesignskills.PrerequisitesSomeprerequisiteknowledgeisassumed—andnecessary—tobenefitfromthisbook:Knowledgeandexperienceinanobject-orientedprogramminglanguagesuchasJava,C#,C++,orSmalltalk.Knowledgeoffundamentalobjecttechnologyconcepts,suchasclass,instance,interface,polymorphism,encapsulation,interfaces,andinheritance.Fundamentalobjecttechnologyconceptsarenotdefined.JavaExamplesIngeneral,thebookpresentscodeexamplesinJavaordiscussesJavaimplementations,duetoitswidespreadfamiliarity.However,theideaspresentedareapplicabletomost—ifnotall—object-orientedprogramminglanguages.BookOrganizationTheoverallstrategyintheorganizationofthisbookisthatanalysisanddesigntopicsareintroducedinanordersimilartothatofasoftwaredevelopmentprojectrunningacrossan"inception"phase(aUnifiedProcessterm)followedbythreeiterations.Theinceptionphasechaptersintroducethebasicsofrequirementsanalysis.Iteration1introducesfundamentalOOA/Dandhowtoassignresponsibilitiestoobjects.Iteration2focusesonobjectdesign,especiallyonintroducingsomehigh-use"designpatterns."Iteration3introducesavarietyofsubjects,suchasarchitecturalanalysisandframeworkdesign.Web-RelatedResourcesPleaseseewww.craiglarman.comforarticlesrelatedtoobjecttechnology,patterns,andprocess.Someinstructorresourcescanbefoundatwww.phptr.com/larmanEnhancementstotheFirstEditionWhileretainingthesamecoreasthefirstedition,thesecondisrefinedinmanyways,including:UsecasesareupdatedtofollowtheverypopularapproachofCockburn1.Thewell-knownUnifiedProcess(UP)isusedastheexampleiterativeprocesswithinwhichtointroduceOOA/D.Thus,allartifactsarenamedaccordingtoUPterms,suchasDomainModel.Newrequirementsinthecasestudy,leadingtoathirditeration.Updatedtreatmentofdesignpatterns.Introductiontoarchitecturalanalysis.IntroductionofProtectedVariationsasaGRASPpattern.A5/5balancebetweensequenceandcollaborationdiagrams.ThelatestUMLnotationupdates.DiscussionofsomepracticalaspectsofdrawingusingwhiteboardsorUMLCASEtools.AbouttheAuthorCraigLarmanservesasDirectorofProcessforValtech,aninternationalconsultingcompanywithdivisionsinEurope,Asia,andNorthAmerica,specializingine-businesssystemsdevelopment,objecttechnologies,anditerativedevelopmentwiththeUnifiedProcess.Sincethemid198s,Craighashelpedthousandsofdeveloperstoapplyobject-orientedprogramming,analysis,anddesign,andassistedorganizationsadoptiterativedevelopmentpractices.Afterafailedcareerasawanderingstreetmusician,hebuiltsystemsinAPL,PL/I,andCICSinthe197s.Startingintheearly198s-afterafullrecovery-hebecameinterestedinartificialintelligence(havinglittleofhisown),naturallanguageprocessing,andknowledgerepresentation,andbuiltknowledgesystemswithLispmachines,Lisp,Prolog,andSmalltalk.Heplaysbadleadguitarinhispart-timeband,theChangingRequirements(itusedtobecalledtheRequirements,butsomebandmemberschanged...).HeholdsaB.Sc.andM.Sc.incomputersciencefromSimonFraserUniversityinVancouver,Canada.Craigcanbereachedatclarman@acm.organdwww.craiglarman.com
-
使用UML进行面向对象的项目管理(美)Murray Cantor著;徐晖等译循序渐进地指导你走过一个面向对象项目的完整的生命周期几乎所有的软件项目都具有风险性,因此,项目经理的目标就是在满足客户需求的同时,采用某种方法来解决成本和进度的不确定性。在本书中,Murray Cantor描述了一种一流的、基于UML的方法来管理面向对象的项目,以保证在预算内准时交付高质量软件。Cantor根据他在IBM和TASC公司期间管理主要软件项目的经验,向大家讲述以下内容:·一种历经考验的方法,利用UML工具的优点来克服在大部分项目中遇到的难题,并提交一个优化的面向对象的系统。·在项目计划、风险管理、进度安排、阶段预算等方面,用传统方法来集成基于对象技术的一些技巧。·对如何处理在项目开发过程中出现的重要的“人际关系”问题,提供专家级意见。·真实的开发经历让你直接体会到几个重要的开发项目中什么是有效的,什么是无效的。·一个全程项目实例,带你走过一个项目的每一阶段,按照问题和解决办法的方式来讲述。访问本书配套网站http://www.wiley.com/compbooks/cantor,可以发现:·用来管理用例和工作拆分结构的项目进度安排、预算和数据库平台的样本。·一个管理增量开发的电子版业务手册。·一个开发跟踪图。本书介绍了如何使用面向对象方法学进行项目管理。本书分三个部分。第一部分包括前4章,介绍了软件项目管理的重要原则、统一建模语言以及它在软件开发过程中的使用、软件开发生命周期模型等基础内容。本书的第二部分包括第5章至第8章,讨论了软件开发中与各阶段联系的各种概念的应用,详细讨论了UML软件开发过程的所有阶段和活动。第三部分介绍了如何评估及报告项目状态,并且提供各种平均值、预算和开发的评估方法检验项目是否沿着轨道前进。书中还有一个软件开发工程项目的例子,贯穿整本书中。本书可作为管理面向对象开发的参考书,适合于开发人员、项目经理、软件工程研究人员阅读参考。
-
创新式摧毁力方兴东著*网络股突飚独升,互联网成为全世界的造梦工厂。网络股一路狂跌,互联网的光芒似乎一下子黯然失色。互联网资本市场与实际产业为何会有巨大的差?*无论媒体对互联网如何评价,也无论你对互联网是爱是恨,都不能改变互联网的残酷面目:互联网本质上是一种创新式摧毁力!它必将改变整个市场经济社会的游戏规则。互联网将重新界定商业价值的流向,传统的商业价值链将重新解构,甚至被颠覆。*本书全面描绘了1999年和2000年的互联网浪潮,论述了互联网颠覆世界的摧毁力,并对生存法则、经济规则、投资观念、市场机制、商业模式产生巨大的变革。同时还具体论述了互联网对信息产业及传统产业的冲击,描绘了互联网下的中国图景。
-
数据结构与算法李乔祥编著高等学校21世纪计算机教材。本书既可作为计算机专业的本科或专科教材,也可作为信息类相关专业的选修教材,还可作为从事计算机应用相关工作科技人员的参考书。
-
软件团队模式设计(美)吉姆·麦卡锡(Jim McCarthy),(美)米歇尔·麦卡锡(Michele McCarthy)著;孙宝成[等]译;孙宝成译本书是软件开发团队的制胜宝典。作者通过亲身经历和长达5年的调查研究,经过不断实践,寻求出一种能够引导软件开发团队获取成功的行为方式。本书作者有着丰富的软件团队工作经验,对团队工作的环境、人员状态、成功所必需的条件等,做了深入细致的研究。通过总结经验,他们把大量的实践材料上升到理论高度,对团队工作进行了系统的概述和分类,对其中出现的问题给予切中要害的剖析,提出了具体有效的解决方案。在此基础上,他们建立了新兵训练营,把软件开发周期压缩到5天,以模拟方式使参加训练营的学员体验到团队工作中通常会遇到的失败和成功,学到在团队工作中不可缺少的知识和经验。本书是打造优秀软件开发团队的制胜宝典,揭示出只有高质量的团队才能开发出高质量的产品。作者通过亲身经历和长达5年的调查研究,经过不断实验,寻求出一种能够引导软件开发团队获取成功的科学工作模式,并形成一套能在5天内培训出高效团队行之有效的基础教学体系。在本书的编写中,作者结合软件开发团队的特点,以编写软件的形式,把团队建设与团队工作的核心要素,通过模式、反模式、定义、协议等形象的比喻体现出来,使读者深刻领悟其中蕴含的丰富内容,最大程度地在团队工作中发挥个人的智慧和才能。读者对象:适用于软件开发人员和项目管理人员。
-
用户中心设计——集成化方法(美)Karel Vredenburg,(美)Scott Isensee,(美)Carol Righi著;冯博琴,薛亮,叶茂译本书针对“以用户为中心的设计(UCD)”提供一种集成化方法,以使各类工业产品的最终用户可以易购、易学、易用、易获支持、易版本更新、易增收益,使用户感受到产品的简洁、精致与功能的强大。本书内容集中在设计一种引人注目的“全用户体验”方法,以用户对最终产品或系统的所见、所闻及所感为出发点考虑设计方法。它使任何产业的产品或服务取得良好的口碑,使用户有优化的、全方位的体验。本书是作者多年丰富工作经验的总结,书中所述方法在千余项目中得到成功运用。所涉及的产品从大型机到集成电路,从便携机到网络应用设备,从数据库软件到语音识别软件,从普通网站构建到奥运网站建设,在全世界范围内的咨询项目(医疗保健、金融证券、航空事业、保险业、汽车制造业及零售业等行业)中得到验证。主要内容包括:能带来突破性增益的针对UCD的完整的周期化方法;现有产品评测、机构评定以使其适用UCD方法;提高用户感知舒适度;在外延型/内适型应用环境下的软件设计、硬件设计、网站建设和服务中应用UCD;当前UCD优化及未来影响产品因素的趋势预测。本书适用于计算机系统用户界面设计、人机工程、系统设计类课程。本书所附光盘包括几种UCD从业者工具、样例示例、.AVI格式短片,以介绍关键UCD概念、记录UCD度量的详细模板及开展UCD活动的工具。
-
数据结构与算法分析魏宝刚等编著新世纪高等院校精品教材。本书旨在使学生全面理解算法和数据结构的概念,掌握各种数据结构与算法的实现方式,并且比较不同数据结构和算法的特点。
-
数据结构张晓静主编数据结构是计算机专业教学计划中的一门核心课程,也是信息管理、通信电子等与计算机技术关系密切的专业的一门基础课程。本书对C++语言作了简单介绍,叙述了抽象数据类型,介绍了线性表、栈、队列、数组、广义表、树和图等数据结构,并且介绍了查找和排序方法。对大多数算法和算法的应用给出了相应的C++程序,每章后面附有大量的习题,便于教学。本书是为高等院校开设数据结构课程编写的教材,可作为计算机专业及相关专业本科、专科学生的教材使用,也可供从事计算机软件开发和应用的工程技术人员阅读。