机械系统软件开发心得

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

机械系统软件开发心得

在第一章我们通过学习知道了软件是与计算机系统操作有关的计算机程序、规程、规则及相关的文件和数据,软件可分为可执行部分和不可执行部分,可执行部分又包括操作系统(Windows,Unix,DOS等)、语言编译系统(C,Fortran等)、支撑程序(AutoCAD,Ansys等)、应用程序,不可执行部分又包括面向开发者的文档(需求分析规格书,结构图,测试计划等)、面向用户的文档(用户手册、维护手册、用户指南等),计算机软件的发展从程序设计阶段(50年初到60年初),那时的逻辑元件以电子管,体积大,造价高,内存小,速度低为特点,程序语言还是机器语言和汇编语言,非常讲究编程技巧,开发方式是个体生产的方式,然后到程序系统阶段(60年代初到70年代初),这时的逻辑元件有了中小规模集成电路,硬件价格下降,性能提高的特点,程序语言也变成了高级程序设计语言,同时开发方式也变成了计算机软件公司加手工作坊的形式,再到软件工程阶段(70年代中),这时的逻辑元件变为大规模、超大规模集成电路,硬件价格急剧下降,性价比大幅度提高,CPU的速度提高了10的10次幂倍,主机成本每2-3年下降50%,性价比每10年提高一个数量级。程序语言也变成了结构化语言、面向对象语言,开发方式也变成了跨国软件公司加软件工程的形式。

随着软件的开发和发展,软件领域也出现了大大小小的问题,主要表现在第一软件的复杂性越来越高,“手工作坊”式的软件开发方式已经无法满足要求,第二软件开发的成本与进度严重估计不足,第三软件开发周期长,第四软件成本在计算机系统总成本中所占的比例逐年上升,第五软件的维护工作量大,第六软件缺乏完整正确的文档资料,第七软件的开发速度远远跟不上计算机应用普及的速度,第八软件产品质量难以保证,第九用户对“已完成的”软件系统极不满意,软件危机产生的根源第一是软件是计算机系统中的逻辑部分,在程序完成之前,是无法掌握进度,无法评价其质量的。因此,管理和控制软件的开发极为困难。第二是软件开发主要涉及两方面的人员:用户和软件开发人员之间的交流时存在着隔阂。第三是开发和管理人员只重视开发而轻视问题的定义。第四是管理技术跟不上。第五是在软件的开发与维护关系问题上存在错误的概念。第六是软件的开发模式仍为“手工作坊”式的开发模式。如何对软件领域进行解救,1968年10月,北约成员国的计算机科学家在德国召开会议,讨论软件的可靠性和软件危机问题,讨论为什么传统的工程例如机械工程、土木工程,不管项目多大,都可以成功完成,而软件项目一大,就不能实现呢?在这次讨论中提出了“软件工程”的思想:把传统工程中的原理、方法和技术用在软件的生产中。软件工程的定义就是指用传统工程的思想和方法来指导软件的生产,它运用了工程的概念、原理、方法、技术来开发和维护软件,把经过时间考验而证明是正确的管理技术和当前能够用到的最好的技术结合起来。软件工程学的研究对象包括软件工程理论、结构、方法、工具、环境、管理、规范,理论和结构是软件开发的基础;方法、工具和开发环境保证了软件开发的效率和成功率;管理技术和规范保证软件能按计划、按要求地开发出所需要的软件。软件工程学的基本目标是研究一套科学的工程方法,设计一套方便实用的工具系统,以达到在软件研制生产中投资少、效率高、质量优的目的,软件工程学的三要素是软件工程方法、软件工程工具和软件工程管理。

在第二章我们学习到软件设计中的科学方法,第一抽象方法,第二逐步求精方法,第三模块化方法,模块具有程序代码、内部数据、功能与输入输出。程序代

码和内部数据是模块的内部特性,输入输出和功能是模块的外部特性。输入和输出分别是模块需要的和产生的信息,功能是指模块所做的工作,内部数据是仅供该模块使用的数据,模块则用程序代码完成它的功能。所以我们可以得出一个复杂的问题可以通过将其分解为许多容易解决的问题来解决这个结论。第四局部化与信息隐蔽方法,局部化是指把一些有关的、具有特定目的的软件要素放在一起,使程序的一个部分与另一个部分尽量不产生相互牵扯和影响,把所有的相关的信息放在一处。信息隐蔽是指模块将一些具有特定目的的数据及对数据的操作封装起来,使其内部与外界相隔离,模块中所包含的信息对于不需要这些信息的其它模块来说,不允许访问。我们在使用模块时,要考虑到模块独立,模块独立是指一个模块的工作不依赖于另一个模块的存在,模块与模块之间的联系只是不可缺少的必要数据联系,它是抽象、模块化、局部化和信息隐蔽的直接结果。模块独立是非常重要的,首先独立性的模块容易开发出来,由于独立的模块功能单一、接口简单,极易实现多人合作共同开发,这对大型软件的开发尤为重要。其次独立的模块容易测试与维护,由于独立的模块与软件的其它部分联系最少,在各自设计和修改代码时所引起的影响范围小,错误传播的范围小,修改的工作量小,软件容易测试与维护。模块独立程度的衡量,内聚度越高越好,藕合度越低越好。内聚度是指模块内部各个成分之间联系的紧密程度。藕合度是指模块之间互相依赖的程度。

在第三章我们可以知道了解一些工程CAD软件的内容,也可以学习一些软件工程学的内容,工程CAD软件又叫做计算机辅助设计,工程CAD软件是一个包含科学计算、图形处理、符号推理、几何造型、动态模拟仿真等多方面知识的复杂的、大型的软件系统,工程CAD软件也与几何图形、拓扑关系、离散数学、计算方法等算法有关,还与工艺技术有关,工程CAD软件在功能模块方面要求有较高的独立性。专业领域工程技术人员需要掌握软件工程学方法,工程CAD 系统分析与建模对领域知识结构的要求,决定了CAD软件应该由具有一定的计算机科学知识的专业领域工程师来开发,领域工程师是工程CAD软件维护的主力军。现在目前软件开发模式主要有瀑布模式、渐增型开发模式、快速原型模式、螺旋模式、构件组装模式、转换模式、净室模式、混合模式、目前软件开发的方法多种多样其中最为广泛的就是结构化方法、Jackson方法、功能分解法、面向对象方法,软件质量的评价标准条件是正确性、可靠性、效率、安全性、可用性、可维护性、灵活性或可适应性、连接性,在满足可靠性、可维护性的前提下,追求效率。

在第四章我知道了在解决问题之前要去了解这个问题被解决的可能性是多少,去估计解决这个问题要花费的时间和要花费的金钱,首先我们要了解问题的背景,开发系统的现状,开发的理由和条件,开发系统的问题要求、总体要求,问题的性质、类型范围,要实现的目标,功能规模,实现目标的方案,开发的条件,环境的要求等,其次系统分析员要深入现场,去阅读用户的书面报告,听取用户的要求,调查开发的背景理由,还要与用户负责人反复讨论,努力澄清模糊的地方,改正不正确的地方,写出一份双方都满意的问题定义文档,最后确定双方是否可进行下一步,可行性研究的目的用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得解决,在此同时我们也要考虑技术可行性的问题,技术可行性是指根据用户提出的系统功能、性能及实现系统的各项约束条件,从技术的角度研究系统实现的可行性,而且我们还要考虑社会因素,考察系统的开发是否可能导致违法,软件开发是否会侵占他人、集体或国家的利益,是否违反国家的法

相关文档
最新文档