华工软件基础软件技术概述_第1页
华工软件基础软件技术概述_第2页
华工软件基础软件技术概述_第3页
华工软件基础软件技术概述_第4页
华工软件基础软件技术概述_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1章章 软件技术概述软件技术概述第第 2 页页1. 计算机系统的组成计算机系统的组成2. 软件技术概述软件技术概述 2.1 程序设计语言程序设计语言 2.2 数据结构与算法数据结构与算法 2.3 操作系统操作系统 2.4 数据库技术数据库技术 2.5 软件工程软件工程 2.6 软件开发方法软件开发方法第第 3 页页l软件技术与工程;软件技术与工程;l涵盖的主要分支及其内容;涵盖的主要分支及其内容;l学习和掌握软件、程序、软件工程、软件学习和掌握软件、程序、软件工程、软件生命周期等基本概念生命周期等基本概念。第第 4 页页什么是计算机?什么是计算机?计算机就是我们平时常用的计算机就是我们平时

2、常用的PC机吗?机吗? 计算机(computer):t一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。t是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。t由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。t可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类。t较先进的计算机有生物计算机、光子计算机、量子计算机等。第第 5 页页第第 6 页页是接收、处理和提供数据的装置,它是接收、处理和提供数据的装置,它由由硬件硬件和和软件软件两大部分组成。两大部分组成。平时常用的平时常用的PC机只是计算机的一种,计算

3、机机只是计算机的一种,计算机家族中还有很多其他的成员。家族中还有很多其他的成员。第第 7 页页l超过超过100万个处理器万个处理器l每个处理器每秒可运算每个处理器每秒可运算10亿次,运算能力相当于击亿次,运算能力相当于击败国际象棋世界级棋手的败国际象棋世界级棋手的超级电脑超级电脑“深蓝深蓝”的的1000倍;倍;l占地达两个篮球场之大,占地达两个篮球场之大,重达重达106吨。吨。nIBMIBM的的Blue Gene/LBlue Gene/L巨型计算机巨型计算机n 国产银河、曙光国产银河、曙光n “ “天河一号天河一号”第第 8 页页第第 9 页页第第 10 页页l什么是硬件?什么是硬件? 硬件是

4、硬件是组成计算机系统的所有电子的、机组成计算机系统的所有电子的、机械的、磁性的、光学的装置和部件。械的、磁性的、光学的装置和部件。l配置一台个人计算机需要购买哪些东西?配置一台个人计算机需要购买哪些东西? CPU、内存、硬盘、主板、键鼠、显示器、内存、硬盘、主板、键鼠、显示器l冯冯诺依曼:诺依曼: “存储程序式计算机存储程序式计算机” (1945年年) 5大部件构成:大部件构成: 第第 11 页页l发展历史发展历史逻辑元件:电子管逻辑元件:电子管晶体管晶体管集成电路集成电路l发展规律及特点发展规律及特点速度慢速度慢速度快速度快体积大容量小体积大容量小体积小容量大体积小容量大外设少、简单外设少、

5、简单外设繁多、复杂外设繁多、复杂外设速度发展慢于外设速度发展慢于CPUCPU速度的发展速度的发展摩尔定律(假设价格保持不变,处理器芯片上摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每的晶体管数每1818个月翻一番)个月翻一番)中国科学家首次在实验中发现量子反常霍尔效应t不需要外加磁场产生霍尔效应,将推动新一代低能耗晶体管和电子学器件的发展,可能加速推进信息技术革命进程。t超级计算机将有可能成为iPad大小的掌上笔记本,智能手机内存也许会超过目前最先进产品的上千倍,除了超长待机时间,还将拥有当代人无法想象的快速。t霍尔效应基础器件,比如感应器、传感器,做的非常小。t如果今后把材料温度提高到

6、在日常温度之下,有可能还会造出一种非常高速的电网,就是所谓的量子电网。第第 12 页页第第 13 页页诞生于诞生于19461946年年1880018800个晶体管个晶体管7000070000个电阻器个电阻器1800018000个电容器个电容器5 5百万个焊接点百万个焊接点重量重量3030吨吨耗电耗电174174千瓦千瓦/h/h50005000次加法次加法/s/s第第 14 页页42,000,00042,000,000个晶体管个晶体管时钟频率时钟频率1.5GHz1.5GHz运算速度为运算速度为1700 MIPS1700 MIPS(MIPS MIPS 代表代表百万指令百万指令集每秒集每秒 )第第

