首页 > 文章中心 > 软件工程行业分析报告

软件工程行业分析报告

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件工程行业分析报告范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

软件工程行业分析报告

软件工程行业分析报告范文第1篇

关键词:软件工程;案例驱动式教学;软件工程;教学方式

中图分类号:TP434文献标识码:A文章编号:1672-7800(2013)006-0191-03

作者简介:李洪进(1983-),女,硕士,遵义医学院医学信息工程系工程师,研究方向为计算机软件与理论、软件工程、软件测试、医学信息处理。

0引言

软件工程是医学信息工程系信息与计算科学专业的一门专业核心必修课,该课程的理论性和逻辑性强、内容抽象、较难掌握。软件工程涉及到计算机学、工程学、管理学等领域。一个高质量的软件系统需要软件工程理论的指导和具体实践相结合。如果按照传统的填鸭式教学方法,纯讲理论、照本宣科,学生会觉得枯燥无味,学习兴趣低。在软件工程教学中采用案例驱动式教学来进行课程改革,把学生分成多个项目小组,把软件工程课程中包含的软件工程管理、需求分析、软件总体和详细设计、软件测试、软件维护用项目来具体实施,可以提高教学效果,使学生一边实践一边学习、理解软件工程的理论,积累编程经验和软件项目的开发经验,把以前学习的知识巩固,使学生明白软件的开发不仅仅是编写代码那么简单,从而为以后从事项目开发和管理工作打下坚实的基础。

案例驱动式课程教学法是美国的哈佛大学在20世纪20年代提出的,因为实践效果好,目前在我国很多课程教学中也经常采用。这种教学方式主要以案例作为基本的教学素材,在教师的指导下,组织学生来分析、讨论、调查案例。在软件工程教学中,教师既可以选择案例来分析讲解,互相讨论交流,还可以选择案例给学生在课堂后搜集资料分组完成,最后综合考察具体开发的软件项目成品(论文+系统);另外可以把一些优秀的案例放到软件工程的精品课程网站上,供学生下载资料来学习研究。

1案例选取

在软件工程案例驱动式课程教学中,案例的选取很重要,如果选择的项目规模太大、行业性太强,会增加学生的完成难度,有的项目无法理解,学生会失去兴趣,因此,首先要精心挑选一些具有针对性和代表性的案例来进行课堂的知识点讲解,便于总结和学生实施项目时模仿,然后选择两个类似项目和3个中等难度的项目让学生在课后完成,在学生分组时,每个团队都要把成绩较好和一般的学生合理分配,实行因材施教,根据学生的实际情况和动手能力来选择分配项目,做到既有共性又有个性,难度适中。案例讲解要和软件生命周期结合起来,具有启发性,使学生熟练掌握软件开发各个阶段中完成的内容。具体有软件可行性分析研究报告、软件需求分析报告、软件总体设计报告、软件详细设计报告、软件使用说明书、软件测试报告。另外可以根据学校教师科研的实际情况,让学生参与一些科研项目,做力所能及的工作。加强学校和企业合作,通过课程培训和企业项目实习,也可以改编项目教学案例,比如学生成绩管理系统、职工信息系统、图书管理信息系统、医院病历管理系统、餐厅点餐系统、航空订票系统等普遍比较熟悉的项目,把经典的项目和先进的前沿技术结合。

比如在讲解用面向对象方法进行软件系统的分析、设计和开发过程时,通过学生比较熟悉的案例ATM自动取款机来贯穿。

首先根据ATM系统的需求陈述来建立问题域的对象模型,找出候选的类—&—对象,通过筛选确定类—&—对象有如下:ATM、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、账户、事务、现金兑换卡。找出对象之间的关系,进一步完善和确定关联,并按照问题领域把系统划分为“总行”、“分行”和“ATM”3个主题,编号分别是1、2和3,如图1所示。

然后确定属性,分析和选择属性时要注意不要将对象和状态误当作属性,不要过于细化;确定了类的属性后,可以识别出类的继承关系,通过反复修改得到ATM系统的对象模型,如图2所示。在建立对象模型时,并不一定严格执行这样的顺序,可以交替完善。

第二步:建立ATM系统的动态模型,编写正常情况和异常情况下交互行为的脚本,设计出系统的应用逻辑和设想友好的用户界面,然后从脚本提取事件并画出事件跟踪图,描绘出事件与对象关系的状态图,如图3所示。

第三步:建立ATM系统的功能模型,根据系统中数据之间的依赖关系和数据处理的功能,画出基本系统模型,把基本系统模型中单一的处理框分解成若干个子处理框,得到功能级数据流,并描述处理框的功能和定义服务。

最后用面向对象方法对系统进行设计,设计问题域子系统时把ATM系统进一步划分为3个子系统,分别为:ATM站、中央计算机、分行计算机子系统,如图4所示。详细讲解ATM系统的需求分析报告和系统设计说明书后,学生可以采用面向对象的编程方法来实现一个简单的模拟系统,一般采用Visual Studio 2010+SQL2008,后台编程语言是C#或VB,也有的项目组采用JSP+MYSQL数据库来完成。

