理论部分:
第一章:软件工程学概述
1968年在西德召开的会议上第一次正式提出“软件工程”这个术语
软件危机:是指在计算机软件的开发维护过程中所遇到的一系列严重问题。
软件工程学什么软件危机包含下述两个方面的问题: 1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现(稍微看下 考选择):
1.对软件开发成本的进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生
3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没有适当的文档材料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
软件配置:程序、文档和数据。
软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。
软件:是程序、数据及相关文档的集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
软件工程:指导计算机软件开发和维护的一门工程学科。
软件工程具有下属的本质特性: 1.软件工程关注于大型程序的构造。2.软件工程的中心课题是控制复杂性。3.软件经常变化。4.开发软件的效率非常重要。5.和谐地合作是开发软件的关键。6.软件必须有效地支持它的用户。7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
1983年提出了软件工程的7条基本原理: 1.用分阶段的生命周期计划严格管理。2. 坚持进行阶段评审。3.实行严格的产品控制4.采用现代程序设计技术。5.结果应能清楚的审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。.
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型
软件工程方法学(包括传统方法学、面向对象方法学)包含三个要素:方法、工具和过程。
方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。
工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。
过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
面向对象方法学的优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。
软件生命周期:软件定义、软件开发和运行维护。软件定义:问题定义、可行性研究和需求分析。软件开发:总体设计,详细设计,编码和单元测试,综合测试。
如果生命周期要填8个空那就是1.问题定义2.可行性研究3.需求分析4.总体设计5.详细设计6.编码和单元测试7.综合测试8.软件维护
软件工程过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
生命周期模型包括:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、
瀑布模型的特点: 1.阶段间具有顺序性和依赖性。2.推迟实现的观点。 3.质量保证的观点。
传统的瀑布模型:
快速原型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一一个子集。
增量模型:它分批地逐步向用户提交产品,整个软件产品被分解成许多个增量构件,开发人员一个构件一个构件地向用户提交产品。
螺旋模型:基本思想是使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。(使用于内部开发的大规模软件项目)
喷泉模型:是典型的面向对象的软件过程模型之一。