系统软件开发过程中的软件工程技术分析

    纪志勇

    

    

    

    摘要:互联网时代下,计算机系统的应用愈加广泛,在人们日常生活和工作中扮演着愈加重要的角色。而系统软件是控制计算机系统正常运行、实现计算机系统功能的重要组成部分,系统软件开发质量直接影响着计算机系统在各行各业的应用。本文主要介绍了系统软件开发和软件工程技术的概念,同时从系统软件开发过程的软件项目开发计划、软件需求分析、软件设计、软件实现、软件测试与维护等阶段详细地阐述了软件工程技术的应用。

    关键词:系统软件;软件工程技术;软件开发

    中图分类号:TP311? ? ? 文献标识码:A

    文章编号:1009-3044(2021)16-0230-02

    开放科学(资源服务)标识码(OSID):

    软件工程技术是系统软件开发的重要工具,在提高系统软件创新性和开发效率方面具有重要作用。互联网时代下,系统软件的开发、应用不仅有利于软件行业的发展,同时对科学技术的发展和居民生活水平的提高都具有积极意义。

    1系统软件开发与软件工程技术概述

    1.1系统软件开发

    系统软件是指调度、监控和维护计算机系统,保证其正常运行和支持应用软件功能实现的那部分软件。常见的系统软件有Windows操作系统、UNIX 操作系统、C语言编译、汇编语言汇编器和数据库管理系统[1]。系统软件还具有以下特征:能解决并发操作处理中的协调问题、调度管理资源共享、用户可以反复使用、与硬件有很强的交互性。

    系统软件开发是指依据用户要求设计、开发、实现某种计算机功能的系统软件或系统软件中的一部分的过程。与传统应用软件开发相比,系统软件开发复杂性更高,而且开发期间的问题域是不可结构化的[2]。例如系统软件是控制计算机系统的重要工具,负责协调管理多种运行程序,其内部结构复杂,功能板块之间的耦合性较强,一旦修改其中某一模块,很可能影响到整个系统的正常运行,最典型的UNIX操作系统。

    1.2软件工程技术

    软件工程技术是以软件开发为目的的计算机工程技术的总称,一般包括软件项目开发计划、软件需求分析、软件设计、软件实现、软件测试和软件维护等几部分。其中软件项目开发计划是软件开发单位依据现有资源条件做出的软件开发整体方案,同时做出软件开发可行性分析。软件需求分析是指软件开发单位依据用户需求对软件开发目标的深入探讨,分析开发软件应满足什么要求,能够解决哪些问题等[3]。软件设计是构建软件开发模型,依照先整体、再部分设计软件总体结构和功能模块。软件实现是编写软件应用程序,调试软件功能。软件测试是对开发软件的性能进行测试,在保证实现用户需求的软件功能实现基础上,尽可能提高软件运行可靠性、稳定性。

    2软件工程技术在系统软件开发过程中的应用

    2.1软件项目开发计划

    软件项目开发计划阶段的主要工作内容是确定软件开发目标和总体要求,结合开发单位自身条件进行可行性分析、投资-效益分析,制定软件开发计划。可行性分析从经济可行性、技术可行性、法律可行性、操作可行性和时间可行性五方面分析[4]。

    2.2软件需求分析

    软件需求分析是软件开发的前端,需要分析人员充分与用户、软件开发小组沟通交流,结合软件原型、软件需求、软件开发计划和可行性报告进一步确定开发软件的使用与功能实现需求,示意图如下图1所示。在实际开发期间,应积极了解用户需求,依此确定软件开发方向和重点,提高软件开发效益。

    目前常见的软件需求分析方法有面向数据流结构化分析方法(SA)、Jackson方法(JSD)/结构化数据系统的开发方法(DSSD)和面向对象的分析方法(OOA)等。以SA方法为例,SA方法是一种版形式化的建模技术分析客户需求,构建描述数据和行为的模型。其步骤如下:第一,DFD 图描述原型系统的“具体模型”[5]。第二,分析“具体模型”本质元素,用DFD 图描述当前系统的“逻辑模型”。第三,分析当前系统和目标系统功能实现逻辑上的差别,明确目标系统“问题”,并DFD 图描述目标系统逻輯模型。为简化需求分析过程和便于用户、软件开发参与方理解,结构化分析常使用图形表达需求。比如,?表示数据源点或终点、?表示处理或加工、=表示数据存储、→表示数据流。而面向数据结构的Jackson方法则是通过数据元素之间的顺序结构、选择结构和循环结构进行需求分析。DSSD方法是自上向下地对系统结构进行划分,同时由整体-部分、由顶层-基层逐步分析各结构、各模块用户需求。OOA方法是依据抽象、封装、继承、比例等原则,参照现实系统分析用户需求的方法。

    2.3软件设计

    软件设计阶段的主要工作是构建软件开发模型、项目管理模型和组织公共模型。目前常见的软件开发模型有以下几种:

    (1)瀑布模型

    瀑布模型是结构化方法中常用的开发模型,在软件开发生命周期中各个活动按照先后顺序如同瀑布流水逐级下落(如图2所示)[6]。瀑布模型具有如下优点:为软件开发各阶段提供一个整体指导方案、有利于开发人员逐级控制开发质量和成本。缺点如下:各阶段工作完全固定,只有每一阶段工作完全结束后才能得知下阶段开发风险、一旦客户需求前期表达不充分可能会导致整个项目开发失败。可见,该模型的使用要求主要取决于软件开发全过程客户需求变化程度以及在前期工作中对客户需求的理解程度。

    (2)螺旋模型

    螺旋模型是以瀑布模型和演化模型为基础,融合两者优点而构建的软件项目开发模型(如下图3所示)。该模型全生命周期包括以下四个步骤:第一,明确软件开发目标、限制条件和功能需求,制定软件开发计划。第二,分析、识别软件开发方案中的是技术风险、经济风险,并尽可能提出改进建议,消除、降低风险[7]。第三,软件开发实施过程,验证阶段性的产品。第四,用户评价并提出建议,构建下一阶段软件开发计划。该模型具有如下优点:能够适应用户需求的动态变化,软件开发负责人可以及时调整开发计划、各阶段没有明显接线,开发人员可以同步工作,提高软件开发效率。缺点如下:人力资源成本增加、对软件开发项目风险评估要求较高,一旦未能及时识别风险,势必会造成损失。

    (3)喷泉模型

    喷泉模型是以用户需求为动力驱动的模型,适合于面向对象的开发方法(如图4所示)。该模型最明显的特点是迭代性和无间隙性,即软件开发活动需要多次重复,在迭代过程中完善。而且各阶段软件开发活动不存在明显便捷,允许分析、设计和编码人员同步开始工作。该模型优点如下:节省软件开发时间,提高效率。缺点如下:各阶段工作重叠,不利于管理。

    (4)增量模型

    增量模型是一种迭代模型,该模型示意图如图5所示。随着时间的递进,客户对每一个增量的评估和建议都可以作为下一个增量的新需求,在此基础上迭代直至开发出符合客户需求的、功能完善的软件。该模型具有如下优点:初期投资少,降低开发风险、可以减少用户需求变更次数。缺点如下:管理成本增加、对前期用户需求分析要求较高。

    除此之外,项目管理模型有利于软件开发单位充分整合现有资源条件和优化组织架构对软件项目开发进行项目工程化管理,在保证软件项目开发质量的前提下,尽可能地提高项目开发效益。组织公共模型则有利于协助软件开发人员及时找寻系统软件开发中存在的问题,以便及时诊断错误,制定相应的解决方案。

    2.4软件实现

    软件实现阶段的主要工作是软件应用程序的开发,通过软件编码将用户需求和软件实用功能转换成可以通过计算机接受并实现的程序。在编码器将一方面要制定统一、标准的编写规范,保证程序的可读性,提高系统软件运行效率,降低后期运行故障风险,另一方面应结合用户需求和计算机实际运行环节编写出正确的、易理解和易维护的程序模块。

    2.5软件测试与维护

    软件测试与维护是软件项目开发的最后阶段,实践是检验真理的唯一标准,软件开发小组在软件设计完成后应从单元测试、组装测试和系统测试三个阶段测试软件在计算机系统中实际运行中的功能实现与性能,一经发现问题应立刻予以纠正。目前常见的测试方法有黑盒法和白盒法,分别对源程序和软件的功能性需求。软件维护是针对开发后软件的改进活动,使其更好地满足用户需求。在实际维护期间,相关人员还需以书面和电子报告的形式记录、保存软件错误诊断、维护要求、计划、程序测试和验收等过程和结果。

    3 结论

    软件工程技术是一项现代化应用技术,在系统软件工程开发中起着至关重要的作用。在系统软件实际开发期间,软件开发人员应遵循科学性和实用性原则,在软件项目开发计划、软件需求分析、软件设计、软件实现、软件测试与维护等阶段依据用户需求和实际开发环境、条件选择合理的软件工程技术,以提高其应用的有效性。

    参考文献:

    [1] 庞崇高.数据库设计中软件工程技术的作用探析——评《数据库及其应用》[J].电镀与精饰,2020,42(4):49.

    [2] 乐艺.面向对象软件工程技术在船舶综合信息系统的应用[J].舰船科学技术,2018,40(16):109-111.

    [3] 刘穎.软件工程技术在系统软件开发中的运用[J].电子技术与软件工程,2019(5):31.

    [4] 刘光久.软件工程技术在系统软件开发过程的应用分析[J].花炮科技与市场,2019,25(2):212.

    [5] 王瑞锦,文淑华,周世杰,等.螺旋递进式的软件工程实践教学体系探索[J].实验技术与管理,2018,35(2):174-178.

    [6] 邵曰攀.软件工程技术在计算机系统软件开发中的应用[J].数字化用户,2017(3):61.

    【通联编辑:唐一东】