软件开发与应用-第1章 软件工程学概述
《软件工程》教学教案

《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。
2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。
3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。
4. 教学资源教材、课件、案例分析。
5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。
二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。
2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。
三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。
2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。
3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。
4. 教学资源教材、课件、实例分析。
5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。
四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。
2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。
3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。
4. 教学资源教材、课件、编程环境和测试工具。
5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。
五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。
2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。
第一章软件工程学概述选择题

第一章软件工程学概述选择题1.软件是一种( )产品。
A.有形 B.逻辑C.物质 D.消耗2.软件工程学的目的应该是最终解决软件生产的( )问题。
A.提高软件的开发效率 B.使软件生产工程化C.消除软件的生产危机 D.加强软件的质量保证3.与计算机科学的理论研究不同,软件工程是一门( )学科。
A.理论性 B.工程性 C.原理性 D.心理性4.软件危机的主要原因有( )。
①软件本身的特点②用户使用不当③硬件可靠性差· ④对软件的错误认识⑤缺乏好的开发方法和手段A.③④ B.①②④C.①⑤ D.①③5.在计算机软件开发和维护中所产生的一系列严重的问题通常称为软件危机,这些问题中相对次要的因素是( )。
A.文档质量 B.开发效率C.软件功能 D.软件性能6.软件工程与计算机科学性质不同,软件工程着重于( )。
A.原理探讨 B.理论研究C.建造软件系统 D.原理的理论7.软件工程学科出现的主要原因是( )。
A.计算机的发展B.其他工程科学的影响C.软件危机的出现D. 程序设计方法学的影响8.软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是( )。
A.软件开发工程化B.消除软件危机C.实现软件可重用D.程序设计自动化9.由于软件生产的复杂性和高成本性,使大型软件的生存出现危机,软件危机的主要表现包括了下述( )方面。
①生产成本过高②需求增长难以满足③进度难以控制④质量难以保证A.①② B.②③ c.④ D.全部10.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是( )。
A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件c.消除软件危机,达到软件生产的规模效益D.以基本的社会经济效益为基础,工程化生产软件11.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( )。
第1章软件工程和软件测试概述

1.1软件工程概述- 软件工程
• 1968年北大西洋公约组织的计算机科学家在联邦 德国召开国际会议,讨论软件危机问题,在这次 会议上正式提出并使用了“软件工程”这个名词。 • 软件工程是指导计算机软件开发和维护的一门工 程学科,它是采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明正 确的管理技术和当前能够得到的最好的技术方法 结合起来,以经济地开发出高质量的软件并有效 地进行维护。
• 实际问题的复杂性 实际问题的复杂性 • 程序逻辑结构的复杂性 程序逻辑结构的复杂性
5
1.1软件工程概述- 软件的分类
• 按软件的功能进行划分: 按软件的功能进行划分:
– 系统软件
• • • • • • • • • 操作系统 数据库管理系统 设备驱动程序 通信处理程序等
– 支撑软件
文本编辑程序 文件格式化程序 磁盘向磁带向数据传输的程序 程序库系统 支持需求分析、设计、实现、 支持需求分析、设计、实现、测试和支持管理的软件
• 软件是计算机系统中与硬件相互依存的另一部
它是包括程序 及其相关文档 分,它是包括程序,数据及其相关文档的完整集 它是包括程序,数据及其相关文档的完整集 其中: 合。其中:
– 程序 程序(instructions)是按事先设计的功能和性能要求 是按事先设计的功能和性能要求 执行的指令序列 – 数据 数据(data)是使程序能正常操纵信息的数据结构 是使程序能正常操纵信息的数据结构 – 文档 文档(documents)是与程序开发,维护和使用有关的 是与程序开发, 是与程序开发 图文材料
– 问题定义 – 可行性研究 – 需求分析
18
1.1软件工程概述-软件开发时期
• 开发时期具体设计和实现在前一个时期定 义的软件,它通常由下述4个阶段组成
第1章-软件工程学概述1-1

