UML,为软件工程添砖加瓦
2014-12-28 08:07
190 查看
学习了UML,就该去想如何将UML图嵌入到“软工”思想之中
-----题记
经历了将近twoweeks,终于完成了《[西安电子科技大学]UML基础与应用》的学习,同时结合了《UML基础与ROSE建模实用教程》,对于UML这一面向对象技术标准建模语言有了自己的认识,同时在学习方法也有了自己的感悟。
如图所示,是视频教程中对知识点的归类划分,从7个角度带领我们来学习UML,其中我认为第2、4、7三个部分的介绍是本课程的重点,让我们对于UML的定义、构成、应用 有了深刻的认识。但是知识永远都是相互关联的,之前学习的软件工程的思想,面向对象技术,以及将要学习的设计模式,都会和UML进行交互,So如何去和旧知识结网就是我们要去思考的事情了。
软件工程中一般把整个软件开发过程分为:软件计划、需求分析、设计、编码、测试、运行维护6个阶段,然而UML面向对象标准建模语言最终是以9种图的形式展现在用户、程序设计人员面前,下面就来分析9种UML图是如何为软件工程添砖加瓦的。
在软件开发的各个阶段,使用不用的UML图对系统进行描述,如图所示:
(1)从需求阶段开始,便开始了第一种图----用例图,从用户角度描述系统,从而得知系统的执行者,以及大概的系统功能介绍。
(2)接着在用例图中进行抽象,抽象出对象和类,这样就在分析阶段中画出类图。当然,分析阶段可以从两个角度进行分析,1、静态分析分析系统中的构造、外界的参与者、对象之间的组合关系等,这样就出来了类图,同时分析类图的属性和方法,然后对类图归类便形成了包图,2、动态分析:对抽象出的各个对象之间的关系进行分析,for
example,考虑系统运行的流程+对象间的交互关系就画出了顺序图和活动图,如果侧重分析下对象之间的信息传递关系就画出了协作图。对于动态系统的某个时刻去分析,又出来了状态图~~~~So,在系统进行到分析的阶段,就可以初步的画出7个图了。
(3)接着在系统进行概要设计和详细设计的时候,对于对象进行抽象,进而对已经画好的类图进行优化,对包图进行完善,到此,UML可以说完成了一大半,剩下的就是照着这些图去编码了。
(4)到了测试的时候,根据测试层次的不同(1系统测试,2集成测试,3单元测试)去选择不同的UML图(1用例图 2类图、包图 3类图)去完善系统。
(5)等到了运行安装的阶段,结合构件图and部署图(在一台机子运行系统则无需部署图),从而让我们知道哪些构建实现了哪些接口,以及系统硬件的物理拓扑结构等。就这样,UML图就结合到软件工程中了。(不过对于构件图是不是要在这个阶段画还是有点蒙,只知道这个阶段用的上。。。)
这样,UML中的九种图就顺利的插入到了软件工程的6个阶段中了,成为了软件工程中不可或缺的一个组成部分。
总结:
在对系统进行分析的时候,对系统静态的分析是一个需要反复的迭代以及修改的过程,底层的类、关系划分好了,充分利用了依赖、泛化、抽象、等建立起来了简单的模型,上层建筑才会越来越稳。同时RUP的思想,一定要用在系统开发的过程中……
接下来会对详细的部分进行总结,期待中……
(对UML图的理解比较浅,有问题希望大家及时提出)
-----题记
经历了将近twoweeks,终于完成了《[西安电子科技大学]UML基础与应用》的学习,同时结合了《UML基础与ROSE建模实用教程》,对于UML这一面向对象技术标准建模语言有了自己的认识,同时在学习方法也有了自己的感悟。
如图所示,是视频教程中对知识点的归类划分,从7个角度带领我们来学习UML,其中我认为第2、4、7三个部分的介绍是本课程的重点,让我们对于UML的定义、构成、应用 有了深刻的认识。但是知识永远都是相互关联的,之前学习的软件工程的思想,面向对象技术,以及将要学习的设计模式,都会和UML进行交互,So如何去和旧知识结网就是我们要去思考的事情了。
软件工程中一般把整个软件开发过程分为:软件计划、需求分析、设计、编码、测试、运行维护6个阶段,然而UML面向对象标准建模语言最终是以9种图的形式展现在用户、程序设计人员面前,下面就来分析9种UML图是如何为软件工程添砖加瓦的。
在软件开发的各个阶段,使用不用的UML图对系统进行描述,如图所示:
(1)从需求阶段开始,便开始了第一种图----用例图,从用户角度描述系统,从而得知系统的执行者,以及大概的系统功能介绍。
(2)接着在用例图中进行抽象,抽象出对象和类,这样就在分析阶段中画出类图。当然,分析阶段可以从两个角度进行分析,1、静态分析分析系统中的构造、外界的参与者、对象之间的组合关系等,这样就出来了类图,同时分析类图的属性和方法,然后对类图归类便形成了包图,2、动态分析:对抽象出的各个对象之间的关系进行分析,for
example,考虑系统运行的流程+对象间的交互关系就画出了顺序图和活动图,如果侧重分析下对象之间的信息传递关系就画出了协作图。对于动态系统的某个时刻去分析,又出来了状态图~~~~So,在系统进行到分析的阶段,就可以初步的画出7个图了。
(3)接着在系统进行概要设计和详细设计的时候,对于对象进行抽象,进而对已经画好的类图进行优化,对包图进行完善,到此,UML可以说完成了一大半,剩下的就是照着这些图去编码了。
(4)到了测试的时候,根据测试层次的不同(1系统测试,2集成测试,3单元测试)去选择不同的UML图(1用例图 2类图、包图 3类图)去完善系统。
(5)等到了运行安装的阶段,结合构件图and部署图(在一台机子运行系统则无需部署图),从而让我们知道哪些构建实现了哪些接口,以及系统硬件的物理拓扑结构等。就这样,UML图就结合到软件工程中了。(不过对于构件图是不是要在这个阶段画还是有点蒙,只知道这个阶段用的上。。。)
这样,UML中的九种图就顺利的插入到了软件工程的6个阶段中了,成为了软件工程中不可或缺的一个组成部分。
总结:
在对系统进行分析的时候,对系统静态的分析是一个需要反复的迭代以及修改的过程,底层的类、关系划分好了,充分利用了依赖、泛化、抽象、等建立起来了简单的模型,上层建筑才会越来越稳。同时RUP的思想,一定要用在系统开发的过程中……
接下来会对详细的部分进行总结,期待中……
(对UML图的理解比较浅,有问题希望大家及时提出)
相关文章推荐
- ZT:架构师已死(转自UML软件工程组织)
- 通往架构师之路-软件工程-UML建模-类图-关系与解释?
- 软件工程之初识UML
- 【UML学习】--UML与软件工程
- 画图理解软件工程-UML统一建模语言-用例图(三)
- UML软件工程组织
- 软件工程之UML和开发语言
- uml 与软件工程
- UML视频看完后的总结(软件工程)
- 【软件工程】UML软件
- (转)架构师已死(转自UML软件工程组织)
- (转)架构师已死(转自UML软件工程组织)
- 在“软件工程:研究与实践”研讨会上关于UML Use-Case的开放空间讨论
- UML之父Ivar Jacobson:软件工程需要重建基础
- 软件工程——UML简介
- uml软件工程组织学习网址
- 扒一扒---UML图与软件工程那点关系
- 架构师已死(转自UML软件工程组织)
- UML之父Ivar Jacobson:软件工程需要重建基础
- 软件工程UML