一章软件工程基本概念

合集下载

软件工程基础全部课程

软件工程基础全部课程

软件工程基础全部课程一、教学内容本节课的主题是软件工程基础,我们将使用教材《软件工程导论》来进行讲解。

本节课的主要内容是第一章:软件工程基本概念。

本章主要介绍了软件工程的定义、目的、历史和发展,以及软件工程的基本原则和方法。

二、教学目标1. 让学生了解软件工程的定义、目的和发展历程。

2. 让学生掌握软件工程的基本原则和方法。

3. 培养学生对软件工程的兴趣和认识。

三、教学难点与重点重点:软件工程的定义、目的、基本原则和方法。

难点:软件工程的实践应用和案例分析。

四、教具与学具准备教具:PPT、投影仪、电脑。

学具:教材《软件工程导论》、笔记本、笔。

五、教学过程1. 引入:通过简单的例子,如手机APP的开发,引出软件工程的定义和重要性。

2. 讲解:讲解软件工程的定义、目的和发展历程。

介绍软件工程的基本原则和方法,如模块化、抽象化、测试等。

3. 案例分析:分析一些成功的软件工程案例,如、淘宝等,让学生了解软件工程在实际中的应用。

4. 讨论:让学生分组讨论软件工程在实际开发中的作用和意义。

5. 练习:让学生通过教材中的练习题,巩固所学的内容。

六、板书设计板书设计如下:软件工程的定义:定义:通过工程化的方法和技术,系统地开发、维护和管理软件的过程。

目的:提高软件的质量、效率和可维护性。

发展历程:从程序设计到软件工程。

软件工程的基本原则:模块化:将软件划分为独立的模块,降低复杂性。

抽象化:忽略无关因素,关注核心问题。

测试:通过测试来验证软件的正确性和可靠性。

软件工程的方法:需求分析:明确软件的功能和性能要求。

设计:制定软件的结构和界面设计。

实现:编写代码,实现软件的功能。

测试:对软件进行测试,发现和修复错误。

七、作业设计作业题目:1. 请简述软件工程的定义、目的和发展历程。

2. 请阐述软件工程的基本原则和方法。

3. 请分析一个你熟悉的软件,如、淘宝等,说明软件工程在其中的应用。

答案:1. 软件工程的定义是通过工程化的方法和技术,系统地开发、维护和管理软件的过程。

软件、软件工程的基本概念和特点

软件、软件工程的基本概念和特点

软件、软件工程的基本概念和特点软件、软件工程的基本概念和特点1. 软件的基本概念软件是指计算机程序、数据以及与计算机程序和数据进行交互的文档的集合。

简单来说,软件就是能够完成一定任务的计算机程序。

它由各种代码语言编写而成,能够运行在计算机硬件上,为用户提供各种功能和服务。

软件分为系统软件和应用软件两大类。

系统软件是指控制计算机硬件和操作系统资源的软件,如操作系统、编译器等;应用软件则是为实现特定任务而编写的软件,如办公软件、游戏等。

除了系统软件和应用软件,还有中间件、数据库等各种类型的软件。

中间件是位于操作系统和应用软件之间的软件,用于提供各种系统或者网络服务;数据库是用于存储和管理数据的软件。

2. 软件工程的基本概念软件工程是指将系统化、规范化、可量化的方法应用于软件的开发、运行和维护的过程。

它强调整个软件生命周期的管理和控制,保证软件的质量和进度。

软件工程的目标是提高软件开发的效率和质量,确保软件能够满足用户的需求。

为了实现这一目标,软件工程引入了一系列的方法和技术,包括需求分析、设计、编码、、部署等。

软件工程的核心概念包括软件开发过程、软件开发方法和软件工程管理。

软件开发过程是指将软件从概念到实现的整个过程,包括需求分析、设计、编码、等;软件开发方法是指实现软件开发过程的具体方法,如结构化方法、面向对象方法等;软件工程管理是指对软件开发过程进行组织和控制的活动。

3. 软件的特点软件具有以下几个特点:- 可塑性:软件可以被修改和更新,通过对代码的修改,可以实现不同的功能和服务。

- 可靠性:软件需要具备稳定、可靠的特性,以确保在各种运行环境下都能正常运行,并且能够满足用户的需求。

