您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程6624983281
什么是软件软件的分类软件的发展软件生存期软件工程软件工程的目的和要求•软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合•程序是按事先设计的功能和性能要求执行的指令序列•数据是使程序能正常操纵信息的数据结构•文档是与程序开发,维护和使用有关的图文材料软件的特点•软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性•软件的生产与硬件不同,在它的开发过程中没有明显的制造过程•在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题•软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性•软件的开发至今尚未完全摆脱手工艺的开发方式•软件本身是复杂的•实际问题的复杂性•程序逻辑结构的复杂性•软件成本相当昂贵•相当多的软件工作涉及到社会因素软件的分类•按软件的功能进行划分:–系统软件•操作系统•数据库管理系统•设备驱动程序•通信处理程序等–支撑软件•文本编辑程序•文件格式化程序•磁盘向磁带向数据传输的程序•程序库系统•支持需求分析、设计、实现、测试和支持管理的软件–应用软件•商业数据处理软件•工程与科学计算软件•计算机辅助设计/制造软件•系统仿真软件•智能产品嵌入软件•医疗、制药软件•事务管理、办公自动化软件•计算机辅助教学软件•按软件规模进行划分:•类别参加人员数研制期限源程序行数•微型11~4周0.5k•小型11~6月1k~2k•中型2~51~2年5k~50k•大型5~202~3年50k~100k•甚大型100~10004~5年1M(=1000k)•极大型2000~50005~10年1M~10M•按软件工作方式划分:•实时处理软件•分时软件•交互式软件•批处理软件•按软件服务对象的范围划分:•项目软件•产品软件•按使用的频度进行划分:•一次使用•频繁使用•按软件失效的影响进行划分:•高可靠性软件•一般可靠性软件软件发展阶段•程序设计阶段—50至60年代•程序系统阶段—60至70年代•软件工程阶段—70年代以后软件危机软件开发软件维护软件危机主要表现在以下几点:(1)软件需求增长得不到满足。(2)软件生产成本高、价格昂贵(3)软件生产进度无法控制。(4)软件需求定义不准确,易偏离用户需求。(5)软件质量不易保证。(6)软件可维护性差。归纳起来,软件危机主要表现在两个方面:(1)无法满足日益增长的对软件的需求。(2)难以满足对已有的软件系统的维护需要。产生软件危机的内在原因(1)由于软件生产本身存在着复杂性。(2)与软件开发所使用的方法和技术有关。软件工程的概念软件工程是用科学知识和技术原理来定义、开发、维护软件的一门综合性的交叉学科。软件工程的目的是成功地建造一个大型软件系统软件工程要达到的目标:(1)付出较低的开发成本。(2)达到要求的软件功能。(3)取得较好的软件性能。(4)开发的软件易于移植。(5)需要较低的维护费用。(6)能按时完成开发任务。(7)及时交付使用。(8)开发的软件可靠性高。软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境;在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学等。思考题1.什么是软件危机?表现在哪些方面?2.软件工程是指什么?它的性质是什么?3.简要叙述软件工程目标和内容。4.软件产品具有哪些特性?5.软件生产的发展迄今为止经历了哪几个阶段?各阶段有何特征?6.软件工程面临的问题有哪些?7.试述软件危机产生的原因。参考答案.doc软件工程过程•软件规格说明:规定软件的功能及其运行的限制•软件开发:产生满足规格说明的软件•软件确认:确认软件能够完成客户提出的要求•软件演进:为满足客户的变更要求,软件必须在使用的过程中演进软件工程过程的特性•易理解性•可见性•可支持性•可接受性•可靠性•健壮性•可维护性•速度软件生存期lifecycle•软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期•软件生存期的六个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护瀑布模型制定计划•确定要开发软件系统的总目标•给出功能、性能、可靠性以及接口等方面的要求•完成该软件任务的可行性研究•估计可利用的资源(计算机硬件,软件,人力等)、成本、效益、开发进度•制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查需求分析和定义•对待开发软件提出的需求进行分析并给出详细的定义•编写软件需求说明书或系统功能说明书及初步的系统用户手册•提交管理机构评审软件设计•概要设计—把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应•详细设计—对每个模块要完成的工作进行具体的描述,为源程序编写打下基础•编写设计说明书,提交评审。程序编写•把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”•写出的程序应当是结构良好、清晰易读的,且与设计相一致的软件测试•单元测试,查找各模块在功能和结构上存在的问题并加以纠正•组装测试,将已测试过的模块按一定顺序组装起来•按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用运行/维护•改正性维护运行中发现了软件中的错误需要修正•适应性维护为了适应变化了的软件工作环境,需做适当变更•完善性维护为了增强软件的功能需做变更软件生存期模型•软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架•瀑布模型•演化模型•螺旋模型•喷泉模型•智能模型演化模型•由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次•第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求•第二次则在此基础上获得较为满意的软件产品螺旋模型•螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:•制定计划──确定软件目标,选定实施方案,弄清项目开发的限制条件•风险分析──分析所选方案,考虑如何识别和消除风险•实施工程──实施软件开发•客户评估──评价开发工作,提出修正建议喷泉模型•迭代•重复•演进•无间隙•各阶段间无明显界限软件工程的定义•Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料•IEEE:软件工程是开发、运行、维护和修复软件的系统方法•FritzBauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法软件工程三要素:方法、工具和过程•软件工程方法为软件开发提供了“如何做”的技术•软件工具为软件工程方法提供了自动的或半自动的软件支撑环境•软件工程过程定义了:•方法使用的顺序•要求交付的文档资料•为保证质量和适应变化所需要的管理•软件开发各个阶段完成的里程碑软件工程项目的基本目标•付出较低的开发成本•达到要求的软件功能•取得较好的软件性能•开发的软件易于移植•需要较低的维护费用•能按时完成开发工作,及时交付使用
本文标题:软件工程6624983281
链接地址:https://www.777doc.com/doc-213010 .html