欢迎来到天天文库
浏览记录
ID:20748308
大小:2.15 MB
页数:107页
时间:2018-10-15
《uml第1章 概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程名称:统一建模语言UML专业班级:软件1308~1310学期安排:2015~2016(I)学期授课教师:于红计算机科学与软件学院22:49Office@C513计算机系第1章面向对象技术概述重点:软件工程相关概念面向对象相关概念1.1软件危机与软件工程软件发展的几个时期1946(第一台计算机)~1960“软件”雏形是简单的程序20世纪60年代末到70年代初“软件”成为产品至今软件工程时期软件危机软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。如何开发软件,以满足不断增长的、日趋复杂的要求如何维护规模不断庞大的软件产品软件工程,由北大西洋公约组织NATO于1968年
2、提出软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。1.1软件危机与软件工程软件开发的现状软件工程学科不断发展软件危机仍然存在中小型软件开发较为成熟,大型软件存在问题常见软件开发方法瀑布模型增量模型原型模型螺旋模型(风险驱动)……1.1软件危机与软件工程1.瀑布模型(waterfallmodel)计划阶段问题定义及可行性研究瀑布模型的特点文档驱动的模型阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点瀑布
3、模型的问题实际项目很少按照该模型给出的顺序进行用户常常一开始难以清楚地给出所有需求用户必须有耐心等待一个漫长无反馈的交付开发者常常被不必要地耽搁(1)慎重使用瀑布模型的情况:不能充分理解客户需求或客户需求有可能迅速发生变化;系统太大太复杂,不能一次做完所有的事;事先拟采用的技术迅速发生变化;提供的资源有限;无法利用各开发阶段的某一中间产品。(2)使用瀑布模型的情况:系统所有的功能、性能要求客户可以一次性准确交付时;必须是首次开发的新系统并且淘汰全部老系统时。2.增量/渐增模型(incrementalmodel)由一组有计划的、循环渐增的、不断改进的过程版本组成。各个中间版本可以并行开发。
4、(1)慎重考虑使用渐增模型的情况:不能充分理解客户需求或客户需求有可能迅速发生变化;事先拟采用的技术迅速发生变化;客户突然提出一些新的功能需求;长时期内仅有有限的资源保证(开发人员和资金)。(2)使用渐增模型的情况:需要在尽短的时间内得到系统基本功能的演示或使用;各版本都有中间阶段产品可提供使用;系统可以被自然地分割成渐增的模式;开发人员与资金可以逐步增加。3.演化模型(evolutionarymodel)演化模型也称为原型(prototype)法模型。使用演化模型时应注意:演化模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐了解,不用在初始时就确定
5、。在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。在开发每个中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。4.螺旋模型(spiralmodel)螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析分析所选方案,考虑如何识别和消除风险;实施工程实施软件开发客户评估评价开发,提出修正建议,建立下一周期的计划。螺旋模型决定目标、方案和限制评价方案、识别风险、弱化风险开发、验证、下一级产品计划下一阶段集成测试螺旋模型螺旋模型将瀑布模型与快
6、速原形模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。优点对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;维护和开发之间并没有本质区别。特点风险驱动的主要适用于内部开发的大规模软件项目5.智能模型(intelligentmodel)智能模型,它把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段上都利用了相应的专家系统来帮助软件人员完成开发工作需求阶段分析阶段设计阶段编程阶段集成与测试阶段维护与演进阶段要点:•开发活动之间的无间隙性和循环迭代性•适用于面向对象的开发过程•
7、强调无明显的活动阶段划分6喷泉模型软件开发模型的选择要综合考虑以下几个因素:(1)软件规模(2)软件类型系统软件的开发。实时软件的开发。商业应用软件的开发。嵌入式软件的开发。人工智能软件的开发。(3)软件质量要求(4)交付工期(5)客户需求明确度(6)投资(7)可复用性(8)开发者掌握的资源1.2软件开发的基本认识大型软件系统的特点开发代价高、时间长,参与人员多,软件生命周期长。软件系统开发的两个方面软件开发过程(P2)软件开发中资
此文档下载收益归作者所有