• 软件用后不磨损
• 随着时间的推移,应用程序
的某些部分可能会变得不再 相关(例如,需求改变时), 而需要修改
• 但是,没有备件的概念
1.1、软件的定义
硬件和软件故障率曲线
由于副作用造成 故障率的提高 原来的软件已经面目全非了!
故障率
磨损后
生命初期
修改
硬件的故障率曲线 实际曲线
软件故障率的理想曲线
1.2、软件危机
软件危机案例
3 . 软件产品的质量靠不住 [案例]:
ARIANE 5 火箭 1996 年6 月,耗资70 亿美元,发射
本章内容
1.1、软件的定义 1.2、软件危机 1.3、软件工程 1.4、软件生存期 1.5、软件过程
1.2、软件危机
软件危机
Crisis!
“软件危机”(Software crisis) 的出现是由于软件的规模越来越大,复杂 度不断增加,软件需求量增大。而软件开 发过程是一种高密集度的脑力劳动,软件 开发的模式及技术不能适应软件发展的需 要。致使大量质量低劣的软件涌向市场, 有的花费大量人力财力,而在开发过程中 就夭折。
时间
1.1、软件的定义
硬件和软件故障率曲线的比较
软件不会用坏(wear out).
软件会退化( deteriorate)!
1.1、软件的定义
软件的特点-7
要求
软件产品不允许误差
软件产品的高质量取决于好的设计( High quality is achieved through) 依赖于人(Depend on people) 需要对产品进行构造(Require the construction of a “product”)
第1章软件工程学概述

(3)软件经常变化 (4)开发软件的效率非常重要 (5.) 和谐地合作是开发软件的关键 (6.) 软件必须有效地支持它的用户 开发软件的目的就是支持用户的工作,满足 用户对软件的需求 (7. )在软件工程领域中通常由具有一种文 化背景的人替具有另一种文化背景的人创 造产品
37
软件工程的研究内容
软件是计算机系统中与硬件(hardware)相互依存 的另一部分,与硬件合为一体完成系统功能。 软件定义包括如下几点: (1)功能和性能的指令集(即程序); (2)程序能正常操纵信息的数据结构(即相关数 据); (3)与程序开发维护和使用有关的各种图文数据 (即说明文档)。
16
软件=程序+数据+相关文档
软件的发展主要经历了以下3个发展阶段:
第一阶段(20世纪50年代初期至20世纪60年 代中期) 特点:(1)称为程序设计阶段 (2)软件生产以个体化为主 (3)编写程序的工具只有低级语言 (4)软件规模小,几乎没有系统化的 标准可循
11
(5)软件由软件使用者自己开发和编写,适 合个人应用 (6)没有“软件”概念,对于程序有关的文 档的重要性认识不足,开发主要围绕硬件 进行 (7)工程规模小,使用工具单一,开发者之 间没有明确分工 第二阶段(20世纪60年代中期至70年代末期) 称程序系统阶段
7
ENIAC诞生于二战时期,最初是作为辅助炮兵计 算炮弹轨迹的工具,在盟军登陆西欧前一年开始 制造,但直到1945年停火时还没完成。在冷战初 期军方就发现了ENIAC的大量用途,它的17468 根真空管被用来测试氢弹的早期设计的可行性。 这台计算机每秒能执行5000条指令,在当时的情 况下它的运算速度比电动式计算机快1000倍。当 然,现在iPhone 6每秒能响应250亿条指令。
软件工程导论第1章 软件工程概述

1.3 续
• 软件生命周期阶段的划分
问题定义 可行性研究 定义时期 需求分析 总体设计 详细设计 开发时期 编码和单元测试 综合测试 软件维护 维护时期 退役
1.3 续
• ⒈软件定义时期
– 软件定义时期的任务是:确定软件开发工程必须
完成的总目标;确定工程的可行性;导出实现工 程目标应该采用的策略及系统必须完成的功能; 估计完成该项工程需要的资源和成本,并且制定 工程进度表。
目标和完成期限,规定开发小组的责任和产品标 准,以便结果的审查。
1.2 续
• ⑹开发小组的人员应该少而精
– 软件开发小组人员素质和数量是影响软件质量和
开发效率的重要因素。
– 素质高的人员开发效率高,错误率低。 – 开发小组的成员之间要交流情况、讨论问题,随
着人数的增加,通信开销将急剧增加。
– 人员数:N
– 由系统分析员完成该阶段的系统分析工作。 – 软件定义时期可通过软件系统的问题定义、可行
性研究和需求分析三个阶段来完成。
1.3 续
• ⑴问题定义阶段
– 问题定义阶段必须回答的关键问题是:“要解决
的问题是什么?”。
– 问题定义阶段的任务是:确定软件系统的工程需
求,也就是要搞清“做什么?”。
– 通过对客户的访问调查,系统分析员扼要地写出
件工程支撑环境;
– 过程是为了获得高质量的软件所需要完成的一系
列任务的框架,它规定了完成各项任务的工作步 骤。
1.2 续
• 传统方法学
– 又称生命周期方法学,或结构化范型。 – 采用结构化技术来完成软件开发的各项任务,并
使用适当的软件工具或软件工程环境来支持结构 化技术的运用。
– 把软件生命周期的全过程依次划分为若干个阶段,
第1章 软件工程学概述

