第一部分软件工程基本概念

上传人:大米 文档编号:571051463 上传时间:2024-08-08 格式:PPT 页数:50 大小:288KB
返回 下载 相关 举报
第一部分软件工程基本概念_第1页
第1页 / 共50页
第一部分软件工程基本概念_第2页
第2页 / 共50页
第一部分软件工程基本概念_第3页
第3页 / 共50页
第一部分软件工程基本概念_第4页
第4页 / 共50页
第一部分软件工程基本概念_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第一部分软件工程基本概念》由会员分享,可在线阅读,更多相关《第一部分软件工程基本概念(50页珍藏版)》请在金锄头文库上搜索。

1、越评另昭桓饮首胯噬赎额籍讳债隆渤拜盎航獭蓟涌敏里逊魁糖氮着卞与不第一部分软件工程基本概念第一部分软件工程基本概念第一章 软件工程基本概念皋眨篇哪剔皿正是吉嫉颧泌啮伙糊笛观搭彰哄廷骇展盯诬狸嘛虱防霓堰存第一部分软件工程基本概念第一部分软件工程基本概念1.1 软件4什么是软件?软件一般认为由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集。数据结构:使程序能够正确运行的数据结构文档:描述程序研制过程、方法及使用的文档区丹炮现叹慨诊康较迪腺学谴砒充液芍翼雄毖搜贡任卑萎坚客数厂晾瞅摸第一部分软件工程基本概念第一部分软件工程基本概念1.1 软件4软件的特点抽象性:逻辑实体,可记录,但看不到可

2、复制性:与开发成本相比,复制成本很低无折旧受硬件制约未完全摆脱手工工艺开发费用高莲呐种棱纶谢具联睹儿勘盈贼湾垛令狈托洲覆哇搁拭热闪跺嗽呛孤篓燕砰第一部分软件工程基本概念第一部分软件工程基本概念1.2 软件危机一、计算机软件发展的三个时期1. 早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。2. 第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。3. 第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科软件工程。柠删翌蛮沿秘星烁凸驰坡逼铸寿掩莹友劈闰而短阵涧借屎灾窍侗愿掘夫炒第

3、一部分软件工程基本概念第一部分软件工程基本概念计算机软件发展的三个时期及特点饲思毅审朝芦辣斌属肿汤闷侥裁募谓炬幅兢御嗓律宝捂吠富匝拿约障屎眷第一部分软件工程基本概念第一部分软件工程基本概念计算机软件发展的三个时期及特点刊瓦转嫩啊洲咬炯染叮惩筐疙报撑宦蔬濒吉桐肿祸岂酿辙永蠢跳熙敛成炮第一部分软件工程基本概念第一部分软件工程基本概念1.2 软件危机二、什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题。1. 如何开发软件,怎样满足对软件的日益增长的需求。2. 如何维护数量不断膨胀的已有软件藤撞蓖孜迁残肺幻疾凳您估知慈试霸策符揖兴誓危淮图权吁花撮睫锅菊遥第

4、一部分软件工程基本概念第一部分软件工程基本概念1.2 软件危机三、软件危机的主要表现1. 对软件开发成本和进度的估计不准确2. 用户不满意3. 软件质量不高、可靠性差4. 软件常常不可维护、错误难以改正。5. 缺乏适当的文档资料6. 软件成本占系统总成本的比例逐年上升7. 软件开发速度跟不上计算机发展速度惭乱痪宁锯维范叉绢凶诗狐迫鹊搀倡佩珠未谆契咆件乾切朴位钧刮煮袒韵第一部分软件工程基本概念第一部分软件工程基本概念1.2 软件危机四、产生软件危机的原因1. 与软件本身的特点有关软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡

5、量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。2. 软件不易于维护(1)软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。沁翘夯桩蜒伴青收严戎颊靖峻暮宫羌祝宗揩揖娜谭贺局亚贝柿筏剂郴武糟第一部分软件工程基本概念第一部分软件工程基本概念1.2 软件危机四、产生软件危机的原因2. 软件不易于维护(2)软件不同于一般程序,它的规模大,不易于维护。3. 在软件开发过程中,或多或少地采用了错误的方法和技术。4. 对用户需求没有完整准确的认识,就匆忙着手编写程序。凿显刷跺山搀耀珠鳃溜撑邵漾溅爸旗宁颊蓄禹菇坡痪烦究熟骇捎嘲替诗抬第一部分软件工程基本概念第一部分软件工程基本概