这样通过具体的案例讲解使学生懂得怎样去设计人—机交互子系统、任务管理子系统和数据管理子系统,并书写系统的概要设计报告和详细设计报告,理解面向对象分析、设计和实现的具体流程。要求使用UML语言和Rational Rose2007工具来统一建模,为软件工程课程实践打下基础。

2项目考核

软件工程教学中,课程结束时考核方式由平时成绩(10%)+5个项目报告(20%)+综合项目设计实验(20%)+考试(50%)几部分组成,这样可以全面考察学生学到的知识及其运用能力。在项目具体开发实施时,为了提高学生的综合素质和学习兴趣,教师首先讲解几个常见的软件工程项目的开发过程,然后把学生分成5个团队(6至8人一个团队),把每个项目的角色分成项目经理、数据库工程师、项目构架师、编程人员、软件测试人员,让学生交叉地参与几个项目的讨论,通过查阅相关资料、提问和对话,激发他们的独立思考和创新能力,教师再进行指导答疑项目实施中的关键点,拓展贯穿知识点,提高学生的动手能力和团队合作的能力,加强交互,教学相长,提高教学质量。在每个软件开发阶段结束后,五个项目团队都要交相关文档给教师审阅,然后针对问题提出修改建议并完善报告。

软件工程的这种案例驱动式课程教学模式有利于提高学生的项目管理和软件开发素养。遵义医学院医学信息工程系的教师建立了软件工程实验室,把学生分成了几个小组,每个教师带领一个团队,项目结束后学生先提交每个阶段的开发文档报告,然后以教师参与的项目答辩的形式,让学生一边演示软件系统、教师一边提问,对所做的工作进行总结,考察了学生的学习态度、软件开发能力和编写文档的能力。采用案例教学和多元化的考核方式来提高学生的学习主动性和兴趣,更好地理解软件工程的理论知识并加以实践,使学生课堂内外结合,培养具有良好的团队开发能力和开拓精神人才。

3结语

根据医学信息系近几年的实践,教学改革取得了优良的成绩。教师采用软件工程课程案例式驱动教学,学生通过近一年的项目实践,能够全面掌握面向对象的软件系统的开发设计和维护,提高了分析问题和解决问题的能力,掌握了项目开发管理的基本流程方法,为将来的学习、毕业设计和工作奠定基础。当然,在今后的教学工作中,还要更多地开发和探索其它优秀的教学方法,积累经验,争取获得更好的教学效果。

参考文献:

[1]汪璟玢.案例与项目实践结合的“软件工程”教学方法[J].计算机教育,2012(5).

[2]王小刚.改进软件工程类课程课堂教学效果的几种方法[J].计算机教育,2012(6).

[3]甘沅鑫.高职院校软件工程课程中案例教学法的实现[J].科教纵横,2012(5).

软件工程行业分析报告范文第2篇

关键词:《软件工程》 教学改革 理论教学 实践教学

中图分类号:S762.2 文献标识码:A 文章编号:1672-3791(2012)10(c)-0146-02

随着社会信息化技术的普及和软件产业的迅速发展,软件产业成为信息产业中增长最快的领域,然而高端软件人才的匮乏严重阻碍了我国IT企业的发展,因此提高软件行业从业人员具备必要的软件开发、维护与项目管理的能力尤为重要[1]。《软件工程》是高校计算机相关专业开设的一门专业核心课程,旨在培养学生理解和掌握软件工程的理论、技术和方法,应用工程的思维进行软件开发、管理和维护。为了顺应当前软件工程教育国际化和工程化的发展的需求,高等院校需要切实加强软件工程课程的创新与改革,这对软件工程人才的培养至关重要。

当前《软件工程》课程教学中存在的一系列问题,直接影响了教育质量和教学效果。具体表现为:教学内容重理论而轻实践,不能有效地培养学生软件开发技能[2];教学案例缺乏完整性和实用性,不能帮助学生从整体上全面理解软件开发的各环节及其之间的关联[3];实践教学也缺乏系统性和针对性,不能将基本原理融入当前软件实际案例中去讲解,教学内容与软件工程实践有明显的差距等。因此,迫切需要对教学体系进行改革,形成一个融基础理论、实验教学、工程实践为一体的整体培养机制,让学生的基础知识、科学素养、专业知识、创新能力、工程能力和职业素质都得到全面均衡的发展[4]。本文将从理论教学、实践教学以及教学评价几个方面进行改革与探索。

1 理论教学探索与思考

