软件危机:
60年代中期以前:通用硬件相当普遍,软件却是为某个具体的应用而编写的。
60年代中到70年代中:软件作坊。
软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)
软件危机原因:
1)软件本身特点造成;
2)软件开发与维护的方法不正确。
主要表现:
(a)忽视软件需求分析;
(b)认为软件开发就是写程序并使之运行;
(c)轻视软件维护;
解决软件危机的途径:
1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法;
2)开发和使用更好的软件工具;
3)良好的组织管理措施。
为了解决软件危机产生的问题,软件工程与方法学逐渐形成,然后出现了两个相互相承又各有侧重的学科:
1)软件工程学:主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科。
2)程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科。
软件工程的介绍
1968年NATO会议:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
1993年IEEE:软件工程是:
(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程;
(2)研究(1)中提到的途径。
软件工程的本质特性:
1. 软件工程关注于大型程序的构造;
2. 软件工程的中心课题是控制复杂性;
3. 软件经常变化;
4. 开发软件的效率非常重要;
5. 和谐地合作是软件开发的关键;
6. 软件必须有效地支持它的用户;
7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的基本原理
1. 用分阶段的生命周期计划严格管理;
2. 坚持进行阶段评审;
3. 实行严格的产品控制;
4. 采用现代程序设计技术;
5. 结果能清楚地审查;
6. 开发小组的人员应该少而精;
7. 承认不断改进软件工程实践的必要性。
软件工程方法学
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(Methodology),也称为范型(Paradigm)。
软件工程方法学的3要素:方法、工具和过程
- 传统方法学
也称为生命周期方法学或结构化范型。
结构化方法(Structure Method)有:
1)结构化设计方法(SD);
2)结构化分析方法(SA);
3)结构化分析与设计技术(SADT)
4)JACKSON方法
5)WARNIER方法 - 面向对象方法学
把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。
面向对象的方法
=对象(属性与服务的封装)
+分类
+继承
+通过消息的通讯 - 其他开发方法
1)适用于实时事物处理系统的有限状态机方法(FSM);
2)适用于并发软件系统的PETRI网方法;
3)以数学概念和理论为基础的形式化方法,如
SDC公司的形式化开发方法FDM:
(Formal Development Methodology)
IBM公司的维也纳开发方法VDM:
(Vienna Development Method )
软件生命周期
指软件从提出到最终被淘汰的这个存在期。
软件生命周期组成:
1)软件定义;
A.问题定义 B.可行性研究 C.需求分析
2)软件开发;
D.总体设计 E.详细设计
F.编码和单元测试 G.综合测试
3)运行维护。
软件生命周期各个阶段:
1.问题定义;
2.可行性研究;
3.需求分析;
4.总体设计(概要设计);
5.详细设计;
6.编码与单元测试;
7.综合测试;
8.维护。
欢迎关注我的微信个人订阅号
每天多学一点0.0