全套课件·《软件开发流程实训教程》1_第1页
全套课件·《软件开发流程实训教程》1_第2页
全套课件·《软件开发流程实训教程》1_第3页
全套课件·《软件开发流程实训教程》1_第4页
全套课件·《软件开发流程实训教程》1_第5页
已阅读5页,还剩468页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件开发流程实训教程第1章 软件开发项目的前期准备 【本章引言】 软件开发在整个计算机软件的生存周期中是最重要的一环。如何高效、高质的开发成功的软件产品一直是软件工程师们一直追求的目标。经过半个多世纪的研究与探索,人们在计算软件开发领域已经积累了丰富的经验与成果。【教学目标】掌握计算机软件的概念与计算机软件的基本分类;掌握软件生存周期划分与相关档案 的内容;掌握常用软件开发模型;掌握计算机软件开发方法。第一章 软件开发项目的前期准备 1.1 计算机软件概述 1.2 软件的生存周期 1.3 软件开发常用模型 1.4 软件开发方法和软件开发工具 1.1 计算机软件概述 1.1.1 计算机软件概念

2、1.1.2 软件的分类 1.1.3 软件工程的历史及发展 1.1 计算机软件概述 软件是一个完整的计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。1.1.1 计算机软件概念 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 计算机软件是指计算机程序以及解释和指导使用程序的文档的总和。计算机程序包括源程序和目标程序。 1.1.1 计算机软件概念 源程序是指用高级语言或汇编语言编写的程序,目标程

3、序是指源程序经编译或解释加工以后,语言编写的程序,目标程序是指源程序经编译或解释加工以后可以由计算机直接执行的程序。 文档是指用自然语言或者形式化语言所编写的文字资料和图表,用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法。1.1.1 计算机软件概念 软件开发的特点是: (1)由于软件并不是实际存在的物理形态 它是一种抽象的逻辑过程,是一种逻辑实体,这个特点使它与其它工程对象有着明显的差异。人们可以把它记录在纸上、内存、和硬盘、光盘上,但却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解它的功能、性能等特性。 1.1.1 计算机软件概念 (2) 软件的生产

4、过程也非常特殊,同我们传统意义里的普通工厂里的加工不同的是,软件更像是一种纯粹的脑力劳动,同第一个特点一样它没有明显的物理加工过程。 (3) 由于软件产品其实是一种抽象的逻辑存在,所以在软件的运行和使用期间,没有硬件那样的机械磨损,设施老化问题。 1.1.1 计算机软件概念 任何物理设备在运行和使用中,都有一个大致趋势相同的失效率曲线。即为如图1-1(a)所示的型曲线(即浴盆曲线)。在这个曲线里边我们可以看出随着使用时间的增加设备的失效率主要是由磨损用坏造成的。而软件的情况与此不同,由于其固有的特性,本身不存在磨损和老化问题,即便是他的载体出现型曲线,软件本身仍然可以便利的移到另一台载体上边。

5、然而同物理设备不同的是它存在退化问题,说着时间的增加,软件本身会出现落伍的现象,因此必须要对软件本身进行一次或多次修改(维护), 如图1-1(b)所示。而这些修改又不可避免的引入错误,导致软件失效率升高,从而似的软件退化。当修改的成本变得难以接受时,软件就被抛弃。 1.1.1 计算机软件概念图1-1 计算机软件失效率曲线1.1.1 计算机软件概念 (4) 软件的开发和运行不是完全由软件本身的技术实现的,它常常还受到计算机系统的限制,对计算机系统有着不同程度的依赖性。软件对硬件和环境有着不同程度的依赖性。这导致了软件移植的问题1.1.1 计算机软件概念 (5) 软件本身是一件结构非常复杂的产品。

6、 软件的复杂性来自于两个方面: 一是来自它所反映的实际问题的复杂性(即需要解决问题的复杂性) 二是来自软件本身设计程序逻辑结构的复杂性 1.1.1 计算机软件概念(6) 软件的成本问题。 软件开发成本主要指软件开发过程中所花费的工作量及相应的代价。 另外,软件也没有一个明显的制造过程,它的开发成本是以一次性开发过程所花费的代价来计算的。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本是比较高的。1.1.1 计算机软件概念 (7) 软件开发出来时要给“人”使用的,所以软件不可避免地要具备人的社会属性。 相当多的软件工作涉及到社会因素。许多软件的开发和运行涉及机构、体制及管理方式等

7、问题,甚至涉及到人的观念和人们的心理。这些问题都将直接影响项目的成败。 1.1.2 软件的分类 软件是计算机的灵魂,没有软件的计算机就如同没有磁带的录音机和没有录像带的录像机一样,与废铁没什么差别。它使计算机具有非凡的灵活性和通用性。 也正是这一原因,决定了计算机的任何动作都离不开由人安排的指令。1.1.2 软件的分类 1.按软件的功能进行划分: 一般把软件按功能分为两大类:应用软件和系统软件。(1)应用软件(2)系统软件 1.1.2 软件的分类(1)应用软件 应用软件是专门为某一应用目的而编制的软件,较常见的有以下几种:文字处理软件 用于输入、存贮、修改、编辑、打印文字材料等,例如WORD、