7、15 页页Intel Pentium 双核处理器双核处理器AMD Athlon 64 X2双核处理器双核处理器第第 16 页页AMD 三核处理器三核处理器Intel四核处理器四核处理器AMD 六核处理器六核处理器Intel六核处理器六核处理器第第 17 页页第第 18 页页l软件程序?开发软件写程序?软件程序?开发软件写程序?认识的误区!认识的误区!程序只是软件的一个组成部分;写程序只是程序只是软件的一个组成部分;写程序只是软件开发的过程中的一个步骤。软件开发的过程中的一个步骤。l软件是软件是程序程序、数据数据以及以及有关文档资料有关文档资料的集合。的集合。l软件是(可运行的)思想和内容的数字

8、化软件是(可运行的)思想和内容的数字化思想:算法、规律、方法思想:算法、规律、方法程序程序内容:图形、图像、数据、声音、文字等内容:图形、图像、数据、声音、文字等数据数据第第 19 页页l个体含义,表示计算机系统中具体的程序、个体含义,表示计算机系统中具体的程序、数据和有关文档,例如操作系统软件数据和有关文档,例如操作系统软件“Windows XP”,是从个体含义上讲的;,是从个体含义上讲的;l整体含义,它相对于计算机硬件系统而言,整体含义,它相对于计算机硬件系统而言,是对计算机系统中所有程序、数据及相关文是对计算机系统中所有程序、数据及相关文档的统称。档的统称。第第 20 页页软件有两种属性

9、:软件有两种属性:l静态属性:它由程序、数据及相关文档组成,静态属性:它由程序、数据及相关文档组成,可以存储,也可供人们阅读和交流;可以存储,也可供人们阅读和交流;l动态属性:它是可运行的,蕴涵着一定的操动态属性:它是可运行的,蕴涵着一定的操作内容和步骤,由计算机执行而产生特定的作内容和步骤,由计算机执行而产生特定的结果或动态效应。结果或动态效应。第第 21 页页 从软件的属性来看,它是一种特殊的事物,具有从软件的属性来看,它是一种特殊的事物,具有自身的特性,可概括如下:自身的特性,可概括如下:(1)智能性 (6)依附性(2)无形性 (7)非损性(3)抽象性 (8)复制性(4)系统性 (9)演

10、化性(5)泛域性http:/forum.eet- 22 页页l所有的硬件都是相似的,软件则各有各的不同。所有的硬件都是相似的,软件则各有各的不同。l但是软件的开发过程存在很多规律和共性,找到但是软件的开发过程存在很多规律和共性,找到并利用这些规律来帮助和指导软件的开发,这正并利用这些规律来帮助和指导软件的开发,这正是软件技术学科所研究的内容。是软件技术学科所研究的内容。操作系统操作系统 、语言编、语言编译器、数据库系统译器、数据库系统文字处理软件、财文字处理软件、财务软件、用户自己务软件、用户自己开发的软件等开发的软件等硬件硬件系统软件系统软件应用软件应用软件用户用户第第 23 页页l操作系统

11、是对硬件的首次扩充,它管理着计算机操作系统是对硬件的首次扩充,它管理着计算机系统的软、硬件资源,其它软件都是在操作系统系统的软、硬件资源,其它软件都是在操作系统的基础上运行的。的基础上运行的。l信息管理是计算机的一个重要应用领域,而信息信息管理是计算机的一个重要应用领域,而信息管理的核心就是数据库管理系统。管理的核心就是数据库管理系统。l群件拓宽了电子邮件的内涵,涵盖很多通信协调群件拓宽了电子邮件的内涵,涵盖很多通信协调功能,如电话会议、共享项目进度表等。功能,如电话会议、共享项目进度表等。第第 24 页页l文字处理软件、电子表格处理软件、演示制文字处理软件、电子表格处理软件、演示制作软件、个

