第六周作业-UML在详细设计阶段的使用心得&&UML建模与软件开发过程模型

  这周又到了我们项目小组进行详细设计的阶段了。据了解呢,不大喜欢把详细设计做的太细,以便发挥下自己的创造力(初级设计能力)。但是借鉴其他国家(如日本)的公司,详细设计不但详细到类级别,甚至每个方法都还有伪代码,这种感觉确实是太不能发挥自己的主观能动性了。不过仁者见仁,智者见智,因为一个初级的程序猿如果先是看别人的设计,然后再开始自己的设计,也许学习曲线就不会那么陡峭,日子也会过的舒服一点儿也未可知。

  在这次的作业中我谈到的就是UML在项目实施中的使用心得(详细设计阶段),以及下面的一部分扩展知识:UML建模与软件开发过程模型。

UML建模技术

  UML是面向对象开发中一种通用的图形化建模语言,它定义良好、易于表达、功能强大且普遍适用。面向对象的分析主要在加强对问题空间和系统任务的理解、改进各方交流、与需求保持一致和支持软件重用等4个方面表现出比其他系统分析方法更好的能力,成为主流的系统分析方法。UML的出现既统一了Booch、OMT、OOSE,以及其他方法,又统一了面向对象方法中使用的符号,并且在提出后不久就被OMG接纳为其标准之一。从而改变了数十种面向对象的建模语言相互独立且各有千秋的局面,使得面向对象的分析技术有了空前发展。它本身成为现代软件工程环境中对象分析和设计的重要工具,被视为面向对象技术的重要成果之一。

软件开发模型

  软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。

UML建模与软件开发过程模型

  现在谈到软件开发过程,大家可能也不会陌生,学过软件工程的人都能随口说上几个软件过程模型,现在要把这两种不同的模型拿到一起来讨论,一方面是软件开发的实际需要,另一方面也是UML建模工具要和其他面向对象开发模型结合的一种必然要求。

几种和UML建模结合的几种软件开发过程模型如下:

统一过程(UP)模型:统一过程模型在和UML建模结合时,采用以用例为驱动的方式,用用例连接所有活动,每个活动都建一组模型,如业务领域模型、责任领域模型、实现模型、测试模型,每组模型中又由多个不同的角色共同协作完成,比如具有专门进行用例建模的角色和组件建模的角色等等,采用增量迭代方式建立和完善用例,并对每一次建模进行评估,在项目的计划、监控等方面并非以建模为中心,而是把建模作为统一过程的一个小部分。该模型的主要缺点是周期长、人员要求多、建模工作量大。

迭代模型:它是采用较多的小迭代来实现最终的模型,也就是说,模型图是通过一系列步骤一步一步地建起来,每一次迭代都有新信息添加到模型中来,每一次迭代都要经过评估,都是下一次迭代的输入,迭代会使系统开发的活动(需求、分析、设计和测试)执行多次,并且每次都有新的内容增加进来。这个方法有一个缺点是在迭代的后期,仍然有新的需求增加进来。

增量模型:增量模型开发每次迭代都能产生一个可执行的结果,这个结果是一个可“交付的”系统版本,每一次迭代要经过评估,并且增加了一些新的功能,增量模型主要包括分析、设计、实现、测试四个活动。该方法有一个很大缺点是到了项目迭代后期还要进行设计,会给系统带来很大的风险。

XP模型:又叫极限编程,它是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是,整个开发是以测试为驱动的,它属于小型方法,对于初级软件开发企业有效,无法站在软件过程的行列谈和UML建模结合的问题。

时间: 2024-10-31 05:12:27

第六周作业-UML在详细设计阶段的使用心得&&UML建模与软件开发过程模型的相关文章

第六周作业。

第六周作业.额,暂时不知道写什么好.那就写写如何翻越GFW   (科学上网)的教程吧.基于Shadow socks的教程.可能不是第一个,也可能不是最后一个.但是这也算是科普吧.毕竟连翻越GWF(科学上网)能力都没有何必谈的上是一个好的Programer呢?. ========================================================== 顺便说一句:Fk GFW. ==============================================

第六周作业:《人月神话》对我做项目实践的启示(一)

