第1章 软件工程基础概述

上传人:今*** 文档编号:107017177 上传时间:2019-10-17 格式:PPT 页数:69 大小:1.66MB
返回 下载 相关 举报
第1章 软件工程基础概述_第1页
第1页 / 共69页
第1章 软件工程基础概述_第2页
第2页 / 共69页
第1章 软件工程基础概述_第3页
第3页 / 共69页
第1章 软件工程基础概述_第4页
第4页 / 共69页
第1章 软件工程基础概述_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《第1章 软件工程基础概述》由会员分享,可在线阅读,更多相关《第1章 软件工程基础概述(69页珍藏版)》请在金锄头文库上搜索。

1、第1章 软件工程基础概述,软件工程与实践,课程安排建议,课程学时及考核 课程性质:专业课 学时学分:理论/实践 (48/16) 共64学时 考核办法: 上机考与卷面考核相结合、理论与实践相结合、课内与课外相结合、知识素质和能力考核相结合。 期末考试成绩占总成绩的60%, 平时成绩和实验占总分40%. 先修课程:计算机网络、数据库、程序设计,目 录,第1章 软件工程基础概述, 了解软件工程的产生和发展 掌握软件工程的概念、内容和原理 熟悉软件生存周期及阶段任务 掌握常用的软件开发模型 掌握软件开发准备及Visio应用实验,教学目标,重点,重点,1.1 软件工程的发展,美国研发的阿波罗登月飞行计划

2、的软件,称为上世纪世界最精心设计大型软件,花费巨额投金和人力,最后仍没避免出错。如阿波罗8 号由于太空飞船的一个计算机软件错误,造成存储器的一部分信息丢失;阿波罗14号在飞行的10天中,出现了18个软件错误。,案例1-1,1.1.1 软件危机概述 1.软件危机问题及表现 软件危机(Software crisis)是指在计算机软件研发、运行、维护和管理过程中所遇到的一系列严重问题。20世纪60年代出现的软件危机直接导致软件工程的产生。软件危机的教训主要包含两方面的问题:一是研发的软件必须满足用户对软件日益增长的各种需求,二是强化管理和维护不断快速增长的现有软件。,IBM 公司研发初期的OS/36

3、0,共约100万条指令,花费了5000个人年;经费达数亿美元,而结果却令人沮丧,错误多达2000 个以上,系统根本无法正常运行。OS/360 系统的负责人Brooks 这样描述开发过程的困难和混乱:“像巨兽在泥潭中垂死挣扎,挣扎得越猛,泥浆沾得越多陷入更深,最后没有一个野兽能够逃脱淹没在泥潭中的命运” 。,案例1-2,软件危机主要表现在7个方面: (1) 软件系统时常出现功能、性能不满意或出现故障等现象。 (2) 软件产品的可靠性和质量安全等方面时常达不到标准。软件产品质量难以保证,甚至在开发过程中就被迫中断。 (3) 软件开发管理差,对成本和进度的估计时常不准确。 (4) 系统时常出现无法维

4、护、升级或更新现象。 (5) 软件开发没有标准、完整、统一规范的文档资料。计算机软件不仅只是程序,还应当有一整套规范的文档资料和售后服务。 (6) 软件开发效率低,无法满足计算机应用迅速发展与提高实际需要。 软件研发成本在计算机系统总成本中所占的比例逐年上升。,1.1 软件工程的发展,2软件危机产生的原因 产生软件危机的主要原因有: (1)软件开发规模逐渐变大、复杂度和软件的需求量不断增加及变化; (2)没有按照工程化方式运作,开发过程没有统一的标准和准则、规范的指导方法; (3)软件需求分析与设计考虑不周,软件开发、维护和管理不到位; (4)开发人员与用户或开发人员之间互相的交流沟通不够,文

5、档资料不完备; (5)软件测试调试不规范不细致,提交的软件质量不达标; (6)忽视软件运行过程中的正常维护和管理。,1.1 软件工程的发展,3解决软件危机的措施 解决软件危机的主要措施有3个方面: (1) 技术方法。运用软件工程的技术、方法和标准规范。 (2) 开发工具。选用先进高效的软件工具,同时采取切实可行的实施策略。 (3) 组织管理。研发机构需要组织高效、管理制度和标准严格规范、职责明确、质量保证、团结互助、齐心协力,注重文档及服务。,1.1 软件工程的发展,注意:为了避免和解决软件开发中再出现软件危机,不仅需要标准规范的技术措施,更要有强有力的组织管理保障。各方面密切配合、齐抓共管,