8、WPS等;信息管理软件 用于输入、存贮、修改、检索各种信息;辅助设计软件用于高效地绘制、修改工程图纸,进行设计中的常规算,帮助人寻求好设计方案;实时控制软件用于随时搜集生产装置、飞行器等的运行状态信息,以此为依据按预定的方案实施自动或半自动控制,安全、准确地完成任务。1.1.2 软件的分类(2)系统软件 代表性的系统软件有:操作系统管理计算机的硬件设备,使应用软件能方便、高效地使用这些设备。在微机上常见的有:DOS、WINDOWS、UNIX、OS/2等;数据库管理系统有组织地、动态地存贮大量数据,使人们能方便、高效地使用这些数据。现在比较流行的数据库有FoxPro、DB-2、Access、SQ

9、L-server等;编译软件CPU执行每一条指令都只完成一项十分简单的操作,一个系统软件或应用软件,要由成千上万甚至上亿条指令组合而成。 1.1.2 软件的分类 2.按软件规模进行划分: 根据所完成任务的不同以及开发任务、投入资金等因素,软件也可以按照规模来划分。(1)微型软件:这类软件一般只需要一个人几天即可完成,软件只有几K到几十K大小。由于规模很小,软件测试也极为容易;1.1.2 软件的分类(2)小型软件:这类软件一般由十人以内在半年内完成,开发前需要进行完整的开发设计。软件一般有几百K到十几M。完成时需要进行软件测试工作,但测试工作相对比较容易;(3)中型软件:中型软件一般由十几个人甚

10、至几十个人开发,开发工作比较复杂,时限为半年至一年。软件大小一般有几十M。对于这种规模的软件软件测试十分必要。要进行严格的可行性分析,开发设计等工作;1.1.2 软件的分类(4)大型软件:这类软件一般由几十人开发,开发工作十分复杂,时限为1年甚至两年以上。软件大小上百M甚至几百M。这类软件开发前要进行详细可行性分析、需求分析、开发设计等工作,软件测试要贯彻在开发全过程。这类软件交付使用后往往还要进行一次甚至多次维护升级工作;(5)超大型软件:这类软件开发人员一般超过百人甚至几百人开发,开发工作十分艰辛,开发时限一般在2年以上,这类软件小则几百M,大则甚至几G。 1.1.2 软件的分类 3.按软

11、件工作方式划分:(1)实时处理软件:指在事件或数据产生时,立即予以处理,并及时反馈信号,控制需要监测和控制的过程的软件。主要包括数据采集,分析,输出三部分;(2)分时软件:允许多个联机用户同时使用计算机;(3)交互式软件:能实现人机通信的软件;(4)批处理软件:把一组输入作业或一批数据以成批处理的方式一次运行,按顺序逐个处理完的软件。1.1.2 软件的分类 4.按软件服务对象的范围划分:(1)项目软件:也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。例如军用防空指挥系统、卫星控制系统;(2)产品软件:是由软件开发机构开发出来直接提供给市

12、场,或是为千百个用户服务的软件。例如,文字处理软件、文本处理软件、财务处理软件、人事管理软件等 1.1.3 软件工程的历史及发展 软件工程(Software Engineering,简称为SE) 是针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。1.1.3 软件工程的历史及发展 1.软件工程的含义 “软件工程”是科学和数学的某种应用,通过这一应用,使计算机设备的能力借助于计算机程序、过程和有关文档成为对人类有用的东西。 软件工程的成果是为软件设计和开发人员提供思想方法和工具,而软件开发是一项需要良好组织,严密管

13、理且各方面人员配合协作的复杂工作,软件工程正是指导这项工作的一门科学。 1.1.3 软件工程的历史及发展 软件工程应该包括哪些知识?IEEE在软件工程知识体系指南(SEWBOK:Guide to the Software Engineering Body of Knowledge 2004Version)中这样定义: 软件开发、实施、维护的系统化、规范化、质量化的方法的应用,也就是软件的应用工程; 对上述方法的研究。1.1.3 软件工程的历史及发展 2.软件开发的三个历史阶段:第一个阶段是二十世纪50年代到60年代,是程序设计阶段,基本是个体手工劳动的生产方式。第二阶段是二十世纪60年代到70

14、年代,是软件设计阶段,小组合作生产方式。 第三个阶段是从二十世纪八十年代止今,为软件工程时代 ,是工程化的生产方式。 1.1.3 软件工程的历史及发展 3.软件危机 早期出现的软件危机主要表现在: (1)软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。 (2)软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人; (3)生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。 1.1.3 软件工程的历史及发展 进入80年代以来,尽管软件工程研究与实践取

15、得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。危机不仅没有消失,还有加剧之势。主要表现在: (1)软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。 (2)软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。1.1.3 软件工程的历史及发展 IBM360操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。出现这种现象的主要原因是: (1)用户需求不明确。软件开发过程中,用户需求不明确问题主要体现在四个方面:在软件开发出来之前,用户自己

16、也不清楚软件开发的具体需求;用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;软件开发人员对用户需求的理解与用户本来愿望有差异。1.1.3 软件工程的历史及发展 (2)缺乏正确的理论指导。缺乏有力的方法学和工具方面的支持。由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。 (3)软件开发规模越来越大。随着软件开发应用范围的增广,软件开发规模愈来愈大。大型软件开发项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件开发系统的经验,而