为了满足当前软件工程教育国际化和工程化的发展要求,《软件工程》教学以IEEE的软件工程知识体系为基础,结合基础知识、先进技术和工程实践等方面构建该门课程的知识体系。《软件工程》课程知识体系分为基础、应用、实践三个部分。基础部分为理论教学,根据教学目的和教学要求,采用案例及问题驱动等教学方法,讲解软件工程的理论基础知识,包括软件生命周期各个阶段、软件质量和软件项目管理等核心内容,通过案例的分析,促进学生的独立思考,提高其对理论知识的理解和掌握。应用部分是以当前流行的统一开发过程、面向对象技术和UML语言为核心,融入实际案例,Rational Rose、Visio、Project、SVN、Loadrunner等软件工程工具和环境,使学生掌握当前先进的软件工程方法与技术。实践部分要求学生分组组建团队协作完成一个软件系统的开发,让学生从“可实践”软件工程的角度学习和运用软件工程的思想和现代技术解决软件开发问题,拥有识别、分析和解决具体问题的能力。《软件工程》课程知识体系如图1所示。

单纯地讲授《软件工程》的理论和方法显得枯燥且难以理解,若能通过一些软件开发案例对理论知识进行形象的表述,不仅能让学生易于理解这些理论和方法,亦能建立软件开发的系统化与工程化观念和质量意识。那么如何收集经典案例以及采纳何种教学方法是关系理论教学成败的关键因素。首先案例的选择与设计要有针对性,如结构化和面向对象,这两种方法侧重知识点不同讲解所贯穿的典型案例应不同,其次案例的选取应是学生熟悉的领域且它的实用性能激发学生的求知欲和兴趣。如在软件工程技术方面,作者结合学生成绩管理信息系统、宿舍水电费管理系统、教学管理系统等,论述需求分析、软件体系结构设计、用户界面设计、详细设计和软件测试等内容,重点讨论基于案例的面向对象方法和组件技术。采用何种教学方法应根据具体的知识点而定,如以IBM初期系统开发失败的缘由为例利用问题驱动法引出软件工程的概念和原理;对于软件开发工具Rational Rose的介绍则采用项目驱动法。因此,在理论教学中,把抽象的知识尽量形象化、案例化,采用引导式、探索式、讨论式和交互式等教学方式营造融洽轻松的学习氛围,鼓励学生独立思考,查阅资料,细心体会当前软件工程的精髓。

2 实践教学内容创新模式

应用部分和实践部分均属于实践教学,在此教学过程中,实施项目驱动教学法,实验设计以项目开发为主,模拟企业软件的项目管理和开发过程,碰到问题困难,进行师生互动讨论寻找解决方案,开发完成通过成果展示来进行教学评价,整个过程使学生初步体验到一个软件项目开发的全过程。实践教学活动的流程具体如下。

(1)分配任务:第一次课,要求学生以项目小组(一般5~6人,自由组合,每个成员扮演项目开发过程中的不同角色)的方式组建开发团队协同开发一个规模及难度适中的完整项目,要求按照正规软件开发流程组织实施,完成项目开发过程中形成的分析、设计、编码和测试文档,同时将Rational Rose、Visio、Project及Loadrunner等软件工具在实施过程中进行有效地应用。

(2)组建团队:学生自愿组建团队,选出组长,每组角色包括项目经理、系统分析员、软件设计师、软件开发工程师、软件测试工程师等,组员项目角色可随项目开发进度而调换。项目实施过程中采取组长负责制,负责小组的讨论和项目实践的安排,分配组员任务,各小组查资料,自选软件项目,分析开发的各项任务的安排和沟通,制定项目的开发计划。

(3)计划可行性评定:授课教师审核各组项目及项目计划实施的可行性,不行则指导小组重新选定软件项目和制定项目计划。符合要求,方可进入实施阶段。

(4)项目实施阶段:小组成员根据各自的任务查找资料,收集解决方法,定时讨论交流,各个模块间相互配合协调完成任务。包括软件分析设计阶段,完成软件需求规格说明;设计软件系统的总体结构;对功能模块进行编程测试,完成项目实现编写所有相关文档,测试和调试代码。整个实施过程由授课教师控制项目的进度和质量,同时,教师要充分发挥引导作用,让学生在实践软件设计和开发技能的同时,通过协作培养学生多人之间的沟通能力和团队协作精神。

(5)项目验收:根据软件开发流程的各个阶段成果包括可行性分析报告、需求规格说明书、项目计划书、总体设计报告、详细设计说明书、软件测试报告、项目开发总结报告等。项目验收采用阶段验收分析设计文档,每次均以小组的形式提交作业。教师根据提交的材料结合学生是否熟悉软件常用技术和工具按照软件工程管理方法进行评审,还要求各组之间互评,发现不足之处进行讨论,提供给大家一个互相交流的机会。项目结束后,每组要组织答辩,先由小组长对项目基本情况及组员作简要介绍,然后让各组员对自身完成的任务进行PPT答辩,教师和其他同学针对该成员实际负责的部分进行提问。最后项目组提交系统和所有文档。

3 教学评价体制改革

