软件工程.ppt
- 【下载声明】
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+ 屏蔽应用软件和开发屏蔽应用软件和开发平台
展开阅读全文