Robert Martin Arie van Bennekun Alistair Cockburn Ward Cunningham Martin Fowler
31
软件过程:敏捷开发
开发原则
尽早地、持续地交付有价值的软件来使客户满意。
即使到了开发后期,也欢迎改变需求。敏捷过程利用变化来为客户创造 竞争优势。 经常交付可工作的软件,其时间间隔可以是几周到几个月。 开发期间,业务人员和开发人员必须天天在一起工作。 最有效果的、最有效率的传递信息的方法,就是面对面的交谈。 首要的进度度量标准是工作的软件。 简单是根本的 ……
2013-7-16
重构:建造产品的过程中不断地调整设计 上海大学计算机学院
33
各种生命周期模型的比较
第1章 软件工程学概述
软件危机
软件工程
软件生命周期
软件过程
2013-7-16
上海大学计算机学院
1
软件危机
软件发展的四个阶段
1. 1950’s~1960’s中
规模较小,个体开发
2. 1960’s中~1970’中
软件作坊,产品软件 “软件危机” 出现,“软件工程” 学科诞生(1968年)
3. 1970’中 ~1980’s
方法
2013-7-16
上海大学计算机学院
10
软件工程
传统方法学
也称为生命周期方法学或结构化范型
采用结构化技术(结构化分析、设计和实现) 结构化范型要么面向行为,要么面向数据
面向对象方法学
把数据和行为看成同等重要,以数据为主线, 把数据和对数据的操作紧密地结合
4个要点
面向对象方法=对象+类+继承+用消息通信
软件工程导论复习重点总结很全(第六版)

