2 按软件规模进行划分:

  按开发软件所需的人力、时间以及完成的源程序行数,可确定六种不同规模的软件。

表格
  
表1.2 软件规模的分类
类别
参加人员数
研制期限
产品规模(源程序行数)
微型
1
1~4周
0.5k
小型
1
1~6月
1k~2k
中型
2~5
1~2年
5k~50k
大型
5~20
2~3年
50k~100k
甚大型
100~1000
4~5年
1M(=1000k)
极大型
2000~5000
5~10年
1M~10M
 
  微型软件是只是一个人,甚至是半时,在几天之内完成的软件。写出的程序不到5百行语句,仅供个人专用。通常这种小题目无需做严格的分析,也不必要有一套完整的设计、测试资料。不过这并不是说可以随便地不讲任何方法地做。事实说明,即使这样小的题目,如果经过一定的分析、系统设计、结构化编码以及有步骤地测试,肯定也是非常有益的。

  
小型软件是一个人半年之内完成的2千行以内的程序。例如,数值计算问题或是数据处理问题就是这种规模的课题。这种程序通常没有与其它程序的接口。但需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。

  
中型软件是5个人以内在一年多时间里完成的5千到5万行的程序。这种课题开始出现软件人员之间、软件人员与用户之间的联系、协调的配合关系问题。因而计划、资料书写以及技术审查需要比较严格地进行。这类软件课题比较普遍,许多应用程序和系统程序就是这样的规模。在开发中使用系统的软件工程方法是完全必要的,这对提高软件产品质量和程序人员的工作效率起着重要的作用。

  
大型软件是5至10个人在两年多的时间里完成的5万到10万行的程序。例如编译程序、小型分时系统、应用软件包、实时控制系统等很可能是这种软件。参加工作的软件人员需要按二级管理,例如划分成若干小组,每组5人以下为好。在任务完成过程中,人员调整往往不可避免。因此会出现对新手的培训和逐步熟悉工作的问题。对于这样规模的软件,采用统一的标准,实行严格的审查是绝对必要的。由于软件的规模庞大以及问题的复杂性,往往会在开发的过程中出现一些事先难于做出估计的不测事件。

  
甚大型软件是100至1000人参加用4到5年时间完成的具有100万行程序的软件项目。这种甚大型项目可能会划分成若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。例如,实时处理系统、远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。

  
极大型软件是2000人到5000人参加,10年内完成的1000万行以内的程序。这类软件很少见,往往是军事指挥、弹道导弹防御系统。

  规模大、时间长、很多人参加的软件项目,其开发工作必须要有软件工程的知识做指导。而规模小、时间短、参加人员少的软件项目也得有软件工程概念,遵循一定的开发规范。其基本原则是一样的,只是对软件工程技术依赖的程度不同而已。