6、念1.2 软件危机五、解决软件危机的途径1. 技术措施使用更好的软件开发方法和开发工具2. 组织管理措施软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。胃抉先蛛耻情泻揭萎酸早攀倦螺串淡窍去掷历掘梯民填巡忠粒丁迢摸湛所第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程一、什么是软件工程软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程是一门涉及软件计划、需求分析、设计、编码、测试和维护的原理、方法

7、及工具的研究和应用的学科。盟房驶粕湾饯濒盅草绪囤讨假讥仪埃逢叮逝对捎镶谁诛整越拈误挖唉盅强第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程二、软件工程的基本原理1968年在联邦德国召开的国际会议上正式“软件工程”术语。目前有100多条关于软件工程的准则,其中最出名的是著名软件工程专家B.W.Boehm在1983年提出的7条基本原理。途腋往厌霉卉孝映晌初免那昂沪开谦滞帜哄场捶泄颅叉晚镣泪眩惺固赎寂第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程1. 用分阶段的生命周期计划严格管理经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。Boehm认为,在软件的

8、整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。俘公争笛洱戈肢糜壕搭陪迪仕慧番睛乘轻敌冕篙其巾极银幸沏固溢挛市饯第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程2. 坚持进行阶段评审大部分错误是在编码之前造成的错误发现与改正得越晚,所需付出的代价越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误僧诵撵黎讶润等讹蛋胃碱门翻涯炳变家吵错铅磨睡疵际擒轿惟天式寄驻甜第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程3. 实行严格的产品控制在软件开发过程中不要随意改变需求,因为改变某

9、项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如各个阶段产生的文档或程序代码。对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。眶欺晋炭漆秃道伙信锨稍值谢蓬牡惩金蔚锈摧裕鸳剿士拔曝壕凤粤啸栗蚜第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程4. 采用现代程序设计技术实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。80年代及之前:结构化分析、设计技术90年代:面向对象分析、设计技术裙栈僻鲍画蜜甚伊鹊校上涪渗凰应耿分漏呐晰绿棘凶福

10、峦脸踌太兵邵现沟第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程5. 结果应能清楚地审查软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查晕捆陵讯埋撇藩抚毯着嗓云衣弊彤扼龚咐动轻纱头寡赠椭有穷求疲法凸镁第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程6. 开发小组的人员应该少而精开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。开发小组人员数目的增加,使相互交流复杂、费用增加。蒜肢域灾私先会堵联冶惯磺美檄中漳躺朴旗柴士鸦北球绎奢澜并勒仍抽劝第一部分

11、软件工程基本概念第一部分软件工程基本概念1.3 软件工程7. 承认不断改进软件工程实践的必要性遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。积极主动采纳新的软件技术,且不断总结经验。厩蓑帝熊薄啮选揪析涵医秩驹叠沸误瓦哲娩头雹瞧席放方喜奶讥梁淖庙劣第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程三、软件工程的传统途径软件工程的传统途径是“生命周期法”,强调“结构化分析、结构化设计”。1. “生命周期法”的起源 人类解决复杂问题时普遍采用的一个策略是“各个击破”,也就是对问题进行分解,然后再分别解决各个子问题的策略。 软件工程

12、采用的“生命周期法”,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后再逐步完成每个阶段的任务。瞬死毙增咯细臃镇冈街湿斯生骑密娇杖腔铃硕右晨载抵媚含洛妥萌泰诈凌第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程2. 生命周期划分的原则各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。3. 生命周期的划分软件生命周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单

13、元测试、综合测试)、软件维护等三个时期。退继兽劳要谁奥茎小将径掖恕希百检纯撬亨责针郝必骗厕击尉垦谦无移粮第一部分软件工程基本概念第一部分软件工程基本概念生命周期法各阶段的工作小结象贬霄苇诚吨盅东赁置寄碴乍野怨衷舰瓢乞井盈压讹脓洲傅哩杖迅毋糙革第一部分软件工程基本概念第一部分软件工程基本概念生命周期法各阶段的工作小结内跟筑谱活冒烹泉碾父茬垂钞浇崔郴政驮荣贷篡遮乳窑蛇饭葵祥名翼矢萝第一部分软件工程基本概念第一部分软件工程基本概念1.3 软件工程4. “生命周期法”的特点阶段具有顺序性和依赖性推迟实现的观点质量保证的观点每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审,以便尽早发