教学评价是课程教学的必要环节,在本次教学改革实践中,将课程学习评价分成3个组成部分:理论考核占50%,项目实践成绩占30%,考勤、平时作业、实训练习等占20%。项目实践成绩的评定包括小组成绩和个人成绩两部分,各占50%。小组成绩为小组中所有成员开发项目的考核成绩,包括各阶段成绩的平均值与最终答辩成绩;个人成绩为小组成员在项目开发过程中个人的考核成绩。度量因素包括个人分配工作量及难易程度、平时工作态度及项目汇报时表现等。这种评价体制充分调动了学生学习的主动性和合作精神,教学效果明显。

4 结语

本文对《软件工程》的课程教学进行了探索和改革,以IEEE公布的软件工程知识体系为基础构建了软件工程课程知识体系,提倡理论教学与实践教学并重。理论教学着重于经典案例的选取及教学方法的采纳,理论教学不再是抽象的讲授,而是贯穿案例的具体实践操作,达到了理论与实践的紧密结合。实践教学以项目为驱动模拟企业软件的项目管理和开发过程,引导学生积极思考和参与讨论,教师由知识的灌输者成为学习的引导者,学生由被动地接受教育变成主动地探索知识。实践证明,本课程极大地提高了学生的学习兴趣,取得了良好的教学效果。在今后的教学工作中,将进一步完善和实践教学改革的内容,逐步使这门课程规划化、工程化,取得更好的教学效果。

参考文献

[1] 张海藩.软件工程导论[M].5版.北京:清华大学出版社,2008:5-7.

[2] 董跃华,杨书新,李淑芝.软件工程专业多元化实践教学体系研究[J].江西理工大学学报,2009,30(3):53-55.

软件工程行业分析报告范文第3篇

关键词: 软件工程能力;产学合作模式;实践环境;团队协作

中图分类号:G642文献标识码:A文章编号:1006-4311(2012)07-0146-02

1企业需要应用型计算机人才

IT企业要求员工掌握符合国际标准的软件工程规范和技术规范,熟练运用外语,具有良好的团队协作能力,能够参与国际软件开发竞争。然而近10年来,我国各类高等院校培养的软件人才的质量存在很多问题,由于与实践严重脱节,导致大量拥有较高知识体系的大学生不能很好地胜任软件开发工作。

2《软件工程实验》课程的现实问题及反思

《软件工程》课程教学目标是:使得学生能够学会将“系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上”。

《软件工程实验》课程应该成为教学与实践之间的桥梁,然而现实教学中软件工程的教学与实践之间存在着一条跨度不小的鸿沟,教学与实践脱节的现象普遍存在。一些现实状况需要引起我们的注意与反思。

2.1 大部分学生的软件开发实践较少,很少参与开发实际的软件项目,学生普遍感觉软件工程课程中的理论知识抽象,不容易在课堂讲授中获取切身的体会和认识,很难真正理解和掌握软件工程的内涵。

2.2 没有好的实际项目给学生提供给做实验,缺乏完整的项目训练,与实践严重脱节,无法满足软件企业发展的需要。

2.3 无法提供实际环境给学生。在一般的学校实验室环境下,软件工程过程能力和团队协作能力很难体现出来,做不到锻炼综合运用知识的能力。

2.4 落后的实验教学指导方法,忽略了系统分析环节及学生系统分析能力的培养。现在老师给出的题目不管是什么应用领域,教师对课程作业的布置形式依然大同小异,首先会描述涉及到的数据结构信息甚至数据库信息,然后将具体功能需求详细罗列出来,最后要求学生提交设计报告和源程序。使得很多学生重视编程等技术的学习而忽视学生在软件工程的各个环节能力的培养和文档的编写。

2.5 从实验过程来说,学生没有足够的时间和条件为具体的项目做好充分的准备,以完成资料查找、系统分析、设计、编码和测试等软件开发工作。

以上《软件工程实验》的问题可以说各个学校都存在,非常现实。如果把培养应用型软件人才的指导思想放在首位,发挥教师的能动性,就有多种办法可以实施。《软件工程实验》课程采用产学合作就是一种新型有效的模式。它能解决本科生在学习中重理论轻实践,缺乏综合运用各种知识来完成实际工作的问题。

3产学合作模式在培养应用型软件人才的优势

《软件工程实验》课程和企业联合,可以达到双赢:

3.1 高校方面能够更多地关注企业对计算机专业学生的要求,不断在教学和实践中加强专业以及各种素质的教育,就可以缩短计算机毕业生与企业要求的距离。

3.2 企业方面选择符合企业发展的战略合作伙伴,一方面建立人才资源共享链,可以选择较优秀且成本较低的合格人才,在员工录用上做到录用适合企业的人。另一方面可以把一些适合学生做的各种实际项目交给学生做,希望能做到真正的产出,降低项目开发的的成本。实践证明,经过一系列的努力,合格的软件是可以由这些学生在软件工程实验课程中完成的。学生收获很大,企业既收获了软件又收获了人才。

