基础知识
软件
概念:软件是计算机系统中,与硬件相互依存的另一部分,包括程序,数据及相关文档的完整集合
- 程序:按事先设计的功能和性能要求执行的指令序列或者代码结构
- 数据:使得程序能正常操纵信息的数据结构(数据来自数据库)
- 文档:与程序开发,维护和使用相关的图文资料, 是测试所需的依据内容
特性
- 形态特性:无形的、不可见的逻辑实体
- 智能特性:是复杂的智能产品,它的开发凝聚了人类的大量脑力劳动,体现了知识实践和人类的智慧,具有一定的智能。可以帮助我们解决复杂的计算、分析、判断和决策问题
- 开发特性:软件开发中仍然包含相当份量的个体劳动,使得这一大规模知识型工作充满了个人行为和个人因素
- 质量特性:由于开发特性存在,所以不存在完全没有缺陷的软件
- 生产特性:与硬件相比,软件一旦开发出来,如果需要提供多个用户,其复制十分简单,成本也极为有限
- 管理特性,相比于传统行业,更为独特
环境特性:软件对于计算机系统的环境有着不可摆脱的依赖性,它的开发和运行都离不开相关的计算机系统环境,包括支持它的开发和运行的相关硬件和软件;
- 不同语言开发的程序,要搭配不同的运行环境来兼容
- 维护特性:软件投入使用以后,需要进行维护,但与传统产业产品的维护不同,它体现在升级、优化、功能更新等,甚至可以重构
- 废弃特性:主要是不能满足市场和用户需求而导致的废弃
- 应用特性:应用极为广泛
软件分类
系统软件:负责管理计算机系统中各个独立的硬件,使其可以协调工作
- 服务性程序
- 语言程序
- 操作系统
- 数据库管理系统
- 应用软件:为了某种特定用途而开发的软件。可以是一个特定的程序,也可以是一组功能联系紧密,相互协作的程序的集合
软件的生命周期
定义:又称为生存周期,它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段
同时每阶段又分解成几个具体的任务,然后按规定顺序依次完成各个阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件
软件的一生
问题定义 -- 可行性分析 -- 需求分析 -- 概要设计 -- 详细设计 -- 编码和单元测试 -- 综合测试 -- 软件维护这一个过程会随着项目的迭代升级,不断循环