软件工程基础指导(一).ppt

上传人:小飞机 文档编号:5319405 上传时间:2023-06-25 格式:PPT 页数:54 大小:1.17MB
返回 下载 相关 举报
软件工程基础指导(一).ppt_第1页
第1页 / 共54页
软件工程基础指导(一).ppt_第2页
第2页 / 共54页
软件工程基础指导(一).ppt_第3页
第3页 / 共54页
软件工程基础指导(一).ppt_第4页
第4页 / 共54页
软件工程基础指导(一).ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件工程基础指导(一).ppt》由会员分享,可在线阅读,更多相关《软件工程基础指导(一).ppt(54页珍藏版)》请在三一办公上搜索。

1、软 件 工 程 基 础,指 导(一),软件工程课程要求,课程目的掌握软件工程的基本原理、先进的软件开发方法和成熟的过程管理经验。培养知识的综合运用能力和问题的协同解决能力。,建议教学用书Software Engineering:A practitioners Approach(Fifth Edition)Roger S.Pressman,2001,清华大学出版社软件工程:实践者的研究方法(第5版)机械工业出版社 2002年9月 梅宏 等译 软件工程理论与实践(第二版 原文影印)高等教育出版社 2001年8月 Shari Lawrence Pfleeger著,软件工程课程部分,掌握软件工程的基础

2、知识和理论,了解该学科的新技术和发展趋势;介绍软件开发生命周期中使用的技术方法,强调软件开发过程的方法研究;使学生学会运用传统或面向对象的软件工程方法进行软件需求分析、系统设计、实现和测试;分析大型软件开发过程中出现的问题;通过课程实践作业,实际运用软件工程的技术和方法,掌握软件项目管理和团队开发的工作方法。,在课程评价中的比重:考试占50%,软件工程课程内容,软件工程概述(3学时)软件项目管理(3学时)需求工程(6学时)软件设计(3学时)面向对象技术(3学时)软件测试、确认与验证(3学时)软件维护(3学时)软件质量与软件工程标准(3学时)工具与环境(3学时),在课程评价中的比重:作业占15%

3、,软件工程实验部分,培养学生实际完成软件项目的能力,使学生能够运用所学理论知识,承担部分或独立完成项目。通过规范化训练,使学生具备良好的软件开发素质和规范的文档编制能力;了解需求分析要点及实际软件工程的实施方式,学会领会并总结开发经验与教训,学生能够应付实际问题的挑战;通过团队开发,提高沟通及协同工作能力。,在课程评价中的比重:项目作业占35%,软件、软件危机软件工程解释软件工程发展简史软件工程原则软件工程主要内容软件过程,第一讲 软件工程概述,1 软件、软件危机,软件的定义 程序、数据及其相关文档的完整集合。软件特征 软件是一种逻辑实体,具有抽象性;软件的生产与硬件的制造不同;软件在运行使用

4、过程中,不会磨损;软件的开发至今尚未完全摆脱手工艺的开发方式。,软件应用领域,系统软件为其他程序提供系统服务实时软件实时响应、控制外部环境商务软件商业信息管理工程和科学计算软件数值计算与分析嵌入式软件嵌入并作用于智能产品智能软件利用非数值算法解决复杂问题,70年代以后软件发展,7090年代:Internet初始阶段物理层+TCP/IP90现在:Web阶段HTTP+Browser=呈现信息的窗口技术=文化ClientServer现在未来十年:智能网络静态=动态,被动=主动,呈现=智能网络服务,.NETXML数据交换协议,软件发展趋势,平台网络化技术对象化系统构件化产品领域化开发过程化生产规模化竞

5、争国际化,-任何软件都是有体系结构的,体系结构决定了软件的整体性能;-任何软件生产都是有过程的,软件过程决定了软件的质量-任何软件都是处理信息的,数据-信息-知识-智慧,软件代价高,而硬件越来越廉价;难于控制开发进度,开发速度赶不上市场变化;软件工作量估计困难,适应不了新领域的要求;质量低,且难以发挥硬件潜能;软件修改、维护困难,集成遗留系统更困难;,随着信息技术的迅猛发展软件问题过去乃至将来都可能会制约计算机应用,软件危机,硬件和软件所占费用的比例图,软件代价高,而硬件越来越廉价;难于控制开发进度,开发速度赶不上市场变化;软件工作量估计困难,适应不了新领域的要求;质量低,且难以发挥硬件潜能;