4以培养应用型软件人才为目的的产学合作模式

针对各种软件工程实验课程的问题,再结合培养应用型软件人才的目的,我们在设计《软件工程实验》课程时,采用了产学合作模式。

4.1 《软件工程实验》课程和产学合作的特点①可以选定合适的企业实际软件项目。该软件项目必须来自现实社会,具有实用性和时代性。②学生必须按照一定的组队原则组成项目组。项目组内按软件开发阶段和任务划分设置若干个岗位,分工明确、各负其责,又互相协作。③学生可以深入企业,了解项目的背景和业务。使学生能提炼一个真正的公司的需求。④让学生能够得到企业对软件工程规范性的要求。驱使学生严格按软件工程的原理、技术、过程、管理等要求去完成项目。⑤企业可以以很低的成本得到合乎质量的软件。因为企业的积极参与及过程管理、质量管理,学生可以开发出满足企业要求的软件。⑥企业可以可以选择较优秀且成本较低的合格人才。

4.2 《软件工程实验》课程和产学合作的实施

4.2.1 在教学计划制定时,从2008级开始我们把软件工程专业的学生的《软件工程实验》课排在所有软件工程专业模块课程之后,为36学时,在大学四年级上学期第10周到第18周进行,周学时为4。这样的安排是希望软件工程专业的学生在学完软件工程导论和所有软件工程专业模块课程之后,对软件工程的各个阶段的理论、方法、技术、工具有了详细的了解之后,按照软件工程的要求进行一次完整的软件开发训练。

4.2.2 三年级结束后的暑假开始企业提供实际项目的原型或简单说明,让学生基本熟悉业务,在项目中进行业务分工,明确组织中的成员关系。

4.2.3 大学四年级学生有5周的毕业实习,从第5周到第9周,我们安排学生下到相关的企业,根据学生在项目中的分工,去到相应的业务岗位,通过和工作人员的交流或实际参与工作或给工作人员运行原型等各种获取需求的手段了解业务,要求他们自己做项目的需求分析,有时还需要根据实际情况提升功能或修改需求,并在实习结束后,交需求分析报告。以前给学生项目时因为同时给出了需求分析,所以只需要学生的设计和编程能力。而现在学生要试运行系统,并根据自己的实际操作分析系统的功能和需求,要完成这一任务,需求分析能力是必备的。此外,因为没有明确的数据结构和数据库信息,设计合适的数据结构和数据库也是软件开发的的前提。最后,就是根据自己得到的详细需求分析及数据结构和数据库要求进行系统设计。很明显,这种方式锻炼了学生全面解决问题的能力,既达到了毕业实习的目的,又了解了项目的需求,利用实验之外的时间还解决了学生没有足够的时间和条件为具体的项目做好充分的准备的问题。

4.2.4 学生回校后,在接下来第10周到第18周共36学时的时间中,学生开始做系统设计、编程、测试等环节的工作。这时企业至少会派1个工程师来到课堂,指导学生按照他们的设计思想自己开发一个车货交易系统,数据库设计及业务逻辑的设计都要求学生自己来完成,并且从学术研究方面寻找软件开发的方法,例如部件,控件,快速开发方法等,提升学生的思维及现代设计理念。

软件工程行业分析报告范文第4篇

【关键词】软件;度量;管理;应用

在信息化时代,计算机技术被广泛应用于各行各业,这种广泛的应用,与软件企业为各个行业打造的行业专用应用软件息息相关。在软件企业研制软件的过程中,需要对软件未来的运行情况进行分析与预测,减少软件的过程结果偏差,进而促进项目的管理者对有关的软件的开发工作实行精准的管理,同时还能使相关人员尽快发现项目进行过程中的不足和制约软件发展的问题,为软件开发的过程控制[1]、评价和进行改善提供一定的管理依据,使整个软件开发组织能够更好的进行软件的开发活动。为了达到软件开发中的这一目的,需要进行软件的度量。软件的度量就是采用不同的量度对软件生命周期中的各个元素进行度量。

当前,在软件行业,为了进行项目的有效管理和监控,可以依据软件度量相关的理论知识建立一套专门的测试流程,按照现代化的方式对项目过程进行定量的度量。在软件开发企业,如果实行了软件度量管理策略,那么将会使项目经理在负责项目进行过程中,能够更加便捷的确定项目开发的规模、投入的资金和物力、制定项目进度计划和工作量核算标准以及绩效考核等方面的工作。

一、软件开发过程度量体系架构

从当前在各企业进行的软件度量分析,可以看出软件开发过程中的度量体系的架构应该包含以下方面的核心内容:(1)开发一个行之有效的度量过程,并让这个过程称为软件开发过程中进行项目管理的一个部分(2)对软件开发的过程资源进行定制与整合,进而拟定项目及相关手续的过程计划;(3)按照拟定的计划和相关手续进行项目管理的度量过程;(4)依据项目进行时间和进度情况以及度量任务的改变,对原有计划的度量手续进行改进,然后改善度量管理的过程。

