计算机软件技术基础-课件 17ch10-SE_第1页
计算机软件技术基础-课件 17ch10-SE_第2页
计算机软件技术基础-课件 17ch10-SE_第3页
计算机软件技术基础-课件 17ch10-SE_第4页
计算机软件技术基础-课件 17ch10-SE_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第三部分软件工程一、课程性质、目的与任务

《软件工程》是计算机技术发展中的一门新兴工程学科,具有较强的综合性和实践性,主要内容包括

软件工程概述

可行性研究与计划

需求分析

软件设计(概要设计、详细设计)

编码与测试

软件维护通过本课程的学习,了解软件项目开发和维护的一般过程、软件工程的阶段划分和开发模型,掌握软件开发的方法(结构化方法)和软件文档的编写,为今后更深入地学习和从事软件开发工作打下良好的基础。二、课程学习的要求

基本概念和基本知识:软件与软件工程,生存周期与软件开发模型,结构化分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。

基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护。

重点:系统分析、系统设计、系统实现、系统维护。

难点:需求分析、软件测试。三、实践性大作业

1.根据本门课程的学习,设计一个小型软件用来实现一定的功能,比如学生成绩管理系统。

2.软件的设计按照软件工程的方法,各个阶段必须有相应文档记录,比如可行性分析报告,需求分析报告,详细设计要有流程图,编码有源代码(改进前后的)。

3.软件维护修改过程中,必须有文档记录修改原因,改进前后优缺点等内容。

4.软件不要求十分商业化,要求基本运行正确,无重大错误。

…第10章软件工程概述学习目标:

1、掌握:软件和软件工程的基本概念

2、了解:软件生存周期及软件开发的各种模型学习要点:

软件、软件工程、软件生存周期和软件开发模型学习内容:

10.1软件的概念

10.2软件工程概念

10.3软件开发模型

10.1计算机软件概念10.1.1软件定义10.1.2软件的特性10.1.3软件的分类10.1计算机软件概念10.1.1软件定义☆软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序:程序是按事先设计好的功能和性能要求执行的指令序列。数据:数据是指程序能正常处理信息和数据结构。文档:文档是与程序运行和维护有关的图文资料。10.1.2软件的特性软件是一种逻辑实体,具有抽象性。软件是在研制、开发中被创造出来的一种产品,在它的开发过程中没有硬件明显的制造过程。在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。图软件/硬件产品失效率曲线硬件失效率曲线软件失效率曲线软件的特性软件的开发和运行对计算机系统有着不同程度的依赖性。软件本身是复杂的实际问题的复杂性程序逻辑结构的复杂性

软件的开发成本相当昂贵。相当多的软件工作涉及到社会因素。10.1.3软件的分类1.基于软件的功能划分:系统软件

是与计算机硬件紧密配合的以使计算机各个部件、相关软件及数据协调、高效工作的软件,如:操作系统数据库管理系统设备驱动程序通信处理程序等软件的分类支撑软件

它是协助用户开发软件的工具性软件,包括帮助程序人员开发软件产品的工具。文本处理程序文件格式化程序磁盘向磁带进行数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件软件的分类应用软件

是在特定领域内开发,为特定目的服务的一类软件。几乎所有的领域都有计算机的应用软件。如:工程与科学计算软件(Matlab)计算机辅助设计/制造软件(CAD/CAM)系统仿真软件(SIMULINK)智能产品嵌入软件(LABVIEW)医疗、制药软件(HIS)事务管理、办公自动化软件(OFFICE)计算机辅助教学软件(CAI)商业数据处理软件(如财务软件)10.2软件工程概念10.2.1软件危机10.2.2软件工程的定义和研究内容10.2.1软件危机1968年,北约组织的计算机科学家们在联邦德国召开的国际会议上讨论了软件危机问题,同时也是在这个会议上提出了“软件工程”这个名词,导致了一门新的工程学科的正式诞生。简单地说,所谓软件危机,就是指在软件开发和软件维护过程中所存在的一系列严重问题。1.软件危机软件危机的表现

(1)不能准确估计软件开发的成本与进度;(2)用户对“已完成的”软件系统经常不满意;(3)软件产品质量往往靠不住;(4)软件难以维护;(5)软件无完整的文档,无法用以管理和控制软件的开发和维护;软件危机的表现

(6)软件费用急剧上升;图2计算机系统硬件、软件成本比例变化软件危机的表现

(7)软件生产效率低,供不应求。图3软件技术的发展落后于需求软件危机的原因

一方面与软件本身的特点有关,另一方面也与软件的开发和维护方法有关。造成软件危机的原因有以下几个方面:软件的规模越来越庞大软件开发的管理困难软件本身的独有特点确实给开发和维护造成一些客观困难软件开发和维护中许多错误认识和方法的形成可以归结于计算机发展早期软件开发的个体化特点软件开发技术落后生产方式落后。(手工方式开发)开发工具落后,生产率提高缓慢。软件危机解决之道:

借鉴其他工程领域的成功经验,基于软件危机产生的主、客观原因,从软件工程技术和软件工程管理两方面来采取措施,防范软件危机的发生。研究如何更好地开发和维护计算机软件的学科——软件工程10.2.2软件工程的定义和研究内容☆软件工程--采用工程的概念、原理、技术和方法来指导计算机软件开发和维护的工程学科。软件工程是一门综合性的交叉学科

—涉及计算机科学(着重于原理和理论)、工程科学(费用估算、制定进度、制定计划和方案)、管理科学(软件生产的管理)、数学和应用领域知识(建立软件开发中各种模型和算法)。1.软件工程的定义10.2.2软件工程的定义和研究内容软件工程所包含的三要素:

