1绪论软件工程.ppt_第1页
1绪论软件工程.ppt_第2页
1绪论软件工程.ppt_第3页
1绪论软件工程.ppt_第4页
1绪论软件工程.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程 第一章 绪论 郑斌,前言,参考教材介绍 清华版软件工程导论(第五版) 北大版软件工程(第三版) 机械版软件工程Ian Sommerville (第八版) 网页介绍 / Software Engineering Institute of Carnegie Mellon University,迄今为止,计算机系统已经经历了4个不同的发展阶段(60年代前“定制”,至70年代“作坊”,至80年代“微处理器”,至现在“网络”),但是,我们仍然没有彻底摆脱“软件危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。 为了更有效地开发与维护软件,软件工作者在

2、20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科计算机软件工程学(通常简称为软件工程)。,(1) 软件危机 20世纪60年代以来,随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,称为社会、经济发展的制约因素。这一现象称为“软件危机”。 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 概括地说,软件危机包含下述两方面的问题: 如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。,1.1 软件工程概念的提出与发展,在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和

3、软件开发与维护的方法不正确有关。 软件特点: 软件缺乏“可见性”,软件在运行过程中不会因为使用时间过长而被“用坏” 。 规模庞大,程序复杂。更重要的是必须有严格而科学的管理。 软件开发维护不正确方法: 对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。(软件就是编程序,需求的把握,生命周期,软件配置) 轻视维护工作,这是一个观念问题,特别是在目前国内现在的环境。据统计,维护费用要占到总费用的55%70%(数据来自清华版教材),图0.1 引入同一变动付出的代价随时间变化的趋势,软件工程概念的提出,其目的是倡导以工程的原理、

4、原则和方法进行软件开发,以期解决出现的“软件危机”,(2)软件工程概念 定义:软件工程是应用计算机科学理论和技术以及工程管理原理和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。 采用工程的原理、原则和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 思考:计算机科学与软件工程?计算机系统工程? 软件工程的适用范围和研究意义?,软件工程的发展大体划分为两个阶段: 20世纪60年代末-80年代初:软件工程化的开发和管理。主要围绕软件项目,开展有关开发模型、开发方法

5、和支持工具的研究。 成果 特征:前期主要研究系统实现技术,后期开始关注软件质量和软件工程管理。 20世纪80年代以来:主要围绕软件工程过程的支持,开张有关软件生产技术,特别是软件复用技术和软件生产管理方面的研究和实践。 成果 近年成果,休息一下!,计算机软件是指计算机系统中的程序、文档以及对应的相关数据。 程序:计算机任务的处理对象和规则的描述; 文档:是为了理解程序所需的阐述性资料; 数据:是支持程序运行的基础数据及数据结构。,1.2 软件开发的本质,软件是对一个特定问题域的抽象,是被开发出的一种逻辑实体,而不是一种“有形”的物理部件。 软件开发的目标是将问题域中概念映射为运行平台层面上的概

6、念(如变量、常量、表达式等),把问题域中的处理逻辑映射为运行平台层面上的处理逻辑(如顺序、选择、循环语句)。,-软件开发的本质是什么?,软件开发的本质,问题域 -客观事物系统,概念不同,解决问题的思维逻辑不同 -“距离”,操作系统与语言处理系统,网络 计算机 -异构,VB、VC -程序设计环境,中间件技术与产品,应用框架,领域软件生产线,映射,运行(计算)平台,软件开发:实现问题域到运行平台的概念和处理逻辑的映射.,系统建模,设计实现,运行平台:可直接支持软件执行的系统软件、支撑软件以及硬件等的集合体。 软件开发就是要“弥补”问题域与运行平台之间的“距离” 随着技术的进步, “距离”会越来越小

7、,但难以实现自动化 距离将长期存在,从问题域想运行平台直接映射,势必存在一定复杂性。为控制复杂性,需要确定多个抽象层,如需求层、设计层、实现层、部署层。 每个抽象层有自己的特定术语,形成该抽象层的一个术语空间。 概念和处理逻辑的逐层映射: 问题域需求层设计层运行平台,例如1:问题空间的概念 与 解空间的模型化概念 之间的映射 对象 = F(张山) (模型化概念) (问题空间的概念) 这是一个抽象的过程-数据抽象. 其中, 对应的过程:需求分析 使用的方法:面向对象方法 基于的原理:数据抽象 目标:形成计算的客体。,例如2:问题空间的处理逻辑 与 解空间处理逻辑 之间的映射 加工1(及相关的数据

8、流)=F(计算学生成绩),加工1 计算学生平均成绩,科目+年级/班,学生成绩文件,学生平均成绩,规约后的处理逻辑,这也是一个抽象的过程-过程抽象 其中:对应的过程:需求分析; 使用的方法:结构化方法; 基于的原理:过程抽象 目标:形成一种可构造的计算逻辑.,例如3: 交互图1=H(计算学生成绩) 其中:对应的过程:需求分析设计 使用的方法:面向对象方法 基于的原理:行为结构抽象(简称行为抽象) 目标:形成一种可构造的计算逻辑.,:教务员,:教员,递交A科学生成绩表,A科学生成绩表,:教学主任,求A科平均,A科平均,软件开发的本质 不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射

9、”。,如何实现 (技术层面),如何管理 (管理层面),过程方向: 求解软件的开发逻辑,过程途径: 求解软件的开发手段,各种模型: 瀑布、演化、螺旋,建模,建 模,规划、组织、人员安排、控制、领导,2 实现映射的基本手段 何谓建立问题的模型: 运用所掌握的知识, 通过抽象,给出该问题的一个结构。,问题的结构化谱系 例如1 :y=x +5,结构化问题,非 结构化 或半结构化问题,建模:是解决问题的一般途径!,其中:采用数学作为建模工具,建模手段:结构化方法、面向对象方法、面向数据结构方法等 建模形成的结果,就是模型 何谓模型 简单的说,是待建系统的任意抽象,其中包括所有的基本能力、特性或其他一些方

10、面,没有任何冗余的细节。 具体地说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及它们之间的语义关系。,例如2:信用卡确认系统的功能模型,财务结算机构(负责信用卡帐户的结算服务),零售机构(顾客通过该机构刷卡,购买商品或服务。,其中:采用UML作为建模工具,团体客户,个体客户,问题空间,需求-一个抽象层,设计-一个抽象层,实现-一个抽象层,部署-一个抽象层,验 证/ 确 认,3 软件系统或项的模型分类 概念模型与软件模型,-概念模型,-设计模型,-实现模型,-部署模型,软件模型,问题域 -客观事物系统,分层的基本动机是控制开发的

11、复杂性, 一个抽象层是由一组确定的术语定义的.,在需求层上创建的系统概念模型是对客观事物系统的抽象,即标识要解决的问题,或称问题定义 软件模型依据所在的抽象层,可进一步分为设计模型、实现模型和部署模型等,给出需求层上概念模型的软件解决方案。 软件开发既有技术上的问题,又有管理上的问题。,软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程领域中,这两个术语的含义基本相同。,1.3

温馨提示

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

评论

0/150

提交评论