
《软件工程概论》由会员分享,可在线阅读,更多相关《软件工程概论(53页珍藏版)》请在文档大全上搜索。
1、成绩评定v平时:30%v 作业:10%v 课堂: 10%v 实训项目: 10%v期中:20%v期末:50%7.7.软件开发方法软件开发方法 n软件就是计算机系统硬件的附属物,软件就是系统程序或专用程序。n特点:规模小,结构相对简单,功能单一,程序活动高度个人化,技巧化(软件作坊:软件(软件作坊:软件=程程序序+说明)说明) n硬件结构,功能越来越复杂(电子管晶体管集成电路),软件生产为多人分工,协同工作。n特点:1.软件开发有一定的约束规范。n 2.软件商品化:软件由专人专用变成多人使用(商品),软件产业形成。n 3.高级计算机语言涌现(BASIC、COBOL、FORTRAN、PS/L、PAS
2、CAL等)n 4.后期出现软件危机。q结构化分析与设计方法q软件生产期概念及开发模型q文档的重要性 n软件开发:专业化、系统化、工程化、标准化,软件为支柱产业n 软件技术:n1.工程化的规范n2.软件复用n3.软件生产管理n4.面向对象的分析、设计、程序设计技术(C+为代表)n5.CASE(Computer Aided Software Engineering)技术 3.2 软件危机软件危机(Software Crisis): 软件的整体软件的整体质量较低,及期限、费用等问题质量较低,及期限、费用等问题nIBM OS/360系统 Brooks,,1963-1966年, 5000人/1年,最多时
3、10000人同时工作。100万行源程序,每次新版本出现1000个以上的错误。n软件危机的主要问题:q软件开发无计划性开发进度与成本失控q软件需求不充分软件系统实现功能与实际不符合,软件质量不高q软件开发过程无规范无统一规范的方法论和规范指导,交付软件难以维护,软件中文档配置没有足够重视q软件产品无评测手段q软件开发生产率远低于需求软件开发生产率远低于需求软件开发生产率远低于需求qDijkstra:有多么复杂的计:有多么复杂的计算机技术,就有多么复杂算机技术,就有多么复杂的程序设计问题。的程序设计问题。qJoens:软件需求量每:软件需求量每10年增长一个量级,如按软年增长一个量级,如按软件作坊
4、方式来开发软件到件作坊方式来开发软件到2025年全世界每人都来开年全世界每人都来开发软件才能满足需求。发软件才能满足需求。Dijkstra 软件工程软件工程大师大师 软件工程大师软件工程大师软件工程软件工程2222软件工程框架软件工程框架可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程支支持持过过程程组组织织过过程程目标目标过程过程原原则则软件工程软件工程2323n软件工程框架给出了软件工程三个主要方面。软件工程框架给出了软件工程三个主要方面。
5、n软件工程目标软件工程目标包括可用性、正确性和合算性,规包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有的基本定了软件工程实践的结果(即软件)应具有的基本性质;性质;n软件工程过程软件工程过程包含的基本活动有需求、分析与设包含的基本活动有需求、分析与设计、实现、确认与测试、维护与支持;计、实现、确认与测试、维护与支持;n软件工程的四条原则软件工程的四条原则-采用适宜的开发模型,使用恰采用适宜的开发模型,使用恰当的开发方法,提供高质量的工程支持,实施有效当的开发方法,提供高质量的工程支持,实施有效的工程管理,从四个方面指导每一项工程的活动,的工程管理,从四个方面指导每一项工程
6、的活动,以实现软件工程目标。以实现软件工程目标。软件工程软件工程2424软件工程的知识结构软件工程的知识结构 2001年年5月月ISO/IEC JTC 1发布了发布了 SWEBOK指南指南V0.95(试用版)(试用版),即,即 Guide to the Software Engineering Body of Knowledge。 SWEBOK把软件工程学科的主体知识分为把软件工程学科的主体知识分为10个知识个知识领域。这领域。这10个领域包括:个领域包括: 软件需求软件需求 软件设计软件设计 软件构造软件构造 软件测试软件测试 软件维护软件维护 软件配置管理软件配置管理 软件工程管理软件工程
7、管理 软件工程过程软件工程过程 软件工程工具和方法软件工程工具和方法 软件质量软件质量n 建立第一个版本修改直到用户满意运行退役开发维护n优点:适用于小程序n缺点:1.无规格说明,设计文档.n 2.维护困难.n 3.产生回归故障(Regression bug)机率极大.n最早由Royce,1970提出(Boehm,1976),为克服软件危机提出的主要开发模型,对于技术成熟的项目开发,应用该模型是十分有效的,但对于有一定技术风险的项目,人们的认识不可能在项目早期就预见到。 计划确认需求分析确认设计编码测试运行/维护确认确认确认可行性报告需求规格说明(SRS)软件设计说明书程序代码文本测试报告维护
8、阶段运行/维护报告开发阶段定义阶段各阶段具顺序性和依赖性,文档驱动(File-driven)优点:n1.近乎强迫式规则,每个阶段有文档需确认。2.带反馈环,如(上一级)设计中的错误在实 现(下一级)中可能发现。例如实时系统(RT)设计在实现时速度太慢,Fortran中, b(1,1), , b(1,n) b(n,1), , b(n,n) 存储按列,若读取按行,则需读取nn次,若读取按列则需n次。n缺点:1生产软件仍不能完全满足需求。2积累错误。越早出现的错误,暴露的时间越晚,排除故障付出的代价就越高。 n(1988年,Boehm,IEEE)n1)加入风险分析。2)原型的思想。3)面向对象的方法
9、中。n软件开发风险:q产品没有充分文档之前,关键人员的辞职。q产品运行的关键硬件生产厂家的倒闭。q新技术的突破。q一家公司研制开发了一个数据库管理系统,投入市场前,价格更低、功能相近的软件出台。q开发人员没有能力去开发某一大规模产品。n降低风险方法是:构造原型(prototype)n如吉通公司例,某电话公司设计了一套高效算法来通过远程网络连接呼叫原型。建立一个只控制呼叫连线的原型,并在模拟机器上测试。n好处:实际系统不被干扰,并且根据实际接线算法的费用,吉通公司就能判断开发一个融入这个新算法的整个网络的控制程序是否值得。n螺旋模型中的风险:仅限于可测量或检测的风险,不包括人员雇佣,辞职等。 6
10、 CMM(Capability Maturity Model)能力成熟度模型 CMM不是一个软件生命周期模型,而是一种改不是一个软件生命周期模型,而是一种改进软件过程的策略进软件过程的策略当一个当一个20万行的数据处理产品由处于万行的数据处理产品由处于CMM1-5的企业开发时的模型预测的企业开发时的模型预测数据来源:数据来源:Rifkin,Master Systems公司公司CMM 持续时间(月)开发人月交付后发现故障开发时发现故障总费用(万)129.8593.5611348540218.5143.012328131.1315.279.5718272.8412.542.859739.25916
11、.013714.61.70年代初年代初提出的编写程序的提出的编写程序的结构化程序设计结构化程序设计方法确起到了提高效率,减少错误的效果。方法确起到了提高效率,减少错误的效果。2.70年代中期年代中期,人们认识到编写程序仅仅是软,人们认识到编写程序仅仅是软件开发的一个环节,而更合理地件开发的一个环节,而更合理地建立系统结建立系统结构比编写程序更重要构比编写程序更重要,所以出现了设计阶段,所以出现了设计阶段的的结构化程序设计结构化程序设计SD和和Jackson方法方法。3.70年代后期年代后期,人们发现事先对用户的要求进,人们发现事先对用户的要求进行分析更重要,故把重点推到了分析阶段,行分析更重要,故把重点推到了分析阶段,出现了分析阶段的结构化分析(出现了分析阶段的结构化分析(SA),),结构结构化分析与设计(化分析与设计(SADT)等)等。7软件开发方法:结构化结构化软件开发软件开发方法方法和面向面向对象对象软件开发软件开发480年代初,实时、并发和网络等软件的开发中,特别在第五代计算机中提出了面向对象的技术(OOT,包括OOA,OOD,OOP)。结构化软件开发方法:l数据处理系统:结构化分析,设计,Jackson方法l大型复杂系统:SADTl实时事务处理:FSM(有穷状态机,Finite State Mechanism)l并发系统:Petri网面向对象的软件开发方法: OOT
文档来源:https://www.renrendoc.com/paper/212484829.html
文档标签:软件工程 概论