版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程 近二十年来计算机软件已经成为现代科学研究和解决工程问题的基础,以及管理部门、生产部门、和服务行业中的关键因素,渗透到了各个领域,成为当今世界不可缺少的一部分。 展望二十一世纪,软件仍将成为驱动任何事情从基础教育到遗传工程取得新进展的动力。 学习研究工程化的软件开发方法,使开发过程更加规范。,第一章 软件工程概述,1.1 软件工程、软件危机的背景和历史 一、背景 1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念,引入了现代软件开发的方法,希望用工程化的原则和方法来克服软件危机。,二、软件危机的主要特征,软件
2、开发周期大大超过规定日期; 软件开发成本严重超标; 软件质量难于保证。,三、软件技术面临的问题,规模 复杂性 生产率,例:Windows95有1000万行代码 Windows2000有5000万行代码, 3000多个工程师,几百个小团队。 Exchange2000和 Windows2000开发人员结构,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合 程序是按事先设计的功能和性能要求执行的指令序列 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料,1.2软件的概念、特点和分类 一、软件的概念,二、软件的特点,软件是一种逻辑实体
3、,而不是具体的物理实体。因而它具有抽象性 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工艺的开发方式 软件本身是复杂的 实际问题的复杂性 程序逻辑结构的复杂性 软件成本相当昂贵 相当多的软件工作涉及到社会因素,三、软件的分类,1、按软件的功能进行划分: 系统软件 使计算机系统各个部件、相关软件和数据协调、高效地工作的软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等,支撑软件 协助用户开发软件的工具软件 文本编辑
4、程序 文件格式化程序 磁盘向磁带进行数据传输的程序 程序库系统 支持需求分析、设计、实现、测试和支持管理的软件,应用软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件,2、按软件规模进行划分: 类别 参加人员数 研制期限 源程序行数 微型 1 14周 0.5k 小型 1 16月 1k2k 数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。 中型 25 12年 5k50k 软件人员之间、与用户之间的联系、协调的
5、配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。,大型 520 23年 50k100k 编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。采用统一的标准,实行严格的审查。 甚大型 1001000 45年 1M(=1000k) 若干个子项目,每一个子项目都是一个大型软件,子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统。大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。 极大型 20005000 510年 1M10M 军事指挥、弹道导弹防御系统。 只是对软件工程技术依赖的程度
6、不同而已。,3、按软件工作方式划分: 实时处理软件 分时软件 交互式软件 批处理软件,4、按软件服务对象的范围划分: 项目软件 产品软件,5、的频度进行划分: 一次使用 频繁使用,6、按软件失效的影响进行划分: 高可靠性软件 一般可靠性软件,一、软件工程的定义,Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料 IEEE:软件工程是开发、运行、维护和修复软件的系统方法 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法,1.3软件工程过程和软件生存期,软件工程三要素:方法、工具和
7、过程,软件工程方法为软件开发提供了 “如何做” 的技术 软件工具为软件工程方法提供了自动的或半自动的软件支撑环境 软件工程过程是为了获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动,软件工程过程定义了: 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑,软件工程项目的基本目标,付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用,软件开发项目力图在以上目标的冲突中取得一定程度的平衡。,二、软件工程过程的活动,软件规格说明:规定软件的功能及其运行的限
8、制 软件开发:产生满足规格说明的软件 软件确认:确认软件能够完成客户提出的要求 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进,软件工程过程的特性,易理解性 可见性 可支持性 可接受性,可靠性 健壮性 可维护性 速度,四、软件生存期 life cycle,软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期 软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护,瀑布模型,RETURN,制定计划,确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源(计算机硬件,软件,人力
9、等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查,需求分析和定义,对待开发软件提出的需求进行分析并给出详细的定义 编写软件需求说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审,软件设计,概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应 详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础 编写设计说明书,提交评审。,程序编写,把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单” 写出的程序应当是结构良好、清晰易读的,且与设计
10、相一致的,软件测试,单元测试,查找各模块在功能和结构上存在的问题并加以纠正 组装测试,将已测试过的模块按一定顺序组装起来 按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用,运行维护,改正性维护 运行中发现了软件中的错误需要修正 适应性维护 为了适应变化了的软件工作环境,需做适当变更 完善性维护 为了增强软件的功能需做变更,五、软件生存期模型,软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架 瀑布模型 演化模型 螺旋模型 喷泉模型 智能模型 面向对象模型,演化模型,由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,
11、因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次 第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求 第二次则在此基础上获得较为满意的软件产品,螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即: 制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件 风险分析分析所选方案,考虑如何识别和消除风险 实施工程实施软件开发 客户评估评价开发工作,提出修正建议,喷泉模型,迭代 重复 演进 无间隙 各阶段间无明显界限,面向对象模型,面向对象技术: 90年代的主流技术 支持软件复用、生产率高 适合于开发大型复杂的软件系统 面向对象的分析模型(Obje
12、ct-Oriented Analysis Model)和面向对象的设计模型(Object-Oriented Design Model),软件开发中的问题(补充),计划很难制定致使经费预算常常突破 由于缺乏软件开发的经验 ,主观盲目地制定计划,执行起来和实际情况有很大差距,对于工作量估计不准确,进度计划无法遵循,开发工作完成的期限一拖再拖。已经拖延了的项目,为了加快进度赶上去而增加人力,反而更加延误了。,需求在开发的初期阶段提得不够明确, 或是未能得到确切的表达。 软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,造成开发后期矛盾的集中暴露。然而这时问题既难于分析,也难于挽回。 开发过
13、程没有统一的、公认的方法论和规范指导 加之不重视文字资料工作,资料很不完整;忽视每个人与其他人的接口部分,发现了问题修修补补,这样的软件很难维护。,未能充分做好检测工作 在运行中暴露出大量的问题,轻者影响系统的正常工作,重者发生事故,甚至造成生命财产的重大损失。 美国IBM公司在1963年至1966年开发的IBM 360机的操作系统。5000人-年的工作量,1000人投入,近100万行源程序。每次发行的新版本都是从前一版本中找1000个程序错误,项目负责人F.D.Brook总结时说:“正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难。“,按工程化的原则和方法组织软件开发是软件开发中的问题一个主要出路。 软件工程阶段,约为70年代以后。50年代到60年代时,程序设计曾经被看做是一种任人发挥创造才能的技术领域。写出的程序通篇充满了程序技巧,这些程序很难被别人看懂。然而随着计算机的广泛使用,人们逐渐抛弃了这种观点。对于稍大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医疗废物流失防控试题及答案
- 胸痛中心、卒中中心建设方案
- 心理辅导教师责任制度
- 我国缔约过失责任制度
- 打捞漂浮物责任制度
- 扩口机安全生产责任制度
- 承运人员责任制度规定
- 抚顺市耕地保护责任制度
- 护理首接责任制度
- 控制要建立责任制度
- 2026年安庆医药高等专科学校单招职业适应性测试题库及参考答案详解(新)
- 2026年安徽审计职业学院单招职业技能测试题库参考答案详解
- 2026年3月广西桂林市七星区专职化社区工作者招聘26人考试参考试题及答案解析
- 2026年湖南张家界桑植县招聘20名城市社区专职工作者笔试备考试题及答案解析
- 2025-2026学年冀教版(2024)小学信息技术四年级上册(全册)教学设计(附目录P178)
- 融媒体中心廉政监督制度
- 浙江省2026届高三2月返校考七彩阳光、浙南名校、精诚联盟、金兰教育语文+答案
- 2025年黑龙江旅游职业技术学院单招职业技能考试题库及答案解析
- 2025年山西工程职业学院单招职业技能考试试题及答案解析
- 2026春小学美术岭南版(2024)三年级下册美术教学计划、教案及每课教学反思(附目录)
- 人力资源服务行业安全生产应急预案
评论
0/150
提交评论