软件工程及软件方法学
-
软件工程(英)Ian Sommerville著;程成,陈霞等译本书是英国著名软件工程学家IanSommerville系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。作者在第2篇中详细阐述了软件系统需求的内容、过程和描述方法,尤其是对形式化描述有详细的介绍和分析;在第3篇中针对主要类型系统的设计问题和重要的设计方法展开介绍,主要介绍了分布式系统设计、实时系统设计和用户界面设计,同时从体系结构、面向对象以及复用等视角对设计过程进行了精辟阐述;在第4篇和第5篇中,主要以实时系统为对象,介绍了系统的一系列重要特性及其度量方法,以及生命周期中包含的软件工程过程(如验证和测试等)内容和方法,内容翔实而透彻。在第7篇中作者对遗留系统处理和软件进化理论给出了高屋建瓴的分析,对软件改造的实践者来说无疑是一盏指路明灯;除此之外,作者还在第1篇和第6篇中对软件工程过程的诸多管理方面(如人员管理、项目管理、过程管理、成本估计和质量管理等重要方面)有极为详细的介绍和分析。本书是软件工程学界的经典,被众多世界知名大学所采用,既有理论高度又有具体操作方法,对于软件工程的管理者和参与者来说都是不能不看的好教材。该书英文原版设有专门的网站(www.software-engin.com),提供了对该书相关资料的链接,以帮助那些将该书用于教学和自修的人们。主要包括教师参考手册、幻灯片、书中程序实例源代码以及CASE和形式化描述的额外材料。试读:1-4章(ZIP)
-
软件工程钟珞《软件工程》面向普通高等院校本科教学的需要及软件工程技术的发展。主要内容包括:软件工程概述、可行性研究和需求定义、需求分析、系统设计、详细设计、程序编码、软件测试、软件维护、软件项目计划与管理、软件过程能力成熟度模型CMM、软件的可靠性及软件工具及环境。本书主要特色在于理论、方法与应用相结合,不仅对软件的分析、设计、开发到维护过程进行全面地讲述,而且配有丰富的实例。除了对传统的软件工程方法进行讲述外,还增添了面向对象的软件工程方法、CMM成熟度模型以及软件工具与环境等较为成熟的内容。本书概念清楚,内容丰富,每章配有小结和习题,便于教学和学习。本书可供高校本科生学习与后续技术开发使用,也可供广大计算机爱好者阅读。
-
软件工程肖孟强 等主编本书是根据教育部应用型本科21世纪规划教材指导思想与原则的要求,充分考虑应用型本科人才的培养目标和教学特点编写而成的。全书共12章,主要内容包括:软件工程概念、可行性研究与需求分析、软件设计、面向对象技术、统一建模语言UML、编码与编程语言、软件测试、软件维护、软件工程管理和质量保证、软件工程标准化、软件工程环境、嵌入式系统软件技术。本书在每一章的开头均给出本章的教学目标、教学任务和重点难点,每一章的最后给出实例分析和本章小结,附以部分习题,以便于教学与自学。 本书强调内容的实用性。按软件工程的全过程来安排与组织内容,条理性强,以案例 教学为驱动,易于学生学习与掌握。 本书可作为应用型本科计算机、自动化、机电类等专业和高职高专计算机专业的教材, 也可作为自学教材和软件开发人员的参考用书。 本书所配电子教案可以从中国水利水电出版社网站上免费下载,网址为: http://www.waterpub.com.cn/softdown/。
-
AOSD中文版(美)雅各布森(Jacobson, J.)著;黄邦伟译本书系统阐述了面向方面软件开发(AOSD)方法,AOSD的目标是通过使系统的功能需求、非功能需求、平台特性等诸多不同的关注点相互独立,实现更好的模块化,来构建出易于理解、易于扩展、高复用性、高质量的软件系统。AOSD将用例技术和面向方面技术有机结合在一起,为软件开发提供了一个切实可行的最佳实践集。本书还系统阐述了用例技术、AOP(面向方面编程)技术的特点和使用方法,以及实现用例与AOP结合使用的用例模块、用例切片等技术。并且通过一个现实世界中常见的“酒店管理系统”来展示了如何在项目实践中高效地应用AOSD方法。作者见解独到、精辟,不仅阐述了理论知识,还详尽说明了如何在项目的不同阶段中应用AOSD技术。这本书对于项目经理、系统分析员、系统设计师及广大开发人员,都具有很高的实用价值。本书前言译者序2000年以前,笔者在软件需求实践中,一直对如何有效地标识、组织、管理用户的需求感到十分的困惑。纷繁复杂而且拖沓冗长的“软件需求规格说明书”似乎一直没有起到它应该起的作用,如何才能够使得用户和开发团队之间建立更好的需求沟通呢?IvarJacobson先生提出的“用例驱动方法”让我找到了解决的方法。它使我们站在“用户的视角”来观察“将要开发的系统”,通过对零散的软件需求进行合并,抽象出参与系统的不同参与者(Actor),将一系列的使用场景进行抽象形成“用例”,从而清晰地勾勒出系统的框架模型。这样总结出来的需求,往往能够与用户产生共鸣,让笔者在实践中也获益匪浅。然而不久,第二个困惑又摆在了眼前,如何在“用例模型”(分析模型)的基础上进行设计呢?在从“用例描述”到“顺序图”、“活动图”的转换中,一直感到力不从心。所幸的是,Ivar先生提出的“Robustness分析方法”又让我走出了这块新的沼泽。通过控制类、边界类,以及简明、随意的Robustness图,使这种转换变得streamline(流线型)起来。遗憾的是,UML对Robustness图的舍弃,不知对多少实践者带来了这种困难。但当我对“用例驱动方法”应用得越来越自如的时候,又遇到了新的困惑。在实际的系统分析和设计实践中,我突然发现类、组件与用例之间的对应关系是交错的。也就是一个用例可能会涉及多个类或组件,而一个类或组件也可能参与了多个用例。这种交错与缠绕一度让我一度感到心力交瘁。我们刚刚通过用例实现的“松耦合”设计,却又在具体到类的层面、实现的环节再次“耦合”在一起了。怎么办?如何解决?虽然从《软件复用:结构、过程和组织》中能够领会到一些解决的方法,但是总感觉在实践应用中还是有很大的局限性。正是在这个时候,我从亚马逊网站上看到了本书。基于自己对AOP的了解,一看书名就让我感到无比的兴奋,心里念叨着“找到答案了,找到了!”。当找到一些更详细的资料和部分章节后,我确认了自己的想法,因此毫不犹豫地向CSDN的熊妍妍推荐了本书。在她的大力支持下,我终于看到了本书的全貌,答案浮出了水面:AOP为你提供了一种手段,可以将横切关注点的实现代码分离,并模块化成为“方面”。面向方面提供了一种组合机制,使得在编译时甚至是运行时,再将横切行为组合到预期的操作和类中成为可能。而在操作和类的源代码中则可以摆脱横切关注点,从而使程序更易于理解和维护。为了推进AOP的发展,本书作者提出了AOSD,其目标主要围绕着如何使整个系统更好地模块化。它包括使功能性需求、非功能需求、平台特性等许多不同的关注点更好地模块化,从而使它们之间相互独立。保持所有的关注点相互独立,将使你构建的系统具有更易于理解的结构,并且更易于配置和扩展,以满足涉众各种洐生的需求。如何进行AOSD?如何识别方面?何时用类而非方面?如何详细说明方面?这需要一个明确的系统化方法来帮助你进行AOSD。而事实上,已经有一种成熟的系统化方法。它就是用例驱动方法。它提供了一种明确的、聚焦于实现涉众关注点并给最终用户传递价值的开发方法。哈,和我的预想一样。用例驱动方法与AOP的结合,必将会引发一场软件开发范型的革命。而通过阅读本书,你可以清除用例驱动方法的认识误区,了解方面技术的基本概念,掌握应用用例(applicationusecase)、基础结构用例(infrastructureusecase)及用例模块等新手段的应用,了解如何结合二者实现弹性的架构设计。而且本书还为你指出了一条实践AOSD的通途,可以说这是一本从实践中来,又回到实践中去的好书。相信阅读过本书的读者一定也会和笔者有相同的感受,一定不要错过这本经典的好书。在此,我必须感谢参与了本书部分章节初译工作的周松奕(第11~14章)和吴兰陟(第15~16章)两位同仁;感谢CSDN的熊妍妍、博文视点的责任编辑陈兴璐,感谢她们辛劳细致的工作;同时也对参与了审校工作的IvarJacobsonSoftwareChina公司的专家们、UMLChina的潘加宇表示衷心的感谢,他们的工作使本书的翻译质量得到了很大的提高和保证。最后要感谢我的父母和妻子许高芳对我多年来的默默支持与鼓励。鉴于笔者水平有限,因此在此必须感谢每一位读者,希望能够得到您的反馈与批评。欢迎来信(xf@csai.cn)与我一起交流与本书相关,与用例分析技术、需求工程、系统分析以及设计等软件开发相关的话题。徐锋2005年10月于厦门紫荆园
-
面向对象理论与实践文登敏,张丽梅编著本书讲解了面向对象的基本概念和机制;C++中的面向对象特征,针对学习面向对象程序设计过程中遇到的重点和难点问题进行详细的介绍;OMT等经典的面向对象分析和设计方法论以及统一模型语言UML等。
-
软件工程简明教程陆惠恩, 陆培恩编著本书着重从实用角度讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前较成熟的、广泛使用的软件工程技术。具体内容包括有:软件工程概论,需求分析,系统设计与实现(概要设计、详细设计、界面设计与程序设汁),软件测试、验证与确认,软件维护,面向对象设计方法和UML的使用,软件工程管理技术,软件开发工具与集成化环境,软件开发实例等。本书不仅可作为应用型本科和高职高专计算机专业的教材,也可供从事计算机软件开发及应用的广大科技人员参考。软件工程已成为计算机科学的一个重要分支。本书着重从实用角度讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前较成熟的、广泛使用的软件工程技术。本书内容包括:软件工程概论,需求分析,系统设计与实现(概要设计、详细设计、界面设计与程序设汁),软件测试、验证与确认,软件维护,面向对象设计方法和UML的使用,软件工程管理技术,软件开发工具与集成化环境,软件开发实例等。每章都有小结供读者复习总结,有习题供选用。本书可作为应用型本科和高职高专计算机专业的教材,也可供从事计算机软件开发及应用的广大科技人员参考。
-
统一过程最佳实践构造阶段/软件开发过程系列(加)安布勒 (澳)康斯坦丁本套书汇集了两位作者丰富的软件过程经验、10余位业界杰出人士的亲身体会以及《软件开发》和《计算机语言》杂志中的精彩论文,提出了软件开发过程中的最佳实践方法,指导读者有效而且高效地执行这些过程。同时,作者还综合了统一过程和其他软件过程,形成了一个处理真实世界软件开发和产品需要的更完整、更健壮的统一过程。本套书共有四本,其中介绍的最佳实践方法分别对应统一软件过程的四个阶段:初始阶段、细化阶段、构造阶段、移交和产品化阶段。本书是这套书的第3本,重点介绍与统一软件过程构造阶段有关的最佳实践。本书可以作为软件项目管理人员、软件开发工程师、过程工程师、系统工程师等专业人员的指导用书,也可作为高等院校计算机及相关专业学生的参考书。本书前言在《软件开发》杂志和它的前身《计算机语言》中已经刊登了大量关于如何成功开发软件的文章。为这一杂志撰稿的人包括许多业界最著名的专家,比如KarlWiegers、SteveMcConnell、EllenGottesdiener、JamesBach、JimHighsmith、WarrenKeuffel和LucyLockwood。简而言之,信息产业的大师们在这些年里一直在这本值得尊敬的杂志中与我们分享他们的智慧成果。近来,在几乎所有的组织中,对软件过程改进的关注越来越多了。这有一部分是因为千年虫(Y2K)问题、大规模软件项目的高失败率以及人们渐渐意识到遵循成熟的软件过程是软件项目成功的关键因素。从20世纪90年代中期开始,Rational公司控股和合并了其他一些软件工具公司;随着公司的发展,这些工具所支持的各种过程也被合并成一种开发方法,称为“统一过程”(UnifiedProcess)。是否有可能让整个软件过程自动化?如果有可能,那么Rational公司是否拥有一套完整的工具集?对上述问题我们并不确定。但幸运的是,其他人也在定义软件过程,所以我们还可以从多个角度来看事物应怎样运作。这些过程包括:OPEN联盟的OPEN过程、面向对象软件过程(OOSP)的过程模式以及极限编程(XP)。这些不同的视角可以用来推动统一过程观点,使其更加健壮,结果就产生了一个更能准确反映你所在组织现实需要的增强的统一过程生命周期。因为我们相信《软件开发》中包含的多年收集的智慧能够用来充实统一过程—真正将我们产业的最佳实践统一起来,所以我们编写了本系列丛书。为什么软件过程如此重要呢?让我们先设想一下。假如你想请人给你建造一间房子,让两位承包商来竞标。第一位承包商告诉你,通过使用一项最新的建筑技术给你盖房,如果从明天就开始的话,他能在两个星期内就把房子建好,造价只有10万美元。这个承包商手下有一流的木匠和水管工,他们以前用这项新技术建造过一个花园凉棚,他们愿意日夜加班以按期交付你的新屋。而第二位承包商告诉你,她需要先和你讨论你想要建一间什么类型的房子。然后,一旦她确定明白你的需要,她将在一个星期内提供一整套设计蓝图供你审阅和提意见。这个初始阶段只会花你1万美元,当你决定了最终方案,对于其余的工作她将给出详细计划和成本估算。你会觉得选哪个承包商更放心呢?是想马上开始建房的那个,还是先搞清楚要建什么样的房子,再建模型,再详细计划,最后动工修建的那个?显然,后者更有可能成功地交付给你一间符合你实际需要的房子。现在,设想你要构建的是软件—这通常是复杂得多而且远比房子更昂贵的项目,再设想你还是面对两个与前面采取相同方法的承包商。选择哪个你会更放心呢?希望你的回答仍是第二个;她有一个更明智的过程。但不幸的是,实践显示:在大多数时间里,组织似乎喜欢选择第一个承包商的方法;热衷于新技术而忽视过程。当然,实践也显示:在我们的产业里,建造大型的、具有关键任务的系统的失败率在85%以上。也许这两种现象有一定的关联。构造阶段构造阶段是软件开发5个阶段(初始、细化、构造、移交和产品化阶段)中的第3个阶段,每个软件的发布版本在其生命周期内都将遍历这些阶段。构造阶段的目标是:*描述剩下的需求。*充实你的系统设计。*保证你的系统达到用户的要求,并与你所在组织的系统整体设计相适合。*完成构件开发和测试,包括软件产品和它的文档。*依靠资源优化来把开发成本降到最低。*尽快地获得足够高的质量。*为你的系统开发有用的版本(a版、b版等)。本书向读者呈现了业界专家所撰写的描述软件领域最佳实践的文章。本书乃至本系列丛书的一个目标是提供已证实的统一过程所包含技术的可替代方案。另一个目标是弥补统一过程中的一些缺陷。因为统一过程是一个开发过程,而不是软件过程,它不可避免地遗漏或缺少了一些对软件专业人员来说非常重要的概念。幸运的是,《软件开发》杂志的作者们已经对过程范围有了更广泛的了解,并已经为我们弥补了许多缺陷。关于本套丛书本套丛书由四卷组成:第1卷介绍初始阶段,第2卷介绍细化阶段,第3卷介绍构造阶段,第4卷介绍移交和产品化阶段。每卷都可独立成书,但是如果想对整个软件过程有一个完整的认识,你需要通读全套丛书。本套丛书的文章覆盖了整个过程,在每卷之间没有重复。我们在为本书选择材料时确实费了一番心思,有大量可以选择的材料,但是篇幅有限,缩小选择范围并不总是那么容易。如果时间和容量没有限制,那么每一本书都可能会有现在的两倍那么厚。通过缩小选择范围,我们相信留下来的文章一定都是精华中的精华。
-
中国信息系统研究与应用前沿陈国青 陈禹暂缺简介...
-
软件复杂性与质量控制张凯暂缺简介...
-
mySAP客户关系管理蒋歆,许坤 著发掘所有关键功能,最新改进及最佳业务实践,以充分发挥mySAPCRM的潜力。.在掌握mySAPCRM基本法则的同时学习技术细节,以便在所有面向客户的业务流程中应用此强大的SAP解决方案。实用的、一步步的实例突出描写了那些重要的功能,并指导您走过完整的客户交互周期。另外,您还将了解到关键功能领域的所有细节,并从那些专业建议中获益。一个基于SAPNetWeaver的对实施方法论以及mySAP的技术基础的完全更新的陈述将有助于我们全面地感受这个令人敬畏的资源。...