知识点:
软件定义与软件特点
软件危机与软件工程
软件工程过程与软件生命周期
软件工程的目标与原则
软件开发工具与软件开发环境
1)软件的定义
与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
2)软件的特点
(1)软件是一种逻辑实体,而不是物理实体,具有抽象性;
(2)软件的生产与硬件不同,它没有明显的制作过程;
(3)软件在运行、使用期间不存在磨损、老化问题;但为了适应硬件、环境以及需求的变化要进行修改,会导致一些错误的引入,导致软件失效率升高,从而使得软件退化;
(4)软件的开发、运行对计算机系统具有依赖性,受到计算机系统的限制,这导致了软件移植的问题;
(5)软件复杂性高,成本昂贵。软件开发需要投入大量、高强度的脑力劳动,成本高,风险大;
(6)软件开发涉及诸多的社会因素。许多软件的开发和运行涉及软件用户的机构设置,体制问题以及管理方式等,甚至涉及到人们的观念和心理,软件知识产权及法律等问题。
3)软件的分类
按功能分,可分为:
应用软件:为解决特定领域的应用而开发的软件
系统软件:是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件
支撑软件(或工具软件):介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件
1)软件危机
泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。它主要表现在:
(1)软件需求的增长得不到满足,用户对系统不满意的情况经常发生;
(2)软件开发成本和进度无法控制。开发的成本超预算和开发周期的超期经常出现;
(3)软件质量难以保证;
(4)软件不可维护或维护程度非常低;
(5)软件成本不断提高;
(6)软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
2)软件工程
软件工程的定义:是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:方法、工具和过程。
方法:完成软件工程项目的技术手段;
工具:支持软件的开发、管理、文档生成;
过程:支持软件开发的各个环节的控制、管理。
1)软件工程过程
软件工程过程把输入转化为输出的一组彼此相关的资源和活动。支持软件工程过程的两方面内涵:
(1)软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。它包括4种基本活动:
P—软件规格说明。规定软件的功能及其运行时的限制;
D—软件开发。产生满足规格说明的软件;
C—软件确认。确认软件能够满足客户提出的要求;
A—软件演进过程。为满足客户的变更要求,软件必须在使用的过程中演进。
(2)使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。
软件工程过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。
2)软件生命周期
将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。即软件的生命周期就是软件产品从开始考虑其概念开始,到软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。这些活动可以有重复,执行时也可以有迭代。
生命周期的主要阶段:
软件定义
软件开发
软件维护
软件生命周期的主要活动阶段是:
(1)可行性研究与计划制定。
(2)需要分析。
(3)软件设计。
(4)软件实现。
(5)软件测试。
(6)运行和维护。