<人月神话>这本书有两个老师都有给我们推荐,第一个老师推荐时不以为然,第二个老师也推荐时,自己感觉应该是挺重要的吧,于是去图书馆借了这本书来看,刚借回来时,总觉得时间不够.作业很多,也没来的及看,就一直搁置在了那里,直到上周,在我们的项目实践开始近三周,但进度却一直赶不上来的情况下,看到了这本书,才拿起来看.目前还没看完,先写一点儿领悟到的东西. 作者从焦油坑,提出项目失败的表现,把过去几十年的大型系统开发比作一个炼焦坑,各种团队一个个地淹没在焦油坑,他们都试图解决面对的问题,但他们都必须去了

2017-2018-2 20179215《网络攻防实践》第六周作业

2017-2018-2 20179215<网络攻防实践> 第六周学习总结 课本学习笔记 一.TCP/IP网络协议攻击 1.网络安全的属性:机密性 .完整性 .可用性 .真实性 .不可抵赖性 . 2.网络攻击的基本模式分为:截获(嗅探 与 监听) .中断(拒绝服务) .篡改(数据包篡改) .伪造(欺骗) . 3.TCP/IP网络协议栈在设计时采用了分层模型,分为:网络接口层 .互联层 .传输层 .应用层.每一层当中都有针对破坏网络安全属性为目的的攻击技术.每一层所涉及的主要协议: 网络接口层:以

软件质量保证与测试第六周作业

作业内容:本周在进行项目开发的过程中,我接触到了JDBC(Java Data Base Connectivity,java数据库连接),它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC可以为多种数据库提供统一的访问,简单来说JDBC就是用来连接java和数据库的桥梁,体现了Java“编写一次,处处运行”的高大上精神.连接到oracle数据库之后,我在同学的指导下进行了慕课网JDBC视频的学习 http://www.

2016-9-11第六周作业

cp [OPTION]... SOURCE(原文件)... DIRECTORY(目录) sed [options] 'command' file(s) -i∶直接修改读取的档案内容,而不是由萤幕输出. vi中的末行模式: #,+#从左侧#表示的行起始,加上右侧#表示的行数: %:全文 s:在末行模式下完成查找替换操作s/要查找的内容/替换为的内容/修饰符要查找的内容:可使用模式替换为的内容:不能使用模式,但可以使用\1,\2,...等后向引用符号:还可以使用"g"引用前面查找时查找到的

N26-第六周作业

请详细总结vim编辑器的使用并完成以下练习题用法: vim [参数] [文件 ..]       编辑指定的文件 (1)光标定位        1,光标默认指定到首行第一个字符,直接打开        ~]# vim /etc/asound.conf 2,光标定位到指定行首行,如定位到第10行 ~]# vim +10 /etc/fstab  3,光标定位到被内容匹配的行行首 ~]# vim +/swap /etc/fstab  4,光标调到最后一行的行首位置 ~]# vim + /etc/fst

第六周作业【Linux微职位】

一.请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 1)加电自检,BIOS启动引导阶段:      在该过程中实现硬件的初始化以及查找启动介质:      从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理: 2)GRUB启动引导阶段:      装载stage1      装载stage1.5      装载stage2      读取/boot/grub.conf文件并显示启动菜单:      装载所选的kernel和initrd文件到内存中 3)内核阶段:

第六周作业 项目开发随笔

上周我们讨论过后为了解决这个情况我们找了个地方便于我们的开发和讨论, 我们积蓄已久的问题在那天基本解决了,进度瞬间就赶上来了, 我们的士气也变得高涨了起来,连续去了三天每次都很晚回寝室,拜此所赐我的作业基本上没动, 不过这不是重点我们的项目基本框架和逻辑已经完成了,要录制的动画资源和图片也找好了,虽然很想把截图丢上来展示一番 但是毕竟大神太多被嘲讽就不好了. 但是有一点还是挺伤脑经的,我们发现cocos的预制资源中的脚本是不能添加节点的,游戏中很多的东西都需要预先加载好... 所以有很多东西都必

Linux系统管理第六周作业【Linux微职位】

1.请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS系统启动流程如下: POST --> Boot Sequence(BIOS) --> Boot Loader(MBR) --> GRUB --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init --> (/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --&g