6、软件修改、维护困难,集成遗留系统更困难;,随着信息技术的迅猛发展软件问题过去乃至将来都可能会制约计算机应用,软件危机,2 如何理解软件工程?,“运用现代科学技术知识来设计并构造计算机程序设计及为开发,运行和维护这些程序所必须的相关文件资料”。Boehm“将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护中”IEEE93“软件工程学是为在成本限额以内按时完成开发和修改软件产品 所需的系统生产和维护的技术和管理的学科”。Fairely“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。Fritz Bauer 软件工程是以借鉴传统工程的原则、

7、方法,以提高质量,降低成本为目的指导计算机软件开发和维护的工程学科。,软件工程包括三个要素过程、方法和工具,三者共同以质量管理为基础。,软件工程与软件过程,软件工程是由有创造力、有知识的人在定义好的、成熟的软件过程中进行的。,不成熟的软件机构特征,软件过程一般在项目进行中由参与开发的人员确定;软件机构是反应型的;项目的进度和经费预算由于估计得不切实际,所以常常突破;产品质量难以预测;,成熟的软件机构特征,建立了机构级的软件开发和维护过程;软件过程在经过论证与分析后可做改进;软件产品的好坏由质量保证小组监控;根据以往经验确定项目进度和预算;,软件过程与成熟度模型,过程成熟度模型,可重复的实践,以

8、技能为基础的实践,可度量和可授权的实践,持续改进的实践,付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发工作,及时交付使用;,软件工程项目的基本目标,软件工程目标之间的相互关系图,软件工程发展简史,20世纪60年代开发方法“功能性程序设计”理论成就1968年10月北大西洋公约组织(NATO)的科学委员会提出了软件危机问题,从而提出“软件工程”问题;技术目标如何扩大程序系统的规模,以适应更复杂的应用。,发展简史(续),20世纪70年代开发技术:结构化分析及结构化设计方法理论成就:1)数据结构,算法理论 2)形式方法,程序证明 3)

9、瀑布模型及相应技术方法技术目标:要解决软件危机,发展简史(续),20世纪80年代:开发方法:1)转向构造系统的方法 2)软件体系结构 3)复杂的文档管理理论成就:1)关系数据库的关系理论 2)COCOMO模型,CMM模型技术目标:1)大幅度提高个人的生产率 2)软件复用,面向对象技术,发展简史(续),20世纪90年代:开发方法:基于Internet/web技术的软件开发 研究焦点是软件体系结构、软 件设计模式、标准化、协议、集成等问题理论成就:以研究封闭的系统转向一个开放 的不断进化的系统。技术目标:JUST IN TIME INFORMATION,4 软件工程原则,选取适宜的开发模型;采用合

10、适的设计方法;提供高质量的工程支撑;重视软件工程的管理。,5 软件工程的主要内容,软件开发模型 软件开发方法 软件过程 软件工具及开发环境 软件工程标准 文档,软件工程标准,国际标准国家标准行业标准企业(机构)标准项目(课题)标准,5 软件工程的主要内容,软件开发模型 软件开发方法 软件过程 软件工具及开发环境 软件工程标准 文档,软件过程是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。,需求:包括问题分析和需求分析;设计:包括概要设计和详细设计;实现:把设计结果转换为可执行的程序代码;测试:包括单元测试、集成测试和确认测试;维护:是对投入运行的软件进行修改,使软件系统能 适应外界环境

11、变化、实现功能扩充和质量改善。,6 软件过程,Solutionintegration,TechnicalDevelopment,Problemdefinition,Statusquo,软件过程模型:框架,Statusquo,Technicaldevelopment,Problemdefinition,Solutionintegration,Statusquo,Technicaldevelopment,Problemdefinition,Solutionintegration,Statusquo,Technicaldevelopment,Problemdefinition,Solutionint

12、egration,Statusquo,软件过程模型:嵌套表示,软件过程模型:分类,线性顺序模型原型模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,Test,Code,Design,System/information engineering,Analysis,线性顺序模型或传统生存期或瀑布模型,线性顺序模型或传统生存期或瀑布模型,Requirements Analysis,System design,Unit&Integration Testing,System Testing,Operation&Maintenance,Program design,Coding,Acc

