对软件工程的认识

时间:2022-12-19 17:51:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。




摘要:本论文主要通过本学期对软件工程的学习,写出自己对软件工程的了解,涉及定义,由来,以及软件工程的开发过程,再分析我国软件工程的现状以及对未来发展趋势的展望。 关键词:软件工程,软件生命周期,软件开发,软件维护 正文:

记得有个老师说过:“专业课对学生的影响,不仅仅是学习技术,更重要的是学习一种思想,一种做事的套路.”学习信息与计算科学专业三年多了,学了很多数学课,还有计算机课程,这学期又开设了软件工程这门课,这工程学科的思想,技术和管理的思想是该课程的套路,也是软件工程的方法论,也是我们做事的方法论,是指导我们如何去分析和处理问题。我将来毕业可能不会从事软件开发,维护等工作,用不到太多软件工程的专业知识,但是学习这门课的工程学思想却让我们受益终生。很快,软件工程这门课已经结束了,通过这学期的学习,我对软件工程有了初步的认识,下面我将介绍我对对软件工程的初步认识和学习体会。

先说下计算机软件工程的身世:

上世纪六十年代末,随着计算机应用领域的扩大,人们对软件的需求量剧增,对软件的正确性提出了更高的要求,并迫切需要缩短软件生产周期。但是,当时的软件编制还只是一种手工活动,过多地依赖程序员的个人能力和技巧,这就导致了软件生产周期长,可靠性及可维护性也很差。软件开发远远满足不了社会的需求,从而爆发了一场“软件危机”.在此背景下,计算机软件工程应运而生。1968年软件工程(software engineering,简称为se)概念提出以来,经过40多年的发展,其已变得比较成熟。它不仅适应也促进了计算机软硬件技术的更新而且促进社会的发展。

目前比较认可的一种定义认为:软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念,原理,技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

软件工程的目标是:在给定成本,进度的前提下,开发出具有可修改性,有效性,可靠性,可理解,可维护性,可重用性,可适应性,可移植性,可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难.

软件生命周期,即一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。软件的生命周期由软件定义,软件开发和软件维护三个时期。每个时期又可分为若干个阶段:软件定义分为①问题定义;②可行性研究;③需求分析;软件开发可分为④总体(概要)设计;⑤详细设计;⑥编码与单元测试;⑦综合测试;

软件过程是,为了获得高质量的软件产品所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。通常使用软件过程模型简洁地描述软件的过程.

我认为开发一个软件就是软件开发者根据客户的需求进行分析、设计、编码、调试和维护的过程。软件工程很重要,但更重要的是要能够根据不同的项目在不同阶段选择合适的开发模式,规避风险,适应客户灵活多变的需求变更,所以对需求调研和需求分析提出了更高的要求。首先我们要明确客户的需求也就是我们要解决的问题,我们要通过对客户的调查访问,系统分析写出关于问题的性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认.并不是所有客户的需求都是能满足的,所以我们必须考察这个问题的可行性,可行性研究不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法,假如可以的话预计需要多长时间,否满足客户的时间要求,还要考察解决这个问题的各个阶段所投入的人力和物力。还要对可能存在的风险进行评估.如果满足以上的开发条件,我们就要进行需求分析了,用户通常不能完整准确的表达出他们


的要求,更不知道怎样利用计算机解决他们的问题,同时并不是所有的软件开发人员对特定用户的具体要求完全清楚,因此就需要软件开发者和用户密切配合,充分交流信息,得出客户确认的系统逻辑模型。而在前面这些工作都做好了以后,我们就可以根据客户的要求进行总体设计,设计出实验目标的几种可能方案,并计算各种方案的成本,统计各个方案的优缺点,根据方案的优缺点和成本选择出最优方案.接下来就把这个方案具体化,也就是说进行详细设计.然后就实现详细设计,进行编码。在编码编号之后,我们还没有完成工作,我还要对我们的程序进行测试,最基本的测试是集成测试、确认测试、系统测试和验收测试。集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试.确认测试 、系统测试和验收测试都是按照规格说明书的规定,对目标系统进行整体测试,区别是:确认测试是开发环境下测试,系统测试是在运行环境下测试,而系统验收则是由用户完成的测试.经多次测试有错误的、不符合需求分析或者不满足客户要求的,我们都要进行修改。

软件开发到这里,还没有结束,接下来就是软件的维护,维护阶段是软件生存期中时间最长的一个阶段,也是花费的精力和费用最多的一个阶段。由于操作系统软件和基础软件版本升级或应用管理系统软件的不断开发、完善,需要对软件进行维护。但当运行环境改变或者系统功能、性能需求发生变化,使原软件不能通过维护的手段满足用户需求时,则需要进行软件更新。

接下来我们来谈谈我国软件工程的现状以及发展趋势和展望:

我国的软件技术发展的相对比较落后,相比较先进的国家还存在着非常大的差距。但是,我国软件工程的发展却是非常迅速的,短短几年的时间就形成了属于我们自己知识产权的软件技术。以至于软件工程发展到现在,我国不仅研发了属于我们自己的开发工具,还制定了符合我国实际情况的研发技术方案与思想。就目前我国软件工程发展的现状而言,存在的主要问题有以下几个方面:首先,缺乏完善的软件工程管理体制,导致软件工程开发团队的工作无法得到有效的协调,开发效率受到极大的限制。其,对软件开发人员以及开发进度的控制力度不足,致使人员的稳定性下降,使得很多软件产品的生产效率低下,且产品质量降低.与此同时,部分软件的开发进度未控制好,使得软件产品的生产不能按时完成,项目延期现象频发。

作为20 世纪末伟大的技术进展之一,Internet为我们提供了一种全球范围的信息基础设施,这个不断延伸的网络基础设施形成了一个资源丰富的计算平台,构成了人类社会信息化、数字化的基础,成为我们学习、生活和工作中必不可少的构成要素.如何在未来 Internet 平台上进一步进行资源整合,使其形成巨型的、高效的、可信的、统一的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点。Internet 平台和环境的出现,对软件形态、技术发展、理论研究提出了新的问题,提供了新的契机。从技术的角度看,以软件构件等技术支持的软件实体将以开放自主的方式存在于Internet 的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其他软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息 Web 类似的 Software Web。它不再仅仅是信息的提供者,它同时还是各种服务或功能的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,进而形成了这样一种 Software Web,它会感知外部网络环境的动态变化,并能够随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,使得系统具有尽可能高的用户信赖度。我们将它称为网构软件,它既是传统软件结构的自然延伸,又具有区别于集中封闭环境下发展起来的传统软件形态的独有的基本特征(自主性、协同性、反应性、演化性、多态性)

简单来说,软件工程有着很好的发展前景,这与科技的不断发展和计算机的普及是密不可分的.在无论人们的生活还是工作,都离不开计算机,自然对软件的需求和要求也会越来越高,这就促使软件工程不断发展,有着美好的发展前景。然而,发展与挑战是并存的,只有在发展中不断克服挑战,软件工程才会越走越远。




本文来源:https://www.wddqw.com/doc/c6aaf93e2ec58bd63186bceb19e8b8f67d1cefee.html