17、多数软件开发人员又缺乏管理方面的经验。 (4)软件开发复杂度越来越高。软件开发不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加. 1.2.1 软件生存周期及各阶段的工作 1.2.2 软件生存周期各阶段的文档编制 1.2 软件的生存周期 1.2.1 软件生存周期及各阶段的工作 软件生存周期的各个阶段的划分并没有一成不变的法则,不同的开发方式、软件种类、软件规模和开发环境都会在不同程度上影响软件生存周期各阶段的划分,但无论最终把生存周期如何根据自己的实际情况进行划分,都是旨在更好的利用手中的资源(主要指人力资源、软件资源、技术资源和源码资源),降低软件的开发风险、复杂度和开发成本(主要以开

18、发的时间和投入资源为衡量标准),要做到最好的对软件生存周期各阶段进行划分,就必须遵循一条基本的原则,那就是在各阶段的任务应尽可能的相对独立,同一阶段各项任务的性质应尽可能的相同,从而达到降低每个阶段任务的复杂度,减少不同阶段任务之间的联系。这样作对软件项目开发的组织管理是十分有必要的,同时对最终的软件项目开发成功是不可或缺的。 既然软件开发周期这么重要,我们想要软件项目最终开发取得成功或是对软件进行管理和资源投入,我们就应当充份的了解周期里各个活动的定义和任务,才能合理,准确,客观的安排每一阶段的工作,以下就对各种活动的定义和任务做一下简单介绍,使之对它们有一个初步的了解。 1.2.1 软件生

19、存周期及各阶段的工作 1.2.1 软件生存周期及各阶段的工作 1.可行性分析和项目开发计划 这两个活动通常被整合在一起进行,在实际工作中通常把它们归类到同一个阶段中。 在这个阶段中经验起到了决定性的作用,接下来的任务就是制定详细的项目开发计划,项目开发计划主要根据所开发的项目的目标、性能、功能、规模来确定所需的资源,主要包括三个方面,即硬件资源、软件资源和人力资源,除此之外还有对项目的开发费用,开发进度做出估计,可供决策者和用户参考。 至此,本阶段的工作任务已基本完成,这时候系统分析员应将可行性报告和项目开发计划一并提交管理部门审查。 1.2.1 软件生存周期及各阶段的工作2.需求分析 需求分

20、析的难点主要体现在以下几个方面:(1)问题的复杂性;(2)交流障碍;(3)用户对问题的陈述不完备性和不一致性;(4)需求易变性。 1.2.1 软件生存周期及各阶段的工作 针对需求分析人们提出了许多解决方法和自动化分析工具,如结构化分析方法和面向对象分析方法,CASE技术等等。解决问题的方法有许多,但都要遵循一些基本的原则: (1)可以把一个复杂问题按照某种分解方式进行分解并可逐层细化; (2)必须能够表达和理解问题的数据域和功能域; (3)必须具有良好的模型建立能力,能够准确的把问题用“图表”的形式表达出来。 1.2.1 软件生存周期及各阶段的工作 其实最终的目标就是为了用户的需要,回答这个系

21、统要“做什么”的问题。具体如下: (1)问题识别 功能需求 性能需求 环境需求 用户界面需求 (2)分析与综合,导出软件的逻辑模型 (3)编写文档 1.2.1 软件生存周期及各阶段的工作3.概要设计 概要设计的基本任务如下: (1)设计软件系统的逻辑结构。(2)设计软件所需要的数据库系统 (3)编写概要设计文档 (4)评审 软件概要设计的几个基本原理:(1)抽象 (2)信息隐蔽(3)模块化 1.2.1 软件生存周期及各阶段的工作4.详细设计 程序员会根据这些过程描述来编写程序代码,具体如下: (1)为每个模块进行详细的算法设计。这是需要用相应的工具来完成的,因为自然语言通常很容易具有“二义性”

22、,而工具能做到含义唯一性;(2)为模块内的数据结构进行设计;(3)对数据库进行物理设计。注意这不是实现数据库,而是设计出数据库的具体物理结构;(4)其它设计(前期特殊代码设计、I/O格式设计、界面友好设计等);(5)编写详细设计说明书;(6)评审。 1.2.1 软件生存周期及各阶段的工作5.编写代码 6.软件测试 7.软件实施8.软件维护 软件的维护一般的流程如下: (1)确定维护的类型;(2)对校正性维护要从评价错误的严重性开始; (3)对适应性维护和完善性维护可以视业务繁忙情况而定,也有条件制定比较完善的维护计划; (4)实施维护工作,要确保维护是必要和安全的; (5)维护回顾,看看有没有

23、什么地方做的不对或遗漏的; (6)编写详细的维护日志。 1.2.2 软件生存周期各阶段的文档编制软件生存周期各阶段交付文档如表1-1所示:1.可行性研究报告 8.用户手册2.项目开发计划 9.操作手册3.软件需求说明书 10.模块开发卷宗4.数据要求说明书 11.测试计划5.总体设计说明书 12.测试分析报告6.详细设计说明书 13.开发进度月报7.数据库设计说明书 14.项目开发总结报告文档可行性研究与计划需求分析总体设计详细设计系统实现集成测试确认测试使用与维护1 可行性研究报告YNNNNNNN2 项目开发计划YYNNNNNN3 软件需求说明书NYNNNNNN4 数据要求说明书NYNNNN

24、NN5 测试计划NYYNNNNN6 总体设计说明书NNYNNNNN7 详细设计说明书NNNYNNNN8 数据库设计说明书NNYNNNNN9 模块开发卷宗NNNNYYNN10 用户手册NYYYYNNN11 操作手册NNYYYNNY12 测试分析报告NNNNNTTN13 开发进度月报YYYYYYYN14 项目开发总结NNNNNNYY15 维护记录NNNNNNNY表1-1 软件生存周期各阶段交付文档【说明】:表1-1中前14类文档是国家标准软件产品开发文件编制指南所建议的。 1.3 软件开发常用模型1.3.1 瀑布模型 1.3.2 增量模型 1.3.3 螺旋模型 1.3.4 变换模型 1.3.5 喷

