《0.软件工程概述.ppt》由会员分享,可在线阅读,更多相关《0.软件工程概述.ppt(88页珍藏版)》请在优知文库上搜索。
1、Chapter 0Chapter 0什么是软件工程?(软件学:关于软件的科学)Software Engineering A Practitioners Approach Seventh EditionPage 1.2ContentsContents 0 0 什么是软件?什么是软件? 1.1 什么是软件工程? 1.2 软件工程取得了哪些进展? 1.3 什么是好的软件? 1.4 软件工程设计的人员? 1.5 系统的方法 1.6 工程的方法 1.7 开发团队的成员 1.8 软件工程发生了多大的变化? 1.9 信息系统的例子 1.10 实时系统的例子 1.11 本章对单个开发人员的意义Software
2、 Engineering A Practitioners Approach Seventh EditionPage 1.3本章概述本章概述 软件的含义 软件工程的含义 软件工程的发展历程 “好的软件”的含义 为什么系统的方法是重要的 自20世纪70年代以来,软件工程是如何变革的. 注意理解以下问题: 什么是软件工程 为什么需要软件工程(产生背景) 软件工程需要解决那些问题 软件工程涉及那些方面内容Software Engineering A Practitioners Approach Seventh EditionPage 1.40 0 什么是软件什么是软件? ? 软件软件(英语:Softw
3、areSoftware)是一系列按照特定顺序组织的计算机数据和指令的集合。 一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中介软件(中间件)。 其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。 而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。Software Engineering A Practitioners Approach Seventh EditionPage 1.50 0 什么是软件什么是软件? ? 软件并不只是包括可以在计算机上运行的计算机程序,与这些计算机软件并不只是包括可以在计算机上运行的计算机程序,与这些
4、计算机程序相关的文档,一般也被认为是软件的一部分。程序相关的文档,一般也被认为是软件的一部分。SoftwareSoftware)ProgramProgram)DataData)DocumentDocument) 软件被应用于世界的各个领域,对人们的生活和工作都产软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。生了深远的影响。Software Engineering A Practitioners Approach Seventh EditionPage 1.6 早期程序员们使用机器语言来进行编程运算;随早期程序员们使用机器语言来进行编程运算;随着编译技术的出现,人们设计了许多
5、更高级别的着编译技术的出现,人们设计了许多更高级别的语言;语言; 例如:汇编语言,例如:汇编语言,C C语言,语言,PascalPascal语言,语言,JavaJava语言,语言,C#C#语言等。语言等。0 0 软件软件: :编程语言编程语言Software Engineering A Practitioners Approach Seventh EditionPage 1.7 软件可以由以下这些编程语言写成:软件可以由以下这些编程语言写成: 低阶语言:组合语言,为硬件间各装置沟通的桥梁软件,又低阶语言:组合语言,为硬件间各装置沟通的桥梁软件,又称为固件(例如称为固件(例如BIOSBIOS,汇
6、编语言)。,汇编语言)。 高阶语言:高阶语言:BasicBasic、C C语言、语言、C+C+语言语言等,为编辑操作系等,为编辑操作系统和应用软件的语言。统和应用软件的语言。 脚本语言:例如脚本语言:例如 Shell Script Shell Script、JavascriptJavascript、PHPPHP、PythonPython。Software Engineering A Practitioners Approach Seventh EditionPage 1.8 据统计,全世界的高级语言起码有几千种,但从可据统计,全世界的高级语言起码有几千种,但从可计算性的角度看,它们的计算能力都
7、等价于图灵机计算性的角度看,它们的计算能力都等价于图灵机。 已经证明,一个计算机语言,只要除了已经证明,一个计算机语言,只要除了赋值语句赋值语句之之外,还包括外,还包括顺序语句顺序语句,条件语句条件语句和和循环语句循环语句,它的,它的计算能力即相当于图灵机。计算能力即相当于图灵机。 这里当然要排除其他这里当然要排除其他技术因素的影响,如程序长度,变量个数,数据精技术因素的影响,如程序长度,变量个数,数据精度等度等。 Software Engineering A Practitioners Approach Seventh EditionPage 1.90 0 软件软件: :系统软件系统软件 系
8、统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件。 系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 1操作系统操作系统是一管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。 2支撑软件支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境软件开发环境(SDE)。
9、它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司.NET Framework的等。 包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。Software Engineering A Practitioners Approach Seventh EditionPage 1.100 0 软件软件: :应用软件应用软件-为了某种特定的用途而被开发的软件为了某种特定的用途而被开发的软件它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集
10、合,比如微它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的软的OfficeOffice软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。较常见的有较常见的有: :文书处理软件如文书处理软件如WPS OfficeWPS Office、Microsoft OfficeMicrosoft Office、LibreOfficeLibreOffice信息管理软件信息管理软件 如如Oracle DatabaseOracle Database数据库数据库
11、辅助设计软件辅助设计软件 如如AutoCADAutoCAD、开目开目CADCAD实时控制软件实时控制软件P2PP2P流媒体软件流媒体软件 PPLive PPLive、PPStreamPPStream、BanacastBanacast、UUSeeUUSee、QQliveQQlive图形图像软件图形图像软件 Adobe Photoshop Adobe Photoshop、CorelDRAWCorelDRAW、painterpainter、MAYAMAYA、3DS MAX3DS MAX、lightwavelightwave后期合成软件后期合成软件 after effects after effect
12、s、combustioncombustion、digital fusiondigital fusion、shakeshake、flameflame网页浏览软件网页浏览软件 Internet Explorer Internet Explorer、FirefoxFirefox、ChromeChrome、SafariSafari、OperaOpera、KonquerorKonqueror网络通讯软件网络通讯软件 ICQ ICQ、Windows Live MessengerWindows Live Messenger、SkypeSkype、Yahoo! MessengerYahoo! Messenge
13、r、QQQQ、AOL Instant MessengerAOL Instant Messenger影音播放软件影音播放软件 MPlayer MPlayer、RealPlayerRealPlayer、WMPWMP、暴风影音、风雷影音、暴风影音、风雷影音音乐播放软件音乐播放软件 Winamp Winamp、Foobar2000Foobar2000、千千静听、酷我音乐、酷狗音乐、千千静听、酷我音乐、酷狗音乐下载管理软件下载管理软件 Orbit Orbit、迅雷、快车、迅雷、快车、QQQQ旋风旋风电子邮件客户端电子邮件客户端 Windows Live MailWindows Live Mail、Out
14、look ExpressOutlook Express、FoxmailFoxmail、ThunderBirdThunderBird、DreammailDreammail、KMailKMail资讯安全软件资讯安全软件 360 360安全卫士安全卫士 360 360杀毒杀毒 德国小红伞、卡巴斯基、诺顿防毒、瑞星杀毒、金山毒霸、德国小红伞、卡巴斯基、诺顿防毒、瑞星杀毒、金山毒霸、虚拟机软件虚拟机软件 VMware VMware、VirtualBoxVirtualBox、Microsoft Virtual PCMicrosoft Virtual PCSoftware Engineering A Pra
15、ctitioners Approach Seventh EditionPage 1.110 0 软件软件: :软件工程师软件工程师 一般指从事软件开发职业的人。软件工程师10余年来一直占据高薪职业排行榜的前列,作为高科技行业的代表,技术含量很高,职位的争夺也异常激烈。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软件工作。Software Engineering A Practitioners Approach Seventh EditionPage 1.12软件发展的历史回顾软件
16、发展的历史回顾 现在的计算机的数学理论基础是由计算机的开山鼻现在的计算机的数学理论基础是由计算机的开山鼻祖,大名鼎鼎的图灵于祖,大名鼎鼎的图灵于19371937年提出的年提出的图灵机模型图灵机模型。 图灵确定了计算机中的图灵确定了计算机中的可计算性可计算性(calculabilitycalculability)理论)理论:即一个实际问题是否可以使用计算机来解决即一个实际问题是否可以使用计算机来解决一一个可以使用计算机解决的问题应该被定义为个可以使用计算机解决的问题应该被定义为“可以可以在有限步骤内被解决的问题在有限步骤内被解决的问题” ” Software Engineering A Practitioners Approach Seventh EditionPage 1.13可计算性理论可计算性理论 可计算性理论可计算性理论是计算机科学的理论基础之一。在是计算机科学的理论基础之一。在3030年代图灵年代图灵对存在通用图灵机的逻辑证明表明,制造出能编程序来作出对存在通用图灵机的逻辑证明表明,制造出能编程序来作出任何计算的通用计算机是可能的,这影响了任何计算的通用计算机是可能的,这影响了