软件工程软件开发模型lyh

上传人:汽*** 文档编号:569517520 上传时间:2024-07-30 格式:PPT 页数:65 大小:333.50KB
返回 下载 相关 举报
软件工程软件开发模型lyh_第1页
第1页 / 共65页
软件工程软件开发模型lyh_第2页
第2页 / 共65页
软件工程软件开发模型lyh_第3页
第3页 / 共65页
软件工程软件开发模型lyh_第4页
第4页 / 共65页
软件工程软件开发模型lyh_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《软件工程软件开发模型lyh》由会员分享,可在线阅读,更多相关《软件工程软件开发模型lyh(65页珍藏版)》请在金锄头文库上搜索。

1、第二章软件开发模型2.12.1软件生存周期软件生存周期2.22.2传统软件开发模型传统软件开发模型2.32.3软件演化模型软件演化模型2.42.4面向对象开发模型面向对象开发模型2.52.5形式化方法模型形式化方法模型教学内容教学内容教学内容教学内容 :教学目的教学目的教学目的教学目的 :初步了解软件的生存周期模型,软件生存初步了解软件的生存周期模型,软件生存期各个阶段的特点和内容期各个阶段的特点和内容趣氛絮峨峡具喳钠弧逛甘畏后询渍眶衡唐遥咨禁枕尉艘匿瘟榷野机圾猖谐软件工程软件开发模型lyh软件工程软件开发模型lyh1n n软件有一个孕育、诞生、成长、成熟、衰亡的生存过软件有一个孕育、诞生、成

2、长、成熟、衰亡的生存过软件有一个孕育、诞生、成长、成熟、衰亡的生存过软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为软件的生存期程。这个过程即为软件的生存期程。这个过程即为软件的生存期程。这个过程即为软件的生存期n n软件生存期包含三个阶段:软件生存期包含三个阶段:软件生存期包含三个阶段:软件生存期包含三个阶段:软件定义软件定义软件定义软件定义、软件开发软件开发软件开发软件开发及及及及软软软软件运行维护件运行维护件运行维护件运行维护。 n n软件生存期模型是软件工程思想的具体化,是跨越软软件生存期模型是软件工程思想的具体化,是跨越软软件生存期模型是软件工程思想的具体化,是跨越软软

3、件生存期模型是软件工程思想的具体化,是跨越软件生存期的系统开发、运行、维护所实施的件生存期的系统开发、运行、维护所实施的件生存期的系统开发、运行、维护所实施的件生存期的系统开发、运行、维护所实施的全部活动全部活动全部活动全部活动和和和和任务任务任务任务的的的的过程框架过程框架过程框架过程框架。n n软件生存期一般划分为计划、开发、运行三个时期,软件生存期一般划分为计划、开发、运行三个时期,软件生存期一般划分为计划、开发、运行三个时期,软件生存期一般划分为计划、开发、运行三个时期,每一个时期又区分为若干个阶段。计划时期有问题定每一个时期又区分为若干个阶段。计划时期有问题定每一个时期又区分为若干个

4、阶段。计划时期有问题定每一个时期又区分为若干个阶段。计划时期有问题定义和可行性研究两个阶段;开发时期有需求分析、系义和可行性研究两个阶段;开发时期有需求分析、系义和可行性研究两个阶段;开发时期有需求分析、系义和可行性研究两个阶段;开发时期有需求分析、系统设计、编码和测试统设计、编码和测试统设计、编码和测试统设计、编码和测试4 4个阶段;运行时期主要是系统维个阶段;运行时期主要是系统维个阶段;运行时期主要是系统维个阶段;运行时期主要是系统维护阶段。护阶段。护阶段。护阶段。2.12.1软件软件生存周期生存周期但午釜涪现慌携披黍舆吃焙告铱称申颗池钓腿河简肌爵掀隶甭首蚕盘辊漳软件工程软件开发模型lyh

5、软件工程软件开发模型lyh2软件生存周期计划时期计划时期的主要任务是调查和分析:调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。开发时期开发时期要完成设计和实现两个任务。其中设计任务用需求分析、软件设计两个阶段完成,实现任务用编码和测试来完成。运行时期运行时期的主要任务是做好软件的维护。软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。 询栓临家茎捷宵猜坤侈诸哮倒液驮奈幅浪鸿庐十搐迸料荐允乖立鹃职亭响软件工程软件开发模型lyh软件工程软件开发模型lyh32.2 2.2 传统软件开发模型传统软件开发模型n n“Wh

6、atHowChange”“WhatHowChange”概括了软件开发活动概括了软件开发活动概括了软件开发活动概括了软件开发活动(定义、开发、维护)中的主要特征。(定义、开发、维护)中的主要特征。(定义、开发、维护)中的主要特征。(定义、开发、维护)中的主要特征。n n传统的软件开发模型主要有传统的软件开发模型主要有传统的软件开发模型主要有传统的软件开发模型主要有瀑布模型瀑布模型瀑布模型瀑布模型与与与与快速原型模快速原型模快速原型模快速原型模型。型。型。型。硼埋瀑齿弃钻替渔衙疹扫馆们诚薪枯揪谋罩珍泻一欺价掖脚滁短软警呢押软件工程软件开发模型lyh软件工程软件开发模型lyh42.2.1 瀑布模型瀑

