计算机软件技术开发与运用研究

2022-03-13 22:27党佳奇
电子元器件与信息技术 2022年12期
关键词:技术开发计算机软件工程师

党佳奇

陕西工业职业技术学院,陕西 咸阳 712000

0 引言

在最初的DOS(Disk Operating System)阶段,计算机软件的应用难度较高、开发难度较低,加之计算机普及水平较低,因此这段时间的计算机软件只是小众的产物;而当Windows1.0诞生后,人们能够通过图形化界面操作计算机软件(虽然Windows1.0本质上还是运行在DOS上的软件),由此打开了软件技术开发的新时代大门,现如今人们所使用的庞大的计算机软件库也正是在诸多软件开发者以及软件公司的不断耕耘之下而来;随着时间的流转,计算机的软件技术开发也变得更加具有逻辑性,但同时人们对于软件日渐严格的需求也让软件开发者面临着较大的挑战,因此根据现如今的计算机软件技术开发现状分析出问题所在并提出相应解决方案是有意义且必须实现的[1]。

1 计算机软件技术开发与运用相关内容概述

1.1 计算机软件开发概念

软件开发,就是按照使用者的需求来构建一个软件的系统,或者一个系统当中的软件部分。软件开发是一个包括需求捕捉,需求分析,设计,实现,测试的系统工程。通常情况下,用一定的编程语言来完成软件。软件开发的过程一般都是通过使用软件来完成的。软件可以分为两大类:一类是系统类,一类是应用类,它们不仅包含了能在电脑上操作的各种程序,而且与程序有关的文件通常都属于软件。软件设计思想和方法的总体流程,主要是软件设计的基本思想和方法,软件的总体设计与模块设计,编程和调试,程序联调和测试,以及编写和提交程序[2]。

1.2 计算机软件技术开发应用现状

信息化时代的发展与信息化技术使用的日益普及,极大地影响到了人们今后的工作与生活方式。从现代时代的发展情况来看,计算机软件技术的发展越来越被人们所关注,特别是计算机软件技术的应用更加便捷。由于计算机的广泛使用,计算机技术也得到了广泛应用,人们对计算机技术的要求与日俱增。怎样充分发挥和开发计算机软件技术,把高素质的技术人员吸纳到更多的高水平的技术人才,是目前计算机行业的首要问题。

1.3 计算机软件技术开发运用的重要性

为了加速网络的发展,这个时期的电脑软件技术需要进行创新发展。随着电脑技术的发展,现代科技的应用将会对互联网的传播起到更大的促进作用,从而促进人们的日常行为发生更多的改变。同时随着网络的安全和隐私性逐渐降低,网络的安全和隐私的维护水平越来越差,计算机软件的使用越来越受到重视,其对网络的安全和隐私的保护也越来越受到重视,因此计算机软件技术的发展能够有效提高人们在网络中的安全性,并提高人们在网络中的便利程度。

2 计算机软件技术开发方式及流程

2.1 计算机软件技术开发方式

2.1.1 可视化编程

在目前的软件开发当中,可视化编程技术的应用非常广泛,程序员利用可视化编程可以有效开发软件需要的功能以及各类组件,并通过该技术来构建软件的基本UI。目前常用的可视化编程语言较多,不同的终端以及不同的软件类型,往往会使用不同的编程语言,例如在Linux系统下往往会选用Java作为主要编程语言,在工控软件方面或需要大量高并发数据处理的软件方面,往往会采用C++语言;纯Windows开发环境下的软件有时会选用C#作为开发语言;需要调用各类大数据的情况下会偏向于Python语言;在针对iOS进行软件开发时,则必须使用Objective-C语言(在Xcode上进行软件开发),而在MAC平台进行软件开发时如今的程序开发人员往往会选择Swift语言[3]。

2.1.2 Web开发设计

