公务员期刊网 精选范文 软件工程可行性分析范文

软件工程可行性分析精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件工程可行性分析主题范文,仅供参考,欢迎阅读并收藏。

软件工程可行性分析

第1篇:软件工程可行性分析范文

关键词:软件工程;uml;建模

引言

在现代社会中,软件无处不在,人们常接触的软件有办公软件、网上购物网站、电子邮件收发系统、计算机操作系统、游戏等,各式各样的软件使得人们的生活变得更轻松、工作更高效。但随着软件功能的日益复杂,软件的开发和维护中出现许多严重的问题,使得软件开发成本急剧上升,而质量却难以得到保证,于是引发了软件危机。如何才能摆脱软件危机,更加有效地进行软件的开发和维护工作呢?这就要用到“软件工程”。

一、基于软件工程的系统开发过程

软件工程是为了解决软件危机而出现的, 其核心思想是采用工程的概念、原理、技术与方法对软件进行计划、开发和维护,按预期的进度和经费完成软件开发任务。根据这一思想,软件开发被划分为可行性分析、需求分析、设计、软件编码、软件测试、软件维护六个阶段。下面以常见的校园BBS论坛为例,用面向对象的分析方法,介绍软件开发的各阶段所做的工作。

1.可行性分析

可行性分析是软件项目在正式立项前必须进行的工作,目的不是解决软件该如何做的问题,而是确定软件项目是否值得做,项目能否在现有资金、人力和技术条件的限制下完成或者用尽可能小的代价在尽可能短的间内解决的。可行性分析必须是客观的、科学的,不能单凭决策者的一时冲动。

以校园BBS论坛前台系统为例,进行可行性分析时,应考虑论坛的技术可行性、经济可行性、操作可行性和开发方案的选择。可行性分析的步骤为:分析建立系统的目的、分析当前系统的优劣及业务流程、提出新系统、分析新系统是否满足需求、制定新系统的技术方案、分析比较各方案的优劣、推荐最优方案。可行性分析阶段最终要得到可行性研究报告。

2.需求分析

论坛可行性论证通过后,紧接着要做的就是论坛需求分析。这一阶段的主要任务就是要描述系统的功能需求,从用户的角度,以用户可理解的方式来描述系统需求。系统需求可以通过和使用者交流、问卷调查、参与观察业务流程、阅读同类产品的描述文档等方式获得。需求分析阶段不考虑系统的具体解决方案,只考虑系统“要做什么”。

为了能简单直观的描述系统功能,让普通的用户也可以看懂系统功能描述,系统分析人员可以选择UML的建模方法。在UML的规范中,“用例”描述系统的功能和需求。以校园BBS论坛前台系统为例,其用例如图一:

从上图可以看出,用例图是从参与者的角度来描述系统的功能。其中参与者描述为一个人形符号,系统的功能描述为椭圆形,一个功能就是一个用例。参与者可以是人,也可以是与系统交互的组织或系统。

图一 系统用例图

用例图描述了系统用户和系统功能的关联关系,若想要详细描述系统的某个功能,开发人员可以用“序列图”来完成,这有助于项目团队对系统功能达成共识。图二为注册用户“回复帖子”的序列图:

图二 “回复帖子”序列图

图中,水平方向上的是参与交互的四个对象:用户、登陆系统、论坛主页和发帖回帖模块。四个对象间互有消息来往,且这些消息有先后次序。上图也可以简单理解为用户发帖的操作步骤。

3.设计

此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等,重点解决“怎么做”的问题。好的软件设计将为软件程序编写打下良好的基础。

在UML的规范中,类图描述系统中类、接口及其间关系的一种图,它描述的是系统的静态关系。一个系统的描述需要组织大量的词汇,相关概念词汇集结在一起,逐渐形成类图。需求描述中的名词有可能就是一个类的名字,也有可能是某个类的属性。需求描述中的动词往往就是一个类中的一个操作。多个类中相同的动作就可以组成一个接口。

通过对BBS论坛前台系统进行分析,系统中基本的类有用户类、版块类、主题类、回复类和数据库连接类。系统的类图设计模型如图三:

图三 论坛基本类图

为了更清晰的分析和理解部件之间的相互影响程度,可以使用组件图描述代码部件的物理结构及各部件之间的依赖关系,一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。在BBS论坛前台系统中,参与的基本部件有数据库服务、web应用程序、论坛前台程序、主版快页面等。BBS论坛组件图如四:

图四 论坛组件图

可执行软件最终要部署运行在可户的环境中才能发挥作用。部署图定义系统中软硬件的物理体系结构。BBS论坛前台系统的软硬件有WEB应用服务器、数据库服务器、客户端,其部署图如图五:

4.编码

编码就是把设计阶段的类转换成某种面向对象程序设计语言的代码,此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

图五 论坛部署图

5.测试

在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、集成测试、系统测和用户测试四个阶段。不同的测试采用不同的UML图作为测试的基础。单元测试用到类图和类的规格说明,集成测试用到组件图和协作图,系统测试用到用例图来确认系统的行为符合这些图中的定义。测试的最后阶段---用户测试由系统的最终用户负责在系统的真实使用环境中完成。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

6.维护

软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求,为了延续软件的使用寿命,就必须对软件进行维护。软件的维护包括改进性维护、适应性维护、完善性维护、预防性维护。改正性维护是在软件交付使用后,为了解决软件本身的错误而做的程序修改;适应性维护是为适应环境的变化而修改软件的活动;完善性维护是根据用户在使用过程中提出的一些建设性意见而进行的维护活动;预防性维护是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。

二、结语

软件工程的思想无时无刻不体现在软件的开发和维护过程中,越是复杂的软件,越需要软件工程来指导开发。把握软件生存周期的每个阶段的特征,是应用好软件工程的基础。

参考文献:

[1]潘家志.基于UML的面向对象开啊模型UBDM的研究[D].西南农业大学,2002.

第2篇:软件工程可行性分析范文

软件工程不仅是计算机科学与技术专业、软件工程专业的一门专业基础核心课程,也是其他相关专业,如信息工程、系统工程、信息与计算机科学、信息管理与信息系统等专业的重要应用技术课程。对于这些专业的学生来说,毕业设计多是以软件开发类项目为主,整个毕业设计就是开发一个软件。为了更好地完成软件开发类毕业设计,提高学生毕业设计的质量,进一步规范毕业设计中的软件开发过程是必需的。软件工程的思想正是用工程化方法构建和维护有效的、实用的和高质量的软件。按照软件工程思想,软件开发的生命周期分为可行性分析、需求分析、总体设计、详细设计、编码实现、软件测试和软件维护几个阶段。在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。

2毕业设计中存在的问题

笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题:

2.1选题的盲目性

选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。

2.2缺少软件的系统分析

软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。

2.3软件设计过程杂乱无章

软件设计一般都要经历可行性分析、需求分析、总体设计、详细设计、编码和测试阶段。而部分学生在毕业设计开发的过程中,缺乏软件工程设计思想,跨越需求分析、概要设计、详细设计和功能模块设计,直接进行代码的撰写;或者从代码反推出模块设计;甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才确定。这种无序的软件设计过程,导致最终设计的系统杂乱无章、代码的重复率高、潜在?Bug多、系统的可集成性非常差、不能在规定时间内完成设计或者系统无法运行。

2.4开发过程中文档不完备

根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。

3用软件工程思想指导学生进行毕业设计

3.1以可行性研究指导选题