为了满足上述软件体系架构应该包含的核心内容,以美国的卡内基――梅隆大学的软件工程研究所的相关专家和学者为主的相关研究者提出了一个软件度量过程体系结构图,具体如图1所示。

图1 软件度量过程体系结构

(一)度量过程计划的制定

对于一个软件开发过程,为了更好的实施对这个项目的管理,借助度量管理的手段进行管理,现实意义重大。在这个过程中,首先应做好度量过程技术的制定。制定一套有效的度量过程计划需要重视如下两个方面的问题,一个是对度量需求的大小要有明确的认识,进而依据需求大小制定一个与这个活动相适应的度量过程。为此,我们采用目标、问题、度量的方法对需求进行分解和识别。另一个是将整个度量过程的步骤进行定义,主要是定义完整、一致、可操作的度量。对于数据的采集方法进行定义,确定采用怎样的方式进行数据的记录与保存,以及定义可以对相关度量数据采用何种方法进行分析的技术。

(二)度量过程的实施

度量过程的实施是依据制定的度量过程计划来进行的。因此,实施度量过程也有两个方面的内容:一个是进行数据的采集,即依据已经度量好的操作去进行数据的采集,并做好记录与存储工作;另一个方面就是对采集到的数据进行分析并提交分析报告。

(三)改进度量过程

改进度量过程是度量过程体系中可能存在的一个活动,这是一个进行不断优化的过程活动。这个活动存在的目的就是为了对度量过程进行不断的改善与优化,使这个度量过程能够适应项目进行过程中各种突发问题对项目管理产生的干扰。

二、软件规模度量方法及其应用

(一)度量方法介绍

在软件行业中应用度量,首次还是应用在估算软件的规模上,在这个应用过程中,形成了多种方法。例如:功能点分析法、代码行分析法、专家判定法模型、特征点、对象点、模糊逻辑等。而且这些方法在实际应用中会衍生出多种具体的方法。在其中,功能点分析法( Function Points Analysis, FPA)产生于上世纪70年代中期,目的是为了解决LOC度量过程中的一些问题和局限性,IBM聘请Allan Alhrecht等人进行不断深入研究之后总结出的一套经验方法。这个方法面世之后,立刻就被国际功能点用户协会提出的一种全新的IFPUG方法继承与取代。这个新方法的出现,使得软件度量方法得到国家软件行业相关企业和个人的推崇和接受。本文探讨的正是一种基于FPA的软件度量体系是如何建立的,以及其在软件开发过程项目管理实践中的应用。

对我国当前的软件开发过程进行分析,发现在软件开发过程中,基于FPA法的度量管理手段已经开始了较好的应用。基于FPA方法的度量管理在项目管理过程中,能够协助相关管理者解决软件开发过程中出现的相关问题,对于项目开发的成本和进度也能较好的进行控制,而且这样的度量管理手段能够十分方便的进行变化,促进对软件开发过程的管理,提升软件开发的效果。如下将详细介绍基于FPA方法的软件度量体系。

(二)基于FPA方法的软件度量体系及其应用

随着知识经济水平的不断提高,加上信息化建设步伐的加速,计算机软件行业得到了迅猛的发展,这也给软件产业的发展带来了一定的挑战。对于软的开发过程实施有效的管理不仅能够提升软件开发过程的成本和效果,而且还能促进企业管理水平的提升。对于一个成功的开发软件系统的过程,开发出的软件能够按时保质的完成并交付给用户。从对国内外软件项目开发的管理来看,影响软件开发过程成败的因素多种多样,而这其中的关键因素主要是软件开发成本的估算和管理控制。因此,对于一个即将进行的软件开发项目,需要对这个项目的规模大小、研发需要的资源和进度等情况作出一个合理的估算。

借助于当前在软件发展行业广泛应用的度量体系来解决企业软件项目管理方面的问题,其现实意义和作用巨大。如下将对基于FPA构建满足决策者需求的度量方法进行探讨。

1.FPA方法介绍

对于一个软件项目的规模,FPA方法认为由三个部分组成:信息处理规模、技术复杂程度和功能点数(FP)。

(1)信息处理规模

依据FPA方法,分析软件开发的度量管理过程,发现采用这样的方法对信息进行标注,能够计算出对系(或模块)中的每一种元素的数目,将计算出的元素数目与加权值的合计数进行相乘,即为信息的处理规模,成为UAF。 每一种描述权值对应的数据如表1所示。

表1 功能点权值表

功能点 统计值 加权因数

容易 较难 偏难 容易 较难 偏难

外部输入数 I1 I2 I3 2 3 5

外部输出数 O1 O2 O3 3 4 6

外部查询数 Q1 Q2 Q3 2 5 7

内部逻辑 LF1 LF2 LF3 8 10 14

外部接口

