知识要点:
软件危机的概念、原因以及消除途径;
软件工程的概念、基本原理、方法学;
软件生命周期,主要软件过程的特点。
一、软件危机的定义:软件开发和维护过程中所遇到的一系列严重问题;
二、软件危机产生原因:用户需求不明确、缺乏科学理论作为指导、软件开发规模越来越大、软件产品的复杂程度越来越高;
三、消除途径:
1)研究软件的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,
达到降低软件生产成本,改进软件产品质量,提高软件生产率水平的目标;
2)将软件生命周期各阶段使用的软件工具有机的集合成一个整体,形成能够连续支撑软件开发和维护全过程的集成化软件支撑
环境,从管理和技术两方面解决问题;
软件危机的主要表现:软件开发进度和成本难以预测;产品功能难以满足用户需求;
产品质量得不到保障;缺少适当的文档资料;
软件开发生产率的提高速度,跟不上计算机应用的普及和深入;
软件工程方法学:
传统方法学(生命周期方法学或结构化泛型):采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件
工程环境来支持结构化技术的运用。把软件生存周期的全过程划分为若干个阶段,然后顺序的完成每个阶段的任务。对于相邻
的两个阶段,前一阶段的结束标准就是后一阶段的开始标准(后一阶段任务使得前一阶段任务解法更加具体化),每一个阶段结束
都必须经过技术审查和管理复审,从技术和管理两方面对该阶段的成果进行审查,审查通过后进入下一阶段,反之要进行返工处
理且返工后仍需进行审查。
优点:每个阶段任务独立且比较简单,降低了整个软件开发的困难程度;在每个阶段结束前都采用科学的管理技术与良好
的技术方法,从技术和管理两方面进行严格审查;保证了软件质量,提高了软件可维护性以及软件开发的成功率。
面向对象方法学:(对象+类+继承+用消息通信)
四、软件工程的定义:
指导软件系统开发的工程的工程学科,采用工程化的概念、原理、技术和方法进行软件开发和维护,把实践证明的、科学的
管理措施与最先进的技术结合起来,以经济地开发出高质量的软件并有效地维护它;
五、软件工程的基本原理(七条):
用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代化程序设计技术
结果能够清楚地审查、开发小组人员应当少而精、承认不断改进软件工程的必要性;
六、软件生命周期:
问题定义、可行性研究、需求分析、总体设计、详细设计、程序编码、软件测试、运行维护
七、流常用的软件过程:
瀑布模型:
1)具有顺序性和依赖性,后一阶段任务必须等前一阶段完成后才能进行,前一阶段的输出文档是后一阶段的输入
文档,只有前一阶段的输出文档正确,后一阶段的才能获得正确的结果。
2)该模型清楚地区分逻辑与物理设计,尽可能的推迟物理实现。
3)每个阶段都必须完成规定的文档,每个阶段结束前都要对完成的文档进行评审,尽早的发现问题改正错误。
快速原型模型:增量模型、螺旋模型、喷泉模型、Rational同一过程、敏捷过程与极限编程、微软过程;