可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。毕业设计题目的选择,应立足于解决工程实际问题,可由指导教师提供符合相关专业毕业设计要求的题目,也可以鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。选题过程以可行性研究为指导,从课题规模大小、难易程度、学生自己的研究方向、爱好、学生的知识层面和能力等多个方面进行考虑,对于选择的题目是否能够解决,确定在规定的时间内完成毕业设计的可行性。指导教师可根据学生选报的题目来指导学生对该选题进行调查研究,明确课题要解决的问题是什么,简要地写出关于问题性质、项目目标和项目规模的书面报告。可行性研究来指导毕业设计的选题,实质上是简化了系统分析和设计的过程,也是在较高层次上以较抽象的方式进行的系统分析和设计的过程,使学生对于课题的设计有个清晰的思路,为及时完成毕业设计提供了可能。

3.2重视软件的需求分析

需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。

3.3规范毕业设计过程

软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。

3.4重视文档的写作

软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。

4结束语

第3篇:软件工程可行性分析范文

关键词:CMM2;过程改进;项目管理系统

中图分类号:TP311.5

目前,南京市软件产业取得了令人瞩目的成绩,中小型软件企业的数量也在与日俱增,相当多的中小型软件企业希望以CMM2作为切入点,着力改进软件项目管理过程,提升企业的市场竞争力。作为培养“软件蓝领”的高职院校,就要顺应这一趋势,采用信息化的手段让学生学习并了解CMM2模型。所以,一个基于CMM2模型的、并加以改进的“软件实训项目管理系统”应运而生。

1 软件能力成熟度模型2级(CMM2)详解

所谓CMM2(可重复级),就是在CMM2级企业中,已经建立了基本的软件项目级管理过程,可对项目的成本、进度进行跟踪和控制,软件开发和维护的过程相对稳定,已有的管理类似项目的成功经验可以被复用管理新项目,尽管新项目所实施的具体过程有可能不同。CMM2的核心就是重复利用。

CMM2包括六个关键过程域(KPA),囊括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方面,其中项目管理又分为计划过程和跟踪与监控过程。

1.1 需求管理

需求管理的最终目的是在客户与实现客户需求的项目之间达成共识,需求管理活动就是为了建立并维护这种共识,这是软件项目计划和管理的基础。在软件项目的整个生命周期,都应该记载、跟踪和验证由于需求的变化而引起其它文档所作的修改。

1.2 软件项目计划

建立合理的开发计划的基础是对项目规模、资源要求和风险等要有一个合理的估算。软件项目计划的目的是为完成软件工程和管理软件项目制定合理的计划,包含估计待完成的工作,建立必要的约定和确定进行该工作的计划。

1.3 软件项目跟踪及监督

软件项目跟踪和监督的目的是建立对实际进展的适当的可视性,使管理者能在软件项目性能明显偏离软件计划时采取有效措施。它包括对照已文档化的估计、约定、和计划评审和跟踪软件完成情况和结果,以保证当项目执行偏离项目计划时管理上能采取有效的解决措施。

1.4 软件质量保证

软件质量保证的目的是向管理者提供适当的对软件项目正使用的过程和正构造产品的可视性。它包括评审和审计软件产品和活动以验证它们符合适用的规程和标准,给项目和其它有关的经理提供这些评审和审计的结果。

1.5 软件配置管理

软件配置管理的目的是建立和维护在项目的整个软件生存周期中软件项目产品的完整性。它包括标识在给定时间点上软件的配置,系统地控制对配置的更改、并维护在整个软件生存周期中配置的完整性和可跟踪性。

1.6 软件子合同管理

软件子合同管理的目的是选择合格的软件子承包商并有效地管理他们。它包括选择软件子承包商、建立和子承包商的约定,及跟踪和评审子承包商的性能和结果。

2 软件实训项目管理与CMM2模型改进

2.1 软件实训项目管理

(1)软件实训项目管理概述。软件实训项目是参考中小型软件企业真实项目案例,同时又适合高职学生作为训练相应技能而改进的软件项目,它不是一个具有商业性质的软件产品。目前,正规的软件企业如果重视软件项目实施过程的管理,一定会采取各种方法对软件项目进行管控,软件项目管理系统就是一个常见的措施,采用该系统可以对软件项目的各个实施阶段进行有效的、实时的、科学的管控。所以,把针对软件实训项目管理的系统叫做软件实训项目管理系统。

(2)软件实训项目管理系统的基本功能需求。软件实训项目管理系统是体现软件实训项目管理过程的一个信息化软件平台,针对学院对项目管理基本的功能需求调查发现,整个系统包括了班级管理、案例资料管理、项目管理、历史数据管理、实训成绩管理、课程管理六大部分。其中最重要的功能就是项目管理,它重点体现了软件成熟度模型的思想,有效的规范和保证了项目实施的全过程,包括项目启动、计划、执行、质量保证、结束。

2.2 CMM2级模型改进与实施方案

(1)CMM2级模型改进。CMM2模型中的内容非常广泛,标准十分完备,如果完全照搬CMM2运用到该系统中是不合适的。因此,必须对CMM2中管理的内容和标准进行一定的优化和裁减,提出一个适合软件实训项目组规模的CMM软件项目管理模型,并给出在模型的各个阶段实际要完成的任务和需要注意的问题。

根据CMM2六个关键过程域(KPA)的解释和软件项目管理的过程,这里我们可以初步提出一个基于CMM2的软件实训项目管理模型。该模型如图1所示:

图1中软件实训项目管理模型的划分结合了软件项目的生命周期,主要分为:项目启动、项目计划、项目实施与控制、项目技术。各个阶段分别包含CMM2的关键过程域,其中软件质量保证和软件配置管理2个KPA贯穿于整个项目开发过程始终。图中只提到了CMM2的5个KPA,还有一个软件子合同管理KPA,考虑到根据软件实训项目的规模和实际情况,一般不会出现把项目转包出现的情况,在此进行了裁减。

(2)组织管理结构改进。对CMM2的模型改进后,接下来就要对CMM2所要求的组织管理结构进行适当的裁减。因为CMM中任务分工细,涉及到的角色关系多,这对于软件实训项目组这样的小型软件开发组织来说是难以实现的。经过裁减后,组织管理结构中各个角色的工作职责描述如下:1)高级经理:一名,负责所开展的所有软件实训项目。2)项目经理:一个项目一名,负责整个项目的实施。3)软件工程师:根据软件项目的规模确定人数,负责软件的设计与开发。4)软件配置管理员:可安排由项目组中任意成员担任,可以是项目经理,可以是软件工程师,也可以由其他人员兼任,负责软件产品的配置整合工作。5)软件质量保证员:如果人员条件允许,此人员最好单独设立,如若条件所限,可由项目经理或软件测试人员兼任,负责项目在各个阶段的评审。6)软件测试员:可由软件工程师同时担任,在开展测试工作时,必须交叉测试。

3 实施方案

3.1 项目启动

项目启动是软件项目管理的初始阶段,它对项目有序、正常的开展起着非常关键的作用。项目启动包括有项目可行性分析,需求调研、编写需求文档和可行性分析报告。该阶段主要包含CMM2的软件项目计划KPA。

在此阶段需要重点处理的工作有:(1)可行性分析。可行性分析是为了分析在一定时间范围内软件项目是否能够按要求完成以及完成的价值如何。一般从技术可行性、经济可行性、社会可行性三个大方面来考虑,从而形成软件项目可行性分析报告。技术可行性即项目开发的技术储备,开发的风险等方面是否支持项目的开发;经济可行性即确定该项目在经济上是否值得开发;社会可行性即判断待开发的项目是否有侵犯、妨碍等责任问题。(2)需求分析。需求分析是经过需求分析后的产出物。需求分析的任务就是确定系统具备哪些功能,即回答待开发项目做什么的问题。需求分析的过程是和客户打交道最多也是最重要的环节,它直接决定了后续项目开发的成功与否,必须通过多次的需求调研、分析才能形成需求规格说明书。