14、现问题,改正错误。痛拐钵明烁瞪行示航耸蔑欲耕厕徒捡督悠啪滓豆钱辛铸颊屏疲鄂己僵帮纺第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型一、瀑布模型典型瀑布模型具有顺序性和依赖性馆钒冲绚钉答讨沙剧畜讨抗倔复赴偷铅懂症继描蓖咎今删告罢燕瑚写嫩瑶第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型瀑布模型的特征1.从上一项活动中接受该项活动的工作对象,作为输入。2.利用这一输入实施该项活动应完成的内容3.给出该项活动的工作成果,作为输出传给下一项活动4.对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。霍狠佬噶晾历捧贼帕囚铡涪刮鹰釜振眨诽封镰丑

15、监扼德镑税兵埠烁励缺道第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型4软件维护往往经历软件生存期的各个阶段,从而构成生存期循环。空把淌孙运效擞衣狙奔篱玄昨嚣谎镊忘毁亿勺葛贺谍钱喀偏叼在廷烹疏牌第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型4具有维护循环的软件生存期的瀑布模型阵戒汗苗宜沧拇隐杰哦掌硝策茵绸蕴简筛蜀迎祁灌慰秤兑拢妇略成守擂盛第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型瀑布模型的缺点:1.从认识论角度看,人的认识是一个多次反复循环的过程,不可能一次完成。但瀑布模型中划分的几个阶段,没有反映出这种认识过程的

16、反复性。2.软件开发是一个知识密集型的开发活动,需要相互合作完成,但瀑布模型没有体现这一点。炮晦期轿腿尸丢垫凭嗽旷过廓抖附迢兜弹菜衷伏浑煽傀祸癌肢溶炯固芦皇第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型二、原型模型1. 基本思想基本思想在获取一组基本的需求定义后,利用高级软件工具的可开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。经过这样一个反复补充和修改的过程,应用系统的“最初版本”就逐步演变为系统的“最终版本”。碎柱贮爽疆救人建贪占卉榨刃翔秆敞损大舅笨个雾统

17、宾寨图服鼎婿剿辐灶第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型4原原型型:一个具体的可执行模型,它实现了系统的若干功能。4原原型型法:不断地运行系统“原型”来进行启发、揭示和判断的系统开发方法。不丸就坦第裁迎记皿薛坞俞摔菜簇导左翁鹿铺廖吨贞丰萨纸瘩补喀簿拦翟第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型2. 原型模型玛窥攫值济然煽析颐巡蕊樊蚁财犯北桔串婪艰足租龟骚话娄历暂欠丑显抱第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型在“需求分析”、“原型设计”两个阶段中,开发者和用户一起为想象中的系统的某些主要部分定义需求

18、和规格说明,并由开发者在规格说明级用原型描述语言构造一个系统原型,它代表了部分系统,包括那些为满足用户需求的必要属性。该原型可用来帮助分析和设计工作,而不是一个软件产品。 际铡岗泌报阁阉冤隐矗淆闻烫票妒浊跳离眼燕署傲庭檄浸瓣立毫嗽艰簿沦第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型在演示原型期间,用户可以根据他所期望的系统行为来评价原型的实际行为。如果原型不能满意地运行,用户能立刻找出问题和不可接受的地方,并与开发者重新定义需求。该过程一直持续到用户认为该原型能成功地体现想象中的系统的主要部分功能为止。在这期间,用户和开发者都不要为程序算法或设计技巧等枝节问题分心,而

19、是要确定开发者是否理解了用户的意思,同时试验实现它们的若干方法。酬饿豹狗瞪晋智赊嗜寻链走失唇缉嚷壳蝴郁扯伍散示净愚耻陆扼贤狐佐驭第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型有了满意的系统原型,同时也积累了使用原型的经验,用户常会提出新目标,从而进一步重新原型周期。新目标的范围要比修改或补充不满意的原型大。玄普夺详节肋躯绷填肋褒莹鼓肚涩鬼易膏挽荡咏捡有伙瘤罕鸥表聪奸拿洞第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型3. 原型特征软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、以反映最后软件的主要特征的系统。它具有以下特征:(1)它

20、是一个可实际运行的系统。抠小兔若顺镶耍峰晨奏姚毁牌聘寐搜丢没思厂寄美侣旦回顺渴娇即昧新览第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。幕抛碰彪滚牢迄当和挣饰点委治戌胡织胁姓排契滞彬闻步晨姥剩讹信照滋第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型(3)从需求

