软件工程及软件方法学
-
UML面向对象技术与实践宋波, 刘杰, 杜庆东编著本书是作者们多年来研究UML基础知识问题的概括和总结。主要内容包括:UML的基础知识和在Rational Rose建模环境下创建九种UML图的方法;并以软件工程的开发为主线,把面向对系统--"图书管理系统"的需求分析、系统分析与设计、以及实现的过程进行了详细的描述,并给出了系统实现的全部源代码。 本书可供高等院校计算机专业的教学科研人员、研究生、本科生参考和使用。 -
管理信息系统陈京民主编本书全面介绍了管理信息系统概念、结构、开发、应用及对管理的影响。本书在介绍管理信息系统基本概念、系统开发方法的基础上,详细阐述了系统的规划方法、系统结构化开发方法、管理信息系统的实施、管理评价和发展。本书吸收了近几年管理信息系统的最新发展理论和实践,反映了最新信息技术的发展和最新的信息管理思想、方法与实践,适应现代管理信息系统的理论体系、开发方法,以及实施模式不断发展、不断更新的要求。全书附有适当的习题、案例和讨论题,便于管理信息系统的学习与应用。本书可作为信息管理与信息系统专业及管理类各专业本科生学习管理信息系统的教材,也可作为企业、事业单位管理人员、信息系统开发管理人员进行管理信息系统开发与管理的参考书。 -
软件测试的艺术(美)Glenford J.Myers等著;王峰,陈杰译;王峰译本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查、走查与评审、测试用例的设计、模块测试、系统测试、调试等主题,以及极限测试、因特网应用系统测试等高级主题,全面展现了作者的软件测试思想。本书是软件测试领域的佳作,其结构合理、内容简洁、语言流畅。本书适合作为软件测试做从业人员的参考手册,以及高等院校软件测试课程的教材或参考书。本书前言在本书1979年第1版出版的时侯,有一条著名的经验,即在一个典型的编程项目中,软件测试或系统测试大约占用50%的项目时间和超过50%的总成本。25年后的今天,同样的经验仍然成立。现在出现了新的开发系统、具有内置工具的语言以及习惯于快速开发大量软件的程序员。但是,在任何软件开发项目中,测试依然扮演着重要角色。在这些事实面前,读者可能会以为软件测试发展到现在不断完善,已经成为一门精确的学科。然而实际情况并非如此。事实上,与软件开发的任何其他方面相比,人们对软件测试仍然知之甚少。而且,软件测试并非热门课题,本书首次出版时是这样,遗憾的是,今天仍然如此。现在有很多关于软件测试的书籍和论文,这意味着,至少与本书首次出版时相比,人们对软件测试这个主题有了更多的了解。但是,测试依然是软件开发中的“黑色艺术”。这就有了更充足的理由来修订这本关于软件测试艺术的书,同时我们还有其他一些动机。在不同的时期,我们都听到一些教授和助教说:“我们的学生毕业后进入了计算机界,却丝毫不了解软件测试的基本知识,而且在课堂上向学生介绍如何测试或调试其程序时,我们也很少有建议可提供。”因此,本书再版的目的与1979年时一样:填充专业程序员和计算机科学学生的知识空缺。正如书名所蕴涵的,本书是对测试主题的实践探讨,而不是理论研究,连同了对新的语言和过程的探讨。尽管可以根据理论的脉络来讨论软件测试,但本书旨在成为实用且“脚踏实地”的手册。因此,很多与软件测试有关的主题,如程序正确性的数学证明都被有意地排除在外了。本书第1章介绍了一个供自我评价的测试,每位读者在继续阅读之前都须进行测试。它揭示出我们必须了解的有关软件测试的最为重要的实用信息,即一系列心理和经济学问题,这些问题在第2章中进行了详细讨论。第3章探讨的是不依赖计算机的代码走查或代码检查的重要概念。不同于大多数研究都将注意力集中在概念的过程和管理方面,第3章则是从技术上“如何发现错误”的角度来进行探讨。聪明的读者都会意识到,在软件测试人员的技巧中最为重要的部分是掌握如何编写有效测试用例的知识,这正是第4章的主题。本书第5章和第6章分别探讨了如何测试单个模块或子程序及测试更大的对象,而第7章则介绍了一些程序调试的实用建议,第8章讨论了极限编程和极限测试的概念,第9章介绍了如何将本书其他章节中详细讨论的软件测试的知识运用到Web编程,包括电子商务系统中去。本书面向三类主要的读者。尽管我们希望本书中的内容对于专业程序员而言不完全是新的知识,但它应增强专业人员对测试技术的了解。如果这些材料能使软件人员在某个程序中多发现一个错误,那么本书创造的价值将远远超过书价本身。第二类读者是项目经理,因为本书中包含了测试过程管理的最新的、实用的知识。第三类读者是计算机科学的学生,我们的目的在于向学生们展示程序测试的问题,并提供一系列有效的技术。我们建议将本书作为程序设计课程的补充教材,让学生在学习阶段的早期就接触到软件测试的内容。 -
21世纪高等院校会计专业主干课系列薛云奎 饶艳超本书是针对会计信息系统这一会计专业的必修主干课程编写的大中专院校的教材。主要讲授在信息技术日新月异的情形下会计信息系统的基本原理、使用方法和技术基础,以及功能和作用的不断拓展。全书从管理、技术、开发、审计控制、操作等五个方面进行阐释,涉及财务会计人员、管理会计人员、税务会计、审计师以及信息系统的开发人员,从会计信息系统的使用者、开发者和审计者三种角色审视其理论发展以及功能与规范的变迁。全书涉及面广,知识要点综合且交叉,适宜用作会计及相关专业信息系统的专业课教材。... -
设计模式精解(美)沙洛韦(Shalloway,A.) 等著本书的最大特点之一是作者采用类比而不是编程实例的方式将概念解释得非常清楚。我正在做一套关于OOP和软件开发的音频产品,这种讲述概念的方式给予我很大的启发。:BruceEckel.希望那些仅基本了解面向对象编程和设计的读者,在完全接触设计模式之前,能够发现这本有用的书。本书是对现有的设计模式教材的补充,并可以在入门级教材(如《UMLDistilled》)和更高级模式著作之间充当一个很好的衔接。:JamesNoble..本书是模式领域最简洁、最清晰、最实用的著作,阐述了模式如何使整个开发过程变得更加容易,解释了面向对象设计的关键原则,以及各种特定模式的概念和优势。通过采用许多最新的Java示例,本书精确地向程序员和架构师展示出如何使用模式来更有效地设计、开发和交付软件。通过分析Java示例,本书提示了为什么、为什么不以及如何应用模式,而且解释了模式的实现。以畅销的第1版为基础,作者对本版进行了彻底更新,以反映新的软件设计趋势、模式和实现技术。根据广大读者的反馈,作者在第2版中加深了全书概念的阐述,并重新组织了全书内容,使其更易于理解。本书首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性。随后,使用易懂的示例代码阐明了许多当今最有用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷。另外,许多模式都附有UML图。本书假定读者没有模式方面的经验,因此是学习模式的理想的第一本书,对于GoF的经典名著《设计模式》,本书也是一个很好的补充。本书适用于学习面向对象设计和设计模式的学生、程序员以及从事软件开发的人士。第2版的新增和修订内容■开始“用模式的方法思考”的更好方式。■使用极限编程和其他方法,设计模式如何使敏捷开发更加便利。■如何使用共同性和可变性分析来设计应用程序架构。■在模式驱动的开发过程中进行测试的关键作用。■如何使用工厂来更有效地例示和管理对象。■对象池(Object-Pool)模式:一种未被GoF标识的新模式。■每章最后新增思考题/练习题。... -
面向方面的分析与设计(爱尔兰)克拉克 等著“使用面向方面程序设计的开发人员将对本书赞赏有加。该书的作者是本领域的带头人物,他们总结了过去的研究结果,为方面建立了细致的方法学和符号表示法。”:Ron Bodkin,New Aspects of Software公司首席技术官“面向方面是用于复杂系统程序设计的一种强大方法。在建模与设计期间应用该方法,也同样收益良多。本书中的Theme方法向开发者提供了一些手段,能够在软件开发过程的早期应用面向方面的方法,这在AOP的实践过程中是一个重要进步。”:Ramnivas Laddad,《AspectJ in Action》的作者面向方面软件开发 (aspect-oriented software development,AOSD) 可以将复杂系统的多个关注点分别表达,而后利用“编织”技术将各个独立的表达合成为一致的系统。许多专家认为AOSD是面向对象范型的后继者,它大大地简化了复杂系统的开发。两位作者都是AOSD的专家,她们在本书中将理论应用到实际的开发中。她们解释了各种类型的方面,帮助读者识别方面,并提供了设计和实现方面的一些指导。该方法可集成到各种软件开发过程中,简化软件系统的开发。对于迷惑于一些常见的问题 (如“何为方面?”、“应该对哪些方面编写代码?”、“如何设计方面?”) 的开发者来说,本书非常有用。本书可作为读者思考方面的起点,并有助于读者在需求分析和设计中解决相关的问题。同时,有经验的AO开发者也可以更深入地了解各种不同的分解模型,以及如何在需求文档中识别方面功能、设计方面、将方面映射到实现等。作者建立的Theme方法可以灵活地识别方面功能,还提供了基于UML的设计建模语言来描述方面。简言之,本书对开发者和分析设计者而言,都有很实际的价值。 -
基于用例的面向方面软件开发(美)雅各布森 等著Aspect-oriented programming (AOP) is a revolutionary new way to think about software engineering.AOP was introduced to address crosscutting concerns such as security, logging, persistence, debugging, tracing, distribution, performance monitoring, and exception handling in a more effective manner. Unlike conventional development techniques, which scatter the implementation of each concern into multiple classes, aspect-oriented programming localizes them..Aspect-oriented software development (AOSD) uses this approach to create a better modularity for functional and nonfunctional requirements, platform specifics, and more, allowing you to build more understandable systems that are easier to configure and extend to meet the evolving needs of stakeholders.In this highly anticipated new book, Ivar Jacobson and Pan-Wei Ng demonstrate how to apply use cases:a mature and systematic approach to focusing on stakeholder concerns:and aspect-orientation in building robust and extensible systems. Throughout the book, the authors employ a single, real-world example of a hotel management information system to make the described theories and practices concrete and understandable.The authors show how to identify, design, implement, test, and refactor use-case modules, as well as extend them. They also demonstrate how to design use-case modules with the Unified Modeling Language (UML):emphasizing enhancements made in UML 2.0:and how to achieve use-case modularity using aspect technologies, notably AspectJ...Key topics include·Making the case for use cases and aspects·Capturing and modeling concerns with use cases·Keeping concerns separate with use-case modules·Modeling use-cases slices and aspects using the newest extensions to the UML notation·Applying use cases and aspects in projects...Whatever your level of experience with aspect-oriented programming, Aspect-Oriented Software Development with Use Cases will teach you how to develop better software by embracing the paradigm shift to AOSD. -
统一过程最佳实践(加)安布勒,(澳)康斯坦丁 等著,兰雨晴 等译统一过程是面向对象基于构件软件开发过程的惟一过程和标准过程吗?本书是这四本系列丛书的最后一本,它对统一过程提出了批评意见。作者介绍了其他可选择的软件过程,并且将统一过程与其他软件过程综合形成了一个处理真实世界开发和产品需要的更完整的、更健壮的统一过程。在详细阐述一个更完整的统一过程之后,每一卷书介绍了当前实现统一过程各个阶段(初始、细化、构造、移交和产品化)最佳实践的大师的经验智慧集合。汇集业界杰出人物的集体智慧。来自于EllenGottesdiener、LarryO’Brien、SteveMcConnell、LarryRunge、KarlWiegers等的文章为读者提供对如下论题的观点:●如何开发和维护大规模、关键任务软件。●程序设计如何适合整体开发生命周期。●提高你的角色(职业)的技巧和技术。并且在需求、管理项目风险、测试和度量投入以及选择和配置正确的工具等方面采用最佳实践来处理实施软件过程的若干细节。一个增强生命周期来实现企业级统一过程。本书提供了正确部署、操作和支持新系统所需要的信息。在移交阶段将一个新系统交付给用户团体的过程中,你将:●测试和验证完整的系统。●并行地操作所开发的系统和遗留系统。●转换遗留的数据库和系统,使之支持新发布的版本。●培训用户操作人员、支持人员和维护开发人员。为了确保产品化阶段中系统的连续运行,你将:●监控系统,采取恰当的操作来确保系统连续运行。●操作和维护相关的工作、日志记录和支持系统。●对帮助请求、错误报告和特性请求做出响应。●管理变更控制过程。本书的内容由美国((SoftwareDevelopment))杂志提供。 -
软件工程李伟波、刘永祥、王庆春传统理论体系的基础上,融入当前软件工程的最新发展和技术,系统地介绍了软件工程的概念、原理、方法和技术。全书深入浅出,循序渐进,具有很强的可读性。本书系统地介绍了软件工程的概念、原理、方法和技术。全书共12章,第1章至第5章按生命周期模型顺序介绍软件开发计划、需求分析、设计、编码和测试;第6章至第8章介绍面向对象的方法及UML建模语言;第9章介绍软件维护;第10章介绍软件质量、软件工程标准化、ISO 9000标准及质量认证;第11章介绍软件项目管理和软件能力成熟度模型CMM;第12章介绍常用的软件工程工具与软件开发环境。本书在介绍传统理论体系的基础上,融入当前软件工程的最新发展和技术,深入浅出,循序渐进。为方便教学,每章都有学习目的与要求、小结及习题。本书可作为高等院校软件工程课程的教材或教学参考书,也可作为软件工程管理者和技术人员的参考书。 -
软件工程的事实与谬误(美)格拉斯(Glass, R.L.)著;严亚军, 龚波译构建软件是种“新生的”技术。中然该领域中许多资深的专业人士似乎并不这么认为,但是对整个职业体系而言,软件构建者相对的属于“新生一代”。在短短的软件史中,人们发现了许多事实与谬误。本书就是来讨论这些事实与谬误的。关于这些事实与谬误存在一个问题——这一点估计你也会感觉到——许多重要的基本事实已经被软件工程师所认知,但是就在软件业短暂的生命过程中,其中太我基本事实已经被遗忘了。在阅读本书时,你也许会说“真的如此吗?”或者“噢,对了,我忘了这一点”。本书的作者不回避争议。实际上,在讨论每个事实与谬误时都会提及相关的建议。你可能同意其中许多事实与谬误,也可能会对其中一些不认可!无论你是否同意,你都会明白为什么作者被称为“软件工程界最爱发脾气的老家伙。”这些事实与谬误对于构建软件至关重要——如果你遗忘或者忽略它们,后果自负!