3.2 项目计划

项目计划的提出是为了给软件项目实施的各个阶段提供一个合理的、可行的、可参考的工作计划,使项目参与人员能够有条不紊的按照计划开展工作。该阶段主要包含CMM2的需求管理KPA和软件项目计划KPA。

在此阶段需要重点处理的工作有软件项目计划:软件项目计划必须按照需求调研的结果来制定,要根据不同的项目要求明确软件项目开发模型,可以利用的项目资源,项目经理还要根据项目需求文档从软件规模、人力、成本、进度等方面进行项目估算和风险评估,根据项目组成员的技术特点和能力进行工作分解和职责分配,从而形成软件项目计划书。项目计划书一旦制定,项目实施的过程就要严格的以它为基准跟踪和控制。

3.3 项目实施与控制

虽然软件项目已经有了明确的需求分析和好的项目计划,但由于计划本身具有假设性和预测性,尽管也充分考虑了可能的风险因素,但是计划毕竟只能是对现实所作的预测和粗略的描述。因此在实施计划时,偏差不可避免。当软件项目的执行与项目计划出现明显偏差时,项目管理人员必须采取有效的措施。该阶段包含CMM2软件项目跟踪和监控KPA和需求管理KPA。

在此阶段需要重点处理的工作有:(1)需求变更控制:由于需求不能在项目启动时就能完整的定义好,并且随着项目的实施,遇到客户临时更改需求的情况也是不可避免的,项目经理要组织项目组讨论变更带来的影响,从而决定是否进行需求文档和项目计划的修改。(2)版本控制:由于软件项目通常是团队合作方式进行,所以不管是需求的变更,还是实施过程中其他文件的更新,都必须及时通知到每一个项目组成员。(3)需求状态:需求状态是标识需求的一个重要属性。每当处理一个需求功能点时,都必须及时的把对该需求的处理方式记录下来,通常的需求状态有:已批准、已拒绝、已删除等等。(4)项目跟踪和监控:项目组必须指定专人在规定的时间记录项目定的跟踪项的进展状态,以提供计划与实际偏差的第一手数据,从而采取必要的措施及时处理偏差。

3.4 项目结束

项目结束阶段主要是针对项目本身进行的项目评审验收、归档总结等工作。此阶段包含CMM2软件质量保证和软件配置管理KPA。

在此阶段需要重点处理的工作有:(1)用户验收和项目评审。项目评审应该贯穿于整个项目实施的始终,可以根据项目规模的大小来决定评审的形式,是走查还是正是评审,可以邀请同行和客户来对软件项目进行审查。在项目结束阶段的评审主要是对项目整体功能是否符合需求,项目过程是否符合项目计划等方面来展开。(2)归档总结。项目结束后,要把项目涉及到的项目资料包括软件的需求文档、开发设计文档、产品文档、管理文档等资料汇总收集到相关资料库中,同时还要认真的总结项目实施过程,供今后维护和开发参考使用。

参考文献:

[1]韩万江,姜立新.软件项目管理案例教程[M].机械工业出版社,2006.

[2]Mark C.Paulk,Charles V.Weber,Suzanne M.Garcia,Mary Beth Chrissis,Marilyn Bush.Key Practices of the Capability Maturity ModelSM,Version 1.1.1993.

[3]邓子云.论CMM2的过程改进[J].安徽电子信息职业技术学院学报,2004,3(5).

[4]王斌.基于CMM的软件过程改进模型的研究与实现[D].南京航空航天大学,2006.

第4篇:软件工程可行性分析范文

 

一、系统需求

 

需求分析阶段是软件定义时期的最后一阶段,它的基本任务是准确的回答“系统必须做什么”这个问题。但是这一阶段的任务还不是该怎样完成系统的工作,只是对目标系统提出完整、准确、清晰、具体的要求。更进一步的说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统的发展前景。必须仔细分析系统中的数据流又要分析长期使用的数据存储。通过此阶段可以知道该软件主要有学生学籍异动管理、奖惩情况管理、档案管理、成绩管理、考勤管理等功能模块。

 

工作是学校教学工作的重要内容,这一工作阶段性强,涉及面广,涉及诸多细节。目前,学校学生管理环节普遍存在的问题和现象是:

 

1.为加强学生社会能力和工作能力,在以就业为导向的指导思想下,学生就业前的校内管理效果不明显,须加以改善。

 

2.大部分学校逐渐走上完全学分制的教学模式,对于学生综合管理工作更需要规范化。

 

3.毕业涉及的申报和管理工作主要依赖人工处理,效率低。

 

基于以上,开发了学生档案信息管理系统。

 

二、模块化设计

 

模块化设计就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定的功能问题的需求。系统功能包括学生信息管理、学生成绩管理、考试模块管理、教师信息管理等。

 

三、系统流程分析

 

根据用户需求分析和系统的总体设计过程中确定的系统功能及模块,可以分析出系统的流程。系统的启动首先要通过用户权限的验证,输入错误的用户名或密码,系统无法运行,点击确定按钮将重返登录界面。

 

四、功能需求分析

 

系统应该具备如下主要功能:

 

(一)学生管理:学生能够查询自己的资料以及考试信息、课程信息等。可以修改自己的密码,在课程考试后可以查看自己的成绩以及成绩排名情况。

 

(二)教务人员管理:教务人员能够查询并修改自己的资料及密码,可以增加、查询、修改、删除学生基本信息,查看学生成绩以及总分、单课排名情况。可以增加、查询、修改、删除课程信息、考试信息、教师基本信息等。

 

五、可行性分析

 

(一)对现有系统的分析。

 

目前,在不少大、中专院校学生档案管理系统都是单机的MIS,甚至有的还是手工方式。这种单机的管理系统不仅工作方式效率是极低,而且存在许多弊端,主要包括:

 

1.档案录入效率低下:例如每学期开学,数以千计的学生档案都由学生处负责录入,这个工程量之大,可想而知。

 

2.查询不便:例如,某个系部要调出某个学生的档案,由于系部没有管理档案的权限,他就必须到学生处去调这个学生的档案。

 

3.毕业生转档不便:每年大量毕业生,他们都要转走个人的档案。在这个过程中,若没有管理信息系统的参与,工作繁重不可言喻。

 

可行性分析对系统的开发至关重要,可以大幅减少不必要的损失,保证系统开发的顺利进行。因此要对此系统进行技术可行性和操作可行性两方面的系统可行性分析。

 

(1)技术可行性。

 

本系统是采用目前比较流行的C#语言,用Microsoft Access 2005数据库完成。由于C#的与平台无关性,所以在任何有C#运行环境的计算机上都可以运行。

 

为了方便交互式应用和数据的大型存储,大学综合管理系统必须采用B/S框架模式而且支持大型的后台数据库,而Asp.NET、SQL、Server 2005数据库正好满足了交互与大型存取两方面。可见使用Asp.NET毕业设计管理系统在技术上是可行的。

 

(2)操作可行性。

 

学生档案信息管理系统是一个集成了教师管理、学生成绩管理、考试信息管理,用户只要会上网就应该会使用本网站,网站各个部分都有说明和提示,引导用户达到他们的目的。

 

对于用户来说,本系统只要求使用者掌握一般的上网经验,经过仔细设计和测试之后的系统具有操作简单,方便灵活等优点,足可以满足用户的不同需求,同时也方便了学校的内部管理。用户一定会在短时间内掌握并熟练使用。只要动一动鼠标键盘就可以达到想要的效果。

 

(3)经济性可行性。

 

通过网络化的学生信息管理,大大的提高了工作效率和人才的利用率,使之创造了更大价值;减少了工作人员,同时减少了学校开支;人才利用率的提高,适应了信息时代的网络化管理要求。

 