- 可复用性:软件可以通过模块化的设计和开发,实现代码的复用,提高开发效率和质量。

- 可维护性:软件需要具备易于维护、修改的特性,以保证软件的长期运行和更新。

- 可移植性:软件可以在不同的硬件平台和操作系统上运行,具备一定的可移植性。

软件工程概论知识点汇总

软件工程概论知识点汇总

软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。

2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。

3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。

4.合同法:________规定软件开发过程中的合同签订与履行等事项。

软件工程基本概念

软件工程基本概念

软件工程基本概念:系统工程、软件开发方法、软件工具与软件开发环境软件工程基本概念1.系统工程系统工程是一种跨学科的工程方法,它强调在系统开发过程中采用全面的视角和思维方式,以系统性的方法和策略来解决各种问题。

在软件工程中,系统工程着重应用于大型、复杂系统的开发,如航天、军事、大型企业等。

系统工程强调对系统的整体性、结构性和功能性进行全面分析,包括系统需求分析、系统设计、系统实现、系统测试与验收等阶段。

在系统开发过程中,系统工程采用一系列工具和技术,如系统建模、系统架构设计、系统仿真等,以实现系统的优化和改进。

2.软件开发方法软件开发方法是一种用于指导软件开发过程的方法论,它提供了一组标准的步骤和原则,以指导开发者进行有效的软件开发。

常见的软件开发方法包括:结构化开发方法(SDM)、面向对象开发方法(ODM)、敏捷开发方法(ADM)、迭代开发方法(IDM)等。

这些方法在不同的软件开发场景和项目中具有不同的应用和优势。

软件开发方法的核心是提供一套完整的开发流程和规范,以指导开发者进行需求分析、设计、编码、测试和维护等软件开发活动。

此外,软件开发方法还强调对开发过程的管理和控制,以确保软件开发的质量和效率。

3.软件工具软件工具是用于辅助软件开发的软件或工具集,它们能够提高软件开发的效率和质量。

常见的软件工具包括:集成开发环境(IDE)、版本控制系统(VCS)、代码质量检测工具、调试工具、测试工具、需求管理工具等。

这些工具在不同的软件开发阶段和领域中具有广泛的应用和优势。

软件工具的目的是帮助开发者提高开发效率和质量,它们通过自动化、智能化和可视化等方式,减少了开发者的工作量和难度,同时提高了软件开发的精度和可靠性。

4.软件开发环境软件开发环境是指一系列软件工具和技术的集合,它们用于支持软件开发的整个生命周期。

常见的软件开发环境包括:软件开发平台(如Java平台、Python平台等)、软件开发框架(如Spring、Django等)、软件测试工具(如Junit、Selenium等)、版本控制系统(如Git、SVN等)、持续集成与持续部署(CI/CD)工具等。

软件工程基本概念

软件工程基本概念

软件工程基本概念一、基本概念:1、程序:是为了实现设计的功能和性能要求而编写的指令序列。

2、数据:是使指令能够正常操纵信息的数据结构。

3、文档:是与程序开发、维护和使用有关的图文资料。

4,软件(公认的解释):是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。

另一种定义:计算机程序,数据结构和描述所需逻辑方法、过程或控制的文档。

4-1.实时软件:管理、分析、控制现实世界中所发生的事件的软件。

4-2.嵌入式软件:驻留在专用的职能产品中,用于控制这些产品进行正常工作,完成很有限、很专业的功能的软件。

5,软件危机:就是指在软件开发和软件维护过程中所存在的一系列严重的问题。

5-1.软件的“生命周期”:软件产品从策划、定义、开发、使用和维护直到最后废弃,要经过以一个漫长的时期,这个时期称为软件的“生命周期”。

6,软件工程(Boehm)定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

7,软件工程(IEEE)定义:是开发、运行、维护和修复的系统方法。

8,软件工程(Fritz Bauer)定义:建立并使用完善的工程化的原则,以较经济的手段获得能在实际机器上有效运行的可靠的软件的一系列方法。

9,软件工程过程:是用以开发和维护软件及其相关产品的一系列活动,包括软件工程活动和软件管理活动。

这些活动的执行可以使有序的、循环的、重复的、嵌套的、也可以是有条件引发的。