25、泉模型 1.3.6 智能模型 1.3.7 WINWIN模型 1.3.8 原型实现模型 1.3.9 RAD模型 1.3.10 并发开发模型 1.3.11 软件开发常用模型小结 1.3.1 瀑布模型采用瀑布模型的软件过程如图1-2所示。图1-2 软件生存周期的瀑布模型 1.3.2 增量模型采用增量模型的软件过程如图1-3所示。图1-3 采用增量模型的软件过程 1.3.3 螺旋模型图1-4 螺旋模型螺旋模型沿着螺线旋转,如图1-4所示 1.3.3 螺旋模型采用螺旋模型的软件过程如图1-5所示图1-5 采用螺旋模型的软件过程 1.3.4 变换模型采用变换模型的软件过程如图1-6所示图1-6 采用变换模

26、型的软件过程 1.3.5 喷泉模型采用喷泉模型的软件过程如图1-7所示图1-7 采用喷泉模型的软件过程 1.3.6 智能模型采用智能模型的软件过程如图1-8所示图1-8 采用智能模型的软件过程 1.3.7 WINWIN模型采用WINWIN模型的软件过程如图1-9所示图1-9 采用WINWIN模型的软件过程 1.3.8 原型实现模型采用原型实现模型的软件过程如图1-10所示图1-10 采用原型实现模型的软件过程 1.3.9 RAD模型采用RAD模型的软件过程如图1-11所示图1-11 采用RAD模型的软件过程 1.3.10 并发开发模型采用并发开发模型的软件过程中一个活动的示意如图1-12所示图

27、1-12 并发过程模型的一个活动1.3.11 软件开发常用模型小结软件过程模型发展经历了以下阶段:以软件需求完全确定为前提的第1代软件过程模型,如瀑布模型等。 在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现模型等。 以体系结构为基础的基于构件组装的开发模型,如基于构件的开发模型和基于体系结构的开发模型等。1.4 软件开发方法和软件开发工具1.4.1 软件开发环境1.4.2 软件开发方法综述1.4.3 软件开发工具 1.4.1 软件开发环境 软件开发环境(Software Development Environment)是指在基本硬件和软件的基础上,为支持系统软件和应用软件的工

28、程化开发和维护而使用的一组软件,简称SDE。 它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。 1.4.1 软件开发环境1.软件开发环境可按以下几种角度分类:(1) 按软件开发模型及开发方法分类,有支持瀑布模型、演化模型、螺旋模型、喷泉模型以及结构化方法、信息模型方法、面向对象方法等不同模型及方法的软件开发环境。(2) 按功能及结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件开发环境。(3) 按应用范围分类,有通用型和专用型软件开发环境。 1.4.1 软件开发环境2.对于软件开发方法的一般要求包括:

29、(1)覆盖开发全过程,并且便于在各阶段间的过渡;(2)便于在开发各阶段中有关人员之间的通信;(3)支持有效的解决问题的技术;(4)支持系统设计和开发的各种不同途径;(5)在开发过程中支持软件正确性的校验和验证;(6)便于在系统需求中列入设计、实际和性能的约束;(7)支持设计师和其他技术人员的智力劳动;(8)在系统的整个生存周期都支持它的演化;(9)受自动化工具的支持。 1.4.2 软件开发方法综述下面介绍几种流行的开发方法:1.结构化方法2.面向数据结构的软件开发方法3.面向问题的分析法4.原型化方法5.面向对象的软件开发方法6.可视化开发方法 1.4.3 软件开发工具 目前有很最多种正在使用

30、的软件开发工具,大致分为以下几种: 1.项目管理工具 2.项目需求管理工具 3.软件开发管理工具 4.代码开发工具 小 结计算机软件:是指计算机程序以及解释和指导使用程序的文档的总和。软件的分类:软件工程(Software Engineering,简称为SE):针对软件这一具有特殊性质的产品的工程化方法。软件生存周期:以需求为触发点,提出软件开发计划的那一刻开始直到软件在实际应用中完全报废为止的一个完整的周期。软件生存周期各个阶段:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编写代码、软件测试和软件维护等活动。软件开发的常用模型:瀑布模型、增量模型、螺旋模型、变换模型、喷泉模型、智

31、能模型、WINWIN模型、原形实现模型、RAD模型、并发开发模型软件开发环境(Software Development Environment):在基本硬件和软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。常用软件开发工具 习 题1.什么是计算机软件?2.软件如何分类?3.什么是软件工程?4.什么是软件生存周期?5.软件生存周期各个阶段是什么?6.软件开发的常用模型有那几种? 7.什么是软件开发环境?8.常用软件开发工具有几种?9.简述软件开发的历史。 课后实训题 实训活动1:软件开发历史不同阶段的分析 【实训目标】 了解软件开发不同历史阶段的特征。 【能

