《软件工程学概述精.ppt》由会员分享,可在线阅读,更多相关《软件工程学概述精.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程学概述第1页,本讲稿共81页课程的要求、目标及特点要求有一定的编程基础自学能力目标了解软件工程学基本原理、规范、方法,提高对软件项目的分析设计能力开阔视野,建立项目概念,思考职业规划,增强未来竞争力特点理论性强,抽象,适合高年级学习以概要性介绍为主需要在实践中提高能力第2页,本讲稿共81页课程的主要内容软件工程过程的主要活动,如需求分析,设计,测试软件开发方法学传统方法学面向对象方法学项目管理知识实践环节,基于实际的应用,完成设计、分析多看书,多编程,多交流,积累经验第3页,本讲稿共81页考核方法笔试出勤大作业软件设计报告学期中间布置,三周时间完成1-3人一组根据要求,进行需求分析、系
2、统设计制作PPT,组内代表在课堂上讲解5-10分钟学期末上交PPT的打印稿和电子版第4页,本讲稿共81页 参考书参考书软件工程软件工程实践者的研究方法实践者的研究方法 Roger S.Pressman 机械工业出版社机械工业出版社 软件工程软件工程 Ian Sommerville 机械工业出版社机械工业出版社第5页,本讲稿共81页参考书参考书 软件工程过程软件工程过程 Pierre N.RobillardPierre N.Robillard 清华大学出版社清华大学出版社 第6页,本讲稿共81页其他资源网上搜索,知名网站,信息的权威性外文书每章后面的“进一步阅读”所列的内容学校图书馆中外文网络数
3、据库第7页,本讲稿共81页软件发展的历史早期,上世纪60年代中期之前编写者和使用者往往是同一个人第二个时期,上世纪60年代中期-70年代中期软件作坊,个体软件开发方法,生产软件产品出现软件危机1968年北大西洋公约组织(NATO)在联邦德国召开国际会议,讨论软件危机问题,正式提出“软件工程”这个词,一门新兴的工程学科就此诞生。第三个时期,上世纪70年代中期-80年代中期结构化程序设计第四个时期,上世纪80年代中期以后面向对象程序设计第8页,本讲稿共81页软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括:费用过高严重超期失败率高可靠性差难以维护第9页,本讲稿共81页
4、1.1 软件危机大型软件,50,000行高级语言代码阿波罗登月计划的软件有1000万行代码IBM 360 大型机操作系统开发人员最多时达到1000人,从1963年到1966年花费4年时间完成,总计耗费约5000人年。经反复修改,仍有上千条错误1965年-1970年,美国范登堡空间试验基地多次发射火箭失败,绝大部分因为程序错误软件的复杂性超出了个人能力控制的范围第10页,本讲稿共81页1.1.1 软件危机的表现软件开发的成本和进度估计很不准确用户对已完成的软件不满意软件质量不可靠软件维护困难或不可维护缺少适当的文档软件成本占计算机系统总成本的比例逐年上升20世纪60年代初占10-20%60年代中
5、期占50%70年代初占80%以上软件生产率提高速度缓慢第11页,本讲稿共81页1.1.2 软件危机产生的原因软件本身的特点缺乏可见性,完成前不易衡量其好坏复杂性随规模增加呈指数上升,无法保证质量用户的原因需求不明或易变,认为软件可以随意改动开发和管理人员的原因不重视文档,只重视编码开发随意性大,维护困难第12页,本讲稿共81页图1.1 引入同一变动付出的代价随时间变化的趋势1.1.3 1.1.3 消除软件危机的途径消除软件危机的途径要有技术措施,也要有管理措施第13页,本讲稿共81页1.2 软件工程1.2.1 1.2.1 软件工程的介绍软件工程的介绍为了克服软件危机,科学家们从其他产业(如机械
6、制造、建筑等)的工程化生产得到启示,提出了“软件工程”的概念。概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术管理技术和当前能够得到的最最好的技术方法好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。第14页,本讲稿共81页软件工程典型的定义 “软件工程就是为了经济地经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理工程原理。”该定义不仅指出了软件工程的目标是经济目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善
7、的工程原理。1993年IEEE(The Institute for Electrical and Electronic engineers)进一步给出了一个更全面更具体的定义:“软件工程是:(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径。第15页,本讲稿共81页 软件工程的本质特征:软件工程的本质特征:1.软件工程关注大型程序的构造 2.软件工程的中心课题是控制复杂性 3.软件经常变化 4.开发软件的效率非常重要 5.和谐的合作是开发软件的关键 6.软件必须有效地支持它的用户 7.在软件工程领域中是由具有一种文化背景的人
8、 替具有另一种文化背景的人创造产品第16页,本讲稿共81页1.2.2 1.2.2 软件工程的基本原理软件工程的基本原理 1.用分阶段的生命周期计划严格管理(领导干预)2.坚持进行阶段评审(LED屏项目,GPS项目)3.实行严格的产品控制(修改要批准,华为,灯)4.采用现代程序设计技术 5.结果应能清楚的审查 6.开发小组的人员应该少而精(通讯开销)7.承认不断改进软件工程实践的必要性 第17页,本讲稿共81页1.2.3 1.2.3 软件工程方法学软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。软件工程方
9、法学包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架。目前使用的最广泛的软件工程方法学,分别是传传统方法学统方法学和面向对象方法学面向对象方法学。第18页,本讲稿共81页1 1、传统方法学、传统方法学 传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。该方法把软件生命周期的全过程依次划分为若干个阶段,然
10、后顺序地完成每个阶段的任务。前一阶段任务的完成是下一阶段工作开始的前提和基础。每一阶段的开始和结束都有严格的标准,在每一阶段的结束之前都必须进行正式严格的技术审查和管理复审。第19页,本讲稿共81页结构化方法结构化方法是70年代末由DeMarco、Yourdon、Constantine等人提出的系统的开发方法,包括结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)IDEF、ER方法等。无论系统多么复杂,总可以自顶向下被分解成若干个子系统,更小的子系统,分别进行分析设计。第20页,本讲稿共81页传统方法学的问题传统方法学要求对上一阶段结果进行固定,才能开始下一阶段的工作如果软件系统规
11、模庞大,需求模糊且不断变化,传统方法学必须反复从头再来,造成系统结构不稳定,无法保证进度和质量而需求不断变化是现代软件的一个重要特征,因为环境变化太快(人员、机构调整,平台、技术变化)(短信服务平台、云计算)第21页,本讲稿共81页2.2.面向对象方法学面向对象方法学 面向对象方法学具有下述4个要点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成,也就是说,用对象分解取代了传统方法的功能分解。(2)把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有
12、相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。第22页,本讲稿共81页 (3)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。在该层次中,派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。(4)对象彼此间仅能通过发送消息互相联系。第23页,本讲稿共81页面向对象方法学的优点对象比功能稳定需求变化可以限制在对象内对象独立性好,增减对象对外部影响小根据需求可不断进化第24页,本讲稿共81页两种方法学比较存款取款利息结算帐户余额帐户余额过程式编程范型面向对象编程范型存款取款利息结算“银行帐户”
13、对象数据和操作成为整体?数据和操作分离第25页,本讲稿共81页软件开发方法学现状软件开发取得了巨大的进展软件超期、超预算甚至失败的情况仍普遍存在软件工程学仍是最活跃的研究领域之一第26页,本讲稿共81页生命周期各阶段的任务瀑布模型问题定义可行性研究需求分析总体设计详细设计编码和单元测试综合测试维护定 义 开 发维护第27页,本讲稿共81页问题定义要解决的问题是什么?确定要开发软件系统的总目标给出功能、性能、可靠性以及接口等方面的要求第28页,本讲稿共81页可行性研究 必须回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”估计可利用的资源(计算机硬件,软件,人力等)、成本、效
14、益、开发进度完成可行性研究报告提交评审第29页,本讲稿共81页需求分析和定义准确的确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备那些功能。对待开发的软件提出的需求进行分析并给出详细的定义编写软件需求规格说明书,初步的用户手册,测试方案提交评审第30页,本讲稿共81页软件设计回答:“系统应该如何实现?”总体设计把各项需求转换成软件的体系结构,结构中每个模块都和一个需求相对应从各种可能的设计方案里选择最佳方案详细设计对每个模块要完成的工作进行具体的描述,为编写源程序打下基础完成文档,提交评审系统说明,用户手册,测试计划,实现计划,数据库设计结果第31页,本讲稿共81页编码
15、和单元测试把软件设计转换成计算机语言代码,即源程序写出的程序应当是结构良好、清晰易读,且和设计相一致单元测试查找各模块在功能和结构上的问题并加以纠正第32页,本讲稿共81页综合测试集成测试将已测试过的模块按一定顺序组装起来,再进行测试,以发现与接口有关的问题验收测试按照需求规格说明书的规定,由用户(参与)对目标系统进行测试文档测试计划、详细测试方案和测试报告第33页,本讲稿共81页软件维护改正性维护运行中发现软件的错误,需要修改适应性维护为了适应变化的工作环境,对软件进行适当变更完善性维护为增强软件的功能需做维护预防性维护第34页,本讲稿共81页阶段关键问题结束标准问题定义问题是什么?关于规模
16、和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型数据流图 成本/效益分析报告可行性研究报告需求分析系统必须做什么?系统的逻辑模型数据流图、数据字典、算法描述需求规格说明书初步用户手册总体设计系统应该如何实现?系统说明用户手册测试计划详细实现计划数据库设计结果表表1.1 1.1 结构分析设计过程小结结构分析设计过程小结第35页,本讲稿共81页阶段关键问题结束标准详细设计怎样具体实现这个系统?编码规格说明HIPO图或PDL编码和单元测试正确的程序模块源程序清单单元测试方案和结果综合测试符合要求的软件综合测试方案和结果 完整一致的软件配置维护持久的满足用户需要的软件 完整准确的维护记录表表1
17、.1 1.1 结构分析设计过程小结结构分析设计过程小结第36页,本讲稿共81页1.4 软件过程软件过程是为获得高质量软件所需要完成的一系列任务的框架,它体现了完成各项任务的工作步骤。概括地说,软件过程描述为了开发出客户需要的软件,什么人(who)、在什么时候(when)、做什么事(what)以及怎样做(how)这些事以实现某一特定的具体目标。第37页,本讲稿共81页过程定义了运用方法的顺序、应交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。为了获得高质量软件产品,软件过程必须科学、有效。每一种软件的开发过程不尽相同。通常使用生命周期模型简
18、洁的描述软件过程。生命周期模型规定了把软件生存期划分成哪些阶段以及各个阶段的顺序,因此,也称为过程模型。第38页,本讲稿共81页1.4.1 瀑布模型 20世纪80年代前唯一被广泛采用的过程模型,现在仍是使用最广泛的模型。体现了传统软件工程方法学的软件过程。问题定义问题定义总体设计总体设计需求分析需求分析可行性研究可行性研究详细设计详细设计综合测试综合测试编码与单元测试编码与单元测试软件维护软件维护第39页,本讲稿共81页瀑布模型的特点阶段间具有顺序性和依赖性必须等前一阶段的工作完成之后,才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档推迟实现的观点尽可能推迟编码质量保证的观点要
19、点1:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务要点2:每个阶段结束前都要对所完成的文档进行评审第40页,本讲稿共81页需求分析验证规格说明验证设计验证编码测试综合测试维护变化的需求验证实际的瀑布模型带反馈环的瀑布模型反馈用于修改错误第41页,本讲稿共81页瀑布模型的问题需求错误会造成严重影响用户参于在需求分析,但只能看到文档,看不到产品,最终产品可能和用户的期望不符不能响应用户需求的变化例子,监控系统的图像分辨率问题快速原型模型有助于获取用户的真实需求第42页,本讲稿共81页快速原型模型快速建立起来的可以在计算机上运行的程序,它所能完成的功能一般是最终产品能完成
20、的功能的一个子集用户通过试用原型提出修改意见,开发人员修改原型,再交用户试用直到用户确认原型系统就是他们所需要的为止例如:网站(首页示意+子页模板),文字或图片是临时的,重点在于展示结构布局,主要栏目,颜色风格等第43页,本讲稿共81页快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证快速原型模型第44页,本讲稿共81页快速原型模型的特点不带反馈环经过用户确认,规格说明正确性高开发人员在建立原型中学到了许多东西,设计和编码阶段出错的可能性减少内部结构不重要,重要的是便于快速搭建和修改原型可能抛弃,也可能作为后续开发的基础第45页,本讲稿共81页增量模型(渐增模型)把软件产品作为
21、一系列的增量构件来设计、编码、集成和测试实现各构件前全部完成需求分析和设计每个构件能够完成特定的功能,包含多个相互作用的模块构成使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能把新构件集成到现有软件中去时,形成的产品必须是可测试的功能、界面都比较多,可考虑用增量模型第46页,本讲稿共81页增量模型(渐增模型)需求分析需求分析验证验证规格说明规格说明验证验证概要设计概要设计验证验证针对每个构件,完成详细针对每个构件,完成详细设计、编码和集成,经测设计、编码和集成,经测试后交付给用户试后交付给用户维护维护第47页,本讲稿共81页增量模型的优缺点优点分批向用户提交产品,用户可渐
22、进地使用和熟悉新产品可维护性好,结构是开放的在实现第一个构件前,概要设计已完成,风险较小缺点技术难度大:需要开放的体系结构,不能破坏原来的产品,对设计人员要求高有等待:概要设计全部完成后,构件的设计实现才能开始第48页,本讲稿共81页风险更大的增量模型规格说明规格说明设计设计编码和集成编码和集成交付客户交付客户规格说明规格说明设计设计编码和集成编码和集成交付客户交付客户规格说明规格说明设计设计编码和集成编码和集成交付客户交付客户构件构件1:构件构件2:构件构件n:第49页,本讲稿共81页风险更大的增量模型不完成总体设计,就进入构件设计一旦确定了用户需求之后,就着手拟定第一个构件的规格说明文档,
23、完成后规格说明组将转向第二个构件的规格说明,与此同时设计组开始设计第一个构件用这种方式开发软件,不同的构件将并行的构建,因此有可能加快工程进度。但是,使用这种方法将冒构件无法集成到一起的风险。开发软件必须重视风险控制,否则欲速则不达第50页,本讲稿共81页螺旋模型1988年,由Barry Boehm正式发表基本思想是使用原型及其他方法尽量降低风险原型法可降低“不能满足需求”的风险每前进一步都进行风险的识别和分析在排除风险的情况下,相当于瀑布模型特别适合大型的复杂系统第51页,本讲稿共81页简化的螺旋模型风险分析快速原型验证风险分析规格说明验证风险分析设计验证风险分析编码测试风险分析综合测试维护
24、风险分析变化的需求验证第52页,本讲稿共81页完整的螺旋模型第53页,本讲稿共81页螺旋模型分析螺旋的第一圈可能产生产品的规格说明,再下面的螺旋可能用于开发一个原型系统,随后可能是软件的更完善的版本。每一圈还要根据用户评估的反馈对项目计划(包括进度、费用)进行调整。特点:强调风险分析,客户未必接受(如影响利润),因此适合于内部的大型系统的软件开发,随着过程的进展演化,开发者和用户能够更好的识别和对待每一个演化级别上的风险。演进的方法不一定可控,依赖于相当丰富的风险评估经验来保证成功。第54页,本讲稿共81页喷泉模型典型的面向对象的软件过程模型迭代(向下箭头):表示目标性质不断增加和明确无缝:在
25、分析、设计、编码等活动之间不存在明显的界限整体是有序的(向上的)维护期维护期进一步开发进一步开发运行状态运行状态集成和测试阶段集成和测试阶段编码阶段编码阶段面向对象设计阶段面向对象设计阶段面向对象分析阶段面向对象分析阶段需求阶段需求阶段第55页,本讲稿共81页喷泉模型重点应放在分析阶段早期定义了一系列面向问题的对象在整个开发过程中不断充实这些对象 第56页,本讲稿共81页Rational 统一过程Rational统一过程(Rational Unified Process,RUP)是由Rational公司推出的一种软件过程。RUP总结了6条经过多年商业化验证的最有效的软件开发经验,这些经验被称为
26、“最佳实践”。第57页,本讲稿共81页RUP最佳实践迭代式开发每个迭代过程以可执行版本结束管理需求使用“用例”和“脚本”来捕获需求使用基于构件的体系结构使用构件降低复杂性,提高重用率可视化建模使用可视化建模语言UML,提高管理复杂性的能力验证软件质量质量评估贯穿于全过程,全员参与控制软件变更对修改进行控制、跟踪和监控第58页,本讲稿共81页RUP软件开发生命周期纵轴代表核心工作流,横轴代表时间过程支持第59页,本讲稿共81页核心工作流RUP中有9个核心工作流,其中前6个为核心过程工作流(Core Process Workflows),后3个为核心支持工作流(Core Supporting Wo
27、rkflows)。第60页,本讲稿共81页工作阶段RUP中的软件生命周期在时间上被分解为四个连续的阶段,每个阶段都有明确的目标,并且定义了用来评估是否达到这些目标的里程碑。如果评估结果令人满意的话,可以允许项目进入下一个阶段。初始精化构建移交第61页,本讲稿共81页四个阶段的工作目标初始阶段建立业务模型,定义最终产品视图,并且确定项目的范围。精化阶段设计并确定系统的体系结构,制定项目计划,确定资源需求。构建阶段开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。移交阶段把开发出的产品提交给用户使用。第62页,本讲稿共81页RUP迭代式开发RUP强调采用迭代和渐增的方式
28、来开发软件,开发过程由多个迭代过程组成。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。RUP重复一系列组成软件生命周期的循环,但是,在不同的迭代过程中是以不同的工作重点和强度对这些核心工作流程进行访问的。全球有上千家软件公司在使用RUP。第63页,本讲稿共81页敏捷过程为了使软件开发团队具有高效工作和快速响应变化的能力,17位著名的软件专家于2001年2月联合起草了敏捷软件开发宣言,它由4个简单的价值观声明组成。1.个体和交互胜过过程和工具2.可以工作的软件胜过面面俱到的文档3.客户合作胜过合同谈判
29、4.响应变化胜过遵循计划第64页,本讲稿共81页极限编程极限编程(eXtreme Programming,XP)是敏捷过程中最富盛名的一个,其名称中“极限”二字的含义是指把好的开发实践运用到极致。目前,极限编程已经成为一个典型的开发方法,广泛应用于需求模糊且经常改变的场合。第65页,本讲稿共81页极限编程的有效实践(特色)1.客户作为开发团队的成员(不一定是真客户)2.使用用户素材(用户故事,记录在卡片上)3.短交付周期(两周-一个月)4.验收测试5.结对编程6.测试驱动开发7.集体所有8.持续集成9.可持续的开发速度(每周40个小时)第66页,本讲稿共81页极限编程的有效实践(续)10.开放
30、的工作空间11.及时调整计划12.简单的设计13.重构14.使用隐喻(隐喻相当于体系结构,从客户角度来描述一个项目的全局,用户故事则从局部来描述)第67页,本讲稿共81页极限编程的开发过程第68页,本讲稿共81页极限编程的迭代过程第69页,本讲稿共81页极限编程的特点综上所述,以极限编程为代表的敏捷过程,具有对变化和不确定性的更快速,更敏捷的反映特性,而且在快速的同时仍然能保持可持续的开发速度。上述这些特点使得敏捷过程能够较好的适应商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束。第70页,本讲稿共81页微软过程作为世界上最大的同时也是最成功的软件公司之一,Microsoft(微软)
31、公司拥有自己独特的软件开发过程,几十年的实践证明微软过程是非常成功和行之有效的。主要内容微软过程准则微软软件生命周期微软过程模型第71页,本讲稿共81页微软过程准则1.项目计划应该兼顾未来的不确定因素2.用有效的风险管理来减少不确定因素的影响3.经常生成并快速地测试软件的过渡版本,从而提高产品地稳定性和可预测性4.采用快速循环,递进地开发过程5.用创造性地工作来平衡产品特性和产品成本6.项目进度表应该具有较高稳定性和权威性7.使用小型项目组并发地完成开发工作8.在项目早期把软件配置项基线化,项目后期则冻结产品9.使用原型验证概念,对项目进行早期论证10.把零缺陷作为追求的目标11.里程碑评审会
32、的目的是改进工作,切忌相互指责第72页,本讲稿共81页微软软件生命周期第73页,本讲稿共81页五个阶段及里程碑(1)规划阶段确定产品目标。获取竞争对手的信息。完成对客户和市场的调研分析。确定新版本产品应具备的主要特征。确定相对于前一版本而言,新版本应该解决的问题和需要增加的功能。第74页,本讲稿共81页五个阶段及里程碑(续)(2)设计阶段根据产品目标编写系统的特性规格说明书。主要描述软件特性、系统结构、各构件间的相关性以及接口标准。从系统高层着手开始进行系统设计,主要完成:系统设计方案,描绘系统结构图,确定系统中存在的风险因素,分析系统的可重用性。划分出系统的子系统,给出各自系统和各个构件的规
33、格说明。根据产品特性规格说明书制定产品开发计划。第75页,本讲稿共81页五个阶段及里程碑(续)(3)开发阶段完成产品中所有构件的开发工作,包括编写程序代码和书写文档。(4)稳定阶段对产品进行测试和调式,以确保已经正确地实现了整个解决方案,产品可以发布了。(5)发布阶段发布产品获解决方案,并把项目移交到运营和支持人员手中,以获得最终用户对项目的认可。第76页,本讲稿共81页微软过程的生命周期模型第77页,本讲稿共81页微软过程小结综合了Rational同一过程和敏捷过程的许多优点,是对众多成功项目的开发经验的正确总结;有某些不足之处,例如,对方法,工具和产品等方面的论述不如RUP和敏捷过程全面。
34、在开发软件的实践中,应该把微软过程与RUP和敏捷过程结合起来,取长补短,针对不同项目的具体情况进行制定。第78页,本讲稿共81页感谢本课程PPT参考了中国海洋大学信息学院魏振刚教授提供的“软件工程”课程的PPT西安交通大学刘海岩副教授提供的“高级软件工程”课程的PPT清华大学出版社提供的“软件工程导论”教学素材 在此表示衷心感谢!第79页,本讲稿共81页软件工程课程细分Software Engineering MethodsSoftware Engineering Mathematics(SEM)Specification and Design(SDE)Concurrency and Dist
35、ributed Systems(CDS)Advanced Concurrency/Model Checking(MCH)Performance Modelling(PMO)Software Development Management(SDM)Agile Methods(AGM)Requirements Engineering(REN)Management of Risk and Quality(MRQ)Process Quality and Improvement(PRO)返回第80页,本讲稿共81页软件工程课程细分Software Engineering ToolsObject Orientation(OOR)Object-Oriented Design(OOD)Object-Oriented Programming(OOP)Design Patterns(DPA)Software Testing(STE)Database Design(DAT)Functional Programming(FPR)Extensible Markup Language(XML)Service Oriented Architectures(SOA)Mobile and Sensor Networks(MOB)Software Product Lines(SPL)返回第81页,本讲稿共81页