SE第1课-软件工程概述_第1页
SE第1课-软件工程概述_第2页
SE第1课-软件工程概述_第3页
SE第1课-软件工程概述_第4页
SE第1课-软件工程概述_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第二篇软件工程

软件工程的基本概念

软件开发各阶段的任务、技术、方法

主要的软件开发方法

结构化分析和设计

面向对象分析和设计

软件测试(步骤、方法)

软件维护(内容、策略)主要内容:2第一章

软件工程概述软件技术软件危机软件工程软件工程环境主要内容:3

程序与软件

程序:一系列指令序列的集合,能被计算机理解和执行

软件:是计算机系统中与硬件子系统相互依存的另一个

子系统,是一个包含程序及其文档资料的完整集

合,提供了用户与硬件子系统之间的接口

软件

文档:与程序开发、维护和使用有关的图文材料

程序:按事先设计的功能和性能需求执行的指令序列

数据:是程序能正常操纵信息的数据结构

1.1软件技术概述41.1软件技术概述软件的发展历史1早期阶段(60年代中期以前)关键词:面向批处理,有限的分布,自定义软件。2第二阶段(60年代中期~70年代中期)关键词:多用户,实时,数据库,软件产品。3第三阶段(70年代中期~80年代末)关键词:分布式系统,嵌入“智能”,低成本硬件,消费者影响。4第四阶段(80年代中期~至今)关键词:桌面系统,面向对象,人工智能,网络,并行计算个性化的程序

工程化的产品(软件)51.1软件技术概述

大型软件的特点:

规模大(数据量大、占用内存大)

复杂性高(模块间关系、调用方式、数据、文件)

开发周期长、涉及人员多

开发、维护和使用人员不同

多学科综合(软件知识、领域知识)6

软件技术的定义:

是开发计算机软件所需的所有技术的总称

计算机软件技术的领域:

软件工程技术

程序设计技术

软件工具环境技术

系统软件技术

数据库技术

实时软件技术1.1软件技术概述7

软件复用的定义

在构造新的软件系统的过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术

三个层次:知识复用、方法复用、软件成分复用

软件成分复用的三个级别:

代码复用(剪贴、包含和继承)

设计结果复用(设计模型)

分析结果复用(分析模型)

组件技术1.1软件技术概述8

软件危机的定义

计算机软件的开发和维护过程所遇到的一系列严重问题,如:开发周期长、成本增加、可靠性降低等。

1979年美国政府项目调查表1.2软件危机

9

软件危机的表现

对软件开发成本和进度的估算很不准确

用户很不满意

质量很不可靠

没有适当的文档,维护困难

软件成本比重上升

供不应求1.2软件危机

10硬件的故障率曲线软件的故障率曲线1.2软件危机

软件危机产生的原因

客观:软件本身特点逻辑部件规模庞大

主观:不正确的开发方法忽视需求分析认为“软件开发=程序编写”,忽视设计和文档轻视软件测试和维护成本昂贵、本质复杂、没有明显的制造过程,运行期间存在退化问题。11

解决途径

组织管理工程项目管理方法

技术措施软件开发技术与方法软件工具1.2软件危机

12

软件工程的定义

是指用工程的概念、原理、技术和方法来开发和维护

软件,把经过时间考验证明正确的管理技术和当前能

够得到的最好的技术方法结合起来,指导计算机软件

的开发和维护的工程学科

指导计算机软件开发和维护的工程学科

工程方法+管理技术+技术方法1.3软件工程

131.3软件工程

确保软件质量和提高开发效率

内容:

严格按照计划进行管理

坚持进行阶段评审

实行严格的产品控制

采用现代化的程序设计技术

结果应能清楚地审计

开发小组的人员应该少而精

承认不断进行软件工程实践的必要性

B.W.Boehm的七条软件工程原理

软件生命周期的定义

是一个软件从用户需求开始,经过分析、开发、测试、运行维护的一系列相关活动的全周期。

14

软件的生命周期过程1.3软件工程

151.3软件工程

软件工程方法学

软件工程是技术与管理的紧密结合,技术是指方法学问题,管理是指通过计划、组织和控制等活动,合理配置和使用各种资源,得到满足质量要求的工作产物(运行系统和支持文档)。

