软件再工程及其应用
- 格式:doc
- 大小:36.50 KB
- 文档页数:5
软件工程导论复习资料填空题1.在信息处理和运算机范畴内,一样认为软件是_法度榜样____、_文档____ 和_数据____ 。
2.数据流图的全然构成部分有_数据的源点与终点____、数据流_____、加工_____、数据文件_____。
3.数据流图和数据字典合营构成了体系的_逻辑____模型,是需求规格说明书的重要构成部分。
4.划分模块时尽量做到__高内聚、低耦合______,保持模块的自力性,尽量应用公共模块。
5.类的实例化是_对象_______。
6.人们常用硬件靠得住性的定量度量方法来度量软件的靠得住性和可用性,常用的度量软件可7.靠性的两个指标是_成功地运行的概率_______和_平均故障时刻_______。
8.将待开创的软件细化,分别估算每一个子义务所须要的开创工作量,然后将它们加起来,9.将获得软件的总开创量。
这种成本估算方法称为_自底向上_______。
10.假如一个模块被n 个模块调用,个中直截了当的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。
11.构造化设计以__数据流图_________ 为差不多,按必定的步调映射成软件构造。
12.软件的风险分析可包含风险辨认、风险推测和风险驾驭(或风险治理)等3项活动。
13.软件著作权挂号的3种重要类型:(1)著作权挂号;(2)著作权连续挂号;(3)权力转移立案挂号。
14.软件工程治理的重要内容有:项目经费治理,软件质量治理,项目进度治理和人员治理。
15.面向对象分析的目标是对客不雅世界的体系进行___建模_______________ 。
16.软件爱护工作的临盆性活动包含分析评判、修改设计和____编写法度榜样代码_______等。
17.为了使应用软件适应运算机情形的变更而___修改软件_______________ 的过程称为适应性爱护。
18.一个进行学生成就统计的模块其功能是先对学生的成就进行累加,然后求平均值,则该模块的内聚性是__________次序内聚________ 。
现代软件工程在软件开发中的应用现代软件工程是指一种计算机软件开发的方法论,主要关注软件的设计、构建、测试和维护等方面。
它以科学化、规范化和可管理化为目标,通过引入一系列工具和技术,提高软件开发的效率和质量,降低开发成本和风险。
下面将详细介绍现代软件工程在软件开发中的应用。
一、需求分析现代软件工程在需求分析方面主要应用了模型化的方法,如UML(统一建模语言),它可以通过建立用例、类图、时序图等模型来展现软件系统的功能,以及与其他系统的交互关系。
这样,软件开发者可以更清晰地理解用户需求,并且在系统实现之前对其进行验证和验证。
二、设计在软件设计方面,现代软件工程主要应用了面向对象设计(OOD)和设计模式。
面向对象设计是一种将现实世界映射到计算机程序中的技术,它将系统中的每个对象看作是独立的,将其属性和方法封装在一起。
设计模式则是一种经过验证的、通用的解决问题的方法,它们提供了可重用的设计思想和经验。
三、开发在软件开发方面,现代软件工程主要应用了面向对象编程(OOP)和敏捷开发方法。
面向对象编程是一种将现实世界映射到计算机程序中的技术,它将程序看作是由一组对象组成的,对象则相互协作来实现功能。
敏捷开发方法则是一种持续交付软件的方法,通过迭代、增量、用户参与等方式来降低开发成本和风险。
四、测试在软件测试方面,现代软件工程主要应用了自动化测试和持续集成。
自动化测试是一种使用特殊的软件工具来执行测试用例和比较结果的测试方法,它可以在短时间内执行大量的测试。
持续集成是一种将代码集成到共享代码库中,并在提交后执行自动化构建、测试和发布的开发方法,它可以快速地发现问题,并提供更好的反馈。
五、维护在软件维护方面,现代软件工程主要应用了重构技术和基准测试。
重构技术是指通过改变程序的内部结构而不改变其外部行为来改进程序的质量和可维护性。
基准测试是指通过执行一系列测试来检测程序性能、资源利用率和稳定性等方面的问题,并用其结果作为程序优化的基准。
浅谈计价算量软件在建筑工程造价中应用及发展趋势信息*飞速发展已成为人们工作、学习、生活中不可缺少的一部分,各行各业都逐步实现了办公自动化,各种应用软件为人们的生活、工作、学习提供了方便。
建设工程造价领域的信息化建设也紧随时代潮流,其中工程造价计价算量软件在信息化建设的潮流中得到了大范围推广普及。
一、计价算量软件的发展在18年代以前,要编制一份建安工程预算结算书,完全靠纸、笔、定额书,借助计算器或算盘,从计算工程量、套定额、工料分析、人工材料单价调价差到费用计算汇总等全过程都要靠手工完成。
工程造价人员在计算纸上罗列大量的计算公式,不停的翻定额本,在预算表格上填写定额编号、单位、数量、定额单价。
这种工作方式速度慢、准确性差、工作效率低。
到了18年代开始出现了计价软件,编制工程预算实现了半手工。
有了预算软件后造价人员手工计算施工图工程量,利用软件将工程量输入计算机、选套子目、输入材料价格,取费汇总计算。
但计算工程量仍然要依靠计算器进行加减乘除运算,计算工程量不难,但工作量大、重复劳动,费时费力。
进入二十一世纪,随着计算机和各类软件的不断普及,建筑行业工程造价信息化也飞速发展,开始应用算量软件。
算量软件以工程量计算规则为依据,造价人员通过画图确定构件实体的尺寸,将施工图搬到了电脑上,软件通过内置的计算规则,自动计算,分类汇总,得到构件实体的工程量,算量软件大幅度提高了算量效率,节省了算量时间。
从此,计量与算量软件在工程造价领域得到了普及,使工程造价工作实现了自动化,为造价管理工作开启了新的篇章。
二、计价算量软件的应用从18年起,与国际惯例接轨的工程量清单计价模式在我省开始执行,工程造价从传统的量价合一向量价分离转型,彻底放开价格。
18年更趋于完善的新清单颁布实施,对工程造价管理要求更广、更细化。
造价行业的业务量也迅猛发展,工程造价管理工作的不断变革对信息技术提出了更高的要求,信息技术的发展改善了计算条件,两种相互影响,互相促进发展。
应用软件在土木工程中的应用随着科技的发展,应用软件在各个领域中发挥着越来越重要的作用。
土木工程作为一门涉及建筑、设计和工程管理的学科,也不能与应用软件脱离关系。
本文将探讨应用软件在土木工程中的应用,并分析其对该领域的影响。
一、设计与绘图软件的应用设计与绘图是土木工程中不可或缺的环节。
过去,土木工程师需要手工绘制平面图、剖面图和施工图,工作量巨大且容易出错。
而现在,有了专业的设计与绘图软件,如AutoCAD和SketchUp等,土木工程师能够更加高效地进行设计,减少了出错的可能性。
这些软件还提供了三维建模功能,使工程师能够更直观地预览项目效果,减少设计不合理的可能。
此外,这些软件还支持文件的共享与协作,方便多人合作完成一个项目。
二、建筑信息模型(BIM)软件的应用BIM是一种基于三维模型的建筑设计与管理方法,它能够将建筑各个方面的信息整合到一个统一的平台中。
BIM软件的使用不仅能够帮助设计师进行建筑的三维模型设计,还能够对工期、成本、质量等方面进行模拟与预测。
在土木工程中,BIM软件能够提高工程施工的效率和质量,减少资源的浪费和损失。
此外,BIM 软件还可以用于建筑物维护管理,通过对建筑模型的维护,实时监控建筑物的运行状况,提前发现并解决问题。
三、工程管理软件的应用土木工程项目通常涉及到众多的工作流程和资源调配。
传统的项目管理方式往往需要大量的纸质文件和人工协调,效率低下且容易出错。
现在,有了专业的工程管理软件,如Primavera和Microsoft Project等,项目管理变得更加简单高效。
这些软件可以实时监控项目进度与成本,提供数据支持和决策依据,帮助工程师进行资源分配和进度控制。
此外,这些软件还具备协同办公的功能,方便团队成员之间的信息交流和沟通。
四、地理信息系统(GIS)软件的应用土木工程往往涉及到大量的地理数据,如土地利用情况、环境资源分布等。
GIS软件的使用可以将这些数据进行可视化展示和分析,帮助工程师更好地了解项目的地理环境和潜在影响。
软件再工程及其应用谷耀(天津市信息中心)摘要本文从软件在运行维护阶段经常遇到的维护困难大、费用高,已开发的软件需要移植等问题出发,介绍了软件再工程(Reengineering)的基本内容和相关技术,并通过国外的应用实例说明再工程对提高软件生产率的重要作用。
关键词软件工程、软件再工程为了建立各类信息系统,人们很重视软件开发过程,提出了多种软件加工模型,如瀑布模型、快速原型模型等,并研制了支持这些模型的软件开发环境和软件开发工具。
这类开发环境和工具的应用对于辅助软件开发人员缩短软件开发周期,提高软件生产效率和质量起到了不可低估的作用。
但是,目前多数开发环境和开发工具是为了支持开发新的应用软件而设计的,对于那些已投入运行的软件系统的维护与移植并没有带来多少帮助。
1.问题的提出根据软件生存周期的概念,一个软件投入运行只是标志开发阶段的结束,而非软件生存周期的终止。
软件进入运行维护阶段经常会遇到如下问题:1)软件维护费用高。
一般来讲软件运行维护阶段是其整个生存周期中持续时间最长的阶段,只要软件仍在使用,其维护工作就不会终止。
据统计,软件维护费用在整个生存期中所占的比例逐渐增长,七十年代35-40% ,八十年代占40一60% ,估计九十年代会上升到70%。
美国空军的一软件项目,其开发费用为每行源程序75美元,而维护费用达到每行源程序400美元。
2)软件维护难度大。
软件难以维护主要反映在以下几个方面:a.被维护软件文档不齐、质量差,或自投入运行后程序已经过多次修改,而文档资料并未随之更新;b.早期开发的软件采用的是非结构化设计方法,原有软件结构不良或经过多次修补使其组织结构变得模糊不清;c.在软件开发阶段缺乏对软件的可维护性的考虑,软件的可理解性、可扩充性差;d.由于维护工作中考虑不周,在改正原有错误的同时又给软件引入了新的问题,即产生了波及影响;e.软件系统规模很大时,系统复杂,理解工作费时费力。
3)软件资产数额巨大。
随着计算机的广泛应用,正在使用和正在开发的软件数量与日俱增。
据估计,美国正在使用的软件已超过一千亿行源代码。
这些软件中的大部分生存期需要延长,不仅要保障正常运行,还要根据环境的变化扩充功能,改善性能,同时随着信息技术的不断进步,许多现有系统要适时地移植到性能更为强大、符合国际标准的软硬件平台上,继续为用户创造效益,正是为了解决软件在运行维护阶段所遇到的种种问题,近年来人们提出了软件再工程(Reengineering)的概念。
2.再工程的基本概念软件再工程是对现有软件系统进行验证、评价,重新设计构造成为一个新的形式并加以实现,使其满足新的需要和/或适合于新的运行环境的软件工程活动。
2.1再工程主要应用范围在软件系统的使用过程中,其运行的内、外部环境可能发生不同程度的变化。
软件再工程可以充分利用和改造现有软件以适应这些变化,避免因重新开发软件而造成时间、人力及软件资源的浪费。
再工程主要应用于:1)改进软件的可维护性。
在软件仍可满足原规格设计说明书所规定的功能、性能的条件下,因原有程序结构不良,文档不齐、不精确,或经过多次修改致使结构不清、有冗余、死码,文档与实际系统不一致等原因造成进一步的维护困难,通过文档再编制(re-documentation)和重构(re-structuring)等再工程活动使得文档齐备、精确,程序结构清晰,有利于系统继续正常运行与维护。
2)增强功能,改进性能。
在原有软件不能满足当前的要求,用户需求超出原规格设计说明书所确定的范围的情况下,可通过再工程对原有软件进行再设计以适应用户需求。
这实际是软件版本的改进和升级。
3)软件移植。
在原有软件系统的业务处理规则、基本算法等仍基本适用的条件下,由于原有支持系统运行的内部环境——硬件、系统软件等不能满足目前的要求或不符合新的标准规范(如非开放系统) ,不宜继续支持系统正常运行,就需将原系统移植到新的平台上(如计算机系统、操作系统、DBMS、网络系统等)。
4)系统开发。
在需要开发与己有的、经实践证明是成功的软件系统相类似的软件时,可以直接利用或稍作修改就可利用已有系统的程序代码、设计说明和规格说明,这样会大大提高软件生产率,缩短开发周期,保证软件质量并能节省开发经费。
2.2再工程活动类型级别根据用户对现有软件改进要求的不同,再工程活动一般可分为系统级、数据级和源程序级三个层次。
1)系统级: 是对现有应用系统的功能规格说明进行再设计。
这需要全面恢复系统的原有功能规格说明和设计说明,在此基础上根据应用要求修改设计,重新产生可执行程序。
2)数据级: 从现有文件/数据库的物理定义中产生概念与逻辑设计文档,并将这些文档转换成适合新要求的数据结构,有可能的话,同时产生访问这些文件/数据库的程序。
3)程序级: 从现有软件的源程序(或经过反编译工具产生的源程序)中提取出设计说明,经过修改设计,再进行相反的转换。
这样做可避免源程序与设计说明的不一致性,同时还降低了详细设计的要求。
源程序级的再工程活动可看作是再编码(ecoding)工作,可以将结构化不良的语言(如BASIC语言)转化为结构化语言(如PASCAL语言等) ,将3GL过程性语言转换成4GL非过程性语言。
2.3再工程活动的步骤软件再工程通常由两个阶段组成:1)逆向工程(reverse engineering)阶段,通过分析、理解现有软件,恢复其设计信息并抽象成为高层次的表示;2)正向工程(forward engineering)阶段,即软件开发过程。
对逆向工程提取出的软件的设计表示进行评审,再设计,重新产生出新的目标程序。
在一些情况下,如现有软件的各项设计文档完备、精确,再工程活动可以不需要经历逆向工程的部分过程。
3.再工程的相关软件技术3.1逆向工程逆向工程是对现有的目标软件系统进行分析与理解,包括:●分析、识别系统整体结构、各个组成成份及其相互关系;●提取软件的设计信息;●以其它或更高级的形式表示系统。
类似的软件工程活动也采用其它术语,如设计恢复(design recovery)、程序理解(program understanding)等。
逆向工程主要包括两个层次:1)反汇编、反编译。
这是比较成熟的技术。
反编译是编译的逆过程,它可将机器代码或汇编语言程序翻译成为与原有程序功能相同的高级语言形式。
2)设计信息提取。
从已有的设计文档和源程序出发,抽象出原有的设计思想,即恢复软件的功能规格说明和设计说明,这是设计和编码的逆过程。
通常这个过程需要具有原应用系统的问题领域知识(domain knowledge)。
逆向工程的关键在于对目标系统的理解,一般对系统的理解可以分为四个层次:●程序设计语言层;●控制结构层;●通用算法层;●问题领域层。
3.2正向工程(软件开发方法)关于软件开发方法及开发环境、工具方面的书籍资料已有许多,这里仅简要介绍较新的几种。
1) 4GL: 4GL为非过程性语言,用户无需具备系统软件与高级语言的知识,只要编写出系统规格说明,用4GL编译程序进行编译就能生成出可运行的程序。
2) OOP(面向对象的程序设计) : 与传统的面向过程的程序设计以功能划分模块的方法不同,OOP是按处理对象(实际事物的抽象模型)划分模块。
OOP将部件级的软件对象结合起来构成应用软件。
在进行维护时只需更换、扩充或添加部件,不影响系统的其它部件和整体结构,可显著降低开发和维护成本。
3) CASE: CASE对再工程的主要支持是帮助用户分析存储于CASE字典中的系统描述,这些分析可用于程序、子系统以及整个系统。
一些综合CASE (I-CASE)可满足整个软件生存周期的需要,包括维护阶段和逆向工程。
目前要实现完全自动化的再工程是不可行的。
千差万别应用领域的再工程离不开人的理解、判断、设计、决策能力。
软件的再工程不仅要具有软件工程知识,更重要的是要具备特定问题领域知识。
4.再工程应用实例国外近年来研制出多种软件工程环境和系统再工程产品,在对现有系统实施再工程方面有许多成功的事例。
下面列举几例以使读者对此领域的应用情况有一个初步的了解。
例一. Allnet公司是美国最大的经营长途电讯业务的公司之一,每日处理长途电话达600多万个。
由于业务高速增长,使得原设计的计费处理工作经常拖延,影响了公司的资金周转,迫切需要对系统进行改进。
Allnet采用了Viasoft公司的系统再工程产品VIA/Renaissanse,该产品能够自动地分析和提取源程序(COBOL语言)中的各种功能说明,然后形成这些功能的独立程序模块,这些模块编译后即可投入运行。
同时这些模块还可供其它应用程序使用或纳入公司的CASE环境,用于今后新系统的开发。
Allnet公司对其计费模块实行改造后;使账单处理的记录数减少到不足原来的10% ,不仅计费处理速度满足了要求,主机IBM3090 - 300J的处理时间和I/O操作时间都明显减少。
例二. 美国Zortec公司推出的面向商务应用的软件开发环境产品SYSTEM-Z集4GL和DBMS功能于一体,可在百余种机型、十多种操作系统上安装。
该产品不仅具有良好的开发环境,而且支持软件移植工作。
如总部设在纽约的一家纺织品公司主机系统是王安VS,数据处理采用COBOL语言,下属几家工厂采用XENIX系统,未与公司联网,采用SYSTEM-Z只用几个月就将系统由开销过大的王安系统移植到HP9000上,并实现了与工厂的联网。
又如,美国西弗吉尼亚州立大学使用SYSTEM-Z,不到三个月就把Unisys1100计算机上的3400多个MAPPER程序移植到IBM RS/6000上,节省了大笔经费。
再如,Alpha Omega公司只用很短的时间就将美国迪斯尼乐园的大部分应用软件移植到开放系统中,比预计节省了95%的工作日。
例三. 美国马里兰大学、NASA (国家宇航局)和CSC(计算机科学公司)联合组织的软件工程实验室(SEL)共同了解、研究NASA的飞行动力学环境中的100多个软件项目,每个软件项目从几千行到一百万行源程序不等,有Ada语言,也有早期开发的Fortran语言,通过SEL的工作NASA的每行源程序开发成本平均降低10%,软件可靠性平均改进了35%,软件的可管理性明显提高。
参考文献1.徐家福,杨冬青,为软件工程的未来建立基础,计算机科学,1990年第6期2.David Sharon,The Psychology of Reengineering,IEEE Software,Vo18. No 6. 19913.Don Yu,A View on Three R's: Reuse,Re - engineering,and Reverse - engineering,Software Engineering Notes,Vo1 16. No 3. 19914.John Kador,Reengineer to Boot Software Productivity,DATAMA ION,Vo1 38. No24. 19925.刘东波,张华伟,新一代商务软件开发环境SYSTEM-Z,计算机世界,1993年37期本文原载于1994年第1期《信息系统工程》杂志。