作为作者,我们感到非常荣幸,《系统分析与设计》自几年前第一次出版以来,得到了许多支持和热情的评论。最近几年,系统分析与设计领域处于在不断发展与不断完善中。本书将传统的结构化方法和新的面向对象的方法这两个内容放在同等重要的位置上,紧紧跟上了这个领域的发展变化。最近的IS2002模范课程建议,将传统的和面向对象的方法这两个内容放在同等重要的位置上,这也是本书从最初就一直坚持的。在第4版中,我们将继续采用最新的面向对象模型和设计模式,从更深入的层次上更加灵活地覆盖面向对象的分析和设计方法。.
目标与前景
本书为本科生和研究生的系统分析与设计课程而编写。系统分析与设计是建立在一系列概念和原理基础上的应用学科,选择并包含了各种快速发展的工具和技术。当今,学习分析和设计的要归功于被有经验的分析员所广泛使用的一些久经考验的技术和刚毕业的学生在工作中非常渴望使用的最新工具和技术。在今天快速发展的环境里,开发信息系统是有难度的,但是如果开发成功,收获则是巨大的。
本书由一个写作小组共同编写而成,在系统分析与设计领域它是一部与众不同的书,内容灵活流畅,兼具深度和广度。我们期望本书的灵活性能足以吸引那些更加强调使用传统方法进行系统分析与设计的教师,以及强调最新的面向对象技术的人们。同时,我们并不想太过简化系统开发的问题。许多新的发展正影响着系统分析与设计,为此,在本书中我们加入了诸如用例、预测和自适应生命周期分析、敏捷开发、UML、Web开发、软件包解决方案、企业资源计划(ERP)、组件等主要发展趋势的内容。
我们也希望通过本书来传授关键的概念和技术,而不是泛泛的描述。因此,我们重点介绍长期有用的基本原理,展示这些基本原理是如何被应用到开发方法中的,并且深入讨论传统结构化和面向对象的分析与设计方法。本书灵活而又创新,全面而又深入,我们相信在读完本书后,你一定会赞同我们的说法。
创新
把关键的系统模型概念整合在一起是本书的一个特色。这些概念既可应用于传统的结构化方法,也可应用于新的面向对象的方法—触发系统用例的事件和作为系统问题域一部分的对象/实体。我们用一章的篇幅讲解确定用例和关键对象/实体的建模。在阅读完这一章之后,教师可以强调结构化的分析与设计或面向对象的分析与设计,或两者兼有。面向对象的方法并不是作为计划外的附加内容加入的,本书从一开始就要求每个人都熟悉面向对象的主要概念。当然,我们并不放弃传统的方法,本书开始就要求每个人都应该熟悉关键的结构化概念。
全面覆盖面向对象(OO)方法
本书所描述的面向对象的方法基于由Grady Booch、James Rumbaugh和Ivar Jacobson所创立的对象管理组织的统一建模语言(UML 2.0)。模型驱动方法从用例和场景开始分析,然后定义用户工作中涉及的问题域类。由用例图、用例描述、活动图和系统顺序图组成需求模型。这里详细讨论了设计模型,特别是顺序图的细节内容、设计类图和包图。而且将设计原理和设计模式贯穿始终。我们的数据库设计章节包括两种保持对象持久性的方法,即采用关系数据库管理的混合方法和采用面向对象数据库管理(ODBMS)的单一方法。对于本书覆盖的内容和深度,强调面向对象方法的授课者是不会感到失望的。
全面覆盖传统方法
本书描述的传统方法基于由Stephen McMenamin、John Palmer、Ed Yourdon和Meilir Page-Jones改进的现代结构化分析与设计方法。现代结构化分析是一种集成的、模型驱动的方法,它包括事件划分、以实体-联系图(ERDS)为基础的数据建模和以数据流图(DFDS)为基础的过程建模。现代结构化设计也是基于事件划分的,也是使用结构图进行软件设计的。使用关系型数据库管理技术进行数据库设计是一个特色,强调使用结构化方法进行开发的教师将会对本书的描述及本书的深度感到满意。
最新的工具和发展趋势
考虑到当今系统开发的实际需要,本书介绍了一些其他的概念和技术。首先,系统开发和系统开发生命周期(SDLC)被明确定义为反复迭代的过程。虽然本书是按照各阶段的顺序排列组织的,项目的实际开发和项目规划则是迭代的。其次,介绍了采用迭代方法的新技术和方法,包括统一过程(UP)、极限编程(XP)、敏捷建模以及Scrum方法。再次,深入讲解了快速应用开发和基于组件的开发。最后,对客户可选择的软件包解决方案和企业资源计划(ERP)在全书中进行说明。
强调迭代和系统构架
我们仍然很关注传统方法的发展状况。许多研究者以前强调传统方法,但现在也不同程度地关注面向对象方法。然而,不论是传统方法还是面向对象方法,我们都加强了对迭代和三层结构的关注,进而讨论与两种方法相关的SDLC中的预测和自适应方法。
项目管理内容和软件工具
很多本科生培养计划都希望通过系统分析与设计课程来讲授项目管理准则。为了满足这种需要,我们从两个方面来讲授项目管理。第一,本书包括并强调具体的项目管理技术和任务。它与教给学生如何应用具体的项目管理任务来解决系统开发生命周期中的各个阶段和活动相结合,包括迭代开发。第二,在本书网站上的附录中我们给出大量详细的项目管理的概念和原则。这些资料来源于Project Management Body of Knowledge(PMBOK),该组织是由项目管理研究机构发展而来的,是美国项目管理领域中重要的专业组织。
第4版的变化
当我们开始涉及第4版中的更新时,我们重点是改进讲述与传授方式,精简了一些实例,更新了一些在系统分析与设计理论和实践中正在变化的素材。此外,根据我们目前的研究和使用本书授课教师的反馈,我们做了一些重要的改进。
结构化方法和后来出现的面向对象方法现在依然平分秋色。这本书着重介绍了传统的结构化方法,包括数据流图或用例建模、实体-联系图、结构图和关系数据库等,还重点介绍了面向对象方法,包括用例建模、域、设计类图、交互图、包图和状态机图等。可以说,本书深入地介绍和对比了这两种方法。我们扩充了用例内容的介绍,将它作为传统方法及面向对象方法的需求模型。越来越多使用传统方法和结构的开发团队开始认识到用例和用例描述的好处。我们没有删除关于数据流图的讨论,但是建议有条件的老师可以用用例图代替。
. 组织结构的改进
我们改变了一些内容的组织结构和顺序,并将一些资料移到了本书相关的网站上,作为在线补充章节和附录。这些变化使得教师在设计他们的课程时更加灵活,同时也使得本书更加容易管理。在这一版中,我们改进了面向对象设计部分第1章的层次和流程,并将修改后的第2章移到了网站上。我们还将关于包和ERP的章节移到了网站上。这样我们就可以在书中提供更多更新的材料,而不用牺牲广度和深度。
软件开发生命周期的预测和自适应方法
另外一个关键的变化是加强了软件开发生命周期的预测和自适应方法的介绍,作为一种定义序列和高迭代生命周期间的连续性方式。项目管理者应该能够定制SDLC来满足特定的项目需求。
加强了面向对象设计内容的介绍
上一版中最显著的改动是大量增加并扩展了面向对象方法的内容。在这一版中,我们进一步精练了原有的讨论和实例,使其在不影响深度的情况下更加易于理解。第11章对实例进行了较大规模的更新。我们还更新了面向对象设计的最新热点一章,但只是把这部分作为独立的在线补充材料放到了本书的网站上。这样,我们在不冲淡传统方法内容的前提下改进,事实上是扩充了面向对象的内容。
加强了实施和支持部分的内容
在这一版中,我们大幅度地更新了实施和支持一章(第15章)。尽管传统的分析与设计课程中综述了实施的过程,但迭代的方法要求更多的强调程序设计人员、实施和集成技术,以及早期迭代中的测试。因此,在整个项目中只考虑分析与设计而不考虑实施和测试是不可能的。
加强了新方法的介绍
我们的书中一直都注重系统分析与设计、系统开发的新概念和新方法的介绍。在这一版中,第2章讨论SDLC的自适应方法时,我们更多地集成了一些具体的方法学。在第16章,我们又更为详细地讨论了这些方法。本书中仍然采用SDLC中的一般的迭代方法,但是教师应该能够保证学生了解许多新的技术和方法学。我们将讨论统一过程方法(UP)、极限编程(XP)、敏捷建模及Scrum开发方法。
组织结构与使用
与第3版类似,本书分为4部分。由于传统的系统设计材料和面向对象的系统设计材料之间的区别越来越大,并且面向对象概念的不断扩大,本版包括16章,另外2章和4个附录放在了本书配套的网站上。根据自己具体情况,教师完全可以跳过某些章节而不失其连续性,有些章节完全是可选的。我们首先对全书做了概述。然后,探讨了在分析与设计课程中采用本教程的不同使用方法,包括对侧重传统结构方法和侧重面向对象方法的教师,以及教授研究生相关课程的教师的建议性的课程大纲。
第一部分:系统分析员
第1章讨论了系统分析员的工作范围,还包括系统的简单讨论和在现代业务组织中解答问题的系统分析员的作用。讨论了RMO的战略信息系统计划,解释了正准备开发的规划项目,即顾客支持系统项目。第2章提出了一个问题:如果我们有一个项目,我们应该怎样来完成这个项目?采用什么方法、工具、技术来开发这个项目呢?介绍了系统开发生命周期(SDLC)的预测和自适应方法,以及基于迭代的不同方法。我们清楚地表明系统开发有很多方法,今天的系统分析员应该熟悉它们。即使学生在课程中或今后的工作中重点应用一种方法,他们也应该能够详细区别结构化的方法、面向对象的方法和其他方法。在详细叙述系统开发生命周期(SDLC)的系统计划阶段,第3章谈到了本课程的核心—系统开发项目。本章介绍了项目规划、可行性评价和项目管理。很快学生对RMO项目有了兴趣,这些材料就会都意义了。
第二部分:系统分析任务
第二部分深入介绍了系统分析技术。第4章详细叙述了SDLC的分析阶段,然后重点介绍了调查系统需求,包括收集信息和调查业主与用户。第5章包含系统需求建模—使用前面已经讲过的包括事件划分和建立对象/实体模型等的方法。第6章继续介绍使用传统方法进行需求建模,包括数据流程图(DFD)、数据流定义、过程描述等,还介绍了一些信息工程模型和技术。第7章继第5章之后继续讨论了采用面向对象的方法进行需求建模,教师可将重点放在第6章或第7章上,以突出课程的重点是传统的还是面向对象的方法,或两者都突出。第8章综述了影响系统解决方案产生的技术环境,然后给出了产生和评价结果的完整的指南,包括软件包解决方案总是可选的这样一个事实。
第三部分:系统设计任务
第9章主要介绍系统设计,详细介绍了SDLC的系统设计阶段。回顾了影响系统设计的科技环境细节,包括网络、客户-服务器架构和三层设计。第10章讨论传统设计方法,包括三层设计的最新想法。第11章和在线补充章节1(参见本书网站)强调了面向对象的设计。第11章为学生讲授如何为每个用例设计交互细节及用例实现。在线补充章节1讨论了更高级的设计状态和设计原理,包括为企业级和基于WEB的系统进行面向对象设计。另外,详细探讨了状态转移和状态机图。为了强调传统的或面向对象的方法,或者二者兼之,教师可以选择将重点放在第10章或第11章。作为第11章的补充,在线补充章节1提供了面向对象设计更为深入的介绍。第12章介绍了数据库设计—关系型、混合型及面向对象的数据库。第13章介绍用户接口和人机交互,包括一般原则、对话设计概念和使用UML图为对话建模。第14章讨论了系统接口,特别注意了系统控制和系统安全。
第四部分:实施与支持
由于现实中有各种各样的开发环境,系统实施越来越多地依赖于技术细节,因此,我们决定对系统实施部分的讨论进行合理的组织以提高其效率。第15章概述了实施、支持传统技术和对象技术。还在第16章全面讨论了快速应用开发和系统开发的新方法,包括统一过程(UP)、极限编程(XP)、敏捷建模和其他方法。同样,尽管全书把包解决方案作为可行的候选来讨论,我们还是在在线补充章节2中对包和企业资源计划(ERP)进行了详细的讨论,包括来自SAP的具体实例。
设计你的分析与设计课程
如前所述,教授分析与设计课程有很多方法,并且各大学之间讲授这门课程的目的也很不同。在一些IS系,分析与设计是一门高级课程,在这里,学生将会应用先前已经学过的知识,如数据库、通信、编程,去进行真正的分析和设计项目。在其他一些IS系,分析与设计被用做系统开发领域的入门课程,并且在更专业的课程之前讲授。有些IS系开设两个课程,在第一个学期强调分析,而在第二个学期强调设计和应用。还有些IS系只开设一门课程同时讲授分析与设计。
分析与设计课程的设计总是很困难的,根据强调传统结构的方法或较新的面向对象的方法进行选择的话,则更加复杂,因此课程设计又要依靠本地课程的优先性了。此外,越来越多的迭代方法在开发中得到应用,这使得顺序排列分析与设计课题更加困难。例如,采用迭代开发,则两课程序列不能轻易地分割为分析、设计。
基于上述问题,提供一个适用所有这些选项的样本教学大纲是不实际的。目标、课程内容、任务和项目有太多的变化。我们所能提供的是使用本书教授这门课程的一些建议。
传统分析与设计课程
传统分析与设计课程包括系统分析和系统设计的行为,采用结构分析和结构设计、数据库设计、输入/输出/控制设计和对话(界面)设计的任务。通常假设项目采用定制开发,包括Web开发。本课程强调了SDLC、项目管理、信息收集和管理报告。为了学生学习的完整性,一个学期的课程通常仅仅达到完成用户接口的原型设计目标。有时,这门课程也会横跨两个学期,在第二学期里,会继续实施一个实际系统,以求获得更完整的开发经验。
对于这种分析与设计课程的教授方法,一个合理的大纲会省略掉一些章节,如详细叙述面向对象、当前潮流、包(这些概念贯穿全书,因此学生仍然能够熟悉它们)。此外,由于要覆盖的信息量比较大,一些附录如项目管理的细节内容、经济可行性、进度安排和汇报展示等,可以省略掉。
对于强调传统方法的课程,推荐大纲如下:
第1章:系统分析员涉及的领域
第2章:系统开发方法
第3章:项目经理级的分析员
第4章:开始分析:调查系统需求
第5章:系统需求建模
第6章:需求的传统描述方法
第8章:需求、环境与实施的候选方案评估
第9章:进入系统设计
第10章:传统设计方法
第12章:数据库设计
第13章:用户界面设计
第14章:系统界面、控制和安全的设计
第15章:使系统可操作化
面向对象分析与设计课程..
除了要特别强调面向对象的模型和技术外,本课程的内容与传统的分析与设计课程类似,包括面向对象的分析和面向对象的设计、数据库设计、输入/输出/控制设计和对话(界面)设计。通常假设项目采用定制开发,包括Web开发。本课程强调迭代开发方法,包括三层结构、项目管理、信息收集和管理报告。为了学生学习的完整性,一个学期的课程通常仅仅达到完成用户界面的原型设计的目标。有时,这门课程也会横跨两个学期,在第二学期里,会继续实施一个实际系统,以求获得更完整的开发经验,通常要强调迭代开发。
对于这种分析与设计课程的教授方法,合理的大纲会省略掉一些细化结构分析和结构设计的章节。描述当前趋势的章节可以吸收进来,包括组件和迭代,但是包可能覆盖不到。此外,由于要覆盖的信息量比较大,一些附录如项目管理的细节内容、经济可行性、进度安排和汇报展示等,可以省略掉。
对于强调面向对象开发的课程,推荐大纲如下:
第1章:现代系统分析员涉及的领域
第2章:系统开发方法
第3章:项目经理级的分析员
第4章:开始分析:调查系统需求
第5章:系统需求建模
第7章:需求的面向对象描述方法
第8章:需求、环境与实施的候选方案评估
第9章:进入系统设计
第11章:面向对象设计方法:用例实现
在线补充章节1:面向对象设计的最新热点
第12章:数据库设计
第13章:用户界面设计
第14章:系统界面、控制和安全的设计
第15章:使系统可操作化
第16章:系统开发中的当前趋势
深入研究系统分析和项目管理的传统课程
有些课程深入研究系统分析方法,强调项目管理。这样的课程通常是研究生课程,并且通常认为设计和实施已在更加技术性的课程中包含了。在一些案例中,认为包更倾向于解决方案而不是定制开发,因此定义需求和管理进度相对于设计行为则显得更加重要。
对于这样的课程,附录中的内容,包括项目管理、经济可行性、进度安排和汇报展示等,应该包含进来。具体描述设计的章节可以省略掉。如果合适,包和ERP 一章(在线补充章节2)应该包含进来。
对于强调传统方法,深入研究系统分析和项目管理的课程而言,推荐大纲如下:
第1章:现代系统分析员涉及的领域
第2章:系统开发方法
第3章:项目经理级的分析员
在线附录A:项目管理的原则
在线附录B:基于PERT/CPM图的项目进度表
在线附录C:净现值、投资回收期、投资收益率的计算
第4章:开始分析:调查系统需求
在线附录D:向管理者展示汇报结果
第5章:系统需求建模
第6章:需求的传统描述方法
第8章:需求、环境与实施的候选方案评估
第9章:进入系统设计
在线补充章节2:包和企业资源计划
深入研究系统分析和项目管理的面向对象课程
一些课程深入研究面向对象的系统分析(而不是面向对象设计),并强调了项目管理。这样的课程通常是研究生课程,并且通常认为设计和实施在更加技术性的课程中包含了。在一些案例中,认为包更倾向于解决方案而不是定制开发,因此定义需求和管理进度相对于设计行为则显得更加重要。
对于这样的课程,附录中的内容,包括项目管理、经济可行性、进度安排和汇报展示等,应该包含进来。具体描述设计的章节可以省略掉。如果合适,包和ERP一章(在线补充章节2)应该包含进来。
对于强调面向对象方法,深入研究系统分析和项目管理的课程而言,推荐大纲如下:
第1章:现代系统分析员涉及的领域
第2章:系统开发方法
第3章:项目经理级的分析员
在线附录A:项目管理的原则
在线附录B:基于PERT/CPM图的项目进度表
在线附录C:净现值、投资回收期、投资收益率的计算
第4章:开始分析:调查系统需求
在线附录D:向管理者展示汇报结果
第5章:系统需求建模
第7章:需求的面向对象描述方法
第8章:需求、环境与实施的候选方案评估
第9章:进入系统设计
在线补充章节2:包和企业资源计划
比较性的分析与设计课程
一些课程纵览分析与设计领域,全面揭示主要的方法。有时候,这些课程是针对有经验的开发者的研究生课程;有时候,这些课程强调建立在具体实践技术经验上的概念。阅读关键模块的知识可能是目的。然而,通常教师会要求亲手实践项目,在同样的课程中使用传统的和面向对象的两种技术设计同一个系统。
最全面的授课可以包括全书的内容。也可以将关于某些技术具体细节的叙述性内容略去。而一个快速的浏览课程可以覆盖各个章节,从而帮助读者快速的区别和了解模型的知识。如下面的大纲所示,第16章和在线补充章节2可以直接紧跟第8章,然后课程可以继续介绍设计部分。如果该比较性的课程强调系统分析和项目管理,则不必包含设计部分,在线补充第2章后就可以结束了,教师可以根据需要选择。
对于比较性的课程,推荐大纲如下:
第1章:现代系统分析员涉及的领域
第2章:系统开发方法
第3章:项目经理级的分析员
第4章:开始分析:调查系统需求
第5章:系统需求建模
第6章:需求的传统描述方法
第7章:需求的面向对象描述方法
第8章:需求、环境与实施的候选方案评估
第16章:系统开发中的当前趋势
在线补充章节2:包和企业资源计划
第9章:进入系统设计
第10章:传统设计方法
第11章:面向对象设计方法:用例实现
第12章:数据库设计
第13章:用户界面设计
第14章:系统界面、控制和安全的设计
第15章:使系统可操作化
分析与设计课程的迭代方法
分析与设计课程的老师所面临的一个最大挑战是如何处理迭代开发。这对于传统的方法和面向对象的方法而言都是一个难题。课本可以教授分析技术,然后按顺序教授设计技术,但是这与实际情况不符。使这门课程与实际情况相象的一个办法是迭代教学,这就是循序渐进的授课方法。
对于迭代开发方法,课程应该快速浏览分析与设计技术,也许要阅读模型的知识,然后反过来更深入地研究分析与设计部分的资料。在第一次阅读的时候,一些章节的内容可以跳过去。但是,理解并阐述分析与设计模型,并不是真正地创建或开发分析与设计模型。因此,最有意义的方法是首先浏览这些技术并以了解知识为目的,然后,当学生基于课程的项目进行实际创建的时候,可以要求学生重新考虑这些模型。
要求学生第一次就读完所有的内容并全部重读,可能会很困难。因此,授课者可以快速浏览该领域,而不是陷入到具体细节上。接着,第二次阅读就可以增加新的内容,并深入理解以前的内容。例如,第一次阅读的时候就可以强调第5章而跳过第6章或第7章(这依赖于强调传统的方法或者面向对象方法)。可以讲授第9章的设计概述,但是其余的设计部分可以仅限于第10章或第11章(这依赖于强调传统的方法或者面向对象方法)。而第二次阅读的时候再深入理解需求模型和设计部分的深入内容。
还有很多种其他的可能性可以考虑。重要的是,在设计课程的时候,考虑了这个问题。你所提供的任何反馈、看法,或者用迭代方法教授分析与设计课程所做的任何尝试,我们都非常感激。
可以获得的支持
《系统分析与设计(原书第4版)》提供支持教师在课堂上使用的教学工具。本书的附件包括:教师手册、答案、PowerPoint展示和图表文件。需要者请依据书后所附的教学支持服务表与本书原出版社圣智学习出版公司北京代表处联系。
教师手册
教师手册中包括使用本书的一些建议和方法,并提供教学大纲,适用于强调传统结构方法或面向对象方法的老师,也同样适用于教授研究生分析与设计课程的老师。
习题解答
我们给教师提供了复习题的答案、章节练习和案例的参考方案。
PowerPoint演示
本书每一章都包括了微软的PowerPoint展示。教师可以用不同的方式使用这些幻灯片,用做教学辅助的课堂演示或者作为印刷品在课堂上分发。教师也可以加入自己的幻灯片,以补充课程主题。
图表文件
图表文件允许授课者直接使用来自课本中的图表创建自己的演示文件。
致谢
写这本书起因于Course Technology的高级副社长、出版商Kristen Duerr和作者John Satzinger的几次最初的集体讨论。我们认为,一本高质量的分析与设计书需要具有竞争意识的出版商的重大承诺。我们也认为,没有一个人能完成这样一本既灵活流畅、又兼具广度和深度的书籍。因此,Course Technology在组织作者参与工作方面发挥了积极的作用。一开始负责这个项目的责任编辑是Jennifer Locke,她在召集作者并制订本书的方向和最终的形式等方面起到了重要的作用。我们还很幸运地拥有Barrie Tysko负责管理第2版和第3版的项目。他们对第2版和第3版的指导也是具有重要价值的。
十分幸运地,由高级产品经理EuniceYeate-Fogle担任第4版的负责工作,她帮助我们阐明修订版的目标并做了大量改进与补充内容。Eunice还管理着我们其他的Thomson Course Technology书籍—Object-Oriented Analysis and Design with the Unified Process的开发工作,在她的帮助下,我们得以很好地组织本书的创作过程。
我们感谢Cengage Course Technology执行编辑Mac Mendelsohn、Bob Woodbury及高级采编Maureen Martin有预见性的思想和不断的支持。还有许多其他人员参与了本书的制作。Course Technology的Amanda Young对第1版给予了重要的支持。产品经理Summer Hughes与Eunice和Karen一起谨慎、周密地工作,帮助我们整理传统和UML图表中的细微之处。创作小组最大可能地实现了我们预先定义的图解协议和标准。Jennifer Smith为第4版安排教师资料做了大量细致的工作。
我们也要感谢其他一些主要人员所作的特殊贡献。密苏里州西南大学的Richard A. Johnson编写了在线补充章节2关于包和ERP的内容,William Baker提供了展示技术的资料。SMSU、Brigham Young大学、新墨西哥大学和其他机构的许多同事和朋友对我们的工作以不同的方式提供了帮助与支持,也要特别感谢Lavette Tangue、Lorne Olfman和Paul Gray的指导与启发。
最后,我们要衷心感谢为我们努力工作的评论家们,他们对本书的第1版、第2版、第3版和第4版的完成自始至终提出建议。我们非常幸运有这么多知识渊博、观点鲜明的评论家。我们认真采纳了他们的意见,使得本书更加完善。第1版、第2版、第3版和第4版的评论家有:
Rob Anson, Boise State University
Marsha Baddeley, Niagara College
Teri Barnes, DeVry Institute—Phoenix
Robert Beatty, University of Wisconsin—Milwaukee
Anthony Cameron, Fayetteville Technical Community College
Genard Catalano, Columbia College
Paul H. Cheney, University of Central Florida
Jung Choi, Wright State University
Jon D. Clark, Colorado State University
Lawrence E. Domine, Milwaukee Area Technical College
Jeff Hefrinton, University ofPhoenix
Ellen D. Hoadley, Loyola College in Maryland
Norman Jobes, Conestoga College, Waterloo, Ontario
Robert Keim, Arizona State University
Rebecca Koop, Wright State University
Hsiang-Jui Kung, Georgia Southern University
James E. LaBarre, University of Wisconsin—Eau Claire
Tsun-Yin Law, Seneca College
David Little, High Point University
George M. Marakas, Indiana University
Roger McHaney, Kansas State University
Cindi A. Nadelman, New England College
Bruce Neubauer, Pittsburgh State University
Michael Nicholas, Davenport University—Grand Rapids
Julian-Mark Pettigrew
Mary Prescott, University of South Florida
Robert Saldarini, Bergen Community College
Laurie Schatzberg, University of New Mexico
Terence M. Waterman, Golden Gate University
参与本书创作的所有人员希望读者在这个不断变化的环境里迎接分析与设计的挑战时能有最好的作为。...
John Satzinger
Bob Jackson
Steve Burd