10,软件工程过程模型:在一个具体的实际工程活动中,软件工程师必须设计、提炼出一个工程开发策略,用以覆盖软件过程中的基本阶段,确定所涉及的过程、方法、工具。

11、过程性能:一个软件开发组织遵循其软件过程所得到的实际结果称之为该过程的“过程性能”。

12,过程能力:软件开发组织通过执行其软件过程能够实现预期结果的程度称之为该组织的“软件过程能力”13,过程成熟度:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度称为此过程的成熟度。

软件工程第一章

软件工程第一章
• 1、瀑布模型
1.3.2、 1.3.2、软件开发模型
• 2、螺旋模型
• 1988 年B.Boehem 提出了螺旋模型,它加入了风 险分析,通常用来指导大型软件项目的开发。软件 风险分析的目标是在造成危害之前及时对风险进行 识别、分析,采取对策,进而消除或减少风险的损 害。
1.3.2、 1.3.2、软件开发模型
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 4、软件的发展:
1.1.2、 1.1.2、软件危机
• 软件危机指的是软件开发和维护过程中遇 到的一系列严重问题。 • 软件危机包含下述两方面的问题:如何开 发软件,怎样满足对软件的日益增长的需 求;如何维护数量不断膨胀的已有软件。
1.3.2、 1.3.2、软件开发模型
• 1、瀑布模型
• 瀑布模型即生存周期模型,由B.M.Boehm 提出, 是软件工程的基础模型。其核心思想是按工序将问 题化简,将功能的实现与设计分开,便于分工协作。 其最为突出的缺点是该模型缺乏灵活性,特别是无 法解决软件需求不明确或不准确的问题。
1.3.2、 1.3.2、软件开发模型
1.1、软件 1.1、软件
• 这一节包括两大方面的内容:
• 1.1.1、软件的定义、特点、种类和软件的 发展 • 1.1.2、软件危机
1.1.1、软件的定义、特点、 1.1.1、软件的定义、特点、种类和软件的发展 • 1、软件的定义: • ----1983 年IEEE 为计算机软件下的定义是: 计算机程序、方法、规则和相关的文档资 料以及在计算机上运行时所必需的数据。 • ----目前对计算机软件通俗的理解为:包括 程序、数据及其相关文档资料的完整集合, 即软件=程序+数据+文档资料。

软件工程_第一章 软件工程基本概念

软件工程_第一章  软件工程基本概念

“软件工程”课程教学与实践的目 标
转变对软件的认识: 转变对软件的认识: 上升 程序 转变思维定式: 转变思维定式: 上升 程序员 工程化训练 系统
系统工程师 (系统分析员 系统分析员) 系统分析员
Software’s impact on our society and culture continues to be profound……
2.2.[社会角度 团队协作的时代 社会角度]团队协作的时代 社会角度 团队协作的时代— —个人英雄主义时代的终结 个人英雄主义时代的终结
我国的软件开发水平,单从编码来看,我们拥有众多的高 水平程序员,绝不逊色于任何国家,但软件开发管理水平与发 达国家有很大差距,这也就是我们不能开发出像Office、操作 系统之类软件的原因。我们从单个程序员来说,能够编写出一 流的代码,漂亮的界面。但是却去不能协调众多程序员去开发 一个项目(工程)软件。在这一方面说我们中国程序员一个人 是一条龙,十个人是一条虫并不为过。 例:首都机场。印度人写的一个模块200多行,我们程序员 只用不到50行,但人家的模块同样正确、而且坚固、文档清晰 易懂。技术技巧固然重要,但软件开发中最大的问题已不
是技术问题,而是管理问题! 是技术问题,而是管理问题!
2.3.[个人角度]专业人员必备的个人素质
1) 基础理论:训练分析解决问题的能力,深层研究的工具。 基础理论:训练分析解决问题的能力,深层研究的工具。 数学分析 训练严密的逻辑思维。 训练严密的逻辑思维。 普通物理和西方哲学史等教会你很多思维方式,比如: 等教会你很多思维方式,比如: 假说——大胆假设、认真求证。 大胆假设、 假说 大胆假设 认真求证。 2) 专业理论:数据库理论、网络基础、编译原理等。 专业理论:数据库理论、网络基础、编译原理等。 3) 专业技术:程序设计语言等。 专业技术:程序设计语言等。 4) 工程技术:软件工程,本、研教育中唯一涉及工程规范与 工程技术:软件工程, 管理的课程, 它象粘合剂, 管理的课程 , 它象粘合剂 , 技术经过它的粘合才能形成软件 产品! 产品! 5) 外语。多门语言多条路。 外语。多门语言多条路。 6) 表达与交流能力:团队内部、与客户通讯的基本素质 表达与交流能力:团队内部、 7) 法律常识与职业道德: 知识产权保护、行业特点的职业道 法律常识与职业道德:知识产权保护、 德

