在企业信息系统的开发中,强有力的分析和设计都是非常重要的。本书讲解设计大型面向对象系统所需的基础理论,以及如何将这些理论付诸实践。本书作者非常注重实践,提供了大量实例、练习和问题,使读者快速掌握理论知识,提高开发水平。
本书主要特点
围绕七个实例研究(大学注册、音像商店、关系管理、电话销售、广告支出、时间记录和货币兑换)展开实例教学,每个实例都具有自身的特点和教学价值。
特别关注设计阶段,并不是将设计看成分析的直接转换,而是充分考虑大型企业信息系统开发的困难和复杂性。
通过大量的练习-答案和问题-解决方案巩固所学的知识。
使用可视化系统建模的标准——UML,讨论使用Web技术和数据库技术进行开发。
新增了解决方案管理框架(ITIL和COBIT)和系统集成、业务过程建模、Web GUI设计。
- 需求获取困难:系统讲解需求引导、协商与确认方法,帮助读者有效捕获和验证用户需求,避免需求遗漏或误解。
- 设计决策迷茫:深入探讨设计阶段的核心原则与策略,指导读者在复杂企业环境中做出合理的设计选择,而非简单转换分析结果。
- 建模技能欠缺:通过UML用例图、类图、顺序图等可视化建模技术,帮助读者掌握标准化的系统建模方法,提升沟通与设计效率。
- 理论与实践脱节:围绕七个真实案例展开教学,提供大量练习与问题解决方案,使读者能够将理论知识灵活应用于实际项目开发。
- 系统集成挑战:新增ITIL和COBIT框架及系统集成内容,帮助读者理解企业级系统开发的整体架构与集成策略。
- 软件工程专业学生:作为系统分析与设计课程的理想教材,帮助建立扎实的理论基础与实践能力。
- 系统分析师与设计师:通过系统化的方法论和案例,提升需求分析和架构设计水平,解决实际工作中的疑难问题。
- 软件项目经理:理解软件过程、生命周期和解决方案管理框架,更好地规划和控制项目进度与质量。
- 企业信息系统开发人员:掌握UML建模和设计模式,提高团队协作效率和代码质量。
- 数据库与对象技术爱好者:深入了解对象持久化、数据库设计及两者整合的先进技术。
- 循序渐进:建议按章节顺序阅读,先掌握软件过程和需求分析基础,再深入学习可视化建模和系统设计,确保知识体系连贯。
- 案例驱动:重点关注七个实例研究(如大学注册、音像商店),边读边动手绘制UML图,将理论应用于具体场景。
- 练习巩固:每章后的复习小测验、选择题和问题务必独立完成,对照答案检验理解程度,薄弱环节回头重读。
- 设计优先:第5章之后的设计内容(架构、详细设计、GUI)是本书精华,建议放慢速度,结合设计模式进行深入思考。
- 项目实践:学完最后两章后,选择一个真实或模拟项目,从需求到设计完整走一遍流程,并尝试使用UML工具进行建模。
- 需求分析能力:掌握需求引导、协商、确认和管理的完整流程,能够编写高质量的需求文档。
- UML建模技能:熟练运用用例图、类图、顺序图、状态机图等UML视图,清晰表达系统静态与动态特征。
- 系统设计思维:理解从需求到设计的转化过程,掌握架构设计、详细设计和设计模式的应用,做出合理设计决策。
- 企业级开发视角:了解大型企业信息系统的开发难点,包括系统集成、解决方案管理框架(ITIL/COBIT)和Web技术。
- 实战经验积累:通过七个案例和大量练习,积累解决实际问题的经验,提升项目开发效率和质量。
- 职业发展助力:为从事系统分析、设计、项目管理或软件开发工作奠定坚实基础,增强职场竞争力。
📖 书籍简介
论述软件分析与设计的原理、方法和技术,并特别关注设计阶段,对软件体系结构的内容进行了很大的扩充。强调对象技术及统一建模语言(UML)在企业信息系统开发中的应用,并讨论了使用Web技术和数据库技术进行开发的方法。
是大学本科生学习系统分析与设计、软件工程、软件项目管理、数据库和对象技术的理想教材和参考书;对于软件工程技术人员来说,《需求分析与系统设计(原书第3版)》也是很好的参考资料。
Leszek A.Maciaszek 澳大利亚悉尼Macquarie大学副教授。他原籍波兰,曾在世界许多国家担任研究员、咨询专家和教师,于1985年移居澳大利亚。他具有在许多大型跨国公司从事技术咨询和培训工作的经验。他的研究领域包括系统开发和集成、软件工程、数据库、对象技术以及分布式计算,已经写了100多篇论文,并出版了7本书。
译者序
前言
第1章 软件过程
1.1 软件开发的本质
1.1.1 软件开发的不变事实
1.1.2 软件开发的“意外事件”
1.1.3 开发还是集成
复习小测验1.1
1.2 系统规划
1.2.1 SWOT方法
1.2.2 VCM方法
1.2.3 BPR方法
1.2.4 ISA方法
复习小测验1.2
1.3 三级管理系统
1.3.1 事务处理系统
1.3.2 分析处理系统
1.3.3 知识处理系统
复习小测验1.3
1.4 软件开发生命周期
1.4.1 开发方法
1.4.2 生命周期的阶段
1.4.3 跨越生命周期的活动
复习小测验1.4
1.5 开发模型与方法
1.5.1 螺旋模型
1.5.2 IBM Rational统一过程
1.5.3 模型驱动的体系结构
1.5.4 敏捷软件开发
1.5.5 面向方面的软件开发
复习小测验1.5
1.6 实例研究的问题陈述
1.6.1 大学注册
1.6.2 音像商店
1.6.3 关系管理
1.6.4 电话销售
1.6.5 广告支出
1.6.6 时间记录
1.6.7 货币兑换
小结
关键术语
选择题
问题
复习小测验答案
选择题答案
奇数编号问题的答案
第2章 需求确定
2.1 从业务过程到解决方案构想
2.1.1 过程层次建模
2.1.2 业务过程建模
2.1.3 解决方案构想
复习小测验2.1
2.2 需求引导
2.2.1 系统需求
2.2.2 需求引导的传统方法
2.2.3 需求引导的现代方法
复习小测验2.2
2.3 需求协商与确认
2.3.1 超出范围的需求
2.3.2 需求依赖矩阵
2.3.3 需求风险和优先级
复习小测验2.3
2.4 需求管理
2.4.1 需求标识与分类
2.4.2 需求层次
2.4.3 变更管理
2.4.4 需求可跟踪性
复习小测验2.4
2.5 需求业务模型
2.5.1 系统范围模型
2.5.2 业务用例模型
2.5.3 业务词汇表
2.5.4 业务类模型
复习小测验2.5
2.6 需求文档
2.6.1 文档模板
2.6.2 项目准备
2.6.3 系统服务
2.6.4 系统约束
2.6.5 项目的其他问题
2.6.6 附录
复习小测验2.6
小结
关键术语
选择题
问题
练习:广告支出
练习:时间记录
复习小测验答案
选择题答案
奇数编号问题的答案
练习的解决方案:AE
第3章 可视化建模基础
3.1 用例视图
3.1.1 参与者
3.1.2 用例
3.1.3 用例图
3.1.4 用例文档化
复习小测验3.1
3.2 活动视图
3.2.1 动作
3.2.2 活动图
复习小测验3.2
3.3 结构视图
3.3.1 类
3.3.2 属性
3.3.3 关联
3.3.4 聚合
3.3.5 泛化
3.3.6 类图
复习小测验3.3
3.4 交互视图
3.4.1 顺序图
3.4.2 通信图
3.4.3 类方法
复习小测验3.4
3.5 状态机视图
3.5.1 状态和转换
3.5.2 状态机图
复习小测验3.5
3.6 实现视图
3.6.1 子系统和包
3.6.2 构件和构件图
3.6.3 节点和部署图
复习小测验3.6
小结
关键术语
选择题
问题
练习
练习:音像商店
复习小测验答案
选择题答案
奇数编号问题的答案
奇数编号练习的解决方案
奇数编号练习的解决方案:音像商店
第4章 需求规格说明
4.1 体系结构优先权
4.1.1 模型-视图-控制器
4.1.2 J2EE的核心体系结构
4.1.3 表示-控制器-bean-中介者-实体-资源
复习小测验4.1
4.2 状态规格说明
4.2.1 类建模
4.2.2 关联建模
4.2.3 聚合及复合关系建模
4.2.4 泛化关系建模
4.2.5 接口建模
4.2.6 对象建模
复习小测验4.2
4.3 行为规格说明
4.3.1 用例建模
4.3.2 活动建模
4.3.3 交互建模
4.3.4 操作建模
复习小测验4.3
4.4 状态变化规格说明
4.4.1 对象状态建模
复习小测验4.4
小结
关键术语
选择题
问题
练习:音像商店
练习:关系管理
练习:大学注册
复习小测验答案
选择题答案
奇数编号问题的答案
练习的解决方案:大学注册
第5章 从分析到设计
5.1 高级类建模
5.1.1 扩展机制
5.1.2 可见性与封装
5.1.3 导出信息
5.1.4 限定关联
5.1.5 关联类与具体化类
复习小测验5.1
5.2 高级泛化与继承建模
5.2.1 泛化和可替换性
5.2.2 继承与封装
5.2.3 接口继承
5.2.4 实现继承
复习小测验5.2
5.3 高级聚合与委托建模
5.3.1 给聚合增加更多的语义
5.3.2 作为泛化的可选方案的聚合
5.3.3 聚合与整体构件-一些仅供
思考的材料
复习小测验5.3
5.4 高级交互建模
5.4.1 生命线和消息
5.4.2 片段
5.4.3 交互使用
复习小测验5.4
小结
关键术语
选择题
问题
练习
练习:时间记录
练习:广告支出
复习小测验答案
选择题答案
奇数编号问题的答案
奇数编号练习的解决方案
练习的解决方案:时间记录
第6章 系统体系结构与程序设计
6.1 分布式物理体系结构
6.1.1 对等体系结构
6.1.2 分层体系结构
6.1.3 数据库为中心的体系结构
复习小测验6.1
6.2 多层逻辑体系结构
6.2.1 体系结构的复杂性
6.2.2 体系结构模式
复习小测验6.2
6.3 体系结构建模
6.3.1 包
6.3.2 构件
6.3.3 结点
复习小测验6.3
6.4 程序设计与复用原则
6.4.1 类的内聚与耦合
6.4.2 复用策略
复习小测验6.4
6.5 协作建模
6.5.1 协作
6.5.2 复合结构
6.5.3 从用例到复合协作
6.5.4 从协作到交互
6.5.5 从交互到复合结构
复习小测验6.5
小结
关键术语
选择题
问题
练习:音像商店
练习:广告支出
复习小测验答案
选择题答案
奇数编号问题的答案
练习的解决方案:广告支出
第7章 图形用户界面设计
7.1 GUI设计原则
7.1.1 从GUI原型到实现
7.1.2 良好GUI设计指南
复习小测验7.1
7.2 桌面GUI设计
7.2.1 主窗口
7.2.2 辅窗口
7.2.3 菜单和工具栏
7.2.4 按钮及其他控件
复习小测验7.2
7.3 WebGUI设计
7.3.1 Web应用系统的使能技术
7.3.2 内容设计
7.3.3 导航设计
7.3.4 利用GUI框架支持Web设计
复习小测验7.3
7.4 GUI导航建模
7.4.1 用户体验故事情节
7.4.2 UX元素建模
7.4.3 行为性UX协作
7.4.4 结构性UX协作
复习小测验7.4
小结
关键术语
选择题
问题
练习:关系管理
练习:电话销售
复习小测验答案
选择题答案
奇数编号问题的答案
练习的解决方案:关系管理
第8章 持久性与数据库设计
8.1 业务对象和持久性
8.1.1 数据库管理系统
8.1.2 数据模型的层次
8.1.3 集成应用系统与数据库建模
8.1.4 对象-数据库映射基础
复习小测验8.1
8.2 关系数据库模型
8.2.1 列.域和规则
8.2.2 表
8.2.3 引用完整性
8.2.4 触发器
8.2.5 存储过程
8.2.6 视图
8.2.7 范式
复习小测验8.2
8.3 对象-关系映射
8.3.1 映射实体类
8.3.2 映射关联
8.3.3 映射聚合
8.3.4 映射泛化
复习小测验8.3
8.4 管理持久对象的模式
8.4.1 检索持久对象
8.4.2 装载持久对象
8.4.3 释放持久对象
复习小测验8.4
8.5 设计数据库访问和事务
8.5.1 SQL程序设计的层次
8.5.2 设计业务事务
复习小测验8.5
小结
关键术语
选择题
问题
练习:关系管理
练习:电话销售
复习小测验答案
选择题答案
奇数编号问题的答案
练习的解决方案:关系管理
第9章 质量与变更管理
9.1 质量管理
9.1.1 质量保证
9.1.2 质量控制
复习小测验9.1
9.2 变更管理
9.2.1 工具与管理变更请求
9.2.2 可追踪性
复习小测验9.2
小结
关键术语
选择题
问题
复习小测验答案
选择题答案
奇数编号问题的答案
第10章 复习巩固指南
10.1 用例建模
10.1.1 参与者
10.1.2 用例
10.1.3 用例图
10.1.4 编写用例文档
10.2 活动建模
10.2.1 动作
10.2.2 活动图
10.3 类建模
10.3.1 类
10.3.2 属性
10.3.3 关联
10.3.4 聚合
10.3.5 泛化
10.3.6 类图
10.4 交互建模
10.4.1 顺序图
10.4.2 通信图
10.5 状态机建模
10.5.1 状态和转换
10.5.2 状态机图
10.6 实现模型
10.6.1 子系统
10.6.2 包
10.6.3 构件
10.6.4 注释
10.7 对象协作设计
10.7.1 用例设计规格说明
10.7.2 用户界面原型
10.7.3 顺序图
10.7.4 设计层类图
10.8 窗口导航设计
10.8.1 用户体验元素
10.8.2 行为性UX协作
10.8.3 结构性UX协作
10.9 数据库设计
10.9.1 对象-关系映射
10.9.2 引用完整性设计
小结
练习:在线购物
附录A对象技术基础
参考文献
📑 章节目录
- 软件过程:理解软件开发本质、系统规划与生命周期模型
- 需求确定:从业务过程到需求引导、协商与管理
- 可视化建模基础:掌握UML用例、活动、结构、交互与状态机视图
- 对象持久化:数据库设计、对象关系映射与持久化框架
- 系统设计:架构风格、子系统划分与设计模式应用
- 详细设计:类设计、接口设计与组件设计
- 用户界面设计:GUI设计原则、Web界面与用户体验优化
- 系统集成:企业应用集成、消息传递与SOA架构
- 设计模式:常见设计模式在系统设计中的具体应用
- 解决方案管理:ITIL与COBIT框架在系统运维中的实践
- 案例研究:综合运用所学知识完成完整系统分析与设计
- 项目实践:从需求到设计的完整项目开发流程演练