(二)可靠性方面。

 

采用代码较检逐项检查录入的各项资料,保证录入资料的正确性。遵循软件工程规定,保证各个模块的独立性和可靠性,达致整个系统的可靠。同时加强服务器维护工作,保证服务端稳定可靠地运行。

第5篇:软件工程可行性分析范文

软件工程监理主要包括事前控制、事中控制两个部分部分,只有做到二者的结合,才能有效地实现对软件工程进行进度监理的目标与目的。其中事前控制方法包括对软件工程内容、强度、难度、工作量的了解以及对承包方进度计划的审查,并结合工程的实际情况对承包方给出的进度计划进行可行性分析与合理性分析;事中控制方法主要包括重视对工程进度的检查与记录,重视进度协调来有效排除制约进度的因素。当实际工程进度落后于计划进度时需要及时通知承包方采取补救措施达到合同要求,如进度落后严重,监理方可提出相应的办法和措施以供参考。同时在软件工程的布线系统、网络系统以及机房系统的建设中,需要重点对其施工顺序做出监理。

二、软件工程合同管理

在软件工程监理体系中,对合同的管理包括审查、调节、监督、处理以及管理。合同是软件工程顺利开展的依据,同时也是保证软件工程质量和进度的基础,监理工作中必须将检查和合适合同的工作落到实处,确保合同规定能够得以履行。在此过程中,监理人员需要做到以下几点:一是对软件工程合同管理的制度做出拟定,其中包括合同的拟定、会签、修改、协商、签署、审批、保管等重要内容;二是要参与到有关方面与建设单位的合同协商工作中,并在有关条款的拟定中起到协助的作用;三是对合同开展跟踪管理,从而及时了解合同条款的落实情况;四是对软件工程中出现的纠纷等进行公平的协调。

三、软件工程信息管理

软件工程监理中主要的工作方法是控制,而在软件工程监理中实现有效控制的基础是信息,所以信息管理应该是软件工程监理体系中重要的工作内容,并且信息管理的质量也直接影响着软件工程开展的成效。在此过程中,软件工程监理人员需要做到以下三点:一是要在软件工程监理过程中充分了解和掌握软件工程项目的质量目标、投资目标和进度目标,并及时了解和掌握软件工程开展的执行情况,通过对二者的比对分析来实现有效控制;二是在软件工程项目实施的过程中监理人员需要对工程各个阶段的各类信息进行收集和整理,从而为控制和决策提供必要的依据;三是在软件工程整个生命周期的监理工作中,监理人员必须树立和加强软件控制信息管理的意识,以便协调各利益主体的关系来保证软件工程的顺利开展。

四、软件工程组织协调

第6篇:软件工程可行性分析范文

关键词:软件工程;多媒体课件;软件危机

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)20-5610-03

Software Engineering for the Development of Multimedia Courseware

YUAN Shu-dan

(Department of Computer Science, Hezhou University, Hezhou 542800, China)

Abstract: With the rapid development of the computer technology and that of communication, the application of multi-media courseware in the area of education becomes wide-spread. However, the short of team and means have caused the software crisis of developing the courseware, which gives a full expression in the following aspects, such as high developing cost, long lasting period, low quality, and difficult application. Then the present thesis is set to solve such a crisis by developing the software on the basis of the model of developing the software engineering in order to improve the efficiency of the development and the quality of the software.

Key words: software engineering; multi-media courseware; software crisis

随着计算机技术的突飞猛进,多媒体技术也快速发展着,既而计算机辅助教学广泛普及,各类学科的教学课件应运而生。从理论上讲,大量的教学课件地运用可以减轻教师的工作量,提高教学质量,但实际上,在教学中真正用得好,用得巧的教学课件并不多。开发成本高,软件质量低,重复开发的现象屡见不鲜,很难满足当前日益增长的教学课件的需求。此种不良现象我们称之为“教学软件危机”。要消除此种软件危机,就要有正确的软件开发理念。应用软件工程的思想,可以有效地缓解软件危机,提高多媒体课件开发的成功率[1]。

1 软件工程基本概念

1.1 软件工程

软件工程 (Software Engineering,简称为SE) ,目前比较认可的定义为:研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门计算机科学与工程学交叉的学科。它涉及计算机、数学及管理学等多个学科,以便帮助人们缓解软件危机带来的问题。

1.2 软件危机

软件危机是指在计算机软件开发和维护过程中出现的一系列严重问题[2],致使整个开发过程混乱不堪,导致开发陷入无法自拔的困境,经济危机主要表现在以下几个方面:1) 对软件开发成本和进度难以估量,通常会大幅度超出预期;2) 对“已完成的软件”,用户通常不满意;3) 软件质量无法保证;4) 软件不可维护,升级要重头来过;5) 软件没有完整的文档资料。

为了缓解软件危机,能够开发出更高质量的软件,软件工程技术的理论充分用于软件开发及维护的整个过程。

1.3 软件周期

软件生命周期(SDLC,软件生存周期)是软件的产生直到报废的生命周期,周期内有需求分析、设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。

2 多媒体课件的概念

课件是凡具备一定教学功能的教学软件都称之为课件[3]。课件像学习者呈现出学习的内容,学习质量的检测、反馈和指导。

多媒体课件是将多媒体技术引入到计算机辅助教育的课件中 。

课件的形式内容单调,如练习程序、测试程序以及现在出现的大量面向信息的产品,如电子百科等。多媒体课件表现内容的形式多姿多彩, 多媒体技术在计算机辅助教学的人-机交互中的巨大潜力主要在于它能提高对信息表现形式的选择和控制能力,同时也能提高信息表现形式与人的逻辑思维和创造能力的结合程度,在顺序、符号信息等方面扩展人的信息处理能力。

为了适应教育教学的发展,越来越需要更丰富多彩的多媒体课件,这就对多媒体课件有了更多的需求,为了开发出更高质量的多媒体课件,我们就需要从软件工程的角度来进行开发。

3 基于软件工程的多媒体课件开发过程

多媒体课件设计是课件开发的重要环节,多媒体课件设计的好坏直接决定着课件的质量。多媒体课件也是一种软件,我们可以从软件工程的角度来开发多媒体课件,其必须遵从软件生命周期。同时我们要从教育学和心理学的角度来充分考虑相关的因素。多媒体课件的开发通常划分为以下5个阶段。

3.1 教学需求分析

需求分析是把软件功能和性能的总体概念描述为具体的软件需求规格说明,以此奠定软件开发的基础。教学需求分析仍然遵循软件工程的思想,它的主要任务是论证多媒体课件开发的可行性和必要性。

3.1.1 问题的定义

这个阶段要弄清的是“要解决的问题是什么” [3]。要清晰地知道这个课件的开发要解决什么教学问题。如果不弄清楚,而盲目的开发,只会浪费时间资金等等资源。所以这个阶段一定要确定的得出问题的定义。这是此次多媒体课件开发的首先要弄清楚的问题。

3.1.2 可行性分析

既然已经知道了“问题的定义”,接下来就要进行可行性分析,解决这个课件开发的必要性和可行性。为了文成这个任务,需要专职人员进行大量的市场调查和研究,初步给出整个课件的开发的概况,一个雏形。这个阶段进行的比较短,主要是研究问题是否有解,是否有可行的办法。这个阶段决定了多媒体课件是否继续的关键。

3.2 课件的教学设计

经过需求分析阶段的工作,系统必须做什么已经清楚了,总体设计阶段就是决定怎么做的时候了。总体设计的基本目的就是回答“概括的话,系统该如何实现?”这个问题[4]。这个阶段主要是:1) 划分出组成系统的物理元素――程序、文件、数据库、人工过程和文档等;2) 设计系统的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

