书签 分享 收藏 举报 版权申诉 / 476
上传文档赚钱

类型软件工程.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2045847
  • 上传时间:2022-01-21
  • 格式:PPT
  • 页数:476
  • 大小:3.73MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《软件工程.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件工程
    资源描述:

    1、软件工程软件工程哈尔滨工业大学哈尔滨工业大学(威海威海)计算机科学与技术学院计算机科学与技术学院孟凡超孟凡超Email:Tele:151631557872参考教材参考教材n软件工程软件工程-原理、方法与应用原理、方法与应用.史济民等史济民等,高等教高等教育出版社育出版社n软件工程软件工程. 齐治昌等齐治昌等,高等教育出版社高等教育出版社nSoftware Engineering: Theory and Practice.(软件工程软件工程). Shari Lawrence等著等著,人人民邮电出版社民邮电出版社. nUML2 and the Unified Process Practical O

    2、bject-Oriented Analysis and Design (UML2.0和统一过程和统一过程).Jim Arlow著著.机械工业机械工业出版社出版社.3课程内容课程内容n软件工程概述软件工程概述n软件需求分析软件需求分析n软件设计软件设计n软件编码软件编码n软件测试软件测试n软件维护软件维护n软件复用软件复用n软件工程管理软件工程管理n软件质量管理软件质量管理4软件工程概述软件工程概述n软件工程中常见问题软件工程中常见问题什么是软件?什么是软件?什么是软件工程?什么是软件工程?软件工程和计算机科学有何区别?软件工程和计算机科学有何区别?软件工程和系统工程有何区别?软件工程和系统工程

    3、有何区别?什么是软件过程?什么是软件过程?什么是软件过程模型?什么是软件过程模型?5软件工程概述软件工程概述p什么是软件?什么是软件?n软件:软件:软件是能够完成预定义功能的可执行的软件是能够完成预定义功能的可执行的计算机程序和使程序正常执行所需要的数据,计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和文档。简明地表述,可加上描述程序的操作和文档。简明地表述,可以写作:软件以写作:软件=程序程序+文档。文档。软件软件=程序程序+文档文档可执行部分可执行部分不可执行部分不可执行部分文档文档1文档文档2文档文档3程序程序6软件工程概述软件工程概述n程序:程序:程序是为了解决某个特定问题

    4、而用程序程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。设计语言描述的适合计算机处理的语句序列。Main( ) int i, j; / 变量定义 char Str10; i = i + j ; / 语句说明 Class Order String number; /属性 String customer; create() /方法 C语言程序语言程序Java语言程序语言程序7软件工程概述软件工程概述n范型:范型:又称为科学基质,代表科学共同体成员所共有又称为科学基质,代表科学共同体成员所共有的信念、价值、技术手段的总称。简单地说,范型是的信念、价值、技术手段的总称。简单地

    5、说,范型是某一学科在一定时期内展开研究活动共有的基础和准某一学科在一定时期内展开研究活动共有的基础和准则。则。n编程范型:编程范型:是指导和制约编程活动的范型,通常在编是指导和制约编程活动的范型,通常在编程语言中体现。程语言中体现。命令式编程范型命令式编程范型面向对象的编程范型面向对象的编程范型基于构件的编程范型基于构件的编程范型面向服务的编程范型面向服务的编程范型面向问题的编程范型面向问题的编程范型其它范型其它范型8软件工程概述软件工程概述n命令式编程范型:命令式编程范型:又称过程式编程范型,指用程序状态又称过程式编程范型,指用程序状态和改变程序状态的语句描述计算的编程范型。命令式范和改变程

    6、序状态的语句描述计算的编程范型。命令式范型的典型语言包括:依赖于计算机机器语言和汇编语言、型的典型语言包括:依赖于计算机机器语言和汇编语言、独立于计算机的高级语言独立于计算机的高级语言(如如Fortran、Pascal和和C等等)。内存内存(程序和数据程序和数据) 控制器控制器 运算器运算器 I/O 地地址址数数据据CPUVon Neumann式计算机体系结构式计算机体系结构命令式编程范型是对命令式编程范型是对Von Neumann式计算机的顺序式计算机的顺序执行机制的直接抽象。执行机制的直接抽象。9软件工程概述软件工程概述n面向对象的编程范型:面向对象的编程范型:是指用封装了数据和对数据操作

    7、是指用封装了数据和对数据操作的对象以及对象之间的消息传递描述计算的编程范型。的对象以及对象之间的消息传递描述计算的编程范型。Java、C#是典型的面向对象编程范型语言。是典型的面向对象编程范型语言。数据数据操作操作对象对象数据数据数据数据消息消息面向对象编程范型的示意图面向对象编程范型的示意图对象对象对象对象面向对象编程范型的面向对象编程范型的3个基本特个基本特征:封装、继承和多态。征:封装、继承和多态。10软件工程概述软件工程概述数数据据对象对象数数据据数数据据消息消息对象对象一个封装了多个对象的构件一个封装了多个对象的构件构构件件的的接接口口构件:构件:模块化的、可部署、可模块化的、可部署

    8、、可替换的软件系统组成部分,替换的软件系统组成部分,它封装了内部的具体实现并它封装了内部的具体实现并对外提供一组接口。对外提供一组接口。n基于构件的编程范型:基于构件的编程范型:指以构件的创建,构件的管理以指以构件的创建,构件的管理以及复用已有的构件组装形成应用为基本活动的编程范型。及复用已有的构件组装形成应用为基本活动的编程范型。目前有代表性的构件规范有目前有代表性的构件规范有COM/DCOM、EJB和和CORBA。11软件工程概述软件工程概述服务服务1服务服务2服务服务3服务服务4异构系统的功能被封装为服务以方便复用异构系统的功能被封装为服务以方便复用应用应用1(J2EE)应用应用2(.N

    9、et)应用应用3(Legacy)服务层服务层应用层应用层n面向服务的编程范型:面向服务的编程范型:指以服务的创建、服务的管理以指以服务的创建、服务的管理以及复用已有的服务组装形成应用为基本活动的编程范型。及复用已有的服务组装形成应用为基本活动的编程范型。面向服务的编程技术面向服务的编程技术Web Service、BPEL、SCA等。等。服务:服务:是自治、开放、自描是自治、开放、自描述、与实现无关的网络构述、与实现无关的网络构件。件。12软件工程概述软件工程概述n面向问题的编程范型:面向问题的编程范型:该编程范型不需要程序该编程范型不需要程序员指明程序实现过程,只需给出问题和输入数员指明程序实

    10、现过程,只需给出问题和输入数据,并指明输出的形式,就可以得到所需结果。据,并指明输出的形式,就可以得到所需结果。例如,数据库查询语言、报表语言、电路设计例如,数据库查询语言、报表语言、电路设计专用语言、人工智能语言专用语言、人工智能语言(Prolog)等。等。13软件工程概述软件工程概述n文档:文档:软件开发活动的记录,主要供人们阅读,软件开发活动的记录,主要供人们阅读,既可用于专业人员和用户之间的通信和交流,既可用于专业人员和用户之间的通信和交流,也可以用于软件开发过程的管理和运行阶段的也可以用于软件开发过程的管理和运行阶段的维护。维护。文档的类型文档的类型需求分析文档需求分析文档软件设计文

    11、档软件设计文档软件测试文档软件测试文档14软件工程概述软件工程概述软件的类型软件的类型系统软件:系统软件:计算机系统软件是计算机管理自身资计算机系统软件是计算机管理自身资源源(如如CPU、内存、外存、外设等、内存、外存、外设等),提高计算机使,提高计算机使用效率并为计算机用户提供各种服务的基础软件。用效率并为计算机用户提供各种服务的基础软件。例如,操作系统、数据库管理系统等。例如,操作系统、数据库管理系统等。实时软件:实时软件:监测、分析和控制现实世界发生的事监测、分析和控制现实世界发生的事件,能以足够快的速度对输入信息进行处理,并在件,能以足够快的速度对输入信息进行处理,并在规定的时间内作出

    12、反应的软件。例如,各种设备运规定的时间内作出反应的软件。例如,各种设备运行监控软件等。行监控软件等。15软件工程概述软件工程概述嵌入式软件:嵌入式软件:嵌入式计算机系统将计算机嵌入在嵌入式计算机系统将计算机嵌入在某一系统之中,使之成为该系统的重要组成部分,某一系统之中,使之成为该系统的重要组成部分,控制该系统的运行,进而实现某一特定的物理过程。控制该系统的运行,进而实现某一特定的物理过程。用于嵌入计算机系统的软件称为嵌入式软件。例如,用于嵌入计算机系统的软件称为嵌入式软件。例如,航空航天系统、指挥系统、汽车控制系统等。航空航天系统、指挥系统、汽车控制系统等。科学和工程计算机软件:科学和工程计算

    13、机软件:它们以数值算法为基础,它们以数值算法为基础,对数值量进行处理和计算,主要用于科学和工程计对数值量进行处理和计算,主要用于科学和工程计算。例如,数值天气预报、导弹计算、石油勘探、算。例如,数值天气预报、导弹计算、石油勘探、计算辅助设计计算辅助设计(CAD)等。等。16软件工程概述软件工程概述事务处理软件:事务处理软件:用于处理事务信息,特别是商务用于处理事务信息,特别是商务信息的计算机软件。事务信息处理是软件最大的应信息的计算机软件。事务信息处理是软件最大的应用领域。例如,工资管理系统、人事管理系统、企用领域。例如,工资管理系统、人事管理系统、企业资源计划系统业资源计划系统(ERP)等。

    14、等。人工智能软件:人工智能软件:支持计算机系统产生人类某些智支持计算机系统产生人类某些智能的软件。它们求解复杂问题不是用传统的计算或能的软件。它们求解复杂问题不是用传统的计算或分析方法,而是采用诸如基于规则的演绎推理技术分析方法,而是采用诸如基于规则的演绎推理技术和算法。应用领域有专家系统、模式识别、自然语和算法。应用领域有专家系统、模式识别、自然语言理解、人工神经网络、程序验证、自动程序设计、言理解、人工神经网络、程序验证、自动程序设计、机器人学等。机器人学等。17软件工程概述软件工程概述CASE工具软件:工具软件:CASE工具软件一般为支撑软工具软件一般为支撑软件生存周期中不同活动而研制,

    15、包括项目管理工具、件生存周期中不同活动而研制,包括项目管理工具、需求分析工具、编程环境需求分析工具、编程环境(编辑器、编译器、链接编辑器、编译器、链接器和测试器于一体器和测试器于一体)、软件测试工具等。、软件测试工具等。其它软件:其它软件:18软件工程概述软件工程概述软件的特征软件的特征软件开发更依赖于开发人员的业务素质、智力、软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。人员的组织、合作和管理。软件开发性质,如成本和进度等难以估计。软件开发性质,如成本和进度等难以估计。软件开发成功后,只需对原版进行复制。软件开发成功后,只需对原版进行复制。软件不会老化。软件不会老化。软件

    16、在使用过程中维护比较复杂。软件在使用过程中维护比较复杂。19软件工程概述软件工程概述p什么是软件工程?什么是软件工程?n软件工程:软件工程:软件工程是用工程、科学和数学的原软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理则与方法研制、维护计算机软件的有关技术及管理方法。方法。首次提出:首次提出:1968年,北大西洋公约组织在原西德年,北大西洋公约组织在原西德召开计算机科学会议,由召开计算机科学会议,由Fritz Bauer首次提出了首次提出了“软件工程软件工程”的概念。的概念。提出背景:提出背景:解决软件危机。解决软件危机。20软件工程概述软件工程概述n软件危机:软

    17、件危机: 软件危机是指在计算机软件的开发和维护过程中软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。所遇到的一系列严重问题。两个主要问题:两个主要问题:如何开发软件,怎样满足对软件的日益增长的如何开发软件,怎样满足对软件的日益增长的需求。需求。如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。21软件工程概述软件工程概述软件危机的主要表现软件危机的主要表现对软件开发成本和进度的估计不准确对软件开发成本和进度的估计不准确用户不满意用户不满意软件质量不高、可靠性差软件质量不高、可靠性差软件常常不可维护、错误难以改正软件常常不可维护、错误难以改正缺乏适当的文档资料缺乏

    18、适当的文档资料软件成本占系统总成本的比例逐年上升软件成本占系统总成本的比例逐年上升软件开发速度跟不上计算机发展速度软件开发速度跟不上计算机发展速度22软件工程概述软件工程概述n产生软件危机的原因产生软件危机的原因与软件本身的特点有关:与软件本身的特点有关:软件不同于硬件,它是计算机系统的逻辑部件而不是软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。较难评价。因此,管理

    19、和控制软件开发过程相当困难。软件不易于维护软件不易于维护软件维护通常意味着改正或修改原来的设计,客观上软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。使软件较难维护。软件不同于一般程序,它的规模大,不易于维护。软件不同于一般程序,它的规模大,不易于维护。在软件开发过程中,或多或少地采用了错误的方法和技在软件开发过程中,或多或少地采用了错误的方法和技术。术。对用户需求没有完整准确的认识,就匆忙着手编写程序。对用户需求没有完整准确的认识,就匆忙着手编写程序。23软件工程概述软件工程概述n解决软件危机的途径解决软件危机的途径技术措施技术措施使用更好的软件开发方法和开发工具使用更好的软件

    20、开发方法和开发工具组织管理措施组织管理措施软件开发不是某种个体劳动的神秘技巧,而软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。协同配合、共同完成的工程项目。24软件工程概述软件工程概述软件工程的三要素软件工程的三要素过程过程方法方法工具工具软件工程软件工程软件工程三要素软件工程三要素方法:方法:软件工程方法是完成软件工程项目的技术手段,它支持项目计划和估算、系统和软件需求分析、软件设计、编码、测试和维护。25软件工程概述软件工程概述结构化程序设计结构化程序设计 面向对象面向对象 分布式对象分布式对

    21、象/系统系统基于构件的开发基于构件的开发面向服务的计算面向服务的计算19701980199020002010n软件开发方法的演化软件开发方法的演化26软件工程概述软件工程概述工具工具:软件工程使用的工具是人类在开发软件的活动中智力和体力的扩展和延伸,它自动或半自动地支持软件的开发和管理、支持各种软件文档的生成。过程:过程:软件工程中的过程贯穿于整个工程的各个环节,在这一过程中,管理人员应对软件开发的质量、进度、成本等进行评估、管理和控制,包括计划跟踪与控制、成本估算、人员的组织、质量保证、配置管理等。27软件工程概述软件工程概述客户客户发起系统发起系统开发人员开发人员客户客户构建系统构建系统使

    22、用系统使用系统需要的需要的资金资金合同合同契约契约需要需要软件软件系统系统客户客户(Customer):是为是为将要开发的软件系统支将要开发的软件系统支付费用的公司、组织或付费用的公司、组织或个人。个人。开发人员开发人员(Developer):是是为客户构建软件系统的公为客户构建软件系统的公司、组织或个人,其中包司、组织或个人,其中包括任何协调并指导程序员括任何协调并指导程序员和测试人员的管理人员。和测试人员的管理人员。用户用户(User):是将实际使用是将实际使用系统的人,包括坐在终端系统的人,包括坐在终端前的人、提交数据的人和前的人、提交数据的人和阅读输出的人。阅读输出的人。软件工程中涉及

    23、到人员软件工程中涉及到人员28软件工程概述软件工程概述软件工程的目标软件工程的目标-可修改性可修改性(modifiability):容许对系统进行修改而不增加原系统的复杂性。-有效性有效性(efficiency):指软件系统的时间和空间效率。-可靠性可靠性(reliability):能够防止因概念、设计和结构等方面的不完善造成软件系统失效,具有挽回因操作不当造成软件系统失效的能力。29软件工程概述软件工程概述-可理解性可理解性(understandability):系统具有清晰的结构,能直接反映问题的需求。-可维护性可维护性(maintainability):软件产品交付用户使用后,能够对它进

    24、行修改,以便改正潜在的错误和其它属性,使软件产品适应环境变化等方面工作的难易程度。-可重用性可重用性(reusability):是指软件可以在多种场合使用的程度。30软件工程概述软件工程概述-可适应性可适应性(adaptability):软件在不同系统约束条件下,使用户需求得到满足的难易程度。-可移植性可移植性(portability):软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。-可追踪性可追踪性(traceability):根据软件需求对软件设计、程序进行正向追踪,或者根据程序、软件设计对软件需求进行逆向追踪的能力。-可互操作性可互操作性(interoperabilit

    25、y):多个软件元素相互通信并协同完成任务的能力。31软件工程概述软件工程概述软件工程技术发展的一种途径软件工程技术发展的一种途径LINIXUNIXWindows Fortran Java Application 屏蔽计算机硬件的异构屏蔽计算机硬件的异构性发展了操作系统性发展了操作系统.Net/COMJ2EE/EJBWeb service屏蔽不同中间件之间的屏蔽不同中间件之间的异构性发展了异构性发展了Web服服务务 Architecture framework design pattern Support software middleware C/C+ 屏蔽应用软件和开发屏蔽应用软件和开发平台

    26、之间的差异平台之间的差异产生了体系结构产生了体系结构/框架框架/设计模式设计模式屏蔽操作系统之间和屏蔽操作系统之间和编程语言之间的编程语言之间的异构性出现了支异构性出现了支撑软件和中间件撑软件和中间件32软件工程概述软件工程概述p软件工程和计算机科学的区别?软件工程和计算机科学的区别?计算机科学研究的是构成计算机和软件系统基础的计算机科学研究的是构成计算机和软件系统基础的有关理论和方法。有关理论和方法。软件工程研究软件制作中的一些实际问题。软件工程研究软件制作中的一些实际问题。软件工程应以计算机科学理论作为基础。软件工程应以计算机科学理论作为基础。软件工程是一门实践性比较强的学科。对于实际、软

    27、件工程是一门实践性比较强的学科。对于实际、复杂的问题,计算机科学的经典理论不可能总是适复杂的问题,计算机科学的经典理论不可能总是适用的,这时需要软件工程的方法来解决。用的,这时需要软件工程的方法来解决。33软件工程概述软件工程概述p软件工程和软件工程和(计算机计算机)系统工程有何区别?系统工程有何区别?n系统:系统:系统是一组相互关联、能在一起工作从系统是一组相互关联、能在一起工作从而达到某个目标的相关元素的集合。而达到某个目标的相关元素的集合。n计算机系统:计算机系统:通过处理信息来完成某些预定义通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列。目标而组织在一起的元素的集合或排

    28、列。n计算机系统构成要素:计算机系统构成要素:软件软件(Software)、硬件、硬件(Hardware)、人、人(People)、数据库、数据库(Database)、文档、文档(Document)、过程、过程(Procedure)。34软件工程概述软件工程概述系统系统过程过程硬件硬件软件软件人人数据数据库库文档文档输入输入输出输出基于计算机的系统要素基于计算机的系统要素35软件工程概述软件工程概述n计算机系统工程:计算机系统工程:是指与构造基于计算机系统有是指与构造基于计算机系统有关的过程、方法和技术。关的过程、方法和技术。硬件工程硬件工程软件工程软件工程人机交互工程人机交互工程数据库工程数

    29、据库工程36软件工程概述软件工程概述p什么是软件过程什么是软件过程(软件生存周期软件生存周期)?n软件生存周期:软件生存周期:软件从定义开始,经过开发、软件从定义开始,经过开发、使用和维护直到最终退役的全过程称为软件生使用和维护直到最终退役的全过程称为软件生存周期。存周期。n典型软件生存周期一般分为:典型软件生存周期一般分为:计划时期:计划时期:问题定义、可行性研究问题定义、可行性研究开发时期开发时期:需求分析、软件设计、软件编码、需求分析、软件设计、软件编码、软件测试软件测试运行时期:运行时期:软件维护软件维护37软件工程概述软件工程概述需求分析需求分析 软件设计软件设计编码编码维护维护 测

    30、试测试问题定义问题定义可行性研究可行性研究计划时期计划时期开发时期开发时期维护时期维护时期38软件工程概述软件工程概述p什么是软件过程模型什么是软件过程模型(软件开发模型软件开发模型)?n软件开发模型:软件开发模型:一个软件项目开发和维护的总体过程思路的框架。一个软件项目开发和维护的总体过程思路的框架。n作用:作用:指出了软件开发过程各阶段之间的关系和顺序。指出了软件开发过程各阶段之间的关系和顺序。为软件开发过程提供原则和方法。为软件开发过程提供原则和方法。为软件工程管理提供里程碑和进度表。为软件工程管理提供里程碑和进度表。39软件工程概述软件工程概述n主要的软件开发模型主要的软件开发模型传统

    31、的软件开发模型传统的软件开发模型瀑布模型瀑布模型快速原型模型快速原型模型软件演化模型软件演化模型阶段开发模型阶段开发模型螺旋模型螺旋模型面向对象开发模型面向对象开发模型统一过程统一过程形式化方法模型形式化方法模型转换模型转换模型模型驱动的开发模型模型驱动的开发模型基于构件的软件开发模型基于构件的软件开发模型构件集成模型构件集成模型基于复用的软件开发模型基于复用的软件开发模型40软件工程概述软件工程概述n瀑布模型瀑布模型(Waterfall Model)是是W.Royce于于1970年提出。在瀑布模型中,各阶段的工年提出。在瀑布模型中,各阶段的工作顺序展开。作顺序展开。瀑布模型的特征瀑布模型的特

    32、征阶段间的顺序性和依赖性:阶段间的顺序性和依赖性:前一阶段工作完成以后,后一前一阶段工作完成以后,后一阶段工作才能开始;前一阶段的输出文档,是后一阶段的阶段工作才能开始;前一阶段的输出文档,是后一阶段的输入文档。输入文档。推迟实现观点:推迟实现观点:需求分析需求分析软件设计软件设计编码编码质量保证观点:质量保证观点:每一阶段都要完成规定文档,没有完成文每一阶段都要完成规定文档,没有完成文档,就认为没有完成该阶段的任务;每一阶段都要对已有档,就认为没有完成该阶段的任务;每一阶段都要对已有的文档进行复审,以便尽早发现问题,消除隐患。的文档进行复审,以便尽早发现问题,消除隐患。41软件工程概述软件工

    33、程概述用户要求用户要求需求分析需求分析需求规格说明需求规格说明总体设计总体设计软件结构图软件结构图详细设计详细设计模块说明模块说明编码编码程序清单程序清单单元测试单元测试综合测试综合测试确认测试确认测试系统测试系统测试瀑布模型的阶段瀑布模型的阶段和文档和文档42软件工程概述软件工程概述瀑布模型存在问题瀑布模型存在问题软件开发的初始阶段指明软件系统的全部需求是软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。困难的,有时甚至是不现实的。需求确定以后,用户和软件项目负责人要等到相需求确定以后,用户和软件项目负责人要等到相当长的时间当长的时间(设计设计实现实现测试测试运行运行)才

    34、能得到一才能得到一份软件的最初版本。如果用户对这个软件提出比较份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么软件项目将会受到巨大的人力、大的修改意见,那么软件项目将会受到巨大的人力、财力和时间方面的损失。财力和时间方面的损失。43软件工程概述软件工程概述n快速原型模型快速原型模型(Rapid Prototype Model)原型:原型:是一个部分开发的产品,它使客户和开发是一个部分开发的产品,它使客户和开发人员能对计划开发的系统来实现一小部分关键需求,人员能对计划开发的系统来实现一小部分关键需求,以确保需求是一致的、可行和符合实际的。以确保需求是一致的、可行和符合实际的。快速原

    35、型模型:快速原型模型:首先建立一个能够反映用户主要首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需求的,哪些还需要改进。以便判断哪些功能是符合需求的,哪些还需要改进。然后将原型反复改进,最终建立完全符合用户要求然后将原型反复改进,最终建立完全符合用户要求的新系统。的新系统。44软件工程概述软件工程概述需求分析需求分析原型评价原型评价最终系统设计最终系统设计 最终系统实现最终系统实现 原型开发原型开发规格说明规格说明可运行原型可运行原型用户反馈用户反馈快速原型模型的生存周期模型快速原型模型的生存周期模型4

    36、5软件工程概述软件工程概述建立快速原型的方法:建立快速原型的方法:原型系统仅包含未来的主要功能以及系统的重要原型系统仅包含未来的主要功能以及系统的重要接口。接口。原型系统充分展示软件的可见部分,如数据的输原型系统充分展示软件的可见部分,如数据的输入方式、人机界面、数据的输出格式。入方式、人机界面、数据的输出格式。为了尽快向用户提供原型,开发原型系统时应尽为了尽快向用户提供原型,开发原型系统时应尽量使用能缩短开发周期的语言和工具。量使用能缩短开发周期的语言和工具。将原型系统作为基础,通过补充与修改获得最终将原型系统作为基础,通过补充与修改获得最终的实际系统。的实际系统。46软件工程概述软件工程概

    37、述n阶段化开发模型阶段化开发模型循环周期:循环周期:从编写需求文档到系统交付的时间称为从编写需求文档到系统交付的时间称为循环周期。循环周期。减少循环周期的方法:减少循环周期的方法:阶段化开发。阶段化开发。阶段化开发方法:阶段化开发方法:使用阶段化开发方法设计系统时,使用阶段化开发方法设计系统时,能够使其一部分一部分地交付,从而在系统其余部能够使其一部分一部分地交付,从而在系统其余部分正在开发的同时,用户已经获得了一部分功能。分正在开发的同时,用户已经获得了一部分功能。因此,通常会存在两个并行的系统:因此,通常会存在两个并行的系统:运行系统或产运行系统或产品系统和开发系统。品系统和开发系统。47

    38、软件工程概述软件工程概述阶段化开发模型阶段化开发模型构建发布构建发布1构建发布构建发布2构建发布构建发布3发布发布1发布发布2发布发布3开发系统开发系统(Development System)开开发发人人员员用用户户时间时间准备用来替换准备用来替换现行产品系统现行产品系统的下一个版本的下一个版本产品系统产品系统(Production System)当前正在被客户和当前正在被客户和用户所使用的系统用户所使用的系统48软件工程概述软件工程概述增量开发和迭代开发增量开发和迭代开发增量开发增量开发(Incremental Development)迭代开发迭代开发(Iterative Developme

    39、nt)在增量开发中,需求文档在增量开发中,需求文档中指定的系统按照功能划中指定的系统按照功能划分为子系统。定义发布时分为子系统。定义发布时首先定义一个小的功能子首先定义一个小的功能子系统,然后在每一个新的系统,然后在每一个新的发布中增加新功能。发布中增加新功能。迭代开发是在一开始就提迭代开发是在一开始就提交一个完整的系统,然后交一个完整的系统,然后在每一个新的发布中改变在每一个新的发布中改变每个子系统的功能每个子系统的功能49软件工程概述软件工程概述n采用阶段化开发方法的原因采用阶段化开发方法的原因即使还缺少某些功能,但在早期的发布中就可以开即使还缺少某些功能,但在早期的发布中就可以开始培训。

    40、培训过程可以使开发人员观察某些功能的始培训。培训过程可以使开发人员观察某些功能的如何执行的,并为后面的发布提供改进的建议。这如何执行的,并为后面的发布提供改进的建议。这样开发人员可以很好地对用户的反馈做出反应。样开发人员可以很好地对用户的反馈做出反应。可以及早地为那些以前从未提供的功能开拓市场。可以及早地为那些以前从未提供的功能开拓市场。当运行系统出现未预料到的问题时,经常性的发布当运行系统出现未预料到的问题时,经常性的发布可以使开发人员能全面、快速地修复这些问题。可以使开发人员能全面、快速地修复这些问题。针对不同的发布版本,开发团队将重点放在不同的针对不同的发布版本,开发团队将重点放在不同的

    41、专业领域技术上。专业领域技术上。50软件工程概述软件工程概述n螺旋模型螺旋模型(Spiral Model)在瀑布模型和快速原型模型的基础上增加了风险分在瀑布模型和快速原型模型的基础上增加了风险分析。析。螺旋模型类似于迭代开发模型。它以需求和一个初螺旋模型类似于迭代开发模型。它以需求和一个初始计划始计划(包括预算、约束、人员安排方案、设计和包括预算、约束、人员安排方案、设计和开发环境开发环境)为起点,在产生为起点,在产生“操作概念操作概念”文档文档(从高从高层描述系统如何工作层描述系统如何工作)之前,插入一个风险评估和之前,插入一个风险评估和可选原型的步骤。可选原型的步骤。操作概念是第一次迭代的

    42、产品,而需求则是第二次操作概念是第一次迭代的产品,而需求则是第二次迭代的主要产品。在第四次迭代中,系统开发产生迭代的主要产品。在第四次迭代中,系统开发产生设计,而第四次迭代能够进行测试。设计,而第四次迭代能够进行测试。51软件工程概述软件工程概述n螺旋模型螺旋模型(Spiral Model) 确定目标、确定目标、可选方案可选方案及约束及约束操作概念操作概念预算预算1预算预算2预算预算3预算预算4风险分析风险分析1需求、生命需求、生命周期计划周期计划约束约束1约束约束2约束约束3约束约束4风险分析风险分析2风险分析风险分析3风险分析风险分析4原型原型1原型原型2原型原型3原型原型4软件需求软件需

    43、求经确认经确认的需求的需求开发计划开发计划软件设计软件设计评估可选方评估可选方案及风险案及风险可选可选方案方案2可选可选方案方案1可选可选方案方案3可选可选方案方案4制定计划制定计划集成和测试集成和测试计划计划开发与测试开发与测试经确认经确认的设计的设计详细设计详细设计编码编码单元测试单元测试系统测试系统测试验收测试验收测试实施计划实施计划52软件工程概述软件工程概述n面向对象的开发模型面向对象的开发模型编程语言:编程语言:Simula 67(20世纪世纪60年代年代)、Smalltalk(20世纪世纪80年代年代)、C+和和Java(20世纪世纪90年代年代)建模语言:建模语言:Booch、

    44、Rumbaugh和和Jacoson共同共同提出的统一建模语言提出的统一建模语言(UML)。面向对象的基本概念面向对象的基本概念对象:对象:对象是对现实世界中个体或事物的抽象表示,是对象是对现实世界中个体或事物的抽象表示,是它的属性和相关操作的统一封装体。属性表示对象的性它的属性和相关操作的统一封装体。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展示的外部服务。指该对象可以展示的外部服务。53软件工程概述软件工程概述面向对象的基本概念面向对象的基本概念(续续)类:类:类用于表示某些对象的共同特征类用于表示某些对象的共

    45、同特征(属性和操作属性和操作),对象是类的实例。对象是类的实例。继承关系:继承关系:它是现实世界中遗传关系的直接模拟,可它是现实世界中遗传关系的直接模拟,可以来表示类之间的内在联系以及对属性和操作的共享。以来表示类之间的内在联系以及对属性和操作的共享。子类可以沿用父类的某些特征,同时子类也可以具有子类可以沿用父类的某些特征,同时子类也可以具有自己独立的属性和操作。自己独立的属性和操作。整体整体-部分关系:部分关系:分为聚合和组合。聚合表示对象之分为聚合和组合。聚合表示对象之间松散整体间松散整体-部分关系,例如,计算和外设置之间的部分关系,例如,计算和外设置之间的关系。组合表示对象之间强的整体关

    46、系。组合表示对象之间强的整体-部分关系,例如,部分关系,例如,树和树叶之间的关系。树和树叶之间的关系。消息:消息:消息传递是对象与其外部世界相互关联的唯一消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其他对象发送消息以请求服务,也途径。对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。操作,从而服务于其他对象。54软件工程概述软件工程概述例:例:下面是某企业的两张客户订单,如何采用面向对象的下面是某企业的两张客户订单,如何采用面向对象的概念来描述它们?概念来描述它们?55软件工

    47、程概述软件工程概述n统一过程统一过程(Unified Process,UP)UP的历史的历史Rational统一过程统一过程(RUP)是是IBMUP的商业版本。的商业版本。RUP是是UP的扩展。的扩展。56软件工程概述软件工程概述需求需求分析分析设计设计实现实现测试测试迭代迭代评估评估计划计划项目相项目相关关其他活其他活动动UP中中5个核心工作流个核心工作流其它工作流其它工作流需求需求: 捕获系统应该捕获系统应该做什么做什么分析分析: 精化和结构化精化和结构化需求需求设计设计: 在系统架构内在系统架构内实现需求实现需求实现实现: 构造软件构造软件测试测试: 验证实现是否验证实现是否如期望那样工

    48、作如期望那样工作57 软件工程概述软件工程概述生命周期生命周期目标目标生命周生命周期期架构架构初始运作初始运作功能功能 产品产品 发布发布初始初始 细化细化构造构造 移交移交 迭迭代代1迭迭代代2迭迭代代3迭迭代代4迭迭代代5迭迭代代6R A DI T里程碑里程碑阶段阶段迭代迭代5个核心个核心工作流工作流建立可行性;建立可行性;创建业务用例;创建业务用例;捕获基本需求;捕获基本需求;识别关键风险。识别关键风险。创建可执行的架构基创建可执行的架构基线;精化风险评估;线;精化风险评估;定义质量属性;捕获定义质量属性;捕获80%的功能性需求用的功能性需求用例;为构造阶段创建例;为构造阶段创建详细计划

    49、详细计划完成所有的完成所有的需求、分析需求、分析和设计。和设计。修复缺陷;为用户场修复缺陷;为用户场所地准备新软件;在所地准备新软件;在用户场所地裁减软件;用户场所地裁减软件;如果不可预见的问题如果不可预见的问题出现,修改软件;创出现,修改软件;创作用户手册和其它文作用户手册和其它文档;提供用户咨询;档;提供用户咨询;产生项目后评审产生项目后评审R A D I T目标目标R A D I TR A DI TR AR A DII T 焦点焦点UP的结构的结构58软件工程概述软件工程概述第第1次次迭代迭代第第2次次迭代迭代第第n-1次迭代次迭代初始初始细化细化构造构造移交移交需求需求第第n次次迭代迭

    50、代分析分析设计设计实现实现测试测试随着项目按随着项目按UP的阶段进展,每个核心工作流的工作量发生变化的阶段进展,每个核心工作流的工作量发生变化59软件工程概述软件工程概述n转换模型转换模型(Transformation Model)与需求比与需求比较后修正较后修正形式化形式化规格说明规格说明形式化开发记录形式化开发记录变换变换n变换变换2变换变换1测测试试系统系统需求需求目标目标系统系统60软件工程概述软件工程概述n模型驱动的软件开发模型模型驱动的软件开发模型计算无关模型计算无关模型(CIM)平台独立模型平台独立模型(PIM)代码代码 (Code) 平台相关模型平台相关模型(PSM)CIM是非

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:软件工程.ppt
    链接地址:https://www.163wenku.com/p-2045847.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库