软件工程概念

软件工程概念

软件工程概念第一章:软件定义1.软件( Software):计算机系统中与硬件相互依存的另一部分,它是包括程序(Program),数据(D ata)及其相关文档( Document)的完整集合。

2.软件的特征:逻辑复杂,开发复杂,成本高,风险大,维护困难。

3.按软件功能分类:系统软件,支撑软件,应用软件。

系统软件:操作系统,数据库管理系统,设备驱动程序,通信处理程序等。

支撑软件:文本编辑程序,文件格式化程序,程序库系统等应用软件:商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能嵌入软件,医疗、制药软件,事务管理、办公自动化软件。

按软件规模分类:微型,小型,中型,大型,甚大型,极大型。

按软件工作方式分:实时处理软件,分时软件,交互式软件,批处理软件4.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题5.软件危机主要是两个问题:1.如何开发软件,以满足对软件的日益增长的需求?2.如何维护数量不断膨胀的已有软件?5.软件危机的表现:1.成本高,开发成本估计不准确2.软件质量不高、可靠性差3.进度难以控制4.维护非常困难5.用户不满意6. 由于软件质量问题导致失败的软件项目非常多。

6.产生软件危机的原因:1.与软件本身的特点有关 2.与软件开发与维护的方法不正确有关.软件工程学的目的:以较低的成本研制具有较高质量的软件软件工程技术的两个明显特点:1.强调规范化2. 强调文档化软件工程的基本原理(7条):1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性8.软件工程方法学包含3个要素:方法、工具和过程9.软件生命周期:软件定义(问题定义,可行性研究,需求分析),软件开发(总体设计,详细设计,编码和单元测试,集成测试),运行维护(持久满足用户需求)10.软件过程模型:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 组织管理措施
• 软件开发不是某种个体劳动的神秘技巧,而应该 是一种组织良好、管理严密、各类人员协同配合、 共同完成的工程项目。
1.3 软件工程
一、什么是软件工程
– 软件工程是指导计算机软件开发和维护的工 程学科。它采用工程的概念、原理、技术和 方法来开发与维护软件,把经过时间考验而 证明正确的管理技术和当前能够得到的最好 的技术方法结合起来。
2. 软件开发是一个知识密集型的开发活动,需要 相互合作完成,但瀑布模型没有体现这一点。
1.4 软件开发过程模型
二、原型模型
1. 基本思想 – 在获取一组基本的需求定义后,利用高级软件工具
的可开发环境,快速地建立一个目标系统的最初版 本,并把它交给用户试用、补充和修改,再进行新 的版本开发。反复进行这个过程,直到得出系统的 “精确解”,即用户满意为止。经过这样一个反复 补充和修改的过程,应用系统的“最初版本”就逐 步演变为系统的“最终版本”。
1.4 软件开发过程模型
软件维护往往经历软件生存期的各个阶段,从而构成 生存期循环。
1.4 软件开发过程模型
具有维护循环的软件生存期的瀑布模型
1.4 软件开发过程模型
– 瀑布模型的缺点:
1. 从认识论角度看,人的认识是一个多次反复循 环的过程,不可能一次完成。但瀑布模型中划 分的几个阶段,没有反映出这种认识过程的反 复性。