4 总体设计阶段的工作步骤

1) 寻找实现系统的各种不同的解决方案,参照需求分析阶段得到的数据流图来做。

2) 分析员从这些供选择的方案中选出若干个合理的方案进行分析,为每个方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本\效益分析,并且制定这个方案的进度计划。

3) 分析员综合分析比较这些合理的方案,从中选择一个最佳方案向用户和使用部门负责人推荐。

4) 对最终确定的解决方案进行优化和改进,从而得到更合理的结构,进行必要的数据库设计,确定测试要求并且制定测试计划。

从上面的叙述中不难看出,在详细设计之前先进行总体设计的必要性,经过需求分析,确定课件开发的目标与规模。继而进行教学设计,教学设计也遵循软件工程的思想,是分为教学的逻辑设计和教学单元设计。比如《软件工程》这门课的教学软件按照其目标和功能划分为以下模块(图1)。

5 教学逻辑设计

教学逻辑设计的主要任务是按照教学需求分析所确定的开发目标,对课件进行总体设计,分为教学设计和风格设计两个部分[5]。

5.1 教学设计

1) 确定教学目标;2) 划分教学单元;3) 编排教学单元顺序,绘制教学单元流程图;4) 确定课件的教学方式和结构类型;5) 确定学生信息模型。

5.2 风格设计

指的是课件在展现教学内容、人机交互活动、调度控制方式等有关问题的处理时遵循的格调。

1) 教学单元课时的长短;2) 人机界面;3) 交互活动层次;4) 教学单位的调度方式;5) 课件运行的系统环境;6) 课件发行的文字资料。

6教学单元设计

教学单元设计解决的是课件的详细设计的问题。教学单元是课件进行教学的基本单位,在教学设计中要确定各教学单元的信息结构,详细列出所包含的教学内容,确定它们的屏幕设计和呈现顺序。

7 多媒体素材的采集和加工

前期工作已完成,接下来要进入程序的编制过程,根据脚本的要求,搜集整理相关的媒体素材,素材尽量做到积件式,以便提高素材的重用率,降低软件文本的体积。

8 合成

工作人员根据前期的设计,即框架及表现风格等内容,对其进行编程,将确定的素材进行制作运用,然后把各个子模块分别进行测试和调试,以便进行综合测试,进行调整[6]。

9 运行维护

教学软件运行正常,可对其,学科是不断变化的,教学软件也是应运而生的,所以要对其进行不断的完善和维护。

10 小结

软件开发是一项系统工程,需要各个方面的积极配合,方可开发出高质量的教学课件。在开发过程中,软件的方法极为重要,那么软件方法也是人们在长期的工作中不断积累的宝贵经验。把软件工程的理论用于多媒体教学课件的开发中,有利于提高软件成功率,以便摆脱教学软件的危机的出现,提高教学软件的质量。

参考文献:

[1] 陈兵.软件工程在教学软件开发中的应用[J].广西教育学院学报,2007(2).

[2] 金铁.用软件工程学原理提高多媒体软件开发质量[J]电脑知识与技术,2009 5(11).

[3] 林士敏,朱新华,覃德泽,等.计算机辅助教学[M].广西:广西科学技术出版社,2007:66-70.

[4] 郑人杰,殷人昆.软件工程概论[M].北京:清华大学出版社,1998.

第7篇:软件工程可行性分析范文

关键词:并联机床 软件工程 软件设计

目前,机床制造业企业在设计并联机床的过程中,都在积极研制和探索新型的具有多功能的系统与制造装备。从设计上看,并联机床所有的机械部分都是相对比较简单的,然而它却有着很多其他设计所不能替代的具体结构形式,这种实现形式会影响整个机床的工作性能。并联机床的控制系统主要包括两个相对负责的部分,它就是硬件和软件的结构,因为它能实现用软件去实现各种运动轨迹控制以及其他的操作功能,这一功能就是并联机床优秀于其他技术的地方。所以说,控制软件的设计是不是合理,是实现并联机床优越性能的唯一保障。

1 可行性研究

我们在设计中完全采用了工程化的思维,用这一理性思路充当软件研制的向导。通常情况下,我们都是从三个不同的方向去研究和探讨并联机床所有控制软件开发中的操作可行性、经济可行性、技术可行性,最后才能根据所设计的机床基本要求,通过软件获得最初的数据流简图。一般情况下,我们都是以传统数控机床的控制软件设计作为研究基础,根据机床所要执行的全部任务再给出所有驱动关节的运动轨迹。之后根据提前所规划好的实测的驱动杆长量和运行轨迹作一个比较,这样就能得到数字控制器的实现,通过计算机的实时不间断的监控和故障分析。在这一环节最常见的就是开放性软件结构,因为只有这样才能方便所有用户对机床进行改变和重组。这种开发的成本比较低,但在操作方式和技术上都有着极强的可行性,经过一系列的可行性分析,就可以得到控制系统数据流图。

2 需求的分析

设计的控制软件一定要满足所有并联机床的基本功能所需,最关键的就是必须保证其能在动平台的活动范围之内可以加工所有不同形状的零部构件,由于零部构件具有形态各异的形状,所以在加工中就会随时出现机床伸缩臂的运动方式与刀具的运动轨迹大不相同。这样就必须要根据实际加工的零件,设计出刀具的运动轨迹,然后再根据不同类别的零部构件进行相关的控制模块的编写。通过两种设计就可以进给轨迹加上刀具姿态变化组合而成刀具姿态变化,同时还可以实现其他复杂的进给轨迹。通常情况下,我们都是通过以下的两种方式解决对精度要求的细化。

首先,通过改变细化控制时候所输出的脉冲当量的变化,设置出脉冲分配的模块,模块参数的相互调整,可以提高相应的精度;其次:传感器的选择是否合适也是至关重要的,我们通过对所有的信息反馈功能模块进行设置,实现了在机床进行加工的过程中,对其加工的位置进行实时的监测,然后再将信息反馈到控制系统,这样一来就可以使系统根据具体情况做出相应的补偿,从而以满足了精度的要求。

3 数据字典

用软件工程的思想法去进行设计并联机床控制软件,建立数据字典成了一个至关重要的中心环节,它不但能提供数据的详细描述信息,还能做到增强程序的可维护性和可读性。以下介绍一种并联机床的控制软件字典。

检测反馈:实时检测、拾取动平台位置姿态信息,并反馈给控制系统,并对该信息进行比对。加工余量:材料的三维去除量;零件形状:被加工的所有零件都具有自身比较特殊的几何特征(水平平面、空间曲面、竖直平面、空间平面);六杆伸缩量:相对于动平台零点位移量(正、负);步进电机脉冲数:精度:零件形状与刀具轨迹的一致性;与杆长伸缩量(正、反转)相对应的电机转数;位姿:动平台的位置和姿态;参数输入:人机交互的界面,输入且显示零件的形状、精度、加工余量值;配置:根据所有构件和动平台的运行姿态和综合位置;脉冲协调与分配:按精度将六杆伸缩量分配成脉冲,并协调各杆对应电机的伺服脉冲频率;反求轨迹:根据工件形状及加工余量确定各杆伸缩量的功能模块拾取法。

4 总体设计

采用模块化结构根据软件模块化理论为思路,进行并联机床控制软件的总体设计,软件的模块内部应具有高聚合性,模块之间应具有低耦合性,模块的层次深度不可以设置太大,扇出数4~6,才有利于控制;扇入数尽量大,以便减少软件设计中的冗余度,根据此原则对并联机床控制软件进行规划。

4.1 参数输入模块