12、人数据库、个人信息管理软件等。作软件、个人数据库、个人信息管理软件等。l多媒体处理软件主要包括图形、图像处理、多媒体处理软件主要包括图形、图像处理、动画制作、音频视频处理、桌面排版等。动画制作、音频视频处理、桌面排版等。l集成的环境中,包含了语言编辑器(有的还集成的环境中,包含了语言编辑器(有的还包括界面和外观的编辑)、调试工具、编译包括界面和外观的编辑)、调试工具、编译工具、运行工具、图标图像制作工具等。工具、运行工具、图标图像制作工具等。第第 25 页页l主要有主要有Web服务器软件,服务器软件,Web浏览器,文件传送浏览器,文件传送工具、远程访问工具、邮件软件、新闻阅读工具、工具、远程访

13、问工具、邮件软件、新闻阅读工具、信息检索、多媒体、信息检索、多媒体、Web页创作工具等。页创作工具等。l帮助操作系统更有效地完成系统的管理和维护。帮助操作系统更有效地完成系统的管理和维护。包括杀病毒软件、文件压缩、快速复制工具、磁包括杀病毒软件、文件压缩、快速复制工具、磁盘维护与诊断工具、实用工具软件等。盘维护与诊断工具、实用工具软件等。l学习、游戏软件、电子字典、各种小工具软件学习、游戏软件、电子字典、各种小工具软件第第 26 页页l软硬件独立和互动软硬件独立和互动独立原理:软件理论上能实现的功能本质上与独立原理:软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)硬件是独立的(

14、不管硬件是何种形式)互动原理:软件实际能实现的功能受制于硬件,互动原理:软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步硬件发展一个台阶,软件就能前进一大步l软硬件等效软硬件等效简单的硬件简单的硬件+复杂的软件复杂的软件简单的软件简单的软件+复杂的硬件复杂的硬件最终都可以完成同一个任务,不同的只是开发最终都可以完成同一个任务,不同的只是开发成本(时间上的和物质上的)!成本(时间上的和物质上的)!第第 27 页页l软件技术发展历程软件技术发展历程(1)程序设计时代()程序设计时代(1946年年1955年)年)以硬件为中心,编程处于从属地位以硬件为中心,编程处于从属地位(2)软

15、件行业化时代()软件行业化时代(1955年年1970年)年)程序需求增加;软件概念的提出;软件行业诞生程序需求增加;软件概念的提出;软件行业诞生(3 3)软件工程时代()软件工程时代(1970年至现在)年至现在)软件危机;软件工程领域的出现软件危机;软件工程领域的出现第一代软件技术:模块化、自顶而下结构化设计第一代软件技术:模块化、自顶而下结构化设计第二代软件技术:软件测试方法、原理、理论第二代软件技术:软件测试方法、原理、理论第三代软件技术:软件需求定义技术第三代软件技术:软件需求定义技术软件开发集成环境软件开发集成环境第第 28 页页 软件本质上是一种思想:利用计算机来解决某个软件本质上是

16、一种思想:利用计算机来解决某个问题的思想!软件的实现就是将这个思想数字化的问题的思想!软件的实现就是将这个思想数字化的过程!过程! 程序设计语言程序设计语言 编译技术编译技术 软件及实现技术软件及实现技术 操作系统操作系统及实用程序及实用程序 计算机计算机 数据库技术数据库技术 软件技术软件技术 软件工具软件工具 软件工程软件工程 软件开发方法与技术软件开发方法与技术 软件开发方法软件开发方法 数据结构和算法数据结构和算法第第 29 页页程序程序: :是使计算机完成某种任务的一组有序命令是使计算机完成某种任务的一组有序命令(指令语句)(指令语句)的集合。的集合。 l 程序设计语言发展的三个阶段