32、力培养】 做集中的积极动员; 安排课余时间收集资料完成课题; 用各种直观的方式表达信息。 【实训任务】 在不同的历史阶段,软件开发表现出不同的技术特征与开发特点。比较各个软件开发时期,了解其特征与局限。不局限于书本的内容,利用课余时间用多种方式查找资料,集思广益。 课后实训题【实训要求】以个人为单位进行分析,并完成表1-2;分组讨论。技术实现项目组织思考第一个阶段第二个阶段第三个阶段表1-2 软件开发各个历史阶段的特征及分析 课后实训题实训活动2:软件开发方法调查研究【实训目标】了解常用软件开发方法及其特点【能力培养】安排自己的任务;准重他人意见;锻炼团队合作能力;用各种直观方式表达信息。 课

33、后实训题【实训任务】 查找资料(网上、图书馆等方式),了解各种软件开发方法及其特点和局限性。【实训要求】将全班划分为若干组,每组4-7人为宜,指派或组内选出一名组长;组长在组内进行人员分工;调查研究之后组间进行交流;完成调查报告,根据调查研究情况列出不同开发方法的简介、特点及局限性等。 第2章 可行性分析【本章引言】一个准确、完整的计算机软件开发可行性分析报告对于一个软件开发项目的成功与否有着最直接的联系。软件开发可行性分析报告的正确与否直接影响着后续工作的进行。【教学目标】明确可行性分析的任务;掌握可行性分析的要素;掌握可行性分析的步骤;掌握可行性分析报告的写法。 第二章 可行性分析 2.1

34、 可行性分析的任务 2.2 可行性分析的要素 2.3 可行性分析的步骤 2.4 可行性分析报告 2.1 可行性分析的任务 越来越多的软件开发案例征明,在整个软件项目开发过程中可行性分析是一项必不可少的环节,一个软件开发项目的提出,他的起因可能是各种各样的,项目开发的提出者很多时候对这个时代的软件开发技术或是他身处社会环境的软件开发能力并不了解,对软件应用后能实现什么样的功能、达到什么目标也不能做出准确的预测,人的主观愿望与实际情况相差有时谬之千里。这时,软件开发的可行性分析就是必不可少的。 可行性分析是在建设前期对工程项目斯否可行的一种评估与考察。可行性分析的任务是明确应用项目的开发的必要性和

35、可行性。必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项工作需建立在初步调查的基础上。 2.2 可行性分析的要素 2.2.1 技术可行性分析 2.2.2 经济可行性分析 2.2.3 社会可行性分析 2.2.4 法律方面的可行性 2.2.1 技术可行性分析 一般地,技术可行性要考虑的情况包括: (1)风险分析 (2)技术分析 (3)资源分析 软件资源:主要指开发时所需的软件,如操作系统、开发工具、设计语言、辅助应用软件等等。 硬件资源:开发项目所需的硬件资源主要包括软件开人员在项目开发过程中所需要的计算机设备及相关的外围设备和项目开发成功后使用单位所应具备的计算机设

36、备和外围设备等等。 2.2.2 经济可行性分析 经济的可行性分析主要有两方面: 一是指在软件开发过程及日后维护中的花费。主要包括软件和硬件两方面。 二是指软件开发后带来的收益,即指运行后带来的收益,也指通过信息化节省的开支。 同时要对两者进行综合分析: 1.开销估算 2.收益分析 3.收益投资比 2.2.3 社会可行性分析 社会环境的可行性至少包括两种因素: 市场与政策。 市场又分为未成熟的市场、成熟的市场和将要消亡的市场。 政策对软件公司的生存与发展影响非常大。 整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争

37、不公平。政策不当将阻碍软件公司的健康发展。 2.2.4 法律方面的可行性 法律可行性要考虑的范围也是很广泛的,它们包括合同、责任、侵权、和技术人员不知道的无数其他的陷阱,关于法律问题和软件的讨论已超越本书范围,有兴趣的读者可参考相关文献。 2.3 可行性分析的步骤 可行性分析是一项非常重要的工作,在整个软件开发项目中占据非常重要的一环。 一般来讲,进行一次科学、完整的可行性分析要进行以下几个步骤: (1)确定项目的规模和目标。 (2)研究准备被取代的系统。 (3)有些时候我们要开发的系统是为了一个完全崭新的工作设计的,并没有使用的前例,这是这个步骤一般可以省略。 (4)建立新系统的高层逻辑模型

38、。 (5)建立和评价各种方案。 (6)推荐可行的方案。 (7)编写可行性分析报告。 2.4 可行性分析报告 2.4.1 可行性分析报告的格式 2.4.2 可行性分析报告范例 2.4.1 可行性分析报告的格式 可行性研究可以文档化为独立的递交给高层管理者的报告,并且可作为系统规约的附录。虽然可行性研究的格式可能变化,但下面提供的大纲覆盖了大多数主要话题。 可行性分析报告模板 1引言 1.1 目的 可行性研究报告的目的是说明实现该软件项目在技术、经济、社会条件方面的可行性;评述为了合理地达到开发目标而可能选择的各种方案;说明并论证所选定的方案。 1.2 产品定义 简要说明产品的意义、功能、类别(生

39、产性商品或消费性商品)、用户群等。 可行性分析报告模板 1.3 背景 说明软件产品或项目的来源等背景。如: (1) 开发动机的形态:根据用户需要开发还是根据公司技术的用途开发。 (2) 需要的形态:是表面需要或潜在需要。 (3) 开发的策略:战术性开发,持续时间为 1年-2年。或战略性开发。 1.4 人员 (1)公司内部人员;(2)客户单位。 可行性分析报告模板 1.5 参考资料 列出编写本报告时参考的文件、资料、技术标准以及他们的作者、标题、编号、发布日期和出版单位。 1.6 术语 列出本报告中专门的术语的定义和英语缩写词的原词组。 可行性分析报告模板2产品方案首先,把目标和要求根据和销售重

