《软件工程在软件生产中的运用.docx》由会员分享,可在线阅读,更多相关《软件工程在软件生产中的运用.docx(4页珍藏版)》请在优知文库上搜索。
1、软件工程在软件生产中的运用一、软件工程概述1 .软件工程定义软件工程是指导计算机软件开发、运行和维护的工程学科。软件工程的应用始终贯穿于项目的前期调研、设计开发、前期运行和后期维护。通过软件工程中所定义的一些标准或规则约束项目中的很多近似不规范的东西,从而使整个项目过程变得更加有条理,更加清晰,让项目经理便于管理,让程序员易于开发,让工程人员巧于实施,让客服人员更于维护。2 .软件工程原则2.1 软件需求的变动性软件开发过程中无法消除的副产品莫过于需求变更,面对这样的问题,不能回避,只有清醒地认识它们,才能更好的解决它们。2.2 稳妥的设计方法大大地方便软件开发在软件开发过程中都会遇到这样的问
2、题,在项目进行到中期左右的时候,随着对业务的不断摸索和项目开发过程的逐渐熟悉,经常会发现前期的设计方法并不能够完全满足项目的需要,有的甚至是阻碍了开发或工程实施的继续进行,所以稳妥的设计方法至关重要。软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用,这话一点都不假,就像一个程序员曾经说过的那样“你给了我一个制造自行车的钱,怎么能让我生产出一辆摩托车呢?但很多客户似乎却不明白这个道理,他们的“百般刁难”,让项目成员,尤其是项目经理陷入深深的苦恼之中。项目质量和经济开销是成正比的,如何控制项目费用,是一门很深的课题
3、,除了基本的理论知识外,在现有的资源条件下控制项目成本,“功在当代,利在长远有效的软件工程只有在对软件过程进行有效管理的情况下才能实现“没有规矩无以成方圆只有在软件过程中有效地运用管理,才能有效地实现软件工程。如果只有软件工程理论,而不将其有效应用于软件过程中,那软件工程的理念只是一句大白话。3 .软件工程的基本目标软件工程的目标有好多种,它也会因为项目的不同而侧重点不同,以下就罗列出一些常见的,重要的加以说明。3.1 达到要求的软件功能这个不用多说,招标书或技术协议上都写的明明白白的,如果重要功能没有实现或没有达到用户要求的话,那后果是严重的。32付出较低的开发成本这是每一个项目所追求的“剩
4、余价值”,开发的成本越低,我们从项目中的获利也越大。3.3 取得较好的软件质量取得好的软件质量,不仅仅对项目验收带来有利条件,而且对于项目管理、设计、开发、实施、维护、测试等步骤都是一个好的验证,有了成功的软件,有了好的软件质量,我们就可以借鉴于其他项目,为以后的项目带来捷径,带来经验。3.4 开发的软件易于移植一个成熟的软件产品都是积累于代码的可移植性上的,同样,一个好的软件,它自身好的功能也应该可以移植到其他产品上去,这样既免除了烦琐的开发量,节约成本,同时也保障了软件的灵活性,使其更具竞争优势!3.5 较低的维护费用大多数项目完工后都会预留10%左右来作为尾款,以保证软件在售后服务期内不
5、发生重大或严重的错误。在这段时间内,维护费用的支出就完全落在了软件产品的质量上了。随着系统的正式运行,和大量数据的涌入,检验软件的性能和功能问题才真正来临,同时维护人员的业务和技术水平也直接影响着系统的运作,所以他们能否通过考验,便成为影响维护费用的关键。3.6 按要求的进度交付使用项目工时的延期和需求变更的多少是成正比的。伴随着需求变更的现状无法逃避,项目的进度必然会受到影响,这样甲乙双方就不得不为项目延期而进行磋商,重新讨论项目交付使用的时间和费用问题。3.7 其他在实际开发的具体项目中,企图让以上几个目标都达到理想的程度往往是非常困难的。目标很可能是互相冲突的,若只顾降低开发成本,很可能
6、同时也降低了软件的可靠性;如果过于追求提高软件的性能,可能造成开发出的软件对硬件有较大的依赖,从而直接影响到软件的可移植性;有些目标之间是互补关系,如易于维护和高可靠性之间,低开发成本与按时交付之间。还有一些目标是彼此互斥的,如上述指出的互相冲突的情况。二、软件工程的基本内容和框架1 .软件生命周期软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。在计算机技术发展的初期,人们把软件开发简单地理解为编写程序。随着软件复杂性的增长,人们认识到软件开发活动应划分为需求分析、设计、实现、测试等若干个活动,并将这些活动以适当的方式分配到不同的阶段中去完成。通常把软件生存周期分为6个阶段
7、:计划、需求分析、软件设计、程序编码、软件测试和运行维护。Ll计划阶段主要是确定待开发软件总目标,给出功能、性能、可靠性及接口要求。通过研究项目开发、实施过程的可能性,探讨解决问题的方案。并提交可行性报告并进行审查,同时制定详细的实施计划。1.2 需求阶段包括需求获取,需求分析,需求定义三个子阶段。需求获取需要从甲方那里收集相关业务的内容,并提炼出功能性及非功能性要求;并通过需求分析(包括功能分析、动态分析、静态分析)生成需求说明书;再根据需求定义需要完成需求规格说明书,并得到用户的确认,为将来的项目验收做准备。1.3 设计阶段依据需求规格说明书建立和确认分析结果的解决方案。建立整个软件体系结
8、构,包括子系统、模块以及相关层次的说明和部署、每一模块的接口定义等;产生程序员可用的模块说明文档,即数据结构说明、数据字典及处理描述。1.4 实现阶段主要分为开发和实施阶段。开发阶段是把设计结果转换为规定硬件平台以及系统运行体系架构可执行的程序代码,包括界面实现,控制实现和基本操作实现;实施阶段主要包括系统安装、部署,调试环境并及时反馈在实施过程中所发现的有关代码开发的问题清单。1.5 测试阶段包括单元测试、集成测试和确认测试,这些测试活动的目的就是使软件系统达到需求阶段所提出的各项要求,尽可能多的将系统问题暴露在试运行前。1.6 维护阶段对投入运行的软件进行错误修改,功能及操作性能完善,使软
9、件系统能适应外界环境的变化、实现功能扩充和质量改善;同时在维护阶段要加强对维护人员的业务培训并提高解决常见问题的能力。2,软件的逻辑结构了解软件的功能需求,商业价值,和验收条件。了解软件的静态结构,包括组织结构,角色定义,权限划分,资源信息或知识库的整理。了解软件的动态结构,包括业务流程、交互信息、事件跟踪、控制范围、条件约束等。3 .基本的开发技术和开发方法掌握开发软件所必须的程序语言和数据库知识;掌握开发方法和开发技巧;能及时跟踪问题并解决问题。4 .软件需求工程软件需求工程主要是用来探索如何用更好、更有效的方法来完善需求分析过程,解决需求分析过程中出现的问题,保证需求的完整性和可用性。5
10、 .软件项目管理软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(ProCeSS)和项目(ProjeCt)进行分析和管理的活动。软件项目管理的根本目的是为了让软件项目,尤其是大型项目的软件生命周期都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。6 .软件过程及软件过程改进软件过程(SoftwareProcess)是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关ArtifaCtS(计划、文档、模型、编码、测试、手册等)组成。而软件过程改进(SoftWareProCeSSimPrOVement,SPI)则是帮助软件企业对其软件(制作)过程的改变进行计划制定以及实施。