很荣幸有机会向大家推荐一本新书,这本书专为主修信息系统、对面向编程缺乏了解的学生以及对计算机或商业环境所知甚少的学生而编写。\r\n重要内容包括:\r\n 一般系统原理的基本概念(第一章),系统分析和设计的上下文环境:系统开发过程和组织环境(第1和第2章)\r\n 系统开发过程的描述,包括Rationa Unified Process。(第2章)\r\n 明确给出了面向对象分析和面向对象设计的分步过程。(第3到第5章和第8到第10章)\r\n 生成系统级模型的主要技术:事件分析。(第3章)\r\n 面向对象分析和设计的建模标准:UM。\r\n 系统体系结构的最佳实践:至少三层的分层模型。(第7章)\r\n 分析和设计明确分离的技术\r\n 明确讨论设计、设计过程的特征以及它们与软件开发的关系。(第6和第7章)\r\n 全面概述了系统设计知识,包括数据库设计和用户界面设计以及程序设计。(第7章)\r\n 重点介绍了方便模型和对象重用的设计实践。\r\n 将模式作为程序设计的方法进行设计。(第5和第8章)\r\n 这两章讲述用户界面设计:有一节讲述有关色彩使用的设计原理(第11章)以及详细的用户交互建模方法和状态转换图(第12章)。\r\n 有些章节在介绍软件项目管理的同时还讲述了如何收集和报告信息。(第13和第14章)\r\n 一个贯穿全书的案例,Pubic University Registration System(公共大学注册系统)用以阐述有关技术。\r\n 两个附加的案例研究,Giant Forest Inn(Giant森林旅馆)和Apache Rent-a-Car(阿帕奇汽车租赁公司),作为项目活动分配的来源。\r\n
第一部分 信息系统开发导论\r\n 第1章 导论 \r\n 1.1 成功处理复杂性 \r\n 1.2 系统是什么 \r\n 1.2.1 系统结构 \r\n 1.2.2 系统的层次结构 \r\n 1.2.3 系统边界 \r\n 1.3 建模与表示 \r\n 1.3.1 系统模型的必要性 \r\n 1.3.2 优秀模型的特征 \r\n 1.3.3 表示 \r\n 1.3.4 符号 \r\n 1.3.5 生成系统模型 \r\n 1.3.6 分析与综合:互补的方法 \r\n 1.3.7 系统模型的限制 \r\n 1.4 信息系统的各项功能 \r\n 1.4.1 通信 \r\n 1.4.2 存储\r\n 1.4.3 转换 \r\n 1.5 信息处理系统 \r\n 1.6 描述计算机信息系统 \r\n 1.6.1 手动和自动系统 \r\n 1.6.2 重点内容 \r\n 1.6.3 系统的基本描述与实现描述 \r\n 1.7 商业计算机信息系统 \r\n 1.7.1 用系统观点看待业务 \r\n 1.7.2 信息:业务运作和管理的关键 \r\n 1.7.3 解决问题与制定决策 \r\n 1.7.4 战略信息系统 \r\n 小结 \r\n 关键术语 \r\n 复习题 \r\n 练习与讨论题 \r\n 第2章 信息系统的开发过程 \r\n 2.1 软件开发的RUP--概览 \r\n 2.2 RUP的核心措施 \r\n 2.2.1 业务建模(组织的再观察和再工程) \r\n 2.2.2 需求(定义用户需求) \r\n 2.2.3 设计(设计系统) \r\n 2.2.4 实现(编写软件) \r\n 2.2.5 测试(开发并施行系统测试) \r\n 2.2.6 部署(将软件集成至用户组织中) \r\n 2.2.7 配置与变更管理(管理演化中的系统的工件) \r\n 2.2.8 项目管理(管理开发过程) \r\n 2.2.9 环境(利用各种过程和工具来支持开发过程) \r\n 2.3 RUP的各个阶段 \r\n 2.3.1 初始阶段(制作业务案例) \r\n 2.3.2 细化阶段(定义系统体系结构) \r\n 2.3.3 构造阶段(构造系统) \r\n 2.3.4 交付(与用户组织的集成) \r\n 2.4 九项措施对各阶段的贡献 \r\n 2.5 迭代式、增量式的系统开发\r\n 时间定量化 \r\n 2.6 系统分析与设计的参与方 \r\n 2.6.1 用户的类型 \r\n 2.6.2 用户的角色、功能和职责 \r\n 2.6.3 分析人员的角色、功能和职责 \r\n 2.6.4 用户和分析人员在设计期间的角色 \r\n 2.6.5 用户与分析人员--协同作用 \r\n 2.6.6 设计人员的角色、功能和职责 \r\n 2.6.7 程序员的角色、功能和职责 \r\n 2.6.8 质量保证人员的角色、功能和职责 \r\n 2.7 系统变更的引入 \r\n 2.8 可行性 \r\n 2.8.1 需解决的问题 \r\n 2.8.2 可行性的分类 \r\n 2.8.3 经济可行性分析 \r\n 2.8.4 计算经济可行性 \r\n 2.8.5 假设与敏感度分析 \r\n 2.8.6 估算可行性分析 \r\n 小结 \r\n 关键术语 \r\n 复习题 \r\n 练习和讨论题 \r\n第二部分 面向对象系统分析\r\n 第3章 系统分析:业务事件分析 \r\n 3.1 确定用户需求 \r\n 3.2 系统分析的目的 \r\n 3.2.1 主要目的 \r\n 3.2.2 次要目的 \r\n 3.3 系统需求陈述的特征 \r\n 3.4 系统分析过程\r\n 3.4.1 分析过程的特征 \r\n 3.4.2 系统分析与统一过程 \r\n 3.5 面向对象系统分析过程 \r\n 3.6 面向对象分析:过程中的模型 \r\n 统一建模语言 \r\n 3.7 面向对象分析技术 \r\n 3.8 面向对象系统的事件分析 \r\n 3.9 事件分析中的概念与定义 \r\n 3.9.1 事件 \r\n 3.9.2 识别事件 \r\n 3.10 业务事件分析 \r\n 3.10.1 事件流 \r\n 3.10.2 数据流 \r\n 3.11 描述业务事件 \r\n 3.11.1 描述定时业务事件 \r\n 3.11.2 描述外部业务事件 \r\n 3.12 确定参与者 \r\n 3.13 确定系统的输入和输出 \r\n 3.14 事件分析示例 \r\n 3.14.1 背景:公立大学注册系统 \r\n 3.14.2 公立大学注册系统的事件模型 \r\n 3.15 事件分析提示 \r\n 3.15.1 建立基本事件模型--忽略实现技术 \r\n 3.15.2 对系统的完整响应建模 \r\n 3.15.3 隔离各个单独事件 \r\n 小结 \r\n 关键术语 \r\n 复习题 \r\n 练习和讨论题 \r\n 案例研究 \r\n 第4章 基本用例与系统时序图 \r\n 4.1 统一建模语言(UML) \r\n 4.2 继续面向对象的分析过程 \r\n 步骤2、3和4的概述 \r\n 4.3 面向对象系统的用例 \r\n 4.3.1 用例 \r\n 4.3.2 事件和用例 \r\n 4.3.3 标识参与者 \r\n 4.3.4 公立大学注册系统中的参与者 \r\n 4.3.5 参与者类型 \r\n 4.4 用例模型 \r\n 4.4.1 用例图 \r\n 4.4.2 标识系统边界 \r\n 4.4.3 时序和内部事件的发起者 \r\n 4.4.4 将用例打包到系统或子系统中 \r\n 4.5 用例描述 \r\n 4.5.1 高级用例叙述 \r\n 4.5.2 扩展用例叙述 \r\n 4.5.3 指示用例叙述中的例外、可选项以及错误处理 \r\n 4.5.4 用例间的关联 \r\n 4.5.5 用例场景 \r\n 4.5.6 评估用例叙述的质量 \r\n 4.5.7 用例模型的缺点 \r\n 4.6 为公立大学系统完成用例叙述 \r\n 4.7 系统时序图 \r\n 4.8 定义系统输入和输出 \r\n 4.8.1 指定传入消息(系统输入)的结构 \r\n 4.8.2 指定传入消息(系统输入)的内容 \r\n 4.8.3 指定传出消息(系统输出) \r\n 4.9 系统输入和系统操作 \r\n 4.10 创建系统时序图 \r\n 小结 \r\n 关键术语 \r\n 复习题 \r\n 练习和讨论题 \r\n 案例研究 \r\n 第5章 域模型与系统操作约定 \r\n第三部分 面向对象的系统设计\r\n 第6章 系统设计导论 \r\n 第7章 信息系统设计 \r\n 第8章 程序设计--交互图 \r\n 第9章 程序设计--设计类图 \r\n 第10章 设计数据库接口 \r\n 第11章 设计用户界面--设计原则 \r\n 第12章 设计用户界面--设计表示层 \r\n第四部分 支持面向对象的分析与设计过程\r\n 第13章 信息的收集、管理与报送 \r\n 第14章 管理面向对象的系统开发 \r\n附录 UML符号与面向对象分析工件 \r\n术语表 \r\n\r\n
如今,面向对象的软件可谓是遍地开花。面向对象的方法现在是开发新的信息系统的首选方法。在业界,统一建模语言(UML)已成为在构建面向对象系统的分析和设计阶段所使用的标准语言。
众多大专院校正将信息系统分析和设计的课程内容从讲解结构化的工具和技术转变成讲解基于对象范例的工具和技术上来。此范例将很快成为一种标准,指导信息系统的 开发。
本书就是介绍面向对象的系统分析与设计的概念和方法的入门教材。本书可以作为大学面向对象的分析和设计课程教材,计划授时为1/4学期或一学期,理想情况下,之前应该有面向对象编程的入门课程。此外,本书也适合MBA或信息系统管理专业的学生。对计算机信息系统专业尤其适用,因为本书提供了极为丰富的、符合低年级水准的系统分析和设计知识,甚至可以作为大二学生的第一门编程和系统课程教材。
本书是一本关于分析和设计的教材,行文严谨而不失活泼。本书适合主修信息系统的学生,他们对计算机和商业环境的了解相对较少。本书简要地介绍了信息系统的开发过程以及面向对象的工具和技术。本书着重阐述基本原理,因为原理的生命力总是比飞速发展的特定工具和技术更持久,也强调了商业决策中可能影响信息系统的非技术性因素以及通信技能的重要作用。
我们将信息系统的分析和设计与一般的系统原理结合起来,并提出一种与学科无关的设计思路。描述了信息系统的开发过程,这也正是分析和设计活动的基本内容。我们提供了详细的讨论和丰富的示例,说明在系统开发中如何使用UML模型。我们并没有一厢情愿地假设学生具有面向对象编程的背景知识。
本书的重点内容包括:
· 一般系统原理的基本概念。
· 系统分析和设计的环境,包括系统开发过程和组织环境。
· 系统开发过程的描述,包括Rational Unified Process。
· 明确给出了面向对象分析和面向对象设计的分步过程。
· 生成系统级模型的主要技术--事件分析。
· 面向对象分析和设计的建模标准--UML。
· 系统体系结构的最佳实践--至少三层的分层模型。
· 分析和设计明确分离的技术。
· 明确讨论设计、设计过程的特征以及它们与软件开发的关系。
· 全面概述了系统设计知识,包括数据库设计和用户界面设计以及程序设计。
· 重点介绍了方便模型和对象重用的设计实践。
· 将模式作为程序设计的方法进行设计。
· 安排了两个章节介绍用户界面设计,其中一章介绍设计原理,该章中有一节讲解颜色的使用;另一章介绍用户交互的建模细节以及如何绘制状态转换图。
· 有些章节在介绍软件项目管理的同时还讲述了如何收集和报告信息。
· 一个贯穿全书的案例,用以阐述有关技术。
· 两个附加的案例,作为项目活动分配的源。
除了本书正文提供的案例之外,每章还包含学习目标、关键术语列表、复习题和练习题。此外,还从关键术语列表中提出核心术语。从第3章开始,每章结尾包括基于两个附加的连续性案例(一家酒店和一家汽车租赁公司)的项目分配。
展示材料,便于进行UML建模软件工具的使用,以及与课程内容紧密相连,但与特定软件包无关的交互式开发环境。
任何入门课程都要在阐明概念和系统开发人员在行业中的职责之间做出权衡。实际上,软件开发可能是个相当复杂、零乱的过程,而不是像教科书中那样整洁有序的过程。然而,正如我的同事近来所说,"开发面向对象系统的有两种人,一种人理解对象,一种人不理解"。本书的重点是帮助学生理解对象。
在书中,我们严格区分了分析和设计。我们的分析模型限制为问题域中的概念。当我们使用对象及其行为构建模型后就进入设计阶段了。尽管有经验的开发人员可以同时进行分析和设计,也可以从分析模型演化到设计模型,尤其是以迭代的方式(至少可以假定他们知道他们正在这样做)。
本书还介绍了一些有一定深度的例子,这样读者可以学会应用模型和技术,而不仅仅是了解相关的知识。在这里,为简明起见,我们进行了必要的简化,尽管忽略了某些细节性的内容,但我们还是努力确保内容的准确性。
本书在阐述系统分析或设计的概念之后,介绍了一些必备的工具和技术。然后利用一个案例(大学注册系统)介绍了如何在分析或设计过程应用这些技术。
其他的系统分析教程一般都讨论事件的分析技术,很少有教程讲解分析过程的驱动程序。我们从系统级事件分析开始,讲解面向对象环境中的用例。
理想情况下,广义的系统设计应该包括计算机信息系统中的三个基本子系统:应用程序、数据库和用户界面。实际上,通常会有专门的课程来讲解数据库设计。因此,我们将重点放在系统级设计、程序设计和用户界面设计上。然而,为了保证概念的完整性,我们将主要问题归并到数据库接口的设计中。
有关用户界面设计的章节综合了可视化和可感知的设计原理以及精确的软件工程模型。
本书共分四个部分。第一部分(第1、2章)从讨论商业信息系统和系统开发过程开始。第1章介绍一般系统原理中的一些重要概念,并利用这些概念描述商业系统和信息系统。第2章介绍用于信息系统开发的Unified Process(统一过程),确定通过该过程生成的主要交付产品,描述参与者的角色。
第二部分(第3~5章)讲述面向对象的系统分析。第3章概述系统分析,介绍了系统级的事件分析方法,并将其作为启动分析过程的首选技术。第4章和第5章描述UML面向对象分析模型:用例和用例图、系统顺序图、系统约定和问题域模型。这些章节以一个大学注册系统为例,讲述了如何使用面向对象的分析方法,陈述用户对计算机信息系统的需求。
第三部分(第6~12章)讲述面向对象的系统设计。首先概述了系统设计和信息系统的设计过程。第6章讨论了对所有设计都适用的基本概念和原理。第7章陈述了信息系统设计的目标,探讨了用于实现信息处理系统的组件。第7章将系统设计活动与信息系统的开发过程联系在一起,探讨了系统设计人员的角色和技能。将系统设计视作三个子问题(程序设计、用户界面设计和数据库设计)的组合体。
第8章到第10章讲述面向对象的程序设计。第8章讨论对象软件范例的基本特征,介绍基本的设计模式,为对象分配相应的职责。接着讲述交互图:协作图和顺序图,介绍了阅读、理解和开发交互图所需的UML约定。第9章讨论UML设计类图和设计质量的标准以及技术,以便确定设计方法。
第 10 章讨论与面向对象软件和面向对象或关系型数据库之间的接口有关的问题。数据库的设计则不属于本书的范畴。
第11章和第12章则与设计用户界面有关:具体的窗体和跨越自动边界的消息结构。我们重点介绍一种基本的方法和基础原理,这样就可以从容应对设备或具体信息发生变化的情况。我们鼓励设计人员开拓思路,而不是受到各种条条框框的束缚。第11章提供了用户界面设计环境,归纳了重要的设计原理和准则,并将这些原理应用到报告和显示的设计中。第12章介绍了状态转换图,用于构建用户和计算机之间交互界面的模型。还指出了用户界面和应用层之间的关联。
第四部分讨论了支持系统分析和设计的产品和过程的其他活动。第 13 章讨论了信息收集和报告的方法。第14章则讲述面向对象的软件开发项目的管理。
还有一个附录,归纳了有关最重要的UML约定的参考资料。
补充资源包:www.prenhall.com/stumpf
这里有丰富、灵活的技术支持包,可以改善教与学的体验。本书的网站上列出了供教师和学生用的所有补充材料:www.prenhall.com/stumpf。
· 教师手册。教师手册包括:教学目标,每章结尾的练习题答案和教学建议。Stumpf网站的secure faculty中提供教师手册。
· 测试题(Test Item File)和TestGen软件。测试题中包含大量的判断题、多选题和简答题。这些问题根据难易程度排序,答案则根据页码进行索引。测试题采用了Microsoft Word格式,是Prentice Hall TestGen的电子版。TestGen是一套全面的测试和评估工具。利用 TestGen,教师可以轻松地创建和发布所授课程的测试,测试可以是通过传统方法分发的打印试卷,也可以通过局域网联机分发。TestGen提供Screen Wizards(屏幕向导)功能,帮助教师安排教学计划,该软件还提供全面的技术支持。测试题和 TestGen 软件均可从Stumpf网站的secure faculty中获得。
· PowerPoint幻灯片。本书的网站上还提供PowerPoint幻灯片,这些幻灯片形象地描述和介绍了本书中的关键概念。学生和教师均可从Stumpf网站下载这些PowerPoint幻灯片。
· 联机课程材料。Prentice Hall提供了大量可以随时用于WebCT和黑板课程管理系统的文件,从而支持使用联机课程的读者进行测试、提问和其他补充教学。欲了解有关你所选课程的更多信息,请联系你当地的PH销售商或发电子邮件至mis_service@prenhall.com。
致 谢
感谢我们的同事和学生的批评,过去两年里他们的建议使本书日渐完善。还要感谢评审本书手稿的编辑,他们提出了大量富有见地的宝贵意见。
Rob Anson,爱达荷州立大学
Bettina Bair,俄亥俄州立大学
Dirk Baldwin,威斯康星大学
Martin Dion Benes,DeVry大学
Qing Cao,密苏里州大学
Gail Corbitt,加利福尼亚州立大学奇科分校
Terry L. Fox,Baylor大学
Robert Grenier,Augustana大学
Marilyn Griffin,弗吉尼亚技术学校
Wayne Huang,俄亥俄大学
Lakshmi Iyer,北卡罗纳州大学格林斯博罗分校
Fred Neiderman,圣路易斯大学
Bonn Oh-Kim,西雅图大学
Alex Ramirez,卡尔顿大学
Anthony Scime,SUNY-Brockport
Nedal Seyam,DeVry大学
Ed Sullivan,印第安纳大学、普度大学印第安纳波利斯分校
Craig VanLengen,北亚利桑那大学
Te-Wei Wang,佛罗里达国际大学
Connie Wells,罗斯福大学
David Woodruff,加利福尼亚-戴维斯大学
特别感谢Bob Horan从本书开始编撰以来对我们的大力支持。他的鼓励和支持是本书能够完成和成功发行的关键。
Robert V. Stumpf
Lavette C. Teague
波莫纳市,加利福尼亚州
2004年3月23日