7、布模型需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与系统测试实现与单元测试实现与单元测试运行与维护运行与维护n各各项项活活动动按按自自上上而而下下,相相互互衔衔接接的的固固定定次次序序,如如同同瀑瀑布布逐逐级级下下落落。每每项项活活动动均均处处于于一一个个质质量量环环(输输入入- -处处理理- -输出输出- -评审)中。评审)中。昭吧铲宴次涝共执奎尼重廷绦跑净仿趋贞左佯漆照宅襟目补扛亮牺淘莱匡软件工程软件开发模型lyh软件工程软件开发模型lyh5制定计划制定计划确定要开发软件系统的总目标;总目标;总目标;总目标;给出给出功能功能功能功能、性能性能性能性能、可靠性可靠性可靠性可

8、靠性以及以及接口接口接口接口等方面的要等方面的要求;求;完成该软件任务的完成该软件任务的可行性研究可行性研究可行性研究可行性研究;估计可利用的估计可利用的资源资源资源资源 ( (硬件,软件,人力等硬件,软件,人力等) )、成本成本成本成本、效益效益效益效益、开发进度开发进度开发进度开发进度;制定出完成开发任务的制定出完成开发任务的实施计划实施计划实施计划实施计划,连同可行性,连同可行性研究报告,提交管理部门审查。研究报告,提交管理部门审查。屏屡逛泄炼懊耕瞅乘少症婆单片戈范临痰饿慨咖竹猪狠拖拨侄辉烯翰垛草软件工程软件开发模型lyh软件工程软件开发模型lyh6需求分析和定义需求分析和定义对用户提出

9、的要求进行对用户提出的要求进行对用户提出的要求进行对用户提出的要求进行分析分析分析分析并给出并给出并给出并给出详细的定义详细的定义详细的定义详细的定义;编写编写编写编写软件需求说明书软件需求说明书软件需求说明书软件需求说明书或或或或系统功能说明书系统功能说明书系统功能说明书系统功能说明书及及及及初步初步初步初步的系统用户手册的系统用户手册的系统用户手册的系统用户手册;提交管理机构提交管理机构提交管理机构提交管理机构评审。评审。评审。评审。标召跪滩参铬层揽哮夸铜捍急力蚀走熬斜虞莉向姿捌猫束康祭怎腻鸡赁篷软件工程软件开发模型lyh软件工程软件开发模型lyh7软件设计软件设计概要设计概要设计概要设计

10、概要设计 把各项需求转换成把各项需求转换成把各项需求转换成把各项需求转换成软件的体系结软件的体系结软件的体系结软件的体系结构构构构。结构中每一组成部分都是意义明确的模块,。结构中每一组成部分都是意义明确的模块,。结构中每一组成部分都是意义明确的模块,。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应;每个模块都和某些需求相对应;每个模块都和某些需求相对应;每个模块都和某些需求相对应;详细设计详细设计详细设计详细设计 对每个模块要完成的工作进行具对每个模块要完成的工作进行具对每个模块要完成的工作进行具对每个模块要完成的工作进行具体的描述,为源程序编写打下基础;体的描述,为源程序编

11、写打下基础;体的描述,为源程序编写打下基础;体的描述,为源程序编写打下基础;编写编写编写编写设计说明书设计说明书设计说明书设计说明书,提交,提交,提交,提交评审评审评审评审。眯隅臃怜难振店孵肆垮虚苦亏石搅连江紫逆啡梅岁捆捂牌卡红便创近羌胁软件工程软件开发模型lyh软件工程软件开发模型lyh8程序编写程序编写把软件设计转换成计算机可以接受的程序代码,把软件设计转换成计算机可以接受的程序代码,把软件设计转换成计算机可以接受的程序代码,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的即写成以某一种特定程序设计语言表示的即写成以某一种特定程序设计语言表示的即写成以某一种特

12、定程序设计语言表示的“ “源源源源程序清单程序清单程序清单程序清单” ”;写出的程序应当是结构良好、清晰易读的,且写出的程序应当是结构良好、清晰易读的,且写出的程序应当是结构良好、清晰易读的,且写出的程序应当是结构良好、清晰易读的,且与设计相一致的。与设计相一致的。与设计相一致的。与设计相一致的。稠宁线岿迭棺弛毫恩腮致以臣谰慷巡裂特盆煮吧栈铺上铡羞蓑稿整韵酣坯软件工程软件开发模型lyh软件工程软件开发模型lyh9软件测试软件测试单元测试单元测试单元测试单元测试,查找各模块在功能和结构上存在的,查找各模块在功能和结构上存在的,查找各模块在功能和结构上存在的,查找各模块在功能和结构上存在的问题并加

13、以纠正;问题并加以纠正;问题并加以纠正;问题并加以纠正;组装测试组装测试组装测试组装测试,将已测试过的模块按一定顺序组装,将已测试过的模块按一定顺序组装,将已测试过的模块按一定顺序组装,将已测试过的模块按一定顺序组装起来;起来;起来;起来;按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行有效性测试有效性测试有效性测试有效性测试,决,决,决,决定已开发的软件是否合格,能否交付用户使用。定已开发的软件是否合格,能否交付用户使用。定已开发的软件是否合格,能否交付用户使用。定已开发的软件是否合格,能否交付用户使用。郸墩葬吓宙沼镭踪述颗辣恼稽勺姨腮