软件)
主 要 程 序 汇 编 及 机 器 高级语言 设计语言 语言
高级语言系统、 程序设计语言
软 件 工 作 程序编写 范围
包 括 设 计 和 软件生存期 测试
需求者
程 序 设 计 者 少数用户 本人
市场用户
计算机软件发展的三个时期及特点
程序设计 程序系统 软件工程
维 护 责 任 程序设计者 开发小组 者
– 典型瀑布模型具有顺序性和依赖性
1.4 软件开发过程模型
– 瀑布模型的特征
1. 从上一项活动中接受该项活动的工作对象,作 为输入。
2. 利用这一输入实施该项活动应完成的内容 3. 给出该项活动的工作成果,作为输出传给下一
项活动 4. 对该项活动实施的工作进行评审。若其工作得
到确认,则继续下一项活动。
提 出 的 问 成 本 /效 益 分 析 ; 推 荐 的 系 统
题?
结构:层次图或结构图
生命周期法各阶段的工作小结
阶段 关键问题 结束标准
详细设计
编码和单 元测试 综合测符合要求的 软件
编 码 规 格 说 明 : H IP O 图 或 PD L
原程序清单:单元测试方案 和结果 综合测试方案和结果;完整 一致的软件配置
生命周期法各阶段的工作小结
阶段 关键问题 结束标准
问题定义 问 题 是 什 关于规模和目标的报告书 么?
可行性研 究 需求分析
有可行的解 吗? 系统必须做 什么?
系统的高层逻辑模型:数据 流 图 、 成 本 /效 益 分 析 系统的逻辑模型:数据流图、 数据字典、算法描述
总体设计
如何解决已 可能的解法:系统流程图、
1.2 软件危机
四、产生软件危机的原因
1. 与软件本身的特点有关
• 软件不同于硬件,它是计算机系统的逻辑部件而 不是物理部件。在写出程序代码并在计算机运行 之前,软件开发过程的进展情况较难衡量,软件 开发的质量也较难评价。因此,管理和控制软件 开发过程相当困难。
2. 软件不易于维护
(1)软件维护通常意味着改正或修改原来的设计, 客观上使软件较难维护。
1.3 软件工程
1. 用分阶段的生命周期计划严格管理
– 经统计表明,不成功的软件项目中有一半左 右是由于计划不周造成的。
– Boehm认为,在软件的整个生命周期中应制 定并严格执行六类计划:项目概要计划、里 程碑计划、项目控制计划、产品控制计划、 验证计划、运行维护计划。
1.3 软件工程
2. 坚持进行阶段评审
维护
持 久 地 满 足 完整准确的维护记录
需要的软件
1.3 软件工程
4. “生命周期法”的特点
• 阶段具有顺序性和依赖性 • 推迟实现的观点 • 质量保证的观点
– 每个阶段都必须完成规定的文档 – 每个阶段结束前都要对所完成的文档进行评审,以便
尽早发现问题,改正错误。
1.4 软件开发过程模型
一、瀑布模型
1.4 软件开发过程模型
➢(3)从需求分析到最终产品都可作原型,即可 为不同目标作原型。
➢(4)它必须快速、廉价。 ➢(5)它是迭代过程的集成部分,即每次经用户
评价后修改、运行,不断重复双方认可。
1.4 软件开发过程模型
4. 原型法的评价
– 优点 1.原型法在得到良好的需求定义上比传统生存周期法
1.4 软件开发过程模型
– 有了满意的系统原型,同时也积累了使用原 型的经验,用户常会提出新目标,从而进一 步重新原型周期。新目标的范围要比修改或 补充不满意的原型大。
1.4 软件开发过程模型
3. 原型特征
– 软件原型是软件的最初版本,以最少的费用、 最短的时间开发出的、以反映最后软件的主 要特征的系统。它具有以下特征:
– (1)它是一个可实际运行的系统。
1.4 软件开发过程模型
– (2)它没有固定的生存期。一种极端是扔掉原 型(以最简便方式大量借用已有软件,做出 最后产品的模型,证实产品设想是成功的, 但产品中并不使用);另一种极端是最终产 品的一部分即增量原型(先做出最终产品的 核心部分,逐步增加补充模块),演进原型 居于其中(每一版本扔掉一点,增加一点, 逐步完善至最终产品)。
– 开发小组人员数目的增加,使相互交流复杂、 费用增加。
1.3 软件工程
7. 承认不断改进软件工程实践的必要性
– 遵循前6条基本原理,就能够按照当代软件 工程基本原理实现软件的工程化生产,但不 能保证赶上时代前进的步伐。
– 积极主动采纳新的软件技术,且不断总结经 验。
1.3 软件工程
三、软件工程的传统途径
1.4 软件开发过程模型
原型:一个具体的可执行模型,它实现 了系统的若干功能。 原型法:不断地运行系统“原型”来进 行启发、揭示和判断的系统开发方法。
1.4 软件开发过程模型
2. 原型模型
1.4 软件开发过程模型
– 在“需求分析”、“原型设计”两个阶段中, 开发者和用户一起为想象中的系统的某些主 要部分定义需求和规格说明,并由开发者在 规格说明级用原型描述语言构造一个系统原 型,它代表了部分系统,包括那些为满足用 户需求的必要属性。该原型可用来帮助分析 和设计工作,而不是一个软件产品。
2. 第二代(60年代中期-70年代中期)程序系 统阶段
• 出现“软件作坊”、产品软件;“个体化”开发 方法。
3. 第三代(70年代中期之后)软件工程阶段
软件开发成为一门新兴的工程学科——软件工程。
计算机软件发展的三个时期及特点
程序设计 程序系统 软件工程
软 件 的 范 程序 畴
程 序 及 说 明 产品软件(项目
1.4 软件开发过程模型
– 在演示原型期间,用户可以根据他所期望的 系统行为来评价原型的实际行为。如果原型 不能满意地运行,用户能立刻找出问题和不 可接受的地方,并与开发者重新定义需求。 该过程一直持续到用户认为该原型能成功地 体现想象中的系统的主要部分功能为止。在 这期间,用户和开发者都不要为程序算法或 设计技巧等枝节问题分心,而是要确定开发 者是否理解了用户的意思,同时试验实现它 们的若干方法。
– 软件工程是一门涉及软件计划、需求分析、 设计、编码、测试和维护的原理、方法及工 具的研究和应用的学科。
1.3 软件工程
二、软件工程的基本原理
– 1968年在联邦德国召开的国际会议上正式 “软件工程”术语。
– 目前有100多条关于软件工程的准则,其中 最出名的是著名软件工程专家B.W.Boehm在 1983年提出的7条基本原理。
1. 如何开发软件,怎样满足对软件的日益增长 的需求。
2. 如何维护数量不断膨胀的已有软件
1.2 软件危机
三、软件危机的主要表现
1. 对软件开发成本和进度的估计不准确 2. 用户不满意 3. 软件质量不高、可靠性差 4. 软件常常不可维护、错误难以改正。 5. 缺乏适当的文档资料 6. 软件成本占系统总成本的比例逐年上升 7. 软件开发速度跟不上计算机发展速度
专职维护人员
硬件特征 软件特征
价高、存储 小、可靠性 差 完全不受重 视
降价;速度、向超高速、大容 容 量 、 可 靠 量、微型化发展 性明显提高 软件技术的发展 开发技术有进步,但 不满足需要,出 未获得突破性进展, 现软件危机 软件危机未完全摆脱
1.2 软件危机
二、什么是软件危机
– 软件危机是指在计算机软件的开发和维护过 程中所遇到的一系列严重问题。主要是两个 问题。
1.1 软件
软件的特点
– 抽象性:逻辑实体,可记录,但看不到 – 可复制性:与开发成本相比,复制成本很低 – 无折旧 – 受硬件制约 – 未完全摆脱手工工艺 – 开发费用高
1.2 软件危机
一、计算机软件发展的三个时期
1. 早期时代(60年代中期之前)程序设计阶段
• 硬件通用,软件专用;程序规模小,编写者和使 用者为同一人(同组人)。
1.4 软件开发过程模型
– 缺点 1.“模型效应”或“管中窥豹”。对于开发者不熟悉
的领域把次要部分当作主要框架,做出不切题的原 型。 2.原型迭代不收敛于开发者预先的目标。即每次更改, 为了消除错误,次要部分越来越大,“淹没”了主 要部分。 3.原型过快收敛于需求集合,而忽略了一些基本点。 4.资源规划和管理较为困难,随时更新文档也带来麻 烦。 5.长期在原型环境上开发,只注意得到满意的原型, 容易“遗忘”用户环境和原型环境的差异。
相关文档
最新文档