软件工程学科发展到今天, 已经有了很多方法和规范, 学之不尽。 无论是什么好方法, 贵在理解与灵活运用, 而不可当成灵丹妙药, 不象“吃了脑黄金或脑白金, 就能使一亿人先聪明起来”。
1.软件
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
程序是按时限设计的功能和性能要求执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序开发,维护和使用有关的图文材料。
2.软件的特点:
(1)它是一种逻辑实体,不是具体点的物理实体,因而它具有抽象性。
(2)它的生产与硬件不同,在他的开发过程中没有明显的制造过程。
(3)它的运行和使用期间,没有硬件那样的机械磨损,老化问题。
(4)它的开发和运行受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(5)它的开发至今尚未完全摆脱手工艺的开发方式。
(6)它本身是复杂的,实际问题和程序逻辑结构的复杂性。
(7)成本相当昂贵。
3.软件的分类:
按功能划分:系统软件、
支撑软件:
- 文本编辑程序
- 文件格式化程序
- 磁盘向磁带向数据传输的程序
- 程序库系统
- 支持需求分析、设计、实现、测试和支持管理的软件
应用软件:
- 商业数据处理软件
- 工程与科学计算软件
- 计算机辅助设计/制造软件
- 系统仿真软件
- 智能产品嵌入软件
- 医疗、制药软件
- 事务管理、办公自动化软件
- 计算机辅助教学软件
按规模划分:微型、小型、中型、大型、甚大型、极大型;
按工作方式划分:实时处理软件、分时软件、交互式软件、批处理软件;
按服务对象划分:项目软件、产品软件;
按使用频度划分:一次使用、频繁使用;
按失效影响划分:高可靠性软件、一般可靠性软件。
4.软件的发展阶段:
(1)程序设计阶段:50-60年代 汇编语言
(2)程序系统阶段:60-70年代 程序加说明
(3)软件工程阶段:70年代后 规范化
5.软件危机:
开发过程中遇到到的一系列严重的问题
(1)软件危机的表现产品不符合用户的实际需要。
软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力。
软件产品的质量差。
对软件开发成本和进度的估计常常不准确软件的可维护性差。
软件文档资料通常既不完整也不合格
软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升
(2)产生软件危机的原因
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。在写出程序代码并在计算机上试运之前,很难检验开发的正确性,而且软件开发的也较难评价。软件不同于一般程序,它的一个显著特点是规模庞大。
虽然软件本身独有的特点确实给开发和维护带来些客观困难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出了许多成功的经验
开发和管理人员只重视开发而轻视问题的定义使软件产品无法满足用户的需求
软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
在软件的开发与维护关系问题上存在错误的概念。
6.过程
(1)规格说明:规定软件的功能及运行的限制;
(2)软件开发:生产满足规格说明的软件;
(3)软件确认:确认软件能够完成客户提出的要求;
(4)软件维护:后期维护。
7.特性:
易理解性、可见性、可支持性、可接受性、可靠性、健壮性(安全性)、可维护性、速度。
8.生存期:
从孕育、诞生、成长、成熟、衰亡的生存过程。
9.生存期的步骤:
(1)制定计划:确定开发软件系统总目标、给出功能、性能、可靠性及接口的要求、完成可行性研究
(2)需求分析和定义:对需求进行分析并给出详细定义、编写软件需求说明书
(3)软件设计、概要设计 划分模块
(4)软件编写
(5)软件测试:静态测试/动态测试、单元测试/组装测试
(6)运行维护