软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件工程:
Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发,运行和维护这些程序所必须的相关文件资料。
IEEE:软件工程是开发,运行,维护和修复软件的系统方法
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法
软件的分类:
按照功能划分:
系统软件:操作系统,数据库管理系统。
支撑软件:文本编辑程序等。
按照规模划分:微型,小型,中型,大,甚大,极大型
按照软件的工作方式划分:实时处理软件,分时软件,交互式软件,批处理软件
按软件服务对象的范围划分:项目软件,产品软件
按使用的频度进行划分:一次使用,频繁使用
按软件失效的影响:高可靠性,一般可靠性
软件的发展阶段:
程序设计阶段50年代到60年代
程序系统阶段60年代到70年代
软件工程阶段70年代之后:软件的产品化,系列化,规范化,(有文档了)
软件危机的表现:
怎么解决:七条原理
1.用分阶段的生存周期计划严格管理
2.坚持进行阶段评审
2.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚的审查
6.合理安排软件开发小组的人
7.承认不断改进软件工程实现的必要性
软件生存期:6个阶段,3大部分(设计,开发,维护)
软件开发模型:瀑布模型,螺旋模型,喷泉模型,渐增模型,b模型,快速原型模型
特点:
严格,周期长,时间的顺序性和依赖性。每个阶段都要通过评审,问题发现越晚,代价越高。
(2)螺旋模型:
特点:
一圈是一个新的版本,适用于大项目。
(3)喷泉模型:
特点:
迭代。无间隙,各阶段无明显界限
(4)渐增模型
特点:
开发人员始终和用户都共同参与,有问题可以随时修改。从而很好满足用户的需求。与用户见面快,开发效率高。
(5)b模型
特点:
用户评价,维护成本多,阶段间的阶段性,顺序性。缺点:发现问题修改代价很大
(6)快速原型模型:
软件工程项目的基本目标:
低成本,完成工程,较好的软件性能,易于移植,较低的维护费用,按时完工交付。