1、第第1 1章章 基础知识基础知识 第第1章章 基基 础础 知知 识识 1.1 计算机系统组成与应用分类计算机系统组成与应用分类 1.1.1 计算机的基本组成计算机的基本组成 1.1.2 计算机的应用分类计算机的应用分类1.2 计算机软件计算机软件 1.2.1 计算机语言计算机语言1.2.2 计算机软件定义计算机软件定义1.2.3 系统软件系统软件1.2.4 应用软件应用软件1.2.5 软件开发环境软件开发环境1.2.6 面向对象的软件开发方法面向对象的软件开发方法1.3 1.3 软件技术基础软件技术基础习题习题第第1 1章章 基础知识基础知识 1.1 计算机系统组成与应用分类计算机系统组成与应
2、用分类 一个完整的计算机系统计算机系统由硬件和软件两个部分组成。计算机硬件计算机硬件是组成计算机的物理设备的总称,它们由各种器件和电子线路组成,是计算机系统工作的物质基础。所谓软件软件是一个程序的集合,这种程序不只是用户为解决某一个具体问题而编制的程序,它还具有支持计算机工作和扩大计算机功能的作用。第第1 1章章 基础知识基础知识 随着程序规模及复杂程度的增大,软件的内容不仅仅是其程序实体,还包括开发程序、使用程序、维护程序所需要的一切文档。因此,计算机软件计算机软件是计算机硬件设备上运行的各种程序及其相关资料的总称。软、硬件关系软、硬件关系可表述为:没有软件的计算机系统通常称为“裸机”,而“
3、裸机”是无法工作的,只有硬件和软件的相互依存才能构成一个可用的计算机系统。随着计算机硬件技术的不断发展和广泛使用,软件也逐步丰富与完善,而软件的发展又大大促进了硬件的发展。第第1 1章章 基础知识基础知识 1.1.1 计算机的基本组成计算机的基本组成 迄今为止的计算机都是以存储程序原理为基础的冯冯诺依曼型计算机诺依曼型计算机,是1946年由冯诺依曼领导设计的,一般都由5大功能部件组成组成,它们是:运算器、控制器、存储器、输入设备和输出设备。图1-1给出了计算机各功能部件的关系图,图中双线代表数据传输线路,单线代表控制信号传输线路。第第1 1章章 基础知识基础知识 图1-1 计算机硬件系统基本组
4、成框图 运算器控制器主机输入设备输出设备外部设备存储器第第1 1章章 基础知识基础知识 1控制器控制器 控制器控制器是计算机的控制部件,它控制计算机各部分自动协调地工作,它完成对指令的解释和执行。控制器每次从存储器读取一条指令,经分析译码,产生一串操作命令发向各个部件,控制各部件动作,实现该指令的功能;然后再取下一条指令,继续分析、执行,直至程序结束,从而使整个机器能连续、有序地工作。应当说明,控制器本身不进行运算,运算是由运算器来完成的。第第1 1章章 基础知识基础知识 2运算器运算器 运算器运算器是用于对数据进行加工的部件,它可对数据进行算术运算和逻辑运算。在需要进行某项运算时,由控制器发
5、出命令,将存放在存储器中的数据送到运算器。然后由控制器再发出运算的命令(例如使A和B相加),然后将运算结果送回存储器存起来,以便下次运算时使用或将它输出。算术运算包括加、减、乘、除及它们的复合运算。逻辑运算包括一般的逻辑判断和逻辑比较,如比较、移位、逻辑加、逻辑乘、逻辑反等操作。第第1 1章章 基础知识基础知识 3存储器存储器 存储器存储器是计算机的记忆装置,用来存放程序和数据。程序程序是计算机操作的依据,数据数据是计算机操作的对象。计算机中数据的存储和运算是以二进制形式进行的。存储器有一个特点,即从某一存储单元中“取”一个数据后,该存储单元中的数据并不消失。除非向该单元送入一个新的数据后,该
6、单元的内容才改变。因此把数据的“存”和“取”称为“读出”和“写入”更为确切。第第1 1章章 基础知识基础知识 4输入设备输入设备 输入设备输入设备是外部向计算机传送信息的装置。其功能是将数据、程序及其它信息,从人们熟悉的形式转换成计算机能接受的信息形式,输入到计算机内部。常见的输入设备常见的输入设备有键盘、鼠标、光笔、纸带输入机、模/数转换器、声音识别输入等。第第1 1章章 基础知识基础知识 5输出设备输出设备 输出设备输出设备功能是将计算机内部二进制形式的信息转换成人们所需要的或其它设备能接受和识别的信息形式,输出到输出设备上。常见的输出设备常见的输出设备有打印机、显示器、绘图仪、数/模转换
7、器、声音合成输出等。有的设备兼有兼有输入、输出两种功能,如磁盘机、磁带机等,它们既是输入设备,也是输出设备。第第1 1章章 基础知识基础知识 通常把控制器和运算器合起来称为“中央处中央处理机理机”(Central Processor Unit),简称CPUCPU,它是计算机的核心部分;CPU和内存储器合起来称为主机主机;输入设备、输出设备和外存储器合称为外外部设备部设备;外部设备通过接口线路接口线路与主机相连。第第1 1章章 基础知识基础知识 1.1.2 计算机的应用分类计算机的应用分类 早期的计算机主要是用于数值计算数值计算,计算机输入和处理的对象是数值,处理的算法是数值计算方法,输出的结果
8、也是数值。但是,电子计算机诞生没过多久,就突破了这个界限。由于它的逻辑功能增强和信息技术飞速发展,人们发现除了处理数值外还可以处理字母、符号、表格、图像乃至文字、语言、声音等。对数值的处理而言,也不仅限于对数值的计算,还可以进行数值的排序、数值的检索等,这些都称为计算机的非数值应用非数值应用。第第1 1章章 基础知识基础知识 计算机应用从数值到非数值是计算机发展史上的一次飞跃,其结果是使计算机从科学家、工程师们手中解放出来进入到银行、商店、工厂、办公室乃至社会的各个领域。计算机应用根据其应用应用性质来分分可以归纳为5 5大类大类:第第1 1章章 基础知识基础知识 1数值计算数值计算(又称科学计
9、算又称科学计算)数值计算数值计算是指用计算机来处理科学研究和工程技术中所提出的数学问题。其特点特点是计算量大,而逻辑关系相对简单。例如,导弹飞行轨道计算,宇宙飞船运动轨迹和气动干扰的计算,热核反应控制条件及能量计算,天文测量和天气预报方程计算等。除了国防和尖端科技外,在其它学科和工程设计方面,如数学、力学、化学、物理以及石油勘探、桥梁设计等领域都存在着复杂的数学问题,需要利用计算机进行数值计算。第第1 1章章 基础知识基础知识 2数据和数据处理数据和数据处理 数据和数据处理数据和数据处理是计算机的重要应用领域。数据数据是指需用计算机处理的日常生活工作中碰到的大量数据,甚至相当多是需要重复处理的
10、数据。这一类数据的特点特点是数据量多,要反复处理。当前的数据也已有更广泛的含义,如图、文、声、像等多媒体数据,它们都已成为计算机的处理对象。第第1 1章章 基础知识基础知识 数据处理数据处理是指对数据的收集、存储、加工、分析和传送的全过程。计算机数据处理应用广泛,例如财政、金融系统数据的统计和核算,银行储蓄系统的存款、取款和计息,图书、情报系统的书刊、文献和档案资料的管理及查询,商业系统的计划、销售、市场、采购和库存管理等,还有铁路、机场、港口的管理和调度。而航空订票系统、交通管制系统等又都是实时数据和信息处理系统。上述数据处理应用的特点特点是数据量很大,但计算相对简单。第第1 1章章 基础知
11、识基础知识 近年来随着多媒体技术的发展,数据处理增加了新的内容,如指纹的识别、图像和声音信息的处理等,这些处理都会涉及更广泛的数据形式。这些数据处理过程不但数据量大,而且还有大量且复杂的运算过程。据统计,计算机在数据处理方面的应用占全部计算机应用的80%。第第1 1章章 基础知识基础知识 3过程控制过程控制(实时控制实时控制)过程控制过程控制是生产自动化的重要技术内容和手段,它是由计算机对所采集到的数据按一定方法进行计算,然后再将计算结果输出到指定执行机构去控制生产的过程。计算机的控制对象可以是机床、生产线和车间,甚至是整个工厂。例如,在化工厂控制化工生产的某些环节或全过程,在炼铁车间控制高炉
12、生产的全过程等。第第1 1章章 基础知识基础知识 用于生产过程控制的系统,一般都是实时实时系统系统,它要求有对输入数据及时做出反映(响应)的能力。这一类问题的特点特点是精度高,要求及时做出反映。当然,由于环境和控制对象以及工作任务的不同,控制系统对计算机系统的要求也会不同,一般会对计算机系统的可靠性、封闭性、抗干扰性等指标提出要求。第第1 1章章 基础知识基础知识 4辅助设计辅助设计 计算机辅助设计计算机辅助设计是计算机的另一个重要应用领域。它不仅应用于产品和工程辅助设计,而且还包括辅助制造、辅助测试、辅助教学以及其它多方面的内容,这些都统称为计算机辅助系统。第第1 1章章 基础知识基础知识
13、计算机辅助设计计算机辅助设计(CAD,Computer Aided Design)是利用计算机帮助设计人员进行产品、工程设计的重要技术手段,它能提高设计自动化程度,不仅能节省人力和物力,而且速度快、质量高,为缩短产品设计周期、保证质量提供了条件。这种技术目前已在飞机、车船、桥梁、建筑、机械、服装等设计中得到广泛的应用。计算机辅助设计为超大规模集成电路技术的发展与应用提供了有力的支持。第第1 1章章 基础知识基础知识 计算机辅助制造计算机辅助制造(CAM,Computer Aided Manufacturing)是利用计算机进行生产设备的控制、操作和管理的系统,它能提高产品质量,降低生产成本,缩
14、短生产周期,并有利于改善生产人员的工作条件。计算机辅助测试计算机辅助测试(CAT,Computer Aided Testing)是利用计算机来辅助进行复杂而大量的测试工作的系统。第第1 1章章 基础知识基础知识 计算机辅助教学计算机辅助教学(CAI,Computer Aided Instruction)是现代教学手段的体现,它利用计算机帮助学员进行学习,它将教学内容加以科学的组织,并编制好教学程序,使学生能通过人机交互方式自如地从提供的材料中学到所需要的知识并接受考核。第第1 1章章 基础知识基础知识 5人工智能人工智能 人工智能人工智能主要研究用计算机来模拟人类的某些智力活动,如学习过程、适
15、应能力、推理过程等,它也是计算机的一个重要应用领域。如利用计算机进行数学定理的证明、进行逻辑推理、理解自然语言、辅助疾病诊断、实现人机对弈、密码破译等,这些都是利用人们赋予计算机的智能来完成的。第第1 1章章 基础知识基础知识 人工智能人工智能是利用计算机来模拟人的思维的过程,并利用计算机程序来实现这些过程。智能机器人、专家系统等都是人工智能的应用成果,它们为计算机应用开辟了一个最有吸引力的领域。第第1 1章章 基础知识基础知识 1.2 计计 算算 机机 软软 件件 1.2.1 计算机语言计算机语言 1机器语言机器语言 人和计算机打交道,必须要解决一个“语言”的沟通问题。计算机并不能理解和执行
16、人们使用的自然语言,而只能接受和执行二进制的指令。计算机能够直接识别和执行的这种指令,称为机器指令机器指令。每一种类型的计算机都规定了可以执行的若干种指令,这种指令的集合就是机器语言指令系统,简称为机器语言机器语言。第第1 1章章 基础知识基础知识 机器语言机器语言特点特点:用机器语言编写程序,程序设计人员必须熟悉机器指令的二进制代码。这些由“0”和“1”组成的指令使人难学、难记、难懂、难修改,给使用者带来很大的不便。由于机器语言直接依赖机器,所以对于不同型号的计算机,其机器语言是不同的,即在一种类型计算机上编写的机器语言程序,不能在另一种类型的机器上运行。要想在另一种机器上运行,必须重新学习
17、该机器的机器语言,并编写相关程序。显然这是很不方便的,给计算机的推广使用造成很大的障碍。第第1 1章章 基础知识基础知识 2汇编语言汇编语言 汇编语言汇编语言是从机器语言发展演变而来的。它用一些“助记助记忆符符号”来代替那些难懂难记的二进制代码,也称为符号语言符号语言。通常用有指令功能的英文词的缩写代替操作码,如“传送”指令用助记符MOV(move的缩写)表示,“加法”指令用助记符ADD(Addition的缩写)表示。这样,每条指令就有明显的标识,从而易于理解和记忆,因此,汇编语言程序有较直观易理解等优点。第第1 1章章 基础知识基础知识 图1-2 汇编过程汇编语言程序运行结果翻译运行汇编程序
18、机器语言程序第第1 1章章 基础知识基础知识 计算机并不能识别和直接运行汇编语言程序,必须由一种翻译程序将汇编语言程序翻译成机器语言程序后才能识别并运行。这种翻译程序称为汇编程序汇编程序,其关系如图1-2所示。用汇编语言(或高级语言)写的程序称为源源程序程序,经过转换后得到可以由计算机直接执行的机器指令程序称为目标程序目标程序。第第1 1章章 基础知识基础知识 汇编语言和机器语言都是针对特定的计算机系统,不同类型的计算机所用的汇编语言也是不同的。所以我们称机器语言和汇编语言为“面向机器的语言面向机器的语言”,它们也被称为“低级语低级语言言”。如果要用汇编语言编写程序,首先必须了解计算机的内部结
19、构,在存取数据时要具体写出存储单元的地址,这对程序编写人员的要求比较高。第第1 1章章 基础知识基础知识 3高级语言高级语言 高级语言高级语言是一类人工设计的语言,因为它对具体的算法进行描述,所以又称为算法语言算法语言。高级语言与具体计算机无关,即用它所写的程序可以在任一种计算机上运行(必要时只需做一些很小的修改)。这种语言称为“面向过程的语言面向过程的语言”,只需根据所求解的问题的算法,写出处理的过程即可,而不必涉及计算机内部的结构。比如在存取数据时,不必具体指出各存储单元的具体地址,可以用一个符号(即变量名)代表地址。第第1 1章章 基础知识基础知识 高级语言是一类面向问题面向问题的程序设
20、计语言,且独立于计算机的硬件,其表达方式接近于被描述的问题,易于理解和掌握。用高级语言编写程序,可简化程序编制和测试,其通用性和可移植性好。目前。计算机高级语言虽然很多,据统计已经有好几百种,但广泛应用的却仅有十几种,它们有各自的特点和使用范围。如BASIC语言是一类普及性的会话语言;FORTRAN语言多用于科学及工程计算;COBOL语言多用于商业事务处理和金融业;PASCAL语言有利于结构化程序设计;C C语言语言常用于软件的开发;PROLOG语言多用于人工智能;当前流行的面向对象的程序设计语言C+C+和面向对象的用于网络环境的程序设计语言Java等。第第1 1章章 基础知识基础知识 图1-
21、3 编译过程高级语言程序机器语言程序运行结果翻译编译程序运行第第1 1章章 基础知识基础知识 显然,计算机不能直接执行高级语言程序,而必须先翻译转换成“目标程序”(即机器语言程序)才能执行。这种翻译转换工作由被称为“编译程序编译程序”的专门软件来完成,其过程如图1-3所示。每一种高级语言都有自己的编译程序,在一个计算机上运行某一种高级语言源程序的前提是:该计算机系统配置了该语言的编译程序。高级语言的出现,使成千上万非计算机专业的工作者能十分方便地使用计算机。学习使用高级语言要比学习使用机器语言和汇编语言容易得多,它为计算机的推广普及扫除了一个大障碍,即使对计算机内部结构毫无所知的人,也能学会使
22、用高级语言编写程序去解决他们需要计算机处理的问题。第第1 1章章 基础知识基础知识 4非过程化语言非过程化语言 面向过程的高级语言称为过程化语言过程化语言,用它编程序必须写出每一步如何进行的全过程。程序设计者必须具体指出执行的每一个细节(例如,输入一个数给某一变量、进行某一公式的运算、进行什么条件判断、执行多少次循环等)。这要求程序设计人员考虑得十分周到,稍有不慎(例如写错一个字母),就会导致程序运行失败。第第1 1章章 基础知识基础知识 人们希望能做到:只要指出“做什么”,而不必具体指出“如何做”,由计算机自己去解决“如何做”的问题,这就是“非过程化语言非过程化语言”(即不需指出解决问题的过
23、程)。20世纪70年代后期,计算机专家研制出了非过程化语言,即关系数据库语言关系数据库语言。关系数据库语言是一种高度的非过程化语言,例如指出“将全厂职工中工资高于1500元以上的职工姓名、职务、部门打印出来”,计算机便会自动执行,打印出所需结果。显然,这又是一个飞跃,为更多的人更方便地使用计算机创造了极为有利的条件。第第1 1章章 基础知识基础知识 非过程化语言是比高级语言功能更强的高级语言。归纳起来,计算机语言的发展经历了以下几个阶段:第一代计算机语言机器语言机器语言。第二代计算机语言汇编语言汇编语言(符号语言)。第三代计算机语言高级语言高级语言(算法语言)。第四代计算机语言非过程化语言非过
24、程化语言。第第1 1章章 基础知识基础知识 1.2.2 计算机软件定义计算机软件定义 在飞速发展的计算机产业中,计算机软件所承担的角色越来越重要,“软件”这一词汇在不同的场合其含义可能不尽相同。习惯上,人们认为软件软件就是程序或程序就是软件。随着计算机的发展及软件规模愈来愈大,人们发现程序程序和软件软件是两个不同的概念,于是有人提出这样一种观点:软件软件是由程序和程序开发、使用、维护所需要的一切文档组成的。这一观点强调了文档在软件研制中的重要性。1983年,IEEE组织明确地给软件软件作了定义定义:软件是计算机程序、方法和规则相关的文档以及在计算机上运行它时所必需的数据。第第1 1章章 基础知
25、识基础知识 计算机软件发展非常迅速,其内容又十分丰富,对它进行分类也比较困难,仅从用途来划分,大致分为服务类、维护类和操作管理类分为服务类、维护类和操作管理类。1)服务类软件服务类软件 这类软件是面向用户的,为用户提供各种服务,包括各种语言的集成化软件如Turbo C软件、Windows下的Borland C+软件;各种软件开发工具及常用的库函数等。第第1 1章章 基础知识基础知识 2)维护类软件维护类软件 此类软件是面向计算机维护的,包括错误诊断和检测软件、测试软件、各种调试用软件如Debug等。3)操作管理类软件操作管理类软件 此类软件是面向计算机操作和管理的,包括各种操作系统、网络通信系
26、统、计算机管理软件等。若从计算机系统角度看,软件又分为系统软件和应系统软件和应用软件用软件。第第1 1章章 基础知识基础知识 系统软件系统软件是指为管理、控制和维护计算机及外设,以及提供计算机与用户界面等的软件。如操作系统、数据库管理系统、各种语言编译系统及编辑软件等。系统软件以外的其它软件称为应用软件应用软件。目前应用软件的种类很多,按其主要用途分为科学计算类、数据分为科学计算类、数据处理类、过程控制类、辅助设计类和人工智能软件类处理类、过程控制类、辅助设计类和人工智能软件类。应用软件的组合可称为软件包或软件库软件包或软件库。数据库及数据库管理系统过去一般认为是应用软件,随着计算机的发展,现
27、在已被认为是系统软件。随着计算机技术的不断发展,应用领域不断拓宽,应用软件种类将日益增多,其在软件中所占比重越来越大。第第1 1章章 基础知识基础知识 1.2.3 系统软件系统软件 系统软件系统软件是随计算机出厂并具有通用功能的软件,由计算机厂家或第三方厂家提供,一般包括包括:操作系统、语言处理系统、数据库管理系统以及服务程序等。第第1 1章章 基础知识基础知识 1操作系统操作系统(OS,Operating System)操作系统操作系统是系统软件的核心,它是管理计算机软、硬件资源,调度用户作业程序和处理各种中断,从而保证计算机各部分协调有效工作的软件。操作系统也是最贴近硬件的系统软件,它也是
28、用户与计算机的接口,用户通过操作系统来操作计算机并能使计算机充分实现其功能。操作系统的功能和规模随不同的应用要求而异,故操作系统又可分为分为批处理操作系统、分时操作系统及实时操作系统等。第第1 1章章 基础知识基础知识 2语言处理系统语言处理系统 任何语言编制的程序,最后一定都需要转换成机器语言程序,才能被计算机执行。语言处理程序语言处理程序的任务,就是将各种高级语言编写的源程序翻译成机器语言表示的目标程序。不同语言编写的源程序,有不同的语言处理程序。语言处理程序按其处理的方式不同,可分为分为解释型程序与编译型程序两大类。前者前者对源程序的处理采用边解释边执行的方法,并不形成目标程序,称为对源
29、程序的解释执行;后者后者必须先将源程序翻译成目标程序才能执行,称做编译执行。第第1 1章章 基础知识基础知识 3数据库管理系统数据库管理系统 (DBMS,DataBase Management System)数据库管理系统数据库管理系统是对计算机中所存放的大量数据进行组织、管理、查询并提供一定处理功能的大型系统软件。随着社会信息化进程的加快,信息量的剧增,当前数据库已成为计算机信息系统和应用系统的基础。数据库管理系统能够对大量数据合理组织,减少冗余;支持多个用户对数据库中数据的共享;还能保证数据库中数据的安全和对用户进行数据存取的合法性验证。当前数据库管理系统可以划分为划分为两类,一类是基于微
30、型计算机的小型数据库管理系统小型数据库管理系统,它具有数据库管理的基本功能,易于开发和使用,第第1 1章章 基础知识基础知识 可以解决对数据量不大且功能要求较简单的数据库应用,常见的FoxBASE和FoxPro数据库管理系统即是这种系统;另一类是大型的数据库管理系统大型的数据库管理系统,其功能齐全,安全性好,能支持对大数据量的管理,还提供了相应的开发工具。目前在国际上流行的大型数据库管理系统主要有Oracle、SYBASE、DB2、Informix等。国产化的数据库管理系统已初露头角,并走向市场,如Cobase、DM2、Openbase等。第第1 1章章 基础知识基础知识 数据库技术是计算机技
31、术中发展快、用途广泛的一个分支。可以说,在今后的任何计算机应用开发中都离不开对数据库技术的应用。先先掌握微型计算机数据库的应用,再再了解大型数据库的技术和应用是一条较好的掌握数据库技术的途径。第第1 1章章 基础知识基础知识 4服务程序服务程序 服务程序服务程序是一类辅助性的程序,它提供程序运行所需的各种服务。例如,用于程序的装入、连接、编辑及调试用的装入程序、连接程序、编辑程序和调试程序以及故障诊断程序、纠错程序等。第第1 1章章 基础知识基础知识 1.2.4 应用软件应用软件 应用软件应用软件是为解决实际应用问题所编写的软件的总称,它涉及到计算机应用的所有领域,各种科学和工程计算的软件和软
32、件包、管理软件、辅助设计软件和过程控制软件都属于应用软件范畴。由于计算机应用的日益普及,应用软件的种类及数量还将会不断增加。应用软件的开发是使计算机充分发挥作用的十分重要的工作,它是吸引软件技术人员最多的技术领域。计算机硬件、软件及计算机系统组成情况如图1-4所示。第第1 1章章 基础知识基础知识 图1-4 计算机系统组成运算器控制器中央处理器内存储器主机外存储器输入设备输出设备其它外部设备硬件系统操作系统语言处理系统数据库管理系统服务性程序系统软件各种应用软件包用户开发的各种软件应用软件软件系统计算机系统第第1 1章章 基础知识基础知识 1.2.4A 应用系统软件的开发应用系统软件的开发 软
33、件产品从定义、开发、使用和维护,直到最终被废弃所经历的周期,称为软件生存周期软件生存周期。在生存周期的各个阶段有其具体的任务。为完成各个阶段的任务,又有各自不同的技术方法和操作步骤。只有科学地按生存周期各个阶段的任务、技术方法和操作步骤去实施,才能保证软件产品的质量。而急于求成,不按科学方法实施,不愿学习和采用新的开发技术和开发工具,则势必事倍功半,甚至断送它。第第1 1章章 基础知识基础知识 初学者在软件开发中,往往存在一些问题,例如,在还没有准确、完整地了解用户的实际需求后就急于编程。重编程,轻需求分析;重开发,轻维护;重程序,轻文档。这样做的后果就是在软件系统中埋藏了许多故障隐患,直接危
34、害着系统的可靠性和稳定性。而在软件开发过程中,问题发现得越早,解决它所花费的代价就越小;而问题发现得越晚,解决它所花费的代价就越高。对于这部分内容,我们在软件工程一章中还要做详细讨论。第第1 1章章 基础知识基础知识 在进行软件设计时应当注意注意以下几点:(1)注重分析解决问题。软件开发过程实际上就是用程序语言来描述解决问题的方法和步骤。所以软件开发的基本过程是分析用户的需求,找出需要解决的问题,发现解决问题的方法。(2)掌握应用系统设计方法。分析和综合是处理复杂系统的基本方法,面对一个大的系统,应该学会使用分解与综合的应用系统设计方法,把复杂问题分解为若干子问题,分散难点,各个击破,再把设计
35、出的各个子模块综合为一大系统。第第1 1章章 基础知识基础知识 (3)广泛了解当前的最新计算机应用技术。由于计算机技术发展飞速,每年都有新的技术或者已有技术的升级版本出现,选准适合的新技术来实现设计目标,具有事半功倍的效果。实现一个系统,往往会使用几种程序设计语言或者工具软件。(4)学会建立抽象模型。软件设计需要根据物理模型抽象出其逻辑模型,通过建立的模型描述抽象事物间的关系。例如,建立系统需要分析模型、解题需要算法模型,在算法中采用符号语言代替计算机动作;在程序文档中采用规格说明抽象软件行为。第第1 1章章 基础知识基础知识 (5)力求系统结构清晰。现在的软件越来越复杂,需要重视程序结构、数
36、据结构、结构化数据、程序的体系结构等软件设计的关键技术,在编写程序代码前,要对系统结构有一个清晰明了概念,设计出一个好的结构可以使解决问题的步骤变得清晰、简洁、高效。(6)注意形式化、一致性和规范化。程序语言、数学公式都是形式系统,只有按照约定的形式符号才能让计算机理解编程意图。随着软件系统的越来越复杂,开发人员越来越多,需要符号定义、表示风格、文档格式尽可能规范和一致。以利于模块的综合、开发和调试。(7)重视书写程序文档。以便帮助阅读和发现程序中的错误。第第1 1章章 基础知识基础知识 1.2.5 软件开发环境软件开发环境 学习软件基础知识,主要目的主要目的是为了进行软件的开发。搞好软件开发
37、,除了要掌握先进的开发技术外,还要求有良好的软件开发环境。在软件开发环境软件开发环境中,用户界面用户界面占有重要的地位。近十几年来开发的应用软件,多数开发者都十分注意用户界面的设计。其中“多窗口”、“菜单”与“联机帮助”被称为用户界面的三大友好技术。第第1 1章章 基础知识基础知识 随着计算机的普及与性能的提高,人们越来越重视用户界面的改善用户界面的改善。在20世纪80年代,图形用户界面(GUI,Graphical User Interface)取得了重要的进展。美国Microsoft公司的Windows,麻省理工学院DEC公司开发的X-Windows,精彩纷呈。非键盘输入工具鼠标器也随之得到
38、广泛的使用。与此同时,包括文字、图形、声音、图像等多媒体用户界面也应运而生,受到人们的广泛的注意。第第1 1章章 基础知识基础知识 操作系统操作系统是开发环境的重要基础。它不仅通过对其它系统软件和一切服务软件的支持给开发环境提供各种有用的开发工具,还以数以百计的键盘命令和系统调用,向用户直接提供功能强大的服务。比较著名的操作系统如UNIX、Windows及LINUX已经向我们展示了现代操作系统丰富多采的用户界面。在软件开发中,无论技术活动还是管理活动,都离不开环境的支持。近十几年来,各技术先进国家大力开展软件环境的研究,一批实用的环境应运而生。CASE(Computer Aided Softw
39、are Engineering)环境和工具环境和工具,已经成为一切现代化软件开发环境的总称。第第1 1章章 基础知识基础知识 1.2.6 面向对象的软件开发方法面向对象的软件开发方法 面向对象面向对象(OO(OO,Object-Oriented)Object-Oriented)方法方法是当代计算机科学领域,特别是软件领域的发展主流。面向对象方法起源于20世纪70年代,在20世纪80年代出现了一大批面向对象的编程语言面向对象的编程语言,标志着OO方法在编程领域走向成熟和实用。但是OO方法的作用和意义决不只局限于编程技术。OO方法是一种新的程序设计范型,是一种具有深刻哲学内涵的认识方法学和系统构造
40、理论。面向对象方法的主要特点和优势主要特点和优势表现在以下几点:第第1 1章章 基础知识基础知识 (1)强调从现实世界中客观事物(对象)出发来认识问认识问题域和构造系统题域和构造系统,大大减少了系统开发者对问题域的理解难度,使系统能准确的反映问题域。(2)运用人类日常的思维方法和原则思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通信等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统的复杂性。(3)对象的概念贯穿于软件开发过程的始终软件开发过程的始终,使各个开发阶段成分具有良好的反应,从而显著地提高了系统的开发效率与质量,并大大降低了系统维护的难度。第第1 1章
41、章 基础知识基础知识 (4)对象的相对稳定性和对易变因素的隔离,增强了系统的应变能力系统的应变能力。(5)对象类之间的继承性关系和对象的独立性,对软件复用软件复用提供了强有力的支持。正是由于上述特点,使面向对象方法在计算机领域产生了巨大影响。近十几年来,它的影响渗透到计算机科学技术的几乎每一个分支领域,如编程语言、系统分析与设计、数据库、人机界面、知识工程、操作系统、计算机体系结构等。第第1 1章章 基础知识基础知识 计算机软件技术包括了计算机软件开发的所有技术。作为非计算机专业的学生和计算机应用人员,应掌握以下几种软件技术:(1)程序设计方法和程序设计语言程序设计方法和程序设计语言 由于程序
42、设计语言在关于程序设计的书中有详细介绍,故本书不涉及这一内容。(2)数据结构数据结构 任何软件都是对数据进行处理,为此,软件设计者就必须很好地组织待处理的数据。那么,如何有效地组织数据呢?这就是数据结构所要介绍的主题,在本书中还讨论了在不同数据结构上的常用算法。1.3 1.3 软件技术基础软件技术基础第第1 1章章 基础知识基础知识 (3)操作系统操作系统的基本原理和常见操作系统的使用 在介绍这一部分内容时,应结合UNIX系统的使用,主要介绍操作系统的原理。(4)数据库和数据库管理系统数据库和数据库管理系统及常用DBMS的使用 在这一部分中,要介绍数据库管理系统的设计原理和构造方法。(5)软件
43、工程软件工程的基本概念 这一部分主要介绍软件工程的概念和利用软件工程方法开发软件的全过程。第第1 1章章 基础知识基础知识 (6)计算机网络计算机网络 计算机网络是当前计算机领域的一个热点课题,所以也将介绍计算机网络的基本原理和当前流行的计算机网络(Novell,UNIX的Ethernet等)。(7)面向对象技术面向对象技术 新兴的面向对象技术是对原有的面向结构的软件开发技术的发展,它适合于开发较大型的软件系统。现在新开发的软件开发工具环境都是基于面向对象技术的,如面向对象语言Visual C+以及面向对象数据库语言等。因此掌握这一技术于软件开发人员是至关重要的。第第1 1章章 基础知识基础知识 习习 题题 1一个计算机系统可以分为哪两大部分?各部分包含哪些内容?2计算机应用领域有哪几类?3计算机语言的发展经历了哪几个阶段?4试述计算机系统的组成。5什么是系统软件?什么是应用软件?