17、:程序设计语言发展的三个阶段:写程序就像写文章,要解决两个问题:写程序就像写文章,要解决两个问题:1.1.明确自己要表达的是什么明确自己要表达的是什么2.2.用一种语言把它表达出来用一种语言把它表达出来程序设计语言程序设计语言是编写计算机程序所用的语言。是编写计算机程序所用的语言。第第 30 页页 是机器指令的集合,是机器指令的集合,其代码由其代码由0 0、1 1组成的二进制串表组成的二进制串表示,不需翻译可直接为示,不需翻译可直接为机器所接受。机器所接受。 为为符号化符号化的机器语言。它的机器语言。它用助记用助记符和标识符代替机器指令的操作码和地址码。符和标识符代替机器指令的操作码和地址码。

18、 是一种与具体的计算机指令系统是一种与具体的计算机指令系统无关、独立于计算机类型、且表达方式接近无关、独立于计算机类型、且表达方式接近于自然语言或数学语言、容易被人们掌握和于自然语言或数学语言、容易被人们掌握和书写的语言。如书写的语言。如C C,PascalPascal,javajava等。等。第第 31 页页n机器语言机器语言00111110 00001001 00111111B 00111110 00001001 00111111B 或或 3E 09 3FH3E 09 3FHn汇编语言汇编语言MOV AX,X MOV AX,X INC AX INC AX MOV X,AX MOV X,AX

19、n C C语言语言 x=x+1x=x+1或或 x+x+或或 +x+x第第 32 页页l比机器语言或汇编语言更易于学习;比机器语言或汇编语言更易于学习;l程序更易于编写和调试(程序更为短小;符程序更易于编写和调试(程序更为短小;符号本身更自然,因此更多注意力可放在程序号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上);逻辑而非语法细节上);l程序可读性更强;程序可读性更强;l较好的平台无关性;较好的平台无关性;l上述原因使得解决问题的时间和成本减少。上述原因使得解决问题的时间和成本减少。第第 33 页页l翻译程序翻译程序 是把甲种语言程序翻译为等价的乙种语言程序的程序。是把甲种语言程序翻

20、译为等价的乙种语言程序的程序。其中,甲种语言称为源语言。乙种语言称为目标语言。其中,甲种语言称为源语言。乙种语言称为目标语言。l汇编程序汇编程序 若源语言是汇编语言,目标语言是机器语言,则该翻若源语言是汇编语言,目标语言是机器语言,则该翻译程序被称为汇编程序。译程序被称为汇编程序。l编译程序编译程序 若源语言是高级语言,目标语言是汇编语言或机器语若源语言是高级语言,目标语言是汇编语言或机器语言,则该翻译程序被称为编译程序。言,则该翻译程序被称为编译程序。l解释程序解释程序 是翻译程序的另一种形式,它对源程序的语句边解释是翻译程序的另一种形式,它对源程序的语句边解释边执行,不产生目标程序。边执行

21、,不产生目标程序。第第 34 页页l程序中往往要处理大量的数据,这些数据采程序中往往要处理大量的数据,这些数据采用什么样的方式来用什么样的方式来组织、存放组织、存放才能最大限度才能最大限度地方便应用地方便应用处理处理,提高程序效率呢?,提高程序效率呢?l数据结构研究数据的组织形式,包括数据的数据结构研究数据的组织形式,包括数据的逻辑结构逻辑结构、物理结构物理结构以及在该数据结构上所以及在该数据结构上所施加的施加的运算运算。l数据结构是算法设计的基础。数据结构是算法设计的基础。第第 35 页页l算法算法是对解题方法的精确描述。描述的方式是对解题方法的精确描述。描述的方式可以是各种各样的。如自然语

22、言、流程图、可以是各种各样的。如自然语言、流程图、伪代码、程序设计语言等。伪代码、程序设计语言等。l算法必须具有有穷性、确定性、能行性、输算法必须具有有穷性、确定性、能行性、输入和输出。入和输出。l一个问题可以有多种解题方法,那么就有多一个问题可以有多种解题方法,那么就有多个对应的算法。算法的优劣由算法的个对应的算法。算法的优劣由算法的时间复时间复杂度杂度和和空间复杂度空间复杂度来衡量。来衡量。第第 36 页页l裸机裸机:没有安装任何软件的计算机。:没有安装任何软件的计算机。l操作系统操作系统是直接运行于裸机之上的系统软件,是直接运行于裸机之上的系统软件,它负责对计算机系统的各种软硬件资源进行

