本教材分为6章:
第1章面向对象概述,介绍了面向对象技术的概念和特点、软件复用及面向对象技术对软件复用的支持、结构化程序设计的弊端、可剪裁的RUP模型、UML和常用的UML建模工具。
第2章需求建模,介绍了一些需求的理论、系统的愿景、组织的业务用例以及业务用例图的画法、组织内部对业务用例实现的展开以及业务序列图的画法。针对业务序列图,讲述了职责的迁移,并由此优化企业流程,在流程中引入了待开发系统。这个过程保证了待开发系统完全融入了企业业务,在此基础上,生成了系统用例图并进而讲解了系统用例规约的书写。
第3章面向对象建模,先简单介绍了面向对象建模过程,然后详细介绍了发现对象、对象的类化、类的特征化、类的结构化。接着,简单介绍了系统设计,然后又详细介绍了软件架构、常用的架构模式、系统架构设计、类的设计、算法设计、界面设计。
第4章数据库建模,本章介绍了数据库设计范式、字段与数据表、数据表之间关系、规划数据库容量和分布式数据库。
第5章设计模式,介绍了10种常见的设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式、建造模式、原型模式、适配器模式、桥接模式、策略模式、装饰模式和职责链模式。每种模式都举例说明了该模式的结构、应用和优点。
第6章项目实战,以教学管理系统和POS机系统为例,详细分析了系统的面向对象建模过程,包括项目需求说明、项目愿景分析、业务流程分析、系统建模、系统设计和系统架构设计。
每章配有习题供读者练习使用,习题的答案均在课程内容中,所以本教材没有再系统给出习题的答案,以便于读者进行深入阅读和思考。另外每章还配有课件可供教学使用。
教学建议:
可使用第6章的系统作为课程的教学项目,也可以让学生自己选择项目(项目类型不限)。为了使教学更加顺利进行,建议将学生分成小组或者团队。这样可在训练学生面向对象建模能力的同时,培养学生的团队协作和交流沟通能力。
本教材的第1章和第2章由侯宗浩博士负责,第3章和第4章由段恩泽教授负责,第5章由吴平贵教授负责,第6章由夏磊博士负责。最后由段恩泽教授负责统稿、修订。
由于编者水平有限,加之时间仓促,疏漏、谬误之处在所难免,恳请广大读者批评指正!如果您对本教材有什么意见、问题或想法,欢迎您通过以下邮箱告知编者,编者将不胜感激。
Email:duanenze@nsu.edu.cn。
请在邮件的主题栏中注明:面向对象系统建模实用教程。
第1章面向对象概述1
1.1消费和经济1
1.1.1人类消费行为1
1.1.2设计、重用和省钱1
1.2软件复用2
1.2.1软件和代码复用2
1.2.2设计复用5
1.2.3分析复用5
1.2.4测试信息复用5
1.3结构化方法及其弊端6
1.3.1审视问题域的视角6
1.3.2抽象级别6
1.3.3封装体7
1.3.4可重用性7
1.4面向对象方法对软件复用的支持7
1.4.1面向对象的基本概念8
1.4.2面向对象的特征8
1.4.3面向对象与RUP9
1.5UML13
1.5.1UML简介13
1.5.2UML2.0的组成13
1.5.3UML建模工具16
习题17
第2章需求建模19
2.1需求设计前的质量19
2.1.1错误成本的放大19
2.1.2从卖的视角看需求20
2.1.3建模工作流与思考边界21
2.2愿景22
2.2.1定位目标组织和老大22
2.2.2度量愿景——提炼改进目标24
2.3业务用例图26
2.4业务序列图和业务序列图的改进32
2.5系统用例图35
2.6系统用例规约37
习题43
第3章面向对象建模46
3.1面向对象建模过程46
3.1.1对象和类46
3.1.2面向对象47
3.1.3面向对象建模48
3.1.4面向对象建模过程52
3.2发现对象53
3.2.1从问题域中发现对象53
3.2.2从需求中发现对象57
3.2.3对象的筛选59
3.2.4案例60
3.3对象的类化61
3.3.1对象分类61
3.3.2BCE模式62
3.3.3边界类建模63
3.3.4控制类建模63
3.3.5实体类建模63
3.4类的特征化64
3.4.1定义属性64
3.4.2定义操作67
3.4.3案例74
3.5类的结构化76
3.5.1一般特殊(GeneralizationSpecializaiton)76
3.5.2关联(Association)78
3.5.3整体部分(WholePart)80
3.5.4依赖(Dependency)81
3.5.5案例81
3.6系统设计简介82
3.7软件架构82
3.7.1软件架构要素83
3.7.2软件架构风格84
3.8常用的架构模式86
3.8.1三层架构87
3.8.2MVC88
3.9系统架构设计96
3.9.1BCE模式转换为MVC模式96
3.9.2设计模式98
3.9.3界面设计100
3.10类的设计104
3.10.1属性的设计105
3.10.2方法的设计106
习题107
第4章数据库建模109
4.1数据库设计范式109
4.2字段与数据表111
4.3数据表之间关系113
4.4规划数据库容量117
4.5分布式数据库120
习题122
第5章设计模式124
5.1简单工厂模式124
5.1.1案例:计算器124
5.1.2优点126
5.1.3缺点126
5.2工厂方法模式126
5.2.1案例一:生产车间126
5.2.2案例二:家具厂128
5.2.3优点130
5.3抽象工厂模式130
5.3.1案例:女娲造人131
5.3.2优点133
5.4建造模式133
5.4.1案例:游戏场景构建136
5.4.2优点139
5.5原型模式139
5.5.1案例:订单克隆140
5.5.2优点142
5.6适配器模式143
5.6.1特点143
5.6.2案例:电源插排143
5.6.3优点144
5.7桥接模式145
5.7.1案例:图形与颜色145
5.7.2优点147
5.8策略模式147
5.8.1策略模式定义147
5.8.2策略模式的结构147
5.8.3策略模式的特点147
5.8.4案例交通工具选择148
5.8.5优点149
5.9装饰模式149
5.9.1案例:机器人150
5.9.2优点152
5.10职责链模式152
5.10.1案例:审批工作流152
5.10.2优点155
5.11设计模式原则155
5.11.1Single Responsibility Principle单一职责原则155
5.11.2Liskov Substitution Principle里氏替换原则155
5.11.3Interface Segregation Principle接口隔离原则156
5.11.4Dependence Inversion Principle依赖倒置原则156
5.11.5Open Closed Principle开闭原则157
习题157
第6章项目实战159
6.1教学管理系统159
6.1.1项目需求说明159
6.1.2项目愿景分析160
6.1.3业务流程分析160
6.1.4系统建模164
6.1.5系统设计187
6.1.6系统架构设计200
6.2POS机系统201
6.2.1项目需求说明201
6.2.2项目愿景分析202
6.2.3业务流程分析202
6.2.4系统建模203
6.2.5系统设计229
6.2.6系统架构设计245
习题245
参考文献247
面向对象建模技术在20世纪90年代成为计算机软件领域的主流技术,并在大多数发达国家的软件开发中得到相当广泛的应用。进入21世纪,随着软件工程学科从计算机科学与技术下面的二级学科升级为一级学科,面向对象建模技术的应用越来越广泛,其重要性也越来越得到业界的普遍认同。
面向对象建模分为面向对象分析和面向对象设计,这与软件过程的分析工作流和设计工作流一一对应。本教材除了介绍面向对象分析和面向对象设计的理论和技术外,更注重于如何使用面向对象建模的理论和技术来构建一个软件系统。也就是说,本教材不仅仅涉及面向对象分析和设计这两个工作流,还包含了业务建模、需求等工作流。并且在业务建模中,还重点分析了为什么一个业务组织要引进一个软件系统,即愿景。