什么是教育管理软件定制开发?
软件开发是指根据用户的要求创造出软件系统或者系统中软件部分的过程。由此可见软件开发主要是一个过程,而不仅仅是一个结果。软件开发是一项相对比较复杂的系统工程。主要的流程包括需求捕捉、需求分析、制定方案、软件设计、软件实现和软件测试。众所周知软件一般是用某种程序设计语言来实现的,所以通常情况 下采用软件开发工具可以进行软件开发。软件从功能主要可以划分为系统软件和应用软件两种。一般来说软件并不仅仅是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。
软件开发过程分为5个阶段,分别是需求分析、软件设计、软件编码、软件测试、软件维护。
软件需求分析是对开发什么样的软件的一个系统的分析与设想。它是对用户的需求进行去粗取精、去伪存真、正确理解,然后将其用软件工程开发语言表达出来的一个过程。需求分析的主要方法有结构化分析法、数据流程图和数据字典等。本阶段的主要任务是和用户一起确定想要解决的问题,并在此基础上建立软件的逻辑模型,编写需求规格说明书,并最终得到用户的确认。然后根据需求说明书的要求,设计建立相应的软件系统体系结构,并将整个系统分解成若干个子系统或模块,并要定义子系统或模块间的接口关系,对各子系统进行具体设计 定义,并编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,以及组装测试计划。需要特别注意的是在任何软件或系统开发的初始阶段作为软件开 发人员必须要完全掌握用户的需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师或者项目经理最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成若干个模块,而模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。它可以是一个函数、过程、子程序、一段 带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计法。
软件编码是指把软件设计转换成计算机可以接受的程序的一个过程,即写成以某一程序设计语言表示的"源程序清单"。 充分了解软件开发语言、工具的特性和编程风格,将非常有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用过去的 高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,从而大大提高了软件开发的速度和效率。
软件测试是软件开发过程中一个必不可少的环节,它的目的是尽可能多地发现软件运行过程中的错误。而要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能 设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。常见的测试方法有两种,一种是白盒测试法,另外一种是黑盒测试法。白盒测试法对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。而结构错误通常包括逻辑、数据流、初始化等错 误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。黑盒测试法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测 试。黑盒测试法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。黑盒测试法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。白盒测试法和黑盒测试法依据的都是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
软件维护是指在已完成对软件的研制(分析、设计、编码和 测试)工作并交付使用以后,对软件产品所进行的一系列软件工程的活动。即根据软件运行的实际情况,对软件进行适当的修改,以适应用户新的需求,以及纠正运 行中发现的一些错误。并且编写软件问题报告和软件修改报告。一个中等规模的软件,如果说开发阶段需要一年至二年的时间的话,那么在它投入使用以后,其运行 或工作时间可能持续五年到十年。而它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决软件开发阶段所遇到的各种问题,同时还要解 决某些维护工作本身特有的问题。做好软件维护工作的意义重大,不仅能排除障碍,使软件正常工作,而且还可以使它扩展功能,提高性能,为用户带来更多的经济 效益。然而遗憾的是,现阶段很多软件开发人员对软件维护工作的重视程度远不如对软件开发工作的重视。但事实上,和软件开发工作相比,软件维护的工作量和成 本都要大得多。因为在实际开发过程中,软件开发并不是从第一步直接进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过 程中的问题可能要求修改设计,用户也可能会提出一些需要来修改需求说明书等。
总之软件开发是一个系统的复杂的工程,不管是大型系统还是小软件其开发过程都离不开以上5个阶段,而且这5个阶段是环环相扣的,任何一个环节出现问题,最终的结果都会影响软件的顺利开发和按期完工。