23、它负责对计算机系统的各种软硬件资源进行管理和分配,为用户提供友好的计算机使用管理和分配,为用户提供友好的计算机使用界面和平台。界面和平台。l在裸机上配置操作系统之后就构成了在裸机上配置操作系统之后就构成了操作系操作系统虚拟机统虚拟机。所有其它的软件或程序都在扩充。所有其它的软件或程序都在扩充后的机器上运行。后的机器上运行。第第 37 页页应用程序应用程序用户程序用户程序操作系统虚拟机操作系统虚拟机操作系统操作系统裸裸 机机第第 38 页页l数据库是一种强大的数据处理技术。数据库是一种强大的数据处理技术。l它把应用中所有的数据它把应用中所有的数据有结构地有结构地集中在一起,集中在一起,并提供对这

24、些数据的存储管理、多用户共享、并提供对这些数据的存储管理、多用户共享、操作、安全保护、完整性控制等强大功能。操作、安全保护、完整性控制等强大功能。l一个国家的信息化程度是衡量该国国力的重一个国家的信息化程度是衡量该国国力的重要标准,而信息化是以数据库技术为基础的。要标准,而信息化是以数据库技术为基础的。l现代的银行、金融、证券、保险等各行业的现代的银行、金融、证券、保险等各行业的高效运营都依赖于数据库技术。高效运营都依赖于数据库技术。第第 39 页页l产生背景(上个世纪产生背景(上个世纪7070年代)年代)硬件的发展使得计算机的应用领域迅速扩大,硬件的发展使得计算机的应用领域迅速扩大,导致软件

25、的规模和复杂度急剧增长。导致软件的规模和复杂度急剧增长。早期手工作坊式的软件开发方式因无法适应这早期手工作坊式的软件开发方式因无法适应这种变化而形成了种变化而形成了“软件危机软件危机”。主要表现在:。主要表现在:u开发成本和进度估计不准确,生产效率低。开发成本和进度估计不准确,生产效率低。u软件产品的质量不可靠。软件产品的质量不可靠。u软件常常是不可维护的。软件常常是不可维护的。u缺乏适当的文档资料缺乏适当的文档资料。u用户对软件系统不满意的现象经常发生。用户对软件系统不满意的现象经常发生。第第 40 页页l什么是什么是“软件工程软件工程”?1983年年IEEE给出的定义为:给出的定义为:“软

26、件工程是开发、运行、维护和修复软件的系软件工程是开发、运行、维护和修复软件的系统方法统方法”。l软件工程是指导计算机软件开发和维护的工程学软件工程是指导计算机软件开发和维护的工程学科,采用工科,采用工程的概念、原理、技术和方法来开发程的概念、原理、技术和方法来开发与维护软件。与维护软件。l软件工程是一门交叉学科,用软件工程是一门交叉学科,用管理学管理学的原理、方的原理、方法来进行软件生产管理;用法来进行软件生产管理;用工程学工程学的观点来进行的观点来进行费用估算、制定进度和实施方案;用费用估算、制定进度和实施方案;用数学数学方法来方法来建立软件可靠性模型以及分析各种算法。建立软件可靠性模型以及

27、分析各种算法。第第 41 页页l在给定成本、进度的前提下,开发出具有在给定成本、进度的前提下,开发出具有可可修改性、有效性、可靠性、可理解性、可维修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适用性、可移植性、可护性、可重用性、可适用性、可移植性、可追踪性、可互操作性追踪性、可互操作性和和满足用户需求满足用户需求的软件的软件产品。产品。第第 42 页页l贯穿贯穿“软件工程软件工程”这一学科的基本线索是这一学科的基本线索是软软件生命周期学说件生命周期学说,它告诉,它告诉软件开发者和维护软件开发者和维护者者“什么时候做什么以及怎么做什么时候做什么以及怎么做”。l软件生命周期软件生命周期就