输入的参数:精度、余量、形状。这些后续模块与参数的关系:反馈+余量反求模块。形状加工形状选择模块。精度脉冲分配协调模块。

4.2 加工形状选择模块

包括平面曲线加工模块、空间直线加工模块、刀具姿态变化模块、空间曲线加工模块。

4.3 反求模块

通过现有的动平台运动的轨迹(待加工零件的形状),求取六条伸缩臂的空间位置向量的变化值。

4.4 优化模块

实时计算中所有杆的加速度、速度、运动位移,以及所有的受力情况,通过了系统优化的计算方法得出所需最佳的杆长配置。

4.5 脉冲分配协调模块

将六条伸缩臂的空间位置向量的变化值,要按精度要求分配成脉冲量输出给电机,因为在一次加工过程中,所有杆的伸缩量有大有小、有正有负,所以模块还需具有协调所有杆在每步动作中的位移的功能。

5 结语

本文详细阐述了软件工程中关于并联机床控制软件设计,强调了工程的方法研制以及软件的开发,采用模块化的方法设计所需的软件,从而增强了并联机床控制软件的可行性。这与与传统数控机床软件相比较,具有设计周期短,维护性能强等特点。

参考文献

[1] 黄真.并联机器人机构学理论与控制[M].北京:机械工业出版社,1997.

第8篇:软件工程可行性分析范文

关键词:项目管理;MSF;软件过程管理

中国绝大多数的软件、互联网企业在100人规模以下,开发团队几十人左右,工作经验3年~9年,基本处于原始手工作坊式的刀耕火种阶段,工业化的软件研发流程和方法往往不执行,或执行不得力。本文引入微软公司的MSF(Microsoft Solutions Framework)软件开发模型,通过A企业的实践证明,运用MSF框架的软件工程过程管理能大大提高小型软件开发公司的软件研发能力,软件的交付期也得到了基本保证。

一、 MSF基本模型

1. 组队模型。MSF把软件开发分成了六个小组,分别是:程序管理组、产品管理组、开发组、用户培训组、测试组、安装管理组。组队的原则是小队(一般3人~8人)、多侧面;角色交叉、目标一致;人员技术、业务精;关注能力和交货期;对项目的前景认识一致;人人参与设计;善于总结经验;共同管理、共同决策,项目人员同地工作等。

2. 过程模型。MSF过程模型主要确立了四个重要的里程碑:前景范围确认、项目规划确认、开发完成、对外,通过控制这四个里程碑来分解管理项目过程。

3. 应用模型。MSF应用模型是分层次的应用模型,大体可分为三层,用户层、业务层和数据层,各层次通过标准组件进行封装,互相通讯调用来完成系统任务。

4. 风险模型。MSF风险管理过程主要包括:风险识别、风险表述,通过分析、计划、跟踪和控制过程,最终解除风险。

二、 MSF在A企业呼叫中心项目中的具体应用

本文以A企业呼叫中心项目为例(合计开发人员50人),结合该项目中的数据资料,对此项目中服务商的选择进行具体的分析和研究。

1. 组队模型裁减。首先,确立项目经理角色,符合一般企业的管理模式,比较容易被接受。如果有多人同时负责的话,容易产生责权理不清楚,互相扯皮的现象。有一个项目经理对项目完全负责,遇到问题容易很快得到解决;他作为项目组代表,负责向上级汇报工作,能使其他人全力投入到项目中,而不至于在日常的事务中耽误太多时间,从而在某种程度上也提高了工作效率。

产品管理经理(以下简称产品经理)是项目中非常重要的角色,他可以对技术不是很精通,但是必须对产品所服务的领域非常熟悉,最好是领域专家,在他的带领下,项目才不至于偏离预先设定的前景范围。他必须对产品的需求能做出很好的把握,在适当的时候能进行流程重组,对产品的可用性和易用性有最终决定权。通过设定产品经理,主要的感觉是产品受用户的欢迎程度增加了,无用的特性少了,因而也更容易成功。

2. 开发过程管理。在过程模型上,主要包括四个重要里程碑:①前景/范围确认;②项目规划确认;③开发完成;④对外。

A企业把MSF的各个阶段对应到传统的项目开发各阶段,目的是使企业所有人员便于理解和使用。其中“前景范围确认”对应传统的“可行性分析”;“项目规划确认”对应“需求分析”和“项目计划”;“首次运行”对应“开发完成”,“”的意思和传统基本相同。同时,A企业根据企业的具体情况对流程进行了相应调整,把整个流程分为可行性分析、需求分析、开发计划、开发过程和结项总结五个阶段,下面分别进行说明。

(1)可行性分析。在做可行性分析的时候,要充分考虑企业以前的各种技术和市场积累,还有目前的资源可用性情况,特别是要做好风险分析。通常企业在项目立项前没有充分考虑各种情况,认为这个项目比较简单,应该没什么问题,结果是没有做得很成功,进度上也拖了一段时间。在后来结项分析的时候,认为主要的问题就是领域的区别造成了企业内部没有人对该领域特别熟悉,缺乏领域专家,并对上述风险估计不足,也没有对风险进行较好的管理,所以造成了项目的不成功。

上面提到,可行性分析一般是由未来的项目经理和产品经理完成,必要时还需要市场人员的参与,项目经理主要考虑技术可行性,包括项目最初估计的进度表和资源需求情况;产品经理主要考虑市场和经济上的可行性(主要是针对软件产品而言)。只有预先对各种问题进行完备的分析后,才能得出正确的决策。不要到后来因为那些事先没考虑到的,但应该想到的各种原因造成项目失败;或者虽然完成了,但是没有取得预期的效果,不能给企业带来较好的收益。

只有在可行性分析通过评审,企业高层领导者认可的情况下才能付诸实施。通过可行性分析,揭示了即将面临的各种问题及风险,使得企业内部对该项目有了一致的认识,在后来的资源申请上也更容易得到高层支持,更易于导致项目成功。

(2)需求分析。需求管理是软件开发中非常重要的部分,在一般的MIS型项目中,准确的把握需求往往是项目成功的关键。但需求管理也是个困难的过程,太多项目的需求都没有良好的管理过程,往往导致项目后期的大量修改或者直接使项目失败。

需求的管理主要由产品经理负责,其中最终用户的实时参与是一个非常重要的因素。在需求采集阶段,A企业主要采用了原型法,使用建立最终产品的界面,然后把功能实现和界面一一对应起来,和用户进行讨论,并不断的修改界面。最终在基本达成一致后,对应原型写出需求规格说明书,在评审后纳入基线管理。

在需求的制定过程中,产品经理必须和项目经理、开发人员、测试人员进行良好的沟通,使项目组全体都参与到需求分析中来,并共同确定需求的关键特性:①项目的范围:在需求分析中,首先必须明确项目的范围,去掉那些看似属于该项目其实不该在项目中的需求特性。特别是在一些MIS项目中,客户往往把一些属于他们的日常工作但不属于该项目的需求提交给项目组,这时就必须分清项目的范围,不要在项目中加入太多不应该做的东西,否则往往会导致项目范围无限扩大,最终只能是使项目失败。②需求的优先级:需求的优先级是非常重要的特性,只有在准确把握的需求优先级的基础上才可能规划外部里程碑(产品版本)和内部里程碑(开发的阶段性,后面会讲到)。通常是用户最关心,使用最频繁的功能应该属于高优先级,而那些不怎么重要或很少用到的功能应该属于低优先级。A企业必须在产品的开始版本和项目的开始就把重点放在高优先级的需求上,而对于低优先级的功能可以在项目后期根据需要进行裁减或纳入下一个版本规划。③产品的易用性:产品的易用性反映在原型中,是原型法的一个非常重要的作用。很多产品的失败其一个重要原因就是易用性比较差,虽然它在功能上满足了用户需求,甚至可以说功能很强大。通过原型法,能让用户看到并模拟使用最终的产品界面,能在需求阶段通过修正软件界面来适应用户的偏好,从而在很大程度上提高了产品的易用性,使项目更容易成功。④其他需求特性:如性能要求、健壮性等。这些特性是产品的非功能性需求,也是项目成功的关键因素,特别是在一些大型的涉及重要领域的管理信息系统中。

