版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1软件工程SoftwareEngineering2参考书目
(References)软件工程导论〔第三版〕张海藩清华大学出版社〔1997〕实用软件工程〔第二版〕郑人杰、殷人昆、陶永雷清华大学出版社〔1996〕3FrederickP.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软件的分类--按规模划分类别参加人员数 研制期限源程序行数微型1 1~4周0.5k小型1 1~6月1k~2k数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那样严格。中型2~5 1~2年5k~50k软件人员之间、与用户之间的联系、协调的配合关系。因而方案、资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。系统的软件工程方法是完全必要的。18软件的分类--按规模划分大型5~20 2~3年50k~100k编译程序、小型分时系统、实时控制系统等。二级管理,假设干小组,每组5人以下。人员调整往往不可防止,新手的培训。采用统一的标准,实行严格的审查是绝对必要的。甚大型100~10004~5年1M(=1000k)假设干个子工程,每一个子工程都是一个大型软件。子工程之间具有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类问题没有软件工程方法的支持,它的开发工作是不可想象的。极大型2000~50005~10年1M~10M 军事指挥、弹道导弹防御系统。只是对软件工程技术依赖的程度不同而已。19软件的分类—其它按软件工作方式划分:实时处理软件分时软件交互式软件批处理软件按软件效劳对象的范围划分:工程软件产品软件按使用的频度进行划分:一次使用频繁使用20软件危机与软件工程21软件危机美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一工程花了5000人一年的工作量,最多时有1000人投入开发工作,写出了近100万行源程序。......据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。......SoftwareCrisis!22软件危机这个工程的负责人F.P.Brooks事后总结了他在组织开发过程中的沉痛教训时说:“......正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。......程序设计工作正像这样一个泥潭,......一批批程序员被迫在泥潭中拼命挣扎......谁也没有料到问题竟会陷入这样的困境......〞。IBM360操作系统的历史教训成为软件开发工程的典型事例为人们所记取。23软件危机《人月神话》Frederick.P.Brooks《TheMythycalMan-Month》24软件危机1、工程没有被很好地理解;方案不周,最终导致进度拖延。2、没有充分的文档资料(documentation)工程经理——评估、跟踪整个过程程序员——相互之间需要交流通讯维护人员——需要维护手册人与人的交流比写程序困难得多。3、软件可靠性(reliability)缺少度量标准,质量无法保证。4、软件难以维护(maintainability)、不易升级(evolvability)25软件危机软件危机:是指在计算机软件的开发与维护的过程中所遇到的一系列严重的问题。软件危机包括两个方面的内容:如何开发软件以满足各种需求如何维护已有的众多的软件软件危机不仅存在于“不能正常运行〞的软件中,几乎所有的软件都存在着开发和维护的难题26软件危机软件危机的表现本钱和进度估计不正确
用户对“已完成的〞软件系统不满意
质量不可靠
,常被疑心不可维护
缺乏良好的、适当的文档资料本钱高昂,并逐年上升27软件危机的原因软件自身特点所造成的:软件是逻辑实体而非物理实体,因此把握开发的进度、评价、排故等都较困难。软件庞大复杂软件的运行错误是由于方案、设计、开发等阶段引入的,改正错误,意味着修改原来的设计。开发与维护方法的原因未弄清楚用户要求而急于着手写程序。程序仅仅是软件的一局部,常常无视软件配置成分。轻视软件的维护。28软件危机的解决之道“软件工程〞(SoftwareEngineering) NATOConference Garmisch(加米施),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瀑布式开发模型的几个观点测试策略与用例软件计划用户要求系统测试需求分析需求规格说明书确认测试概要设计概要设计说明书集成测试详细设计详细详细说明书编码程序代码单元测试运行维护文档与测试测试测试准备图11.4各阶段评审错误追溯46瀑布式开发模型特征前一阶段的输出应该作为本阶段的输入〔即:工作对象〕。利用该阶段的输入实施该项活动应完成的内容。得到该阶段的工作成果,作为输出传给下一个阶段。对本阶段实施的工作进行评审。确认之后才能进入下一个阶段。47原型模型(快速成型模型)建造/修改原型用户测试运行原型
听取用户意见48原型模型原型化模型:在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件工程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版土地租赁及资源开发合同3篇
- 2025版二手豪华轿车买卖及车主尊享保养套餐合同3篇
- 山东省济宁市曲阜市2024-2025学年九年级上学期期末历史试题(含答案)
- 公共基础-试验检验师(含助理)《公共基础》模拟试卷5
- 公交车辆电动化发展趋势分析考核试卷
- 二零二五年港口拖轮服务与海运运输合同3篇
- 2025年健康养生孕前保养合同
- 2025年在线美食分享平台用户注册协议
- 2025年体育器材赠与协议
- 二零二五年肉牛养殖项目配套购牛合同3篇
- 湖北省黄石市阳新县2024-2025学年八年级上学期数学期末考试题 含答案
- 硝化棉是天然纤维素硝化棉制造行业分析报告
- 央视网2025亚冬会营销方案
- 《00541语言学概论》自考复习题库(含答案)
- 《无砟轨道施工与组织》 课件 第十讲双块式无砟轨道施工工艺
- 江苏省南京市、盐城市2023-2024学年高三上学期期末调研测试+英语+ 含答案
- 2024新版《药品管理法》培训课件
- 《阻燃材料与技术》课件 第7讲 阻燃橡胶材料
- 爆炸物运输安全保障方案
- 江苏省南京市2025届高三学业水平调研考试数学试卷(解析版)
- 2024年黑龙江省哈尔滨市中考数学试卷(附答案)
评论
0/150
提交评论