图书简介:
目 录
引言 走入信息系统开发的“魔鬼”地带:从哪里开始 1
第1章 从这里开始——基于实践,编好系统开发计划 5
1.1 调查研究一下这是一个什么项目 7
1.1.1 了解一下这家酒店的背景 7
1.1.2 讨论清楚系统的目标 9
1.1.3 画一幅酒店组织架构图 11
1.1.4 重点是一定要研究清楚在信息系统支持下酒店运行的业务流程 13
1.1.5 画一幅系统的网络环境图 15
1.2 如何分解系统 17
1.2.1 把系统划分成几个子系统 17
1.2.2 明确每个子系统的功能 19
1.2.3 确定系统的软硬件配置 21
1.3 如何安排好项目计划 23
1.3.1 安排好时间:软件过程模型的实际应用与管理 23
1.3.2 安排好资金:为测试与维护留有余地——40-20-40原则 28
1.3.3 安排好人员:人件与风险管理 30
1.4 如何考虑知识产权问题 32
1.4.1 严谨制定开发合同:不要以为合同是虚的 33
1.4.2 具体确定利益分派:不要以为利益只是钱 34
1.5 如何编好系统开发计划书——计划书实例 36
第2章 从这里入手——观察实践,分析需求 55
2.1 从宏观上把握系统——系统Use Case图 56
2.1.1 在线预订Use Case图 58
2.1.2 前/后台系统Use Case图 60
2.2 从微观上明确概念——系统概念模型 62
2.2.1 系统E-R图 62
2.2.2 概念定义——数据表 65
2.2.3 概念定义——数据字典 67
2.3 从流程上明确需求——系统DFD图与相关IPO描述 70
2.3.1 全系统0层DFD 70
2.3.2 系统1层DFD 72
2.3.3 系统2层DFD 74
2.3.4 IPO描述 75
第3章 从这里深化——深入实践,建立UML模型 77
3.1 哪些是我系统中的对象——静态Class图 79
3.1.1 系统Class图 80
3.1.2 系统GUI类图 83
3.2 如何用这些对象实现我的系统——动态Sequence图 85
3.2.1 预订(Reservation)序列图 87
3.2.2 登记入住(CheckIn)序列图 89
3.2.3 退房结账(CheckOut)序列图 91
3.3 如何编好系统需求规范说明书——SRS实例 93
第4章 从这里构筑——围绕实践,设计系统架构与部件 116
4.1 如何考虑系统架构 117
4.1.1 以数据为中心的体系架构 117
4.1.2 分层体系架构 118
4.1.3 三层体系(C/S, B/S)架构 119
4.1.4 调用/返回体系架构 120
4.1.5 面向对象体系架构 121
4.1.6 面向对象与面向过程 122
4.2 如何组织对象部件——Package图 124
4.3 如何设计对象部件 126
4.3.1 预订Component图 127
4.3.2 客房Component设计 128
4.3.3 预订Activity图 130
4.3.4 客房State图 132
4.3.5 入住/退房 Swimlane图 133
第5章 哇,软件出来了——反复实践,实现系统 136
5.1 酒店网站首页的设计:注意全局风格的安排 137
5.2 客房预订的实现——关联预订的分析与设计 142
5.3 入住登记的实现——关联入住的分析与设计 145
5.4 退房收银的实现——关联退房的分析与设计 147
5.5 如何编好设计说明书——设计说明书实例 150
第6章 从这里解析——酒店薪资管理系统 174
6.1 背景 175
6.2 问题与需求分析 175
6.3 系统开发过程 178
6.4 薪资发放管理子系统 180
6.5 薪资分析管理子系统 186
6.6 阶段成效及全系统目标 188
后记 190
展开
前 言
信息系统的设计、软件的开发,是一门科学还是一门工程?这是一个很难讨论也很难确定的问题。实际上,工程中有科学,科学中有工程,二者兼容并蓄,而我们也没有必要去严格地鉴定二者之间的界限。信息系统设计、软件开发的目标是开发出有效、实用和高质量的信息系统,其中需要更多的理论指导,还是本质上是一个实践出真知的行当?这里有太多理论与实践关系的博弈。
开发活动真正上升到系统化、工程化的层次,往往是在提高开发效率和质量的压力已经明确压迫到自身的时候,是在“软件危机”的感觉已经“大难临头”的时候,很多开发者才真正开始回味信息系统、软件工程学习中的内容,萌发对系统化、工程化思考、设计的实质需求。然而,这时他们中的很多人才发现,此前课程中学习的理论,在实践中是那么苍白,似乎有些启蒙,但更多的像是泡沫,相当大一部分信息系统、软件工程的学者和书籍是在靠一堆洋精华或洋糟粕的洋“泾浜”而扬名万里。理论脱离实践,特别是脱离中国的实践、本土的实践,这是许多课程与教材中不争的现实。
信息系统开发、软件设计,实实在在是一门实践中的学问。将信息系统分析、设计、管理的基本概念、类型、方法、过程等总结出来,成为“信息系统”课程;而将各种大型复杂软件的开发、管理方法上升到理论研究层面后,则被称为“软件工程”而存在。但在信息系统、软件工程的各种书籍中,我们看到,从理论到理论、从理论到实践描述的书多,而从实践到理论、从实践到实践描述的书少。实践是检验真理的唯一标准,普遍真理必须与具体实践相结合。实践本身就是最好的老师,就是最好的理论!这个简单的哲学道理应该是学习信息系统、软件开发和软件工程的基本点。
基于上述考虑,本书以一个非常典型的信息系统——酒店信息系统的开发为例,站在欠缺经验的分析、开发者的角度,从最初的系统规划、项目计划开始,到系统需求分析、系统建模,再到系统设计、系统实现。初学者懵头懵脑开始参与开发,建模画图、编写文档、编程实现,自然是幼稚满篇、错误满地、漏洞百出。书中从这些懵头懵脑的、糊里糊涂的、不知所措的分析思考出发,规划系统,建立计划,思考Use Case,构建ER、DFD、面向对象UML等模型,再到系统构架、系统实现等,逐一勾画“菜鸟”,再加以评判,逐步改进、厘清;指出实践中带有普遍性、关联性的问题,再提升到系统化、软件工程化的层面加以讨论。全书采用对比分析、逐步改进深化的写作风格,并综合了作者多年系统分析、软件开发的实践经验。从这些来自真实实践的逐步分析构思及相应模型、图、表、文档的产生、评判、改进、提升的过程中,读者可以举一反三,避免类似糊涂、片面、错误的再发生,切实提高自己系统分析、软件工程的实际素质、能力和修养,从而避免被同事、上级批判、杯葛乃至被炒鱿鱼的窘态。
在系统分析设计中,各种模型图是抽象思考、清晰描述的重要手段,易于厘清思路,可读性强。本书将以各种结构图、流程图、多视角模型图为主要描述手段,辅以适当表格,力求图、表、文并茂。
对于流行的面向对象与面向过程两种软件开发方法,学习者要么混淆混沌,要么割裂对立,书中则根据酒店信息系统的开发实际,将二者综合,优势互补,最后再比较两种方法的特点,比空谈两种理论更具有启发性和实践价值。
本书并不试图代替任何一本信息系统、软件工程的理论或者教程类的书籍,但作为信息系统、软件工程课程的参考书,或者系统分析实践、软件实践、软件工程实习的教材,或者在信息系统设计分析、软件领域摸爬的新老手们有质量、效率危机已经“大难临头”的感觉,需要找点实际经验和实质参考规则时,这本书都是合适的。
站在信息系统、软件开发初学者的视角,读者最好具备一定的系统分析、软件设计、编程的基本概念和知识。对于时间不多又较有开发经验的读者,可以省却阅读第1、3、5章最后的文档实例,或根据自己的兴趣和目的选择性使用。
本书获得澳门基金会资助,并得到电子工业出版社的倾力支持,在此表示衷心感谢!
由于水平、时间所限,书中难免存在错误、缺陷之处,恳请广大读者批评指正。
展开