欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    软件生命周期模型应用的深度挖掘硕士毕业论文.doc

    • 资源ID:3994148       资源大小:1.48MB        全文页数:112页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件生命周期模型应用的深度挖掘硕士毕业论文.doc

    摘要近年来,由于计算机技术逐渐地提高,软件开发的技术和规模也伴随着计算机的发展而愈加的成熟和扩大。软件是工业化的产物,是人类科技发展的杰作,它的诞生是人类始料未及的。它并非一般的工业产品,因为它没有实体。但它却有与其它工业产品相似的生命周期特征,它的生命周期是伴随着软件开发的进程而变化的。许多人为有着生命周期特征的软件建立了许多的模型并且赋予它们在生产过程上有特殊的意义和价值。软件生命周期模型是软件开发过程的简单表达。然而软件开发过程是一个极其复杂的生产过程,并且由人承担生产的操作,有非常多的因素会影响到工程项目的成败。软件行业一直没有停止过寻求一种类同于硬件的开发方法或过程。自软件工程思想建立以来,人们提出了各种各样的软件开发方式以帮助人们提高软件的开发效率,保证软件质量。然而不下几十种的软件开发过程模型仍然存在着不少缺陷。软件开发过程仍然在不断地经历思考和改进。对软件开发过程进行研究将有助于优化现有的软件开发管理模式,使开发过程更加地有效率,开发的目标更加地明确,开发的质量得到提高。从而节约软件开发的成本,增加软件产品的效益,让软件开发的发展变得可持续化。关键词:软件,软件开发过程,软件生命周期,管理,优化 AbstractIn recent years, computer technology gradually increases, the technology and the scale of software development are also accompanied by the computer more to mature and grow.Software is a product of industrialization, is a masterpiece of human technological development, and its birth is unexpected of mankind. It is not a general industrial product, because it has no entity. But it has features of life cycle as other industrial products, and its life cycle changes when the software development process changes. Many people have made some software life cycle models by features of software life cycle, and given them a special meaning and value in the software production. Software life cycle model is a simple expression of the software development process.However, the software development process is an extremely complex process of the production, which made by peoples hands. A lot of factors will affect the success of the project. The software industry has not stopped looking for a similar method for development process like the development process of the hardware. Since the establishment of software engineering ideas, it proposed a variety of software development methods to help people to improve software development efficiency, to assure software quality. However, no less than dozens of kinds of software development process model still have many drawbacks. Software development process is still constantly thinking and improving.Conduct research on the software development process will help to optimize the existing software development management model. To make the development process more efficient, the goal of developing more clear and improve the quality of developing.Key Words:software, software development process, software life cycle, management, optimize目录摘要iAbstractii图目录IV表目录VI第1章 绪论11.1 课题背景11.2 软件开发过程现状11.3 课题目标21.4 论文的结构部署31.5 本章小结3第2章 软件开发过程的问题及分析42.1 软件开发过程与软件生命周期42.1.1 软件生命周期42.1.2 软件生命周期模型52.1.3 从软件生命周期模型看软件生产特性52.1.4 传统软件生命周期模型的弊端72.1.5 “统一软件开发过程”模型RUP82.1.6 固有的缺陷92.2 软件开发过程的问题102.2.1 需求递减效应112.2.2 需求增、删、改变化132.2.3 需求认知和定位的缺失152.3 软件开发过程问题分析152.3.1 需求递减效应分析152.3.2 需求增、删、改变化分析172.3.3 需求认知和定位的缺失分析182.4 软件开发过程改良292.4.1 需求传递递减增加需求目标描述292.4.2 需求增、删、改变化认识项目特性302.4.3 需求认知和定位的缺失培养职业意识312.4.4 改良方案的总结322.5 本章小结32第3章 差旅商务支撑平台介绍333.1 差旅商务支撑平台介绍333.1.1 项目背景333.1.2 公司与服务333.1.3 项目简介353.1.4 研发团队363.2 差旅商务支撑平台分析与设计373.2.1 项目结构与环境373.2.2 项目技术383.2.3 部分业务分析383.2.4 网络设计433.2.5 数据库设计443.2.6 页面设计463.3 项目特点473.3.1 差旅商务支撑平台属于电子商务系统473.3.2 差旅商务支撑平台生命周期非常长473.3.3 差旅商务支撑平台需求呈现为动态473.4 项目中出现的问题473.5 本章小结49第4章 差旅商务支撑平台开发过程考察与分析504.1 差旅商务支撑平台开发过程模型504.1.1 项目开发流程504.1.2 项目需求演化过程534.1.3 项目生命周期模型574.1.4 项目开发流程总结584.2 差旅商务支撑平台开发过程考察与分析594.2.1 项目开发过程评测计划594.2.2 项目开发过程中需求生成跟踪以及分析604.2.3 项目开发过程中需求实施情况跟踪以及分析614.2.4 项目开发过程中各责任岗位实际情况及分析634.2.5 项目开发完成后客户的反馈644.2.6 项目开发过程评测结论654.3 三大问题在差旅商务支撑平台开发过程中的体现674.3.1 需求递减效应的反映674.3.2 需求增删改变化的反映684.3.3 需求认知和定位的缺失的反映704.4 项目开发过程考察总结704.5 本章小结71第5章 软件开发过程改良在商务差旅平台上的应用725.1 项目开发过程改良725.2 改良的方案在项目开发过程中应用的结果725.3 另外的思考735.4 本章小结73第6章 总结756.1 本文总结75参考文献76作者简历78致谢79图目录图 2.1软件生命周期示例图4图 2.2瀑布模型示例图7图 2.3实际开发过程示例图8图 2.4RUP统一软件开发过程生命周期示例图8图 2.5需求递减示例图10图 2.6需求变更示例图11图 2.7开发人员理解不了需求示例11图 2.8开发人员理解错了需求示例12图 2.9开发人员有自己的理解示例13图 2.10需求文档堆积示例14图 2.11实际开发过程示例图18图 2.12软件开发初期示例图18图 2.13软件开发渐进示例图19图 2.14软件开发发展示例图19图 2.15软件开发成长示例图20图 2.16软件开发机遇示例图21图 2.17软件开发成熟示例图22图 2.18问题围绕需求示例图25图 2.19问题回归需求示例图25图 2.20需求贯穿力示例图26图 2.21“瀑布式”软件生命周期模型28图 2.22软件生命周期瀑布模型改进28图 3.1公司服务结构图34图 3.2企业系统服务架构图34图 3.3差旅商务支撑平台系统登录界面35图 3.4支持系统模块架构简图35图 3.5公司研发部门示例图36图 3.6项目逻辑结构图37图 3.7项目环境图37图 3.8会员预定酒店总流程图39图 3.9企业管理流程图40图 3.10客服流程图41图 3.11用户订单及积分流程图42图 3.12网络环境设计图43图 3.13网络结构图43图 3.14支撑系统页面布局设计图46图 3.15平台效果图46图 4.1公司开发流程前期示例图51图 4.2公司开发流程中期示例图52图 4.3公司开发流程后期示例图53图 4.4软件产品概念阶段54图 4.5软件产品需求阶段55图 4.6软件产品实施阶段56图 4.7软件产品维护阶段57图 4.8项目生命周期模型示例图57图 4.9增量模型示例图58图 4.10公司软件生命周期中的回流66图 4.11项目生命周期中目标的丢失68图 4.12会员规则升级69图 4.13机票行程单规则整改69图 4.14酒店预订增加第三方供应商70表目录表 2.1软件生命周期各阶段特点23表 2.2需求分析说明书示例30表 3.1项目技术表38表 3.2系统部分表列表44表 3.3会员实体字段列表45表 4.1需求生成跟踪表60表 4.2公司五-七月份需求报表61表 4.3公司五-七月份任务求报表61表 4.4公司五-七月份缺陷报表62第1章 绪论1.1 课题背景21世纪是一个崭新的世纪,是一个信息化的时代,而这一切的变革是计算机所带来的。计算机软件是计算机的灵魂,软件以及其无法比拟的实现能力迅速渗透到人类社会的各个领域当中。随着经济的全球化,软件开发的基地从发达国家开始往发展中国家转移,同时也带动了软件产业的全球化。如今,软件产业自身也正在以飞快的速度发展,它的发展带给人类无穷的可能。软件是一种工业产品,但是它与一般的工业产品又有所不同,它没有实物,这是基于软件自身抽象的特殊属性。但它又有与实物相似的生命周期特征,它的生命周期是伴随着人类活动而变化的。软件也会消耗,只是它不是单纯地被磨损,而是无法满足事物变化的需求。软件的生命周期反应了软件开发的过程。软件开发过程是一个极其复杂的生产过程,对软件开发过程进行研究将有助于优化现有的软件开发管理模式,使开发过程更加地有效率,开发的目标更加地明确,开发的质量得到提高。从而节约软件开发的成本,增加软件产品的效益,让软件开发的发展变得可持续化。1.2 软件开发过程现状当前,软件朝着更大更复杂的趋势在发展,社会对软件的需求越来越大。但是我们现实的开发状况却跟不上软件发展的脚步。软件行业其实一直没有停住过寻求一种类同于硬件的开发方法或过程。自软件工程思想建立以来,人们提出了各种各样的软件开发方式,以帮助人们提高软件的开发效率,保证软件质量,然而不下几十种的软件开发过程模型仍然存在着不少缺陷。现在,有一种理念被提出来,那就是“统一软件开发过程”。“统一软件开发过程”试图集中所有软件生命周期模型的优点,建立通用的软件开发模式。对此不同的人提出了不同的看法,有人认为:要把这种方法加以实施还需要开发大量相应的工具和环境,如果没有工具和环境的支持,只能说是纸上谈兵。通用的软件开发过程是一个好东西,但仍需要不断完善。但也有人认为:对于一个软件开发方法,它的通用性越大,实用性就越差。试图建立一个通用的软件开发过程,就必须研究大量的应用实例,总结这些实例的通用特点,并验证它的正确性。有时越简单的东西越受欢迎。但无论怎样,统一软件开发的过程是人们一个美好的愿望,许多软件工程的专家们为此已经做出了许多努力。1软件工程领域中提出的许多的先进的开发思想和开发模式,使得软件生产变得更加地专业化和细节化,有助于软件的生产和管理,但同时也对软件开发管理和软件技术人员提出了更高的要求。对于大部分的软件开发人员而言,他们并不是跟不上技术发展的节奏,而是无法满足软件生产过程管理思想进步的需求。复杂的开发管理模式对于软件开发团队而言也是一种额外的负担。软件开发的团队有大有小,大的团队可以更加地专业化,比较容易实现制度化和流程化;而小的团队则很难去仔细把握它的开发流程,如果用复杂的方式去管理势必会影响开发的效率。小的团队有时候虽然简陋,但是同样可以满足系统开发的要求。软件开发过程同样关注实用性和易用性。2随着软件行业自身发展的逐渐成熟,软件开发所关系到的不仅仅只局限于计算机技术领域,而是几乎所有的领域。软件自身也变得越来越多元化。软件行业已经成为了一种服务的模式,在这种情况下,软件开发人员不能简简单单只是一个编程高手,而需要扩展为软件行业的专业人员。软件开发过程管理不单是一个机制的问题,更是一个观念的问题,需要对每个软件从业人员提出挑战。1.3 课题目标本文研究的方向是软件开发过程改良。但本文并不是要对软件开发过程提出一个终极的方案,而是想以软件开发过程中一些固有的问题作为切入点,来对软件开发过程做一些分析和探讨,在这些问题的基础上提出自己的改良意见并在实际项目中加以应用和验证。1.4 论文的结构部署本文共分为六章:第一章:绪论。第二章:软件开发过程的问题及分析。第三章:软件开发过程研究对象商务差旅支撑平台。第四章:商务差旅支撑平台开发过程的分析与考察。第五章:软件开发过程改良在项目中的应用第六章:总结。1.5 本章小结本章简单介绍课题的背景、软件开发过程现状、课题目标以及论文的结构。本文将在下面的章节中陆续展开课题的研究。第2章 软件开发过程的问题及分析2.1 软件开发过程与软件生命周期2.1.1 软件生命周期软件作为一个具体的事物,存在于这个宇宙中,有它的运作规律,有出现,有消亡。人一生经历生老病死,对于软件而言,也是如此,软件也有它的“生命”和生命历程。它的生命历程就是软件生命周期。软件生命周期的定义是软件工程化的产物,也是软件发展的必经之路,它是软件产业成长到一定的阶段的标志。定义软件生命周期就是根据软件的特点将它的生存周期划分为若干阶段,而每个阶段都有自己的特性和任务,从而使复杂的软件开发变得更加容易控制和管理。3软件生命周期通常被定义为六个阶段:1、问题的定义及规划。2、需求的分析与设计。3、软件设计,包括总体设计和详细设计。4、程序编码。5、软件测试。6、软件维护。直到软件失去效益,死亡。软件生命周期示例可以参考图4.1。孕育需求设计怀孕问题定义成长程序编码软件测试成熟软件维护软件设计图 2.1软件生命周期示例图软件生命周期是软件开发过程的具体体现。2.1.2 软件生命周期模型对软件生命周期建立的模型称为软件生命周期模型。随着软件开发模式不断地变更和深入,软件生命周期模型也在不断地变化。软件开发和管理人员针对不同的开发模式和不同的项目特点,建立了不同软件生命周期模型。软件开发中常用的模型有:瀑布模型、螺旋模型、快速原型法模型、喷泉模型、增量迭代模型、V模型、RUP模型等等。软件生命周期模型对软件工程研究人员而言已经不是陌生的概念。从模型中我们不单单可以看到软件开发的不同方式,更可以挖掘出每个模型背后所代表的软件生产特性。2.1.3 从软件生命周期模型看软件生产特性软件生命周期的各个模型都有各自的独特之处,这也反应出软件开发过程其实是异常复杂多变的。经过仔细的研究后我们就会发现其实每个模型背后都有其建立的生产思想,而且这许多的思想所对应的也都是从实际的生产状况中所反映出来的软件生产特性。从各个模型背后的核心思想来看开发过程的不同特点:1、瀑布模型:开发过程是能有序并且有阶段的推进的,而不是混乱没有秩序的。2、快速原型法:开发过程简单不浪费时间,让用户更多参与到其中。3、喷泉模型:开发过程中各阶段的交互。开发的过程没有想象中那样死板和固定,各个阶段的职责人员会有很多的交流。4、螺旋模型:它希望能带来一个高质量的开发结构,并最终造出高质量的软件产品。5、编码-修改模型:开发过程不要来得那么麻烦,可以简单快速。6、增量模型:其实某些产品的开发过程尤其是大型的项目,它是一个可以被切开的蛋糕,而不必着急怎样把一整块蛋糕一下子吃光。而每个模型的思想所对应的软件开发实际是:1、瀑布模型表明:以前软件开发过程内部缺乏管理,难以适应大规模大产量的需要,所以软件开发必须要有秩序地控制,将各个阶段的任务进行规划和管理。瀑布模型的提出者表达了软件开发过程次序性和易管理性的美好意愿。2、快速原型法模型表明:客户才是最后产品交付的关键。同时也要有效率,没有效率就代表浪费资本。快速原型法模型的提出者深刻体会到开发一个能让客户感到十分满意的软件产品是何等地困难。与客户保持密切的交流,满意客户的意愿是每个软件开发人员想要开发出一款成功产品的关键。3、喷泉模型表明:开发过程在客观上复杂多变,需要用一种动态的机制来协调。喷泉模型的提出者清楚认识到软件开发过程本身的不可确定性,与瀑布模型的思想产生了主观和客观的矛盾。4、螺旋模型表明:软件开发需要一个真正有指导意义的模型。5、编码-修改模型表明:软件开发需要激情,能够看到成功的一面。这可能是任何一个开发人员所期盼的一种方式,就是能在短时间内,简单快速地完成创作。6、增量模型表明:事实上,一个好的软件产品是需要时间的,我们可以不必着急,只需要从我们所能做的做起,慢慢来,可以以迭代的方式去处理一个项目。这些模型都表达了各自美好的愿望和期待,但是遗憾的是软件开发过程实在不容易能将其所有的特性都集中起来再给出一个完美的表达,也没有一个实际的开发过程可以完全实现这些美丽的愿景。但是如果能够抓住每个模型的核心思想,并且在实际的开发过程中加以注意和把握,这对软件开发过程的改进以及更优秀的软件生命周期模型的建立而言都是有极大的帮助的。就像我们可以从各个模型中找到几个关于软件开发过程的关键词语:易管理、关注客户、动态、规范、效率、迭代等等。软件开发过程是一个极其复杂的生产过程。2.1.4 传统软件生命周期模型的弊端传统的软件生命周期模型以“瀑布模型”为例,它的开发模式都是以假定每个开发阶段的开始都是在上一个阶段的任务完全完成之后才进行的,而且各个阶段之间的衔接非常完美,让人一看就觉得这是一个合理、高效的开发模式。定义时期问题定义需求分析系统设计编码测试维护维护时期可行性报告需求规格说明书系统设计文档程序代码开发时期图 2.2瀑布模型示例图但是经过20多年的开发实践经验证明,传统的软件生命周期模型开发方式有很大的缺陷。软件开发过程是一个极其复杂的生产过程,并且由人承担生产的操作,有非常多的因素会影响到工程项目的成败。而且,一次的软件开发往往需要许多不同背景的个人和团队参与到其中,更增加了复杂性。在软件开发的生命周期过程中,每个阶段并不会像模型中所描绘的那样简单自然,而是互相交错呈现动态循环的特点,如图2.3所示。在软件生产的每一个阶段中,都或多或少会留下一些隐患和错误,包括分析上的、编程过程中的、测试过程中的失误。依据传统软件生命周期模型模式进行开发,往往会有很大的风险,如果等到系统测试时甚至交付时突然发现了重大问题,这时的返工就会造成人力、物力、财力、时间上的巨大损失。4问题定义需求分析系统设计编码维护测试图 2.3实际开发过程示例图在以上所发生的情况基础之下,提出了基于增量迭代思想以及结合了各模型优点的RUP。2.1.5 “统一软件开发过程”模型RUP图 2.4RUP统一软件开发过程生命周期示例图RUP即为“统一软件开发过程”,它是一个面向对象的并且基于网络的程序开发方法论,在大型的信息项目中逐渐得到广泛的应用。它是目前开发大型系统的主流软件开发过程。5RUP最大的特点就是它采用了增量迭代软件生命周期模型的思想。它强调了软件开发不可避免是一个增量迭代的过程。增量是指系统可以根据需要分成模块在不同的生产周期中分步进行实现,而迭代是指系统的某一模块在一次生产周期中无法完整实现,需要经过多次开发进行完善。每一次的增量和迭代过程,都包括完整的需求、设计、编码、测试阶段,而且完成一个过程之后,系统都是一个可以交付的原型。从这一点上可以看出,“瀑布模型”中阶段性划分和阶段推进的思想还是有其基础性的意义的。一个完整的项目需要经过多次的增量和迭代,并且在每一次不同生产周期的生产过程中,需求、设计、编码、测试阶段工作的比重是不同的。RUP对项目的管理者和系统的设计者要求非常高,所以比较适合大型项目的开发。而对于小型项目而言,可以减少增量迭代的次数,甚至只需要一个生产周期就可以实现项目。2.1.6 固有的缺陷尽管软件开发过程已经有许多的模型和方法辅助,但是软件开发过程本身有模型所不能完全表达出来的一些固有缺陷,而这些生产中的缺陷是我们所熟知的:1、在软件项目一次生产周期的开发过程中,总是会发生开发目标的丢失、偏离现象,并最终导致产品与客户的意愿产生了较大的偏差。2、在软件项目的开发过程中,总是免不了开发内容在意料之外的调整和变更。而恰恰这些意料之外的情况给整个开发过程带来了很大的阻力。3、软件开发团队中各职能的目标并不一致,这也给软件开发的顺利进行带来了一定的阻力。当软件应用到社会环境中时,软件行业需要与其它的各行各业打交道。在软件生产过程中,软件开发越来越重视客户的需求,然而恰恰很多时候,许多软件特别是专用的软件产品并不能满足客户的需求,很难做到恰到好处。6在软件开发过程中,需求阶段是客户与软件生产的桥梁阶段,是开发过程中转换和传递客户需求的重要环节,起到极为重要的作用。然而结合RUP模型的产生的原因,以及实际的项目开发经验,我们已经很清楚地了解到需求工作难以一步到位。不仅如此,开发过程中的这些缺陷也正反应了需求在整个软件开发的实际过程中所表现出的一些特质:1、需求递减效应。2、需求的增、删、改变化。3、需求定位和认知的缺失。这里的需求主要指客户所表达的需求,是需求分析中的需求对象,是开发的目标和内容。课题以软件开发过程中的需求问题作为实际的切入点,并在后面的内容中展开一些分析,对软件开发过程提出一些看法和建议。2.2 软件开发过程的问题1、需求在软件生命周期不同阶段的传递中会发生递减效应。需求文档产品开发过程图 2.5需求递减示例图2、需求本身在开发过程中也会发生增加、删除、修改等变化。需求A(被取消)需求B需求A需求A+图 2.6需求变更示例图3、需求定位和认知的缺失。2.2.1 需求递减效应需求的递减有很多的原因,为此作者专门画了几幅图以表示其中的现象。假设在需求明确的情况下:1、需求分析人员关注细节,但开发人员没办法把握开发内容。如图2.7所示。图 2.7开发人员理解不了需求示例2、需求人员模糊定义,导致开发人员理解错了需求。如图2.8所示。图 2.8开发人员理解错了需求示例3、需求人员有自己的想法,开发人员也有自己的想法。如图2.9所示。图 2.9开发人员有自己的理解示例总结:图2.7、图2.8、图2.9表现的是需求传递过程中经常发生的问题。需求在传递的过程中递减了,这是客观存在的现象,表明人与人之间对同一事物的理解是不一样的。但这还仅仅只是在需求明确的情况下。更多的时候客户对软件的需求是模糊的,甚至没有一点概念,就更容易发生递减的情况。2.2.2 需求增、删、改变化课题中所提到的需求增、删、改变化,不是开发人员设计中的变化,而是设计之外的变化。比如:软件环境的突然改变,客户意愿的突然改变,业务规则发生变更。这些情况对于一些专业软件系统尤其是电子商务软件系统而言是非常常见的,而对于一些通用性的软件来说则相对会少一些。7需求增删改变化所描绘的是一个动态的需求,而增量和迭代开发模式所描绘的是一个静态的需求。在开发过程中使用增量和迭代可以实现对一个静态需求的逐步掌握,只要时间足够方式得当,就有完全掌握一个需求的可能。而动态的需求是开发人员始料未及的,是会变更的,开发人员根本没有足够的时间去掌握。有时候,开发的节奏必须要跟上客户和环境的需求变化。删除资金业务银行接口对接增加事务流程文档管理财务模块修改事务批量处理会员管理优化会员转VIP模块查询优化增加季报表增加年报表网站规则更改增加业务模块图 2.10需求文档堆积示例需求与数据一样,有着变化的特点。但课题中所提到的变化并不是需求本身因为分析过程中的不完全而导致的,而是客户的意愿和客观的环境随时会发生变化而影响到需求。需求的增、删、改特点具体表现在:1、对于系统的某个模块而言,需求不单单是增加,而且还有删除和修改的变化。2、对某单一需求而言,在开发的过程中也会发生增、删、改的变化。3、增、删、改无法避免。所以在整个软件开发的过程中,从需求的提出,到编码的实现,再到产品的测试,是一个动态变化的过程;从某一模块的建立实现并投入使用,再到发生变化需要更改,也是一个动态变化的过程。需求的增、删、改会对开发流程和项目最终产物产生重大的影响。图2.10也同样显示了在一个项目里,需求常常会缺乏有效的管理和组织归类。软件项目在不断的扩展中,需求的增、删、改变化都会对从前的既定的规则造成影响。如果不进行有效的管理和归类,需求文档很容易形成恶性的堆积,到了特定的情况下,会极大地拖慢软件工程的进度,特别是对大型软件系统。需求的这一变化,使得整个软件开发过程不是那样地静态,而是多重交互的。2.2.3 需求认知和定位的缺失在现在软件行业中,几乎所有的人都已经知道需求的重要性,并且也知道开发要符合需求设计,但是对于需求阶段的工作许多的公司和开发团队却没有一个准确的定位。人们常常认为需求的工作只是一个从客户那获取需求,产生需求文档的过程。只要能完整地获取到客户的需求,产生需求文档之后,开发人员按照文档的要求执行就可以了,然而事实上在生产的过程中很多的问题都会发生,这些问题的答案有时候并不是除了是就是非,需要调节和控制。软件开发生命周期具有完整性、统一性的特点,有时候一些小问题也能牵一发而动全身。还有一些具体的表现:1、人们往往注重如何从客户那获取完整的需求,却忽略如何在团队中传递需求和目标。2、开发人员虽然依据需求规格进行程序设计和编码,但最终产品却没有满足需求。开发人员很容易只做表面功夫。3、各职能人员对需求的认识和了解并不充分也不积极,有些盲目性。2.3 软件开发过程问题分析2.3.1 需求递减效应分析需求的传递递减问题,除了客户与开发人员交流原因之外,有其本质的原因:一、人作为需求传递者的缺陷。1、需求无法完整表达。2、需求无法被完整理解。需求在客户的心里有可能有两种情况,一个是清楚地知道需要什么,另一个是自己并不清楚需要什么。但无论是清楚或是不清楚,客户在表达需求的时候,常常不能完整地表达出来的。而需求人员在理解需求的时候,虽然可能和客户经过一系列的讨论并且基本掌握了需求的内容,但也会存在自己所理解的需求不能完整地表达出来的情况。同理,需求分析人员对客户需求的理解以及开发人员对需求分析人员需求描述的理解都会存在无法完整理解的可能。即便是需求文档,开发人员也会存在片面理解的情况。这样,需求经过一出一进,再一出一进,势必会打很大的折扣,特别是在一些并不明确的需求上面。二、不同的专业领域对同一事物的理解能力存在差异。1、客户熟悉业务流程不熟悉软件环境。2、研发人员熟悉软件环境部熟悉客户业务。软件客户往往是来自不同于计算机领域的其它领域,他们对自己领域、行业的行为和业务非常熟悉,但是他们并不知道如何将自己的业务实现电子信息化。但这并不是最重要的原因。软件行业已经成为了其它行业信息化和自动化的支持,但是软件开发人员自身还非常缺乏行业应当具备的素质,不知道现在开发所面对的已经不仅仅是一个程序,而是一个实际的业务或行为对象。这导致了许多的程序员对自己所研发的对象不关心也不愿意去了解,这样就无法达到客户要求的高度。许多时候,开发人员本身开发任务就比较重,如果还需要花时间去更好地了解和掌握某个业务,这对开发人员来说是个很大的负担,所以程序员往往会把这些责任全都托付给需求分析员。事实上,开发人员没有掌握好开发对象,就做不好一件软件产品。三、开发人员丢失了客户的目标。开发人员专注于系统的功能,却忽略了功能是为业务和人物行为服务的。开发人员在做设计、编码和测试的时候,很容易受到文档描绘的局限,而将目光都注视到功能上,而不是关注客户提出这个需求背后的原因和目标。这样一来,就会出现开发人员根据功能去臆想客户的目标,结果使得做出来的东西跟客户想要产生了很大的差距。四、需求的递减效应无法完全避免。以上的情况几乎是无法避免的,这就使得需求的递减也是无法完全避免的。2.3.2 需求增、删、改变化分析需求的增删改变化体现了:一、许多需求是动态的。动态的需求更新了我们在传统意义上对需求的理解。这表明不仅软件开发要受到软件环境的影响,软件开发的对象也会受到对象自身环境的影响。现在,越来越多的软件项目在不同程度上受到业务、客户和环境的制约。软件项目越来越与项目所在的领域相关联,呈现出软件项目不仅具有软件的特性,还具有不同专业的不同特性。二、需求增删改变化在不同的软件产品中表现程度是不一样的。三、需求的增、删、改问题,同样也是无法完全避免的。但需要注意两种不同的变更情况:1、非开发过程需求的变更。2、开发过程中需求的变更。情况1和情况2的特点不同。非开发过程需求的变更是发生在既有的需求完成之后,不会打乱正常开发流程。而开发过程中需求的变更,是开发过程中的变更,会打乱正常的开发流程。在开发过程当中,常常会因为许多特殊的原因而需要改动产品的规格,这些改动势必会导致流程的回归。流程回归在一般的软件生命周期模型中并没有得到有效的体现,因为在实际实施过程中它是比较乱的。开发过程中需求的增删改变化,是导致软件开发过程呈现动态特征的主要原因。10问题定义需求分析系统设计编码维护测试图 2.11实际开发过程示例图2.3.3 需求认知和定位的缺失分析如果要分析需求的认知和定位问题,就必须认识到需求阶段在整个软件生命周期重要性。想要从一个宏观的角度来看整个软件生命周期,必须回到它的演化过程中来。92.3.3.1 软件开发的初期研发过程编码图 2.12软件开发初期示例图软件开发初期的核心就是编码,因为编码是唯一产生软件的过程。所以如图2.12所示,在软件生命周期诞生的最初,编码是就是生产的全部。2.3.3.2 软件开发的渐进研发过程编码简单测试图 2.13软件开发渐进示例图如图2.13所示,研发过程中,测试阶段逐渐突显出来。测试阶段的加入,是永远无法避免的,也是极其自然的。因为生产的目的就是为了使用,而测试的核心就是模拟使用。这与任何性质的生产都是适用的。所以测试与编码是天生的一对。2.3.3.3 软件开发的发展编码编码简单测试研发过程编码简单设计简单测试图 2.14软件开发发展示例图设计不是突然出现的,而是到了特定成熟的阶段开始独立出来。当软件自身发展到一定规模的时候,设计的作用逐渐突显出来。它的突出,在一定程度上是为了弥补人类固有能力的不足,比如说人大脑的运算能力、存储能力、记忆能力、逻辑表达都是有限的,无法表达和实现更多更大的内容。设计阶段会产生设计文档,而设计文档就可以帮助存储设计思路,也可以更好表达和传递设计思想。设计阶段的目的是为服务生产的,设计阶段的产物就是未成形的概念产品。2.3.3.4 软件开发的成长持久化研发过程维护设计编码测试图 2.15软件开发成长示例图产品的持久化是每一个设计产品的设计师的目标导向,这是永恒的定义,是人类内心深处的渴望,是一个创造者与生俱来的母性。维护产品的核心目的就在于使产品得以持久,即便它并不具有商业价值。维护阶段的出现,表明产品的生产过程已经趋于成熟,生产出来的成品已经有效用,具有可以长期使用的价值。维护阶段是产品与使用者的第一座桥梁,只是这座桥梁还不完整,只出不进。在它刚出现的时候,软件维护的作用其实并不突出,人们也没有意识到维护是多么重要的一件事。直到现在,人们已经知道它占去了软件生命周期中极大的比重,甚至高过整个开发的过程。2.3.3.5 软件开发的机遇软件目标持久化研发过程维护设计编码测试需求图 2.16软件开发机遇示例图终于,当软件作为成熟的产品开始进入市场,它便具有了独立的商业价值。这时候,软件产品面向的将是大部分陌生的面孔,它将不再仅仅为设

    注意事项

    本文(软件生命周期模型应用的深度挖掘硕士毕业论文.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开