西门子TP1900操作面板
件的开发效率,又可以提高软件的维护效率。面向对象技术在许多领域已经取代了传统的结构化开发方法。软件的开发效率、可维护性、可重用性都有一定程度的提高。
(5)结果应能清楚地审查软件工程是随着计算机系统的发展而逐步形成的计算机科学领域中的一门新兴学科。软件工程的发展经过了3个时代。
1.程序设计时代
1946年到1956年为程序设计年代。这个时代人们用很大力气研究和发展计算机硬件,经历了从电子管计算机到晶体管计算机的变革,然而对计算机软件的研究和发展却不够重视。当时,由于硬件的价格昂贵,运行速度低,内存容量小,所以当时的程序员非常强调“程序设计技巧”,把缩短每一个微秒的CPU时间和节省每一个二进制存储单元,作为程序设计的重要目标,但设计的程序难读、难懂、难修改。
2.程序系统时代
1956年到1968年为程序系统时代,或者程序+说明时代。在这个时代硬件经历了从晶体管计算机到集成电路计算机的变革,CPU速度和内存容量都有了很大的提高,从而为计算机在众多领域中的应用提供了潜在的可能性。这个时代的另一个重要特征是出现了“软件作坊”。这是因为随着计算机应用的普及和深化,需要的软件往往规模相当庞大,以致单个用户无法开发,此外许多不同的部门和企业往往需要相同或者类似的软件,各自开发就会浪费很大人力。在这种形势下,“软件作坊”就应运而生了。不过这个时代的开发方法基本上沿用了程序设计时代的开发方法,但开始提出了结构化的方法。随着计算机应用日益普及,软件需求量急剧增长,用户的需求和使用环境发生变化时,软件可修改性很差,往往需要重新编制程序,其研制时间很长,不能及时满足用户要
输入转化为输出的一组彼此相关的资源和活动”。
软件过程是为了获得高质量所需要完成的一系列任务的框架,它规定了完成多项任务的工作步骤。其中框架由几个重要过程组成,包括用来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。各种组织和开发机构可以根据具体情况进行选择和取舍。计划时期的主要任务是调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。用户提出一个软件开发要求后,系统分析员首先要分析该软件项目的性质是什么,通过对用户和使用部门负责人的访问和调查,开会讨论即可得到解决。因此,用户和系统分析员的相互理解与配合是搞好这一时期工作的关键。
(1)问题定义
问题定义是计划时期的和步。这一步必须回答的问题是“用户需要计算机解决的问题是什么”。由系统分析员根据对问题的理解,提出关于“系统目标与范围的说明”,请用户审查和认可。
(2)可行性研究
在对问题的性质、目标、规模清楚之后,还要确定该问题有没有行得通的解决办法。在这个阶段要为前一步提出的问题寻找一种以上在技术上可行,且在经济上有较高效益的可操作解决方案。为此,系统分析员应在高层次上做一次简化的、抽象的需求分析和概要设计,探索这个问题是否值得去解决。西门子后写出可行性研究报告。有时可行性研究报告要包含“系统流程图”,用来描述新系统(含硬件与软件)的组成。
2.开发时期
开发时期要完成设计、编码和测试3大任务。其中设计任务
对目标系统的全部需求,准确地确定“目标系统必须做什么”,确定目标系统必须具备哪些功能。
用户了解它们所面对的问题,知道必须做什么,但通常不能完整而准确地表达它们的需求,当然也不知道怎么利用计算机解决它们的问题。而软件开发人员虽然知道怎么用软件完成人们提出的各种功能要求,但是对用户领域内的业务和具体要求并不完全清楚。因此系统分析员在这个阶段必须和用户密切配合,充分交流信息,在此基础上用“需求规格说明书”的形式准确地表达出来这一阶段是按照选定的语言,把设计的每一个模块的过程性描述翻译为计算机可接受的源程序。写出的程序应该与设计相一致,并且结构好,清晰易读。
(5)测试软件开发的瀑布模型也称生存周期模型或线性顺序模型,是W.Royce于1970年首先提出来的。这种模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段一下瀑布模型的特点,了解贯穿在整个生存周期的几个重要的观点。明确了这些观点之后,才可以在实际的软件开发中发挥更大的主动性和灵活性,使软件工程方法更好地得到应用。显示了简洁的快速原型软件开发的生存期模型。可以看出它是一种循环进化的过程,用户的参与和反馈,使得这种方法开发出来的系统能够更好地满足用户的需求。
(1)阶段的顺序性和依赖性和个构件的规格说明文档完成后,规格说明组转向第二个构件的规格说明,与此同时设计组开始设计和个构件……这种方法表明不同的构件将并行系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。无间隙性是指在开发活动,即分析、设计和实现之间不存在明显的边界。构建,有可能加快工程,但是这种方法会冒面向对象的开发方限制和约束,改正模糊或不确切的叙述,确保分析员正在解决的问题确实是用户要求他
统,也可能是旧的计算机系统,旧的系统必然有某些缺陷,因而需要开发一个新的系统且必须能解决旧系统中存在的问题,那么现有的系统就是信息的重要来源。人们需要研究现有系统的基本功能,存在哪些问题,运行现有系统需要多少费用,对新系统有什么新要求,新系统运行时能否减少使用费用等。
应该仔细收集、阅读、研究和分析现有系统的文档资料和使用手册,一个大的软件项目,其复杂程度往往使人感到无从下手。传统的策略是把复杂的问题“化整为零,各个击破”,这可以是数据库文件或任何形式的数据组织。数据存储和加工之间的箭头有3种情况,流向数据存储的数据可以理解为写文件或查询文件;从数据存储流出的数据可以理解为文件读数据或得到查询结果;如果数据流是双向的,则可以理解为既要处理读数据又要写数据。
如何画数据流图如下所述。
(1)画数据流图的基本原则
① 数据流图中所有的符号必须是前面所述的4种基本符号和附加符号。
② 数据流图的主图(软件层)必须含有前面所述的4种符号,缺一不可。
③ 数据流图主图上数据流必须封闭在外部实体之间(外部实体可以是一个,也可以是多个)。
④ 加工(变换数据处理)至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
⑤ 任何一个数据流子图必须与它父图上的一个加工相对应,父图中有几个