方法、工具和过程软件方法:是完成软件(工程项目)的技术手段。项目计划和估算,系统和软件需求分析,软件设计、编码、测试和维护等软件工具:人类在开发软件的活动中智力体力的扩展和延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成。最初是零散的;软件工具箱;计算机辅助软件工程(CASE)系统软件“过程”:是开发一个最终能满足需求且达到目标的软件产品所需要的步骤定义了方法使用的顺序、可交付产品(文档、报告以及格式)的要求、为保证质量和协调变化所需要的管理、软件开发过程各个阶段完成的标志。1.软件工程的定义2.软件工程的研究内容从内容上说,软件工程包括:软件开发技术理论与结构(软件可靠性理论、软件开发模型)软件开发方法、软件开发工具和环境等。软件开发管理软件管理学(人员、计划、标准、配置)、软件经济学(成本估算、质量评价)等目的,是为了按照进度和预算完成软件计划,实现预期的经济和社会效益。包括:计划管理、成本管理、质量管理、组织管理。软件工程学研究的基本目标

最终目标是以较少投资获得易维护、易理解、可靠、高效率的软件产品。软件工程学是研究软件结构、软件设计与维护方法、软件工具与环境、软件工程标准与规范、软件开发技术与管理技术的相关理论。IEEE(国际电气和电子工程师协会)给出了关于软件工程的一个更加综合的定义(1993):(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程(即将工程化应用于软件中);(2)上述方法的研究。10.3软件开发模型10.3.1瀑布模型10.3.2快速原型模型10.3.3螺旋模型(自学)10.3.4敏捷软件开发(自学)软件开发模型软件开发模型是软件开发的全部过程、活动和任务的结构框架。它能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,是用来作为软件项目开发的基础。分类:

瀑布模型 快速原型模型 螺旋模型 敏捷软件开发 构件组装模型 喷泉模型

10.3.1瀑布模型软件工程的基础模型:瀑布模型又称生存周期模型。(W.Royce在1970年提出)核心思想:遵循软件生存期的划分,明确规定各个阶段的任务,各个阶段的工作自上而下、顺序展开,如同瀑布流水,逐级下落。软件生存周期的划分软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存期。软件生存周期的定义:是指从软件项目的提出,包括研制、运行、使用和维护,直到最终被弃用的整个过程。软件生存周期的划分问题定义可行性研究需求分析设计(概要设计、详细设计)编码测试运行与维护计划时期开发时期运行时期软件生存周期一般可分为以下阶段:各阶段的基本任务计划时期:·(1)问题定义--弄清“是什么?

·(2)可行性研究--有无解决办法

·软件开发计划--作用范围,资源分析...

开发时期:·(3)需求分析--弄清系统具体“做什么?”

·(4)软件设计:概要设计--建立软件的总体结构详细设计--确定模块的内部过程、结构及算法

·(5)编码--选定语言,编写源程序

·(6)测试--查出并改正程序的错误

运行时期:·(7)运行与维护:纠正错误、扩充/完善功能

瀑布模型瀑布模型示意图瀑布模型将软件生命周期各活动规定为依线性顺序连接的若干阶段的模型。

特点:(文档驱动)(1)阶段间的顺序性和依赖性

①只有前一阶段的工作完成以后,后一阶段的工作才能开始。 ②前一阶段的输出文档,就是后一阶段的输入文档。(2)推迟实现

物理实现推迟到软件开发的后期进行,这就大大降低了软件的风险。

(3)质量保证

①每一阶段都要完成规定的文档。 ②每一阶段都要对已完成的文档进行复审。瀑布模型适用于功能和性能明确、完整、无重大变化的软件开发。

特点:局限性:是该模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

需求说明难以将系统的一切描述得完整、准确、一致并与环境相符。难以保证每个阶段是正确和完整的。严格线性开发存在障碍不支持软件产品的演化,开发过程中难以发现的错误只有在最终产品运行时才能发现。

10.3.2快速原型模型原型模型:是借助一些软件开发工具或环境尽可能快的构造一个实际系统的简化模型。(软件原型:是软件的最初版本,以最少的费用、最短的时间开发出的,反映最后软件的主要特征的系统。)特点:(1)利用原型法技术能够快速实现系统的初步模型,供开发人员和用户进行交流,以便较准确地获得用户的需求。(2)采用逐步求精的方法使原型逐步完善(3)避免了瀑布模型冗长的开发过程看不到产品雏形的现象听取用户意见建造/修改原型用户测试/运行原型快速原型模型快速原型软件开发的生存期模型

符合人类认识真理的过程和思维活动快速原型模型使用原型模型必须有两个前提:(1)是必须有快速建立系统原型模型的软件工具和环境。(2)适用于不能预先确切定义需求的软件开发。(用户必须积极参与原型的建造,建造原型仅仅是为了定义需求,之后就必须被抛弃,实际的软件必须在充分考虑到软件质量和可维护性之后才被开发)

*软件开发方法软件开发模型:是开发软件项目的总体思路。软件开发方法: 是一种使用早已定义好的技术集及符号表示习惯来组织软件生产过程的方法。(一般表述成一系列的步骤,每一步骤都与相应的技术和符号相关)软件开发的目标是在规定的时间内,开发出符合用户需求的高质量软件。为了达到此目的,需要有成功的开发方法。结构化方法面向对象的开发方法*软件开发方法结构化方法(

温馨提示

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

评论

0/150

提交评论