28、象人的寿命一样,从出生算就象人的寿命一样,从出生算到死亡,从产生开发需求一直到软件报废为到死亡,从产生开发需求一直到软件报废为止。包括:软件计划、需求分析、软件开发止。包括:软件计划、需求分析、软件开发和软件维护四个时期。和软件维护四个时期。第第 43 页页l软件计划(系统定义)软件计划(系统定义)用户想解决什么问题?(软件定义)用户想解决什么问题?(软件定义)这个问题能否解决?(可行性分析)这个问题能否解决?(可行性分析)l需求分析(系统分析)需求分析(系统分析)目标系统应该做成什么样子?目标系统应该做成什么样子?l软件开发(系统实现)软件开发(系统实现)怎样实现目标系统?(软件设计)怎样实

29、现目标系统?(软件设计)系统的具体实现(软件编程)系统的具体实现(软件编程)实现的系统与是否符合目标?(软件测试)实现的系统与是否符合目标?(软件测试)l软件维护(系统维护)软件维护(系统维护)如何保持系统正常运行?如何升级或修复错误?如何保持系统正常运行?如何升级或修复错误?第第 44 页页 软件开发模型是软件开发的全部过程、软件开发模型是软件开发的全部过程、活动和任务的结构框架活动和任务的结构框架。l瀑布模型瀑布模型l原型模型原型模型l螺旋模型螺旋模型第第 45 页页1瀑布模型瀑布模型(1 1)各阶段间具有顺序性和依赖性。各阶段间具有顺序性和依赖性。即后一阶段工即后一阶段工作必须在前一阶段

30、工作完成后才能进行,前一阶作必须在前一阶段工作完成后才能进行,前一阶段的输出文档是后一阶段的输入文档。段的输出文档是后一阶段的输入文档。(2 2)质量保证机制的依赖性。质量保证机制的依赖性。即每一步都必须循序即每一步都必须循序渐进,及早消除故障隐患,保证本阶段的工作的渐进,及早消除故障隐患,保证本阶段的工作的质量,从而达到保证整体软件质量的目的。质量,从而达到保证整体软件质量的目的。 (3 3)推迟实现原则。推迟实现原则。前一阶段工作做的越细、越扎前一阶段工作做的越细、越扎实,后一阶段工作进行的就越顺利,强调实,后一阶段工作进行的就越顺利,强调“宁慢宁慢求好求好”。因此,各阶段工作总是容易一拖

31、再拖,。因此,各阶段工作总是容易一拖再拖,致使整个工期推迟实现。显然瀑布模型不能满足致使整个工期推迟实现。显然瀑布模型不能满足呈爆炸状增长的社会应用需求。呈爆炸状增长的社会应用需求。 第第 46 页页软件计划软件计划需求分析需求分析软件设计软件设计软件编码软件编码软件测试软件测试软件维护软件维护变化的需求变化的需求第第 47 页页2原型模型原型模型l也称样品模式,即开始提出一个样品雏形,通过也称样品模式,即开始提出一个样品雏形,通过不断改进,完善样品,使得最后得到用户所需要不断改进,完善样品,使得最后得到用户所需要的产品。的产品。l由于在项目开发初始阶段人们对软件的需求认识由于在项目开发初始阶

32、段人们对软件的需求认识常常弄不清楚,原型模型提出分两次开发软件能常常弄不清楚,原型模型提出分两次开发软件能较好地使用户满意较好地使用户满意: :u第一次只是试验开发,其目标在于探索可行性,第一次只是试验开发,其目标在于探索可行性,弄清软件需求。通常把第一次得到的试验性产弄清软件需求。通常把第一次得到的试验性产品称为原型。品称为原型。u第二次则在原型基础上获得较满意的软件产品。第二次则在原型基础上获得较满意的软件产品。u显然,原型模型在克服瀑布模型缺点,减少由显然,原型模型在克服瀑布模型缺点,减少由于软件需求不明确而给开发工作带来的风险,于软件需求不明确而给开发工作带来的风险,有着显著的效果。有