40、点的关系进行分类:(1)和销售重点有直接关联的目标和要求。(2)有助于销售重点的目标和要求。(3)提高销售重点的目标和要求。其次,把目标和关系按照和销售重点的紧密程度进行分类:(1)固定目标和要求:符合上面(1)。(2)可变目标和要求:符合上面(2)、(3)。 可行性分析报告模板2.1 销售重点销售重点是能否创造价值,是推出市场时能否有销路的关键。市场上有竞争产品时,进行对比:性能、功能方面的优点;价格上的优点;服务上的优点;其他。 可行性分析报告模板开发产品或项目带来的效益,如:人力与设备费用的减少处理速度的提高控制精度或生产能力的提高管理信息服务的改进人员利用率的改进决策准确度、启发性 可

41、行性分析报告模板2.2 理想方案从各个角度说明所建议开发软件的理想方案,如功能;性能;输入:说明系统的输入,包括数据的来源、类型、数量、数据的组织;输出:说明系统的输出,如报告、文件或数据,对每项输出要说明其特征,如用途、接口及分发对象;本系统与其他系统的关系方面要求;完成期限要求。 可行性分析报告模板2.3 具备条件说明在这项开发中给出的条件、假定和所受到的限制。如:经费、投资方面的来源和限制;法律、政策、行业方面的限制:尤其注意有无主管部门等;硬件、软件、运行环境和开发环境方面的条件和限制:如开发家用软件注意主流机型;可利用的信息和资源;系统投入使用的最晚时间:可根据竞争产品的升级时间、展

42、览会的时间等确定。 可行性分析报告模板2.4评价尺度说明对系统评价时所持的主要尺度,如:费用的多少;各项功能优先次序;开发时间的长短;使用中的难易程度。 可行性分析报告模板3对现有系统的分析(1)对其进行分析,以阐发开发新系统还是修改现有系统。(2)说明现有系统的基本处理方式;(3)列出现有系统的工作量;(4)列出现有系统的费用开支,如人力、设备、空间、支持性服务、材料等项开支总额;(5)列出为了现有系统的运行和维护所需人员的专业技术类别和数量;(6)列出现有系统所用的主要设备;(7)列出现有系统的主要问题和局限性,如处理时间缓慢、响应不及时、数据存储能力不足、处理功能不够等。 可行性分析报告

43、模板 4所建议的系统 考虑产品方案中的销售重点和理想方案,权衡现有系统和具备条件,提出建议系统方案。从各个方面进行定义,如: (1)说明所建议系统的基本方法及理论依据; (2)给出所建议系统的处理流程和数据流程; (3)说明所建议系统相对与现有系统具有的改进; 可行性分析报告模板(4)说明采用所建议系统时,预期将带来的影响,如:说明对现存系统须作的设备的修改;说明对现存系统须作的软件的修改;说明为了建立和运行所建议系统,对用户单位机构、人员的数量和技术水平等方面的全部要求;说明为了开发系统、设计和维持运行所需要的各项经费开支;说明所建议系统存在的局限性以及这些问题未能消除的原因。 可行性分析报

44、告模板 5可选择的其他系统方案 若存在两个或更多的系统方案,按4中规定逐项说明 6技术可行性分析 6.1 选择方法: 在进行建议系统的设计时,会碰到有两种可选技术时,这里提供建议的选择方法: (1)在基本的技术方面没有多大差距时,不以技术判断,而是以销售策略为优先。 (2)明显的技术差异时为保证正确预测,必须以宽广的视野为前提。 可行性分析报告模板6.2 建议步骤:(1)整理全部的用于新产品的开发和制造的技术。包括内部的技术和向外购入的一切技术。(2)再次确定新产品的销售重点,必须准确把握。 可行性分析报告模板 6.3 技术分类: 第一级:和实现销售重点有直接关联的技术。 第二级:有助于实现销

45、售重点的技术。 第三级:和销售重点没有直接关系,但是能够有助于提升形象的技术。 6.4 技术分种: 第一种:自己公司内(如可用的现行技术、重用软件和开发平台)。 第二种:公司外。 可行性分析报告模板7经济可行性分析对于所选择的方案,说明所需的费用(1)基本建设投资,如计算机设备;数据通讯设备;环境设备。(2)其他支出调研;培训费、差旅费、安装费;其他经常性支出。(3)收益求出整个系统的生命期的收益/投资比值。(4)说明回收周期 可行性分析报告模板8社会因素方面的可行性竞争对手分析;市场规模;产品化程度;市场前景;用户单位的行政管理;工作制度;人员素质等能否满足要求;市场环境。9法律因素可行性分

46、析:如合同责任;侵犯专利权;侵犯版权。 可行性分析报告模板10结论 在可行性报告的编制时,最后必须有一个结论。结论可以是:可以立即开始进行;需要推迟到某些条件(例如资金、人力、设备等)落实后才能开始进行;需要对开发目标进行某些修改后才能进行;不能进行或不必进行(如因经济上不划算、市场不成熟、技术不成熟等)。11其他一些其他在前面没有包括的但是必须说明的未尽事宜。 2.4.2 可行性分析报告范例 下面以分析开发一个学校的图书馆书目查询管理系统是否可行作为例子介绍一个可行性分析报告: 图书馆书目查询管理系统可行性研究报告1引言1.1 编写目的1.2 背景1.3 定义1.4 参考资料2产品方案分析

