软件开发流程实训教程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件开发流程实训教程.ppt》由会员分享,可在线阅读,更多相关《软件开发流程实训教程.ppt(473页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件职业技术学院“十一五”规划教材软件开发流程实训教程杜文洁 景秀丽 主编第第1 1章章 软件开发项目的前期准备软件开发项目的前期准备【本章引言本章引言】软件开发在整个计算机软件的生存周期中是最重要的一软件开发在整个计算机软件的生存周期中是最重要的一环。如何高效、高质的开发成功的软件产品一直是软件环。如何高效、高质的开发成功的软件产品一直是软件工程师们一直追求的目标。经过半个多世纪的研究与探工程师们一直追求的目标。经过半个多世纪的研究与探索,人们在计算软件开发领域已经积累了丰富的经验与索,人们在计算软件开发领域已经积累了丰富的经验与成果。成果。【教学目标教学目标】掌握计算机软件的概念与计算机软
2、件的基本分类;掌握计算机软件的概念与计算机软件的基本分类;掌握软件生存周期划分与相关档案掌握软件生存周期划分与相关档案的内容;的内容;掌握常用软件开发模型;掌握常用软件开发模型;掌握计算机软件开发方法。掌握计算机软件开发方法。第一章第一章 软件开发项目的前期准备软件开发项目的前期准备 1.1 计算机软件概述计算机软件概述 1.2 软件的生存周期软件的生存周期 1.3 软件开发常用模型软件开发常用模型 1.4 软件开发方法和软件开发工具软件开发方法和软件开发工具 1.1 计算机软件概述计算机软件概述 1.1.1 计算机软件概念计算机软件概念 1.1.2 软件的分类软件的分类 1.1.3 软件工程
3、的历史及发展软件工程的历史及发展 1.1 计算机软件概述计算机软件概述 软件软件是一个完整的计算机系统中与是一个完整的计算机系统中与硬件相互依存的另一部分,它是包括硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图是与程序开发,维护和使用有关的图文材料。文材料。1.1.1 计算机软件概念计算机软件概念 软件软件是计算机系统中
4、与硬件相互依存的另一部是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整分,它是包括程序,数据及其相关文档的完整集合。集合。计算机软件计算机软件是指计算机程序以及解释和指导使是指计算机程序以及解释和指导使用程序的文档的总和。计算机程序包括源程序用程序的文档的总和。计算机程序包括源程序和目标程序。和目标程序。1.1.1 计算机软件概念计算机软件概念源程序源程序是指用高级语言或汇编语言编写的是指用高级语言或汇编语言编写的程序,目标程序是指源程序经编译或解释程序,目标程序是指源程序经编译或解释加工以后,语言编写的程序,目标程序是加工以后,语言编写的程序,目标程序是指源程序经
5、编译或解释加工以后可以由计指源程序经编译或解释加工以后可以由计算机直接执行的程序。算机直接执行的程序。文档文档是指用自然语言或者形式化语言所编是指用自然语言或者形式化语言所编写的文字资料和图表,用来描述程序的内写的文字资料和图表,用来描述程序的内容、组成、设计、功能规格、开发情况、容、组成、设计、功能规格、开发情况、测试结果及使用方法。测试结果及使用方法。1.1.1 计算机软件概念计算机软件概念软件开发的特点是:软件开发的特点是:(1)由于软件并不是实际存在的物理形态由于软件并不是实际存在的物理形态 它是一种抽象的逻辑过程,是一种逻辑实体,它是一种抽象的逻辑过程,是一种逻辑实体,这个特点使它与
6、其它工程对象有着明显的差异。这个特点使它与其它工程对象有着明显的差异。人们可以把它记录在纸上、内存、和硬盘、光人们可以把它记录在纸上、内存、和硬盘、光盘上,但却无法看到软件本身的形态,必须通盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功过观察、分析、思考、判断,才能了解它的功能、性能等特性。能、性能等特性。1.1.1 计算机软件概念计算机软件概念 (2)(2)软件的生产过程也非常特殊,同我们传软件的生产过程也非常特殊,同我们传统意义里的普通工厂里的加工不同的是,软件统意义里的普通工厂里的加工不同的是,软件更像是一种纯粹的脑力劳动,同第一个特点一更像是一种纯粹的
7、脑力劳动,同第一个特点一样它没有明显的物理加工过程。样它没有明显的物理加工过程。(3)(3)由于软件产品其实是一种抽象的逻辑存由于软件产品其实是一种抽象的逻辑存在,所以在软件的运行和使用期间,没有硬件在,所以在软件的运行和使用期间,没有硬件那样的机械磨损,设施老化问题。那样的机械磨损,设施老化问题。1.1.1 计算机软件概念计算机软件概念 任何物理设备在运行和使用中,都有一个大致趋任何物理设备在运行和使用中,都有一个大致趋势相同的失效率曲线。即为如图势相同的失效率曲线。即为如图1-1(a)1-1(a)所示的型曲所示的型曲线(即浴盆曲线)。在这个曲线里边我们可以看出随线(即浴盆曲线)。在这个曲线
8、里边我们可以看出随着使用时间的增加设备的失效率主要是由磨损用坏造着使用时间的增加设备的失效率主要是由磨损用坏造成的。而软件的情况与此不同,由于其固有的特性,成的。而软件的情况与此不同,由于其固有的特性,本身不存在磨损和老化问题,即便是他的载体出现本身不存在磨损和老化问题,即便是他的载体出现型曲线,软件本身仍然可以便利的移到另一台载体上型曲线,软件本身仍然可以便利的移到另一台载体上边。然而同物理设备不同的是它存在退化问题,说着边。然而同物理设备不同的是它存在退化问题,说着时间的增加,软件本身会出现落伍的现象,因此必须时间的增加,软件本身会出现落伍的现象,因此必须要对软件本身进行一次或多次修改(维
9、护),要对软件本身进行一次或多次修改(维护),如图如图1-1(b)1-1(b)所示。而这些修改又不可避免的引入所示。而这些修改又不可避免的引入错误,导致软件失效率升高,从而似的软件退化。当错误,导致软件失效率升高,从而似的软件退化。当修改的成本变得难以接受时,软件就被抛弃。修改的成本变得难以接受时,软件就被抛弃。1.1.1 计算机软件概念计算机软件概念图图1-1 1-1 计算机软件失效率曲线计算机软件失效率曲线1.1.1 计算机软件概念计算机软件概念 (4)(4)软件的开发和运行不是完全由软软件的开发和运行不是完全由软件本身的技术实现的,它常常还受到件本身的技术实现的,它常常还受到计算机系统的
10、限制,对计算机系统有计算机系统的限制,对计算机系统有着不同程度的依赖性。软件对硬件和着不同程度的依赖性。软件对硬件和环境有着不同程度的依赖性。这导致环境有着不同程度的依赖性。这导致了软件移植的问题了软件移植的问题1.1.1 计算机软件概念计算机软件概念 (5)(5)软件本身是一件结构非常复杂的产品。软件本身是一件结构非常复杂的产品。软件的复杂性来自于两个方面:软件的复杂性来自于两个方面:一是来自它所反映的实际问题的复杂性(即需要解一是来自它所反映的实际问题的复杂性(即需要解决问题的复杂性)决问题的复杂性)二是来自软件本身设计程序逻辑结构的复杂性二是来自软件本身设计程序逻辑结构的复杂性 1.1.
11、1 计算机软件概念计算机软件概念(6)(6)软件的成本问题。软件的成本问题。软件开发成本主要指软件开发过程中所软件开发成本主要指软件开发过程中所花费的工作量及相应的代价。花费的工作量及相应的代价。另外,软件也没有一个明显的制造过程,另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费它的开发成本是以一次性开发过程所花费的代价来计算的。软件的研制工作需要投的代价来计算的。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。它的成本是比较高的。1.1.1 计算机软件概念计算机软件概念 (7)(7)软件开发出来时要给软件
12、开发出来时要给“人人”使用的,使用的,所以软件不可避免地要具备人的社会属所以软件不可避免地要具备人的社会属性。性。相当多的软件工作涉及到社会因素。许多相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管理方软件的开发和运行涉及机构、体制及管理方式等问题,甚至涉及到人的观念和人们的心式等问题,甚至涉及到人的观念和人们的心理。这些问题都将直接影响项目的成败。理。这些问题都将直接影响项目的成败。1.1.2 软件的分类软件的分类软件软件是计算机的灵魂,没有软件的是计算机的灵魂,没有软件的计算机就如同没有磁带的录音机和没计算机就如同没有磁带的录音机和没有录像带的录像机一样,与废铁没什有
13、录像带的录像机一样,与废铁没什么差别。么差别。它使计算机具有非凡的灵活它使计算机具有非凡的灵活性和通用性。性和通用性。也正是这一原因,决定了计算机的任也正是这一原因,决定了计算机的任何动作都离不开由人安排的指令。何动作都离不开由人安排的指令。1.1.2 软件的分类软件的分类 1.1.按软件的功能进行划分:按软件的功能进行划分:一般把软件按功能分为两大类:应一般把软件按功能分为两大类:应用软件和系统软件。用软件和系统软件。(1 1)应用软件)应用软件(2 2)系统软件)系统软件 1.1.2 软件的分类软件的分类(1 1)应用软件)应用软件 应用软件是专门为某一应用目的而编制的软件,应用软件是专门
14、为某一应用目的而编制的软件,较常见的有以下几种:较常见的有以下几种:l文字处理软件文字处理软件 用于输入、存贮、修改、编辑、打印文字材料等,例用于输入、存贮、修改、编辑、打印文字材料等,例如如WORDWORD、WPSWPS等;等;l信息管理软件信息管理软件 用于输入、存贮、修改、检索各种信息;用于输入、存贮、修改、检索各种信息;l辅助设计软件辅助设计软件用于高效地绘制、修改工程图纸,进行设计中的常规用于高效地绘制、修改工程图纸,进行设计中的常规算,帮助人寻求好设计方案;算,帮助人寻求好设计方案;l实时控制软件实时控制软件用于随时搜集生产装置、飞行器等的运行状态信息,用于随时搜集生产装置、飞行器
15、等的运行状态信息,以此为依据按预定的方案实施自动或半自动控制,以此为依据按预定的方案实施自动或半自动控制,安全、准确地完成任务。安全、准确地完成任务。1.1.2 软件的分类软件的分类(2 2)系统软件)系统软件 代表性的系统软件有:代表性的系统软件有:l操作系统操作系统管理计算机的硬件设备,使应用软件能方便、高效地管理计算机的硬件设备,使应用软件能方便、高效地使用这些设备。在微机上常见的有:使用这些设备。在微机上常见的有:DOSDOS、WINDOWSWINDOWS、UNIXUNIX、OS/2OS/2等;等;l数据库管理系统数据库管理系统有组织地、动态地存贮大量数据,使人们能方便、高有组织地、动
16、态地存贮大量数据,使人们能方便、高效地使用这些数据。现在比较流行的数据库有效地使用这些数据。现在比较流行的数据库有FoxProFoxPro、DB-2DB-2、AccessAccess、SQL-serverSQL-server等;等;l编译软件编译软件CPUCPU执行每一条指令都只完成一项十分简单的操作,一执行每一条指令都只完成一项十分简单的操作,一个系统软件或应用软件,要由成千上万甚至上亿条指个系统软件或应用软件,要由成千上万甚至上亿条指令组合而成。令组合而成。1.1.2 软件的分类软件的分类 2.2.按软件规模进行划分:按软件规模进行划分:根据所完成任务的不同以及开发任根据所完成任务的不同以
17、及开发任务、投入资金等因素,软件也可以按务、投入资金等因素,软件也可以按照规模来划分。照规模来划分。(1 1)微型软件:)微型软件:这类软件一般只需要一这类软件一般只需要一个人几天即可完成,软件只有几个人几天即可完成,软件只有几K K到到几十几十K K大小。由于规模很小,软件测大小。由于规模很小,软件测试也极为容易;试也极为容易;1.1.2 软件的分类软件的分类(2 2)小型软件:)小型软件:这类软件一般由十人以内在半年这类软件一般由十人以内在半年内完成,开发前需要进行完整的开发设计。软内完成,开发前需要进行完整的开发设计。软件一般有几百件一般有几百K K到十几到十几M M。完成时需要进行软件
18、。完成时需要进行软件测试工作,但测试工作相对比较容易;测试工作,但测试工作相对比较容易;(3 3)中型软件:)中型软件:中型软件一般由十几个人甚至几中型软件一般由十几个人甚至几十个人开发,开发工作比较复杂,时限为半年十个人开发,开发工作比较复杂,时限为半年至一年。软件大小一般有几十至一年。软件大小一般有几十M M。对于这种规模。对于这种规模的软件软件测试十分必要。要进行严格的可行的软件软件测试十分必要。要进行严格的可行性分析,开发设计等工作;性分析,开发设计等工作;1.1.2 软件的分类软件的分类(4 4)大型软件:)大型软件:这类软件一般由几十人开发,开这类软件一般由几十人开发,开发工作十分
19、复杂,时限为发工作十分复杂,时限为1 1年甚至两年以上。软年甚至两年以上。软件大小上百件大小上百M M甚至几百甚至几百M M。这类软件开发前要进。这类软件开发前要进行详细可行性分析、需求分析、开发设计等工行详细可行性分析、需求分析、开发设计等工作,软件测试要贯彻在开发全过程。这类软件作,软件测试要贯彻在开发全过程。这类软件交付使用后往往还要进行一次甚至多次维护升交付使用后往往还要进行一次甚至多次维护升级工作;级工作;(5 5)超大型软件:)超大型软件:这类软件开发人员一般超过百这类软件开发人员一般超过百人甚至几百人开发,开发工作十分艰辛,开发人甚至几百人开发,开发工作十分艰辛,开发时限一般在时
20、限一般在2 2年以上,这类软件小则几百年以上,这类软件小则几百M M,大,大则甚至几则甚至几G G。1.1.2 软件的分类软件的分类 3.3.按软件工作方式划分:按软件工作方式划分:(1 1)实时处理软件:)实时处理软件:指在事件或数据产生时,立即指在事件或数据产生时,立即予以处理,并及时反馈信号,控制需要监测和控予以处理,并及时反馈信号,控制需要监测和控制的过程的软件。主要包括数据采集,分析,输制的过程的软件。主要包括数据采集,分析,输出三部分;出三部分;(2 2)分时软件:)分时软件:允许多个联机用户同时使用计算机;允许多个联机用户同时使用计算机;(3 3)交互式软件:)交互式软件:能实现
21、人机通信的软件;能实现人机通信的软件;(4 4)批处理软件:)批处理软件:把一组输入作业或一批数据以成把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软批处理的方式一次运行,按顺序逐个处理完的软件。件。1.1.2 软件的分类软件的分类 4.4.按软件服务对象的范围划分:按软件服务对象的范围划分:(1 1)项目软件:)项目软件:也称定制软件,是受某个特定也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软软件开发机构在合同的约束下开发出来的软件。例如军用防空指挥系统、卫星控制系统;件。例如
22、军用防空指挥系统、卫星控制系统;(2 2)产品软件:)产品软件:是由软件开发机构开发出来直是由软件开发机构开发出来直接提供给市场,或是为千百个用户服务的软接提供给市场,或是为千百个用户服务的软件。例如,文字处理软件、文本处理软件、件。例如,文字处理软件、文本处理软件、财务处理软件、人事管理软件等财务处理软件、人事管理软件等 1.1.3 软件工程的历史及发展软件工程的历史及发展 软件工程软件工程(Software EngineeringSoftware Engineering,简称为,简称为SESE)是针对软件这一具有特殊性质的产品的工是针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了
23、软件生存周期程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。法,来指导软件人员的工作。1.1.3 软件工程的历史及发展软件工程的历史及发展 1.1.软件工程的含义软件工程的含义“软件工程”是科学和数学的某种应用,通过这一应用,使计算机设备的能力借助于计算机程序、过程和有关文档成为对人类有用的东西。软件工程的成果是为软件设计和开发人员提供思想方法和工具,而软件开发是一项需要良好组织,严密管理且各方面人员配合协作的复杂工作,软件工程正是指导这项工作的一门科学。1.1.3 软件工程的历史及发展软件工程的历史及发展
24、软件工程应该包括哪些知识?软件工程应该包括哪些知识?IEEEIEEE在软件在软件工程知识体系指南(工程知识体系指南(SEWBOKSEWBOK:Guide to Guide to the Software Engineering Body of the Software Engineering Body of Knowledge 2004VersionKnowledge 2004Version)中这样定义:)中这样定义:软件开发、实施、维护的系统化、规范软件开发、实施、维护的系统化、规范化、质量化的方法的应用,也就是软件的化、质量化的方法的应用,也就是软件的应用工程;应用工程;对上述方法的研究。
25、对上述方法的研究。1.1.3 软件工程的历史及发展软件工程的历史及发展 2.2.软件开发的三个历史阶段软件开发的三个历史阶段:第一个阶段是二十世纪第一个阶段是二十世纪5050年代到年代到6060年代,是年代,是程序设计阶段,基本是个体手工劳动的生产方程序设计阶段,基本是个体手工劳动的生产方式。式。第二阶段是二十世纪第二阶段是二十世纪6060年代到年代到7070年代,是软年代,是软件设计阶段,小组合作生产方式。件设计阶段,小组合作生产方式。第三个阶段是从二十世纪八十年代止今,为第三个阶段是从二十世纪八十年代止今,为软件工程时代软件工程时代 ,是工程化的生产方式。,是工程化的生产方式。1.1.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 流程 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内