软件工程课件:1%-第01章(复旦大学) 概论.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程课件:1%-第01章(复旦大学) 概论.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程课件:1%-第01章复旦大学 概论 软件工程 课件 01 复旦大学
- 资源描述:
-
1、复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程2/154赵文耘赵文耘 教授、博士生导师教授、博士生导师 复旦大学复旦大学 软件工程实验室主任软件工程实验室主任 中国计算机学会软件工程专业委员会中国计算机学会软件工程专业委员会 副主任副主任 中国软件行业协会软件工程分会中国软件行业协会软件工程分会 副理事长副理事长 上海复旦天翼计算机有限公司上海复旦天翼计算机有限公司 总经理总经理复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程3/154 计算机专业应该学到什么,有什么用计算机专业应该学到什么,有什么用? 在大学里能够学到什么在大学里
2、能够学到什么?学习能力学习能力? 什么是一个好专业什么是一个好专业? 中国中国Vs美国美国 中国中国Vs印度印度 中国中国Vs日本日本? 软件工程课程的目标软件工程课程的目标复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程4/154复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程5/154 项目和作业项目和作业 40 一个项目文档和练习一个项目文档和练习 课堂练习课堂练习 20 大考大考 40 总分总分 排序后按排序后按30(A/A-)类推类推复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程6/154实用
3、软件工程(第二版)实用软件工程(第二版) 郑人杰、殷人昆、陶永雷,清华大学出版社,郑人杰、殷人昆、陶永雷,清华大学出版社,1997年年软件工程(第二版)软件工程(第二版) 齐治昌、谭庆平、宁洪,高等教育出版社,齐治昌、谭庆平、宁洪,高等教育出版社,2004年年软件系统开发技术(修订版)软件系统开发技术(修订版) 潘锦平、施小英、姚天昉,西安电子科技大学出版社,潘锦平、施小英、姚天昉,西安电子科技大学出版社,1997年年计算机科学技术百科全书(第二版)计算机科学技术百科全书(第二版) 张效强主编,清华大学出版社,张效强主编,清华大学出版社,2005年年Software Engineering A
4、 Practitioners Approach (Sixth Edition) , Roger S Pressman,2005年年 (中文版)郑人杰等译,机械工业出版社,(中文版)郑人杰等译,机械工业出版社,2007年年复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程7/154 计算机软件计算机软件 软件工程软件工程 软件过程软件过程 软件过程模型软件过程模型 敏捷软件开发敏捷软件开发 CASE工具与环境工具与环境复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程8/154 软件工程软件工程 软件过程软件过程 软件过程模型软件过程模型
5、敏捷软件开发敏捷软件开发 CASE工具与环境工具与环境复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程9/154 计算机软件指计算机系统中的计算机软件指计算机系统中的程序及程序及其文档其文档 程序是计算任务的处理对象和处理规则的描述 计算任务:任何以计算机为处理工具的任务计算任务:任何以计算机为处理工具的任务 处理对象:数据(如数据、文字、图形、图像、声音等,处理对象:数据(如数据、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及有关的含义)它们只是表示,而无含义)或信息(数据及有关的含义) 处理规则一般指处理的动作和步骤。程序必须装入计算机处理规
6、则一般指处理的动作和步骤。程序必须装入计算机内才能工作内才能工作 文档是为了便于了解程序所需的阐明性资料,文档一般是给人看的,不一定装入计算机复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程10/154 1946-1956年 从计算机问世到实用的高级程序语言出现前存储容量比较小,运算速度比较慢存储容量比较小,运算速度比较慢采用个体工作方式采用个体工作方式, ,用低级语言编写程序用低级语言编写程序应用领域主要是以数值数据处理为主的科学应用领域主要是以数值数据处理为主的科学计算,计算,其特点是输入、输出量较小其特点是输入、输出量较小衡量程序质量的标准主要是功效,即运行
7、时间省、衡量程序质量的标准主要是功效,即运行时间省、占用内存小占用内存小主要研究内容是科学计算程序、服务性程序和程主要研究内容是科学计算程序、服务性程序和程序库,研究对象是顺序程序序库,研究对象是顺序程序复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程11/154 1956-1968年 从实用的高级程序语言出现到软件工程出现前存储器容量大,外围设备得到迅速发展,出现存储器容量大,外围设备得到迅速发展,出现了高级程序设计语言了高级程序设计语言应用领域包括应用领域包括数据处理(非数值数据),其特数据处理(非数值数据),其特点是计算量不大,但输入、输出量却较大点是计算量
8、不大,但输入、输出量却较大高速主机与低速外围设备的矛盾突出,出现了高速主机与低速外围设备的矛盾突出,出现了操作系统、并发程序、数据库及其管理系统操作系统、并发程序、数据库及其管理系统2020世纪世纪6060年代初提出了软件一词,开始认识到年代初提出了软件一词,开始认识到文档的重要性文档的重要性研究高级程序设计语言、编译程序、操作系统、研究高级程序设计语言、编译程序、操作系统、支持编程的工具及各种应用软件支持编程的工具及各种应用软件工作方式逐步从个体方式转向合作方式工作方式逐步从个体方式转向合作方式出现软件危机出现软件危机复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程
9、课程12/154 1968年-至今 从软件工程出现到现在硬件向巨型机和微型机二个方向发展,出现了硬件向巨型机和微型机二个方向发展,出现了计算机网络,软件方面提出了软件工程,出现计算机网络,软件方面提出了软件工程,出现了了“计算机辅助软件工程计算机辅助软件工程”(CASE)计算机的应用领域渗透到各个业务领域,出现计算机的应用领域渗透到各个业务领域,出现了嵌入式应用,其特点是受制于它所嵌入的宿了嵌入式应用,其特点是受制于它所嵌入的宿主系统主系统开发方式逐步由个体合作方式转向工程方式开发方式逐步由个体合作方式转向工程方式软件工程方面的研究主要包括软件开发模型、软件工程方面的研究主要包括软件开发模型、
10、软件开发方法及技术、软件工具与环境、软件软件开发方法及技术、软件工具与环境、软件过程、软件自动化系统等过程、软件自动化系统等软件方面研究以智能化、自动化、集成化、并软件方面研究以智能化、自动化、集成化、并行化、以及自然化为标志的软件开发新技术行化、以及自然化为标志的软件开发新技术复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程13/154 许多软件项目不能满足客户的要求 许多软件项目超出预算和时间安排复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程14/154 对软件开发成本和进度的估计常常很不正确对软件开发成本和进度的估计常常很不正
11、确 用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生软件系统不满意的现象经常发生 软件产品的质量往往靠不住软件产品的质量往往靠不住 软件常常是不可维护的软件常常是不可维护的 软件通常没有适当的文档资料软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势速普及深入的趋势复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程15/154 软件是逻辑产品,开发进度、成本难以估计软件是逻辑产
12、品,开发进度、成本难以估计 缺乏或不完整、不一致的文档给维护带来困难缺乏或不完整、不一致的文档给维护带来困难 用户对软件需求的描述往往不够精确,有遗漏,有用户对软件需求的描述往往不够精确,有遗漏,有二义二义 软件开发人员对需求的理解与用户的本来愿望有差软件开发人员对需求的理解与用户的本来愿望有差异异 大型软件项目需多人协同完成,缺乏管理经验大型软件项目需多人协同完成,缺乏管理经验 开发人员不能有效地、独立自主地处理大型软件的开发人员不能有效地、独立自主地处理大型软件的全部关系全部关系 缺乏有力的方法学和工具的支持缺乏有力的方法学和工具的支持 软件项目的特殊性和人类智力的局限性软件项目的特殊性和
13、人类智力的局限性复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程16/154 消除消除 错误的概念和做法错误的概念和做法 推广推广使用成功的开发技术和方法使用成功的开发技术和方法 使用使用软件工具和软件工程支持环境软件工具和软件工程支持环境 加强软件加强软件管理管理复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程17/154 软件是一种逻辑实体,而不是有形的系软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地统元件,其开发成本和进度难以准确地估算估算 软件是被开发的或被设计的,它没有明软件是被开发的或被设计的,它没有
14、明显的制造过程,一旦开发成功,只需复显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大制即可,但其维护的工作量大 软件的使用没有硬件那样的机械磨损和软件的使用没有硬件那样的机械磨损和老化问题老化问题复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程18/154复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程19/154其它特点:其它特点: 软件的开发和运行常受到计算机硬件软件的开发和运行常受到计算机硬件的限制,的限制,对计算机硬件有着不同程度对计算机硬件有着不同程度的依赖性的依赖性 软件的开发至今软件的开发至今尚未完全实现自动
15、化尚未完全实现自动化 软件成本相当昂贵软件成本相当昂贵 相当多的软件工作相当多的软件工作涉及到社会因素涉及到社会因素复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程20/154复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程21/154 系统软件系统软件:属于计算机系统中最靠近硬件的一层,:属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。如操作系统、编译程序等。体的应用领域无关。如操作系统、编译程序等。 支持软件支持软件:支持软件的开发和维护的软件
16、。如数:支持软件的开发和维护的软件。如数据库管理系统、网络软件、软件开发环境等。据库管理系统、网络软件、软件开发环境等。 应用软件应用软件:特定应用领域专用的软件。如实时软:特定应用领域专用的软件。如实时软件、嵌入式软件、科学和工程计算软件、事务处件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等。理软件、人工智能软件等。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程22/154 按软件工作方式划分: 实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件 按软件服务对象的范围划分: 项目软件项目软件 产品软件产品软
17、件 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程23/154 按使用的频度进行划分: 一次使用一次使用 频繁使用频繁使用 按软件失效的影响进行划分: 高可靠性软件高可靠性软件 一般可靠性软件一般可靠性软件复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程25/154 软件语言是用于书写计算机软件的语言。软件语言是用于书写计算机软件的语言。 它主要包括:它主要包括: 需求定义语言 功能性语言 设计性语言 实现性语言(即程序设计语言) 文档语言复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程26/154需求
18、定义语言用来书写软件需求定义。 软件需求定义是软件功能需求和非功能需求的定义性描述。软件功能需求刻画软件“做什么”,软件非功能需求刻画诸如功能性限制、设计限制、环境描述、数据与通信规程及项目管理等典型的需求定义语言有PSL语言(Problem Statement Language问题陈述语言)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程27/154功能性语言用来书写软件功能规约(functional specification) 软件功能规约是软件功能的严格而完整的陈述。通常它只刻画软件系统“做什么”的外部功能,而不涉及系统“如何做”的内部算法。 典型的功能性
19、语言有广谱语言、Z语言。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程28/154设计性语言用来书写软件设计规约(design specification) 软件设计规约是软件设计的严格而完整的陈述。一方面,它是软件功能规约的算法性细化,刻画软件“如何做”的内部算法,另一方面,它是软件实现的依据。典型的设计性语言有PDL语言(Program Design Language)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程29/154 实现性语言用来书写计算机程序 实现性语言也称编程语言或程序设计语言(programming lang
20、uage)程序设计语言可按语言的级别、对使用者的要求、应用范围、使用方式、成分性质等多种角度进行分类 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程30/154 按语言级别分:低级语言和高级语言 低级语言是与特定计算机体系结构密切相关的程序设计语言,如机器语言、汇编语言。其特点是与机器有关,功效高,但使用复杂,开发费时,难维护。 高级语言是不反映特定计算机体系结构的程序设计语言,它的表示方法比低级语言更接近于待解问题的表示方法。其特点是在一定程度上与具体机器无关,易学、易用、易维护。但高级语言程序经编译后产生的目标程序的功效往往较低。复旦大学计算机科学与工程系复
21、旦大学计算机科学与工程系 软件工程课程软件工程课程31/154 按用户要求分:过程式语言和非过程式语言 过程式语言(procedural language)是通过指明一列可执行的运算及运算次序来描述计算过程的程序设计语言。如FORTRAN、COBOL、C等。 非过程式语言(nonprocedural language )是不显式指明处理过程细节的程序设计语言。在这种语言中尽量引进各种抽象度较高的非过程性描述手段,以期做到在程序中增加“做什么”的描述成分,减少“如何做”的细节描述。如第四代语言(4GL)、函数式语言、逻辑式语言。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软
22、件工程课程32/154也可称:命令式语言和申述式语言 命令式语言(imperative language)即过程式语言。 申述式语言(declarative language )是着重描述要处理什么,而非描述如何处理的语言。申述式语言程序是关于问题解的约束陈述,这些约束迫使含于实现中的算法处理机制生成一个解或一组解。如函数式语言、逻辑式语言。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程33/154 函数式语言(functional programming language)中函数是构造程序的基本成分,它提供一些设施用于构造更为复杂的函数。程序人员根据提出的问题
23、去定义求解函数(即主程序),其中可能包含一些辅助函数。如Lisp语言。 逻辑式语言(logic programming language)的基本运算单位是谓词。谓词定义了变元间的逻辑关系。例如,Prolog语言的基本形式是Horn子句,其程序围绕着某一主题的事实、规则和询问三类语句组成。这三类语句分别用来陈述事实、定义规则和提出问题。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程34/154 按应用范围分:通用语言和专用语言 通用语言指目标非单一的语言,如FORTRAN、COBOL、C等。 专用语言指目标单一的语言,如自动数控程序APT。复旦大学计算机科学与工程
24、系复旦大学计算机科学与工程系 软件工程课程软件工程课程35/154 按使用方式分:交互式语言和非交互式语言 交互式语言指具有反映人机交互作用的语言,如BASIC。 非交互式语言指不反映人机交互作用的语言,如FORTRAN、COBOL。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程36/154 按成分性质分:顺序语言、并发语言、分布语言 顺序语言指只含顺序成分的语言,如FORTRAN、C。 并发语言指含有并发成分的语言,如Modula、Ada、并发Pascal。 分布语言指考虑到分布计算要求的语言,如Modula。复旦大学计算机科学与工程系复旦大学计算机科学与工程
25、系 软件工程课程软件工程课程37/154 文档语言用来书写软件文档。 计算机软件文档是计算机开发、维护和使用过程的档案资料和对软件本身的阐述性资料。 通常用自然语言或半形式化语言书写。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程38/154 计算机软件计算机软件 软件过程软件过程 软件过程模型软件过程模型 敏捷软件开发敏捷软件开发 CASE工具与环境工具与环境复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程39/1541968年NATO(北大西洋公约组织)会议上首次提出 Fritz Bauer:软件工程是为了经济地获得可靠的软件工
展开阅读全文