6、切实以软件工程方式方法和规程进行运作,才能确保软件质量和信息化的健康发展。,某企业销售软件开发失败案例。某企业投资32万元用于网络销售软件的开发和建设,软件开发者为某高校的计算机学院的项目研发小组,在软件开发前的需求调研分析阶段,该系的教师组织有关师生在商厦设备处的计算机室负责人陪同下对各业务部门进行了调研,并根据各业务部门的需要编制了按业务部门划分的系统功能模块需求说明书。后来,将师生编成若干个软件开发小组,分别负责各个功能模块研发。两年后,大部分的功能模块开发完毕,但发现各模块之间的数据不能很好地共享和传输,与系统有关的各类单证的录入、校对和传输比原来的手工处理过程还复杂,并随着企业经营规

7、模的扩大和经营方式及业务的变化,原有的业务部门也做了一些调整,所开发的功能模块只有55%能勉强使用。由于大部分学生毕业离校,各模块的开发文档资料保存不够,最后,项目无法继续进行而终止并因为没有按期达到合同规定要求而赔偿损失。,案例1-3,1.1 软件工程的发展,1.1.2 软件工程的发展过程 计算机软件从数值计算到广泛应用于各行各业,软件技术的发展经历了程序设计阶段、程序系统阶段、软件工程阶段和创新完善软件工程4个阶段,其典型技术如表1-1所示。,表1-1 软件技术各发展阶段的典型技术,1.1 软件工程的发展,“软件工程”的发展经历了4个重要阶段: 1传统软件工程 传统软件工程是指软件工程产生

8、的初期,也称为第一代软件工程。 2对象工程 对象工程也称为第二代软件工程。20世纪80年代中到90年代,以Smalltalk为代表的面向对象的程序设计语言相继推出,使面向对象的方法与技术得到快速发展。 3过程工程 过程工程也称为第三代软件工程。随着网络等高新技术的出现及信息技术的广泛应用,软件规模和复杂度不断增大,开发时间相应持续增长,开发人员的增加,致使软件工程开发和管理的难度不断增强。 4构件工程 构件工程也称为第四代软件工程.90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可利用已有的可复用构件组装完成,而无需从头开始构建,从而达到提高效率和质量、降低成本

9、的目的。,构件是指语义完整、语法正确和有可重用价值的单位模块,是软件重用过程中可以明确辨识的系统;结构上是语义描述、接口和实现代码的复合体。,1.1 软件工程的发展,1.1 软件工程的发展,计算机辅助软件工程简称CASE(Computer Aided Software ngineering)将工具和代码生成器进行集成,为很多软件系统提供了可靠的解决方案;专家系统和人工智能软件的应用更加广泛;人工神经网络软件开阔了信息处理的新途径;并行计算、网络技术、虚拟技术、多媒体技术和现代通信技术等新技术新方法改变了原有的工作方式。,讨论思考: (1)上述案例项目的开发过程是否存在软件危机问题? (2)从案

10、例项目的组织和管理等方面分析导致该项目失败的主要原因有哪些? (3)你认为应当吸取那些教训,采取的主要措施有哪些?,1.2 软件及软件工程概述,1.2.1 软件的概念特点及分类 1软件的概念 程序是按事先按照预定功能性能等要求设计和编写的指令序列;软件(Software)是计算机系统运行的指令、数据、文档资料和服务的集合,包括指令程序、数据、相关文档和完善的售后服务的完整集合。即; 软件=程序 + 数据 + 文档 + 服务。 其中,数据则是使程序正常处理信息的数据结构及信息表示;文档(Document)是与程序开发、维护和使用有关的技术资料。 软件分为系统软件、支撑软件(开发环境)和应用软件等