47、2.1 要求2.2 目标2.3 条件、假定和限制2.4 进行可行性研究的方法2.5 评价尺度3对现有系统的分析3.1 处理流程和数据流程3.2 工作负荷3.3 费用开支3.4 人员3.5 设备4所建议的系统4.1 对所建议系统的说明4.2 处理流程和数据流程4.3 改进之处4.4 影响4.4.1 对用户单位机构的影响4.4.2 对开发的影响4.4.3 对地点和设施的影响4.4.4 对经费开支的影响5技术条件方面的可能性5.1 目标系统业务流程分析5.2 系统分析6经济的可行性分析6.1 支出6.1.1 基本建设投资6.1.2 其他一次性支出 6.2 收益6.2.1 一次性收益6.2.2 非一次

48、性收益6.2.3 不可定量的收益6.3 收益/投资比6.4敏感性分析7社会因素方面的可能性8法律方面的可行性9结论XXXX年XX月XX日设计者:XXX 图书馆书目查询管理系统可行性研究报告 1引言 1.1 编写目的 根据本报告分析出开发图书馆书目查询管理系统是否可行。XXXX年XX月XX日设计者:XXX 图书馆书目查询管理系统可行性研究报告1.2 背景(1)内容:图书馆书目查询管理系统(2)项目开发小组成员:XX、XX、XXX、XXX(3)用户:校图书馆(4)项目开发环境:系统开发平台:Microsoft Visual Studio 2008系统开发语言:VB.net系统后台数据库:Micro

49、soft SQL Server 2005运行平台:Windows XP(SP3)/Windows 2000(SP4)/Windows 2003(SP2)运行环境:Microsoft.NET Framework SDK 2.0 图书馆书目查询管理系统可行性研究报告1.3 定义 图书管理系统 项目 可行性分析 方案 效益1.4 参考资料参考书:参考方案:参考网站:图书馆书目查询管理系统可行性研究报告 2产品方案分析 2.1 要求 主要功能:建立一套网络化的书目查询管理系统,以方便广大师生查询书目信息、获取新书通报情况等,也方便图书馆的管理人员对读者情况和图书情况进行有效地电子化管理。该图书馆书目查

50、询管理系统的服务对象分成两类:读者和管理员。而读者又分为一般读者和注册用户。一般读者经过注册后成为注册用户,注册用户可以登录“我的图书馆”,进行读者信息查询和修改、读者密码修改、图书借阅、查看借阅历史等特殊操作。一般读者只能进行书目查询、浏览新书通报、分类浏览等普通操作。 完成期限:200X年X月X日至200Y年Y月Y日图书馆书目查询管理系统可行性研究报告 2.2 目标 减少人力的投入;由系统对入库图书进行自动分类、归类,学生信息整理、借阅情况登记入档,提高信息处理的精度和准确度。 2.3 条件、假定和限制建议软件寿命:8年硬件条件:PC机运行环境:Windows 系统 2.4 进行可行性研究

51、的方法 通过对已有图书管理系统的分析和研究比较的方法图书馆书目查询管理系统可行性研究报告 2.5 评价尺度 费用的多少、各项功能的优先次序、开发时间的长短及使用中的难易程度等等。 3对现有系统的分析 针对现有的图书馆系统没有读者查询功能,进行分析,所以我们开发新的图书馆管理系统。图书馆书目查询管理系统可行性研究报告 3.1 处理流程和数据流程 1购买图书 拿到中图公司的书目选书抄下所选书名制成表单送至院办公室审批办公室向领导打报告领导批准以后将定单寄至中图公司拿到书后寄钱。 2书籍入架 按分类号和作者号对书籍进行分类贴馆藏条码,盖章入架。 3图书借阅 读者通过图书证在图书馆借阅书籍,进门凭证件

52、换取借书卡,还书后取回证件;读者借阅的书籍(借阅期限为三个月),管理员登记图书借阅情况。图书馆书目查询管理系统可行性研究报告 3.2 工作负荷 图书馆人员少,借阅时间长,费时、费力;办事效率不高;学生借书;同时系统增加了读者查询功能,也为管理员减轻了工作量。 3.3 费用开支基本建设投资20720元其他一次性支出26000元 综上合计46720元 3.4 人员 人员如表2-1所示。机构名称职能馆长主持全馆工作,领导制订发展规划、规章制度、工作计划、人员聘任及经费预算,并组织贯彻实施。副馆长和馆长助理协助馆长工作。馆务委员会由图书馆党政领导班子成员、工会主席、各部主任组成。馆务委员会对全馆发展建

53、设及行政业务工作中的重大问题进行商议,并做出决策。行政办公室办公室负责全馆的行政管理、业务协调、馆际交流与合作、对外联系和接待参观来访等工作。借阅部主要负责入藏图书资料的流通阅览,剔除和组织管理及读者信息库的维护。负责报刊阅览室、理科图书借阅室、语言图书借阅室、东校区借阅室,入藏图书资料的流通、阅览工作。表2-1 人员构成技术服务部负责图书馆内自动化管理系统的支持、维护与改进;各种新的信息处理技术的引进和设备的安装以及技术维护、跟踪、开发与利用;图书馆主页管理与维护;与其它部门合作,支持新技术在其它部门的应用、维护和技术培训;本馆网上资源的开发、建设与更新;通过咨询部、总咨询台、网上咨询等形式

