首页>参考读物>计算机科学与技术>软件工程及软件方法学

需求分析与系统设计
作者 : Leszek A.Maciaszek
译者 : 金芝
出版日期 : 2003-06-01
ISBN : 7-111-11911-8
定价 : 39.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 296
开本 : 16开
原书名 : Requirements Analysis and System Design: Developing Information Systems with UML
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书的最大特点是“实例教学”。所有概念都用实例说明,并通过可以实际运行的案例来分析集成解决方案。
  本书可以作为本科生计算机科学或信息系统等相关专业的教材,如: 系统分析、系统设计、软件工程、
数据库和对象技术。本书还可作为专业的业务信息系统开发人员的参考用书,如:丌管理者、应用开发者、咨询专家、分析员、设计师、程序员、测试员、软件工程师、系统集成人员。本书还为老师、学生和业界专家提供了包含大量有价值附加材料的Web站点。
  本书详细论述了以下内容:
  集成分析和设计模型
  掌控大型系统模型复杂度
  改进软件体系结构
  促进对象的分层结构
  了解草率建模的严重后果
  进行测试和管理变更
  构建可维护的和可扩展的系统

图书特色

Leszek A.Maciaszek在澳大利亚悉尼Macquarie大学任计算技术副教授。他原籍波兰,曾在世界许多国家担任研究员、咨询专家和教师,包括美国、德国、法国、意大利、荷兰、中国澳门、马来西亚、泰国和科威特。他于1985午移居澳大利亚。他具有在许多大型跨国公司从事技术咨询和培训工作的经验。他的研究领域有数据库、面向对象技术、软件工程和业务信息系统开发。他出版的著作很多,包括《数据库设计与实现》 (Prentice Hall,1990)。

图书前言

前言
  本书概况
  IS(信息系统)的开发,从开始计划到第1版交付给投入者,包含了三个迭代增量式阶段:分析、设计和实现。本书论述了前两个阶段中使用的方法和技术。实现方面的问题只在设计阶段需要考虑时才论述。测试和变化管理在最后一章也有所涉及。
  本书主要集中在面向对象软件开发上。UML(统一建模语言)用于捕捉建模的制品,主要论述用逐步精化的方式进行开发的过程,并且在整个开发生命周期中也使用UML这种建模语言,系统分析员、设计师和程序员“说着”同一种语言,但有时也会使用一些语言中的方言(描述)以满足特别的需要。
  对象技术的早期应用主要针对GUI(图形用户界面),并关注开发新系统的速度和程序执行的速度。而在本书中,作者强调对象技术在IS开发中的应用。其中的挑战是大量的数据、复杂的数据结构、许多用户对信息的共享式访问、事务处理、变化的需求等等。对象技术在IS开发中的主要优势在于能使软件的维护和可扩展性变的容易。
  开发和分析信息系统与进行大规模的设计是同步的。如果不遵循严格的开发过程和不理解基本的软件体系结构,IS项目就不可能成功。这种开发是大规模的、面向对象的、迭代增量式的。软件体系结构以客户机/服务器方案为基础,这里客户机是带有GUI的工作站;而服务器则存储数据。客户机和服务器按各自的进程运行,并通过对象消息进行通信。服务器数据库可以是关系型的、对象关系型的或者面向对象型的。
  本书提出了用UML进行信息系统分析和设计的详细方法,确定了以下几方面的解决方案:
  1.掌控大型系统模型复杂性。
  2.改进软件体系结构。
  3.提高软件可读性、可维护性和可扩展性。
  4.促进对象的分层结构。
  5.处理构件集成。
  6.增进对GUI和永久数据库对象间合作的建模,等等。
  本书特点
  本书的最大特点是“实例教学”。主要的讨论都以例子和从五个应用领域中产生的(大学注册、音像商店、关系管理、电话销售和在线购物)学习指导为基础。这些例子是独立的。它们在许多章后的练习题中被扩展,从而逐步形成案例分析。一些练习还涉及第六个应用领域:广告开销度量。
  为了便于自学,本书用问答的形式阐述了学习指导(在线购物)以及案例分析。本书正文前独立的一节“导读图”提供了链接学习指导和案例分析中问题及解答的步骤图。这个图可以作为应用于各章中例子的另一个目录。
  本书讨论了好的分析以及设计的原理、方法和技术,并对设计阶段投入了特别的关注,而设计并不作为分析的直接转换。本书承认大规模面向对象的客户/服务器系统开发的困难和复杂性,并对“大粒度设计”、大型系统的迭代增量式开发以及在大型软件生产中工具和方法的能力和局限性等问题在许多方面都提出了新颖独特的见解。
  本书只有一章将理论与实践相结合,这既避免过度复杂,同时又不失其严格性。本书从经验的角度“说话”,与工业无关的或者只具有研究价值的主题并不讨论。
  本书处于与信息技术的“交汇点”。它使用系统建模中的最新的标准——UML。它满足了数据库技术,包括对象—关系数据库的最新发展。在这个背景下,Intemet驱动的从“胖客户机”(即大型台式计算机)回到基于服务器的计算的变化得到认可。正文中讨论的分析和设计原理也适用于传统的客户机/服务器解决方案以及现代的基于构件的分布式应用。
  软件开发并没有“黑—白”、“真—假”、“0—1”式的解决方案。好的软件解决方案出自好的业务分析员和系统设计师/程序员,而不是源于盲目应用的算法。本书的一个策略是提示读者那些提倡的方法并不能完全解决的潜在困难。目的是希望读者能认真地应用所学的知识,而不应认为这些方法是很容易应用的,从而可能导致更大的失败。
  本书特点如下:
  1.理论联系实际。按“在领域中”应用该方法所必须解决的实际问题和限制的形式。
  2.给予设计阶段特别的关注。本书并不将设计看做从分析中的直接转换,而是承认大规模客户枷服务器系统开发的困难和复杂性。
  3.本书包含了大量实例和练习,并附有解答。目标读者
  随着与工业实践更加相关的大学课程需求的日益增长,本书的目标就是面向这样的一些学生和实践者。这曾是一个机遇与挑战并存的任务,现在这个任务已经成功地实现了。为了确保继续教育的优点,本书采用了一种不是特定供应商专用的术语来讨论软件开发实现方面的问题(虽然在示例和解决方案中使用了商用的CASE工具)。
  本书针对计算机科学和信息系统方面的课程。由于本书既包含“高层”系统建模的内容,也包含“低层”用户界面和数据库设计的问题,本书可作为系统分析、系统设计、软件工程、数据库、对象技术等方面课程的教材,也可用于要求学生遵循的从需求确定到GUI以及数据库实现的开发生命周期的软件项目的课程。本书是为一个学期的课程而设计的,但用于两个学期的课程也是可以的,一个学期学习需求分析,而另一个学期学习系统设计。
  对从业的读者来说,书中所给出的理论都与实际相关,大多数问题的陈述、例子和练习都来自作者的实践工作。本书采取的策略是提醒读者所提出方法的潜在困难或限制。下面的一些从业人员均能从本书获益:业务和系统分析员、设计人员、程序员、系统架构师、项目领导和经理、审查员、测试人员、技术资料编写人员以及行业培训员。
  本书的组织结构
  本书较全面地论述了信息系统的面向对象分析和设计。内容的次序与现代开发过程一致。全书十章,在分析和设计两个方面的内容比重均衡。前五章解决分析的问题,而后五章涉及设计及其相关的其他内容。 
  具有不同背景知识的读者都适合阅读本书。书中有两章专门用于对分析和设计的基础进行介绍,其余各章假设读者已经理解了这些基础。读者可以选择性地阅读介绍基础知识的这两章,也可以仅仅查阅其中的相关内容。
  本书的其他特点:
  每节都比较短。
  例子和问题陈述放在方框内,以区别于正文,也用页边空白上的图标(如下图所示)
  标记每个例子的起始。
  使用以下图标键:
  补充材料
  在相应的网页上提供了内容广泛的补充材料,其中大多数的Web文档对读者都是免费的,但为了保护采用本书作为教材的教师们的利益,有些材料用口令保护起来。本书的主页地址如下:
  http://www.booksites.net/maciaszek
  http://www.comp.mq.edu.au/books/maciaszek
  1.教师手册包括:
  Microsoft PowerPoint和Acrobat Reader(.pdf)格式的幻灯片。
  包含每章后面的复习题和练习题的答案以及解决方案的解答手册。手册的组织与正文的结构相对应,手册中有正文提及的问题,其后是答案和解决方案。
  2.学生资源包括Acrobat Reader格式的可打印的幻灯片。
  3.自学资源包括Rational Rose(.mdl)和PowerDesigner(.pdm)模型文件,包含对学习指导案例分析和本书中其他建模例子的解决方案。
  4.勘误页面用于对本书中的错误和遗漏进行更正。
  5.进一步的信息向读者介绍本书涉及主题的最新进展和趋势,也确定了采用本书并准备与其他读者共享Web设施的课程。 
  欢迎读者对本书的任何评价、更正和建议,请直接以以下方式联系:
  Leszek A.Maciaszek
  Department of Computing
  Macquarie University
  Sydney
  NSW 2109
  Australia
  leszek@ics.mq.edu.au
  http.//www.comp.mq.edu.au/~leszek/
  电话:+61 2 9850-9519
  传真:+61 2 9850-9551
  地址:North Ryde,Herring Road,Bid.E6A,Room319

作者简介

Leszek A.Maciaszek:暂无简介

译者简介

金芝:暂无简介

译者序

随着计算机的日益普及和广泛应用,软件系统的规模和复杂程度与日俱增,软件开发技术面临新的挑战。大型复杂软件的开发是一项特殊的工程。它与传统工程的相同之处是需要按工程学的方法去组织和管理软件的开发。但与传统工程相比,软件工程还有其独特之处。软件开发本身就是一个迭代增量式的过程。在软件生命周期的前两个阶段,即分析和设计阶段更是如此。其中,分析过程是人们对目标(待开发的软件)的理解过程,这个理解通过迭代增量式的开发而不断地深入和精确。设计过程则是根据这个理解和软件实施的硬件/软件平台来进行的软件规划和部署。人们常说,分析和设计在软件的开发过程中占据至关重要的地位,这是因为这个过程产生的对目标软件理解的正确性、完备性和软件规划的合理性直接影响了软件项目的成败。
  本书重点论述了软件分析和设计的迭代增量式过程。当然,为了保持软件生命周期的完整性,本书也对软件生命周期中的其他阶段(如实现、测试和变化管理等)也有所涉及。本书采用目前主流的建模语言UML(统一建模语言)作为软件模型的描述语言。实际上,UML从事实上支持了作者所提倡的迭代增量式软件开发过程的观点,UML提供了这个迭代增量式过程中不同阶段的建模元素,其相同的术语集促进了这个迭代增量式过程的平滑进行,也支持了不同阶段所涉及的开发人员之间的相互沟通和理解。
  本书的最大特点是“实例教学”。目前,由于软件分析和设计还完全是一种经验,实例对教学来说十分重要。而且本书提供的几个实例贯穿于全书,实例不断扩展的过程体现了软件分析与设计的迭代增量式过程。对初学者和软件实践人员来说,这种教学方式是非常有效的。
  希望读者能从本书受益,同时诚恳地希望对书中存在的错误给予指正。
  译者
  2003年2月于北京

图书目录

第1章 软件过程
1.1 软件开发的本质
1.1.1 软件开发的不变事实
1.1.2 投入者
1.1.3 过程
1.1.4 建模语言和工具
1.2 系统规划
1.2.1 SWOT方法
1.2.2 VCM方法
1.2.3 BPR方法
1.2.4 ISA方法
1.2.5 三个管理层次的系统
1.3 软件生命周期的阶段
1.3.1 需求确定阶段
1.3.2 需求规格说明阶段
1.3.3 体系结构设计阶段
1.3.4 详细设计阶段
1.3.5 实现阶段
1.3.6 集成阶段
1.3.7 维护阶段
1.3.8 软件生命周期中的项目规划
1.3.9 软件生命周期中的度量标准
1.3.10 软件生命周期中的测试
1.4 软件开发方法
1.4.1 结构化方法
1.4.2 面向对象方法
小结
复习题
第2章 需求分析基础
2.1 对象技术基础
2.1.1 实例对象
2.1.2 类
2.1.3 关联
2.1.4 聚合和组合
2.1.5 泛化
2.1.6 类对象
2.2 分析建模中的学习指导
2.2.1 在线购物
2.2.2 用例建模
2.2.3 活动建模
2.2.4 类建模
2.2.5 交互建模
2.2.6 状态图建模
2.3 案例分析的问题陈述
2.3.1 大学注册
2.3.2 音像商店
2.3.3 关系管理
2.3.4 电话销售
小结
复习题
练习题
第3章 需求确定
3.1 需求确定的原则
3.2 需求抽取
3.2.1 传统的需求抽取方法
3.2.2 现代需求抽取方法
3.3 需求协商和验证
3.3.1 超出范围的需求
3.3.2 需求依赖矩阵
3.3.3 需求风险和优先顺序
3.4 需求管理
3.4.1 需求识别与分类
3.4.2 需求层次
3.4.3 变化管理
3.4.4 需求可跟踪性
3.5 需求业务模型
3.5.1 系统范围模型
3.5.2 业务用例模型
3.5.3 业务类模型
3.6 需求文档
3.6.1 文档模板
3.6.2 项目准备
3.6.3 系统服务
3.6.4 系统约束
3.6.5 项目的其他问题
3.6.6 附录
小结
复习题
练习题
第4章 需求规格说明
4.1 需求规格说明的原则
4.2 状态规格说明
4.2.1 为类建模
4.2.2 为关联建模
4.2.3 为聚合和组合关系建模
4.2.4 为泛化关系建模…
4.2.5 为对象建模
4.3 行为规格说明
4.3.1 为用例建模
4.3.2 为活动建模
4.3.3 为交互建模
4.3.4 为公共接口建模
4.4 状态变化规格说明
4.4.1 为对象状态建模
小结
复习题
练习题
第5章 高级分析
5.1 高级类建模
5.1.1 构造型
5.1.2 约束
5.1.3 注释和标签
5.1.4 可见性和封装
5.1.5 导出信息
5.1.6 被限定的关联
5.1.7 关联类与具体类
5.2 类层次
5.2.1 网络的复杂性
5.2.2 层次的复杂性
5.2.3 包
5.2.4 BCE方法
5.3 高级泛化和继承建模
5.3.1 泛化和可代换性
5.3.2 继承与封装
5.3.3 接口继承
5.3.4 实现继承
5.4 高级聚合和代理建模
5.4.1 将更多的语义放进聚合
5.4.2 聚合作为泛化的一种选择
5.4.3 聚合和整体构件--一些仅供思考的材料
小结
复习题
练习题
第6章 系统设计基础
6.1 软件体系结构
6.1.1 分布式体系结构
6.1.2 三层体系结构
6.1.3 数据库编程
6.1.4 复用策略
6.1.5 构件
6.1.6 部署
6.2 协作
6.2.1 协作表示法
6.2.2 协作图
6.2.3 序列图与协作图
6.2.4 用例的实现
6.2.5 操作的实现
6,3 设计建模的学习指导
6.3.1 包设计
6.3.2 构件设计
6.3.3 部署的设计
6.3.4 协作的设计
小结
复习题
练习题
第7章 用户界面设计
7.1 界面设计作为一个多学科的活动
7.2 从界面原型到实现
7.3 以用户为中心的界面设计方针
7.3.1 用户控制式
7.3.2 一致性
7.3.3 个性化和客户化
7.3.4 宽容
7.3.5 反馈
7.3.6 审美和可用性
7.4 界面窗口
7.4.1 主窗口
7.4.2 辅窗口
7.5 窗口之间的依赖关系
7.5.1 文档与视图
7.5.2 单文档界面
7.5.3 多文档界面
7.6 窗口导航
7.6.1 构造型窗口导航的活动图
7.6.2 窗口导航图
小结
复习题
练习题
第8章 数据库设计
8.1 永久数据库层
8.1.1 数据模型
8.1.2 映射对象到数据库
8.2对象数据库模型
8.2.1 ODB建模原语
8.2.2映射到ODB
8.3 对象关系数据库模型
8.3.1 ORDB建模原语
8.3.2 映射到ORDB
8.4关系数据库模型
8.4.1 RDB建模原语
8.4.2 映射到RDB
小结
复习题
练习题
第9章 程序和事务设计
9.1 设计程序
9.1.1 类的内聚和耦合
9.1.2 设计客户枷服务器合作
9.2程序导航
9.2.1 构造型程序导航的活动图
9.2.2 程序导航图
9.3 设计事务
9.3.1 短事务
9.3.2 长事务
9.4 双向工程
9.4.1 客户机程序的双向工程
9.4.2 数据库的双向工程
9.4.3 从关系数据库到对象关系数据库的再设计工程
小结
复习题
练习题
第10章 测试和变化管理
10.1 测试系统服务
10.1.1 走查
10.1.2 检查
10.1.3 针对规格说明的测试
10.1.4 针对代码的测试
10.2 测试系统约束
10.2.1 用户界面测试
10.2.2 数据库测试
10.2.3 授权测试
10.2.4 其他约束的测试
10.3 测试和变化管理文档
10.4 管理变化
10.4.1 提交变化请求
10.4.2 跟踪变化请求
10.5 可跟踪性
10.5.1 对用例和用例需求的系统特征
10.5.2 对测试案例和测试需求的测试计划
10.5.3 对文档和需求的UML图
10.5.4 对测试需求的用例需求
10.5.5 对故障的测试需求
10.5.6 对改进的用例需求
小结
复习题
参考文献

教学资源推荐
作者: 薛均晓
作者: [美]罗杰·S. 普莱斯曼(Roger S. Pressman) 布鲁斯·R. 马克西姆(Bruce R. Maxim) 著
作者: Kathy Schwalbe
参考读物推荐