Web开发设计方式是针对于网页及软件的开发、维护、测试、数据库管理等多个方面的技术,由于Web技术的通用性,现如今经常会用Web开发框架来开发同时兼容多平台的应用系统。一般情况下,由于Web应用程序需要考虑Gecko、Webkit、Chromium、Trident等内核的兼容性,因此只有软件需要使用联网功能显示网络信息时才会使用Web技术开发正常程序。Web软件开发的本质体系架构是B/S。

2.1.3 Jackson开发

Jackson开发,全名为Jackson Structure Programming,也可以简称为JSP。一般用于数据结构小型项目的快速开发,其开发模式是根据描述问题来输出数据结构,根据对应性来生成程序结构。

2.1.4 其他软件开发方式

目前主流的开发方式可以包括ASD开发、并列征求、水晶法开发、敏捷方法开发、面向对象、原型开发、结构化等,不同的开发方法有不同的针对目标和应用范围。可以说没有哪一种开发方法是最好的,但不论什么开发方式,都需要软件变成语言以及框架作为开发的工具基础,同时软件未来的应用平台也大致相同,例如原型法的本质就是开发一个软件原型然后根据用户的需求不断修改该原型,直至满足用户要求后再进行BUG全面修复、功能完善和上架,本质上原型法并非是开发的手段,而是开发的框架流程模式。

2.2 计算机软件技术开发流程

计算机软件技术的开发流程基本可以分为可行性分析、需求分析、概要设计、详细设计、开发阶段、测试阶段以及运行维护。

(1)可行性分析。公司要为项目指定一个项目经理,公司与项目经理共同决定该项目的关键成员,其中包括产品经理,架构工程师, UI工程师,开发工程师,测试工程师;项目经理组织业务人员、产品经理等对项目的场景、效益、技术、管理等进行调研、可行性分析,并统计目前存在的问题,与用户进行沟通,将项目调研报告、可行性分析报告等进行分析。当研究结果和可行性分析报告被审查后,项目团队能够在一定的时限和资源条件下进行工程建设,那么就可以提供相应的费用和资金利用方案,向公司和用户提供相应的信息,以便为下一阶段的工作做好充分的铺垫;如果在调查、研究后发现,项目无法在规定时间以及已有资源下完工,应向公司及顾客提出相应的基础,并进行资源调配,并在此基础上进行下一阶段的工作[4]。

(2)需求分析。在完成需求收集、需求分析、需求验证等工作之后,将需求分析和产品原型图生成,与客户针对目前的需求分析稳当和产品原型图进行及时的交流,对不满足需求的进行修正,并将其进行相应的修订。当产品原型图设计完成后,产品经理可以继续完成页面跳转流程图的设计,并与用户进行需求验证,随后将训练文件输出给项目团队成员;系统结构工程师按照软件架构以及功能需求的情况,对系统的结构和主要的功能组件进行分析和设计,并依据系统的要求和结构进行研发,编制出相应的项目进度和模块分解表。UI工程师根据需求、产品原型图和开发进度,制订 UI的规划,确保每个页面的 UI的设计任务都能按时进行。

(3)总体规划。架构工程师在软件运行环境,模块编码,流程控制,接口,操作控制和资料结构的基础上,基于系统的要求和体系结构进行设计,并将设计概要输出。开发工程师按照产品的总体要求进行文件的编写和数据库结构的设计,并将数据库的设计方案说明输出;UI工程师根据需求分析,原型和 UI的规划,开发用户界面的设计规格,并生成UI设计规范文件。

(4)详细设计。UI工程师按照产品原型、用户接口设计规范设计出用户接口;在此基础上,开发工程师对各模块进行了具体的设计,并对各模块进行了具体的描述,其中包含了与系统的外部界面、用户界面、系统内部模块的界面、模块输入数据、输出数据和局部数据等,并编制了具体的设计文件,最终按照数据库设计规范进行数据库的设计,设计数据库表、字段、描述等。

(5)开发阶段。开发工程师要从产品原型、界面效果图、详细设计文档等方面进行设计,对每个模块、页面的命名进行统一,建立软件框架,进行模块编码;另外,开发工程师还需要对自己的模块进行测试,或者让开发工程师进行软件或模块的自测以消除问题,形成一种良好的开发模式,比如做好代码描述、注释来增强代码的易用性。