54、向读者解答在利用图书馆过程中所遇到的各种问题;负责文检课教学、新生入馆培训、电子资源使用培训、信息联络员为各院系教师开展代检代查、文献传递、定题服务;负责馆内电子屏幕新闻发布。采编部根据学科建设和发展规划,负责各类文献资源的采集、收登、交换、标引、编目、典藏、回溯建库等工作。(续表)图书馆书目查询管理系统可行性研究报告3.5 设备服务器: Intel 酷睿2四核 2.66G以上或更高,内存:2G以上;硬盘:500G以上; DVDROM;网卡:10/100自适应; 工作站: Intel 奔腾双核 E5200(散)2.5G以上微机;内存:512MB以上硬盘:160G以上; DVDROM;网卡:10

55、/100自适应图书馆书目查询管理系统可行性研究报告4所建议的系统4.1 对所建议系统的说明小巧而不失使用的功能,方便师生。库存图书馆功能,师生借阅信息管理。财务信息的统计分析。多种图表统计,可统计每年,每月,每日的图书借出和借入情况统计。图书馆书目查询管理系统可行性研究报告4.2 处理流程和数据流程(1)系统能对书籍信息进行管理。(2)系统不需要管理借阅者除姓名以外的信息。对每一名借阅者最多可借阅的书籍数目为10本。(3)借书时,管理人员记录借书者的姓名、借阅书籍名称和借阅日期。(4)时间时,管理人员记录还书者的姓名、归还书籍名称和还书日期。(5)操作人员可以根据书籍信息进行查询。(6)操作人

56、员可以查询借阅某书籍的所有借阅者的姓名;也可以查询某借阅者借阅的所有书籍名称;还可以根据借阅者的姓名、书籍名称查询借阅者的借书时间、还书时间。(7)系统由图书馆工作人员操作。分为:系统管理员,书籍管理员和借阅管理员,每人对应相应的权限。(8)所有操作人员凭帐号和密码登陆系统。图书馆书目查询管理系统可行性研究报告 4.3 改进之处 由于时间仓促,人力和物力资源缺乏,本系统存在诸多不完善之处。整体系统不够强,功能模块需要添加和其他查询功能。 4.4 影响 (1)对设备的影响:没有什么特殊影响,信息量不大,一般PC机都能用。 (2)对用户单位的影响:用户单位现有符合国家管理行政,业务完全不变。其他机

57、构可以参考系统提示的要求做一定调整,该操作简单,使用人员能基本操作计算机基本操作即可。图书馆书目查询管理系统可行性研究报告 4.4.1 对用户单位机构的影响 在学校中要有良好的管理体系,管理业务标准化;需要组建一个管理应用队伍,需要体现出团队的精神。 4.4.2 对开发的影响 在当前网络信息时代下,计算机技术和软件技术的不断更新是图书馆管理系统需要更强大的功能,远远不能满足将来现代化的社会,在管理上也可能需要人员调整。 4.4.3 对地点和设施的影响 基本的办公条件,独立办公室一间(20平米以上)4台联网电脑及相关参考书籍。图书馆书目查询管理系统可行性研究报告 4.4.4 对经费开支的影响 图

58、书馆在学校或大型公众场所存在,其经济成分比重相对比较适中,主要是支出的费用:其中包括基本建设费、软件开发费用、管理和维护费、人员工资和培训费等。开发完成运行后,为使用者带来便利,为系统的进一步推广创造了条件,经济收益将远超过投资。从经济角度考虑,此系统开发可行。图书馆书目查询管理系统可行性研究报告5技术条件方面的可能性5.1 目标系统业务流程分析 目标系统的设计目的是实现图书馆相关业务流程的电子化,因此业务流程分析是需求分析的基础环节。业务流程图反映了目标系统中各种业务往来关系、作业流程和信息流向等。 以下是目标系统的几个相关的业务流程图。图书采编业务流程图如图2-1所示,图书借阅业务流程图如

59、图2-2所示,读者信息管理业务流程图如图2-3所示,图书馆相关信息设置业务流程图如图2-4所示。图2-1 图书采编业务流程图图2-2 图书借阅业务流程图图2-3 读者信息管理业务流程图图2-4 图书馆相关信息设置业务流程图图书馆书目查询管理系统可行性研究报告6经济的可行性分析6.1 支出6.1.1 基本建设投资计算机设备4台5000=20000元;通讯设备:(手机产生的实时花费)规定每人每月50共计850=400元;办公室对外通信电话包月840=320元。6.1.2 其他一次性支出 开发软件费用20000元;调研(主要是图书馆的调研需若干次)调研费用1000元;培训费、差旅费、安装费、培训等5

60、000元。图书馆书目查询管理系统可行性研究报告 6.2 收益 6.2.1 一次性收益 学生每人一次办卡5元 按中小型学校预算10000人*5=50000元。 6.2.2 非一次性收益 在使用中有学生可能把卡丢失或损坏费用 办卡收费5元/次的收益。 6.2.3 不可定量的收益 图书在读者借阅中超期或者损害的赔偿。 6.3 收益/投资比 6.4 敏感性分析图书馆书目查询管理系统可行性研究报告7社会因素方面的可能性用户单位的行政管理:自定;工作制度:自定;人员素质等能否满足要求:可以满足 8法律方面的可行性合同责任:符合国家标准的合同,经双方签字后生效;侵犯专利权:有;侵犯版权:有。图书馆书目查询管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论