欢迎来到天天文库
浏览记录
ID:58655286
大小:17.63 KB
页数:5页
时间:2020-10-16
《机械系统软件开发心得.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、机械系统软件开发心得在第一章我们通过学习知道了软件是与计算机系统操作有关的计算机程序、规程、规则及相关的文件和数据,软件可分为可执行部分和不可执行部分,可执行部分又包括操作系统(Windows,Unix,DOS等)、语言编译系统(C,Fortran等)、支撑程序(AutoCAD,Ansys等)、应用程序,不可执行部分又包括面向开发者的文档(需求分析规格书,结构图,测试计划等)、面向用户的文档(用户手册、维护手册、用户指南等),计算机软件的发展从程序设计阶段(50年初到60年初),那时的逻辑元件以电子管,体积大,造价高,内存小,速度低为特点,程序语言还是机器语言和汇编语言,非常讲究编程技巧,开发
2、方式是个体生产的方式,然后到程序系统阶段(60年代初到70年代初),这时的逻辑元件有了中小规模集成电路,硬件价格下降,性能提高的特点,程序语言也变成了高级程序设计语言,同时开发方式也变成了计算机软件公司加手工作坊的形式,再到软件工程阶段(70年代中),这时的逻辑元件变为大规模、超大规模集成电路,硬件价格急剧下降,性价比大幅度提高,CPU的速度提高了10的10次幂倍,主机成本每2-3年下降50%,性价比每10年提高一个数量级。程序语言也变成了结构化语言、面向对象语言,开发方式也变成了跨国软件公司加软件工程的形式。随着软件的开发和发展,软件领域也出现了大大小小的问题,主要表现在第一软件的复杂性越来
3、越高,“手工作坊”式的软件开发方式已经无法满足要求,第二软件开发的成本与进度严重估计不足,第三软件开发周期长,第四软件成本在计算机系统总成本中所占的比例逐年上升,第五软件的维护工作量大,第六软件缺乏完整正确的文档资料,第七软件的开发速度远远跟不上计算机应用普及的速度,第八软件产品质量难以保证,第九用户对“已完成的”软件系统极不满意,软件危机产生的根源第一是软件是计算机系统中的逻辑部分,在程序完成之前,是无法掌握进度,无法评价其质量的。因此,管理和控制软件的开发极为困难。第二是软件开发主要涉及两方面的人员:用户和软件开发人员之间的交流时存在着隔阂。第三是开发和管理人员只重视开发而轻视问题的定义。
4、第四是管理技术跟不上。第五是在软件的开发与维护关系问题上存在错误的概念。第六是软件的开发模式仍为“手工作坊”式的开发模式。如何对软件领域进行解救,1968年10月,北约成员国的计算机科学家在德国召开会议,讨论软件的可靠性和软件危机问题,讨论为什么传统的工程例如机械工程、土木工程,不管项目多大,都可以成功完成,而软件项目一大,就不能实现呢?在这次讨论中提出了“软件工程”的思想:把传统工程中的原理、方法和技术用在软件的生产中。软件工程的定义就是指用传统工程的思想和方法来指导软件的生产,它运用了工程的概念、原理、方法、技术来开发和维护软件,把经过时间考验而证明是正确的管理技术和当前能够用到的最好的技
5、术结合起来。软件工程学的研究对象包括软件工程理论、结构、方法、工具、环境、管理、规范,理论和结构是软件开发的基础;方法、工具和开发环境保证了软件开发的效率和成功率;管理技术和规范保证软件能按计划、按要求地开发出所需要的软件。软件工程学的基本目标是研究一套科学的工程方法,设计一套方便实用的工具系统,以达到在软件研制生产中投资少、效率高、质量优的目的,软件工程学的三要素是软件工程方法、软件工程工具和软件工程管理。在第二章我们学习到软件设计中的科学方法,第一抽象方法,第二逐步求精方法,第三模块化方法,模块具有程序代码、内部数据、功能与输入输出。程序代码和内部数据是模块的内部特性,输入输出和功能是模块
6、的外部特性。输入和输出分别是模块需要的和产生的信息,功能是指模块所做的工作,内部数据是仅供该模块使用的数据,模块则用程序代码完成它的功能。所以我们可以得出一个复杂的问题可以通过将其分解为许多容易解决的问题来解决这个结论。第四局部化与信息隐蔽方法,局部化是指把一些有关的、具有特定目的的软件要素放在一起,使程序的一个部分与另一个部分尽量不产生相互牵扯和影响,把所有的相关的信息放在一处。信息隐蔽是指模块将一些具有特定目的的数据及对数据的操作封装起来,使其内部与外界相隔离,模块中所包含的信息对于不需要这些信息的其它模块来说,不允许访问。我们在使用模块时,要考虑到模块独立,模块独立是指一个模块的工作不依
7、赖于另一个模块的存在,模块与模块之间的联系只是不可缺少的必要数据联系,它是抽象、模块化、局部化和信息隐蔽的直接结果。模块独立是非常重要的,首先独立性的模块容易开发出来,由于独立的模块功能单一、接口简单,极易实现多人合作共同开发,这对大型软件的开发尤为重要。其次独立的模块容易测试与维护,由于独立的模块与软件的其它部分联系最少,在各自设计和修改代码时所引起的影响范围小,错误传播的范围小,修改的工作量小
此文档下载收益归作者所有