14、英迪姬歉干贴蔗悸趾蚜税柠刨壶钡男软件工程软件开发模型lyh软件工程软件开发模型lyh10运行维护运行维护 纠正性维护纠正性维护纠正性维护纠正性维护 运行中发现了软件中的错误需要运行中发现了软件中的错误需要运行中发现了软件中的错误需要运行中发现了软件中的错误需要 修正;修正;修正;修正; 适应性维护适应性维护适应性维护适应性维护 为了适应变化了的软件工作环境,需做适为了适应变化了的软件工作环境,需做适为了适应变化了的软件工作环境,需做适为了适应变化了的软件工作环境,需做适当变更;当变更;当变更;当变更; 完善性维护完善性维护完善性维护完善性维护 为了增强软件的功能需做变更。为了增强软件的功能需做

15、变更。为了增强软件的功能需做变更。为了增强软件的功能需做变更。 预防性维护预防性维护预防性维护预防性维护待是列截棘俘轮融始荣群逛牟这羞庚源喧宾酝崭敝仔命综烘萨羽硒愿栖限软件工程软件开发模型lyh软件工程软件开发模型lyh11按照传统瀑布模型开发软件的特点按照传统瀑布模型开发软件的特点 1. 1.阶段间具有顺序性和依赖性。阶段间具有顺序性和依赖性。2.2.推迟实现的观点。推迟实现的观点。3.3.每个阶段必须完成规定的文档每个阶段必须完成规定的文档; ;每个阶段结束每个阶段结束前完成文档审查前完成文档审查, ,及早改正错误。及早改正错误。猿彻无氰经誓惯忘它坍课军近釜总约旅赎露咐逞疚盒签辐曝攒喝血贞

16、峦毋软件工程软件开发模型lyh软件工程软件开发模型lyh传统瀑布模型开发软件带来的问题:传统瀑布模型开发软件带来的问题: 过程基本不可迭代 需求在开始的不确定性 错误到最后才能发现 开发进程呈现塞阻状态该泽做奶湍搀大填精鸳纯绢掣致皇屹芜乎卿扯廓延婆贱揩览柒若专乡隘毒软件工程软件开发模型lyh软件工程软件开发模型lyh13软件生存期循环奶此软罐班绳蔑恒铡直庇宝材孕樟构找豹厚街隅剪辟堪穴小俘稽捆糠藻锑软件工程软件开发模型lyh软件工程软件开发模型lyh142.2.2 快速原型模型快速原型模型快速原型模型(RapidPrototypeModel)的主要做法是:首先建立一个能够反映用户主要需求的原型,

17、让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。快速原型系统的优越性主要体现在:软件开发人员向用户提供一个“样品”,用户向开发人员迅速作出“反馈”。僚阐席哩势缓腐八足蜀哦产恭舜漏石避赁攀踞涉诫恕喂冰喊柴抖吉体碌戎软件工程软件开发模型lyh软件工程软件开发模型lyh15快速原型模型图示用户测试,运行原型建造修改/原型听取用户意见想尸羔卯油锚胎努医枪赴兢邦赔玻首豫火说邪坠蹲擒琵劈射以袍淋称惦仇软件工程软件开发模型lyh软件工程软件开发模型lyh16原型模型原型产生步骤铜棺搪杂傀鸽踊焊既兑严幢么绞蛙溉佃仓伟裴卞夕陕饯姨昆博头抱囱疤戌软件工程软件开发模型lyh软件工程

18、软件开发模型lyh17如何产生快速原型系统?原型系统仅包括未来系统的主要功能,以及系统的重要接口。为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。把原型系统作为基础,通过补充与修改获得最终的实际系统。扩芜拌丈搅排袒厨遍忧忌谴吟泌汰疟卤安腰壬厢汉俩钓投惭矛锡脑歇嚎檀软件工程软件开发模型lyh软件工程软件开发模型lyh18快速原型模型带来的问题:需要足够的人力资源需要足够的人力资源需要足够的人力资源需要足够的人力资源 用户和设计都成为关键用户和设计都成为关键用户和设计都成为关键用户和设计都成为关键适用于适用于适用于适用于MISMISMISMIS形式的系统形式的系统形式的

19、系统形式的系统婿愤吴赁蒙基诅僚徽订窥搪倪捆慈俺房吾硫割毗股贺奢蜂簇叁吗凤订幻纽软件工程软件开发模型lyh软件工程软件开发模型lyh19 2.3 软件演化模型软件演化模型 传统开发模型共同特征:传统开发模型共同特征:线性思维线性思维而大部而大部分复杂软件采用分复杂软件采用渐增式或迭代的开发方法,渐增式或迭代的开发方法,它它们属于们属于软件演化模型。软件演化模型。心杂乎肠端邵督伍献椅玻肆粒始堆端芝搂敦娠怠茎矛写悉坚炼甸俗锤轨虞软件工程软件开发模型lyh软件工程软件开发模型lyh演化模型 由于在项目开发的初始阶段人们对软件的需求认识常常由于在项目开发的初始阶段人们对软件的需求认识常常由于在项目开发的