需求分析完成后,项目组需要对项目的初步计划进行重新审定,一般都需要变更项目时间表和资源需求。需求分析的完成也意味着项目其他部分可以齐头并进,如概要设计、测试计划、用户说明书,这也在某个方面证明了需求分析的重要性——它是下面所有活动的基础和准绳。

(3)开发计划。软件开发中的计划性是非常重要的,一个没有良好计划的开发项目能够成功的机会非常小,除非有天才的程序员再加上好运气。开发计划的主要内容包括:项目进度安排、人力资源安排,风险管理策略等。

项目的进度安排和人力资源安排可能是开发计划中最重要的部分,也是最难以估计的部分。一般国内的中小软件企业对项目工作量和开发人员能力的量化程度不高,所以导致进度和资源安排不确切,有时候甚至是相差很远。目前一个最实际的办法就是根据以往项目的积累,但必须要求是同一领域的类似项目,这样才有较强的可比性。由于这些计划安排是预估粗略的,所以还必须在以后的项目各阶段完成后进行合理的变更,反应项目的实际需求。微软的办法是把进度估计的权限交给开发人员,由开发人员根据自己的经验进行估计,由于一般开发人员往往会高估自己的能力,估计的进度也会相应偏短,最后再做适当的延长。这种办法有它合理的地方,在中国还需进行实践摸索。

对于进度的估计业界有个经验公式,即最初预估的时间再乘以2.5,可能是最后的完成时间。因为许多人在估计进度的时候,往往忽略了很多非开发时间,如与客户沟通的时间、项目组沟通时间、企业培训时间、假期等,所以在估计进度的时候,一定要全方位周全考虑,在尽可能的情况下宁愿把进度估计的长一点,免得在项目后期导致非常被动的局面。后面将具体讲到采取的阶段性的开发方法,这种方法的运用反映在进度估计时必须在各阶段间预留缓冲时间,以解决那些事先没有预料到的活动。如果进度表和要求的出货时间有冲突,宁愿砍掉一些不重要的功能,也不要盲目增加人手,这种做法可能会导致产品质量下降,最终得不偿失。

(4)开发过程。在项目的开发过程中,A企业采用了阶段式的开发过程,这也是微软企业所推荐的开发过程。在开发过程的初期,首要的活动是概要设计。概要设计的目标是简单、适用、能够覆盖所有的需求并能支持后面的阶段式开发。微软的应用方案解决模型是基于服务的三层(多层)架构,包括用户层,业务层和数据层,各层之间采用标准的接口进行通讯。

阶段开发过程不是传统的根据模块划分来依次完成各模块,最后再进行项目的整合,而是在每个阶段完成后,项目都可以推出产品,只不过该产品的功能比最终产品的功能弱一些。阶段性完成项目比传统的开发方法最明显的优点是不必到项目的末期才开始整合产品,使产品模块之间协作产生的问题及早产生,也及早修正,从而项目的风险也大大减小。当然采用阶段性开发方法也有相应的代价,最大的代价可能是反复的整合、测试已经完成的模块,但采用相应的一些自动化工具可以减小这个代价。

一般在开始的阶段进行的是系统架构和最重要的功能,后面的阶段是相对不怎么重要的功能。这样的分配有利于最终用户在早期就能看到系统的大致模样,便于他们及早的对产品提出意见,并对相应的错误进行修改;也有利于项目组在项目后期时间很紧的情况下,去掉一些不重要的功能,把它们纳入下一个版本处理,确保产品的推出时间。迭代的顺利进行依赖于良好的架构设计,前面阶段的设计应该给后面要加入的功能预留出各种接口,并能使后面的工作在前面的基础上继续进行下去。

这种在开发阶段的迭代方式不同于整个项目的完全迭代开发,后者是项目的需求、概要设计、开发等全部是迭代进行,一次迭代要进行所有的项目活动。至于谁优谁劣可能在不同的情况下有不同的说法,需要根据项目和自身的情况合理采用。还有就是迭代的次数也要根据项目的具体情况而定。不能太多,导致重复的工作量过大;也不能太少,使得该方法退化到传统方法。通常把项目分了四个阶段:架构完成、主要功能完成、其他功能完成、整合发行。实践证明,这样的实施比传统方法确实在很大程度上减小了项目失败的风险,再没有产生那种“似乎永远也做不完的感觉”。

(5)结项总结。很多企业在项目完成后往往忽视了最后的总结,没有把在上个项目中得到的经验教训进行分析,转化成企业的巨大财富。项目的总结是整个项目的不可缺少的重要组成部分,只有通过详尽的充分的项目总结,才能使项目组的所有成员对项目的历程有一个清楚的了解,提高他们对软件项目的认识。

A企业的做法是在项目完成后首先由各个项目成员写出各自的总结报告,包括所从事的工作、任务的完成情况、遇到的问题及解决方案、对项目过程的意见和自己的想法等内容。项目负责人需要把整个的项目历程整理成一份文件,其中包括项目的介绍、项目进行的具体资料(如实际花费时间、源代码数、功能模块数量等)、项目计划与实际的比较等。

在上述完成后,全体项目参与人员举行项目结项工作会议,对各人所列举的问题及想法进行讨论,目的是得出好的经验教训,从而指导后面项目过程。会议可由分别针对的问题分为几个部分,如项目过程方面的、质量管理方面的、技术方面的等,整合后形成结项会议报告。

项目负责人最后把项目历程、资料、在结项会议中总结的经验教训等整理成一份总的项目过程文件,归档并分发到各成员和上层领导,并由项目经理向上层领导汇报,这时,一个完整的项目才真正告一段落。这些项目资料给以后的项目提供很好的模板和借鉴意义,并可以作为以后项目预估的依据。

3. 风险管理。微软企业认为,软件开发是一个风险驱动的过程,由此可看出风险管理在软件项目中的重要性。一个项目的风险有许多来源,如客户、进度、开发过程、人力资源等,忽视风险的后果可能是成本超支、进度推后,最严重导致项目失败。

MSF的风险管理原则是:①风险应该在整个项目的进程中一直被估计,并且作为项目决策的依据之一。②有效的风险管理过程覆盖了所有关键的人力、过程、商务及技术领域。③风险在纳入管理前必须被清晰的表述。④重要的风险必须优先被处理。

MSF风险管理过程包括以下阶段:风险识别、风险陈述、风险分析、处理计划、风险跟踪、风险控制、风险解除。

在中小企业的风险管理过程中,一般项目经理担任风险管理员的角色,但同时需要另外的资深开发人员辅助,一起完成风险管理的任务。他们负责维护十大风险清单(不一定非要列出十个),并在项目进程中随时对风险清单进行更新。对风险的评级MSF采用的方式是:风险影响程度=风险的可能性×风险发生造成的损失,根据风险影响程度的大小对风险进行评级。

在项目实施中,A企业总结的一些高风险事件主要有:需求的不准确、项目时间表过于短促、开发一个从前没进入的领域软件、开发人员对工具的不熟悉、人员流动频繁、使用了外部软件中间件等。如果对这些风险不提前做出计划,可能会对项目的顺利进行造成极大的破坏,甚至直接导致项目失败。针对每一个风险,A企业需要列出who, when, how, how much等事项,并对风险处理的结果进行追踪,最后决定是否已经解除风险或再进入风险处理循环。

