件技术 第一章软件工程 第二章数据结构 第三章操作系统 第四章数据库技术 第五章面向对象程序设计 第六章计算机网络 第七章网页设计 综合练习题
第一章 软件工程 第二章 数据结构 第三章 操作系统 第四章 数据库技术 第五章 面向对象程序设计 第六章 计算机网络 第七章 网页设计 综合练习题
第一章软件工程 本章简单介绍软件工程的形成和发展,重点介绍软件开发 的不同方法和软件测试策略与方法,最后就软件开发环境和 软件重用技术作一简要介绍 1.1概述 软件工程的提出源于20世记60年代末期出现的“软件危 机”,并在较短的时间内发展成一个完整的学科方向,30多 年来,在理论研究和工程实践两个方面作了大量的工作
第一章 软件工程 本章简单介绍软件工程的形成和发展,重点介绍软件开发 的不同方法和软件测试策略与方法,最后就软件开发环境和 软件重用技术作一简要介绍。 1.1 概述 软件工程的提出源于20世记60年代末期出现的“软件危 机” ,并在较短的时间内发展成一个完整的学科方向,30多 年来,在理论研究和工程实践两个方面作了大量的工作
1.1软件工程的形成与发展 1.软件发展的三个阶段 软件开发方法从机器语言编程到软件工程方法,经历了三个阶段 1.程序设计时期(1946年到60年代中期) 程序不再是硬件的附属,有软件的概 生产方式是手工生产、个体劳动。只有程序,无软件的概念 2软件时期(60年代中期至70年代中期) 作坊式的生产方式已难满足软件生产的质量和数量上的要求 出现了“软件危机” 3.软件工程时期(70年代至今) 1968年、1969年北大西洋公约组织成员国的软件工件者召开了两 个研讨会,提出了“软件工程”这一述语,根本目的在于克服 “软件危机”中所遇到的困难问题,从此进入软件工程时代
1.1.1 软件工程的形成与发展 1.软件发展的三个阶段 软件开发方法从机器语言编程到软件工程方法,经历了三个阶段。 1.程序设计时期(1946年到60年代中期) 生产方式是手工生产、个体劳动。只有程序,无软件的概念。 2.软件时期(60年代中期至70年代中期) 程序不再是硬件的附属,有软件的概念。 作坊式的生产方式已难满足软件生产的质量和数量上的要求。 出现了“软件危机” 。 3.软件工程时期(70年代至今) 1968年、1969年北大西洋公约组织成员国的软件工件者召开了两 个研讨会,提出了“软件工程”这一述语,根本目的在于克服 “软件危机”中所遇到的困难问题,从此进入软件工程时代
2.软件危机 (1)软件危机的主要表现 1)软件开发成本和进度的估计常常很不准确。 2)用户往往对已完成的软件不满意 3)软件的质量常被怀疑。 4)软件极难维护。 5)缺乏良好的软件文档 6)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深 入的趋势
2.软件危机 (1) 软件危机的主要表现: 1)软件开发成本和进度的估计常常很不准确。 2)用户往往对已完成的软件不满意。 3)软件的质量常被怀疑。 4)软件极难维护。 5)缺乏良好的软件文档。 6)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深 入的趋势
(2)软件危机的产生原因 x般以为,软件危机的发生与软件产品的特征和软件产品开 发与维护的方法不正确有关。5 其一:软件是逻辑的系统部件而不是物理的系统部件,以程 序和文档形式存在,具有无形性。 其二:软件规模越来越大,功能越来越强,导致软件结构非 常复杂 (3)解决软件危机的途径 方法是要充分吸取和借鉴人类长期以来从事各种工程项目 所积累的行之有效的原理、概念、技术和方法,并应用于软 件开发的实践中,将软件开发变成一种组织良好、管理严密、 各类人员协同完成的工程项目
(2)软件危机的产生原因 一般以为,软件危机的发生与软件产品的特征和软件产品开 发与维护的方法不正确有关。 其一:软件是逻辑的系统部件而不是物理的系统部件,以程 序和文档形式存在,具有无形性。 其二:软件规模越来越大,功能越来越强,导致软件结构非 常复杂。 (3)解决软件危机的途径 方法是要充分吸取和借鉴人类长期以来从事各种工程项目 所积累的行之有效的原理、概念、技术和方法,并应用于软 件开发的实践中,将软件开发变成一种组织良好、管理严密、 各类人员协同完成的工程项目
3、软件工程 1983年IEE定义为:“软件工程是开发、运行、维护和修 复软件的系统方法”。 软件工程学的多个分支 (1)软件工程方法学 方法学是研究软件构造技术的学问。一个软件从定义、开发 维护,都需要有适当的方法 (2)软件工程环境 对最终用户而言,环境就是他们运行程序所使用的计算机系 统 对于应用软件开发人员,环境是开发活动的舞台。 软件工具是环境中最活跃的成分。所谓工具,在这里泛指 切帮助开发软件的软件。在软件开发的各个方面都研制了许多 有效的工具。集成化工具的自动切换,可以明显提高软件的生 (3)软件工程管理 率 软件工程管理的目的,是为了按照软件的预算和进度完成项 目计划,实现预期的经济和社会效益
3、软件工程 1983年IEEE定义为:“软件工程是开发、运行、维护和修 复软件的系统方法” 。 软件工程学的多个分支 (1)软件工程方法学 方法学是研究软件构造技术的学问。一个软件从定义、开发 到维护,都需要有适当的方法。 (2)软件工程环境 对最终用户而言,环境就是他们运行程序所使用的计算机系 统。 对于应用软件开发人员,环境是开发活动的舞台。 软件工具是环境中最活跃的成分。所谓工具,在这里泛指一 切帮助开发软件的软件。在软件开发的各个方面都研制了许多 有效的工具。集成化工具的自动切换,可以明显提高软件的生 产率。 (3)软件工程管理 软件工程管理的目的,是为了按照软件的预算和进度完成项 目计划,实现预期的经济和社会效益
1.1.2软件工程范型 、传统的软件工程范型——瀑布模型 瀑布模型是1976年由B· W. Boehm提出的,是基于软件生存周 期的一种范型。它将软件生存周期分为定义、开发、维护三个 阶段,每个阶段又分为若干个子阶段,各子阶段的工作顺序展 开,如自上而下的瀑布。(见后图) 定义阶段:分析用户需求。 河题定义:收集、分析、理解、确定用户的要求。 可行性研究:确定对问题是否有可行的解决办法。 需求分析:确定用户对软件系统的全部需求。 开发阶段: 设计:设计软件系统的模块层次结构、数据库结构、模块控制 编程:将每个模块的控制流程纺出相应的程序。 维护阶段: 运行与维护:维护软件系统的正常运行 各个阶段确均有相应的文档
1.1.2 软件工程范型 1、传统的软件工程范型――瀑布模型 瀑布模型是1976年由B·W·Boehm提出的,是基于软件生存周 期的一种范型。它将软件生存周期分为定义、开发、维护三个 阶段,每个阶段又分为若干个子阶段,各子阶段的工作顺序展 开,如自上而下的瀑布。(见后图) 定义阶段:分析用户需求。 问题定义:收集、分析、理解、确定用户的要求。 可行性研究:确定对问题是否有可行的解决办法。 需求分析:确定用户对软件系统的全部需求。 开发阶段: 设计:设计软件系统的模块层次结构、数据库结构、模块控制 流程等。 编程:将每个模块的控制流程纺出相应的程序。 测试:检查并排除软件中的错误,提高软件的可靠性。 维护阶段: 运行与维护:维护软件系统的正常运行。 各个阶段确均有相应的文档
问题定义 (目标与范围说明) 定义 阶段 或行性研究 (可行性论证报 需求分析 (需求说明书) 设计 (设计文档) 开发 编程 (程序) 阶段 测试 (测试报告 运行与维护 维护 (维护报告) 除段 传统的软件工程范型——瀑布模型
问题定义 或行性研究 需求分析 设 计 编 程 测 试 运行与维护 (目标与范围说明) (可行性论证报告) (需求说明书) (设计文档) (程序) (测试报告) (维护报告) 定义 阶段 开发 阶段 维护 阶段 传统的软件工程范型――瀑布模型
1.2软件开发方法 两种不同的开发方法:结构化开发方法和面向对象的开发方法 1.2.1结构化开发方法 、结构化分析 1.结构化分析方法,亦称SA( Structured Analysis)方法 1)SA方法的特点 ①核心思想:自顶向下和逐步求精 分解:把大问题分割成若干小间题,然后分别 ②基本手段:分解和抽象。 抽象:略去细节,先考虑问题最本质的属性。 3使用了描述需求说明书的几个规范工具。 即数据流图、数据词典、小说明(加工逻辑的描述)等,使文 档规范化 (2)数据流图( Data Flow Diagram,简称图) SA方法采用“分解”的方法来描述一个复杂的系统,数据流图 是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输 入和逻辑输岀以及把逻辑输入转换为逻辑输出所需要的加工处理
1.2 软件开发方法 两种不同的开发方法:结构化开发方法和面向对象的开发方法。 1.2.1 结构化开发方法 一、结构化分析 1.结构化分析方法,亦称SA(Structured Analysis)方法。 (1)SA方法的特点: ①核心思想:自顶向下和逐步求精。 ②基本手段:分解和抽象。 分解:把大问题分割成若干小问题,然后分别解决。 抽象: 略去细节,先考虑问题最本质的属性。 ③使用了描述需求说明书的几个规范工具。 即数据流图、数据词典、小说明(加工逻辑的描述)等,使文 档规范化。 (2)数据流图(Data Flow Diagram,简称DFD图) SA方法采用“分解”的方法来描述一个复杂的系统,数据流图 是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输 入和逻辑输出以及把逻辑输入转换为逻辑输出所需要的加工处理
帐卡 无余拒付 核查 存折 可行性 储户← 心爷晨 登录 付款 付款信息 银行取款过程的数据流图 数据流图的基本符号: (1)数据流(2)加工(3)数据存储(4)数据源点或终点。1 画各层数据流图应注意的问题: (1)父图和子图平衡(2)子图的编号(3)数据守恒
1 数据 流图的基本符号: (1)数据流 (2)加工 (3)数据存储 (4)数据源点或终点。 画各层数据流图应注意的问题: (1)父图和子图平衡 (2)子图的编号 (3)数据守恒