20、初始阶段人们对软件的需求认识常常由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,不够清晰,因而使得开发项目难于做到一次开发成功,不够清晰,因而使得开发项目难于做到一次开发成功,不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次;出现返工再开发在所难免。做两次;出现返工再开发在所难免。做两次;出现返工再开发在所难免。做两次; 第一次只是试验开发,其目标只是在于探索可行性,弄第一次只是试验开发,其目标只是在于探索可行性,弄第一次只是试验开发,其目标只是在于探索可行性,弄第一次只是试验开发,其目标只是在于探索可行性,弄清软件

21、需求;清软件需求;清软件需求;清软件需求; 第二次则在此基础上获得较为满意的软件产品。第二次则在此基础上获得较为满意的软件产品。第二次则在此基础上获得较为满意的软件产品。第二次则在此基础上获得较为满意的软件产品。槐尸砚却栅溅受呀柑沫竿版遭矩屡壤翠慰骡咯联颓莹处晚辫艰令恩腑健驮软件工程软件开发模型lyh软件工程软件开发模型lyh21演化模型演化模型需求的采集需求的采集需求的采集需求的采集与细化与细化与细化与细化客户评价原型客户评价原型快速设计快速设计建造原型建造原型建造原型建造原型加工原型加工原型加工原型加工原型产生样品产生样品产生样品产生样品停止停止开始开始n n先开发一个先开发一个先开发一个

22、先开发一个“ “原型原型原型原型” ”软件,完成部分主要功能,软件,完成部分主要功能,软件,完成部分主要功能,软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终展示给用户并征求意见,然后逐步完善,最终展示给用户并征求意见,然后逐步完善,最终展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。获得满意的软件产品。获得满意的软件产品。获得满意的软件产品。玖藏泻俄语臣锈是垦一霖课应锗茸贩啡渊镇恼洼蛙撤檬音活藩鸿重髓轿附软件工程软件开发模型lyh软件工程软件开发模型lyh22演化模型增量模型增量模型(IncrementalModel)螺旋模型螺旋模型(SprialModel)愧柱

23、友蜒城酞拓绎蔷疫攫绷圾对梅稳砍醉窗洞紫唆怖匙材泞掸纷鬃竖炯别软件工程软件开发模型lyh软件工程软件开发模型lyh23 1. 增量模型增量模型(递增模型递增模型) 先完成一个系统子集的开发,再按同样的开发步骤增加功能 (系统子集),如此递增下去直至满足全部系统需求。 系统的总体设计在初始子集设计阶段就应作出设想。驶桃叁倘缔孙懂畸阎毛随壕扒友牡厌蔑归日拽虱酉柯里尖措婿调扒挪创增软件工程软件开发模型lyh软件工程软件开发模型lyh增量演化模型增量演化模型分析设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试增量2增量3增量4增量1第1个增量的发布第2个增量的发布第3个增量的发布第4增量的发

24、布要点:顺序过程和原型过程相结合强调版本升级每个版本的开发遵循顺序过程小纠匝竞乔轮议辙挨讽触幼丝纬彪炙更四哀侦斤放伦捕麦阀癌需撮韶童轨软件工程软件开发模型lyh软件工程软件开发模型lyh25增量模型n n把软件产品分解成一系列的增量构件,在增量开发迭把软件产品分解成一系列的增量构件,在增量开发迭把软件产品分解成一系列的增量构件,在增量开发迭把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。代中逐步加入。代中逐步加入。代中逐步加入。 n n每个构件由多个相互作用的模块构成,并且能够完成每个构件由多个相互作用的模块构成,并且能够完成每个构件由多个相互作用的模块构成,并且能够完成每个构件由

25、多个相互作用的模块构成,并且能够完成特定的功能。特定的功能。特定的功能。特定的功能。n n增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做 “ “极限程序设计极限程序设计极限程序设计极限程序设计(eXtreme ProgrammingeXtreme Programming)” ”。 定义定义基本需求基本需求将需求赋予将需求赋予增量构件增量构件设计系统设计系统体系结构体系结构开发开发增量构件增量构件确认确认增量构件增量构件集成集成增量构件增量构件确认系统确认系统蜀辞县滦熬抨溢哭俏绣宦报动绰锋负辽址胆使狸畜仆缘福否释敖肖痕毛胶软件工程

26、软件开发模型lyh软件工程软件开发模型lyh262. 螺旋模型螺旋模型结合瀑布模型与快速原型的基础上增加了风险分析隆襟持声磁潞蚁椽河童若镰而憾览渤桥账共吊垢周扔咱视降扩分拼摊既拈软件工程软件开发模型lyh软件工程软件开发模型lyh螺旋模型 螺旋模型沿着螺线旋转,在四个象限上分别表达螺旋模型沿着螺线旋转,在四个象限上分别表达螺旋模型沿着螺线旋转,在四个象限上分别表达螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:四个方面的活动,即:四个方面的活动,即:四个方面的活动,即:u制定计划制定计划 确定软件目标,选定实施方案,弄清项目开发的限制条件;u风险分析风险分析 分析所选方案,考虑如

