软件工程的产生_第1页
软件工程的产生_第2页
软件工程的产生_第3页
软件工程的产生_第4页
软件工程的产生_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程的产生 软件的分类 软件的发展 软件危机 软件工程 软件工程过程和软件生存期 软件生存周期模型、方法和工具,绪论,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合 程序是按事先设计的功能和性能要求执行的指令序列 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料,软件的特点,软件是一种逻辑产品,而不是具体的物理实体。因而它具有抽象性 软件产品的生产主要是研制 在软件产品不会用坏、不存在磨损,消耗问题 软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式 软件费用不断增加,软件成本相当昂贵,软件的分类,按软件的功能进行划

2、分: 系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等,支撑软件 文本编辑程序 文件格式化程序 磁盘向磁带向数据传输的程序 程序库系统 支持需求分析、设计、实现、测试和支持管理的软件,应用软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件,按软件规模进行划分: 类别 参加人员数 研制期限 源程序行数 微型 1 14周 0.5k 小型 1 16月 1k2k 中型 25 12年 5k50k 大型 520 23年 50k100k 甚大型 1001000 45年 1M(=100

3、0k) 极大型 20005000 510年 1M10M,按软件工作方式划分: 实时处理软件 分时软件 交互式软件 批处理软件,按软件服务对象的范围划分: 项目软件 产品软件,按使用的频度进行划分: 一次使用 频繁使用,按软件失效的影响进行划分: 高可靠性软件 一般可靠性软件,软件发展阶段,程序设计阶段1946年至1956年 程序系统阶段1956年至1968年 软件工程阶段 1968年以后,软件危机的产生 软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的

4、要求。在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成尖锐的矛盾,因而导致了软件危机,软件危机的表现 经费预算经常突破,完成时间一再拖延 开发的软件不能满足用户要求 开发的软件可维护性差 开发的软件可靠性差,软件危机的原因 软件的规模越来越大,结构越来越复杂 软件开发管理困难而复杂 软件开发费用不断增加 软件开发技术落后 生产方式落后 开发工具落后,生产率提高缓慢,软件工程的定义,1968年 北大西洋公约组织 提出“软件工程”的概念 Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料 IEEE:软件工程是开发、运行、维护和修复软件

5、的系统方法 书中定义:用科学知识和技术原理来定义、开发、维护软件的一门学科,软件工程性质是一门综合性交叉学科 用工程学的观点进行费用估算、制定进度、制定计划 用管理科学中的方法和原理进行软件生产的管理 用数学的方法建立软件开发中的各种模型和各种算法 软件工程目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高,软件工程内容 软件开发技术(软件开发方法、软件开发过程、软件开发工具和环境) 软件开发管理(软件管理学、软件经济学、软件心理学) 软件工程面临的问题: (1)软件费用 (2)软件可靠

6、性 (3)软件维护 (4)软件生产率 (5)软件重用,软件工程过程,软件工程过程:规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务 软件工程过程包含七个过程: 获取过程 供应过程 开发过程 操作过程 维护过程 管理过程 支持过程,软件生存期 life cycle,指一个软件从提出开发要求开始直到该软件报废为止的整个过程 软件生存期的七个步骤,即可行性分析和项目开发计划、需求分析、概要设计、详细设计、程序编码、测试及维护,可行性分析和项目开发计划,确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源(计算机硬件,软

7、件,人力等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析,对待开发软件提出的需求进行分析并给出详细的定义 编写软件需求说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审,软件设计,概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应 详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础 编写设计说明书,提交评审,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单” 写出的程序应当是结构良好、清晰易读的,且与设计

8、相一致的,软件测试,单元测试:查找各模块在功能和结构上存在的问题并加以纠正 组装测试:将已测试过的模块按一定顺序组装起来 按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护 运行中发现了软件中的错误需要修正 适应性维护 为了适应变化了的软件工作环境,需做适当变更 完善性维护 为了增强软件的功能需做变更,软件生存期模型,软件生存期模型是描述软件开发过程中各种活动如何执行的模型 瀑布模型 增量模型 螺旋模型 喷泉模型 智能模型(基于知识的模型) 变换模型,瀑布模型,RETURN,增量模型,由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,

9、因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次 第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求 第二次则在此基础上获得较为满意的软件产品,螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即: 制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件 风险分析分析所选方案,考虑如何识别和消除风险 实施工程实施软件开发 用户评估评价开发工作,提出修正建议,喷泉模型,迭代 重复 演进 无间隙 各阶段间无明显界限,基于知识的模型,把瀑布模型和专家系统结合在一起 该模型处于研究实验阶段,变换模型,适合于形式化方法的模型,软件开发方法,软件开发方法

10、是一种早已定义好的技术集及符号表示习惯来组织软件生产的过程 软件开发的目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件,结构化方法 是一种面向数据流的开发方法 指导思想:自顶向下、逐步求精 基本原则:功能的分解与抽象 适合于数据处理领域的问题,Jackson方法 是一种面向数据结构的开发方法 JSP:首先描述问题的输入、输出数据结构、分析其对应性,然后推出相应的程序结构,从而给出问题的软件过程描述。以数据结构为驱动 JSD:首先建立现实世界的模型,再确定系统的功能需求。以事件为驱动,基于进程的开发方法,维也纳开发方法(VDM) 是一种形式化的开发方法 基于模型的方法 主要思想:将软件系统当作模型来给予描述,把软件的输入、输出看作模型对象,把这些对象在计算机内的状态看作该模型在对象上的操作,面向对象开发方法 基本出发点是尽可能按照人类认识世界的方法和思维方式来分析和解决问题 面向对象方法包括面向对象分析、面向对象设计、面向对象实现,软件开发工具,软件工具的重要性 软件工具可以放大人类的智力 软件工具:为了支持软件人员开发和维护而使用的软件 工具箱 将各种工具简单组合起来构成工具箱(一种工具支持一种开发活动,软件开发工具,软件开发环境 支持软件开发整个生存周期 计算机辅助软件工程 软件开发的自动化,简称为CASE 实质是为软件开发提供一组

温馨提示

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

评论

0/150

提交评论