33、着显著的效果。第第 48 页页 初步需求初步需求分析分析 快速设计快速设计 建造原型建造原型 用户评估原用户评估原型(新需求)型(新需求) 开发产品开发产品 开始开始 结束结束 第第 49 页页l原型模型的优点:原型模型的优点:(1)开发人员和用户在原型上达成一致,共同承担)开发人员和用户在原型上达成一致,共同承担因修改原型而造成的风险,用户成了名副其实因修改原型而造成的风险,用户成了名副其实的开发组成员。可以减少设计中的错误和开发的开发组成员。可以减少设计中的错误和开发中的风险,从而提高了系统的准确性、正确性中的风险,从而提高了系统的准确性、正确性以及用户的满意程度。以及用户的满意程度。(2

34、)缩短了开发周期,加快了工程进度,降低了成)缩短了开发周期,加快了工程进度,降低了成本。本。l原型模型的缺点:原型样品只是一个临时原型模型的缺点:原型样品只是一个临时的系统,它没有考虑整体的质量和日后的的系统,它没有考虑整体的质量和日后的可维护性等问题。可维护性等问题。第第 50 页页3螺旋模型螺旋模型l螺旋模型将瀑布模型与原型模型结合起来,并且螺旋模型将瀑布模型与原型模型结合起来,并且加入加入风险分析风险分析,构成具有特色的模式,可以弥补,构成具有特色的模式,可以弥补前两种模型的不足。前两种模型的不足。l螺旋模型将工程分为螺旋模型将工程分为4个主要活动:制定计划,风个主要活动:制定计划,风险

35、分析,实现工程和用户评价。险分析,实现工程和用户评价。4个活动螺旋式地个活动螺旋式地重复执行,直到最终得到用户认可的产品。重复执行,直到最终得到用户认可的产品。l螺旋模型的缺点:螺旋模型的缺点:(1)它很难让用户确信这种研发方法是可控制的;)它很难让用户确信这种研发方法是可控制的;(2)它要求有风险评价的专门技术,如果主要风险)它要求有风险评价的专门技术,如果主要风险不能发现,则问题一定会发生;不能发现,则问题一定会发生;第第 51 页页生命周期计划生命周期计划需求计划需求计划风险分析风险分析原型原型1原型原型2原型原型3可操作可操作的原型的原型建模建模模拟模拟评价评价操作概念操作概念软件需求

36、软件需求需求确认需求确认开发计划开发计划组装测试计划组装测试计划风险分析风险分析风险分析风险分析风险分析风险分析软件产品软件产品设计设计设计验证与确认设计验证与确认详细详细设计设计编码编码单元单元测试测试组装组装测试测试验收验收测试测试实现实现成本成本顺时针为进展方向顺时针为进展方向计划:计划:明确目标、约束条件明确目标、约束条件选择方案选择方案风险分析风险分析构造原型构造原型工程实现工程实现用户评价;阶段评审用户评价;阶段评审验收测试计划验收测试计划需求精化计划需求精化计划需求评价需求评价评审决策实现计划实现计划第第 52 页页l结构化方法结构化方法1、自顶向下,逐步细化、自顶向下,逐步细化

37、2、模块化、模块化3、结构化程序设计、结构化程序设计l面向对象方法面向对象方法第第 53 页页l由于人类思维能力的限制,如果一次面临的因素由于人类思维能力的限制,如果一次面临的因素太多,就无法作出精确的思维。太多,就无法作出精确的思维。l例如:举办一个生日例如:举办一个生日partypartyt布置场地布置场地t准备食物准备食物t准备节目准备节目t邀请客人邀请客人l自顶向下,逐步细化就是自顶向下,逐步细化就是将复杂的问题分解成若将复杂的问题分解成若干个子问题,直到所有子问题都简单到能用程序干个子问题,直到所有子问题都简单到能用程序设计语言来表达的方法。设计语言来表达的方法。P54初始序列:初始序列:45* 34 27 18 72 45 40 66交换次数交换次数 比较次数比较次数第第1趟:趟:18 34 27 45* 72 45 40 66 17第第2趟:趟:18 27 34 45* 72 45 40 66 16第第3趟:趟:18 27 34 45* 72 45 40 66 15第第4趟:趟:18 27 34 40 72 45 45* 66 14第第5趟:趟:18 27 34 40 45 72 45* 66 13第第6趟:趟:18 27 34 40 45 45* 72 66 12第第7趟:趟:18 27 34 40 45 45* 66

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论