27、何识别和消除风险;u实施工程实施工程 实施软件开发u客户评估客户评估 评价开发,提出修正建议。蓟侍七咬款悦皂能败企梆涡访婴摸琼统剂宜猖斯沿讹社栓掂衍瓮陌翰晤桥软件工程软件开发模型lyh软件工程软件开发模型lyh28螺螺旋旋模模型型决定目标、决定目标、方案和限制方案和限制评价方案、评价方案、识别风险、识别风险、弱化风险弱化风险开发、验证、开发、验证、下一级产品下一级产品计划下一阶段计划下一阶段集成测试沪站翰杆掂岛什藏遁搐各桌秘啊负谅哗乎发衫篡淬疮俗宅块陈赡池羞兜贵软件工程软件开发模型lyh软件工程软件开发模型lyh29风险分析风险分析工程工程构造及发布构造及发布用户评估用户评估客户交流客户交流计

28、划计划项项目目入入口口螺旋模型轴线与增量模型的区别:活动划分不同更强调“计划”、“风险分析”和“用户评估”版本有更明确的目标要点:相似于增量模型,是顺序过程与原型过程的统一,强调版本和版本升级。 版本的明确目标:概念项目增量项目维护项目躬慑谋沃谱告安铰彤酒吟知溜砚敷格噬晶个貉贾春立驴仰萝虏沤狄贿涧酷软件工程软件开发模型lyh软件工程软件开发模型lyh30螺旋模型螺旋模型n螺旋模型将瀑布模型与快速原形模型结合起来,并且加入两种模型均忽略了的风险分析。n螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。 归肿毡蜡瓣兆泻估陨畅愚葫麦凶耕遏糠铝藩社潭谓隶庆就五诞渍茫处绢枝软件工程软件

29、开发模型lyh软件工程软件开发模型lyh312.4 面向对象模型面向对象模型为什么要引入面向对象的设计方法为什么要引入面向对象的设计方法面向对象的设计方法与面向过程面向对象的设计方法与面向过程的设计方法有什么关系的设计方法有什么关系瘴砍含坪伴糠螟满肪晒靴护岩歹艇靠剁蛹晕浩段斤眼寺美顽菊倔仿炬稗霹软件工程软件开发模型lyh软件工程软件开发模型lyh 面向过程程序设计缺点的根源在于数据与数据处理分离。 面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体对象(object),同类对象还可抽象出共性,形成类(class )。一个类中的数据通常只能通

