




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件技术课程学习简介软件技术课程学习简介一、课程理论学习内容一、课程理论学习内容1 1vbvb程序设计语言程序设计语言2 2数据库原理数据库原理3 3vbvb数据库设计数据库设计4 4网络编程基础,补充内容网络编程基础,补充内容aspasp技术技术二、课程实验学习内容二、课程实验学习内容1 1要求掌握科研课题开题报告的一般写作方法要求掌握科研课题开题报告的一般写作方法2 2完成一个微小型的微机应用系统的软件设计。完成一个微小型的微机应用系统的软件设计。课题按照小组为单位进行,每个课题组课题按照小组为单位进行,每个课题组1 13 3名名同学。同学。3 3学习科研课题结题报告的一般写作方法学习科研
2、课题结题报告的一般写作方法软件技术课程学习简介软件技术课程学习简介三、课程理论学习要求三、课程理论学习要求 vbvb程序设计语言、程序设计语言、数据库原理、数据库原理、vbvb数据库数据库设计、网络编程基础各章的基本概念和基本操设计、网络编程基础各章的基本概念和基本操作方法。作方法。 考核方式:机考考核方式:机考四、课程实验学习要求四、课程实验学习要求1 1学习科研课题开题报告的一般写作方法,开学习科研课题开题报告的一般写作方法,开题报告每个课题小组写一份。题报告每个课题小组写一份。2 2学习一个在可视化软件平台下,设计一个微学习一个在可视化软件平台下,设计一个微小型的微机应用系统。小型的微机
3、应用系统。3 3学习科研课题结题报告的一般写作方法,结学习科研课题结题报告的一般写作方法,结题报告每个同学写一份。题报告每个同学写一份。软件技术课程学习简介软件技术课程学习简介考核内容:检查一个微小型的微机应用系统软件考核内容:检查一个微小型的微机应用系统软件设计的完成情况。设计的完成情况。1 1评价标准评价标准n 创新性、合理性(创新性、合理性(5 5)n 难度、复杂性(难度、复杂性(1515)n 完整性(完整性(2020)n 完成情况(完成情况(2020)n 界面可操作性(界面可操作性(2020)n 开题报告和结题报告(开题报告和结题报告(2020) 软件技术课程学习简介软件技术课程学习简
4、介考核内容:检查一个微小型的微机应用系统软件考核内容:检查一个微小型的微机应用系统软件设计的完成情况。设计的完成情况。2 2考核方法考核方法n 为了最终成绩的公平性,由课题小组组长组成为了最终成绩的公平性,由课题小组组长组成的评议小组,给出一个平时成绩。的评议小组,给出一个平时成绩。n 每次实验课,由实验老师检查进度,并进行记每次实验课,由实验老师检查进度,并进行记录。录。n 课题完成答辩,每个同学当堂演示你完成的内课题完成答辩,每个同学当堂演示你完成的内容检查内容,并对于你所使用平台工具的基本容检查内容,并对于你所使用平台工具的基本技术理论、课题中使用技术,以及功能和性能技术理论、课题中使用
5、技术,以及功能和性能等方面的问题进行提问。等方面的问题进行提问。第第1章章 概论概论1 11 1 程序设计语言程序设计语言1 12 2 程序的基本概念程序的基本概念1 13 3 软件的基本概念软件的基本概念1 14 4 应用系统软件的开发应用系统软件的开发 11 程序设计语言程序设计语言 程序设计语言的分类程序设计语言的分类n 程序设计语言可以从不同的角度进行分类。程序设计语言可以从不同的角度进行分类。n 从从发展过程发展过程分,第一代语言分,第一代语言(机器语言机器语言)、第二代语言、第二代语言(汇编语言)、第三代语言(高级语言)、第四代与(汇编语言)、第三代语言(高级语言)、第四代与第五代
6、计算机语言第五代计算机语言(可视化、面向对象、网络可视化、面向对象、网络)n 从从应用范围应用范围来分,分为通用语言与专用语言;再可细来分,分为通用语言与专用语言;再可细分为系统程序设计语言、科学计算语言、事务处理语分为系统程序设计语言、科学计算语言、事务处理语言、实时控制语言、脚本语言、教学用语言以及用于言、实时控制语言、脚本语言、教学用语言以及用于解决非确定性问题的语言等。解决非确定性问题的语言等。n 从从程序设计方法程序设计方法上来分,分为结构化语言、模块化语上来分,分为结构化语言、模块化语言与面向对象语言。言与面向对象语言。 113 程序设计语言的评价标准程序设计语言的评价标准n程序设
7、计语言程序设计语言7种基本评价标准:种基本评价标准: (1)用户界面好,操作简便用户界面好,操作简便; (2)对硬件、软件环境要求低对硬件、软件环境要求低; (3)对硬件资源利用的程度高对硬件资源利用的程度高; (4)代码质量高,目标程序运行速度快,可靠性高,代码质量高,目标程序运行速度快,可靠性高,结构化性能高,可读性好结构化性能高,可读性好; (5)应用范围广泛应用范围广泛; (6)调用其它软件容易调用其它软件容易; (7)自身发展快。自身发展快。n如果一种程序设计语言,能在上述如果一种程序设计语言,能在上述7个方面都有较个方面都有较高的得分,那它就是一种比较理想的语言。高的得分,那它就是
8、一种比较理想的语言。 114程序设计语言的选择标准程序设计语言的选择标准n开发软件时的程序设计语言开发软件时的程序设计语言4个选择标准:个选择标准:1)应用范围)应用范围 各种程序设计语言都有自己的适用范围。各种程序设计语言都有自己的适用范围。n在科学计算领域,在科学计算领域,fortran常常是首选语言。常常是首选语言。n在事务处理方面,在事务处理方面,visual basic语言是较理想的选择语言是较理想的选择n在实时处理方面,选择汇编语言及在实时处理方面,选择汇编语言及c语言比较合适。语言比较合适。n在开发系统软件方面,可选择在开发系统软件方面,可选择visual c+、visual j
9、+、borland c+、visual basic、jbuilder、delphi及及c+ builder等语言。等语言。 n如果开发的软件中含有大量的数据操作,则可采如果开发的软件中含有大量的数据操作,则可采用用sql、visual foxpro等数据库语言。等数据库语言。n在网络开发中,在网络开发中, web服务器软件可以选择服务器软件可以选择microsoft公司的公司的iis、apache组织开发的组织开发的apache服服务器等。务器等。2)算法及计算复杂性算法及计算复杂性nfortran、pascal、c、c+等语言都能支持较等语言都能支持较复杂的算法与计算。复杂的算法与计算。n而
10、绝大多数数据库语言都只能支持较简单的算法而绝大多数数据库语言都只能支持较简单的算法与计算。与计算。3)数据结构数据结构nc、c+、pascal语言都提供了数组、记录数据结语言都提供了数组、记录数据结构及带指针的动态数据结构。它们适合于设计系构及带指针的动态数据结构。它们适合于设计系统程序以及需要复杂数据结构的应用程序。统程序以及需要复杂数据结构的应用程序。4)效率效率n 有些实时应用系统要求具有很快的响应速度,可有些实时应用系统要求具有很快的响应速度,可以选择汇编语言或以选择汇编语言或c语言。有时应用系统中只是语言。有时应用系统中只是某一部分要求具有很快的响应速度,在这种情况某一部分要求具有很
11、快的响应速度,在这种情况下,可以选用汇编语言来编写这一部分程序下,可以选用汇编语言来编写这一部分程序.12 程序的基本概念程序的基本概念 1. 程序是由程序设计语言的抽象符号的集合程序是由程序设计语言的抽象符号的集合n程序设计语言有面向机器的汇编语言,以及面向程序设计语言有面向机器的汇编语言,以及面向过程和面向对象的高级程序设计语言。过程和面向对象的高级程序设计语言。2程序是对数据施行算法的过程程序是对数据施行算法的过程n算法决定了程序的质量算法决定了程序的质量:同样的数据用不同的算:同样的数据用不同的算法实现,其所需的时空开销大不相同。要达到时法实现,其所需的时空开销大不相同。要达到时间和空
12、间性能的最佳,需要遵循一定的算法来编间和空间性能的最佳,需要遵循一定的算法来编写程序。在不同情况下需要选用不同算法来达到写程序。在不同情况下需要选用不同算法来达到效率、质量的最佳。效率、质量的最佳。n面向对象的程序也需要算法面向对象的程序也需要算法:从对象的角度来看,:从对象的角度来看,程序是对对象的行为和状态及对象间关系的描述。程序是对对象的行为和状态及对象间关系的描述。在面向对象的程序里,同样需要算法,因为,状在面向对象的程序里,同样需要算法,因为,状态和属性是用数据表示的,状态改变的方法就包态和属性是用数据表示的,状态改变的方法就包含了算法。只是面向对象语言提供了更高抽象的含了算法。只是
13、面向对象语言提供了更高抽象的对象概念。对象概念。13 软件的基本概念软件的基本概念n软件的定义:软件的定义:计算机程序、方法、规则、程序有关计算机程序、方法、规则、程序有关的各种文档以及在计算机上运行所必需的数据的总的各种文档以及在计算机上运行所必需的数据的总称称。n软件不仅是程序,还包括其功能和性能的说明性信软件不仅是程序,还包括其功能和性能的说明性信息。软件不仅有功能和性能要求,还有质量、成本、息。软件不仅有功能和性能要求,还有质量、成本、交货期、使用寿命要求。交货期、使用寿命要求。1 软件质量的评价标准软件质量的评价标准 软件的质量软件的质量10条主要的标准。条主要的标准。1)可理解性)
14、可理解性(understandablity)n一个软件产品具有可理解性,主要指的是该软件一个软件产品具有可理解性,主要指的是该软件的用途对用户来说是十分清楚的。除了软件的功的用途对用户来说是十分清楚的。除了软件的功能之外,软件各部分之间、各子系统之间的分工,能之外,软件各部分之间、各子系统之间的分工,及其相互关系也应该是清楚的。当用户按规定调及其相互关系也应该是清楚的。当用户按规定调用软件的某个部分时,软件应能按用户的要求作用软件的某个部分时,软件应能按用户的要求作出明确的响应,解决用户的问题。出明确的响应,解决用户的问题。2)可靠性)可靠性(reliablity)n 软件产品的可靠性主要是指
15、在软件整个生命周期软件产品的可靠性主要是指在软件整个生命周期内,它能否按照设计的要求,实现所需要的各功内,它能否按照设计的要求,实现所需要的各功能。即软件设计的功能是否能正确实现,运行中能。即软件设计的功能是否能正确实现,运行中会有多少隐藏的错误出现,错误出现的后果是什会有多少隐藏的错误出现,错误出现的后果是什么等。么等。3)效率)效率(efficiency)n 软件产品的效率指的是完成给定功能时所需占用软件产品的效率指的是完成给定功能时所需占用的资源的资源(时间和空间时间和空间)。在这里,资源主要指的是存。在这里,资源主要指的是存储空间、储空间、cpu时间、接口占用等等。时间、接口占用等等。
16、4)可维护性)可维护性(maintainablity)n软件产品的可维护性是指为了满足新的要求,软软件产品的可维护性是指为了满足新的要求,软件产品应该是很容易修改和维护的。件产品应该是很容易修改和维护的。 5)完整性)完整性(completencess)n完整性要求软件自成体系,即软件应该具备问题完整性要求软件自成体系,即软件应该具备问题处理的全部环节处理的全部环节(如输入、编辑、处理、输出等等如输入、编辑、处理、输出等等)。此外,完整性还要求软件应具有相应的容错能力,此外,完整性还要求软件应具有相应的容错能力,即自动排除错误和恢复工作的能力。即自动排除错误和恢复工作的能力。6)简明性)简明性
17、(concisess)n 软件的简明性指的是其本身和其表现形式的软件的简明性指的是其本身和其表现形式的能能见度见度,使用户对发生的事情一目了然,知道是否,使用户对发生的事情一目了然,知道是否出了问题,问题出在什么地方,以及如何解决问出了问题,问题出在什么地方,以及如何解决问题题;简明性的另一层含义是指用软件书写的程序具简明性的另一层含义是指用软件书写的程序具有较少的命令行数。有较少的命令行数。7)可移植性)可移植性(portability)n 可移植性是指软件在多种类型的计算机配置上都可移植性是指软件在多种类型的计算机配置上都能容易而有效地操作。广义地说,软件应在任何能容易而有效地操作。广义地
18、说,软件应在任何硬件配置与操作系统下都能正常有效地运行。硬件配置与操作系统下都能正常有效地运行。8)可测试性)可测试性(testablity)n软件的可测试性是指对该软件的技术性能及质量软件的可测试性是指对该软件的技术性能及质量是否能够确定测试的手段和方法。一个可测试性是否能够确定测试的手段和方法。一个可测试性好的软件,能够比较容易地对它确定出测试的方好的软件,能够比较容易地对它确定出测试的方法,以便对它的技术性能作出评价。法,以便对它的技术性能作出评价。9)结构性)结构性(structuredness)n软件相互依赖的部分,其结构应具有确定的形式。软件相互依赖的部分,其结构应具有确定的形式。
19、一般所说的结构性指的是模块化的程度,其编制一般所说的结构性指的是模块化的程度,其编制是否符合结构化和模块化的原则等。当然,在追是否符合结构化和模块化的原则等。当然,在追求高可靠性,高运行效率时可能会使结构性能变求高可靠性,高运行效率时可能会使结构性能变差。差。10)友好性)友好性(friendliness) 一个优秀的软件产品应该具有友好的用户界面。一个优秀的软件产品应该具有友好的用户界面。有丰富的操作提示和联机帮助信息,使用户能够有丰富的操作提示和联机帮助信息,使用户能够随时得到提示和帮助。随时得到提示和帮助。2 软件的特征软件的特征n软件主要包括程序和相关文档。软件主要包括程序和相关文档。
20、n从静态角度来看,程序是求解客观问题的逻辑描从静态角度来看,程序是求解客观问题的逻辑描述,需检查程序的语法是否符合规则形式要求;述,需检查程序的语法是否符合规则形式要求;n从动态角度来看,需要验证程序的所有逻辑流结从动态角度来看,需要验证程序的所有逻辑流结构和数据结构是否正确。是否能够完成特定的操构和数据结构是否正确。是否能够完成特定的操作和数据处理。作和数据处理。n软件的核心是其运行过程中动态变化的处理过程。软件的核心是其运行过程中动态变化的处理过程。n软件生产属于资金密集和人力密集的行业。大型软件生产属于资金密集和人力密集的行业。大型软件开发投入人力较多,时间长,费用高。软件开发投入人力较
21、多,时间长,费用高。 1)软件是一种逻辑产品)软件是一种逻辑产品n软件和硬件是截然不同的两种产品和概念。软件软件和硬件是截然不同的两种产品和概念。软件是一种逻辑产品,具有无形性,是脑力劳动的结是一种逻辑产品,具有无形性,是脑力劳动的结晶。晶。n软件产品在设计和生产过程中,首先要抽象出问软件产品在设计和生产过程中,首先要抽象出问题求解的数学模型或逻辑模型,再把这些模型转题求解的数学模型或逻辑模型,再把这些模型转化为求解模型,然后根据求解模型写出程序,经化为求解模型,然后根据求解模型写出程序,经过调试和运行程序,最后得到求解的结果。过调试和运行程序,最后得到求解的结果。n整个开发过程是通过人脑进行
22、的逻辑思维完成的,整个开发过程是通过人脑进行的逻辑思维完成的,其无形化的特征给软件的开发、生产过程的管理其无形化的特征给软件的开发、生产过程的管理带来不便,进度难以控制,开发质量难以评价和带来不便,进度难以控制,开发质量难以评价和保证。保证。n如果在软件运行中发现错误,很可能是一个在开发如果在软件运行中发现错误,很可能是一个在开发阶段隐藏的、在测试阶段没能检测出来的故障。因阶段隐藏的、在测试阶段没能检测出来的故障。因此,软件维护通常意味着修改原来的设计,这就在此,软件维护通常意味着修改原来的设计,这就在客观上决定了软件维护是相当复杂的工作。客观上决定了软件维护是相当复杂的工作。2)软件产品的质
23、量需通过实践来验证)软件产品的质量需通过实践来验证n软件产品在设计、编程和实现过程中的各个阶段其软件产品在设计、编程和实现过程中的各个阶段其质量难以保证和检验,只有在实际问题求解过程中质量难以保证和检验,只有在实际问题求解过程中被证实是可行的,才能成为产品。被证实是可行的,才能成为产品。3)软件产品的成本构成具有上升的趋势)软件产品的成本构成具有上升的趋势n在软件产品生存周期中,其成本构成中人力资源在软件产品生存周期中,其成本构成中人力资源占了相当大的比重。这其中,设计和生产只占很占了相当大的比重。这其中,设计和生产只占很小比重,而维护却占了很大比重,据统计数据表小比重,而维护却占了很大比重,
24、据统计数据表明,软件维护的费用占软件总费用的明,软件维护的费用占软件总费用的55%70%。n软件的费用具有上升的趋势。这是因为实际问题软件的费用具有上升的趋势。这是因为实际问题的复杂性决定了实用软件的系统规模庞大,软件的复杂性决定了实用软件的系统规模庞大,软件结构复杂。例如,庞大系统中各个模块之间逻辑结构复杂。例如,庞大系统中各个模块之间逻辑接口的定义、数据结构的描述、所有开发人员的接口的定义、数据结构的描述、所有开发人员的协调和组织等等。协调和组织等等。 4)软件产品的故障率随着软件维护而下降)软件产品的故障率随着软件维护而下降n在软件产品生存周期中,软件在其生命周期的初在软件产品生存周期中
25、,软件在其生命周期的初始阶段存在较高的故障率,当开发过程中的错误始阶段存在较高的故障率,当开发过程中的错误被纠正后,其故障率下降到一定的水平并保持相被纠正后,其故障率下降到一定的水平并保持相对稳定,直到该软件被废弃不用。对稳定,直到该软件被废弃不用。n软件是只有过时而无软件是只有过时而无“磨损磨损”的商品。所谓过时的商品。所谓过时往往是它所在的硬件环境升级,导致配套软件必往往是它所在的硬件环境升级,导致配套软件必须做相应的升级,否则不能再用;或者同类软件须做相应的升级,否则不能再用;或者同类软件产品功已更新换代,使得本产品不具备竞争力。产品功已更新换代,使得本产品不具备竞争力。 3软件的分类软
26、件的分类 按软件功能划分和按软件规模划分。按软件功能划分和按软件规模划分。1)按软件的功能划分)按软件的功能划分n按功能划分,软件通常可以分为系统软件和应用按功能划分,软件通常可以分为系统软件和应用软件两大类。如下图所示。软件两大类。如下图所示。 软件软件系统软件系统软件应用软件应用软件操作系统操作系统网络系统网络系统编译系统编译系统工具软件工具软件信息管理信息管理实时控制实时控制科学计算科学计算人工智能人工智能专用领域专用领域嵌入式软件嵌入式软件多媒体技术多媒体技术(1)系统软件:系统软件:n系统软件定义系统软件定义:是为计算机系统提供基本功能服:是为计算机系统提供基本功能服务的程序集合;务
27、的程序集合;n系统软件的功能系统软件的功能:支持计算机系统的正常运行,:支持计算机系统的正常运行,并实现用户提交的各种操作。并实现用户提交的各种操作。n系统软件的主要特征系统软件的主要特征:与计算机硬件系统有很强:与计算机硬件系统有很强的交互性,能对共享资源进行调度管理,能解决的交互性,能对共享资源进行调度管理,能解决并发性操作处理中存在的协调问题。并发性操作处理中存在的协调问题。n系统软件的用户接口系统软件的用户接口:一般为用户提供多样化的:一般为用户提供多样化的外部接口,便于用户管理和使用系统资源。外部接口,便于用户管理和使用系统资源。 n系统软件主要包括:操作系统、网络系统、计算系统软件
28、主要包括:操作系统、网络系统、计算机语言编译机语言编译(解释解释)系统以及实用工具软件系统等。系统以及实用工具软件系统等。n操作系统是计算机软件系统的核心,是对计算机操作系统是计算机软件系统的核心,是对计算机系统的全部硬、软件资源系统的全部硬、软件资源(如如cpu、内存、硬盘、内存、硬盘、打印机等外部设备和各种软件打印机等外部设备和各种软件)进行统一管理、调进行统一管理、调度和分配的软件系统,并向上层软件提供服务,度和分配的软件系统,并向上层软件提供服务,各种应用程序都是在操作系统的支持下运行的,各种应用程序都是在操作系统的支持下运行的,用户是通过操作系统对计算机进行操作的。用户是通过操作系统
29、对计算机进行操作的。n操作系统:操作系统:包括包括cpucpu及进程管理、内存及进程管理、内存管理、外设管理、外设管理、文件系统管理。管理、文件系统管理。n网络系统:网络系统:承担着整个网络范围内的任务管理和承担着整个网络范围内的任务管理和资源管理,帮助用户共享整个网络中的信息资源,资源管理,帮助用户共享整个网络中的信息资源,对网络内的共享设备进行访问,并支持网络中各对网络内的共享设备进行访问,并支持网络中各个站点之间的通信,使网络中各个部分遵守协议,个站点之间的通信,使网络中各个部分遵守协议,协调一致,有条不紊地工作。协调一致,有条不紊地工作。n程序设计语言编译系统:程序设计语言编译系统:把
30、该语言编写的程序把该语言编写的程序“翻译翻译”成计算机能直接执行的机器指令。成计算机能直接执行的机器指令。n工具软件:工具软件:帮助操作系统更有效地完成计算机系帮助操作系统更有效地完成计算机系统的管理和维护,提高工作效率,实现普通用户统的管理和维护,提高工作效率,实现普通用户无法实现的一些操作。无法实现的一些操作。n数据库管理系统数据库管理系统:dbms是专门用于数据库定义、是专门用于数据库定义、管理和维护的系统软件,是用户和数据库间的接管理和维护的系统软件,是用户和数据库间的接口。口。n微机微机windows平台的数据库管理系统有平台的数据库管理系统有access、visual foxpro
31、、paradox等,常见的大型关系数据等,常见的大型关系数据库系统有库系统有 sql server、infomix、oracale以及以及sybase等。等。n随着多媒体、随着多媒体、internet和和www 技术的发展,现在技术的发展,现在的大型数据库大都支持多媒体数据类型,并以各的大型数据库大都支持多媒体数据类型,并以各种方式提供了对种方式提供了对www的支持,使异地、异构机的支持,使异地、异构机之间的数据共享成为现实。之间的数据共享成为现实。 (2)应用软件是为满足用户不同领域和不同问题的应应用软件是为满足用户不同领域和不同问题的应用需求而设计的软件,可以拓宽计算机系统的应用需求而设计
32、的软件,可以拓宽计算机系统的应用领域。用领域。应用软件主要包括下列几类软件:应用软件主要包括下列几类软件: 管理软件系统管理软件系统 (management information system,mis)软件软件nmis的核心是数据库管理系统的核心是数据库管理系统 (database management system,dbms)。nmis的特点是有一个或多个数据库,存放所有业的特点是有一个或多个数据库,存放所有业务的信息,而应用程序是离散的,如工资、会计、务的信息,而应用程序是离散的,如工资、会计、仓库、生产计划调度,彼此只有数据联系。仓库、生产计划调度,彼此只有数据联系。 实时实时(rea
33、l-time)控制软件控制软件n实时控制软件实时控制软件是对现实世界中随时是对现实世界中随时(极短时间内极短时间内)发发生的事件进行监测、分析和控制的软件,其包括生的事件进行监测、分析和控制的软件,其包括从外部环境收集信息从外部环境收集信息(模拟量数据要通过模拟量数据要通过a/d、d/a变换变换),分析后按应用要求转移信息,处理后,分析后按应用要求转移信息,处理后作出响应作出响应 (到外部的输出到外部的输出),实时处理要求即时响,实时处理要求即时响应用户的服务请求,并在较短时间内完成数据处应用户的服务请求,并在较短时间内完成数据处理。理。科学计算数据处理软件科学计算数据处理软件n科学计算数据处
34、理软件:科学计算数据处理软件:应用在数值领域,解决应用在数值领域,解决数值算法的速度和精度。包括可视化计算、大量数值算法的速度和精度。包括可视化计算、大量图形的计算机辅助设计,以及在多处理机系统中图形的计算机辅助设计,以及在多处理机系统中实现并行计算和系统仿真等技术。实现并行计算和系统仿真等技术。 人工智能软件人工智能软件n人工智能软件人工智能软件建立在基于知识库以及相应规则的建立在基于知识库以及相应规则的专家系统上。专家系统上。n专家系统也称为基于知识的问题求解系统。专家系统也称为基于知识的问题求解系统。n实用的人工智能软件有模式识别、定理证明、专实用的人工智能软件有模式识别、定理证明、专家
35、系统、辅助决策支持、图像语音识别、神经网家系统、辅助决策支持、图像语音识别、神经网络系统等。近年来图像、声音识别、自学习、人络系统等。近年来图像、声音识别、自学习、人工神经网络也发展迅速,例如,语音输入和机器工神经网络也发展迅速,例如,语音输入和机器语言翻译等。语言翻译等。 嵌入式嵌入式(embeded)软件软件n嵌入式软件:嵌入式软件:用于工业产品的自动化和智能化,用于工业产品的自动化和智能化,在每个工业产品中嵌入一个的单片机,其中的软在每个工业产品中嵌入一个的单片机,其中的软件可根据传感器传入的数据控制该产品行为。这件可根据传感器传入的数据控制该产品行为。这些软件首先在宿主机些软件首先在宿
36、主机(host)上以某种语言开发,经上以某种语言开发,经交叉编译后成为单片机的机器码程序,交叉编译后成为单片机的机器码程序,烧入烧入单单片机,故为嵌入式。应用程序的开发、调试、修片机,故为嵌入式。应用程序的开发、调试、修改和升级全在宿主机上完成。近年来,改和升级全在宿主机上完成。近年来,java芯片芯片和和java嵌入式应用发展特别迅速。嵌入式应用发展特别迅速。 多媒体软件多媒体软件n多媒体软件多媒体软件包括多媒体数据传输和多媒体数据包括多媒体数据传输和多媒体数据处理,例如,图形处理、图像处理、动画制作、处理,例如,图形处理、图像处理、动画制作、音频视频播放、音频视频编辑、电视会议、多音频视频
37、播放、音频视频编辑、电视会议、多媒体写作工具以及桌面排版等应用软件。媒体写作工具以及桌面排版等应用软件。 2按软件规模划分按软件规模划分n软件系统可以划分为软件系统可以划分为6种不同的规模种不同的规模系统规模系统规模 人年人年源程序代码源程序代码微型系统微型系统1人研制人研制14周周500行行小型系统小型系统1人研制人研制16个月个月10002000行行中型系统中型系统25人研制人研制12年年500010000行行较大型系统较大型系统 520人研制人研制23年年50000100000行行大型系统大型系统1001000人研制人研制45年年1 百万行;百万行;极大型系统极大型系统 20005000
38、人研制人研制510年年 1 百万百万10百万行百万行 14 应用系统软件的开发应用系统软件的开发初学者在软件开发中存在的问题初学者在软件开发中存在的问题n没有准确、完整地了解用户的实际需求,就急于没有准确、完整地了解用户的实际需求,就急于编程。编程。n重编程,轻需求分析;重编程,轻需求分析;n重开发,轻维护;重开发,轻维护;n重程序,轻文档。重程序,轻文档。n这样做的后果就是在软件系统中这样做的后果就是在软件系统中“埋藏埋藏”了许多了许多故障隐患,直接危害着系统的可靠性和稳定性。故障隐患,直接危害着系统的可靠性和稳定性。n而在软件开发过程中,问题发现得越早,解决它而在软件开发过程中,问题发现得
39、越早,解决它所花费的代价就越小;而问题发现得越晚,解决所花费的代价就越小;而问题发现得越晚,解决它所花费的代价就越高。它所花费的代价就越高。n在进行软件设计时应当注意以下几点:在进行软件设计时应当注意以下几点:(1)注重分析解决问题。)注重分析解决问题。n软件开发过程实际上就是用程序语言来描述解决软件开发过程实际上就是用程序语言来描述解决问题的方法和步骤。所以软件开发的基本过程是问题的方法和步骤。所以软件开发的基本过程是分析用户的需求,找出需要解决的问题,发现解分析用户的需求,找出需要解决的问题,发现解决问题的方法。决问题的方法。(2)掌握应用系统设计方法。)掌握应用系统设计方法。n分析和综合
40、是处理复杂系统的基本方法,面对一分析和综合是处理复杂系统的基本方法,面对一个大的系统,应该学会使用分解与综合的应用系个大的系统,应该学会使用分解与综合的应用系统设计方法,把复杂问题分解为若干子问题,分统设计方法,把复杂问题分解为若干子问题,分散难点,各个击破,再把设计出的各个子模块综散难点,各个击破,再把设计出的各个子模块综合为一大系统。合为一大系统。(3)广泛了解当前的最新计算机应用技术。)广泛了解当前的最新计算机应用技术。n由于计算机技术发展飞速,每年都有新的技术或由于计算机技术发展飞速,每年都有新的技术或者已有技术的升级版本出现,选准适合的新技术者已有技术的升级版本出现,选准适合的新技术
41、来实现设计目标,具有事半功倍的效果。实现一来实现设计目标,具有事半功倍的效果。实现一个系统,往往会使用几种程序设计语言或者工具个系统,往往会使用几种程序设计语言或者工具软件。软件。(4)学会建立抽象模型。)学会建立抽象模型。n软件设计需要根据物理模型抽象出其逻辑模型,软件设计需要根据物理模型抽象出其逻辑模型,通过建立的模型描述抽象事物间的关系。例如,通过建立的模型描述抽象事物间的关系。例如,建立系统需要分析模型、解题需要算法模型,在建立系统需要分析模型、解题需要算法模型,在算法中采用符号语言代替计算机动作;在程序文算法中采用符号语言代替计算机动作;在程序文档中采用规格说明抽象软件行为。档中采用
42、规格说明抽象软件行为。 (5)力求系统结构清晰。)力求系统结构清晰。n现在的软件越来越复杂,需要重视程序结构、数现在的软件越来越复杂,需要重视程序结构、数据结构、结构化数据、程序的体系结构等软件设据结构、结构化数据、程序的体系结构等软件设计的关键技术,在编写程序代码前,要对系统结计的关键技术,在编写程序代码前,要对系统结构有一个清晰明了概念,设计出一个好的结构可构有一个清晰明了概念,设计出一个好的结构可以使解决问题的步骤变得清晰、简洁、高效。以使解决问题的步骤变得清晰、简洁、高效。(6)注意形式化、一致性和规范化。)注意形式化、一致性和规范化。n程序语言、数学公式都是形式系统,只有按照约程序语
43、言、数学公式都是形式系统,只有按照约定的形式符号才能让计算机理解编程意图。随着定的形式符号才能让计算机理解编程意图。随着软件系统的越来越复杂,开发人员越来越多,需软件系统的越来越复杂,开发人员越来越多,需要符号定义、表示风格、文档格式尽可能规范和要符号定义、表示风格、文档格式尽可能规范和一致。以利于模块的综合、开发和调试。一致。以利于模块的综合、开发和调试。(7)重视书写程序文档。)重视书写程序文档。n以便帮助阅读和发现程序中的错误。以便帮助阅读和发现程序中的错误。一些不正确的观念一些不正确的观念 n观念之一:观念之一:我们拥有一套讲述如何开发软件的书我们拥有一套讲述如何开发软件的书籍,书中充
44、满了标准与示例,可以帮助我们解决籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。软件开发中遇到的任何问题。n客观情况:客观情况:好的参考书无疑能指导我们的工作。好的参考书无疑能指导我们的工作。充分利用书籍中的方法、技术和技巧,可以有效充分利用书籍中的方法、技术和技巧,可以有效地解决软件开发中大量常见的问题。但实践者并地解决软件开发中大量常见的问题。但实践者并不能因此依赖于书籍,这是因为:(不能因此依赖于书籍,这是因为:(1)现实的工)现实的工作中,由于条件千差万别,即使是相当成熟的软作中,由于条件千差万别,即使是相当成熟的软件工程规范,常常也无法套用。(件工程规范,常常也无
45、法套用。(2)软件技术日)软件技术日新月异,没有哪一种软件标准能长盛不衰。祖传新月异,没有哪一种软件标准能长盛不衰。祖传秘方在某些领域很吃香,而在软件领域则意味着秘方在某些领域很吃香,而在软件领域则意味着落后。落后。n观念之二:观念之二:既然需求分析很困难,不管三七二十既然需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时一先把软件做了再说,反正软件是灵活的,随时可以修改。可以修改。n客观情况:客观情况:对需求把握得越准确,软件的修修补对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正
46、。软件修改越早代价发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大,就跟治病一样道理。越少,修改越晚代价越大,就跟治病一样道理。进度安排存在的问题进度安排存在的问题 (1)主管臆断制定了不现实的期限,按照不合理的)主管臆断制定了不现实的期限,按照不合理的进度表开展工作。进度表开展工作。(2)客户的需求发生了变化,但没有对进度表作出)客户的需求发生了变化,但没有对进度表作出相应的修改。相应的修改。(3)低估了项目的规模与难度,导致投入的人力和)低估了项目的规模与难度,导致投入的人力和物力不足。物力不足。(4)并未预见到存在难以克服的技术障碍。)并未预见到存在难以克服的技术障碍。(
47、5)开发人员之间不能很好的交流、协作,导致各)开发人员之间不能很好的交流、协作,导致各阶段任务难以如期完成。阶段任务难以如期完成。一些有益的建议一些有益的建议 (1)进度表要经过开发小组的讨论,在得到大部数)进度表要经过开发小组的讨论,在得到大部数人的支持后才能实施。避免出现一厢情愿的局面。人的支持后才能实施。避免出现一厢情愿的局面。(2)进度安排并不见得一定要符合逻辑顺序。应尽)进度安排并不见得一定要符合逻辑顺序。应尽可能地先做技术难度高的事,后做难度低的事。也可能地先做技术难度高的事,后做难度低的事。也就是辛苦在前,轻松在后。就是辛苦在前,轻松在后。(3)开发一个大的软件项目,应该将进度表
48、分为若)开发一个大的软件项目,应该将进度表分为若干个里程碑。一个里程碑之内的多个任务可以同步干个里程碑。一个里程碑之内的多个任务可以同步进行。进行。(4)进度表中必须留有缓冲时间,并将缓冲时间用)进度表中必须留有缓冲时间,并将缓冲时间用到不确定的事情上。因为人们对即将要做的事情知到不确定的事情上。因为人们对即将要做的事情知之甚少,所以要留一些时间以防不测。之甚少,所以要留一些时间以防不测。microsoft公司的一些开发小组甚至制定了公司的一些开发小组甚至制定了“50% 缓冲规缓冲规则则” 。零缺陷质量管理的观念零缺陷质量管理的观念 高目标高目标n做一个项目通常需要多个人的协作。假设项目的总做
49、一个项目通常需要多个人的协作。假设项目的总质量(最高为质量(最高为1)是十个开发人员的工作质量之积。)是十个开发人员的工作质量之积。如果每个人的质量目标是如果每个人的质量目标是0.95,那么十个人的累积,那么十个人的累积质量不会超过质量不会超过0.19。如果每个人的质量目标是。如果每个人的质量目标是0.9分,分,那么十个人的累积质量不会超过那么十个人的累积质量不会超过0.03。只有每个人。只有每个人都做到都做到1,项目总质量才会是,项目总质量才会是1。软件的质量因素软件的质量因素 n“运行正确运行正确”的程序不见得就是高质量的程序。这的程序不见得就是高质量的程序。这个程序也许运行速度很低并且浪
50、费内存;也许代码个程序也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,除了开发者本人谁也看不懂也不会写得一塌糊涂,除了开发者本人谁也看不懂也不会使用。正确性只是反映软件质量的一个因素而已。使用。正确性只是反映软件质量的一个因素而已。n软件的质量因素很多,如正确性、精确性、可靠性、软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十可复用性、可扩充性、兼容性等等(还可以列出十几个)。这些质量因素之间几个)。这些质量因素之间“你中有我,我中有你中有我,我中有他他”。
51、n为了便于理解,可以参照武侠小说中的武学分类,为了便于理解,可以参照武侠小说中的武学分类,将质量因素粗略地分成几大派。将质量因素粗略地分成几大派。 正确性与精确性易用性可理解性与简洁性性能与效率可复用性与可扩充性少林派、武当派华山派昆仑派峨嵋派崆峒派正确性与精确性正确性与精确性 n正确性与精确性排在质量因素的第一位,因为如果正确性与精确性排在质量因素的第一位,因为如果软件运行不正确或者不精确,就会给用户造成不便软件运行不正确或者不精确,就会给用户造成不便甚至造成损失。甚至造成损失。n即使一个软件能即使一个软件能100% 地按需求规格执行,但是如地按需求规格执行,但是如果需求分析错了,那么对客户
52、而言这个软件也存在果需求分析错了,那么对客户而言这个软件也存在错误。错误。n即使需求分析完全符合客户的要求,但是如果软件即使需求分析完全符合客户的要求,但是如果软件没有没有100% 地按需求规格执行,那么这个软件也存地按需求规格执行,那么这个软件也存在错误。开发一个大的软件项目,程序员要为在错误。开发一个大的软件项目,程序员要为“正正确确”、“精确精确”四个字竭尽精力。四个字竭尽精力。容错性和可靠性容错性和可靠性n容错性和可靠性是与正确性、精确性相关的质量因容错性和可靠性是与正确性、精确性相关的质量因素素n容错性承认软件系统存在不正确与不精确的因素,容错性承认软件系统存在不正确与不精确的因素,
53、为了防止潜在的不正确与不精确因素引发灾难,系为了防止潜在的不正确与不精确因素引发灾难,系统为此设计了安全措施。在一些高风险的软件系统,统为此设计了安全措施。在一些高风险的软件系统,如航空航天、武器、金融等系统中,容错性设计非如航空航天、武器、金融等系统中,容错性设计非常重要。常重要。n可靠性是指在一定的环境下,在给定的时间内,系可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。我们无法对软件进行彻底地统不发生故障的概率。我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如得好好的,说不准哪一天就不正常了,如“2000年年”问题。问题。性能与效率性能与效率 n用户都希望软件的运行速度高些(高性能),并且用户都希望软件的运行速度高些(高性能),并且占用资源少些(高效率),占用资源少些(高效率),“干活要快点,吃得要干活要快点,吃得要少点少点”。n程序员可以通过优化算法、数据结构和代码组织来程序员可以通过优化算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售原酒合同范本
- 校园净水合同范本
- 废旧木厂转让合同范本
- 白酒供货合同范本
- 纹身店员合同范本
- 工厂企业劳务合同范本
- 预防医学展示
- 预防意外跌落托班
- 预防感染:公共区域防护指南
- 面试实验室管理员
- 河南省郑州市管城区2024-2025学年级九年级下学期第一次模拟数学试题(原卷版+解析版)
- 儿童各年龄期保健儿童保健学课件
- 苏教版数学一年级下册(2024)第七单元观察物体(一)综合素养测评 A 卷(含答案)
- 2025年中考英语第一次模拟试卷01(广州专用)(原卷版)
- 《石油工程事故案例分析》课件
- 甘肃卷2024年高考真题化学试题(含答案)
- 2024中国建筑第七工程局有限公司招聘笔试参考题库附带答案详解
- 初级咖啡师资格理论考试题及答案
- 2025高考语文一轮复习学案:语言连贯之语句补写-精读语段精确推导
- 2025年中国废旧轮胎循环利用行业市场发展监测及投资战略规划研究报告
- 招标代理机构选取突发情况应急处理预案
评论
0/150
提交评论