网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 基本理论论文
  • 成本管理论文
  • 旅游管理论文
  • 行政管理论文
  • 市场营销论文
  • 秘书文秘论文
  • 档案管理论文
  • 人力资源论文
  • 管理其它论文
  • 您的位置:写论文网 > 管理学 > 市场营销论文 > 【计算机软件设计的探讨论文... 正文 2019-09-23 09:05:47

    【计算机软件设计的探讨论文】 计算机软件开发专业

    相关热词搜索:

    计算机软件设计的探讨论文

    计算机软件设计的探讨论文 计算机软件设计的探讨论文篇一 《浅谈计算机软件重构技术》 摘要:本文阐述了软件重构技术的现状,研究意义和发展前景。

    关键词:软件重构 原型开发 简化 复用 测试 1、软件重构的定义 软件维护最初最贴切的形容就是“打补丁”,所有的维护工作采用的都 是一种消极但快速的方法。如果发现系统有问题,维护人员就快速找到这个问题, 然后修改源代码,解决这个问题。如果要添加一个新的功能,那就找到一个相似 的模块,修改代码以后放进去。这样反复多次之后,系统变得越来越臃肿,越来 越难于理解,维护也越来越艰难、越来代价越高。人们期望解决这一问题的根本 办法,于是软件重构技术应运而生。通过这种技术,使得编码更加谨慎合理,编 码时如果非常小心,则代码会具有良好的形状和味道,在修改添加代码前,通过 查看代码的形状和味道来决定是否进行更新。如果代码不容易被理解,则必须重 构代码以使得维护变得容易,再进行相应的扩展和更新。

    软件重构是指在不改变软件的功能和外部可见性的情况下,为了改善 软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造。简而言之, 重构就是改进已经写好的软件的设计。也就是说,改进后的软件其原有的功能和 行为都不改变,改变的仅仅是程序内部的编码。重构是在源代码级别上进行的, 目的是使原有的代码在重构后具有良好的程序结构。

    2、软件重构的意义 计算机技术的发展带来了全社会的变革,人们的生活对计算机的依赖 越来越强,所使用的软件也越来越复杂,对开发软件所使用的技术也要求越来越 高。面向对象开发方法等有利于软件利用的方法和技术得到了广泛的运用。但同 时也显示出一些弊端。为了开发出使用方便,利于维护的软件系统,软件开发人 员希望把初始系统设计得尽可能的完美、灵活、具有良好的可扩展性。这不仅要 求软件开发人员具有较高的软件设计能力,而且,再完美的设计也不可能完全适 应未来的需求变化。解决这一问题的方法是软件工程中的原型开发方法,在原型开发方法中,系统开发人员首先快速开发出一个系统原型提供给用户使用,通过 用户在使用过程中的不断反馈来对系统进行修改直到最后开发出系统的成熟版 本。软件扩展是在软件重构的基础上完成的。在需要扩展时,使用软件重构方法 和重构工具,采取提取抽象数据类型、提取接口等技术对代码结构进行改造,以 利于软件的维护、功能的增加等活动。

    对于已经投入使用的系统,由于需求、业务、法规等因素的变化,也 会因此而改变,需要在原有的系统上进行修改和扩充。在维护过程中可能会遇到 设计风格不一致、过时的编程语言、系统文档过时,不完整和难于理解的问题。

    这时候,为也延长旧系统的生命周期,降低系统维护成本。就可以采用以原有系 统进行重构的方法对软件进行重构,使其在改善程序结构的基础上适应需求的变 化。

    软件重构也能为程序员的编码带来好处,首先,可以简化设计,重构 允许系统设计刚好满足现有需求,不必过多考虑未来的需求,降低了系统设计的 复杂程度,当有新的需求时,可以利用重构技术,快速进行设计扩展。其次,可 以增强程序的可读性,便于理解他人的编程目的,利于快速开发软件系统。再者, 软件重构可以使程序的结构更加清晰,减少编程过程中出现的问题,并且,由于 重构是建立在严格的测试之上的,所以能够快速发现问题。将复杂的软件测试分 解为递进式的简单测试,降低了测试的复杂度。最重要的是重构可以使得代码的 可理解性大大提高,原因在于,重构技术支持更小的类、更短的方法、更少的局 部变量、更小的系统耦合,重构可以让程序员养成良好的编程习惯。

    3、软件重构的研究现状 软件重构的研究紧紧围绕以下几个方面展开,目前已经取得了一些成 果。

    (1)基本重构方法和复合重构方法的研究,如Opdyke针对C++语言定 义的一组基本重构方法,在其中定义的每个基本重构方法中,由前提条件和执行 动作组成。在进行重构时以每个基本方法为重构的最小单位。通过执行动作对程 序的修改步骤进行描述,前提条件是用来保证程序行为的不变。将这些基本重构 方法组合起来形成复合重构,就可以用来解决复杂的重构问题。Roberts等人受 Opdyke研究的启发,对基本重构方法进行了改进,增加了后置条件约束,讨论 了复合结构中基本重构之间的依赖性问题,提出了计算复合重构前置条件的计算 方法,并开发了针对Smalltalk的重构辅助工具。(2)不良程序结构的探查和整理。如冗余代码探查和消除、类层次的 整理、横切关注的探查和封装等。其中冗余代码的探查和消除主要使用字符串比 较的方法,类层次的整理主要使用“渐进增加类”算法实现,而横切叛党的探查和 封装主要使用面向方面范型进行研究和实践。

    (3)程序理解方法和工具。要进行软件维护和软件重构必须在理解程 序结构的基础上施行。除了针对程序代码中的不良程序结构进行探查,还需要围 绕程序的设计模型进行分析。如Pauw等人开发的Ovation系统,使用了执行模式 视图在不同的抽象层次上对程序的执行进行可视化,并对生成的模型进行一些操 作。Storey等人开发Rigi逆向工程环境则使用有向图表示软件构件和它们之间的 关系。

    (4)面向典型设计的重构方法。如Tokuda和Batory探讨了采用手工方式 对程序应用设计模式的重构的方法,他们通过实验指出:一个典型的系统在使用 重构和引入设计模式后,可以明显地增加软件质量。Tonella和Potrich提出了从 C++代码中自动抽取UML交互图的方法。这个基于静态的程序分析技术的方法, 基本可以描述在任何输入下程序的结果。将对象交互图的抽取过程分两步:第一 步,从源码中推断出程序所创建的对象和程序中变量;第二步,把方法的每一个 调用分解成交互过程中包含的发送类和接收类。

    (5)软件重构辅助工具。如Opdyke开发的重构辅助工具C++重构工具, Roberts等人开发的Smalltalk Refactory Browser等。这些工具虽然没能成为实用的 工具,但却是后续研发工作的基础。

    计算机软件设计的探讨论文篇二 《计算机软件设计方法的探讨》 【摘要】:随着信息化时代的到来, 计算机已广泛应用于社会各领域, 发挥着无与伦比的作用,而计算机软件的开发与完善极大地提高了计算机的使用 效益,又促进了计算机硬件的更新换代, 因此计算机软件设计方法的发展已成为 人们关注的焦点之一。本文结合国内外在软件工程方面的最新理论及成果, 以及 在项目开发中实行软件工程化探索的经验,探讨了计算机软件设计的几种常用方 法,以期会给软件开发者提供有益的启迪。【关键词】:软件 设计 方法 开发一个软件首先要给出功能说明,然后确定解题方案或算法,设计流 程图,最后编写代码。为此,根据系统的实际需求,分别针对具体情况选择采用 不同的软件设计方法,可以充分发挥软件设计各种方法的优势。

    1.问题的提出 随着计算机技术的迅速发展,软件开发供不应求的局面日益加速,应 用滞后已达数年,软件设计人员已成为一种贫乏资源,形成新的 软件危机”。(软 件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。)主要 包括三个方面的问题:一是如何开发软件,怎样满足对软件增长的需求;二是如 何维护数量不断膨胀的已有软件;三是如何大幅度提高软件生产率已成为软件界 的众矢之的和当务之急,为此,探索计算机的软件设计方法有助予人们更好地开 发软件。

    2.几种典型的软件设计方法 2.1模块化设计法 模块化设计的基本概念是:
    (1)每个模块完成一个单一和相对独立的功能;
    (2)每个模块应只有一个入口和一个出口, 每个模块应尽可能小;
    (3)上层模块只调用下层模块;
    (4)整个系统由模块构成。

    为降低软件系统的复杂性, 模块化没计采用分而治之的思想, 将问题 分解为若干子问题, 对子问题再作进一步分解。直至能用模块实现为止, 这样自 顶向下逐级分解, 形成一个层次的模块结构。模块可见部分是它的接口, 而其内 部的数据和操作细节则对外部是隐藏的。模块可以由多人同时编程、单独测试和 最后集成。模块化设计提高了程序的可读性和可修改性。

    在模块化设计中,按什么思想准则和方法来分解系统和划分模块,就产生不同的设计方法。

    2.2结构化分析与设计方法(SA/SD) 结构化分析与设计方法的基本思想是自顶向下按功能的不同划分不 同的子系统,然后对每个子系统按照逐步求精的方法求得问题解,将软件开发过 程看作是软件生命周期,建立的是瀑布模型。

    其基本步骤为:分析一设计一编码一测试一运行/维护。

    这种方法的主要优点是应用时间长、简单、直观、易于接受,并且已 有了一定的应用基础并开辟了应用市场。局限性主要在于功能经常变化,难于适 应变化要求;后期发现的错误维护代价太高;不支持功能复用,造成大量的代码冗 余。

    2.3数据流设计法 数据流没计法在设计过程中是面向数据流信息的。它以分析阶段使用 结构化分析产生的数据流图(DFD)为基础,检查DFD中信息流的特征,确定信息 流是变换型还是事物型,然后采用变换分析或事物分析来导出相应的软件结构。

    数据流设计法提出了两个定性准则来评价软件结构中模块的独立性, 即内聚和藕合,发展了模块的概念。模块的实现目标是高内聚和低偶合,实现了 这个目标的软件设计就是成功的设计。

    2.4原型法 原型法分为两种,渐增型和示例型。渐增型是设计的每一步都是最终 产品的一部分。而示例型则是快速开发出的运行系统只是一个示例而已。原型法 的基本思想是借助程序自动生成环境或软件工程支持环境,构造一个实际系统简 化的模型,供开发人员和用户交流,使设计具有灵活性,其要点是,第一要快, 否则便失去意义;第二原型要能运转起来,用户可以观察到效果,提供修改意见。

    开发的基本步骤是首先简化系统,其次实现原型,然后经过反复修改,最终真正 实现。

    2.5面向对象的设计法 面向对象的设计法是基于对象的概念将系统进行分解的。面向对象的没计法从定义问题开始, 用自然语言对问题进行非形式化的陈述,利用一些简单 规则,可以识别和确定出我们感兴趣的那些对象、对象的属性及其上的操作,得 到一个用对象表示的现实世界模型。然后, 对这个模型进行简单映射,即一个模 块对应于模型中的一个对象或对象类,这样就得到了问题的软件设计解。

    3、软件设计方法应遵循的原则 (1)选取适宜开发范型。该原则与软件设计有关,在软件设计中,软 件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。

    因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件 产品满足用户的要求。

    (2)采用合适的软件设计方法。在软件设计中,通常要考虑软件的模 块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征,合适的设计方法有 助于这些特征的实现,以达到软件工程的目标。

    (3)提供高质量的软件设计方法支持。“工欲善其事,必先利其器”。在 软件设计方法中,软件工具与环境对软件设计过程的支持颇为重要,软件设计方 法的质量与开销直接取决于对软件设计所提供的支撑质量和效用。

    (4)重视软件设计过程的管理。软件设计的管理,直接影响可用资源 的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题,因此, 当软件设计过程得以有效管理时,才能实现有效的软件设计方法。

    4、方法是软件设计的思路,不是一层不变的定律 (1)方法是使后人分享前人的成功,避开前人的失败,把注意力集中 在尚未开拓领域的创造性劳动上,所以方法和软件设计人员的创造性是没有冲突 的。

    (2)没有放之四海而皆准的方法,任何方法都有其局限性,所以软件 设计人员大不必拘泥于某种特定的方法。

    5、结束语 软件工程的目标是以最小的代价开发出满足用户需求的软件,软件设 计方法是开发软件所使用的技术和手段,它既推动了计算机的广泛应用, 又能开发出大量功能完善、界面友好、操作便利的系统与应用软件。

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    【计算机软件设计的探讨论文】 计算机软件开发专业》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.