11、。其中应用软件常称为信息系统主要是指具体的应用系统。 注意:程序与软件不同,程序只是软件的组成部分。“软件就是程序”的观点为误解,也严重影响了软件工程的正常进行和发展。文档必不可少,只有程序不能称为软件。 软件工程师是软件研发人员的统称,按照所处的领域不同可以分为系统分析员、软件设计师、系统架构师、程序员、测试员等。,2软件的特点 在软件的实际研发、运行、维护、管理和使用过程中,通常需要掌握其特点: (1) 智能性。软件是人类智能劳动的产物、代替和延伸。 (2) 抽象性。软件属于逻辑实体,无形性和智能性致使软件难以认识和理解。 (3) 人工方式。软件的开发、维护及设置管理等方面目前尚未完全脱离

12、手工方式。 (4) 复杂性和系统性。 (5) 泛域性。软件应用很广泛,在信息化中可服务于各种领域、行业和层面。 (6) 复制性。软件成本相对比较昂贵,计算机软件是人类创造性的特殊产品。 (7) 非损及更新性。软件不存在物理性磨损和老化问题,但可以退化需要更新升级。,1.2 软件及软件工程概述,图1-1 硬件失效率曲线 图1-2 软件失效率曲线,1.2 软件及软件工程概述,3.软件的分类 (1) 按照软件功能划分 (2) 按照软件规模划分 (微型、小型、中型、大型、超大型5种见表1-2) (3)按照软件工作方式划分 (4)按照软件服务对象的范围划分,1.2 软件及软件工程概述,1.2.2 软件工

13、程的概念及特点 1软件工程的定义 按照中国国家标准GB/T 114571995软件工程术语的定义:软件工程(Software Engineering)是软件开发、运行、维护和引退的系统方法。 计算机科学技术百科全书中对软件工程的定义是:应用计算机科学、数学及管理科学等原理,开发软件的过程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学和数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 软件工程 = 工程原理 + 技术方法 + 管理技术,1.2 软件及软件工程概述,2软件工程的特点

14、 软件工程学是软件工程化的思想、规范、过程、技术、环境和工具的集成,是将具体的技术和方法结合形成的一个完整体系。 软件工程学科的主要特点是实践性和发展性,软件工程的问题来源并应用于实践,最终目的是有效地生产软件产品。其特点体现为“3多”:一是多学科,不仅包含有关课题还涉及到计算机科学、工程科学、管理科学、数学等多个学科;二是多目标,不仅关心项目产品及其功能,还有注重质量、成本、进度、性能、可靠性、安全性、通用性、可维护性、有效性和界面等;三是多阶段,软件开发不只是编程,而是由可行性研究、计划立项、需求分析、总体设计、详细设计、编程、测试、运行、维护等阶段构成完整过程。 软件工程的目的是在规定的

15、时间和开发经费内,开发出满足用户需求的、高质量的软件产品。其目标是实现软件研发与维护的优质高效和自动化。,1.2 软件及软件工程概述,1.2.3 软件工程学及其主要内容 1软件工程概述 软件工程学是一门研究用工程化方法,构建和维护有效的、实用的和高质量的软件的学科,涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。其主要内容包括软件开发技术和软件工程管理两个方面。软件开发技术包括软件工程方法、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。,表1-3 软件工程学科的主要内容,1.2 软件及软件工程概述,软件工程方法学是研发软件的系统方法,确定软件开发

16、阶段,规定每一阶段的目标、任务、技术、方法、产品、验收等步骤和完成准则。具有方法、工具和过程三个要素,也称软件工程三要素: (1)软件工程方法:包括软件开发“如何作”的技术和管理准则及文档等技术方法; (2)软件工具:为方法的运用提供自动或半自动的软件支撑工具的集成环境; (3)软件工程过程:主要完成任务的工作阶段、工作内容、产品、验收的步骤和完成准则。也有将这一要素确定为“组织管理”,实际上改为“过程与管理”更合适。,1.2 软件及软件工程概述,2软件工程方法,常用的软件工程方法主要分为7种类型。 1)面向功能方法 面向功能的软件开发方法也称为结构化方法,主要采用结构化技术,包括结构化分析、结构化设计和结构化实现,按照软件的开发过程、结构和顺序完成开发任务。 2)面向数据方法 从目标系统输入、输出数据的结构,导出程序框架结构,再补充其他细节,得到完整的程序结构图。此方法也可与其他方法结合,用于模块的详细设计和数据处理等。对输入输出数据结构明确的中小型系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号