软件过程论文(共8篇)
1.软件过程论文 篇一
摘要:为增强软件企业的国际竞争能力,软件企业实施过程改进非常重要。
过程改进的实施保证了一个项目软件研发能够达到较高水平,其意义不仅仅是对软件开发的过程进行管理,同时也最大程度地降低了企业的成本,产品质量和用户满意度也有所提高,是一种高效的管理方法。
介绍了软件过程改进的基本理念,对sPI中的CMM和CMMI进行了阐述,同时作了简单的对比。
关键词:软件过程;过程改进;CMM;CMMI
1、过程概念
要想开发出客户需要的产品,就必须使用合适的方法、技术以及工具。
过程即是人、方法、技术和工具这4项关键因素的集合。
过程它不单单是一堆文档,有效的过程环境还包括了过程的定义、过程的培训、过程的监控与强制三个方面。
人们用以开发和维护软件及其相关产品的一组活动、方法、实践和变换被定义为软件过程。
过程改进(Process Improvement):是指根据企业的现状及发展需求,优化流程制度,努力提高人们在过程中的工作能力,最终“提升产品质量、生产率并降低成本”。
过程改进是企业谋求进步的需要。
软件过程改进(SPI)是一个长期的投资。
定义清晰的、可测量的目标,对提供指导和帮助改进开发的策略来讲是必要的,也为改进结果的客观测量提供了可能。
SPI的基本理念是质量形成于过程。
过程改进能够带来效益。
节省资金和商业改善措施可以将软件过程改进和商业结果联系起来,这些改进又可以融合到软件过程改进中。
这些因素包括:产品质量的提高、上市时间的缩短和生产率的提高。
从改进后的过程对软件质量的影响可以看到软件质量的提高,从而导致使用该软件的产品或服务质量的提高。
产品质量的提高最终可以减少产品的缺陷、提高满意度、减少退货以及避免媒体舆论的压力等。
成熟的过程有助于采用有效的方式引进新技术,利用这种方式可以更快地把新技术引入到产品中,从而获得竞争上的优势。
2、核心原则
软件过程可以定义为对整个软件生命周期的管理与工程化过程及支持进程的规范说明。
过程的使用者为软件工程师和项目经理,过程的结果则是软件程序、系统以及文档。
软件过程改进的要求导致了软件过程重要性的提高,从而产生过程分析和评估的方法。
注重问题、强调知识创新、鼓励参与、领导层的统一和计划不断地改进是SPI的5条核心原则,是从实践中发展而来、相互关联的SPI哲学,对SPI工作具有非常重要的指导作用。
软件过程改进成功的关键因素在于我们应当像对待真正的“项目”一样去看待软件过程改进计划,也就是说,我们要为其分配资源、进行管理、编写阶段性的计划、制定质量以及配置管理计划等。
过程改进的核心是解决问题,它为过程改进人员指明了目标、明确了方法。
“改进是一种知识的创新,而SPI是受知识驱动的”。
它强调了知识创新在SPI中的重要性,同时也指出注重知识创新的同时对知识的传播和扩散也不容忽视。
改进活动可以用作一个模型和一个机制,用来试验所期望的各种不同的过程和行为。
一个典型的原则是运用改进尘埃来试验修订的管理过程,如新版的计划、跟踪等等。
新的方法可能因为影响太小而“失败”。
这种意义上的失败意味着新的过程不如预期的那样好,这是第一次试验一个新的或修订的过程时一个共同缺点。
任何这样的指导原则应该被文档化,以改进活动战略行动计划中的指导部分。
3、软件能力成熟度模型(CMM)
CMM——能力成熟度模型,最早的前身是1986年由美国卡内基一梅隆大学的软件工程研究所(Software En-gineering Institute,SEI)受美国国防部委托研制的一种评估软件承包商能力的办法。
在SEI中,CMM被定义为:对于软件组织在定义、实现、度量、控制和改善其软件过程中各个发展阶段的描述。
它的意义不仅仅是对软件开发的过程进行管理,更重要的是它还是一种高效的管理方法,有助于组织最大程度地管理和降低开发成本,提高软件质量和用户满意度。
软件过程的不断改进是基于许许多多小的、不断进化的步骤,并不是一次革命性的创新且能在较短时间内实现的。
CMM主要用于软件过程的改进(SPI)、软件过程的评估(SPA)和软件能力评估(SCE)。
CMM组织如图1所示,有5个等级,旨在增加软件过程成熟度行动按优先级排序。
CMM由低到高分为5个级别,分别是初始级、可重复级、定义级、管理级和优化级。
成熟度等级是向成熟软件组织前进途中的阶梯,每一个成熟度等级都为过程继续改进提供一个基石。
在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。
每一较低级别是达到较高级别的基础。
每个成熟度等级都刻画了不同软件组织所处特定过程的本质或关键属性。
4、能力成熟度模型集成(CMMI)
CMMI是CMM模型的最新版本。
1981年,美国卡内基一梅隆大学软件工程研究所(SEI),应美国联邦政府的要求开发一种用于评价软件承包商能力并帮助其改善质量的方法。
用于开发的能力成熟度集成(CMMI)是一个过程改进成熟度模型,旨在用于改进由软件工程学会开发的产品和服务。
2.软件过程论文 篇二
关键词:用户需求,软件测试,测试工具
1 概述
随着信息技术的发展, 人类已步入了信息技术时代, 而作为信息技术的先导产业———软件工程的发展对信息技术的发展起着巨大的推动作用。软件测试作为评价一个软件功能性, 可靠性, 验证软件工程需求表, 为软件使用者提供高质量安全的合格软件使用体验的功能一直以来是软件开发过程中不可或缺的一个步骤。伴随着信息技术的深入, 人们越来越离不开软件的使用, 软件质量的好坏对于软件产业本身发展有着重要影响, 为了保证软件公司提供的软件满足用户需求, 软件的安全性在用户安全许可的范围内, 软件测试质量越来越受到人们的重视。当然, 作为软件测试人员利器的软件测试工具对于提高软件测试人员的工作效率, 降低工作成本上有着明显的促进作用, 结合本人的测试经验浅谈一下软件测试与软件质量控制问题。
2 软件测试的过程
2.1 软件测试流程
软件测试不仅是为验证用户需求达到满足, 它更重要的作用在于跟踪软件开发流程及时发现并弥补在软件工程各个阶段出现的各种可能影响用户最终需求未知问题, 从而保证我们最终交付给软件使用者的产品从功能, 性能, 安全上都满足用户的需求, 因此, 软件测试不仅仅只是用户交付测试阶段的事情, 而应该包含在软件开发的各个过程中, 并且需要在相应阶段出具相应的测试文档, 力求避免在软件开发过程中各种问题。一般软件开发会经过以下流程, 软件测试流程与软件开发流程可以参见图1-1。
2.2 软件测试阶段及相应的文档
人们普遍认可软件是计算机中与硬件相结合的一部分, 包括程序和文档, 即可简单地用下式表示:软件=程序+文档;相应地, 软件测试也包括程序测试和文档测试, 其中程序测试主要包括程序逻辑功能, 界面, 性能, 易用性, 兼容性, 安装等的测试, 而文档测试主要包括文档内容和截图的检验, 排版风格的检查, 错别字的检验等。在软件开发过程, 人们用工程学原理将一般软件开发过程划分为以下五个阶段即:用户需求, 需求分析与系统设计, 概要设计, 详细设计及编码。在开发的每个阶段过程中, 软件开发人员都会制定一份详细的开发文档供下一个阶段的开发人员参考。同样, 为了保证在各个阶段工作都得到落实, 从而保证软件在最终功能, 安全性, 性能体验都达到满足用户需求, 我们需要制定相应阶段的测试文档, 并在各个阶段严格按照相应的测试文档执行。如在用户需求阶段制作的验收测试设计文档, 需求分析与系统设计阶段制作的确认测试与系统测试文档, 概要设计制作的集成测试文档, 详细设计阶段制作的单元测试文档。
3 搭建软件测试环境
搭建软件测试环境就是尽量模拟用户的真实环境, 软件的测试环境对软件测试结果的影响显而易见, 为了保证测试环境真实有效, 我们在搭建测试环境时需要注意以下要点:1) 尽量真实 (尽量模拟用户使用的环境) 。2) 干净 (测试环境中不应含有其实无关软件干扰) 。3) 无毒 (测试环境中应没有病毒) 。4) 独立 (测试环境就与开发环境独立) 。
4 软件测试过程
测试人员根据不同的划分标准将软件测试过程划分为不同的测试, 常见的有以下划分标准:
如按阶段可划分为:单元测试, 集成测试, 系统测试, 验收测试;
按是否运行程序可划分为:静态测试和动态测试;
按是否查看源代码可分为:白盒测试和黑盒测试;
以及按其它标准划分的回归测试, 冒烟测试和随机测试等;
由于划分标准的不同, 以上的划分标准可能存在一定程度的重叠, 目前比较通用的标准是按照软件开发阶段和按照是否查看源代码两种划分方法。下面主要按阶段划分详细了谈一谈软件测试过程:在软件开发过程的用户需求阶段, 软件开发者会提交用户需求说明书给用户确认, 与此同时, 我们需要提交一份详细的验收测试设计文档大致确定我们在验收时供用户验收测试的项目。在需求分析阶段, 我们需要根据用户需求分析确认说明书和系统设计文档确定我们在相应测试阶段确认测试说明书, 并让客户签字确认, 在概要设计阶段我们需要制定集成测试文档大致确定每个功能模块组合起来应该实现的功能, 在这个过程的测试结果需要开发人员进行确认, 在详细开发也会制定相应的单元测试文档, 保证开发人员每个模块单元的正确性。
5 测试工具
正所谓“工欲善其事, 必先利其器”, 实用有效的测试工具不仅可以保证测试质量, 而且可以极大程度的提高效率, 从而有效的节约时间和资金的投入。常用的测试工具主要从性能, 功能和管理能力上进行评定的。其中比较常用也是比较知名的测试管理工具有TD (TestDirector) , 功能测试工具WinRunner和QTP;性能测试工具有LoadRunne r;当然它们的功能侧重点都不同, 即使相同的测试工具在不同开发环境发挥的作用也不完全一样, 在实际工作过程需要结合实际情况有针对性的选择使用才能最大程度上发挥各个工具长处, 从而有效的提高软件测试效率, 在某些时候还需要测试人员手工编写测试用例进行更深入测试。
6 结语
软件测试的目的是为了保证软件功用性, 安全性, 性能要求达到用户需求文档, 保证软件使用的质量, 即使在软件开发过程中严格按照相关文档执行没有发现错误, 软件测试仍然必不可少, 因为它不仅客观评价了软件本身的质量, 而且减少软件使用中各种不安全因素发生的机率, 降低了由于软件质量问题带来的潜在风险。
参考文献
[1]赵斌编著.软件测试技术经典教程.
3.软件过程论文 篇三
摘 要:随着计算机的迅猛发展,网络技术的不断进步,在自身硬件组成与软件设计方面取得了突破性的成就,极大地便利了人们的工作与生活。计算机在发展的过程中,除了重视自身硬件性能的提升之外,逐渐将系统软件的开发作为一项重要的内容,以此从系统软件构成方面来满足多样化的使用需求,为了保证计算机系统软件的科学开发,该文旨在从软件工程技术的角度出发,在相关科学理论的指导下,对其在系统软件开发过程中的科学高效运用进行全面探索,以期提升系统软件开发的质量与水平,促进计算机产业的健康发展。
关键词:系统软件开发 软件工程技术 原则 运用方式
中图分类号:TP311.52 文献标识码:A 文章编号:1674-098X(2016)06(c)-0083-02
计算机技术以及互联网技术的快速发展,使得计算机应用的范围日益广泛,逐渐成为现阶段社会生产与生活中重要的工具。系统软件作为计算机软件系统的核心构成,通过自身的逻辑语言与数学算法,在很大程度上满足了计算机使用者的使用需求,实现了经济生产与社会生活的智能化[1]。为了进一步提升系统软件开发的质量与水平,使得系统软件能够满足越来越多样化与专业化的使用需求,我们将软件工程技术引入到系统软件的开发过程中,通过这种方式促进系统软件开发的效率,实现系统软件开发的人性化与信息化。因此在现有的技术条件下,探究软件工程技术在系统软件开发中的科学高效应用就有着十分重大的现实意义。
1 传统软件应用程序与软件开发分析
对传统软件应用程序与软件开发的客观分析,能够帮助参与系统软件设计的相关工作人员进一步厘清传统软件应用程序中存在的不足,并以此为基础为软件工程技术在系统软件开发中的运用准备条件。
1.1 传统软件应用程序开发工程分析
在传统软件应用程序开发工程中,为了保证程序开发有序进展,在软件应用程序开发之前需要进行模型的构建,并根据软件应用程序的设计需求与使用环境,在相关软件开发理论的指导下,对软件开发模型进行多次计算与修改,形成生存期模型,而生存期模型在实际的开发过程中又产生了诸如演化型、螺旋型以及增量型等多种形式[2]。从实际情况来看,无论是何种形式,这些模型在软件应用程序开发的实际操作中,都表现出一定的不足,存在缺陷。例如演化型模型能够对软件开发流程进行科学的优化与调整,从而便于软件应用程序的有效管理,大大降低了软件应用程序开发过程中出现错误的几率,但是如果其中的某一个环节出现了差错,将会造成整个软件开发流程的紊乱,对软件应用程序开发的稳定性带来极为消极的影响。随着社会经济的不断发展,互联网技术以及计算机技术的日益成熟,虽然现阶段大多数的软件程序仍是以WWW为构建进行设计与开发,但是为了满足经济快速发展的要求,相关企业不断进行软件开发与管理流程的优化,以期使得软件开发工作能够适应国民经济发展与社会生活的客观要求。但是我们必须看到传统软件应用程序的开发模式已经越来越难以满足实际要求,这就要求相关企业要立足于软件应用程序设计开发的实际,进行全新模式的科学探索。
1.2 软件应用系统分析
传统软件的开发周期较长,应用程序日益复杂,在很大程度上难以满足社会经济发展对软件应用程序更新换代速度的客观要求。系统软件开发作为一种新的软件开发模式,以软件作为构建的基础,对于数据信息有着较强的处理能力,并且以页面作为主要的展现形式,在一定程度上满足了不同软件应用程序使用者的不同使用需求,并且凭借着自身对各类技术与软件功能的科学整合,其能够在很大程度上缩短软件应用程序开发周期,提升应用程序的简洁性与使用性[3]。
2 系统软件工程技术在系统软件开发运用中应遵循的原则
(1)系统软件工程技术在系统软件开发中的运用必须要遵循科学性的原则。系统软件工程技术在系统软件开发中应用目标的实现,要充分体现科学性的原则,只有从科学的角度进行系统软件工程技术重要性、系统软件开发流程以及相关工作人员的职业素质与技能进行细致而全面的考量,才能够最大限度地保证系统软件工程技术在系统软件开发中的应用满足实际的系统设计需求与企业应用的要求,只有在科学精神、科学手段、科学理念的指导下,我们才能够以现有的技术条件为基础,进行系统软件工程技术在系统软件开发过程中的科学高效运用。
(2)系统软件工程技术在系统软件开发中的运用必须要遵循实用性的原则。系统软件开发相关工作的科学高效运行,需要雄厚资金的支持,从实际来看,资金的稳定供应与否直接影响到系统软件开发工作的质量与水平,因此系统软件开发在进行系统软件工程技术应用的过程中,必须要遵循实用性的原则,最大限度降低系统开发企业在设计与构建过程中系统软件的开发建设与应用成本,降低系统软件开发企业在软件开发方面的资金投入,从而能够将更多的资金利用于其他方面,促进系统软件开发企业自身的健康快速发展,提升其经济收益。
3 软件工程技术在系统软件开发过程中运用的途径与方法
软件工程技术在系统软件开发过程中的运用是一个复杂的过程,需要相关软件设计人员充分认识到传统软件应用程序开发中存在的不足,并在相关原则的指导下,从多个方面入手,采取多种方式,实现软件工程技术在系统软件开发过程中的科学高效运用。
3.1 软件开发模型的科学构建
软件工程的特殊性使得软件应用系统的设计与开发与传统的软件开发工作有着极为明显的区别。而为了保证软件工程技术在系统软件开发中的科学高效运用,就需要进行软件开发模型的科学构建,通过对整个系统软件应用程序的科学解读,对开发周期、基本流程以及软件开发管理工作的重点进行梳理,以此为基础进行软件开发模型的构建,同时为了保证模型构建的质量与效果,还需要进行项目管理模型以及组织公共模型的建立,通过这种方式及时发现软件开发模型中存在的不足,并对其原因进行考察,找出应对差错的方式,从而保证开发流程的有序进行[4]。
3.2 软件应用程序的开发
通常情况下,软件应用程序的开发会以系统软件的迭代升级作为自身的组织框架,在软件一次次地更新中,对软件的性能以及潜在的发展方向进行准确判断,也就是说软件应用程序涵盖了软件开发的各个方面。所以为了充分发挥软件应用程序开发的作用,就需要对软件使用者的使用需求进行客观分析,并以此为基础,组织相关技术人员对相关数据进行分析,从而为下一阶段的软件应用程序的使用需求、设计重点以及性能测试提供有效参考[5]。同时我们也必须看到软件应用程序开发的最终目的在于满足用户的使用需求,因此在进行软件的开发设计中,要对软件应用界面进行科学的优化,并在这一原则的指导下,对用户的使用习惯进行全面了解,对于用户感兴趣的内容、重要资讯以及核心内容安排应用界面的合理位置,通过这种优化能够让用户在满足使用需求的同时,充分满足自身的审美体验,从而大大提升用户使用软件的频率,实现高效开发与合理利用。
3.3 软件工程管理的有效运用
立足于计算机硬件加速升级的趋势,以硬件为支撑,不断提升软件工程管理的效率。软件工程管理与软件开发技术有着较为密切的联系,因此软件工程管理水平的提升,就需要不断进行软件开发技术的完善与调整,使其能够满足实际的管理需求。
参考文献
[1]邱恩海.软件工程技术在系统软件开发过程的应用[J].信息化建设,2016(4):129-130.
[2]王楠.系统软件开发过程中的软件工程技术[J].中国科技博览,2015(45):90.
[3]周敏.系统软件开发过程中的软件工程技术[J].电子制作,2015(8):85-86.
[4]郑彦平.系统软件开发过程中的软件工程技术[J].电子测试,2014(24):122-123.
4.软件过程与管理-课程总结 篇四
学生姓名:
X X
学
号:
XXXXXXXXXX 班
号:
116122
指导教师:
罗显刚
中国地质大学(武汉)信息工程学院
在学习完这门课后,我对于软件过程与管理有了一定的理解,下面介绍一下我的心得。软件过程
软件过程是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts(计划、文档、模型、编码、测试、手册等)组成。软件过程是指软件生存周期所涉及的一系列相关过程。过程是活动的集合;活动是任务的集合;任务要起着把输入进行加工然后输出的作用。活动的执行可以是顺序的、重复的、并行的、嵌套的或者是有条件地引发的。
软件过程可概括为三类:基本过程类、支持过程类和组织过程类。基本过程类包括获取过程、供应过程、开发过程、运作过程,维护过程和管理过程。支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。
软件过程主要针对软件生产和管理进行研究。为了获得满足工程目标的软件,不仅涉及工程开发,而且还涉及工程支持和工程管理。对于一个特定的项目,可以通过剪裁过程定义所需的活动和任务,并可使活动并发执行。与软件有关的单位,根据需要和目标,可采用不同的过程、活动和任务。
软件过程是指软件整个生命周期,从需求获取,需求分析,设计,实现,测试,发布和维护一个过程模型。一个软件过程定义了软件开发中采用的方法,但软件过程还包含该过程中应用的技术——技术方法和自动化工具。过程定义一个框架,为有效交付软件工程技术,这个框架必须创建。软件过程构成了软件项目管理控制的基础,并且创建了一个环境以便于技术方法的采用、工作产品(模型、文档、报告、表格等)的产生、里程碑的创建、质量的保证、正常变更的正确管理。
软件过程的成熟等级有五级,分别为初始级,可重复级,定义级,定量管理级,优化级。(1)在初始级,企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候,就放弃原定的计划而只专注于编程与测试。处于这一等级的企业,成功与否在很大程度上决定于有杰出的项目经理与经验丰富的开发团队。因此,能否雇请到及保有能干的员工成了关键问题。项目成功与否非常不确定。虽然产品一般来说是可用的,但是往往有超经费与不能按期完成的问题。
(2)在可重复级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。企业实行了基本的管理控制。符合实际的项目承诺是基于以往项目以及新项目的具体要求而作出的。项目经理不断监视成本、进度和产品功能,及时发现及解决问题以便实现所作的各项承诺。
通过具体地实施这一级的各个关键过程领域的要求,企业实现了过程的规范化、稳定化。因而,曾经取得过的成功成为可重复达到的目标。
(3)在定义级,有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时,这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。
这些标准的过程是用于帮助管理人员与一般成员工作得更有效率。如果有适当的需要,也可以加以修改。在这个把过程标准化的努力当中,企业开发出有效的软件工程的各种实践活动。
同时,一个在整个企业内施行的培训方案将确保工作人员与管理人员都具备他们所需要的知识与技能。
非常重要的一点是,项目小组要根据该项目的特点去改编企业的标准软件过程来制订出为本项目而定义的过程。
一个定义得很清楚的过程应当包括:准备妥当的判据,输入,完成工作的标准和步骤,审核的方法,输出和完成的判据。因为过程被定义得很清楚,因此管理层就能对所有项目的技术过程有透彻的了解。
(4)在定量管理级,企业对产品与过程建立起定量的质量目标,同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案,要对所有项目的重要的过程活动进行生产率和质量> 一个企业范围的数据库被用于收集与分析来自各项目的过程的数据。这些度量建立起了一个评价项目的过程与产品的定量的依据。项目小组可以通过缩小他们的效能表现的偏差使之处于可接受的定量界限之内,从而达到对过程与产品进行控制的目的。
因为过程是稳定的和经过度量,所以在有意外情况发生时,企业能够很快辨别出特殊的原因并加以处理
(5)在优化级,整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析有关过程的有效性的资料,作出对新技术的成本与收益的分析,以及提出对过程进行修改的建议。整个企业都致力于探索最佳软件工程实践的创新。
项目小组分析引起缺陷的原因,对过程进行评鉴与改进,以便预防已发生的缺陷再度发生。同时,也把从中学到的经验教训传授给其他项目。
降低浪费与消耗也是这个等级的一个重点。
处于这一等级的企业的软件过程能力可被归纳为不断的改进与优化。它们以两种形式进行。一种是逐渐地提升现存过程,另一种是对技术与方法的创新。虽然在其他的能力成熟度等级之中,这些活动也可能发生,但是在优化级,技术与过程的改进是作为常规的工作一样,有计划地在管理之下实行的。
软件管理
同样,在项目开发过程中,还有一个非常重要的方面,就是软件管理 同其他任何工程项目一样,软件项目同样存在一个非常重要的问题,这就是软件管理的问题,而这一问题通常容易被一般的软件开发人员所忽视。在一般的软件工程资料中所讨论的重点也只是软件开发方法,对软件管理问题大多一笔带过。在一个小的软件开发项目中也许还无所谓,但一个大型的软件开发项目如果没有优秀的软件管理人员来领导和协调整个项目,其失败的可能性就很大了。因此有必要引起大家对此问题的重视,这也是本文的目的所在。
作为软件管理人员,应该站在高处来俯瞰整个项目,如果有不识庐山真面目的感觉就不太好了。有了俯瞰全局的意识这一前提,采用适当的管理技术,项目开展就会容易。软件项目的管理工作可以分位四个方面:软件项目的计划、软件项目的组织、软件项目的领导和软件项目的控制,下面对这四个方面进行详细的介绍。
软件开发项目的计划包括定义项目的目标,以及达到目标的方法。他涉及到项目实施的各个环节,带有全局的性质,是战略性的。计划应力求完备,要考虑到一些未知因素和不确定因素,考虑到可能的修改。计划应力求准确,尽可能提高所依据的数据的可靠程度。主要工作集中在软件项目的估算、软件开发成本的估算和软件项目进度安排。软件项目计划的目标是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。这些估算应在软件项目开始时的一段有限时间内作出,并随着项目的进展进行更新。
软件项目管理过程开始于项目的计划,在做项目计划时,第一项活动是估算。已经使用的使用技术是时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又未软件工程过程提供了工作方向,所以我们不能没有计划就着手开发,否则就会陷入盲目性。
估算本身带有风险,估算资源、成本和项目进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气。估算的精确程度受到多方面的影响。首先,项目的复杂性对于增加软件计划的不确定性影响很大,复杂性越高,估算的风险就越高。复杂性是相对度量的,他与项目参加人员的经验有关,比如如果让搞MIS的项目组去搞操作系统设计显然增加了复杂性。其次,项目的规模对于估算的精确性和功效的影响也比较大,因为随着软件规模的扩大,软件相同元素之间的相互依赖、相互影响也迅速增加,因而估算时进行问题分解也会变得更加困难。还有项目的结构化程度也影响项目估算的风险,这里的结构性是指功能分解的简便性和处理信息的层次性,结构化程度提高,进行精确估算的能力就提高,相应风险将减少。此外,历史信息的有效性也影响估算的风险,在对过去的项目进行这综合的软件度量之后,就可以借用来比较准确地进行估算。影响估算的因素远不止这些,比如用户需求的频繁变更给估算带来非常大的影响。
估算的依据是软件的范围,包括功能,性能、限制、接口和可靠性。在估算开始之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常常采用功能分解的办法。性能的考虑主要包括处理和响应时间的需求。约束条件则标识外部硬件、可用存储和其他现有系统对软件的限制。
另外软件项目计划还要完成资源估算,包括人力资源、硬件资源和软件资源。在考虑各种软件开发资源时最重要的是人,必须考虑人员的技术水平、专业、人数以及在开发过程各阶段对各种人员的需要。硬件资源作为一种工具投入。软件资源包括各种帮助开发的软件工具,比如数据库等。
工作两估算是最普遍使用的技术。经过功能分解之后,可以估计出每一个项目任务的分解都需要花费若干人年,总计之后就知道软件项目总体工作量。下面就是一个示意性工作量估算表。
软件开发成本主要是指软件开发过程所花费的工作量及其相应的代价。它不同于其他物理产品的成本,它主要包括人的劳动的消耗,人的劳动的消耗所需的代价就是软件产品的开发成本。
开发成本的估算方法有很多种,象简单的代码行技术,任务分解技术,自动估计成本技术,专家判定技术,还有参数方程法,标准值法,以及COCOMO模型法。其中COCOMO(Constructive Cost Model)模型法是一种精确、易于使用的成本估算方法,该模型按其详细程度分为三级:基本COCOMO模型、中间COCOMO模型和详细COCOMO模型。
软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失或者用户不满意,而且也会导致成本的增加。因此在考虑进度安排时要把人员的工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不致被拖延。
在进行进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数不止一人是软件开发工作就会出现并行情况。因为并行任务是同时发生的所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在进度安排中应保证的重点。常用的进度安排方法有两种,即甘特图法和工程网络法。
一个软件项目的组织方式主要有两种。软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。
①项目管理委员会项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下:(1)依照项目管理相关制度管理项目;(2)监督项目管理相关制度的执行;(3)对项目立项、项目撤消进行决策;(4)任命项目管理小组组长、项目评审委员会主任、项目组组长.②项目管理小组项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下:(1)草拟项目管理的各项制度;(2)组织项目阶段评审;(3)保存项目过程中的相关文件和数据;(4)为优化项目管理提出建议。
③项目评审小组项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下:(1)对项目可行性报告进行评审;(2)对市场计划和阶段报告进行评审;(3)对开发计划和阶段报告进行评审;(4)项目结束时,对项目总结报告进行评审。
④软件产品项目组软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。
同样,项目的组织结构同样重要。开发组织采用什么形式由软件项目的特点决定,同时也与参加人员的素质有关。通常有三种组织结构模式:
按课题组划分的模式:把开发人员按课题组成小组,小组成员自始至终承担课题的各项任务。该模式适用于规模不大的项目,并且要求小组成员在各方面有技术专长。
按职能划分的模式:把开发项目的软件人员按任务的工作阶段划分为若干工作小组。要开发的软件在每个专业小组完成阶段加工后沿工序流水线向下传递。这种流水作业的方式使用于多项目并行的情况。
矩阵形模型:这种模式是以上两种模式的复合。一方面按工作性质成立一些专门小组,另一方面每一个项目都有它的经理人员负责。每一个软件开发人员属于某一个专门小组,有参加某一个项目的工作。该模式的优点有一方面参加专门组的成员可以在组内交流在各个项目中取得的经验,这更有利于发挥专业人员的作用;另一方面,各个项目有专门的人员负责,有利于软件项目的完成。这种模式比较适合于规模比较大的项目。
组织结构的最后一层是程序设计小组的组织形式。通常认为程序设计工作是按独立的方式进行的,程序人员独立地完成任务。但这并不意味着相互之间没有联系。一般在人数比较少时组员之间的联系比较简单,但随着人数的增加,相互之间的联系变得负责起来。小组内部人员的组织形式对对生产率有着十分重要的影响。
在软件管理中的组织形式方面,常见的小组组织形式有三种,这三种形式可以灵活使用。1.主程序员制小组:相当于组长负责制,小组的核心由一位主程序员,另外配备两到三位技术员、一位后援工程师组成。这种组织结构突出主程序员的领导,强调主程序员与其他技术人员的联系。
2.民主制小组:在民主制小组中,遇到问题可以在组员之间平等地交换换意见,工作组目标的制定以及决定的作出都由全体人员参加。这种组织形式强调发挥每个成员的积极性,并要求每个成员发挥主动精神和协作精神。
3.层次式小组:在层次式小组中,组内人员分位三级:组长(项目负责人)一人负责全组工作,他直接领导两到三名高级程序员,每位高级程序员通过基层小组,管理若干位程序员。这种结构比较适合于项目本身就是层次结构的课题。
在另一个方面来说,合理地配备人员是成功地完成软件项目的切实保证。所谓合理地配备人员应包括按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段不同层次技术人员的参与情况是不一样的。下图是典型的软件开发人员参与情况曲线。
5.浅谈软件项目管理过程论文 篇五
班级:——
学号:——
姓名:——
软件项目管理是为了使软件项目能够按照预定的成本,进度,质量顺利完成,而对人员,产品,过程和项目进行分析和管理的活动。根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析,设计,编码到测试,维护全过程)都能在管理者的控制之下,以预定成本按期,按质完成软件交付用户使用。
——序
当今世界,IT技术对于一个企业的重要性是毋庸置疑的。在很多领域,计算机技术都得到了非常广泛的应用,IT技术已经普遍地服务于社会的各行各业,在很多的领域都形成了推动力。但同时我们也看到一个非常严重的问题,那就是软件危机。为什么会发生“软件危机”。据总结,主要产生的原因是:(1)由于缺乏软件开发的经验和有关软件开发数据的积累,以致经常出现超出经费预算,无法遵循进度计划。(2)软件需求在开发的初期阶段不够明确,或是未能得到确切的表达。开发工作开始后,软件人员和用户又未能及时交换意见,造成矛盾在开发期几种暴露。(3)未能在测试阶段做好充分的检测工作,提交至用户的软件质量差,在运行过程中暴露出大量的问题。归结起来,我们说的软件危机是一种矛盾,就是弱的软件生产力能力与强的业务发展需求之间的矛盾。要能够迎接业务发展所带来的挑战,从事软件生产的组织迫在眉睫要去做的一件事就是软件生产力的改造。在“应用就是业务”的今天,软件生产力的改造是决定企业能否获得并长久保持竞争优势的一个决定性因素,所以,关注并启动软件生产力的提升是一项战略性的决策,是一个系统工程,它将决定企业能否获得并长久保持竞争优势。而项目管理则是提升生产力的一项重要任务。
然而,项目管理在我们的软件生产中的应用是那么的重要。那么我们应该怎么样才能更好的掌握项目管理,我们的项目流程是怎么样的。
首先,项目管理的第一流程是项目的启动。
项目的启动就是确定项目的目标范围,它主要包括开发和被开发双方的合同(或是协议),软件要完成的主要功能以及这些功能的量化范围,项目开发的阶段周期等。尤其是启动信息技术(IT)的项目,我们做软件的必须了解企业组织内部在目前和未来主要业务发展方向,这些主要业务将使用什么技术及相应的使用环境是什么。启动信息技术(IT)的项目的理由很多,但能够使项目成功的最合理的理由一定是为企业现有业务提供更好的运行平台,而不是展示先进的IT技术。在项目启动的过程中,我们还要注意将项目的范围进行明确定义才能进行很好的项目规划。项目目标必须是可实现可度量的。如果这一步管理得不好或是做得不好,直接导致的是项目的最终失败。
其实,第二就是项目的规划
项目的规划其实就与项目的计划意义差不多。它是一项复杂的,自始至终不断迭代的一个过程。而且为项目的运作提供可靠的实施基础。在整个项目中,项目规划是指项目的估算,风险的分析,进度的规划,人员的选择与配置,产品质量的规划等。然而,在项目管理的过程中,计划的编制是整个项目规划中最为复杂的阶段。项目计划工作涉及九个项目管理知识领域。也就是说我们要知道九个项目管理知识领域中哪些是重要的,哪些是必要的和熟悉它们之间的关系。而且在计划编制的过程中,我们还可看到后面各阶段的输出文件。所以说它是指导项目的进程发展。规划建立软件项目的预算,提供一个控制项目成本的尺度,也为将来的评估提供参考,它是项目进度安排的依据。最后,形成的项目计划书将作为跟踪控制的依据。
第三:项目的实施及控制
一旦建立起基准计划就必须按照计划执行,这包括按计划执行项目和控制项目,以使项目在预算内,按进度,使顾客满意的完成。在这个阶段,项目管理过程包括:测量实际的进程,并与计划进程相比较。同时,发现计划的不当之处。为了测量实际的进程,掌握实际上已经开始或结束的是哪些任务,已经花了多少钱,这些都是很重要的。如果实际进程与计划进程的比较显示出现项目落后于计划,超出预算或是没有达到技术要求,就必须立即采取纠正措施,以使项目能恢复正常轨道,或是更正计划的不合理之处。然而,项目的监控,也是为项目能正常回到轨道上的一个重要步骤。俗话说:“没有跟踪就不算完成”,在软件项目中,有太多的工作需要我们去完成,如果有时计划做得不够周密,或是计划赶不上变化。我们怎么办,置之不理?还是去跟踪监控一下,然后及时改正错误。为什么我们用的那么多的软件是要不定时的安装补丁,原因也就是因为这个。在跟踪监控中我们发现问题,然后去修补它,使得软件的性能,功能更好。总得来说。项目的实施及监控最终的目的就是保证项目能够安装预先设定的计划轨道上行驶,使得项目不要偏离预定的发展进程,尽快完成软件项目。
最后就是软件的项目结束
项目管理的最后环节就是软件项目的结束过程。因为项目的特征之一就是它的一次性。有起点也有终点,进入项目结束期的主要工作是适当地做出项目终止的决策,确认项目实施的各项成果,进行项目的交接和清算等,同时对项目进行最后评审,并对项目进行总结。这个也代表着项目将进入后续的维护期。项目最后执行的结果是有两种状态,要不就是成功要不就是失败。然而,一旦我们决定终止一个项目,项目就要有计划,有序的分阶段停止。当然,这个过程可以简单地执行也可以详细认真的执行。在这里项目总结是项目结束中的最后一个环节也是一个我们不能忽视的一个环节。很多项目没有能进行很好的总结,比如说项目总结时项目人员已经不全了,有新的项目要做,没有时间去写等等的理由让项目的总结没做好。所以,这也是软件项目那么多漏洞的原因之一。所以,项目的结束之前的工作我们也要好好认真的完成。
软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程)。另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述的特点,软件项目管理与其他项目管理相比,有很大的独特性。所以,软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。
最后,总结一下项目管理过程。软件项目管理不同于其他的项目管理,它有很多的特殊性。软件是一个特殊的领域,远远没有建筑工程等领域那么规范化、软件目前有很大的发展空间,经验在项目管理中发挥着很重要的作用,理论和标准还在发展中,它体现软件的“软”的特殊。合同启动了一个软件项目,同时贯穿项目的始终;根据合同进行软件的需求分析,获得需求规格;根据需求规格进行任务分解,任何分解的目的是可以很好得规划和管理项目;根据任何分解的结果,给出项目需要的资源,以便于估计活动的历时,最终编制项目计划以及项目的预算等。这样便可以形成项目的三个核心的基准计划:项目范围基准,成本基准,时间基准计划等。
6.对软件工程过程的认识及看法 篇六
通过这半年以来的学习,我对于软件工程已经有了初步的认识,并且有了自己的一些想法。由于自己在本科时候所学的是自动化专业并且所从事的是供电局的工作,与软件工程毫无关系,所以在学习的时候难免有一些吃力。但是通过老师们的细心讲解与自己的努力,总算有些初步的入门了。下面我将通过两个方面来提出自己的一些看法。
一、我对软件过程的认识
本学期是我第一次接触到软件工程的相关课程,而软件工程过程又是我所接触到的第一门课程。这学期我们主要学了一下几方面的内容:12207标准,软件的各种过程模型(瀑布模型,编码修正模型,演化模型等等)Infosys模型,Synery模型,软件工程过程的改进以及敏捷开发。
1、12207标准
12207标准的提出应该算是软件工程过程领域的一件十分重要的大事了。这一标准将软件的生存周期过程分成了三种过程,即:主过程,支持过程和辅助过程。这三个过程相互引导,相互制约,相互促进。主过程的意义自不必说,而支持过程和辅助过程都是为了保证主过程的正常运行,目标的实现和质量的提高所从事的一系列活动。它们可以被主过程的各个过程部分或全部的采用,以保证主过程的顺利完成。
2、各种过程模型
让我印象最深刻的两个模型是编码修正模型以及瀑布模型
(1)编码修正模型:这是所有模型中最为古老也是最为简单的模型。在编码之前几乎不做任何预先的准备工作,使用者很快就进入到了所开发产品的编码阶段。典型的情况就是,完成大量的编码后测试产品并且纠正所发现的错误。虽然这种模型适用于很小并且简单的项目,成本很低易于使用。但是,对于规模稍大的项目,采用这种模型是十分具有风险的。由于缺乏预先的计划并且通常伴随着不正规的开发方式,容易导致代码碎片,产品的质量很难得到保证。
(2)瀑布模型:这是最为最为经典的模型。包括需求,设计,编码,测试,运行与维护阶段。由于管理简单常被作为合同上的模型。其优点是容易理解,管理成本低。瀑布模型通过文档从一个阶段传递到下一个阶段,各阶段间原则上不连续也不交叠。文档产生并提供了贯穿生命期的进展过程的充分说明。允许基线和配置早期接受控制。其不足是:客户必须能够完整,正确和清晰的表达其需要。但在系统开发中经常发现用户与开发人员沟通存在巨大差异,用户提出含糊需求又被开发人员随意解释,以及用户需求会随着时间的推移不断变化。而且当接近项目的结束时,会出现大量的集成和测试工作。
(3)Infosys模型与Synery模型
7.软件性能测试实施过程研究 篇七
软件性能测试作为软件质量保证必不可少的环节,指的是软件系统或构件对于其及时性要求符合程度的指标;它是一种规范,可以用来量化更改业务指标所产生的影响,进而说明部署软件的风险。一般用响应时间、吞吐量每秒点击数等参数指标进行衡量。软件测试广义上分为压力测试、负载测试、强度测试、并发(用户)测试、容量测试、配置测试和可靠性测试等。
性能测试工具一般通过Winsock和HTTP等协议记录用户操作。软件系统的架构不同,协议的选择也不同。不同的软件测试工具的脚本语言不同,每种测试工具都有自身的特点,在实际应用中应选择适合软件架构性能测试工具。常用的测试工具有很多,有用于服务器存储子系统读写性能测试的Iometer、用于Linux服务器下I/O性能测试的Iozone、用于服务器的网络性能测试的NetPerf以及用于应用系统的负载性能测试工具QALoad,LoadRunner和Webload等。这些工具的功能强大,能自动生成测试报告。
1 性能测试的一般步骤
LoadRunner是惠普公司的软件性能测试产品,主要由虚拟用户发生器(VuGen)、压力调度和监控中心(Controller)、压力生成器(Load Generator)和结果分析工具(Analysis)组成。本文以LoadRunner为例,说明性能测试的一般步骤:
(1)确定用户要测试的业务。也就是通过需求分析,确定测试的目的和测试的性能指标(响应时间,并发用户数,吞吐量和资源利用率等)。
(2)通过用户对软件的操作和Vugen的录制功能记录并生成虚拟用户脚本。
(3)修改脚本,确定脚本能够回放成功。
(4)在Controller中根据需求配置测试场景。包括虚拟用户数、运行参数、用户增长方式、测试循环方式、用户退出方式和需要监视的性能指标等。
(5)执行测试场景。Controller控制Load Generator对被测系统的加压方式和行为,同时搜集被测系统各个环节的性能数据。Load Generator记录最终用户响应时间和脚本执行日志,并将数据传送到Controller中,由其进行结果的汇总。
(6)借助Analysis分析测试数据,设计调优方案。
(7)进行调优测试,重复测试过程,直至符合系统性能测试的要求。
2 测试方案设计及实施
2.1 测试需求分析和脚本录制
通过分析用户对软件的性能要求和阅读软件的需求分析文档,了解软件的类型、应用领域、所需环境和系统功能,确定测试的目的和性能指标。测试目的包括性能符合性验证、性能能力验证和性能调优。性能指标主要包括响应时间、并发用户数、吞吐量和资源利用率等。对测试的需求分析以确保使用测试工具创建的测试环境能够在测试中精确地反映应用程序的环境和配置,以及系统性能瓶颈所在。
分析软件中的典型用户,通过VuGen记录业务的操作流程创建脚本,不需要依赖客户端软件。脚本录制好后,通过对录制后的脚本添加事务、集合点和参数等,强化脚本,确保回放成功。
2.2 设计测试方案
脚本录制好后,设计测试方案。测试方案的设计关乎测试结果的准确程度。方案包括如何模拟实际用户的信息:虚拟用户组、Vuser运行的脚本和负载生成器。分析用户使用模型,定义系统的典型使用方式,考虑哪些用户使用该软件,每种用户的数量和典型任务,还应考虑任何可能影响系统响应时间的负载。本文采用LoadRunner的Controller,建立持续的负载,管理负载方案,利用日程计划定义用户什么时候访问系统,实现测试过程的自动化。
本文测试某大学学报系统的登录功能的性能,模拟50个虚拟用户,同时登录本系统,如表1所示;并保持100个用户同时在线,如表2所示。
2.3 方案的实施
方案设计好后开始实施。本文的测试中,并发测试中实际在线的人数达到100人以上,且在线时间超过30分钟,测试结果软件达到要求。LoadRunner的压力调度和监控系统同时搜集被测软件的各个环节的性能数据,记录最终用户响应时间和脚本执行的日志。运行结束后,将数据传回监控系统,汇总测试数据。
LoadRunner的数据分析器Analysis读取测试数据,进行分析,确定瓶颈和软件系统的调优方案,对系统重复进行测试,确定软件系统的性能是否提高。本文同时对软件性能测试中的测试要点进行了分析,总结各测试指标对测试的影响以及它们之间的关系,给出测试报告。
3 结束语
软件系统性能测试是一项复杂的工作,有一定的偶然性。本文主要阐述了软件性能测试的主要过程和关键技术,并结合LoadRunner测试工具和实际软件进行测试实验,对提高软件产品的质量和可靠性提供了保障。本论文的不足之处在于没有对软件性能测试的各个指标以及它们之间的关系做出更详尽的分析,这是以后需要继续研究的内容。
参考文献
[1]陈江.软件性能测试研究与分析[J].福建质量管理,2009(03).
[2]韩明军.软件性能测试过程[J].信息技术与标准化,2007(11).
[3]朱怡雯,钱超,林勇.软件性能测试工具综述[J].中国金融电脑,2009(07).
[4]曹晋源.LoadRunner在软件性能测试中的应用[J].电脑开发与应用,2008(05).
[5]欧阳荣彬,郭陟,顾明.基于排队模型的软件性能测试框架研究[J].计算机工程,2006(03).
8.软件开发方法的创新发展过程研究 篇八
【关键词】软件开发方法;结构化;面向对象;创新发展过程
1.软件开发方法概述
作为软件工程理论的基础和关键内容的软件开发方法,对于软件行业的发展进步具有重要推动作用。软件开发方法在进行实际软件开发时需要对即将要开发软件的功能了解清楚,明确该软件要“做什么”,然后制定具体计划来实现“如何做”。在不同时期,软件需求也会不同,为了满足不同的软件需求,软件开发方法也在不断创新和改变,并且每种开发方法也会存在灵活多样的表现形式。从软件工程发展的历程来看,软件开发方法不断创新发展才能有今天的辉煌结果,在接下来的软件工程发展过程中,软件开发方法仍会为了适应要去而不断创新发展,不断实现新的突破。
2.结构化和面向对象方法的创新发展过程
软件工程发展至今仅有40余年的时间,其何以在40年的时间内达到今天的程度,其中主要的原因便是创新。创新在软件开发方法的发展过程中起到了重要作用,下面笔者就以结构化和面向对象方法为例进行软件开发方法的创新发展过程研究。
2.1 结构化软件开发方法的创新发展过程研究
结构化方法共包括三个部分:结构化分析、结构化设计以及结构化实现,其核心和重点是结构化设计及其方法。整个结构化软件开发方法的实现就是在结构化设计的基础上进行的。
软件工程兴起初期,大多数软件开发方法和技术人员都过分追求软件开发技术技巧性,对于程序的清晰性、简便性没有重视,往往造成设计出的程序可读性和理解性差,使得开发过程简单但是软件维护十分艰难。对于早期常常使用的goto语句,于1968年展开了一场是否取对其进行取消的激烈争论,经过激烈争论软件开发人员认识到软件开发方法的进步并不是仅仅取消goto语句就可以实现的,这是事关如何编写程序的一个大问题。并且人们认识大编写程序时不能仅仅追求技巧,还要注意软件的后期维护。
经过激烈争论,人们开始需求一种具有良好清晰性、可读可理解性并且易于维护的软件开发方法,最终经过大家的共同努力发现由顺序、选择、循环三种基本结构组成的程序具有上述优点,并且经过研究发现任何程序都可由那三种结构实现,这变产生了一种新的软件开发方法—结构化软件开发方法。
结构化软件开发方法的出现时软件工程发展史上一次里程碑事件。1971年和1973年结构化设计语言Pascal语言和C语言问世,1972年结构化的程序设计工具N—S盒图问世,这些计算机语言和工具的出现大大提升了结构化开发方法的高度,对软件工程发展具有重大影响。
2.2 面向对象法的创新发展过程
使用计算机技术是为了将现实世界的实体通过某些技术方法使其反映在计算机中,并使现实世界和计算机世界尽量吻合相近,但是传统软件开发方法往往是面对过程的,将不能将现实和计算机很好的结合,为了解决这个问题,面向对象的软件开发方法问世了。1983年和1995年问世的C++语言和Java语言是面向对象方法的典型代表。采用面向对象的程序设计语言能够将各种数据和操作结合起来,咋计算机模块中衍生对象和类的概念,从而形成了面向对象的软件开发方法,使得现实世界和计算机的结合更加紧密。后来,人们在面向对象软件开发的基础上进行再创新,并且引入了软件生命周期概念,形成了OOA面向对象分析和OOD面向对象设计方法,至此,面向对象的软件开发方法得以全面形成。
3.结构化和面向对象方法的创新发展过程分析
通过对结构化和面向对象方法的软件开发方法的创新发展过程进行简单的阐述,可以从中分别总结出结构化和面向对象方法在创新发展过程中的四个重要环节。
3.1 结构化开发方法创新发展过程中的四个重要环节
(1)发现软件开发过程中存在的问题
在结构化方法问世之前,软件开发人员的个人随意性比较严重,进行开发过程中追求技巧性,个人随心所欲,软件开发行业没有一个确定的标准和制度。
(2)方法创新之前先创新思维理念
后来,人们认识到软件开发不能只一味追求技巧,必须将软件的可读性、可理解性、可维护性作为新的开发指标,要使用顺序、选择、循环三种基本结构自顶向下的设计软件,改变传统设计理念。
(3)用新的思维理念开发结构化软件的核心部分
结构化程序设计方法是结构化软件开发方法的核心,其开发需要使用Pascal语言和C语言技术和N—S图和PAD图两种开发工具结合进行。
(4)采用新的思维理念完善结构化开发方法
将新的思维观念引入结构化方法的完善过程中,在结构化设计方法的基础上,发展结构化分析技术,并将两者结合进行使用。
3.2 面向对象开发方法创新发展过程中的四个重要环节
(1)发现问题
传统软件开发方法将数据和操作分离,现实问题在计算机内不能直观显示,从而使系统分析和系统设计的衔接不自然。同时,面向过程的软件开发方法模块重复利用度小,不利于软件开发方法的发展。
(2)创新思维理念
将客观数据及其操作通过封装固定在一起,在设计中形成对象和类的概念,并且根据等级形成不同的类,通过父类和子类之间的继承关系,实现对象间信息传递。
(3)用新的思维理念开发面向对象软件的核心部分
C++和Java工具以及Smalltalk语言的问世,面向对象的软件开发方式开始形成并且逐渐完善。
(4)采用新的思维理念完善结构化开发方法
将新的思维观念引入面向对象方法的完善过程中,在面向对象设计方法的基础上,通过面向对象分析和设计方法以及UML的问世,使得面向对象的设计和分析不断改善,面向对象软件开发方法不断成熟。
通过对两种典型软件开发方法创新发展过程的细致研究可以发现其发展过程具有四个相似环节,这不是巧合,这是所有软件开发方法创新发展的必由之路。这四个环节可以总结为:
(1)发现软件开发过程在的问题;
(2)为了解决发现的问题开始创新思维理念;
(3)根据新的思维理念构建新的软件开发方法的核心部分;
(4)利用新的思维理念完善出现的新的开发方法。
4.结语
作为软件工程的重要组成部分,软件开发方法的创新发展对于软件工程的发展进步具有重要推动作用。本文以结构化方法和面向对象方法对软件开发方法的创新发展过程进行了深度研究,总结了软件开发方法的发展规律,对于解决新时期越来越明显的软件危机问题具有重要指导作用。
参考文献
[1]贾蓓,王才.软件开发方法分析和探讨[J].太原理工大学学报,1998(4).
【软件过程论文】推荐阅读:
软件过程管理总结08-16
科技论文的投稿过程07-17
小学数学教学过程综述论文06-21
浅谈教学论文写作过程08-01
软件安全论文07-26
会计软件论文09-13
水仙花生长过程论文(300字以上)07-11
论文答辩过程中的注意事项08-24
本科生学位论文答辩过程与技巧10-23
工业在线SPC统计过程的系统设计论文10-28