2022年软件开发流程及周期 2.pdf
什么是软件?软件是计算机程序、各种相关的文档和数据的集合。具体地说 ,它包括以下几部分: 1.程序 :能以预期的性能执行预期功能的一段指令; 2.数据 :便于程序操纵信息的数据结构; 3.文档 :记录了程序的操作和使用的文档“软件工程”一词是1968 年北大西洋公约组织组织的专门讨论解决“软件危机”的国际会议上正式提出并使用的。软件工程是指导计算机软件开发和维护的一门工程学科。它以“工程化”的思想来开发与维护软件。IEEE 给出软件工程的定义是:将系统的、 规范的、 可度量的工程化方法应用于软件开发、运行和维护的全过程及对上述方法的研究。软件工程 =质量保证 +过程 +方法 +工具什么是软件过程?一般,开发软件时,需要画出路线图,指导操作者按一定顺序和步骤创建适时的、高质量的软件产品。开发软件产品遵循的路线图就称为软件过程。质量保证是指为使软件产品符合规定需求所进行的一系列有计划的必要工作。质量是推动软件过程不断改进的动力。方法层提供了软件开发的各种方法。工具层为软件工程方法和过程提供了自动和半自动的支撑环境。软件生命周期各个阶段基本任务1、软件定义时期1)问题定义:确定 “ 要解决的问题是什么” 。阶段结果,产生出:问题定义报告。问题定义报告是系统分析员简要地写出关于问题性质、工程目标和工程规模的书面报告。2)可行性研究:回答 “ 上一个阶段所确定的问题是否有行得通的解决办法”。阶段结果,产生出:可行性研究报告。3)需求分析:任务是确定系统必须具备哪些功能。回答 “ 目标系统必须做什么?阶段结果,产生出:需求规格说明书在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础。因此,必须准确完整地体现用户的要求。2、软件开发时期1)概要设计(也称总体设计):关键问题是“ 怎样实现目标系统”。回答 “ 如何解决该问题?” ,即系统 ” 怎样做? “任务是确定系统的总体结构、外部接口、 模块的划分、 模块的功能及数据库设计。阶段结果,产生出:概要设计说明书。2)详细设计:把解决方法具体化,关键问题是“ 怎样具体地实现目标系统”。解决每个模块内部算法和数据结构。阶段结果,产生出:详细设计说明书3)编码和单元测试: 根据设计说明书中每一个模块的流程选取一种适当的高级程序设计语言,写出正确的、 容易理解而且容易维护的程序代码, 并仔细测试每一个模块。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 阶段结果,产生出:无语法错误的源程序4)综合测试: 是通过各种类型的测试及相应的调试使软件达到预定的要求。最基本的是集成测试和验收测试。集成测试是把经过单元测试的模块按某种选定的策略装配起来,在装配过程中进行必要的测试。验收测试是按照需求规格说明书的规定,有用户或在用户参与下对目标系统进行验收。阶段结果,产生出:测试报告。3、运行维护时期运行维护阶段:是软件生存周期最后一个阶段。关键任务是: 通过各种必要的维护活动使系统持久地满足用户的需求。主要是改正软件系统在使用过程中发现的隐含错误,扩充在使用过程中的新的功能要求;阶段结果,产生出:软件系统的问题报告和软件修改报告(记录发现软件错误的情况以及修改软件的过程)。按工作量从大到小排列,依次为:(1)完善性维护指在使用软件系统的过程中为满足用户提出的新功能和性能要求而进行的维护活动。它约占总维护活动的50%。(2)纠错性维护诊断和改正在使用过程中发现的软件错误。这部分维护工作约占全部维护活动的25%。(3)适应性维护由于计算机技术的飞速发展,外部设备和其他系统元素经常改进和变化,为适应变化的环境而修改软件的活动称之为适应性维护。它占总维护活动的18%21%。(4)预防性维护为进一步改进软件的可维护性、可靠性而进行的维护活动,约占 4%。1.5 几种典型的软件开发模型瀑布模型快速原型模型增量模型螺旋模型统一过程模型瀑布模型的特点瀑布模型具有顺序性和依赖性,即后一阶段的工作必须在前一阶段的工作完成后才能开始。瀑布模型强调的是优质,即每一步都循序渐进,及早消除隐患, 从而保证软件质量。强调两点:文档、复审它的致命缺点在于“单向性”只有做出精确的需求分析,才能取得预期的结果。由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。太理想化 ,不够灵活1.6 软件开发方法简述)结构化方法自 70 年代以来,结构化方法得到了广泛的应用和普及。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 该方法是一种面向数据流的开发方法,其实质就是功能分解和抽象。结构化方法包括结构化分析(SA)、结构化设计(SD) 和结构化程序设计(SP)。作为图形表示方法有数据流图、模块层次结构图、程序流程图,PAD 图等。) 面向数据结构的软件开发方法Jackson 方法是一种面向数据结构的设计方法,它从目标系统的输入、输出数据结构图入手,导出程序结构,并在此基础上进行详细设计和编程。3)面向对象软件开发方法面向对象方法学是20 世纪 90 年代发展起来的软件分析设计方法。面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。随着 OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT (Object Modelling Technique )3)面向对象软件开发方法(续)该方法把客观世界的事物或实体都看成对象,把对象作为分析设计的基本元素,把所有对象都划分成对象类,类可以派生和继承,对每个对象类都定义一组数据(属性 )和方法 (行为 )。OO 技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破,大大缓解了软件危机。软件质量的评价从以下几方面对软件作评价:1可维护性2可靠性3可理解性4效率一般,在软件系统整个开发期间,必须成立软件质量保证小组负责质量保证工作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -