UML,是我在整套课程中比较期盼的内容。虽说是对UML的期盼,更是对CMM标准化项目开发的期盼。软件工程的概念是参照建筑工程等流程提出来的,与建筑工程相同,软件工程需要可行性分析、需求分析、概要设计、详细设计...。建筑需要图纸,软件也需要图纸,设计软件图纸的工具就是UML(统一建模语言)。
到传智播客学习,了解和运用软件工程也是我的重要目标之一。因为我受够了没有经过软件工程标准化开发,而直接编码所带来的痛苦。今日的课程内容比较简单,上课的氛围比较轻松。有机会听徐老师谈一谈国内的软件公司现状。CMM是印度人总结出来的被国际公认并普遍使用的软件工程规范,最高等级应该是CMM5。但十分遗憾的是中国的真正意义上的CMM5等级的这种软件企业并不多,为什么?要搞一个CMM5的认证来,与我们社会中想搞一个学位证书的概念差不多。可想这种卑劣的文化!残害着自己的民族。在这个社会里一切都不会超过人情世故。
我对这种标准化的工程流程十分关注,国内在这方面做的比较好的是大连。但大连是中国最大的软件外包产业,几乎全在为日本工作。所以这种CMM5的高层(设计层)都是由日本人来完成的,中国的“打字员”只需要按照日本人设计的详细文档,把代码敲到电脑里并测试通过就可以了。我们知道编码只是软件开发中的一小部分而已,非常惭愧!
不在其位莫思其事!
老徐说给我们提供UML的课程是为了让大家在以后的工作中能看懂UML图。UML的画图工具很简单,难在你用丰富的经验画出优美的软件框架和详细设计来。
一、软件工程
简要学习一下软件工程,软件工程是由软件危机引起的。软件危机就引起了瀑布模型,从瀑布模型又升级出来RUP来。
一幅美丽的用来形容软件工程问题的漫画:
1.瀑布模型
模型的特点是:
1). 各阶段间具有顺序性和依赖性: 后一阶段工作必须在前一阶段工作完成后才能进行。
2). 质量保证机制的依赖性。即每一步都必须循序渐进,及早消除故障隐患,保证本阶段的工作的质量,从而达到保证整体软件质量的目的。
3). 推迟实现原则。前一阶段工作做的越细, 越扎实,后一阶段工作进行的就越顺利,强调”宁慢求好”。因此,各阶段工作总是一拖再拖,致使整个工期推迟实现。显然瀑布模型不能满足呈爆炸状增长的社会应用需求。
2. 统一软件开发过程:RUP(Rational Unified Process,RUP)
一个通用的软件流程框架, 以架构为中心, 用例驱动的迭代化开发流程。 RUP 是从几千个软件项目的实践经验中总结出来的, 对于实际的项目具有很强的指导意义。RUP 用二维坐标来描述。 横轴通过时间来组织, 是过程展开的生命周期特征, 体现开发过程的动态结构;纵轴以内容来组织, 体现开发过程的静态结构。
有关瀑布模型和RUP的资料网上有很多,在次就不多做总结了。
三、UML