欢迎来到天天文库
浏览记录
ID:21777177
大小:1.51 MB
页数:71页
时间:2018-10-20
《第一讲 软件工程概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程概念软件生存周期软件过程软件开发各阶段的成本比例第一讲软件工程概述1教学目的与要求⒈掌握计算机软件及软件的特点、软件危机;⒉掌握软件工程的基本概念、目标与框架;⒊掌握软件生存周期及各阶段的任务;⒋掌握软件过程的含义;5掌握常见的软件过程模型的特点;⒎了解敏捷软件开发的基本思想;⒏了解CASE工具与环境的作用。21.1软件工程概念软件分类软件发展的三个阶段计算机工程软件危机软件工程定义软件工程目标软件工程三要素3一、计算机的组成由硬件和软件组成。1.硬件:是看得見、摸得着的电子机械设备块。2.软件:是依附在硬件上面的程序、数据和文档的集合,是指挥控制计算机
2、系统(包括硬件和软件)工作的神经思维中枢。如果将硬件比作人的身体素质,那么软件就相当于人的神经中枢和知识才能。。3.软件开发:既非常艰苦(因为软件设计思想与开发工具不断更新),又无限快乐(因为软件成果是人类智慧与艺术的结晶)。1.1软件工程概念4二、软件分类1.按功能分:(1)系统软件;(2)支撑软件;(3)应用软件。2.按规模分:(1)小型软件(1--5人年);(2)中型软件(5--50人年)(3)大型软件(50人年以上)。3.按工作方式分:(1)实时软件;(2)分时软件;(3)交互式软件;(4)批处理软件;(5)嵌入式软件。4.按服务对象分:(1)项目软件;
3、(2)产品软件。5.按销售方式:(1)订单软件;(2)非订单软件。5三、软件的特点软件是逻辑的,而不是物理的产品;软件是由开发或工程化而形成的,没有明显的制造过程;存在退化问题;大多数软件是自定的,而不是通过已有构件组装而成的;软件成本相当昂贵;软件本身是复杂的。6四、软件发展的三个阶段1.程序设计时代(50-60年代)软件指程序,软件开发关注程序编写,用汇编及机器语言2.程序系统时代(60-70年代)软件指程序及说明书,软件开发包括程序设计和测试,用高级语言3.软件工程时代(70年代以后)软件指程序、文档、数据,软件开发包括软件生命期,用软件语言(包括需求定义
4、语言、软件功能语言、软件设计语言、程序设计语言等)7五、计算机工程计算机工程(ComputerEngineering)包括:(1)硬件工程(HardwareEngineering):计算机及网络硬件的分析、设计、生产、采购、验收、安装、培训、维护。(2)网络工程(NetworkEngineering):网络的设计、安装(硬件安装和系统软件安装)、调试、维护、升级。(3)软件工程(SoftwareEngineering):市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。8
5、【例1-1】请读者规划、设计、安装一个校园网。这是一个硬件工程,其中要完成的工作内容包括:制定设计方案,网络设备的选型、配置、采购、验货、布线、安装、调试、运行和交付。在安装和调试中,又要安装和调试许多软件,如网络操作系统、数据库管理系统、教学软件系统、办公自动化系统、防火墙及杀毒软件等。由于有这么多软件也需要选型、配置、采购、安装、调试,所以在今天,除了生产硬件的厂商之外,纯粹的“硬件工程”几乎不存在,大多数硬件工程都与软件有关,于是就出现了一个新名词“网络工程”,它是介于硬件工程和软件工程之间的系统工程,人们称它为“系统集成工程”。9六、软件危机1.软件的定
6、义软件==程序+数据+文档。数据==初始化数据+测试数据文档==开发文档+管理文档。今天仍然有人认为:软件等于程序。这些人一上来就写程序。RogerS.Pressman说:“越早开始写代码的人,就是越迟完成代码的人”。对管理文档的全面认识,那就更晚了。1974年,美国人认识到软件需要管理。1984年,美国人认识到软件管理是一个过程管理,或是一个管理过程。1991年,出现了软件过程能力成熟度模型CMM(CapabilityMaturityModel)版。102.软件危机软件危机:是指软件在开发、运行与维护过程中出现的一系列问题。如:许多软件项目不能满足客户的要求许
7、多软件项目超出预算和时间安排113.软件危机的表现对软件开发成本和进度的估计常常很不正确用户对“已完成的”软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势124.软件危机的原因软件是逻辑产品,开发进度、成本难以估计缺乏或不完整、不一致的文档给维护带来困难用户对软件需求的描述往往不够精确,有遗漏,有二义开发人员对需求的理解与用户的本来愿望有差异大型软件项目需多人协同完成,缺乏管理经验开发人员不能有效地、独立自
8、主地处理大型软件的全部关
此文档下载收益归作者所有