(6)测试阶段。测试工程师依据在软件开发过程中所制定的指令文件和软件体系结构来进行测试,测试用例既要考虑到合理的数据,又要兼顾到的数据,还要进行单元测试、集成测试、系统测试,以确保测试过程中的代码错误、算法错误,并将其整理为文件,交给软件开发人员;软件开发人员按照测试人员提供的测试文件,对其中的缺陷进行修正,并将其交给测试人员进行检测,合格后,即可进行调试;产品经理和测试工程师会安排测试版本,让普通使用者进行体验,然后搜集他们的使用建议和问题,然后再让他们去修正软件的 bug,到了这个阶段,软件的 bug就会越来越小,对软件的影响也会越来越小,所以产品经理和测试工程师就可以开始编写软件的使用手册了。

最后是运维阶段。在运营期,项目经理可以组织客户、业务人员、产品和研发团队进行产品的测试和试运营,并对用户进行软件的使用培训;而开发人员则要对系统进行各种日常的维护,并对运行中遇到的问题进行修正。

3 计算机软件技术开发与运用中存在的问题

3.1 软件核心技术短缺

从技术发展的角度来分析,国内的软件生产仍处在仿造与加工的过程中,尚未形成一个较大的行业,操作系统、数据库管理系统、核心应用程序等领域尚未形成完整的、具有自主知识产权的系统产品。尽管目前国内的许多软件公司的营业额已经超过了百亿元,也有着部分龙头企业例如腾讯、网易、阿里等,但中国的软件业整体规模仍然较小,且呈现零散、杂乱的状态,这是中国软件业步入成熟期的必然状况,也是一个需要解决的问题。尽管我国的软件公司以超大型企业带头、中小规模的公司为后备力量,但在很多核心领域尚不能与国外大型公司相比;不过,公司持续的技术革新以及中国快速发展的市场,使得中国的软件公司得以快速成长,创造出前所未有的良好的生存条件。与此同时,我国的资本市场日益完善,为软件公司的发展提供了有利的资金支持。从公司的数量来看,我国的软件公司虽然非常多,但大多是小型企业,抵御风险的能力差,因此,不可避免地出现了一种追逐眼前利润的倾向:对于能够创造市场效益的产品,往往会一窝蜂地涌上去,对于有发展或市场拓展困难的产品,就会望而却步,导致产品种类单一,竞争水平低,产品品质低等问题。与此同时,我国的企业管理体制和运行方式也相对滞后,不能满足当今软件业发展的需要[5]。

3.2 软件人才流失严重

随着软件行业的快速发展,急需大量的专门技术人员,而国内 IT技术的发展却受到制约。虽然这些年来,我们的高校数量并没有太多的增长,但随着高校的教育模式从精英教育转向了全民教育,高校的学生人数也越来越多,但因为我们的学校教育体系相对滞后,所以很多人都选择了进入软件行业。大学教学与现实分离、不能应用、教学内容过时是目前大学普遍的问题。在现在的硬件18个月、软件9个月更新的时代,我们仍然使用较为老旧的课本;虽然每年的毕业生都有实习机会,但也都是走个形式,而并非真正的工作,在毕业之后还需要重新积累经验。

4 解决计算机软件技术开发运用中存在问题的对策

4.1 提高我国软件国际化发展

当前,全球对软体工业的发展给予了高度的关注,很多国家已经将其视为国家发展的一个重要内容和一个经济增长的发动机。当前,国内的软体公司正面对日益开放的市场,行业间的激烈的竞争日益加剧,因此,必须加快各软体公司在全球范围内,建立一个更为规范化的运行机制。在此背景下,我国的软体公司应加强对本土化的关注,并在全球范围内展开积极的竞争。借鉴发达国家的先进做法和外国公司的经营模式,促进我国企业走规范化、国际化的道路,进而让软件行业快速发展[6]。