13、eptance Testing,线性顺序模型或传统生存期或瀑布模型,Requirements Analysis,System design,Unit&Integration Testing,System Testing,Operation&Maintenance,Program design,Coding,Acceptance Testing,Requirements,Design,Implementation,线性顺序模型特点,严格活动序列;严格阶段成果评审;不允许需求的不确定性;不显式支持活动迭代;要求用户极大的耐心;开发过程“阻塞”;,软件过程模型:分类,线性顺序模型原型实现模型RAD模

14、型演化软件过程模型基于构件的开发形式化开发模型第四代技术,原型实现模型,Customertest drivesmock-up,Listen to customer,Build/revisemock-up,原型实现模型特点,支持问题从抽象到具体的逐步演化过程软件的“临时版本”,未考虑性能需求技术方案未必最优会导致开发过程的不可收敛性多作为沟通用户和开发者的桥梁,而后抛弃,软件过程模型:分类,线性顺序模型原型模型RAD(Rapid Application Development)模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,RAD模型,Processmodeling,Testing&

15、turnover,Data modeling,Businessmodeling,Applicationgeneration,6090 days,Team#1,Businessmodeling,Data modeling,Processmodeling,Applicationgeneration,Testing&turnover,Team#2,Businessmodeling,Data modeling,Processmodeling,Applicationgeneration,Testing&turnover,Team#3,RAD模型特点,基于构件的快速线性开发;大型项目需要足够的人力组建足够

16、的RAD组;要求较高的业务水平和开发水平;适合成熟领域的应用开发;模块划分的过分独立会带来性能的降低;,软件过程模型:分类,线性顺序模型原型模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,演化软件过程模型,体现软件的变化特征,突出迭代思想增量模型以尽早占领市场为目的,逐步发布版本;可有计划地管理技术风险;螺旋模型不同版本、不同形式的不断进化;需要高水平的风险评估技术;WINWIN螺旋模型从客户处诱导项目需求,强调客户交流;追求“双赢”结果;并发开发模型由用户要求、管理决策和评审结果驱动;每一个软件工程活动触发活动网络的状态变迁;,演化增量模型,Analysis,Test,

17、Code,Design,Analysis,Test,Code,Design,Analysis,Test,Code,Design,Analysis,Test,Code,Design,System/information engineering,Increment 1,Delivery of 1st increment,Delivery of2nd increment,Delivery of3rdincrement,Delivery of 4th increment,Calendar time,Increment 2,Increment 3,Increment 4,螺旋模型,1.Identify

18、Next-levelstakeholders,2.Identify stakeholders win condition,3a.Reconcile win condition3b.Establish next-level objectives,Constraints and alternatives,4.Evaluate process and product alternatives and resolve risks,5.Define next-level of product and process,including partitions,7.Review and comment,6.

19、Validate productand process definitions,WINWIN螺旋模型,演化并发开发模型,Under development,Under view,Under revision,Baselined,Done,AwaitingChange,None,Represents a state of a Software engineered activity,Analysis activity,软件过程模型:分类,线性顺序模型原型实现模型RAD模型演化软件过程模型基于构件的开发形式化开发模型第四代技术,Planning,Risk analysis,EngineeringC

20、onstruction&release,Customerevaluation,Customercommunication,Identify candidate components,Look up ComponentsIn library,Constructnth iterationOf system,ExtractComponentsIf available,Put newComponentsIn library,Build ComponentsIf unavailable,基于构件的开发面向对象范型,Y:=0,Y:=0,(y+1)2x,Init:x0,and y=0,Loop:y2 x,Y

21、es:(y+1)2x,Exit:x unchanged and y2x(y+1)2,cont:y2 x,entry:x0,形式化方法:可借助数学方法保证程序正确性,软件过程模型:分类,线性顺序模型传统生存期模型原型模型RAD模型演化软件过程模型形式化开发模型第四代技术,第四代技术,用一种“高级”语言来描述待解问题;不适合大型、高性能软件项目开发;适用领域有限:数据库查询的非过程语言报告生成器数据处理代码生成屏幕交互,软件工程第一讲小结,软件数据及其相关文档的完整集合;软件工程以借鉴传统工程的原则、方法,以 提高质量,降低成本为目的指导计 算机软件开发和维护的工程学科。软件工程原则根据项目特点选取适宜的开发模 型、合适的设计方法、质量保 证支撑、工程管理体系软件工程主要内容方法、过程、工具软件过程模型裁减与组合、迭代、结点,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号