软件工程第一讲教案Word文档格式.doc
- 文档编号:13271527
- 上传时间:2022-10-09
- 格式:DOC
- 页数:26
- 大小:244.50KB
软件工程第一讲教案Word文档格式.doc
《软件工程第一讲教案Word文档格式.doc》由会员分享,可在线阅读,更多相关《软件工程第一讲教案Word文档格式.doc(26页珍藏版)》请在冰豆网上搜索。
第三节软件生存周期与软件开发模型(30‘)
教学场所
或教学方法
使用
教具
作业
课后记
授课教师
第一章软件工程概述
1.1软件
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,表达了由计算机硬件体现的计算潜能。
不管它是驻留在设备中,还是在主机中,软件是一个信息转换器,能够产生、管理、获取、修改、显示或转换信息。
这些信息可以很简单,如一个bit,也可以很复杂,如多媒体信息。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
信息是21世纪最重要的产品,软件充分地体现了这一点,软件处理数据,使得这些数据更为有用;
软件管理商业信息增强了商业竞争力;
它不仅提供了通往全球信息网络的途径;
而且也提供了以各种形式获取信息的手段。
1.1.1软件的产生与发展
1.程序设计阶段
在计算机发展早期阶段(20世纪50年代初期至20世纪60年代中期)为程序设计阶段。
在这个阶段硬件已经通用化,而软件的生产却是个体化的。
这时,由于程序规模小,几乎没有什么系统化的标准方法可遵循。
对软件的开发没有任何管理方法,一旦任务超时或者成本提高,程序员才开始弥补。
在通用的硬件已经非常普遍的时候,软件却相反,对每一类应用均需自行再设计,应用范围很有限。
软件产品处在初级阶段,大多数软件都是由使用者自己开发,例如书写软件,使其运行,如果有问题,需要解决等等,因为是个人化的软件环境。
设计往往仅是人们头脑中的一种模糊想法,而根本就不存在文档。
2.程序系统阶段
计算机系统发展的第二阶段(20世纪60年代中期到70年代末期)为程序系统阶段。
多道程序设计、多用户系统引入了人机交互的新概念。
交互技术打开了计算机应用的新世界和硬件和软件配合的新层次,出现了实时系统和第一代数据库管理系统。
这个阶段另一个特点就是软件产品的使用和软件作坊的出现。
开发出软件可以在较宽广的范围中应用。
主机和微机上的程序能够有数百甚至上千的用户。
在软件的使用中,当发现错误时需要纠正程序源代码;
当用户需求发生变化时需要修改;
当硬件环境变化时需要适应,将这些活动统称为软件维护。
在软件维护上所花费的精力以惊人的速度消耗资源。
更为严重的是,许多程序的个人化特性使得根本不能维护它们。
于是“软件危机”出现了。
3.软件工程阶段
计算机系统发展的第三阶段始于20世纪70年代中期并跨越了近十年,称为软件工程阶段。
在这一阶段,以软件的产品化、系列化、工程化、标准化为特征的软件产业发展起来,打破了软件生产的个体化特征,有了软件工程化的设计原则、方法、标准可以遵循。
在分布式系统中,各台计算机同时地执行某些功能,并与其他计算机通讯,极大地提高了计算机系统的复杂性。
广域网、局域网、高带宽数字通信以及对即时数据访问需求的增加都对软件开发提出了更高的要求。
4.第四阶段
计算机发展的第四阶段已经不再着重于单台计算机系统和程序,而是面向计算机和软件的综合影响。
由复杂的操作系统控制的强大的桌面机、广域网络和局域网络,配以先进的软件应用已成为标准。
计算机体系结构迅速地从集中的主机环境转变为分布的客户/服务器环境。
世界范围的信息网提供了一个基本结构,信息高速公路和网际空间连通已成为令人关注的热点问题。
事实上,Internet可以看作是能够被单个用户访问的软件,计算机发展正朝着社会信息化和软件产业化方向发展,从技术的软件工程阶段过渡到社会信息化的计算机系统。
随着第四阶段的进展,一些新技术开始出现。
面向对象技术将在许多领域中迅速取代传统软件开发方法。
表1-1给出了四个发展阶段典型技术的比较。
1.1.2软件定义
计算机系统是通过运行程序来实现各种不同的应用。
把各种不同功能的程序,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等通常称为软件。
它是计算机系统中与硬件相互依存的另一部分,与硬件合为一体完成系统功能。
软件定义如下:
(1)在运行中能提供所希望的功能和性能的指令集(即程序);
(2)使程序能够正确运行的数据结构;
(3)描述程序研制过程、方法所用的文档。
随着计算机应用的日益普及,软件变得越来越复杂,规模也越来越大,这就使得人与人、人与机器间相互沟通,保证软件开发与维护工作的顺利进行显得特别重要,因此,文档(即各种报告、说明、手册的总称)是不可缺少的。
特别是在软件日益成为产品的今天,文档的作用就更加重要。
1.1.3软件的特点
在计算机系统中,软件是一个逻辑部件,而硬件是一个物理部件。
因此,软件相对硬件而言有许多特点。
为了能全面、正确地理解计算机软件及软件工程的重要性,必需了解软件的特点。
软件的特点可归纳如下。
1.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
这个特点使它与计算机硬件、或其他工程对象有着明显的差别。
人们可以把它记录在介质上,但却无法看到软件的形态,而必须通过测试、分析、思考、判断去了解它的功能、性能及其他特性。
2.软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
一旦某一软件项目研制成功,以后就可以大量地复制同一内容的副本。
即其研制成本远远大于其生产成本。
软件故障往往是在开发时产生而在测试时没有被发现的问题。
所以要保证软件的质量,必须着重于软件开发过程,加强管理和减少故障。
3.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
软件维护比硬件维护要复杂得多,与硬件的维护有着本质的差别,参阅图1-1、图1-2和图1-3。
图1-1所示的是硬件的故障率随时间变化的曲线,图1-2所示的是在理想情况下软件故障率随时间变化的曲线,图1-3所示的是软件的实际故障率曲线。
4.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系。
在软件的开发和运行中必须以硬件提供的条件为基础。
为了消除这种依赖关系,在软件开发中提出了软件移植的问题,并且把软件的可移植性作为衡量软件质量的因素之一。
5.软件的开发尚未完全摆脱手工的开发方式。
由于传统的手工开发方式仍然占据统治地位,软件开发的效率受到很大的限制。
因此,应促进软件技术发展,提出和采用新的开发方法。
例如近年来出现的充分利用现有软件的复用技术、自动生成技术和其它一些有效的软件开发工具或软件开发环境,既方便了软件开发的质量控制,还提高了软件的开发效率。
6.软件的开发费用越来越高,成本相当昂贵。
软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,需要较高的成本。
7.软件的开发是一个复杂的过程,因而管理是软件开发过程中必不可少內容。
1.1.4软件的分类
在工作和学习中,经常接触到各式各样的软件。
那么这些数量众多的软件究竟归为哪种类型,这就需要考虑对计算机软件进行分类的依据。
但事实上由于人们与软件的关系各不相同且所关心软件的侧重点也不相同,所以要给出计算机软件一个科学的、统一的严格分类标准是不现实的。
但对软件的类型进行必要的划分对于根据不同类型的工程对象采用不同的开发和维护方法是很有价值的,因此有必要从不同角度对计算机软件做适当的分类。
1.基于软件的功能划分
(1)系统软件:
是与计算机硬件紧密配合以使计算机的各个部件与相关软件及数据协调、高效工作的软件。
例如:
操作系统、数据库管理系统等。
系统软件在工作时频繁地与硬件交往,以便为用户服务,共享系统资源,在这中间伴随着复杂的进程管理和复杂的数据结构的处理。
系统软件是计算机系统必不可少的重要组成部分。
(2)支撑软件:
它是协助用户开发软件的工具性软件,包括帮助程序人员开发软件产品的工具和帮助管理人员控制开发的进程的工具。
可划分为:
·
一般类型:
包括文本编辑程序、文件格式化程序、程序库系统等。
支持需求分析:
包括PSL/PSA问题描述语言、问题描述分析器、关系数据库系统、一致性检验程序等。
·
支持设计:
包括图形软件包、结构化流程图绘图程序、设计分析程序、程序结构图编辑程序等。
支持实现:
包括编译程序、交叉编译程序、预编译程序、连接编译程序等。
支持测试:
包括静态分析程序、符号执行程序、模拟程序、测试覆盖检验程序等。
支持管理:
包括PERT进度计划评审方法、绘图程序、标准检验程序和库管理程序等。
(3)应用软件:
是在特定领域内开发的,为特定目的服务的一类软件。
现在几乎所有的国民经济领域都使用了计算机,为这些计算机应用领域服务的应用软件种类繁多。
其中商业数据处理软件是占比例最大的一类,工程与科学计算软件大多属于数值计算问题。
应用软件还包括计算机辅助设计/计算机辅助制造(CAD/CAM)、系统仿真、智能产品嵌入软件(如汽车油耗控制、仪表盘数字显示、刹车系统),以及人工智能软件(如专家系统、模式识别)等,此外,在事务管理、办公自动化,中文信息处理、计算机辅助教学(CAI)等方面的软件也得到了迅速发展,产生了惊人的生产效率和巨大的经济效益。
2.基于软件工作方式划分
·
实时处理软件:
指在事件或数据产生时,立即处理,并及时反馈信号,控制需要监测和控制的过程的软件。
主要包括数据采集、分析、输出三部分,其处理时间是应严格限定的,如果在任何时间超出了这一限制,都将造成事故。
分时软件:
允许多个联机用户同时使用计算机。
系统把处理机时间轮流分配给各联机用户,使各用户都感到只是自己在使用计算机的软件。
交互式软件,能实现人机通信的软件。
这类软件接收用户给出的信息,但在时间上没有严格的限定,这种工作方式给予用户很大的灵活性。
批处理软件:
把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理的软件。
3.基于软件规模的划分
根据开发软件所需的人力、时间以及完成的源程序行数,可划分为下述六种不同规模的软件。
·
微型软件:
指一个人在几天之内完成的、程序不超过500行语句且仅供个人专用的软件。
通常这类软件没有必要做严格的分析,也不必要有完整的设计、测试资料。
小型软件:
一个人半年之内完成的2000行以内的程序。
这种程序通常没有与其他程序的接口。
但需要按一定的标准化技术、正规的资料书写以及定期的系统审查,只是没有大题目那样严格。
中型软件:
5个人以内在一年多时间里完成的5000~50000行的程序。
中型软件开始出现了软件人员之间、软件人员与用户之间的联系、协调的配合关系问题。
因而计划、资料书写以及技术审查需要比较严格地进行。
在开发中使用系统的软件工程方法是完全必要的,这对提高软件产品质量和程序人员的工作效率起着重要的作用。
大型软件:
5~10个人在两年多的时间里完成的50000~100000万行的程序。
参加工作的软件人员需要按二级管理。
在任务完成过程中,人员调整往往不可避免。
因此会出现对新手的培训和逐步熟悉工作的问题。
对于这样规模的软件,采用统一的标准,实行严格的审查是绝对必要的。
由于软件的规模庞大以及问题的复杂性,往往
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第一 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)