1、实用软件工程目录n第1章概述n第2章软件计划n第3章结构化设计n第4章软件编码和软件测试n第5章软件维护n第6章面向对象方法学与UMLn第7章面向对象软件设计与实现n第8章软件工程技术的发展n第9章软件工程管理n第10章实例与软件工程实践环节 第1章概 述本章主要内容:n软件工程的产生n软件工程学n软件生命周期n软件开发模型本章重点:o软件工程o软件生命周期。第1章概述1.1 软件工程的产生1.1.1 软件工程发展史n软件是指计算机程序及其有关的数据和文档。n软件生产的各个阶段必需完成的有关计算机程序的功能、设计和使用的文字或图形资料,这些资料称为“文档”。1.程序设计阶段2.软件=程序+文档
2、阶段3.软件工程阶段4.第4代技术阶段 1.1.2 软件危机n软件危机是指在计算机软件开发和维护时所遇到的一系列问题。n软件危机主要包含的问题:v如何开发软件以满足对软件日益增长的需求;v如何维护数量不断增长的已有软件。n1.软件危机产生的原因n2.软件危机主要表现形式n3.解决软件危机的途径 1.2 软件工程学1.2.1什么是软件?n软件是指计算机程序及其有关的数据和文档的完整集合。n软件文档(software documentation)是以人们可读的形式出现的技术数据和信息。n“软件是程序以及开发、使用和维护所需要的所有文档(document)。”1.2.2 什么是软件工程什么是软件工程
3、?n软件工程(software engineering)是软件开发、运行、维护和引退的系统方法。n软件工程是指导计算机软件开发和维护的工程学科。n软件工程采用工程的概念、原理、技术和方法来开发与维护软件。n软件工程的目标是在规定的时间、开发费用内,开发满足用户需求的高质量的软件。1.2 软件工程学1.2.3 软件工程学的内容 软件开发技术和软件工程管理。n软件开发技术包含软件工程方法学、软件工具和软件工程环境。n软件工程管理学包含软件工程经济学和软件工程管理学。1.软件工程方法学 三个要素:方法,工具,过程。2.软件工具 3.软件工程环境:是方法和工具的结合。“软件开发环境是相关的一组软件工具
4、集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成”。计算机辅助软件工程(Computer Aided Software Engineering,CASE)是一组工具和方法的集合,可以辅助软件生命周期各阶段进行软件开发活动。4.软件工程管理n目的是为了能按预定的时间和费用,成功地生产软件产品。n内容:费用管理、人人员组织、工程计划管理、软件配置管理。n软件工程各阶段所产生的全部文档和软件本身构成软件配置。1.2.4 软件工程过程软件过程是“把输入转化为输出的一组彼此相关的资源和活动”。软件过程是软件工程方法学的三个要素 (方法、工具和过程)之一。1.2.5 软件工程基本原理n用分阶
5、段的生命周期计划进行严格的管理;n坚持进行阶段评审;n实行严格的产品控制;n采用现代程序设计技术;n软件工程结果应能清楚地审查;n开发小组的人员应该少而精;n承认不断改进软件工程实践的必要性。1.3 软件生命周期1.3.1.软件生命周期的定义n从设计软件产品开始到产品不能使用为止的时间周期。n软件生命周期中,软件开发与维护时的费用越低,软件的使用寿命越长,产生的价值就越大,这就是掌握软件工程学的目的。1.3.2.软件生命周期划分的原则1.3.3.软件生命周期各阶段的任务n由软件计划、软件开发和软件运行维护三个时期组成。n软件计划时期:问题定义、可行性研究、需求分析三阶段。n软件开发时期:软件概
6、要设计、软件详细设计、软件实现、综合测试等阶段。n软件运行过程中需要不断地进行维护,使软件持久满足用户需要。1.4 软件开发模型1.4.1 瀑布模型(Waterfall Model)1.4.2 快速原型模型n快速原型模型(Rapid Prototype Model)是快速开发一个可以运行的原型系统,n通常有三种类型:v渐增式的原型:也称增量模型。v用于验证软件需求的原型。v用于验证设计方案的原型。1.4.3 增量模型增量方式包括:n增量开发n增量提交 1.4.4 喷泉模型n适用于面向对象方法。n主张分析和设计过程的重叠、不严格区分。n模块集成过程:反复经过分析、设计、测试、集成,再分析、设计、
7、测试、集成。1.4.5 螺旋模型 1.4.6 RUP(统一过程)n统一过程 RUP(Rational Unified Process)使用统一建模语言UML,n采用用例驱动和架构优先的策略,n采用迭代增量建造方法。通常v结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;v面向数据结构方法可使用瀑布模型、增量模型进行开发;v面向对象方法可采用快速原型、喷泉模型、软件重用开发模型(11章)和统一过程RUP进行开发。第1章小结n 文档n软件:计算机程序及其有关的数据和文档。n软件危机:计算机软件开发和维护时所遇到的一系列问题。n软件工程是软件开发、运行、维护和引退的系统方法。n软件工程学的主要内
8、容是软件开发技术和软件工程管理。n软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。n软件生命周期:从设计软件产品开始到产品不能使用为止的时间周期。n软件生命周期模型(SW life cycle model),或称软件开发模型。瀑布模型:规范的、文档驱动的方法。快速原型模型:构建原型系统让用户试用,获取用户真实需求。增量模型:能在早期向用户提交部分产品和易于维护,软件的体系结构必须是开放的。喷泉模型:适用于面向对象方法。螺旋模型:适用于大规模内部开发项目,分析风险和排除风险。RUP:适用于面向对象方法,使用UML,采用用例驱动和架构优先的策略,迭代增量的建造方法。习题1选择题答案n9.A(1),B(2),C(4),D(3),E(1)n10.A(2),B(1),C(4),D(1),E(2)返回目录