三、 总结

引入MSF管理思想后,项目的成功率比原来增大了很多。企业研发流程必须尽可能MSF模型化,工具化,没有银弹。所有的这一切都是在一个公共的工具平台上,至少需要需求管理工具、版本控制工具、日志构建工具、Bug管理工具等。德鲁克认为,管理既不是科学,也不是艺术,管理是实践,正如软件工程的世界级大师Ivar Jacobson所说,“我相信没有一种技术、没有一种流程能够解决所有的问题,我更相信基于实践的方式。你需要用不同来源的实践,结合自己的流程,改进自己的流程和工作方式,这样才能立于不败之地。”

参考文献:

1. (美)迈克尔·科索马罗,理查德·赛尔比 著.程化 译. 微软的秘密. 北京:北京大学出版社, 西蒙与舒斯特国际出版公司,1996.

2. (美)史蒂夫·麦克康奈尔 著,余孟学 译. 微软项目求生法则. 北京:机械工业出版社,2000.

3. (美)Karl E. Wiegers 著.陆丽娜,王忠民,王志敏 译. 软件需求. 北京:机械工业出版社,2000.

4. (美)卡耐基梅隆大学软件工程研究所著.刘孟仁 译. 能力成熟度模型(CMM):软件过程改进指南. 北京:电子工业出版社,2001.

5. (美)Frederick P. Brooks Jr. 著. 人月神话(影印版) The Mythical Man-Month. 北京:中国电力出版社,2003.

6. 匡晓红. 基于MSF的风险管理模型. 中国科技信息, 2007,(17).

基金项目:福建省社会科学规划一般项目(项目号:2011B223)。

第9篇:软件工程可行性分析范文

[关键词]特产;销售系统;分析;设计

中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2017)03-0150-01

一、设计背景

中国互联网协会网络营销工作委员会调查显示,随着国内旅游业和物流业的成熟,网络购物尤其是以当地特色产品为代表的网购,将在今年实现更大发展。究其原因,除了该人群对网络购物等新兴的购物模式接受程度较高之外,相比其他行业和产品,特产网络购物有着更加完备的产业链条和发展后劲,为其高速增长提供了保障。

二、设计的目的和意义

我们国家地大物博,地理区域的差异形成了很多当地独有的特色产品。它们往往会成为外出旅游后的馈赠佳品。然而由于路途的遥远,土特产的传统销售会存在很多局限性。旅游业的发展也使得游客对于当地土特产的需求量快速增长。中国人口众多,各地区特产丰富,尽管很多网站上销售的商品琳琅满目,但是专门为地方土特产设计的网上销售系统并不多见。

网上特产销售系统的主要目的就是通过网站来进行特产的宣传和销售,不再限制消费者的购买时段,不用顾忌路途的遥远。最终达到扩大和巩固客户群的效果。

三、可行性分析

可行性分析的任务是明确应用项目开发的必要性和可行性。根据网上特产销售系统的具体情况,调查管理业务流程是顺着系统信息流动的过程逐步进行的,内容包括各环节的业务处理、信息来源、处理方法、计算方法、信息流经去向、信息提供的时间和形态等。

1.系统的业务流程

1.1 顾客浏览网站

顾客通过浏览器登录到本特产销售系统网站后,可以通过新品上架、特价产品、销售排行的模块查看产品及详细信息,同时顾客也可以按人群查看产品。另外,顾客可以浏览资讯,销售排行榜等模块。

1.2 用户注册及登录

顾客如果要购买产品,需要进行用户注册,注册成功并登陆后,方可购买产品。

1.3 购物车处理

用户通过浏览产品信息选择要购买的产品时,可以将产品放入购物车,并可以添加至购物车、查看购物车、移除购物车中的产品、修改购物车产的数量、清空购物车。

1.4 收银台处理

当用户决定购买购物车中的特产时,可以通过收银台结账填写相应的订单信息,确定所填写的订单信息无误后,系统将产生此次订单的编号,完成在线下达订单,并且用户可以查看到订单。

1.5 管理员后台处理

系统管理员登录后可以查看到已受理和未受理的订单及详细信息。另外,管理员能够对系统的各项信息进行维护处理。

2.经济可行性

这套系统是为网上特产销售系统的使用者提高工作效率,节省工作时间,方便操作与管理而设计。本系统的开发在经济上是完全可行的,不需要大量经费,而且是个人独立设计。

3.技术可行性

在软件方面,由于MyEclipse和MySQL是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。

在硬件方面,则选择空间较大,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。

四、需求分析

需求分析是对系统要求的全面分析,是软件生存周期中最关键的一步。经过对各大购物网站以及产品企业销售过程的考察、分析,要求本系统具有以下功能:统一完整的操作界面,保证系统的易用性,方便用户操作;具备产品信息的展示功能,方便浏览者对产品进行浏览和比较;规范的产品分类,方便浏览者分类查找特产;完善的购物车功能与用户结账功能;设置网站资讯信息模块,使浏览者能够及时了解网站的各项动态变化,及销售的新品、特价活动等信息;特产销售排行功能;订单信息查询功能、特产信息查询功能;全面的后台管理功能,以方便管理员对网站信息进行更新与管理。

五、系统模块总体设计

本系统一共分为前台和后台两大模块,两个模块之间虽然在表面上是相互独立的,但是在对数据库的访问上是紧密相连的,各个模块访问的是同一个数据库。每个模块的功能都是按照在调研中搜集的资料进行编排制作的。依据上述功能分析,系统在两个模块的基础上每一个模块又分为几个模块。

1.前台系统功能模块。包括特色产品展台模块、按适用人群查询模块、购物车模块、收银台模块、用户维护模块、订单查询模块、资讯浏览模块、留言模块。

2、后台系统功能模块。包括特色产品信息管理模块、用户管理模块、管理员维护模块、订单管理模块、资讯管理模块、留言管理模块、财务管理模块。

六、数据库设计

对于本系统的数据库的需求而言,由于其主要是用于信息的提供、保存、更新和查询等。因此,需要分析该系统功能所隐含的对数据应用的需求,从而确定数据库的结构。

1.用户注册、登录、验证等功能需要对用户信息建立数据表,其中的数据项包括用户E-mail、昵称、密码、住址等。

2.查看特产分类信息和产品详细信息等功能既需要对特产大小类别进行管理,也需要针对每一个产品进行管理,因此至少需要两张数据表。

3.用户购物后产生的订单需要进行管理,这里也包括订单的基本信息和详细信息等。

4.订单生成后,在订单处理的过程中,需要出货等,因此可能需要记录订单的发送情况。

5.需要系统管理员对该系统进行管理,因而需要建立管理员信息数据表,其中的数据项包括管理员ID、密码等。

6.客户要进行留言,所以必须建立留言表,其中包括留言标题、留言日期等。

七、开发工具及技术简介

1.开发工具简介

MyEclipse是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

MySQL是一N采用T-SQL语言的关系型数据库管理系统。所占内存小,但是功能齐全,方便简洁易使用。

2.技术简介

本系统采用MVC框架,需要用到的Java相关技术有Jsp技术、Servlet技术、Jdbc技术、J2EE框架。其中,关键的技术难点在于Struts技术的运用。Struts技术是基于MVC的Web应用框架。在Struts框架中,模型层由实现业务逻辑的JavaBean组件构成,控制层由ActionServlet和Action来实现,视图层由一组JSP文件构成。

参考文献

[1] 汪建文.我国零售企业的商务电子化应用商场现代化[J].2008,(04):56-60.

[2] 胡燕.软件工程与标准化[J].信息技术与标准化,2004,(12):17-21.