方法学的三个要素:方法、工具和过程方法:是完成软件开发各项任务的技术方法,是回答“如何做”的问题;工具:为方法的运用提供自动的或半自动的软件支撑环境;过程:一系列工作步骤。

16方法学的分类快速原型方法1.3软件工程

结构化方法起源于结构化程序设计思想,注重系统组成要素之间的相互作用关系,强调软件系统结构的合理性;提出一组提高软件结构合理性的准则:结构化分析、结构化设计、结构程序设计和结构化测试采用的过程模型:

瀑布模型、原型模型螺旋模型、增量模型面向对象方法采用的过程模型:OO

=对象+类+继承+消息通讯

喷泉模型

:以算法和数据结构为核心171瀑布模型

特点阶段的顺序性和依赖性推迟实现的观点

文档驱动的质量保证

存在问题不适合需求模糊的系统结构化的软件过程模型1.3软件工程

182快速原型模型

快速原型方法

原型:

是系统的早期版本,是系统的物理模型,只实现了系统的一些最基本的功能,反映系统的行为特性,但不一定满足全部需求。

建立原型的步骤:

确定用户的基本需求

建立工作原型

试用原型

修改补充原型

特点:

容易理解和沟通

及早发现需求中的问题

检查设计的可行性

快速原型法:

在软件生命周期的编码阶段之前插入一个建立系统原型的阶段。

1.3软件工程

193螺旋模型

螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

四个象限分别代表了以下活动:(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;(3)实施工程:实施软件开发和验证;(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

1.3软件工程

204增量模型

也称构件集成模型,整个软件产品被分解成若干个构件,每一个构件都有设计、实现、集成和测试等过程。开发人员逐个构件地交付产品。

缺陷:需要软件具备开放式的体系结构:新构件加入系统,必须不破坏已构造好的系统部分。增量模型的灵活性能较好地适应需求的变化,但容易使软件过程的控制失去整体性。

1.3软件工程

215过程模型之间的比较

1.3软件工程

22基本思想:

模拟人类习惯的思维方式,通过建立问题域的对象模型(不强调算法和数据结构),使得问题空间与解空间在结构上尽可能一致;开发过程渗透了演绎(一般到特殊:对象分类)和归纳(特殊到一般:“派生类”对“基类”的继承)的渐进深化的思维过程。最主要特征:

以对象模型为核心,整个生命周期使用相同的概念、表示法和策略,为动态模型和功能模型提供实质性得框架。组成:面向对象分析(Object-OrientedAnalysis,OOA)面向对象设计(Object-OrientedDesign,OOD)面向对象程序设计(Object-OrientedProgramming,OOP)面向对象方法学1.3软件工程

23OOA:

任务:分析问题域,用相应的符号系统建立系统的概念模型;

通常从三个方面建立系统模型:

对象模型:描述系统数据结够

动态模型:描述系统控制结构

功能模型:描述系统功能OOD:

任务:决定如何将系统划分成子系统,

每个子系统分成更小的子系统OOP:

任务:将OOD的结果用一种程序设计语言实现1.3软件工程

24采用的软件过程模型:喷泉模型

以"无缝”连接和"迭代”的方式,保证了各个阶段工作的连续性。"圆圈”代表生命周期的阶段,圆圈的重叠表示了阶段间的迭代和无缝过渡,"向下箭头”代表了阶段内的迭代或求精。

1.3软件工程

25

软件工具:

定义:可以用来帮助开发、测试、分析、维护

其它计算机程序的程序以及文档资料的

集合,它可以实现软件生产过程自动化,

提高软件的生产率、可靠性,降低软件

生产成本。

软件工具是一种自动化系统

用于软件生存周期的某一个阶段或某一个环节1.4软件工程环境

26

软件工程环境的定义:

是用以支持需求定义、程序生成,以及软件维护等整个软件生命周期全部活动的,并把方法、规模和计算机程序集成在一起的整个体系。又称为软件开发环境,软件支撑环境,自动开发环境

需求:

集成化的系统

通用的系统

可剪裁又可扩充的系统

实用的、经济合算的系统1.4软件工程环境

27

计算机辅助软件工程————

CASE (ComputerAidedSoftwareEngineering)

将软件工程方法、工具与环境方面的新技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论