之前提到过软件的概念,相比大家已经对软件这个概念不陌生了,下来就有软件开发顾问给大家讲解软件的分类。
要给计算机软件做出科学的分类是很难的,但鉴于不同类型的工程对象,对其进行开发和维护有着不同的要求和处理方法,因此仍然需要对软件的类型进行必要的划分。既然找不到一个统一的严格分类标准,那么从不同的角度来做出分类是比较符合实际情况的。
1.按软件的功能进行划分“系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。系统软件是计算机系统必不可少的一个组成部分。例如,操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。系统软件的工作通常伴随着频繁地与硬件交往、大量地为用户服务、资源的共享与复杂的进程管理,以及复杂数据结构的处理。
“支撑软件:是协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发进程的工具。可分为如表1. 1所示的几类。
应用软件:是在特定领域内开发.为特定目的服务的类软件。现在几乎所有的国民经济领域都使用了计算机,为这些计算机应用领域服务的应用软件种类繁多。其中商业数据处埋软件是占比例最大的-类,工程与计算机科学计算软件大多属于数值计算问题。此外,应用软件在计算机辅助设计制造、系统仿真、智能产品嵌入软件、办公室自动化、游戏,以及人工智能软件(如专家系统、模式识别)等方而大显神通,使得传统的产业部门而目I新,带来惊人的生产效率和巨大的经济利益。
1.按软件规模进行划分按开发软件所需的人力、时间以及完成的源程序行数,可确定六种不同规模的软件。
微型:只是一个人,在几天之内完成的软件。写出的程序不到500行语句,仅供个人专用。通常这种小题自无须做严格的分析,也不必要有罾套完整的设计、测试资料。不过这并不是说可以随便地不讲任何方法地做。事实说明.即使这样小的题目,如果经过一定的分析、系统设计、结构化编码以及有步骤地测试,肯定也是非常有益的。
小型一个人在半年之内完成的2000行以内的程序。例如,数值计算问题或是数据处理问题就是这种规模的课题。这种程序通常没有与其他程序的接口。但需要按一定的标准化技术、正规的资料书写以及定期的系统审査。只是没有大题目那样严格。
中型:5个人以内在一年多时间里完成的5000 -5万行的程序。这种课题开始出现了软件人员之间、软件人员与用户之间的联系、协调的配合关系问题。因而计划、资料书写以及技术审査需要比较严格地进行。这类软件课题比较普遍,许多应用程序和系统程序就是这样的规模。
在开发中使用系统的软件丄程方法是完全必要的,这对捉高软件产品质蛍和程序人员的工作效率起着重要的作用。
大型:5至10个人在两年多的时间里完成5万~ 10万行的程序。例如编译程序、小型分时系统、应用软件包、实时控制系统等很可能是这种软件。参加工作的软件人员需要按二级管理,例如划分成若干小组,每组5人以下为好。在任务完成过程中.人员调-整往往不可避免。因此会出现对新手的培训和逐步熟悉工作的问题。对于这样规模的软件,釆用统的标准,实行严格的审査是绝对必要的。由于软件的规模庞人以及问题的复杂性,往往会在开发的过程中出现一些事先难于做出估计的不测事件。
甚大型:100人至1000人参加,4-5年内完成的具有100万行程序的软件项目。这种甚大型项目可能会划分成若干个项目,每一个广项自都是个大型软件。每个项目之间具有复杂的接口。例如,实时处理系统、远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常有这样的规模。很试然,这类问题如果没有软件丄程方法的支持,它的开发工作是不可想像的。
极人型:2000人至5000人参加,10年内完成的具有1000万行以内的程序。这类软件很少见,往往是军事指挥、弹道导弹防御系统。
从以上介绍可知规模大、时间长、很多人参加的软件项目,其开发工作必须要有软件工程的知识做指导。而规模小、时间短、参加人员少的软件项目也得有软件工程概念,进循-定的开发规范。其基本原则是一样的,只是对软件工程技术依赖的程度不同而已。
按软件工作方式划分批处理软件:把一组输入作业或批数据以成批处埋的方式一次运行,按顺序逐个处埋完的软件。这是最传统的工作方式,作业对响应时间不敏感。
实时处理软件:指在事件或数据产生寸,立即予以处理,并及时反馈信号,控制需要监测和控制的过程的软件。主要包括数据采集、分析、输出二部分其处理时间是应严格限定的,如果在任何时间超出了这限制,都将造成事故。
分时软件:允许多个联机用户同时使用计算机。系统把处埋机寸间轮流分配给联机用户使各用户都感到只是自己在使用计算机的软件。
交互式软件:能实现人机通信的软件。这类软件接收用户给出的信息,但在时间上没有严格的限定。这种工作方式给予用户很大的灵活性。近年来,终端设备史加普及,交互式软件到处可见。个重要的问题日益显得突出,这就是用户界而设计。友好的用户界而设计将给用户带来极人的方便。
软件开发顾问:按软件服务对象的范围划分完成软件工程项自后可以有两种情况提供给用户。
项目(也称定制)软件:是受某个特定(或少数)客户委托,由一个或多个软件开发机构在合阏的约束下开发出来的软件。例如军用防空指挥系统、卫星控制系统的软件就属于这-类。
这类项目软件中有的软件带有实验研究性质,完成项自后根据需要可在此基础做进-步开发。
为取得客户的委托项目.软件开发机构的质蛍管理、技术实力、开发经验以及屉行合同的信誉成为受到重视的问题。
产品软件:是由软件开发机构开发出来直接提供给市场,或是为千百个用户服务的软件。
这是些服务于多个自的及多个用户的软件。例如.文字处理软件、财务管埋软件、人事管理软件等。由于要参与市场竞争,其功能、使用性能以及培训和售后服务显得尤为重要。
按软件失效的影响进行划分工作在不同领域的软件.适应其不同的需求,在运行中对可靠性也有不同的要求。有的软件如果在工作中出现了故降,造成软件失效,可能给整个系统带来的影响不大。例如可能带来一些不便,却能勉强工作。但有的软件一旦失效,可能酿成灾难性后果,其严重损失难以挽回。例如控制栽人飞行物和核反应堆的软件,如果不能正常丄作,可能以人的生命为代价。
事实上,随着计算机进入国民经济和国防的各个重要领域,软件的可靠性敁得越来越重要。
如财政金融、交通通信、航空航天等。人们般称这类软件为关键软件。
|