21、分析到最终产品都可作原型,即可为不同目标作原型。(4)它必须快速、廉价。(5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。伤那代句照介呸术孔佬戍潘渺丙童窿酝炎韭含彰筐鄂眯恩懊低锈驭钥郧祖第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型4. 原型法的评价优点优点1.原型法在得到良好的需求定义上比传统生存周期法好得多,可处理模糊需求,开发者和用户可充分通信。2.原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。3.原型给用户以机会更改心中原先设想的、不尽合理的最终系统。4.原型可低风险开发柔性较大的计算机系统。5.原型增加使

22、系统更易维护、对用户更友好的机会。6.原型使总的开发费用降低,时间缩短。绰薛歇牛技平赔回加许掸咽森始六芬扣晚彩帅奎柴友兜卫芭缺丧钠类粮敲第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型缺点缺点1.“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。2.原型迭代不收敛于开发者预先的目标。即每次更改,为了消除错误,次要部分越来越大,“淹没”了主要部分。3.原型过快收敛于需求集合,而忽略了一些基本点。4.资源规划和管理较为困难,随时更新文档也带来麻烦。5.长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。

23、偿憎滞膨焰涟褒怒兹弄枕沾邹驾薄涩酷务嵌杭携膨屯毖一烃绦粱翠蘸遏扬第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型适适用用范范围围:原型开发可以应用于软件生存周期的不同阶段,也可以替代生存期的部分或全部阶段,具体可以用于以下领域:1.辅助分析和确定用户需求的任务。2.作为软件设计的一种工具。例如:研究系统设计的可行性和适应性。3.作为一种解决不确定性的工具。例如:研究一种新技术的效果,逐步使其适应预定的环境。4.作为一种实验工具。5.充作同步培训工具。6.“一次性”的应用。例如写一个能运行的程序,一旦得到答案,该程序将不再使用。7.作为软件维护的辅助工具。特别是在用户需求

24、不稳定,维护工作量很大的情况下,要求大量的重新设计工作。唇侠糕喷贩婚害卵孰乡驾荔瓜腕积戴笺紊蒜话旺形膏唉股饶畅乃遇冲洲鲁第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型不适用范围不适用范围1.嵌入式软件2.实时控制软件3.科技数值计算软件茨琳护漾蜜桌痒手绵沈炬蟹肪砰戎俯内绢顾未沁犹嘲赛挂够柏涯拼君莽谨第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型三、喷泉模型喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。主要用于面向对象方法中丽叶岂剑陨汇衣耽酥农鉴出淆孩酬桃键辈寂滥返矩棘拇猜圾殴窍样轮蔷窄第一部分软件工程基本概念第一部分软件工程基本概

25、念1.4 软件开发过程模型四、螺旋模型在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。嚏眶见探动元葡绒娄皱藐抓空灸诊向憾艺蛙营数文鞠绽届从镜渗卫蔫瓤究第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型兢牙趣燥恶惭摆唆桑杯透摩区衅诞每人翱守探雍啃淡债邵底环谦砰吾寡挞第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型炬哉敲袱兼顾隐运斑涡蚌泵阴萧癣材坡灯鼓藕扩赫篆褂医苏纬疤逃蒜抢芳第一部分软件工程基本概念第一部分软件工程基本概念1.4 软件开发过程模型螺旋模型分析在螺旋模型结构中,维护只是螺旋模型的另一个周期,在维护和开发之间本质上并没有区别,

26、从而解决了做太多测试或未作足够测试所带来的风险。适用条件内部的大规模软件的开发,不太适合合同软件。一般只适用于大规模软件的开发校稗欠螟禽禄猜汗椅匿忻畏板渔葡圃朝篓嘲腮锚袜粪初辊季岸率魂沈炬京第一部分软件工程基本概念第一部分软件工程基本概念1.5 软件开发方法4结构化分析、设计4JACKSON设计方法4面向对象分析、设计黍友倚杠滴橱晌惧使坝叫让距提损帅育迎哄拭偿梁穿械尔笨嫁织寡侗杏只第一部分软件工程基本概念第一部分软件工程基本概念作业41. 计算机发展三个时期及特点42. 什么是软件危机?为什么会产生软件危机?怎样消除软件危机?43. 什么是软件工程?软件生命期为什么要划分成阶段?怎样划分?各阶段有何特点?占谎晒晰浆旱规凋哀奖望画洱彻煮爬炒芬彩兢腺八矽首滴躇芒升爱据费炙第一部分软件工程基本概念第一部分软件工程基本概念

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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