1、软 件 设 计 工 具,北京大学计算机科学技术研究所 周秉锋 2011.9,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,2/15,本课内容:基于UML的 软件设计和建模,参考书: 1UML软件建模 作者:周秉锋 出版者:北京大学出版社 2 The Unified Modeling Language User Guide(Second Edition) by Grady Booch, published by Addison-Wesley, 2005 课程网站:http:/ 学习方法:理论学习+设计实践(工具使用),2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,3/
2、15,软件设计工具,联系方式 周秉锋: Tel.:82529533 Mobile:13910709301 助教: 陈瑜 赵皎皎 ,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,4/15,1.软件产品开发和软件建模,为什么要建模 软件是产品而非“程序” 对它的要求和所有其他工业产品是一样的 使用者和制造者分离 质量要求、文档、维护 软件产品的生产和其他工业产品的生产也是一样的 生产:团队、工具的使用(Compiler,),技术复用 如何满足? 先设计,再生产! = 建模! 模型是对现实世界的简化。 在成熟的工业生产领域,建模的方法得到了广泛的应用 例如: 电子工业 .,2018/
3、9/15,周秉锋 北京大学计算机科学技术研究所 ,5/15,1.软件产品开发和软件建模,在成熟的工业生产领域,建模的方法得到了广泛的应用, 例如: 电子工业 . 在设计收音机的时候: 1.先确定收音机是几个波段、有几个喇叭,等等(图.) 2.然后,设计电路图。用集成电路符号、晶 体管符号、电阻电容符号,加上各种标注(图.) 。 3.最后,设计电路板(图.) ,调试,定型,生产 。 电路图就是模型,是现实世界的简化(图.) 再看看我们现在软件是怎么做的.,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,6/15,1.软件产品开发和软件建模,我们现在怎么做 软件. 先写一个系统分析报告
4、 简单的设计报告(一些孤立的文字和图形) 开始编码,调试,测试,发行。在大多数情况下,这时的工作已经和前两步工作脱钩了。 相当于不画电路图直接用集成电路、 晶体管、电阻、电容做收音机电路。,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,7/15,1.软件产品开发和软件建模,我们现在怎么做 软件. 相当于不画电路图直接用集成电路、 晶体管、电阻、电容做收音机电路。 这在电子工业是不可想象的:怎么维修、怎么在原有产品基础上发展更先进的产品。 对于软件工业,这些问题一样是存在的。 怎么办?.,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,8/15,1.软件产品开发和软件建
5、模,怎么办?多年来,软件工程试图解决这 一问题,但成效不大 原因: 缺少工具,只停留在理论上,用一张纸、一只笔进行软件工程管理不易为软件人员接受 没有标准, 无法进行有效的交流 现在,我们有了. 软件建模标准: UML 软件工程工具,如:ROSE,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,9/15,什么是UML?,UML: 统一建模语言(Unified Modeling Language) UML是用于描绘软件蓝图的标准语言. (蓝图?这就是一张蓝图) 它可用于对软件密集型系统进行 视化(visualize) 说明(specify) 建造(construct)和 建档(doc
6、ument) 这也是对软件系统进行建模的四个目的,1.软件产品开发和软件建模:,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,10/15,什么是UML?,1.软件产品开发和软件建模:,解释: UML是语言: 语言意味着有标准的表达规则 UML是蓝图 UML是由图形符号表达的建模语言 例如,这是UML的一个模型图(图.) 其上的图形符号是遵循给定的标准的 例如:类: (图.),2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,11/15,UML中其他一些常用的标准模型元素: 用例、接口、组件,用例 接口 组件,什么是UML?,1.软件产品开发和软件建模:,2018/9/1
7、5,周秉锋 北京大学计算机科学技术研究所 ,12/15,使用UML进行软件建模的原则 准确的原则:模型必须准确地反映软件系统的真实情况。 分层的原则:在建模的过程中,必须有不同的模型,以不同的抽象程度,反映系统的不同侧面。 分治的原则:不可能单独用一个模型来反映整个系统的任何侧面。 标准的原则:建模方法必须在某种程度上是通用的。,什么是UML?,1.软件产品开发和软件建模:,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,13/15,使用UML进行软件建模的原则 准确的原则: 模型必须准确地反映软件系统的真实情况。 在前面所述的软件开发方法中,实际上已经进行了一定程度的建模工作(系
8、统分析报告和软件设计报告),但由于缺乏规范而有效的建模手段,最初的设计和最终的产品产生了分离. 这使得模型没能真实的反映系统的真实情况,从而使得模型失去了应有的价值 模型必须准确,意味着在软件开发的整个周期内,模型(图.)必须和产品(图.)始终保持一致。,什么是UML?,1.软件产品开发和软件建模:,class Window public:void open ();void close ();void display ();void set_position (point pos);private:point origin;point size; ;,2018/9/15,周秉锋 北京大学计算机
9、科学技术研究所 ,14/15,使用UML进行软件建模的原则 分层的原则:在建模的过程中,必须有不同的模型,以不同的抽象抽象程度,反映系统的不同侧面。 E.g. 在设计机械产品时,用立体图了解产品外形,用投影图规定产品结构和尺寸(见图.)。 软件也是一样:在软件构筑的不同阶段,不同的开发相关人员看待软件的侧重面有所不同。 软件系统的建模需要不同的模型以反映系统的不同侧面。例如:可以用一类模型描绘系统的外部边界和行为(见图)。 用另一类模型描绘系统的内部逻辑关系(见图.)。,什么是UML?,1.软件产品开发和软件建模:,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,15/15,使用U
10、ML进行软件建模的原则 分治的原则:不可能单独用一个模型来反映整个系统的任何侧面。 软件系统是复杂的, 对于软件模型的任意一个侧面, 不可能用一个模型来反映所有内容, 需要把问题分解为不同的子模型, 分别处理 这些模型相对独立,但又互相联系,综合起来构成了此侧面的一个完整的模型。例如:这是一个完整的模型的结构(上图),什么是UML?,1.软件产品开发和软件建模:,2018/9/15,周秉锋 北京大学计算机科学技术研究所 ,16/15,使用UML进行软件建模的原则 标准的原则:建模方法必须在某种程度上是通用的。 建模的基本目的:交流 一个开发队伍内部的开发人员之间需要交流 同一软件的不同时期的版本的开发队伍,需要参考以前版本的开发队伍的设计原理和实现方案。 不同软件的开发队伍之间也需要交流以实现最大程度的软件复用。,什么是UML?,1.软件产品开发和软件建模:,如果各开发队伍和开发人员在建模的时候采用同样的方法和符号(图.) ,交流才会高效地进行,如果各开发队伍和开发人员在建模的时候采用同样的方法和符号(图.) ,交流才会高效地进行,