文件数 EF1 EF2 EF3 6 7 12

计算的方法为:FP=I+O+Q+LF+EF

式中每一项的计算值分别是统计值和加权系数的累加。其值分别为对应的加权因素的系数乘积之和。

(2)技术复杂度

基于FPA方法的独立管理体系,其复杂度需要借助于调整系数的值。在这种方法中,调整系数的值与与14个通用系统的特性有关,每一个特性都有与之相应的相关描述,进而帮助确定系统特性的影响程度。影响程度的取值范围为0~5之间,影响程度越大,数值越高。对这些特性进行评估,能够得到系统的调整系数。

(3)计算功能点数

对于修订后的功能系数,直接将功能点书和修订系数进行相乘即可得到。

2.FPA方法在软件工程开发管理中的应用

仅仅从前文所述的FPA法的计算方法来看,这种方法的适用范围似乎只是对于一个软件开发项目进行前期的规模化运作进行任务规模估算的工具,对于具体的项目工程管理视乎没有重要的用途。然而事实却与这个情况相反,因为这个方法是借助功能点为基本度量的出发点。如果结合相关的度量方法体系,有效的设定相关的指标,并对过程进行中的各种确定的量的数据进行收集和进行有效分析,则对于项目管理者做出决定有很重大的作用,能够进一步改善软件开发中存在的问题。为此,我们将讨论基于FPA的度量方法在软件管理中的应用。

(1)计划度量

对于项目管理组织,产品质量的稳定和用户的满意程度,是他们关注的首要问题;其次,就是估算项目管理中一个软件开发项目的规模,对项目的完成情况进行监督,对成本进行控制的过程,这个过程有实际的度量数据。另外,对于项目管理组织,还要(下转第73页)(上接第70页)定期依据相关的考核标准对整个研发和生产团队的生产能力和过程能力进行分析与评价。为此,分析管理者的需求,对其进行有效的分解和识别,然后将这些需求转变为可以进行直接量化的关键度量,并用一致和能够重复进行的方法对必要的数据进行收集。

(2)完善和提升度量体系,促进软件开发过程改进

作为进行度量的基础的FPA法,由于正处于不断完善和发展的过程,对于不同的项目管理过程,其可能并不适用,在进行估算时可能存在一定的主观性。为此,项目管理组织可以依据项目需要,对相关过程和体系进行定制和优化,采用统一的标准,达成一致进行分析并促进管理。同时,度量过程也不仅仅是对项目的历史信息进行评价,也不仅仅是为了一份分析报告。以功能点为衡量方法的度量体系,对软件各阶段的产出物进行衡量和控制,并用于评价组织过程绩效的改进,从而得到在软件工程中的最佳实践。

三、总结

FPA方法是一种广大用户均能理解的度量方法,它能够在项目进行的各个阶段发挥作用,为项目的正常进行提供技术支撑。对于我国进行的软件开发度量管理,在引入全新的基于FPA的独立体系之后,改善了我国软件开发过程中开发效率低,管理力度不强的问题,克服了我国作坊式软件开发先天性的不足,促进了我国软件开发的全面开花,也提升了相关软件企业在世界范围内的影响力。

参考文献

[1]周伟良.软件开发过程质量与产品质量度量方法研究[D].合肥工业大学,2012.

[2]郭都.基于软件度量技术的项目管理系统关键模块设计[D].中国科学院大学(工程管理与信息技术学院),2013.

软件工程行业分析报告范文第5篇

1.1盲目性应用

盲目性应用,即无论是产品型软件企业还是项目型软件产业,都没有一个适合自身企业特点的软件开发管理模式。随着信息化时代的来临,第三次革命的广大蔓延,使IT产业在我国得到了迅速的发展,相对应的各个软件的应用也逐渐增加。由于,我国的软件企业建设起步较晚,相关技术性软件缺乏有效的创新性。因此,在不合理的管理下,往往会造成为了追赶进度,而在短时间内生产一批软件,大大降低了软件开发的应用价值,造成程序在进入实际应用时,一改再改,上机漏洞百出,运行时间过长,甚至完全的开发使用受挫等问题。

1.2无规范性操作

无规范性操作,即相关企业缺少对软件开发的相关规定,检查督导力度不够,企业管理人员、企业技术人员的应用力度不到位等。我国大多数软件开发企业都属于中小型企业,所开发利用的产品大多效法与国外的软件产品,缺乏有效地创新能力,评估工作量能力欠缺。虽然,某些公司意识到了这一点,但在自己企业的软件开发与管理中,虽然建立了一些软件开发管理的规范,由于过于硬式化,可执行力不强,造成软件开发的操作上出现问题。操作中的无纪律、无规范性,使得很多软件的基本构架被砍掉,导致了所开发产品的质量不稳定,对以后的升级与维护造成负担,使用户对公司不满,最终损害了企业的利益。

2项目管理在软件开发中的应用措施