软件工程导论复习重点总结很全(第六版)第1章软件工程学概述1.1软件危机1.1.1软件危机的介绍软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:1对软件开发成本和进度的估计常常很不准确;2用户对“已完成的”软件系统不满意的现象经常发生;3软件产品的质量往往靠不住;4软件常常是不可维护的;5软件通常没有适当的文档资料;6软件成本在计算机系统总成本中所占的比例逐年上升;7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
1.1.2产生软件危机的缘故原由1与软件本身的特点有关2与软件开发与维护的方法不正确有关1.1.3消除软件危机的途径对计算机软件有正确的认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。
应该开发和使用更好的软件工具。
总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。
1.21.2.1软件工程的介绍软件工程:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(期中考软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开辟软件的效率非常重要和谐地合作是开辟软件的枢纽软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2软件工程的基本原理用分阶段的生命周期计划严格管理保持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开辟小组的人员应该少而精承认不竭改良软件工程实践的必要性1.2.3软件工程方法学软件工程包括技术和管理两方面的内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
胡俊敏
Email:wingoner@ 2009.2
集美大学工商管理学院信息管理与信息系统系
课程总体安排
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 软件工程学概述 可行性研究 需求分析 形式化说明技术 总体设计 详细设计 实现 维护 面向对象方法学引论 面向对象分析 面向对象设计 面向对象实现 软件项目管理
软件工程——一种层次化技术
软件工程的定义
• 1968年第一届NATO会议:“软件工程就是为了经济
地获得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。” • 1993年IEEE:“软件工程是:①把系统的、规范 的、可度量的途径应用于软件开发、运行和维护过 程,也就是把工程应用于软件;②研究①中提到的 途径。” • 概括来说,软件工程就是:采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验证 明正确的管理技术和当前能够得到的最好的技术方 法结合起来,以经济地开发出高质量的软件并有效 地维护它。
软件危机
软件危机原因
• 软件的规模加大、复杂性提高、性能增强;
• 软件是逻辑产品, 尚未完全认识其本质和特点; • 缺乏有效的、系统的开发、维护大型软件项
目的技术手段和管理方法;
软件危机
软件危机原因
• 用户对软件需求的描述和软件开发人员对
需求的理解往往存在差异,用户经常要求 修改需求,开发人员很难适应;
“软件开发与应用”课程教学的目标 转变对软件的认识: 上升
程序 系统
转变思维定式: 上升
程序员 工程化训练 系统工程师 (系统分析员)
第1章 软件工程学概念
软件危机 软件工程 软件生命周期
软件的发展过程 软件危机的表现 软件危机产生的原因 消除软件危机途径
软件过程
小结
• 若干年前开发的应用软件经过几十次修改已无人
认识它的内部结构,己经不可维护。(遗留软件)
• 由于经济原因,嵌入式系统存在许多怪现象,企业
不愿意投入资源再生产,而采取打补丁+时髦界 面的方法。
软件
软件是计算机系统的重要组成部分; 软件是逻辑产品,需要计算机硬件和系统软 件的支撑; 软件是计算机控制系统的指挥中枢; 软件是信息转换器,它能对信息进行加工、 处理或变换; 软件是工具,在人们的生活、工作、休闲, 在社会的经济、军事、政治、文化、科学技 术、教育中发挥具大作用;
软件的发展
软件发展的四个阶段
1950---1965
没有系统的软件开发方法和管理机制、自定义软件、 批处理、有限分布。
1965---1975
产生人机交互的新概念、新技术软件产品、多用户、 实时、数据库。
软件的发展
软件发展的四个阶段
1973---1988
微处理器的出现并广泛应用 分布式系统、嵌入智能、低成本硬件、消 费者的影响。 1986---2000
这么容易, 没问题!
你们到底做 过没,会不 会做啊?
你看你们 都怎么做 的?
一个屋顶 搞得坑坑 洼洼!!!
这个,要有个工 序,不是光有力 气就可以的. 钱,不给了!
之前没做过,不 过这个有把子力 气不是就可以?
干这么辛苦 竟然没有钱!
讨论问题
一.应该给工人工钱么?
二.这个工程为什么失败了? 三.你能从中得到什么样的经验?
软件工程——一种层次化技术
软件工程的基本原理--坚持进行阶段评审
• 据统计,在软件生存周期各阶段中,编码阶段之
前的错误约占63%,而编码错误仅占37%。另外, 错误发现并改正得越晚,所花费的代价越高。坚 持在每个阶段结束前进行严格的评审,就可以尽 早发现错误,从而可以最小的代价改正错误。因 此,这是一条必须坚持的重要原理。
软件工程——一种层次化技术
软件工程的基本原理 --结果应能清楚地审 查
软件产品是一种看不见、摸不着的逻辑产品。因 此,软件开发小组的工作进展情况可见性差,难 于评价和管理。为了更好地进行评价与管理,应 根据软件开发的总目标和完成期限,尽量明确地 规定软件开发小组的责任和产品标准,从而使所 得到的结果能清楚地审查。
• 软件开发的技术人员和管理人员缺乏软件
工程化的素质和要求,对工程化的开销认 识不足;
软件危机
软件危机仍在继续 ---影响软件质量的糊 涂认识
• 在项目的初始阶段对系统若明若暗就开
始写程序;
• 认为软件是灵活的容易修改,对软件需
求的改变不以为然;
• 程序调试成功标志着工作的结束;
软件危机
软件危机仍在继续 ---影响软件质量的糊涂 认识
软件工程——一种层次化技术
软件工程的基本原理 --用分阶段的生存周期计划严格管理
• 这条基本原理是应该把软件生存周期划分成若
干个阶段,并相应地制定出切实可行的计划, 然后严格按照计划对软件开发与维护工作进行 管理。应该制定的计划有项目概要计划、里程 碑计划、项目控制计划、产品控制计划、验证 计划和运行维护计划等。各级管理人员都必须 严格按照计划对软件开发和维护工作进行管理。 据统计,不成功的软件项目中,有一半左右是 由于计划不周造成的。
软件工程——一种层次化技术
软件工程的基本原理--实行严格的产品控制
• 决不能随意改变需求,只能依靠科学的产品控制技术来顺应
用户提出的改变需求的要求。为了保持软件各个配臵成分的 一致性,必须实行严格的产品控制。其中主要是实行基准配 臵管理(又称为变动控制),即凡是修改软件的建议,尤其 是涉及基本配臵的修改建议,都必须按规程进行严格的评审, 评审通过后才能实施。
软件危机
例如1:Therac-25事件(1985-87 年)
带有软件控制器的放射线疗法仪器抛弃了硬件 互锁,但软件没有互锁。 由于程序员对并发编 程没有经验,软件不能维持必要的不变量,电 子束模或是强烈的光线和金属板干扰,产生X 射线。因为灼伤导致了几起死亡。
例如2: 1996年Atlantic奥运会,IBM赞助的
名为Info’96网络,由于数据传输只有9600位/ 秒,经常因为设计时的考虑不周而使下图“大 塞车”,造成比赛中断。
软件危机
软件危机的典型表现
对软件开发成本、进度以及工作量的估计常常很不 准确 用户对“已完成的”软件系统不满意的现象经常发 生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上 升 软件开发生产率提高的速度远远跟不上计算机应用 迅速普及深入的趋势
支撑软件 应用软件 微型、小型、中型、大型等 分时处理、实时处理、 批处理、交互处理
按规模划分
按工作方式划分 按服务对象划分
项目软件和产品软件
软件
关于软件的几个认识问题
你同意以下几种说法么?
需求分析和写需求文档不重要,可以程序都写好了,再回头
补充。 既然需求分析很困难,不管三七二十一先把软件做了再 说,反正软件是灵活的,随时可以修改。 软件编写完成以后就万事大吉了。 如果我们落后于计划,可以增加更多的程序员来解决。
软件
计算机世界的软件
软件是能够完成预定功能和性能,并对相应 数据进行加工的程序和描述程序及其操作的 文档。 软件 = 程序+数据+文档 程序 = 算法+数据结构
思考:软件= 程序 ?
软件
软件与硬件的相比的特点
软件 硬件
展现形状
失效率 制造过程 质量控制
逻辑实体
与开发阶段相关 设计、编写程序 设计各环节
《人月神话》开篇
史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场 面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣 扎。它们挣扎得越是猛烈,油纠缠得越紧,没有任何猛兽足够 强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑 底。 过去几十年的大型系统开发就犹如这样一个焦坑,很多大 型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可 运行的系统——不过,其中只有非常少数的项目满足了目标、 时间进度和预算的要求。各种团队,大型的和小型的,庞杂的 和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像 没有任何一个单独的问题会导致困难,每个都能被解决,但是 当它们相互纠缠和累积在一起的时候,团队的行动就会变得越 来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且 很难看清问题的本质。不过,如果我们想解决问题,就必须试
软件工程——一种层次化技术
软件工程的本质
以工程化的思想来约束软件本身特点所带来的不规范. 两个基本点: 控制 变化性 复杂性 协调 效率
产品
团队
用户
软件工程——一种层次化技术
软件工程的基本原理
著名的软件工程专家B. W. Boehm于1983年综 合了软件工程专家学者们的意见并总结了开发软 件的经验,提出了软件工程的7条基本原理。这7 条原理被认为是确保软件产品质量和开发效率的 原理的最小集合,又是相互独立、缺一不可、相 当完备的最小集合。
• 这里的“基准配臵”是指经过阶段评审后的软件配臵成分,
即各阶段产生的文档或程序代码等。
软件工程——一种层次化技术
软件工程的基本原理--采用现代程序设计 技术
实践表明,采用先进的程序设计技术既可以提高 软件开发与维护的效率,又可以提高软件的质量。 多年来,人们一直致力于研究新的“程序设计技 术”。比如,20世纪60年代末提出的结构程序设 计技术;后来又发展出各种结构分析(SA)和结 构设计(SD)技术;之后又出现了面向对象分析 (OOA)和面向对象设计(OOD)技术等等。