经典软件工程论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习《软件工程导论》有感

张仲涛2007116115 信息与计算科学20071161班在以前听别人说软件,那时多么深不可测的东西,但是今年学习了《软件工程导论》,发现还有软件工程这一个说法,更是莫名其妙。但是通过本学期软件工程的学习,让我了解了一些软件工程方法学,包含3个要素:方法、工具和过程。软件工程方法学是其中之一,它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。

传统软件工程使用的基本技术是结构化的分析与设计技术,这种技术简单、清晰,易于学习掌握和使用;结构化分析的实施步骤是先分析当前现实环境中已存在的人工系统,在此基础上再构思即将开发的目标系统,这符合人们认识世界改造世界的一般规律,从而大大降低了问题的复杂程度;结构化分析采用了图形描述方式,用数据流图为即将开发的系统描述了一个可见的模型,也为相同的审查和评价提供了有利的条件。

但不可否认这种方法也有许多明显的缺点,用这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差。

首先,结构化的分析与设计技术的本质是功能分解,是围绕实现处理功能的过程来构造系统的。结构化方法强调过程抽象和模块化,将实际问题映射为数据流和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动的操作所加工,是以过程(或操作)为中心来构造系统和设计程序的。然而,用户需求的变化大部分是针对加工的,因此这种变化对基于过程的设计来说是灾难性的,用这种技术设计出的系统往往是不稳定的。也就是说,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大的代价才能实现这种变化。

其次,结构化的分析与设计技术清楚地定义了目标系统的接口。当系统对外界的接口发生变动时,结构化的分析与设计技术很难扩充新的接口,即这样的系统较难修改和扩充。

近年来,由于信息技术的飞速发展,使软件产品应用到社会的各个领域。软件产品的质量自然成为人们共同关注的焦点。软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。一般来说软件

测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在一些关键应用 (如民航订票系统、银行结算系统、证券交易系统、自动飞行控制软件、军事防御和核电站安全控制系统等)中使用质量有问题的软件,还可能造成灾难性的后果。

软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的测试工作,黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验证软件功能、性能等指标能否满足实际应用需求的测试工作。在黑盒测试中,软件测试人员只需知道软件要做什么-而无法看到盒子里的软件是如何运行的。测试是所有工程学科的基本组成单元,是软件开发的重要部分。软件测试的目的决定了如何去组织测试。随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的的测试工作就显得更加困难。然而,为了尽可能多地找出程序中的错误,生产出高质量的软件产品,加强对测试工作的组织和管理就显得尤为重要。在测试工作中还要选择适当的测试方法只要进行一些输入,就能得到某种结果。他不知道软件如何运行,为什么会这样,只知道程序做了什么。在白盒测试中,软件测试人员可以访问程序员的代码,并通过检查代码的线索来协助测试-可以看到盒子里面。测试人员根据代码检查结果来判断或多或少可能出错的数目,并根据此定制测试。

然而,传统的测试技术和方法,对面向对象技术开发的的软件多少显得有些力不从心。鉴于此,提出了面向对象的测试技术!面向软件测试技术是新兴的软件测试技术,是专门针对使用面向对象技术开发的软件而提出的一种测试技术。面向对象软件测试是根据面向对象的软件开发过程结合面向对象的特点提出的。它包括分析与设计模型测试技术、类测试技术、对象交互测试技术、类层次结构测试技术、面向对象系统测试技术等。

1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。

由于原始问题的复杂性,软件的复杂性和抽象性,软件开发各个阶段工作的多样性,以及参加开发各种层次人员之

另外,结构化方法从本质上仍具有冯·诺依曼计算机的特点,把数据和操作作为分离的事实,以至在实现阶段,一些具有潜在可重用价值的软件部件(也称为软构件)已和具体应用环境密不可分。上述种种原因都使得用结构化分析与设计技术开发出的软件可重用性差。

传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。对于瀑布

模型,显然有一些优点:开发的各个阶段比较清晰,易懂;强调早期计划及需求调查,使得后来的阶段处理起来容易一些;适合需求稳定的产品开发。同时瀑布模型也存在一些严重的问题:各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

而对于面向对象的方法学,它有着传统方法学所无法比拟的优点。首先,它是一种全新的系统分析设计方法(对象、类、结构属性、方法);其次,与人类习惯的思维方法一致,另外,实现了对客观世界描述到软件结构的直接转换,大大减少后续软件开发量;而且,开发工作的重用性、继承性高,可维护性好,降低重复工作量;还缩短软件开发周期。

但是无法避免的是,它不易于大系统的开发。

现在来举一个例子。就比如要开发一个图书馆管理系统。由于是刚刚入门,因此选择传统方法学,也就是结构化泛型来开发这个项目是比较明智的选择。接下来进行简单的阐述。

第一步,进行问题定义,找出开发这个系统需要解决什么问题,对客户进行访问调查,简明扼要地写出书面报告,并且需要得到用户的确认。

第二步,进行可行性研究。通过对现有图书馆系统进行研究,借鉴现有系统的优点,找出旧系统中存在的问题。通过技术、经济和操作可行性来说明此这个系统是否值得去做。书写成清晰地文档,通过审查以决定是否继续做这个系统。

第三步,进行系统分析,分为需求分析和系统模型分析。需求分析中,根据图书馆工作的实际情况,并征求一些专家和用户的意见,在此基础上,确定满足用户需求的初步设想,大概了解了图书馆管理系统分为查找、借书、还书、书入库、用户信息查询等功能。另外,对于不同的用户,要可以进行权限设置。

而系统模型分析中,管理软件若联网运行,则不应依赖其它任何单机子系统,具有相对的独立性、完整性,若单机运行,也不能缩减其所应有的功能;管理软件应有一定的通用性,可独立在单机上运行,并能适用于尽量多的机型,为各中小型图书馆提供使用;管理软件的数据应该安全、可靠,能够方便的进行数据备份和数据恢复。

相关文档
最新文档