项目管理应用于软件的开发与利用中,即相关的软件开发项目人员,在有限的资源的前提下,运用所要规定的软件内涵、理念、方法及观点,进行有效的开发与管理。宣传并树立企业范围内的项目管理文化十分重要。实现项目全过程,包括软件开发项目的计划、软件开发项目的组织、软件开发项目的指导、软件开发项目的调控及软件开发项目的评价,得到全面的项目实现,创造企业利益最大化。将项目管理融入到软件的开发应用中应做到:

(1)对软件开发项目的成功标准做准确的设定。

(2)对项目之间的各种要求把握要合理。

(3)对软件的标准进行新的定义。

(4)建立适合的沟通渠道。

(5)制作个人计划。

(6)具备完备的需求说明。

(7)对任务进行有规律的分配。

(8)选择正确的技术并进行相应的估算。

项目管理在软件开发中的具体作用为:

(1)可实现人力、物力、财力的合理分配。

(2)对企业软件的启动、研发进行高标准的组织。

(3)合理的对各个项目进行合理的划分,实现层次管理、合理分配。

(4)调动员工的积极性,实现企业利益的最大化。因此,可以看出项目管理可有效地促进软件开发的进程与管理,是实现软件开发任务、资源管理、成本预算、项目跟踪及企业利益的良好标尺。实现项目管理与软件开发结合是企业形成良好的业务循环的重要手段。项目管理在软件开发中具体的应用措施有:

2.1完善制度

完善制度,即相关的管理人员应按照企业的任务需求合理的制定出一套相对应的管理流程。例如:企业的相关负责人可以根据企业的业务需求来制定《产品立项报告》,并根据各个部门的负责人的审批建议,做出《产品可行性调研》。后对风险进行有效的评估,然后做出产品的《初步设计报告》,并落实于人。(注:一般情况下为保障软件的质量与开发进度,新技术在软件中的使用比例应小于35%)

2.2初步设计

初步设计,即相关的管理人员根据所要开发软件的成本、进度、风险等进行准确的评估,并制定评估范围数值,并根据评估的范围,制定出项目总成本的耗资范围。例如:企业的相关责任人应集中硬件工程师、软件工程师与架构工程师三者进行商榷,并根据业务需求,企业软件系统开发规范,编码规范等,来制定出《项目建议书》、《软件总体设计》等方案,提交决策层评审,评审立项通过后方可进行下一步工作

2.3硬件选型

硬件选型的过程就是根据软件的运行状况选择其运行于哪种硬件上的过程。硬件设备的选择需要根据所开发软件的类别进行选择,例如:开发小型单机软件,需要一台电脑就够了,但是开发大型单机软件则不一样了,需要多台电脑、外网网线、路由器、局域网。项目管理的软件开发首先要构建软件系统,做好预算,不断改进设计模型,做好项目资源管理的控制和软件的优化方案。其次,需要对软件系统进行测试,根据项目管理对软件的需求设计科学合理的测试方案,不断完善硬件选型上的不足,做到硬件与软件的科学有效运行。

2.4软件设计

软件的设计是IT行业中的重中之重,是至关企业形象的良好标志。软件设计,即相关的管理人员对所要开发软件的成本、进度、风险进行精确的细化分析,制定出确实可行的软件开发项目。例如:项目经理需要根据企业的软件复用价值来确定,待开发与难开发两者,并根据《初步设计》的要求,写出《软件的详细设计》方案并编织代码,测试代码,软件设计的最终环节要在总工程师的辅助下完成,总工程师要做出详细的批示和完善措施,由此进行改进之后再进行大规模的生产与制作。不断提高软件设计产品的质量。

2.5软件的测试

软件的测试是检测所开发软件好坏的良好标尺。软件的测试,即由软件工程师编制代码后,按照《测试大纲》进行自测,并将自测后的数据进行可靠性的综合分析测试。其主要包括:

(1)功能性测试,即对产品的每一项功能进行逐一测试。

(2)应用性测试,即将所开发产品运行与实际操作中,进行现场模拟的EMC、EMI测试。并根据测试的结果,做好详细真实的记录,列出不合格项目,有待加强项目、研发人员定位等确立故障的具体原因,为故障的分析与改正打下基础。

2.6文件归档

文件的归档,即对所开发的软件项目做出完整的整合记录,实现软件的可升级性、可维护性、可继承性及可完善性的良好数据说明系统,是加强积极管理的有效手段之一。对于软件来说,确保一次性研发成功最好,若中途发生了变差,则需要进行修改,在对软件系统进行修改的时候,就需要对文件再次进行归档。所要归档的文件一般有:

(1)软件的研发报告。

(2)软件的可行性分析报告。

(3)软件的初步设计方案。

(4)硬件的详细设计方案。

(5)软件的详细设计方案。

(6)系统的结构详细设计。

(7)软件的测试结果。

(8)审批明确的生产文件。

(9)详细的使用说明书等。

3结束语