郑彦平
(北方民族大学,宁夏银川,750021)
系统软件开发过程中的软件工程技术
郑彦平
(北方民族大学,宁夏银川,750021)
随着Internet的发展,应用系统也逐渐发生了改变,应用软件和系统软件逐渐向着智能化的方向发展。软件开发作为软件技术的基础,其开发方式决定着软件系统的结构和功能,与传统的软件相比,应用系统更符合现代市场需求。那么,软件的开发又是如何运作的,在开发过程中运用到哪些技术?针对这些问题,文章将重点探讨应用软件与传统软件的区别,分析软件工程中的模型设计和项目管理,从设计开发层面介绍了系统软件开发过程中的软件工程技术。
系统软件;开发;软件工程技术
随着Internet技术的快速发展,软件产业遍及工业、商业、银行、教育、财政、政府等领域,甚至深入我们的日常生活之中。以应用软件为代表的现代软件技术进入到人们的日常生活中,为人们带来了极大的便利。软件是建立在计算机技术上的产业,软件的开发和应用都和计算机分不开,以电子计算机为代表的技术是人们的生活“Wed时代”。那么,软件是如何设计的,其开发之中又涉及到怎样的技术,软件工程的管理又是如何实现的,文章接下来将探讨这些内容。
1.1 应用软件与传统软件之区别
软件应用系统具有开发时间短、初始需求不明确等显著特点。其与传统软件系统的主要区别体现在以下几点:部分基于软件的系统强调的是信息的含量,是面向文档的,包含静态或动态网页。基于软件的系统关注视觉和感觉,强调感官舒服。用户形式的多样性。大多数基于软件的系统必须迎合具有不同技术和能力的用户,复杂化人机接口、用户界面和信息递交。大多数基于软件的系统是内容驱动的,通常,基于软件的系统开发还包括内容提交的开发;而传统的软件开发是功能驱动的或过程驱动的。软件比通常意义上的软件开发使艺术、技术和科学在更大范围内结合。开发基于软件的系统的人员在技能、知识方面比传统的软件开发所需要的更加广泛,人员类型更多。
虽然软件工程包含了程序设计和软件开发,且采用了一些软件工程的原理,但是,基于软件的系统的开发与软件开发是不同的,同样,软件工程也不同于软件工程。传统的软件开发过程和生命周期模型在开发软件应用方面存在不足。
1.2 传统软件的不足
传统软件开发过程的主要组成部分是其开发周期模型。软件生存期模型是软件工程思想的具体化,是跨越软件生存期的系统开发、运行、维护所实施的全部活动和任务的过程框架。传统典型的几种生命周期模型,包括瀑布模型、增量模型、演化模型和螺旋模型等多种。在软件应用开发过程中,每种模型都有其不足之处。其特性不符合软件应用开发的初始需求不明晰、快速开发、特性经常变化等特点。以瀑布模型为例(如图1),
图1 瀑布模型结构图
瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。在软件应用开发方面,瀑布模型的缺点正是它自身的顺序性所导致的。实际的软件应用开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程。
1.3 软件应用模型更新
随着网络技术和Interact的迅速发展,大量系统都是基于www的。这些系统的开发、维护和管理需要新的方法,这些方法有别于传统的软件工程方法。传统软件工程方法和技术应用已经无法直接用到基于软件的系统开发中。当企业向面向对象的软件应用开发技术转向时,支持软件开发的活动也必然要有所改变,即意味要改变开发过程、资源和组织结构。面向对象的软件应用开发需要新的、符合其特点的软件工程过程。
如今软件应用的设计和开发进入了需要强调流程和分工的时代,建立规范的、有效的、健壮的开发机制,运用符合软件应用特点的开发过程模型,才能适应用户不断变化的需要,达到预期的计划目标。
2.1 软件工程过程模型组成
针对软件工程应用的特点,以及软件应用系统的开发和传统软件开发的显著区别上,本文提出了软件工程过程模型,作为软件应用的开发框架,其组成如图2所示:
图2 软件工程过程模型组成
软件工程主要包括开发过程模型、项目管理模型及组织公共模型等组成部分。开发过程模型介绍了开发的生命周期;项目管理过程介绍了项目管理的基本流程、项目管理方法的建立,可以大大地增加组织在项目管理方面不断成功的可能性;二者交叉部分是组织的公共过程。项目管理过程贯穿软件开发过程的始终。
2.2 软件开发过程
本过程模型基于迭代思想,一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求、分析和设计、实现、测试、发布等,其本身就像一个小型的瀑布项目。在软件开发过程中,包括软件工程人员、如见需求、软件设计、软件实现和软件测试几个部分。软件工程人员则又可以分为程序开发人员、质量管理人员、项目管理人员、内容提供人员和客户等等。在这几个环节中,软件工程人员是基础,软件需求是动力,软件设计和软件测试是手段,软件实现是目的,几个环节缺一不可。以下仅简要介绍软件测试的内容。
软件测试可以分为多种,包括性能测试、功能测试、安全性测试、兼容性测试和可用性测试等等(如图3所示)。
在软件工程过程中,基于软件系统的测试、确认和验收是一项重要而富有挑战性的工作.基于软件的应用系统的测试与传统的软件测试不同,不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。因此,我们必须为测试和评估复杂的基于软件的系统,研究新的方法和技术。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。
3.1 项目管理概念
软件项目管理(Webbased Project Management,WPM),即以软件应用程序为主要表现方式的架构来进行的项目设计及管理,这样的架构中包含了浏览器、网络和软件服务器等关键主体,主要体现在网站设计、以浏览器为客户端的软件应用程序开发等项目管理中。随着软件项目的规模不断加大、参与人员的增多、对规范性的要求愈加严格,软件开发已经告别了个人英雄主义的模式,工程化的软件开发时代已经来临。由此,项目管理开始逐步地在软件研发各项活动中处于核心地位。软件项目管理又可以分为项目准备过程、策划与计划过程、启动过程、跟踪管理过程和关闭过程。
3.2 项目管理过程
首先是项目准备,项目准备包括外部项目准备和内部项目准备,主要是准备项目招标的方案,分析项目的可行性。其次是项目启动,这一阶段主要是根据招标内容设计软件工程的计划方案。再次是项目计划,主要是为软件项目所需要的人才和技术设备做策划。接着是项目跟踪,即根据计划内容对整个软件工程的设计过程做评估。最后是项目结束,项目检测通过后验收。软件工程过程不是建立后就一成不变的,它需要在实践过程中持续改进。当企业在项目管理上走向成熟,并达到了一定程度的成功时,就获得了可持续性竞争优势.然而,企业的竞争者不会坐视这些,他们必然也在不断进步。
随着软件技术的不断发展,软件应用也越来越复杂,软件开发过程理论也不是一成不变的,它随着应用在不断发展演变。本文提出了针对面向对象软件应用开发的特点专门设计的过程模型,基本包括了软件应用开发的全过程,为软件开发设计的相关研究做了准备。不断采用先进的技术、工具,运用规范化的开发方法大力发展我国的软件产业,开发出速度更快、效果更好的软件应用系统,为我国的信息产业发展作出贡献。
[1]刘超.关于“软件工程”课程体系的基本架构及课程系列设置的探讨[J].计算机教育.2009(21):104-105.
[2]韩承双.论软件工程课程实践教学方法[J].科教文汇(下旬刊).2010(03):73-74.
[3]夏雪.浅谈软件开发过程中的方法问题[J].计算机光盘软件与应用.2012(03):204-206.
[4]丁立新;牟盛勇;马伟.软件开发过程方法研究[J].装备制造.2009(04):109-110.
郑彦平,男,1973年1月出生,宁夏海原人,副教授,主要研究方向:信息工程,软件工程
Software engineering technology system in the process of software development
Zheng Yanping
(Beifang University of Nationalities;Ningxia Yingchuan,750021,China)
With the development of the Internet,the application system also gradually changed,gradually in the direction of the intelligent application software and system software development.Software development as the basis of software technology,its development way decides the structure and function of software system,compared with traditional software application system conforms to the modern market demand.So, what is how to run software development,in the process of development which technology applied to?To solve these problems,the article will focus on discuss the difference between software applications and traditional software,the analysis model of software engineering design and project management,from the aspects of design and development system is introduced in the software development process of software engineering technology.
the system software; Development; Software engineering