




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,软件工程SoftwareEngineering,2,参考书目(References),软件工程导论(第三版)张海藩清华大学出版社(1997),实用软件工程(第二版)郑人杰、殷人昆、陶永雷清华大学出版社(1996),3,FrederickP.Brooks著清华大学出版社,TomDemarco著清华大学出版社,阅读材料(RecommendedBooks),4,软件工程概述,5,主要内容,计算机软件的概念定义/特征/分类介绍软件工程的基本概念软件危机与软件工程软件危机/软件工程软件开发的过程的坎坎坷坷树立软件工程的重要思想软件开发模型瀑布式开发模型,6,软件的基本概念,7,什么是软件,软件是计算机系统中与硬件相互依存的另一部分,是包括程序,数据及其相关文档的完整集合。软件由两个部分组成:程序过程和数据程序是可执行部分。是按照功能和性能要求编写的指令序列。任务的描述、处理规则的实现。数据是程序操作的数据结构和其他需要的相关的信息。文档资料不可执行部分。它是软件的静态描述,涉及到软件的设计、运行、维护等。它有面向开发者的开发计划、面向维护人员的维护手册,也有面向用户的使用说明等。,8,软件概念的说明,程序是按事先设计的功能和性能要求执行的指令序列。它是针对完成任务的动作和对象的描述。程序能够被计算机理解和执行。数据是使程序能正常操作信息的数据结构。文档是用自然语言或者形式化语言所编写的文字资料和图表,用来描述软件的内容、组成、设计、功能规格、开发情况、测试结果以及使用方法。包括方案制定、程序设计说明书、流程图、用户手册等。,9,软件的特点,软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性。通过纸、存储等方式描述它。通过执行、分析等手段评判它。开发、使用、评判的标准较难掌握。软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。不能简单地按照生产过程的质量控制方法来管理软件的开发。,10,软件的特点,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。出现问题是由于问题原来就存在。因此控制软件的质量重点在开发,而不在使用。软件维护实质是修改原来的设计,区别通常维修中的更换。问题出现既然不可避免,应该使得软件变得容易维护。,11,软件不会磨损,但软件会变的恶化,失效率,时间,磨合期,磨损加剧,硬件失效率曲线,理想曲线,改变!,实际曲线,12,软件的特点,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件的开发至今尚未完全摆脱手工艺的开发方式。软件本身是复杂的:实际问题的复杂性程序逻辑结构的复杂性软件成本相当昂贵。相当多的软件工作涉及到社会因素。,13,软件的分类-按功能划分,按软件的功能进行划分:系统软件:使计算机系统各个部件、相关软件和数据协调、高效地工作的软件,它具有公用性、共享性、基础性等特点。操作系统数据库管理系统设备驱动程序通信处理程序等,14,软件的分类-按功能划分,支撑软件:协助用户开发软件的工具软件。文本编辑程序文件格式化程序磁盘向磁带进行数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件,15,软件的分类-按功能划分,应用软件工程与科学计算软件(Matlab)计算机辅助设计制造软件(CAD/CAM)系统仿真软件(SIMULINK)智能产品嵌入软件(LABVIEW)医疗、制药软件(HIS)事务管理、办公自动化软件(OFFICE)商业数据处理软件(如财务软件)计算机辅助教学软件,16,嵌入式软件,嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应各应用系统对功能、可靠性、成本、体积、功耗严格等有要求的专用计算机系统。外观上:不具有通用计算机的形态。按需要对计算机的组成部分进行裁剪。嵌入式软件嵌入式操作系统:进/线程管理、存储管理、IO管理嵌入式应用软件:嵌入式系统中的应用软件。,17,软件的分类-按规模划分,类别参加人员数研制期限源程序行数微型114周0.5k小型116月1k2k数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。中型2512年5k50k软件人员之间、与用户之间的联系、协调的配合关系。因而计划、资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。系统的软件工程方法是完全必要的。,18,软件的分类-按规模划分,大型52023年50k100k编译程序、小型分时系统、实时控制系统等。二级管理,若干小组,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。甚大型100100045年1M(=1000k)若干个子项目,每一个子项目都是一个大型软件。子项目之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型20005000510年1M10M军事指挥、弹道导弹防御系统。只是对软件工程技术依赖的程度不同而已。,19,软件的分类其它,按软件工作方式划分:实时处理软件分时软件交互式软件批处理软件按软件服务对象的范围划分:项目软件产品软件按使用的频度进行划分:一次使用频繁使用,20,软件危机与软件工程,21,软件危机,美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。.,SoftwareCrisis!,22,软件危机,这个项目的负责人F.P.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎.谁也没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取。,23,软件危机,人月神话作者:Frederick.P.BrooksTheMythycalMan-Month,24,软件危机,1、项目没有被很好地理解;计划不周,最终导致进度拖延。2、没有充分的文档资料(documentation)项目经理评估、跟踪整个过程程序员相互之间需要交流通讯维护人员需要维护手册人与人的交流比写程序困难得多。3、软件可靠性(reliability)缺少度量标准,质量无法保证。4、软件难以维护(maintainability)、不易升级(evolvability),25,软件危机,软件危机:是指在计算机软件的开发与维护的过程中所遇到的一系列严重的问题。软件危机包括两个方面的内容:如何开发软件以满足各种需求如何维护已有的众多的软件软件危机不仅存在于“不能正常运行”的软件中,几乎所有的软件都存在着开发和维护的难题,26,软件危机,软件危机的表现成本和进度估计不正确用户对“已完成的”软件系统不满意质量不可靠,常被怀疑不可维护缺乏良好的、适当的文档资料成本高昂,并逐年上升,27,软件危机的原因,软件自身特点所造成的:软件是逻辑实体而非物理实体,因此把握开发的进度、评价、排故等都较困难。软件庞大复杂软件的运行错误是由于计划、设计、开发等阶段引入的,改正错误,意味着修改原来的设计。开发与维护方法的原因未弄清楚用户要求而急于着手写程序。程序仅仅是软件的一部分,常常忽视软件配置成分。轻视软件的维护。,28,软件危机的解决之道,“软件工程”(SoftwareEngineering)NATOConferenceGarmisch(加米施),Germany,1968.引入软件工程的概念开发软件不仅仅是技术问题,更重要的是要重视管理。推广有效的软件开发方法和技术。开发和使用更好的软件工具。,29,软件工程,软件工程是采用工程的概念、原理、技术和方法来开发和维护软件。软件工程强调使用软件生存周期阶段方法学和各种结构分析和结构设计技术。采用工程化方法和途径来开发和维护软件借鉴其它工程项目的原理、概念、技术和方法推广使用实践中总结出来的软件开发的成功技术和方法探索新的有效技术和方法开发和使用更好的软件工具采取必要的管理措施,30,软件工程学,软件工程学包括技术和管理两方面的内容软件开发技术软件开发过程软件开发方法软件开发工具软件工程管理,31,软件开发过程,开发一个最终能满足需求且达到目标的软件产品所需要的步骤研究与分析问题解决问题的方法与设计目标系统实施解决问题方案,即编程实现测试运行与维护软件开发过程是为了获得软件产品或是为了完成软件过程项目需要完成的有关软件开发活动,每一项活动又可分解成一些软件任务。,32,软件开发方法,软件开发方法是对软件开发步骤和各阶段的文档格式提出规范化的要求和标准,使软件生产实现“工程化”。软件开发方法的演变本书讲述的线索:结构化设计方法,33,软件开发工具,软件工具为软件工程方法提供了自动的或半自动的软件支撑环境软件工程环境方法与工具相结合、加上配套的软、硬件支持,34,软件工程管理,按照进度和预算完成软件开发计划成本估计、进度安排、人员组织、质量保证,35,软件的生命周期,在软件工程的概念中必须意识到:“软件”编程,它有自己的生命周期(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。软件生存周期-指从软件项目提出,包括研制、运行和维护直到退役的整个过程。软件生存周期划分为3个时期:计划时期、开发时期和运行时期,每一时期又区分为若干更小的阶段。瀑布模型快速原型模型,36,生命周期的几个观点,将整个生命周期划分为较小的阶段是实现软件生产工程化的重要步骤;每个阶段赋予明确而有限的任务,可以降低因为软件规模大大增长而增加了的软件复杂度;阶段之间的顺序性和依赖性;前一个阶段任务的完成是开始后一个阶段工作的前提和基础;后一个阶段的任务是前一阶段结果的具体化。每个阶段结束前必须进行技术审查和管理复查;,37,生命周期的几个观点,每个阶段结束之后都要交付完整、清楚、准确的文档;根据不同阶段的任务特点,应采用不同的技术和方法;软件的生命周期有效地降低了软件开发的难度,保证了软件的质量,提高了可维护性。,38,瀑布式开发模型,瀑布模型:将软件的生命周期划分为定义、开发、维护三个时期,每个时期又区分为若干个阶段,各个阶段的工作顺序展开,犹如奔流不息的瀑布。特点单源头缺乏灵活性,无法解决软件需求不明确或不准确的问题,39,瀑布式开发模型,40,瀑布式开发模型的阶段性任务,划分阶段的原则:各个阶段的任务彼此之间尽可能相对独立同一个阶段各项任务的性质尽可能相同瀑布式模型生命周期的时期划分:软件定义时期软件开发时期软件维护时期,41,软件定义时期,软件定义时期是软件的计划、分析阶段。完成下列问题:该软件是什么开发该软件的是否可行该软件的功能/性能怎样开发该软件的软/硬件资源是什么完成计划的进度表是什么软件定义时期的三个阶段:问题定义:问题是什么可行性研究:是否能解决/值得解决,42,软件开发时期,具体分析、设计和实现软件定义时期定义的软件软件开发时期的四个阶段需求分析:弄清楚系统做什么弄清系统全部需求,给出需求规格说明书软件设计总体设计:建立软件总体结构,确定系统由那些模块组成详细设计:确定软件的内部过程及算法,给出程序的详细规格说明编码和单元测试:编写源程序,测试每个模块软件测试:找出软件中的错误并改正集成测试:按软件结构,进行组装测试验收测试:按照软件需求规格说明,对目标系统的验收,43,软件维护时期,软件的维护包括纠正错误和扩充、完善功能。软件维护的种类:改正性维护:纠正错误适应性维护:适应环境变化完善性维护:扩充或完善功能预防性维护:为以后的维护活动做准备,44,瀑布式开发模型的几个观点,1、阶段的顺序性和依赖性只有前一阶段任务的完成之后,后一阶段的工作才能开始;前一阶段的输出文档就是后一阶段的输入文档。2、推迟实现的观点3、质量保证的观点每一阶段都要完成规定的文档;每一阶段都要对自己完成的文档进行复审。4、不同阶段中所需人员、资源不同,45,瀑布式开发模型的几个观点,46,瀑布式开发模型特征,前一阶段的输出应该作为本阶段的输入(即:工作对象)。利用该阶段的输入实施该项活动应完成的内容。得到该阶段的工作成果,作为输出传给下一个阶段。对本阶段实施的工作进行评审。确认之后才能进入下一个阶段。,47,原型模型(快速成型模型),建造/修改原型,用户测试运行原型,听取用户意见,48,原型模型,原型化模型:在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件项目。用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。随着开发工作向前推进,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。为了解决这些问题,逐渐形成了软件系统的快速原型的概念。在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。,49,原型化开发模型,软件原型是软件的最初版本,以最少的费用、最短的时间开发出的,反映最后软件的主要特征的系统。特征:可实际运行的系统包括主要功能,以及重要接口快速、廉价,50,采用原型模型的软件生存周期,分析定义系统需求,生成原型,系统设计,程序设计,编码,测试,运行和维护,原型化,含原型化的软件生存期,51,原型化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西来宾市忻城县政府投资审计中心招聘见习生2人模拟试卷及完整答案详解1套
- 2025湖南岳阳市平江县事业单位第一批公开选调工作人员考前自测高频考点模拟试题及一套答案详解
- 2025年上半年四川绵阳市游仙区考核招聘教师31人考前自测高频考点模拟试题及1套参考答案详解
- 2025河南商丘市民权县消防救援大队招聘政府专职消防员32人模拟试卷及参考答案详解1套
- 2025海南白沙黎族自治县机关事务服务中心招聘公益性岗位人员2人考前自测高频考点模拟试题附答案详解
- 2025年阜阳颍上县人民医院引进博士研究生2人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年轧钢导卫装置项目合作计划书
- 2025广东中共中山市委政法委员会所属事业单位招聘事业单位人员4人模拟试卷及完整答案详解一套
- 2025内蒙古鄂尔多斯生态环境职业学院人才引进38人考前自测高频考点模拟试题带答案详解
- 2025年福建省龙岩市武平县乡村人才振兴招聘10人模拟试卷及参考答案详解
- 高中化学-金属钠的性质及应用教学设计学情分析教材分析课后反思
- 工程量清单及招标控制价编制方案
- 04S519小型排水构筑物(含隔油池)图集
- 工程施工人员安全教育培训【共55张课件】
- 双碱法脱硫操作专项规程
- 人教版七年级上学期英语第一次月考试卷(含答案解析)
- 仿生机器鱼行业规模分析
- 胸闷病人的护理查房
- β内酰胺类抗菌药物皮肤试验指导原则(2021版)
- 北京猿人头盖骨失踪之谜
- 华中科技大学教学课件-工程传热学1王晓墨
评论
0/150
提交评论