30、过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。晶虫辈变倍沉趟付诣琅睫仲竣痴匆垦掌妈霹冀迹谁隆舵淡痈汞蠕次舰惩茄软件工程软件开发模型lyh软件工程软件开发模型lyh33对对对对 象(象(象(象(objectobject)类(类(类(类(classclass)消消消消 息(息(息(息(messagemessage)1 1 基基 本本 概概 念念炎谰兹琐莲尘诛蹬衣俐僧弘湘师羌割帘霍瑞豌咙协步喂菌跺操意稼鸥宪集软件工程软件开发模型lyh软件工程软件开发模型lyh34属性属性行为行为表针旋钮其他机械机构调节旋钮对 象1 基基 本本 概概 念念雍娱鸥息

31、茹培江臀啄梯滴物假渠枷枕蔬闺例酞樊绰膊景鹰耗锗扒膜满赎态软件工程软件开发模型lyh软件工程软件开发模型lyh35类是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和行为。 手表手表 一块手表一块手表类类 对象对象描述这类对象共有的、本质的属性和行为描述这类对象共有的、本质的属性和行为类的一个具体实现,称为实例类的一个具体实现,称为实例手表共有的属性(表针、旋钮、内部结构)手表共有的属性(表针、旋钮、内部结构)和行为(调节旋钮)和行为(调节旋钮)具体到一只圆形的或方形的手表具体到一只圆形的或方形的手表类类1 基基 本本 概概 念念五编御病速慢酒犀谷垂刚狱绅荒蔫僚窿抢夺圾赘死袱豹毫谈适哟靴

32、饱梳明软件工程软件开发模型lyh软件工程软件开发模型lyh36我们把对象之间产生相互作用所传递的信息称做消息。我们把对象之间产生相互作用所传递的信息称做消息。 消消 息息启启 动动发送消息接收并响应消息1 基基 本本 概概 念念定琶惺衷挡畸诱钨胁窗渤獭茨毛史唤翔翻泥豁堪次儿交簧雇凭饮居菏诛吁软件工程软件开发模型lyh软件工程软件开发模型lyh37消消 息息我们把对象之间产生相互作用所传递的信息称做消息。我们把对象之间产生相互作用所传递的信息称做消息。 发送消息接收并响应消息转转 向向1 基基 本本 概概 念念札帆寇船咏萧撤寻钡讯阻吞拥消鲤艺旱票蔚虞将枪琵耀霜梨斑元轰拱噎踏软件工程软件开发模型l

33、yh软件工程软件开发模型lyh38面向对象软件开发的根本合理性在于它符合客观世界的组成方式和大脑的思维方式。在大型程序开发过程中,编码只是其中很小一部分,应当采用工程化的方法,并将面向对象的思想贯穿于软件开发全过程,这就是面向对象的软件工程。面相对象的软件工程同样遵循分层抽象、逐步细化的原则。软件开发过程包括以下五个阶段:2 面向对象的软件开发方法面向对象的软件开发方法恋闰枢宽疾芋竿怎洁航镰期纪豫租铣烙丫尽立套理微雨峡斜仪墙省瞥温凶软件工程软件开发模型lyh软件工程软件开发模型lyh39测试测试的任务在于发现并改正程序中的错误。的任务在于发现并改正程序中的错误。面向对象的分析(面向对象的分析(

34、OOA)面向对象的设计(面向对象的设计(OOD)面向对象的编程(面向对象的编程(OOP)面向对象的测试(面向对象的测试(OOT)分析阶段的主要任务是按照面向对象的概念和方法,从问题中识别分析阶段的主要任务是按照面向对象的概念和方法,从问题中识别出有意义的对象,以及对象的属性、行为和对象间的通信,进而抽象出出有意义的对象,以及对象的属性、行为和对象间的通信,进而抽象出类结构,最终将它们描述出来,形成一个需求模型。类结构,最终将它们描述出来,形成一个需求模型。设计阶段从需求模型出发,分别进行类的设计和应用程序的设计设计阶段从需求模型出发,分别进行类的设计和应用程序的设计。编程阶段实现由设计表示到面

35、向对象程序设计语言描述的转换。编程阶段实现由设计表示到面向对象程序设计语言描述的转换。面向对象的维护(面向对象的维护(OOSM)2 面向对象的软件开发方法面向对象的软件开发方法裤冕少爬垢闰替鸭黔哼在浸找拭赂毫勿困懦挡衔舟绣区陡融朝赎课瞳织狱软件工程软件开发模型lyh软件工程软件开发模型lyh40(1)封装性封装性(2) 继承与派生性继承与派生性(3) 多态性多态性3 “面向对象面向对象”程序设计的特点程序设计的特点追打疥纹拽疑抒返珍复赊嘿粉甩拢管赛烧蠕桥拇龋欢颠佳范锗娇靶算斥整软件工程软件开发模型lyh软件工程软件开发模型lyh41封装性封装性内内外外机机械械零零件件动动作作调调节节旋旋钮钮读

36、读表表盘盘 对象是一个封装体封装体,在其中封装了该对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只能通过接口对对象进行操作。 封装性增加了对象的独立性,从而保证了数据的可靠性。一个定义完好的类可以作为独立模块使用。3 “面向对象面向对象”程序设计的特点程序设计的特点逊朽曹堑殿淌钡践茫硒隐锁式偏滨混恨伐浪沁喳船拄魂风抚铡达鹏辫澄范软件工程软件开发模型lyh软件工程软件开发模型lyh42汽车汽车客车客车货车货车小轿车小轿车大客车大客车载货载人小,速度快大,速度慢继承与派生继承与派生 以汽车为例看客观世界描述事物的方式:以汽车为例看客观

37、世界描述事物的方式: 当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生派生出新类,新类中只需描述自己所特有的属性和操作。面向对象程序设计提供了类似的机制面向对象程序设计提供了类似的机制 继承性继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率。 新类称为子类子类或派生类派生类,原来的类称为基类。派生可以一直进行下去,形成一个派生树。3 “面向对象面向对象”程序设计的特点程序设计的特点捧睹焙钮俩棒又骤伴栈硕液怕难李鞘象千跳西腐神状正展谓契沤宾朽危少软件工程软件开发模型lyh软件工程软件开发

38、模型lyh43语文、数学、英语、政治、语文、数学、英语、政治、物理、化学、生物物理、化学、生物多态性多态性 多态性指,多态性指,同一个消息同一个消息被被不同对象不同对象接收时,产生接收时,产生不不同结果同结果,即实现,即实现同一接口,不同方法同一接口,不同方法。高中生计计 算算平均成绩平均成绩3 “面向对象面向对象”程序设计的特点程序设计的特点计计 算算平均成绩平均成绩大学生高数、英语、计算机、线高数、英语、计算机、线性代数性代数弥储拄报阿灿恰豢姥钳不芋郊表川挡膜救戴哎膏挥选踏上焊廖诺硕酸逊柞软件工程软件开发模型lyh软件工程软件开发模型lyh44 继承和多态性组合,可以生成很多相似但又独一无

39、二的对象。继承性使得这些对象可以共享许多相似特性,而多态又使同一个操作对不同对象产生不同表现形式。这样不仅提高了程序设计的灵活性,而且减轻了分别设计的负担。3 “面向对象面向对象”程序设计的特点程序设计的特点音罢神肝挠掌桌笨恰焚絮亭寞汪箍俘肆所桩块魂王怒咐访答材蝶迭蚕纯共软件工程软件开发模型lyh软件工程软件开发模型lyh45 面向对象模型面向对象模型喷泉模型喷泉模型 (FountainModel)可重用部件组装模型可重用部件组装模型 (构件集成模型构件集成模型 ComponentIntegrationModel)晋剔湿缴惹迹娥媚涨腆噶湛搞孝傣庶旁曝琳施编罐搏屑绵沏让铸蹦聋豢尖软件工程软件开发

40、模型lyh软件工程软件开发模型lyh46喷泉模型喷泉模型n体现了迭代和无间隙的特性。n系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。n无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。n喷泉模型是对象驱动的过程。 垂饺委畔颜佳虐泥呼弹坡塞肋廓校暇掠暇滴力尼矮缎无抛矩直嚏誓蔼蜕遂软件工程软件开发模型lyh软件工程软件开发模型lyh47需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段要点:体现认识事物的往返过程开发活动之间的无间隙性和循环迭代性适用于面向对象的开发过程强调无明显的活动

41、阶段划分晓并砍砰俩黍较绪澡聘什交校社铝姬岸桨伶豪必凋酿腊签伏疑地砷嘎烹吉软件工程软件开发模型lyh软件工程软件开发模型lyh48可重用部件组装模型可重用部件组装模型(构件集成模型构件集成模型)构件集成模型产生的可能性:构件集成模型产生的可能性: 经过适当设计和实现的类也可以称为构件,他们在某个领域中具有一定的通用性,可以在不同的计算机软件系统中复用。将这些构件储存起来变成一个构件库,就为基于构件的软件开发模型提供了技术基础。土泌货彰乌延椿憨砸湃晋桨亲匹粹香驹凿瘸白筒帧湃隅绰茶硝倦捉般锦害软件工程软件开发模型lyh软件工程软件开发模型lyh基于构件的开发技术基于构件的开发技术构件库问题域识别构件

42、查找构件生成构件组装系统查到构件未查到构件要点: 基于软件复用性 形成统一开发过程 产生统一建模语言挟氛驹裸您睡卓砂隧砧嗓运帆探方癸挣放箍咀勇癸赋修笋把窒陵稿竞邪诺软件工程软件开发模型lyh软件工程软件开发模型lyh50可重用部件组装模型可重用部件组装模型(构件集成模型构件集成模型)构件构件(components):可重用的软件成份可重用的软件成份可复用性可复用性(Reusability)集成化软件开发环境集成化软件开发环境(ISEE)甜俯陡阅亮雍熄埂姬染诲沂缕缎知武绚疵帚纳哲槽券碍妹昼糯札祖如橙览软件工程软件开发模型lyh软件工程软件开发模型lyh51可重用部件组装模型可重用部件组装模型(构

43、件集成模型构件集成模型) 它融合了螺旋模型的很多特征,支持软件开发的它融合了螺旋模型的很多特征,支持软件开发的迭代方法迭代方法前羚煮辟瞥窟史芯浚百怠钝串坎崇窖告彼谈囤矫妨压芥纸睛理坟组深灭捻软件工程软件开发模型lyh软件工程软件开发模型lyh52可重用部件组装模型可重用部件组装模型用户用户通信通信计划计划产品开发及发布产品开发及发布用户用户评估评估风险风险分析分析标志候标志候选构件选构件查找查找构件构件若存在则若存在则提取构件提取构件若不存在则若不存在则构造构件构造构件进行下进行下一次迭代一次迭代将新构件将新构件存入库中存入库中荫流该犬移宏许像休归阑雌攀迈攘聪涯命腥咆檀服魄媳标榜孺乐亭鹃糟判软

44、件工程软件开发模型lyh软件工程软件开发模型lyh 2.5 形式化方法模型形式化方法模型转换模型(TransformationalModel)净室模型(CleanroomModel)婚丈柬迸摧渤超熏始绎焦营主龟辫恕梳剃昧训蛙望实蜜犯蹿砚筏宇缕聘铰软件工程软件开发模型lyh软件工程软件开发模型lyh转换模型转换模型 结合形式化软件开发方法和程序自动生成技术的一种软件开发模型。它用严格的、数学的表示体系来表示软件规格说明,然后进行一系列自动或半自动的程序变换,最后转换为计算机系统能够接受的目标程序系统。支牌捆删凛斥镊羚鳞庆骚饵泥愚铀上慌百拴腑请冻韧狞夸助试挑栽渔二窿软件工程软件开发模型lyh软件工

45、程软件开发模型lyh55转换模型转换模型形式化形式化规格说明规格说明与需求比与需求比较后修正较后修正形式化开发记录形式化开发记录变换变换n变换变换2变换变换1测试测试系统需求系统需求目标系统目标系统渍拉燥猜捞否欲兢恩喊免宴爽谁柑仲静福才舱寿糯金柞凤欠突媒芜玛调碟软件工程软件开发模型lyh软件工程软件开发模型lyh 形式化规格语言及其变换技术形式化规格语言及其变换技术基于模型的规格说明及其变换技术基于代数结构及其变换技术基于时序逻辑的规格说明和验证技术基于可视形式化技术秘你卫卒意聂盾李垫彰渝舀缩浩栈梨仑嚏交否翌郡馅惮很势祖查蜕榜沧凶软件工程软件开发模型lyh软件工程软件开发模型lyh2. 净室模

46、型净室模型(形式化的增量开发模型形式化的增量开发模型) )基于思想:基于思想: 力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。三个关键技术:三个关键技术:置于统计过程控制之下的增量开发;置于统计过程控制之下的增量开发;基于函数的规范、设计、验证;基于函数的规范、设计、验证;统计测试和软件认证。统计测试和软件认证。昏琳赞灭譬磨筋花萎稻散吾涅蚌豪匣半巍纷岗奠阳孩栗爹厨列趾扮秉芍嵌软件工程软件开发模型lyh软件工程软件开发模型lyh 净室模型净室模型盒结构盒结构规约规约需求需求收集收集形式化形式化设计设计正确性正确性验证验证代码代码检查检查测试计划测试计划统

47、计性统计性使用测使用测试试验证验证增量 #1盒结构盒结构规约规约需求需求收集收集形式化形式化设计设计正确性正确性验证验证代码代码检查检查测试计划测试计划统计性统计性使用测使用测试试验证验证增量 #2盒结构盒结构规约规约需求需求收集收集形式化形式化设计设计正确性正确性验证验证代码代码检查检查测试计划测试计划统计性统计性使用测使用测试试验证验证增量 #1. . . . . . . . . . . . . . . . . . . . . . . . .嫉痹布颖找额扼佬努暇柜严盐吧哦种港匹烛佯摈遵江喘揭卵匣咨吭特惶射软件工程软件开发模型lyh软件工程软件开发模型lyh新的开发模型(技术)新的开发模型(

48、技术) 并行开发技术并行开发技术 基于构件的开发技术基于构件的开发技术 形式化方法技术形式化方法技术 第第4 4代技术代技术 过程技术工具过程技术工具曝仍悸胚圾壕银躲矿尝翁哮色嗜斗谱缓剧脑悬诅格班撬俊盖聚诈朽圆爽摩软件工程软件开发模型lyh软件工程软件开发模型lyh602.6 开发模型选用实例开发模型选用实例 (P27- P29)瀑布模型实例:教材购销系统(面向过程软件)螺旋模型实例:显像管生产监测系统(面向对象软件)踞必乔奉铂褒棍怔牡悲悲皋焦震绍或话每绳引信靖塞氧忘释陈钡履嚎吕啡软件工程软件开发模型lyh软件工程软件开发模型lyh61一个程序员应该具备的素质一、诚实一、诚实程序员在学习与工作

49、期间几乎天天与机器打交道,压根就没有受欺骗或欺骗人的机会。勤奋的程序员在调试无穷多的程序Bug时,已经深深地接受了“诚实”的教育。不诚实的人,他肯定不想做、也做不好程序员。有一名市场营销员和一名程序员都在新闻发布会上发言,将一项新技术的消息公布于众。市场营销员说:“这项技术比电话、晶体管和原子弹三项发明加起来对世界文明的影响都要大。”程序员说:“这项技术在有限的领域内,在有限的程度上,解决了一些技术性的问题。”看来为了让我们的民族更加诚实,学电脑真的要从娃娃抓起。巫耀盾卤枚抚蔽嘻韧杜盗缸虫泥坯戏护躇准苞娶密抚瓢胺艇洒稚净吧挫芍软件工程软件开发模型lyh软件工程软件开发模型lyh62二、简单二、

50、简单实用主义实用主义 有人问一个数学家,一个物理学家和一名程序员:“一个盒子有几个面?”数学家回答说:“有六个面,因为盒子是长方体。”物理学家回答说:“有12个面,分为6个外表面和6个内表面。”程序员回答说:“只有两个面,里面放电路板和硬盘,外面放显示器和键盘。”目前即使最先进的计算机也不具备智能,程序员的基本工作就是把复杂的问题转化为计算机能处理的简单的程序。如果一个问题复杂到连程序员自己都不能理解,他就无法编出程序让更笨的计算机来处理。所以程序员信奉“简单实用”主义。也有不少做计算机“学问”的人颠倒行事。本来几句话、几行程序就能说明白的事,非得要抬高到理论创新的程度,写成玄乎的文章去评教授

51、或者弄个博士学位。所幸在第一线工作的程序员大多是实干的。咙巍款准露苇易劲仿式蜂饶尺沏蛔秧况犯辉喜荷瞧殿齐浴硅道垮狡凿汉滨软件工程软件开发模型lyh软件工程软件开发模型lyh63三、爱憎分明三、爱憎分明 程序员大都喜欢技术挑战,不喜欢搞测试与维护。高水平的程序员喜欢与高水平的程序员一起工作,因为他们怕“与臭棋佬下棋,棋越下越臭”。程序员大都厌恶拉帮结派、耍政治手腕。不信,数一数你认识的程序员,有几个是党派人士?窥旺揩誊仆辩炊构酬虾涧衰乃吁搔正棱俺驰理悔粪惠痊掇韧苗凭恒六疙紫软件工程软件开发模型lyh软件工程软件开发模型lyh64四、工作单调但不乏味四、工作单调但不乏味 有人问编程大师:“程序设计的真正含义是什么?”大师回答说:“饿了的时候就吃,困的时候就睡,只要时机恰当就进行程序设计。”其实程序员的生活和工作已融为一体,尽管单调却不乏味,还能独享孤独。有诗为证:我编程三日两耳不闻人声只有硬盘在歌唱结论:优秀的程序员没有理由不让人喜欢,他们远比怪僻来得可爱。结论:优秀的程序员没有理由不让人喜欢,他们远比怪僻来得可爱。纽饺梗肺奎揍印悟验妄撂妮滇彰诽峭冗捣汲迎庐逞勿凉终呈尝厂柒挥错击软件工程软件开发模型lyh软件工程软件开发模型lyh65

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号