软件是一种承载着现代企业管理理念与手段的工具,它直接关系到我国整体的经济发展。中国的软件厂商积极走向国际市场,不但能够提高自身的软件开发能力还能够在运用软件的核心——业务模式以及管理思维上,取得巨大的进展。因此,中国的软件公司要充分学习国外的人才培养模式以及软件开发技术,来让企业自身得到提高。中国软体工业发展的养分来自世界上最先进的软体工业,软件公司积极吸收外国科技,为的就是让自己的成长扎根到最肥沃的土壤里[7]。

4.2 注重培养具有综合创造力的IT人才

软件业是一种高专业性、高知识性的产业,由于其的生产方式,与其它行业相比要更加注重人才资源。人才是软件公司生存发展的重要因素,而软件技术与市场的激烈程度则体现在对人才的争夺上。在国际市场上的竞争中,我们需要有一个国际化的技术团队和一个专业的团队。

随着IT产业的迅速发展,世界各地对 IT技术人员的需求量急剧增加,但 IT技术人员的培训却远远滞后于信息技术的发展。IT行业的发展受到 IT行业的严重影响。目前,国内 IT教学中的主要问题是:层次单一,内容落后,理论无法联系实际。我国的 IT技术人员培训以高校为主,因此本科生居多,硕士研究生数量较少,博士的数量更是凤毛麟角。根据不全面的数据,目前我国大学共有400多个计算机类专业,350多个是电子信息类,250多个是通信类;此外,还包括了一些其他的一些领域。但是,当前我国 IT行业对信息技术人员的需求远高于高校信息技术人员的供给,导致信息技术人员短缺。

所以,在软件人才的培育上,首先要引入产业机制,不仅要依靠普通大学来培养大批的软件研发人员,还要引入工业体制,并引导有能力的公司自行组建或与大学共同组建一支专门的、具有一定规模的软件人才队伍,以此来提高人才的培养速度。①要实行多元化的办学方式,即政府不限定学校的性质,专科大学乃至高职院校都可以参与软件方面的培训,国企可以申报设立软件人才培养中心,合资、民营也可以设立。在统一的方针指导下,大学和公司都能充分调动自己的热情,通过多种途径来开展软件开发工作。②要有清晰的分层人才培养方案。不同院校应当专门培养不同水平软件开发人才的教育工作。诸如系统工程等高端软件技术人员,应当由双一流高校进行培训的,一般大学负责陪开发管培、运维管培等,以及产业化专业培训单位则负责培养最基本的软件技术人才。③加强教师资格认定,教师素质是保障软件专业人才的关键。要为受过严格的训练和实践操作的培训提供有利的环境。负责软件开发人员的培训工作,必须经过严格的考核和合格,合格后方可开展软件技术人员的培养。④对考试进行统一的验证。所谓的“统一考试”,就是任何一个由任何院校或公司开办的训练中心,都需要经过政府认可的考试和鉴定部门的认可,方可进行软件技术人员的培养。通过了考核和证书的整合,就可以引入行业的机制,实施不同的教育方式,形成一个统一的管理体系,从而确保不同的教育部门能够提供高素质的软件专业人员[8]。

5 结语

从20世纪90年代开始,我国的计算机软件技术开发工作就已初见雏形,到如今由于信息化技术的飞速发展,计算机的软件技术开发水平以及软件使用者的需求也发生了剧烈的变化,因此软件企业的管理者应当做好软件开发管理方式及流程的科学规划,并针对软件使用者的核心需求进行定向开发,从而保障软件技术开发工作的顺利实施。

猜你喜欢
技术开发计算机软件工程师
《机械工程师》征订启事
Kenoteq的工程师研发环保砖块
青年工程师
上海奇谋能源技术开发有限公司
基于C语言的计算机软件编程
浅谈不同编程语言对计算机软件开发的影响
新技术开发
浅谈基于C语言的计算机软件程序设计
神州修车救援APP取得计算机软件著作权
工程师变成“资本家”