今天先从期末总复习视频学起,了解孰轻孰重!加油!
1.1软件与软件危机
一:软件的概念、特点与发展
(1)软件发展经历三个阶段:
程序设计阶段——50至60年代
程序系统阶段——60至70年代
软件工程阶段——70年代以后
(2)软件的概念:
软件是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及其相关文档的完整集合。软件=程序+数据+文档
(3)软件的特点:
1.软件本身的复杂性
2.软件的成本高昂
3.软件开发未摆脱手工开发方式
4.软件维护与硬件有本质差,维护难度高
5.软件开发不是传统硬件制造过程
6.软件是一种逻辑实体,无磨损性
二:软件危机
(1)软件危机的概念:
在计算机软件开发和维护过程中所遇到的一系列严重问题。
软件危机包括两方面内容:
1.如何开发软件,以满足对软件日益增长的需求
2.如何维护数量不断膨胀的已有软件
(2)软件危机的原因:
1.主观原因
忽视需求分析;轻视软件维修;没有认识到程序只是软件的一部分;没有认识到软件开发只是漫长的软件生命周期中一个比较次要阶段;越到后期引入变动付出代价越高昂
2.客观原因
软件是逻辑实体、缺乏可见性、管理和控制困难;软件不会磨损,维修意味着修改原来设计,维修困难;软件规模庞大,程序复杂性随规模增加指数上升
(3)消除软件危机的途径 管理+技术
1.对计算机软件应该有正确认识
2.吸取借鉴人类长期从事各种工程项目积累的原理、概念、技术和方法
3.积极开发和使用计算机辅助开发工具
4.探索更好更有效的管理措施和手段对开发过程进行控制和管理
1.2软件工程
(1)软件工程定义:
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维修它。
(2)软件工程的本质特征:
关注大型程序的构造;中心课题是控制复杂性;软件经常变化;开发效率非常重要;开发人员和谐合作是关键;软件需有效支持用户;软件开发者替代其他领域人员创造产品
(3)软件工程基本原理:
按软件生存期分阶段制定计划并认真实施;坚持进行阶段评审;坚持严格的产品控制;使用现代程序设计技术;结果能够得到清楚的审查;用人少而精;承认不断改进软件工程实践的必要性
(4)软件工程方法学:
把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
软件工程方法学包括三个要素:方法、工具和过程
分类:传统方法学(生命周期方法学)、面向对象方法学
1.3软件生命周期
1.4软件过程
软件过程:是为了获得高质量软件所需要完成的一系列任务框架。通常用软件生命周期模型描述软件过程。
主要模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、其他模型
瀑布模型:将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,最终得到软件产品
(1)顺序性和依赖性(2)推迟实现(3)质量保证
快速原型模型:快速建立可执行的程序,它完成的功能往往是最终产品功能的一个子集。
增量模型:先完成一个系统子集的开发,再按同样的开发步骤增加功能(系统子集),如此递增下去直至满足全部系统需求
螺旋模型:在每个阶段之前都增加了风险分析过程的快速原型模型。看作增加了风险分析的快速原型模型。
喷泉模型:典型的面向对象软件过程模型。体现迭代和无缝的特点。