时间:2023-09-20 16:57:59
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件工程与项目管理,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
1分组的创新与实践
1.1现有的教学方式
(1)纯理论讲述。表现在学生课堂前段时间可能还能跟着教师思路学习,课堂进行到一半左右,部分学生开始出现听课不认真,持续下去会影响学习效果。
(2)纯实践活动。表现在学生必须有非常扎实的前导课程基础,但现实情况是学生的基础参差不齐,对于部分基础较好的学生效果非常不错,但是大部分学生欠缺基础支撑,无法有效地完成实践活动,影响学习效果。
(3)传统分组。弊端表现在学生性格差异较大,随机分组会出现工作分配不均,公平的目的得不到体现,小组内随意性太大,导致学生的学习效果大打折扣。
1.2创新了科学分组的分组方法
(1)方法分析。科学分组,就是班级班长负责课程小组的分组与调整。一个班级,班长对学生最有发言权,通过班长的分组,既可以把兴趣,爱好等相近的学生组织到一起,又可以在小组分配时做到优中差梯队合理。经观察发现,科学分组的模式将更加有利于发挥小组每个成员积极性,促进彼此沟通与合作。比如本学习软件工程与项目管理课程大作业先后有四次,如果鼓励学生从第一、二次开始就尽量使小组成员固定,则可以达到如下好处:合作效率高、失败风险小、创新可能大、教师管理工作减轻、学生团队意识增强。存在的不足主要表现在两个方面:两级分化现象和沟通能力受限。前一个问题可以通过教师在最初分组时的宣传和适当协调来解决,即让每组都有一个成绩略差的同学;而后一个问题可以通过加强班级的其他活动加以解决。
科学的分组方法具有较明显的优势。为了达到增强分组稳定性的目的,本文设计关键词稳定率。稳定率是本文定义的衡量小组稳定性的一个定量指标,是影响学生最终成绩的一个因素。前后两次分组越稳定,则稳定率越高。
(2)每次(尤其第一次)课程大作业前要明确告知学生固定分组的奖励政策,使学生们在第一次合作时就对合作者选择有一个较长远的考虑;
(3)第一次课程大作业后,记录每个班级的各组分组情况;
(4)从第二次课程大作业开始,在评定每门课程大作业的成绩时,计算每个小组的稳定率,并据此对各组得分进行调整。越是稳定的小组其稳定率便越高,得到的加分也就越多。
2分组作业研究
2.1现有的分组作业分析
课前教师事先准备好必选题和学生自主发挥题。目前我们系学生的选题采用参照题目与自选题目相结合的方法。这两种方法相互补充能够较好地满足当前课程大作业的需求。
2.2鼓励完善作业的分组作业
现有的分组作业目前能够发挥引导作用,但由于没有明确的鼓励或导向,多数小组的学生在选题过程中存在一定的盲目性。往往是在小组成员确定后,才一起商量到底做什么题目好些。这样,便没有全面发挥系列课程大作业的积极作用。如果某小组选择了一个很有创意和想法的题目,他们可以在历次课程大作业中延续开发并逐渐完善,甚至可能将其完全产品化或者在毕业后以此为响应国家号召,创新创业的基础。因此,在教学过程中提倡在创新基础上的完善作业方法。
2.3完善作业方法的要求
在实际教学过程中,这种鼓励政策将使更多的小组在前几次课程大作业选题时,有较长远的考虑和规划。然而,要想使该方法发挥积极核心的作用,应满足如下要求:
(1)相对科学分组方法的成功。没有相对固定的分组,很难确定某组是否做了延续的题目。可见,科学分组方法的成功是完善作业方法成功的前提;
(2)监控进程风险。分组实践中,如果教师监控不严格,该分组便可能存在不作为的情况。简单地讲,可能有某小组存在偷懒心理或侥幸心理。可见,运用该方法要实时监控进程。
(3)高质量,严要求。具体过程如下:
豍创新陈述。作业开始时,小组长代表小组必须陈述超越上一版本的明确的、具体的、可实现的创新点。
豎检验文档。交作业时,由教师对其提交的文档进行对比分析。
1计算机软件工程项目管理的基本概念
1.1工程项目管理的含义工程项目管理主要是业主通过委托从事工程项目管理的企业,签署相关协议,工程项目管理企业有义务和权力代表业主在工程项目进行的情况卜干预和服务。工程项目管理企业可以协助业主同项目工程总承包签订一系列合同,只是起到辅作用,不直接与总承包企业或者施工、勘察、供货和设计签署协议或合同,工程项目管理企业有责任在施工过程中监督合同的完成情况。
1.2软件工程项目的概况
1.2.1管理人员开展有序的项目计划
企业必须把人员管理放在重要位置,在软件工程项目的开发上人员的调配问题是保证工程顺利进行的重要因素,因此,项目能否成功和工作人员的工作能力、写作能力息息相关,针对工程项目的操作类别不同,可以分配成各个研究小组,进行科学合理的针对性开发和高效的协作,有利于工程的快速推进和更加完善。小组内的人员根据自身优势,确定自己的工作内容和工作时间。对项目进行正确的认识和对风险进行评估,与此同时从节约成木的方而出发,形成科学的人力资源调配机制,使项目得以顺利开展。
1.2.2质量和配置管理工作
软件的质量管理工作是整个项目的核心工作,质量管理决定着计算机软件工程项目管理是否真正的成功,通过一系列保证质量的手段,有计划的编制、控制和保证项目质量。保证项目质量的方式可以通过定期的进行质量评估得以实现,在日常项目管理中要不断的对工作进行考查,对于项目不合格的地方要提出意见并且考虑整改措施,不断完善整个软件配置管理的记录工作,使项目的质量能有一定的检测体系,这样开发者会对项目工程的质量问题有比较深入的了解。
1.2.3风险评估和管理工作
风险管理大致分为两种工作,一种是风险识别,另一种是风险评估。得到评估结果以后要针对问题提出相应的解决办法,定期检测计算机软件工程的好处是可以减小产生风险的概率,还可以避免一些因疏忽而产生风险,使项目的损失减少到最低,也减少了因项目风险而造成的一些相关责任人的利益冲突。
2计算机软件工程项目管理中存在的问题
2.1管理团队的协作问题
分工合作是我们完成一个项目的基木因素,在软件开发方而更需要每个人的智慧一起凝聚出果实,共同享受成果,而目前在计算机软件工程项目管理方而信息的交流方而存在一些问题,例如分工不清、团队不合作等问题。
2.2需求分析和实际中的业务存在差距问题
计算机软件工程项目没有结合实际的活动需求,也没有调查有效的数据分析,因此计算机软件工程项目管理在开发出新的产品以后并没有取得理想的业务效果。
2.3风险管理的问题
项目的风险工作是企业需要考虑的很重要的问题,如果风险没有相应科学管理,很容易带来巨大的损失,但是很多员工并不懂得如何规避风险,缺乏相应的专业知识,更是缺少对风险工作的管理,导致很多企业在风险来临时无法做出正确行动,造成巨大的经济损失。
3计算机软件工程项目管理的对策
3.1对风险管理和工作进度进行有效管理
制定风险管理制度。计算机软件工程项目管理的工作人员必须具有一定的风险识别意识和相应的遇到风险的专业知识,并且能有效的控制风险的能力。在平时要做好风险评估的管理报告,针对可能发生的风险要及时预测并且做出相应的解决行动。设置专门的人员对计算机软件工程项目定期进行风险的评估和检查工作。在整个项目中,根据需要进行多次的风险管理工作,因为风险无时无刻都有可能存在,检查的目的是尽量减少风险发生,在一般情况卜处理风险的措施一般有三种:减缓、规避和转移。提高工程的进度,不断的推进工程的工作效率。要制定详细的工作计划表,并且尽可能达到最高的工作目标。工作人员有严谨的工作态度和高效的作息时间安排,管理人员要密切关注工程进度,不断的督促员工完成应做的工作量,有条理、高效的完成对员工的工作任务的监督工作。
3.2建立完善的管理体系针对计算机软件工程的人员日常管理工作,要建立科学有效的管理方案。合理安排人才资源,确保在进行计算机软件项目工程时人员调配顺利进行。专业知识的培训对于工作人员来说
是必不可少的,可以极大的丰富计算机软件工程项目人员的专业水平和实践能力,减少工作上的失误,提高工作效率和工作人员的素质。奖罚制度是对企业员工优劣的衡量标准,所以在计算机软件工程项目管理方而采取奖罚制度可以极大程度上调动员工的积极性,使员工主动为企业创造效益,企业的发展才能有长远的未来。
3.3建立合作的团队
在员工内部建立有效的交流机制。员工的内部工作经验交流是非常重要的,因此要完善沟通方法,开辟多种交流方式和渠道,不断的增强各个部门的沟通意识,使团队的力量不断凝聚起来。明确分工,责任落实到个人。计算机软件工程管理非常复杂,需要的人员也众多,因此必须要使每个员工明确自己的工作内容和范围,清晰的划分自己所需要负责的区域,清楚自己的责任,这样能够确保每一个步骤都井井有条,非常有秩序。调动整个团队的工作积极性。通过一些活动、奖励措施等使每一个工作人员全身心的投入到工作中去,愿意并想要去做的更好,不断激发团队的潜力和员工的协作能力,这样项目不仅会做的越来越好,员工内部也会越来越和谐并且充满正能量,企业的效益也会不断得到提升。
4结语
1软件工程管理的措施
(1)加强项目管理系统性的培训,建立和完善软件工程管理体系。建立一个有效和完善的管理体系,首先应该加强项目组成员尤其是项目经理在工程项目管理方面的系统性培训,避免在项目管理中单纯依靠个人现有的知识经验,使管理工作存在较大的盲目性和随意性。其次,应该加强对项目相关业务人员的培训,让项目业务工作人员也能从思想上认识到软件工程管理的重要性,使其既能理解和接受管理理论,又能熟练掌握软件工程的专业知识,从而提高计算机软件工程项目的执行力。另外,要建立和完善软件工程管理的制度建设,落实奖惩制度,激发项目组人员的工作积极性和工作热情,从而更好地实现计算机软件工程管理的目标。
(2)提高对项目计划的认识,进行合理的项目计划和控制。虽然项目实施过程中有很多不确定的因素,但是项目总体计划和阶段性计划的作用非常关键,科学的项目计划可以有效地降低软件工程项目的实施风险,可以有效地对项目进度进行管理和控制。项目计划在项目实施中具有承上启下的作用,在项目管理的重要阶段,在制定项目计划的过程中,需要着重考虑项目计划的系统性、动态性、经济性、相关性等方面的内容。
(3)加强软件工程的团队建设,建立完善的项目沟通机制。有效的团队合作是软件项目工程得以顺利开展的前提保障,有效的团队合作需要有效地界定各团队成员工作职责,使每个团队成员发挥各自的长处,并且使团队成员之间互补互助,从而达到整个团队最大的工作效率。同时,要建立和不断完善软件工程项目的沟通机制,项目中的重要信息需要进行有效的传递和反馈,避免因在制定计划、技术问题、项目成果、情况通报等方面的沟通不足,造成重复劳动和团队成员间的互相推诿,甚至造成不必要的经济损失。
(4)增强风险意识,加强计算机软件工程的风险管理。与普通的管理工作相比,计算机软件工程管理的风险较高,需要深入学习项目风险管理知识,掌握风险识别、量化、控制工具和方法,并在日常的工作实践中加强对于风险防范知识的累积,从而能够在项目实施过程中及时、精确地辨认风险,发现潜在的威胁与隐患,采取有效的措施进行风险避免、转移、减缓、消除等控制措施。
2软件工程的应用
近些年来,随着信息技术及互联网的迅速发展,计算机软件工程的相关理论已经被运用软件产品开发和管理的各个方面。具体来说,在软件开发方面,从数据结构和软件结构的设计、算法设计、编码、软件测试,最后到可交付用户使用的软件产品,均贯穿着软件工程的管理理念。在软件管理维护方面,软件开发模型的选择、软件开发方法的确定、软件开发工具的完善、以及计算机辅助软件工程环境等软件开发环境的组合,使得软件产品的生命周期的各个阶段及各项任务顺利完成,提高了软件开发和管理的效率,使得计算机软件遍布到人们生产和生活的各个角落,有效地增加了计算机应用的准确性和便利性,推动了计算机科学技术的发展,进而推动了我国社会经济的全面发展。
作者:范伟 单位:成都师范学院
[摘要]软件项目管理通过应用知识,技能,工具和技术来指导软件项目开发以满足软件项目的需求。本文从软件项目管理的重要性谈起,研究了软件项目管理中的需求管理,沟通与协作,风险管理,并分析了四个主流的软件项目管理技术。
[关键词]软件项目管理需求管理沟通与协作风险管理
一、引言
从上个世纪中期到现在,软件产业迅猛发展。软件产业在推动人类社会发展的同时,软件危机产生了,这是因为落后的软件生产方式无法满足迅速增长的计算机软件需求。软件危机的产生促使人们开始研究软件开发的技术手段和管理方法。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过计划、组织、控制等一系列活动,合理地配置和使用各种资源,而对成本、人员、进度、质量、风险等进行分析和管理,以达到既定目标的过程。项目管理更强调项目负责人的作用和团队的协作精神,其组织形式灵活,更加关注人的因素,关注客户和服务客户,着重于提高软件项目研发的效率和质量。在本文中,对软件项目管理中的需求管理、员工之间的沟通与协作、软件项目风险管理等方面进行了阐述。本文最后介绍了软件项目管理的几项经典技术。
二、需求管理
软件需求是每个软件开发的开端与基础。在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。在进行需求分析时,可以首先分析客户原有系统的建设情况,对客户的原有产品进行分析,明确建设目标等。
需求管理对软件项目能否最终实现产生至关重要的影响。任何的软件项目都必须进行合理的、细致的、一致的需求管理,只有这样才能制定正确合理的软件开发计划,软件项目才能顺利地开发完成。
三、沟通与协作
软件项目管理中的沟通与协作是指信息的交流,是使信息发挥积极作用和达到目标的手段;协作是指和谐地在一起工作的活动。沟通技术可分分四类:(1)正式书面沟通,包括项目文档和备忘录、项目里程碑和交货时间表、需求变更和错误跟踪规程、数据字典、系统分析模型(用例图等);(2)正式口头沟通,包括状态审查会、需求评审会、设计评审会、代码评审会、用户测试,项目定期例会等;(3)非正式口头沟通,包括小组碰头会、同行讨论、与直属业务领导讨论等;(4)电子沟通,包括电子邮件、内部BBS等。协作技术包括资源合理配置、开发步骤有序化、工作目标一致化、提高关心程度、信息共享等。
四、风险管理
软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题进行分析,寻求风险应对方法,做好风险管理计划。
针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。常见的主要风险管理模型如下。
1.SEI的连续风险管理模型(CRM)。SEICRM模型的风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。
2.BarryBoehm模型。Boehm模型的思想核心是:10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。Boehm模型的基本形式可描述为:RE=P(UO)3L(UO),其中RE表示风险或者风险所造成的影响;P(UO)表示令人不满意的结果所发生的概率;L(UO)表示糟糕的结果会产生的破坏性的程度。
3.软件工程风险模型(SERIM).SERIM模型要求从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。
五、软件项目管理技术
1.CMM。CMM是美国卡纳基梅隆大学软件工程研究所(CMU/SEI)提出的软件研发项目管理的一系列方法,它基于组织对关键过程域的支持,定义了软件过程成熟度的五个级别。级别1(初始级)描述了不成熟,或者说是未定义过程的组织。级别2(可重复级),级别3(已定义级),级别4(已管理级)和级别5(优化级)分别描述了软件过程成熟度级别递增的组织。和这些级别相关的KPA是:级别2:需求管理,软件项目计划,软件项目跟踪和监控,软件子合同管理,软件质量保证,软件配置管理。级别3:组织级过程焦点,组织级过程定义,培训大纲,集成软件管理,软件产品工程,组间协调,同行评审。级别4:定量过程管理,软件质量管理。级别5:缺陷预防,技术更新管理,过程更改管理。
2.CMMI。CMMI被看作是把各种CMM集成为一个系列的模型中。CMMI的基础源模型包括:软件CMM2.0版(草稿C),EIA-731系统工程,以及IPDCMM(IPD)0.98a版。CMMI也描述了5个不同的成熟度级别:级别1(初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。级别2(已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理、以及度量和分析。
3.PSP。PSP(PersonalSoftwareProcess,个体软件过程)是由CMU/SEI开发出来的,它的推出在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。
六、小结
本文分析研究了软件项目管理中的需求管理、员工之间的沟通与协作、软件项目风险管理。最后结合实践,提出并分析了软件项目管理技术。我们相信随着软件工程的发展和进一步成熟,软件项目管理技术的发展会取得更大的进步。在实际项目中,我们要坚持改善软件工程的管理,并在实践中总结适合自身的经验,这样才有利于管理技术的进步和软件项目的顺利完成,创造出更高的品质、更大的效益。
参考文献:
[1]PhpMetzger,JohnBoddie.软件项目管理-过程控制与人员管理[M].北京:电子工业出版社,2002.
[2]RajeevTShandilya.王克仁译.软件项目管理[M].北京:科学技术出版社,2002.
[关键词] 软件项目管理 需求管理 沟通与协作 风险管理
一、引言
从上个世纪中期到现在,软件产业迅猛发展。软件产业在推动人类社会发展的同时,软件危机产生了,这是因为落后的软件生产方式无法满足迅速增长的计算机软件需求。软件危机的产生促使人们开始研究软件开发的技术手段和管理方法。
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成, 通过计划、组织、控制等一系列活动, 合理地配置和使用各种资源, 而对成本、人员、进度、质量、风险等进行分析和管理, 以达到既定目标的过程。项目管理更强调项目负责人的作用和团队的协作精神, 其组织形式灵活, 更加关注人的因素, 关注客户和服务客户, 着重于提高软件项目研发的效率和质量。在本文中,对软件项目管理中的需求管理、员工之间的沟通与协作、软件项目风险管理等方面进行了阐述。本文最后介绍了软件项目管理的几项经典技术。
二、需求管理
软件需求是每个软件开发的开端与基础。在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。在进行需求分析时,可以首先分析客户原有系统的建设情况,对客户的原有产品进行分析,明确建设目标等。
需求管理对软件项目能否最终实现产生至关重要的影响。任何的软件项目都必须进行合理的、细致的、一致的需求管理,只有这样才能制定正确合理的软件开发计划,软件项目才能顺利地开发完成。
三、沟通与协作
软件项目管理中的沟通与协作是指信息的交流, 是使信息发挥积极作用和达到目标的手段;协作是指和谐地在一起工作的活动。沟通技术可分分四类:(1)正式书面沟通, 包括项目文档和备忘录、项目里程碑和交货时间表、需求变更和错误跟踪规程、数据字典、系统分析模型( 用例图等) ;(2)正式口头沟通, 包括状态审查会、需求评审会、设计评审会、代码评审会、用户测试, 项目定期例会等;(3)非正式口头沟通, 包括小组碰头会、同行讨论、与直属业务领导讨论等;(4)电子沟通, 包括电子邮件、内部BBS 等。协作技术包括资源合理配置、开发步骤有序化、工作目标一致化、提高关心程度、信息共享等。
四、风险管理
软件项目风险管理是指对在软件开发过程中所遇到的预算和进度等方面的问题进行分析,寻求风险应对方法,做好风险管理计划。
针对软件项目中的风险管理问题,不少专家、组织提出了自己的风险管理模型。 常见的主要风险管理模型如下。
1.SEI的连续风险管理模型(CRM)。SEI CRM模型的风险管理原则是不断地评估可能造成恶劣后果的因素;决定最迫切需要处理的风险;实现控制风险的策略;评测并确保风险策略实施的有效性。CRM模型要求在项目生命期的所有阶段都关注风险识别和管理,它将风险管理划分为五个步骤:风险识别、分析、计划、跟踪、控制。
2.Barry Boehm模型。Boehm模型的思想核心是:10大风险因素列表。针对每个风险因素,都给出了一系列的风险管理策略。在实际操作时,Boehm以10大风险列表为依据,总结当前项目具体的风险因素,评估后进行计划和实施,在下一次定期召开的会议上再对这10大风险因素的解决情况进行总结,产生新的10大风险因素表,依此类推。Boehm模型的基本形式可描述为:RE = P (UO) 3 L (UO) ,其中RE表示风险或者风险所造成的影响;P (UO)表示令人不满意的结果所发生的概率;L (UO)表示糟糕的结果会产生的破坏性的程度。
3.软件工程风险模型( SER IM) . SER IM模型要求从技术和商业两个角度对软件风险管理进行剖析,考虑的问题涉及开销、进度、技术性能等。它还提供了一些指标和模型来估量和预测风险,由于这些数据来源于大量的实际经验,因此具有很强的说服力。
五、软件项目管理技术
1.CMM。CMM是美国卡纳基梅隆大学软件工程研究所(CMU /SEI)提出的软件研发项目管理的一系列方法,它基于组织对关键过程域的支持,定义了软件过程成熟度的五个级别。级别1 (初始级)描述了不成熟,或者说是未定义过程的组织。级别2 (可重复级) ,级别3 (已定义级) ,级别4 (已管理级)和级别5 (优化级)分别描述了软件过程成熟度级别递增的组织。和这些级别相关的KPA是:级别2:需求管理,软件项目计划,软件项目跟踪和监控,软件子合同管理,软件质量保证,软件配置管理。级别3:组织级过程焦点,组织级过程定义,培训大纲,集成软件管理,软件产品工程,组间协调,同行评审。级别4:定量过程管理,软件质量管理。级别5:缺陷预防,技术更新管理,过程更改管理。
2.CMMI。CMM I被看作是把各种CMM集成为一个系列的模型中。CMM I的基础源模型包括: 软件CMM2. 0版(草稿C) , EIA - 731系统工程,以及IPD CMM( IPD) 0. 98a版。CMM I也描述了5个不同的成熟度级别:级别1 (初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。级别2 (已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理、以及度量和分析。
3.PSP。PSP ( Personal Software Process,个体软件过程)是由CMU /SE I开发出来的,它的推出在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。因此, PSP保障软件产品质量的一个重要途径是提高设计质量。
六、小结
本文分析研究了软件项目管理中的需求管理、员工之间的沟通与协作、软件项目风险管理。最后结合实践,提出并分析了软件项目管理技术。我们相信随着软件工程的发展和进一步成熟,软件项目管理技术的发展会取得更大的进步。在实际项目中,我们要坚持改善软件工程的管理,并在实践中总结适合自身的经验,这样才有利于管理技术的进步和软件项目的顺利完成,创造出更高的品质、更大的效益。
参考文献:
[1]Php Metzger,John Boddie. 软件项目管理-过程控制与人员管理[M]. 北京:电子工业出版社,2002.
[2] Rajeev T Shandilya. 王克仁译. 软件项目管理[M]. 北京:科学技术出版社, 2002.
[3] 杨根兴,金荣得,宗宇伟.软件需求的不确定性与解决途径.计算机应用与软件.
关键词:计算机软件工程;自动化管理;措施
中图分类号:TP311.5
当今时代,是计算机信息技术的时代。伴随着计算机技术的飞速发展,软件开发项目也逐渐变的火热起来。随着软件开发队规模的不断扩大,以及软件开发人员的不断增多,软件工程项目存在的问题也越来越多,如不加以规范管理,就会对软件工程项目的良好发展带来不利的影响。因此,加强对软件工程项目开发的自动化管理迫在眉睫。
1 计算机软件工程项目管理的特征及内容
1.1 软件工程项目的特征
计算机软件工程项目的特征可以概括为下面几点:首先,不具有可视性,软件是不能够进行触摸的,要感知软件的存在,必须使用专门的软件工程方法以及相应的测试手段才可以;其次,不具有唯一性,在软件进行设计的时候,没有一个标准的通用的软件设计过程,其设计的方法多种多样;最后,具有风险性,在进行软件工程项目设计的时候,对于一些比较大型的软件工程项目,其设计通常是一次性完成的,由于软件的结构非常的复杂,与此同时,研发的工作量和风险都比较大,而对软件的需求同样也不具有长期的稳定性。
1.2 计算机软件工程项目管理的主要内容
由于计算机软件工程项目涉及的面比较的多,因此需要特别的加强管理。主要进行管理的内容可以分为以下几个方面:
(1)参与研发的设计人员。参与研发的团队一般包括项目的负责人、高级以及初级程序员或者资料员等等。另外,由于软件工程项目的大小是不一样的,常常出现一个人兼任多种职务的现象。在此,对这些身兼多职的员工要明确他们的责任。对于程序员来说,程序员要有较高的程序编写能力。
(2)软件质量及其配置的管理。软件的质量管理具有非常重要的作用,其所包含的内容可以分为编制软件质量计划、软件项目质量保证以及软件项目质量控制等等。软件工程项目质量的保证,指的是对整个工程的绩效进行评估,从而判定软件项目是否合格。质量控制是站在全局的角度,对工程的结果进行监测,与此同时,对于软件工程项目不合乎规范的地方采取一定的措施及时的进行改正。对软件的配置进行管理,对软件研发的整个过程进行全纪录,从而使得软件的研发者能够对软件使用的各个阶段的配置情况进行比较清晰的了解和掌握。因此,软件的配置管理就是对软件进行必要的标识,同时对于软件的修改进行控制。在整个软件开发过程中,对配置的管理是最为重要的。
(3)项目工程的风险管理。软件工程项目的风险主要是对潜在的风险进行及时的识别、估计以及采取进一步措施进行解决。在对软件工程项目进行风险分析以及管理的时候,要使人们增强安全意识,并采取相应的措施。因此,强化对风险进行分析和管理,究其本质,是为了有效的减少软件工程项目的损失,进而确保企业的经济效益不受损害。
2 自动化在计算机软件工程项目中的应用
2.1 应用概述
当前,自动化技术中,一般使用可编程控制器将复杂的编程简单化,从而使得计算机的性能得到了很大的改进。这种控制装置以计算机技术作为基础,在此基础上对工业化的生产进行管理控制,纵使使得工业生产中计算机自动化得以实现。这种技术应用的范围比较广,在工业领域中使用,可以大大的提升工程建设的效率。自动化技术应用于软件工程项目中,同样可以提升软件项目开发的效率。
2.2 计算机辅助工程在计算机软件工程项目的中的应用
计算机辅助工程(CAE),主要是利用计算机对比较复杂的工程进行测试计算,然后对方案的可行性进检测。在计算机软件工程项目中,使用CAE能够对整个工程项目进行监测与控制,从而对工程项目中需要改进的地方进行及时的调整。运用计算机辅助设计可以确保自动化设备操作的稳定性,然后把参数进行优化,进而选择出最佳的方案。运用CAPP可以在产品的生产以及设计过程中,代替人进行相关的计算以及信息分析,节省人力,节约成本,同时也提升了效率,实现了确保工程项目质量的目标。CAM可以把进行生产活动之前的设计方案以及相关的信息,转化成制造信息,然后通过数控方式对产品的生产过程以及包装成品的过程进行监测,一旦出现问题进行及时的调整。
当前计算机对系统的自动化在自动化控制系统中的应用比较多。此外,随着计算机技术的发展,软件的自动化已经逐渐的向计算机智能领域延伸。智能通过对人的模仿,实现数据的处理,从而建立起控制模型来对工程项目进行分析。
3 计算机软件工程项目中使用自动化管理的注意事项
在对计算机软件工程项目使用自动化进行管理的时候,除去使用相应的技术外,还要注意以下一些问题:
3.1 确保设备良好
相关的检测人员要对自动化设备进行严格仔细的检查,然后使用严密的方法对相关的采集设备以及存储设备进行调试。在开始进行自动化管理之前,应该对软件进行检验,所使用的方法为人工检验计算,然后对于各项设备进行必要的调整,主要注意其规格和性能是否符合要求。待确定设备符合要求后,对其建立档案,然后正式投入使用。在进行自动化管理的过程中,对于机器设备所在环境必须特别的注意,要确保环境干燥,同时还要防止出现粉尘等颗粒物对自动化设备的损害,另外,室内的温度一定要适中。
3.2 确保软件正常
在使用自动化设备进行管理的时候,务必检测外来的软件,明确这些软件是否与本项目相符合,以及和本公司的设备是否能够进行兼容。除此之外,工程检测人员要对自动化设备所使用的软件进行严格仔细的检查,确保这些软件能够正常的运行。如果发现某些软件出现问题,应该及时的向有关单位进行报告。在某些情况下,如果需要对计算机和自动化设备进行相应的调整,这个时候,也必须向有关的部门进行申报,同时对校验的方式及最终的结果进行细致的讨论研究。通常情况下,对于人工计算的结果以及计算机计算的结果要进行比对,同时将结果记录在档案里面。
3.3 对数据进行备份
在对设备进行测试的过程中,必须对数据进行备份。这对于将来进行对数据进行进一步对比具有非常重要的意义。检测员务必要对设备的数据做好备份,然后记录好。通常情况下,对于监测到的数据,要实行联网备份。可以使用自动化技术设定需要备份的次数,与此同时,还要对外部设备进行重复备份,这样做的目的是为了避免数据出现损坏或者丢失。此外,作为监测人员,人工处理的速度一定要和机器处理的速度同步,同时对数据要进行定期的归纳以及分析。
4 结束语
综上所述,计算机软件工程项目随着科学技术的不断发展,呈现出方兴未艾之势。软件工程项目的规模不断扩大,开发人员不断增多,使得必须要对软件工程项目进行必要的管理。自动化管理在软件工程项目管理中具有非常重要的作用。本文先论述了计算机软件工程项目管理的特征及内容,然后重点分析了计算机辅助工程在软件工程管理中的应用,最后分析了自动化管理中需要注意的几点问题,期待本文的研究能够对软件工程项目自动化管理水平提升有所帮助。
参考文献:
[1]王战勇.计算机软件工程项目的自动化管理[J].信息通信,2013(05).
[2]由智尧.计算机软件工程管理初探[J].数字技术与应用,2013(07).
[3]邵国红.探析计算机软件工程项目管理[J].硅谷,2011(02).
随着软件规模、复杂度以及需求量的不断增大,软件的开发成本和进度变得难以估计,软件可信性越来越差。这种软件成本不断上升而质量不断下降之间的矛盾即所谓的“软件危机”。软件质量难以得到测量和控制,会造成或大或小的经济损失。20世纪60年代以来,人们为克服“软件危机”做了大量工作,不断将工程技术和管理中成熟的方法、技术原则引入的软件工程科学中,逐步形成系统的软件开发理论、技术和方法。从而,“软件工程”也逐步成为高等学校计算机教学计划中的一门重要课程。软件工程课程是软件工程专业课程体系中的核心课程,软件工程设计知识面广泛,研究人员将各种传统工程设计中的概念、方法理论和软件工程结合,用于指导软件工程实践,发展迅速,内涵丰富。但受传统教学模式的影响,教学形式较单一,受传统班级课堂形式和学时的制约,教学难度较大。目前,理论课中主要采用“讲座式”教学法,灌输基本概念、原理;而在实验课中则主要采取“放任式”教学法。目前软件工程教学方法、形式单一、学生学习乏味。软件工程这种实践性很强的课程,应该以“讲授知识”为主还是以“培养能力”为主?不同的教学目标必然导致教学方法和效果的差异。软件工程作为本科生或研究生的专业学位课,应该以学生为主体,着重培养软件工程能力,指导学生自觉学习相关理论知识并自觉将理论用于实践,培养学生开发探索的主动性及参与大型软件工程实践的基础能力。
2软件工程特点及发展趋势软件工程特点
1)软件工程着眼于大规模、高复杂性的软件。传统的程序设计技术是仅仅指小型程序设计。
2)软件工程的主要任务是解决大规模软件设计的复杂性。复杂性一方面是软件构件大量增加,因素繁多,另一方面是软件需求、软件体系结构等具有不确定性。
3)软件需求等经常变化。在软件设计初期,由于软件开发人员和软件使用人员存在交流的鸿沟,或者是软件使用人员本身对软件需求不明确,导致软件需求在开发过程中不断变更,而软件需求的变更使软件开发周期大大延迟。
4)软件开发的效率非常重要。软件的市场需求很大,随着移动互联网的普及和有线无线网络的发展,IT业务与日俱增,软件需求量也随之增加,但是软件的供应比较滞后。软件工程发展趋势
1)开放计算。开放计算包括开源软件、开放架构和开放标准三个方面。
2)模块化。一方面企业面临的软件行业环境复杂性不断增加,另一方面企业需要更多创新模式和业务流程的灵活性。为了缩短开发周期,软件需要在体系结构和软件代码级别实现复用,模块化思想能够帮助软件公司很好地解决这一问题。
3软件工程人才需求
国内市场每年对软件人才的需求高达80万,这个数据随着中国信息化基础设施的建设快速增长。软件工程专业人才相对不足,高水平的软件工程人才需求量很大。用人单位对具有实际操作能力的软件人才是用人单位最为需要的,而且越是上规模的公司,对于软件人才的需要越大。我国的软件产业总的发展水平还处于建设阶段,所以国内软件产业还存在巨大的发展空间,软件工程相关产业会得到更多的关注和投入。据统计,目前全世界软件外包市场需求高达1000亿美元,国内软件服务外包产业收入三年后将增加至260亿美元。
4专业能力要求
软件专业人才应具备基本专业能力、软件系统研究与开发的基本能力、项目管理能力、软件建模设计能力、实践能力以及计算机软件系统测试、维护和管理能力等。具体的专业能力要求如下。基本专业能力了解计算机科学与技术、软件工程的发展动态,具有学习新理论及新技术的能力,掌握现代计算机系统的组织与结构,掌握计算机系统的基本理论与基本知识,掌握软件工程的基本理论与基本知识。软件项目管理能力当前中国项目管理专业人才在数量和质量上都与发达国家有较大差距,项目管理人才培养仍然处于起步阶段。项目管理能力主要体现在学习、思考、应用、分析和发现问题、交流沟通五个方面。管理能力提高的途径在于加强学习,要树立创新观念,要有良好的执行力,要培养勤思考的习惯,要有良好的协调和沟通能力。软件建模分析和设计能力软件工程课程具有内容丰富、涉及知识面广、实践操作不方便、知识更新快、受课堂教学模式制约等特点,需要更加灵活的教学形式如互动式教学模式等培养学生系统化建模能力和工程分析与设计能力。除此之外,需要相应设计以及教学辅助平台和工程实验环境提高学生工程能力。实践能力实践能力就是能够按照既定的目标,在有限的时间内,按照既定的开发进度和软件质量要求,应用相应的专业理论知识和方法完成软件工程任务的能力。目前,许多本科生和研究生课程在培养目标上偏重理论能力的培养,而在系统化工程实践能力培养方面不够重视。因而,理论教学课时数较多,实践教学课时数偏少。
5结束语
关键词 数据挖掘;软件工程;开源软件
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2014)01-0073-01
所谓数据挖掘是指在大量、无序、模糊的数据中挖掘出其中有用的信息的过程,它能实现信息的分类、聚类并进行偏差分析。在这个信息爆炸的时代里,人们获取的信息量是非常惊人的。在软件工程中,软件的开发及管理过程中都会出现大量信息和数据,如何更好地在众多信息中快速找出有用信息成为困扰软件工程的一大问题,因此,对信息数据的挖掘在软件工程中显得更为重要。
1 数据挖掘的过程及技术
一般的数据挖掘过程包括4个步骤,即对软件库里的数据进行选择、对被选择的数据进行预处理形成格式化数据、再对格式化的信息进行挖掘,最终吸收其中有用的知识。
在软件工程中数据挖掘的工作一般可以分为3个层次,即交互式可视数据探查、自动模式提取及模型建构,这3个层面相互关联,其中可视数据探查为提取模式及模型的建构提供基础,模型的建构又为数据探查和模式提取提供了指导。
软件工程中常用的数据挖掘技术主要是通过分析、聚类、预测及统计分析等技术从众多资源中找出潜在的、对人们有用的信息并反馈给软件系统。
2 数据挖掘技术在软件工程中的应用
数据挖掘技术被应用到软件工程中已经有20多年的历史,随着科学技术的不断进步,数据挖掘技术的应用也越来越广泛,如,在银行、保险、交通及零售等行业都在应用数据挖掘技术。而在软件工程中使用数据挖掘则可以提高软件系统的维护效率并增加系统的稳定性和安全性。软件工程中的程序代码分析、软件项目管理、软件故障检测及开源软件开发等方面都应用了数据挖掘技术。
2.1 开源软件开发中的数据挖掘
开源软件(OSS)顾名思义就是源代码是开放的软件,这种软件目前大多对客户都是免费的,也正是由于这个原因使得开源软件的控制和管理非常困难,因此,要引进数据挖掘技术帮助开源软件提高质量。如,大阪大学的学生就设计了一个分布式的数据挖掘系统,它不仅能对大规模系统进行挖掘还能对多个开源软件进行挖掘。还有牛津大学设计的数据挖掘系统能实现对系统的开发者与使用者进行跟踪管理,极大地提高了开源软件的质量和使用率。
2.2 软件项目管理中的数据挖掘
软件项目管理中的数据挖掘主要体现在两个方面,一个是对组织关系的挖掘一个是对版本控制信息的挖掘。其中,软件项目的管理是一个复杂的工程,对人员组织关系的挖掘主要是对人力资源进行协调和分配。例如,一个工程项目可能有成百上千人参与,在参与过程中人员之间的电子邮件、文档等都会产生交互,交互中极易造成秩序混乱,而数据挖掘技术的使用则可以很好的将工作人员的组织关系进行区分,有利于软件项目管理的顺利进行。
此外,数据挖掘技术还体现在对版本控制信息的挖掘。版本控制可以记录文件内容的变化,以方便用户查看版本的修订情况。将数据挖掘技术引入到版本控制信息中可以减少系统后期的维护成本。它能为软件系统的维护提供警示作用,有些挖掘数据能清晰的查找出系统修复记录中的错误,通过查找错误记录使软件的设计者能成功避开很多常见的错误,提高软件项目的管理水平。
2.3 程序代码及机构中的数据挖掘
这里所说的程序代码指的是克隆代码,所谓克隆代码就是通过简单的复制和粘贴进行再次使用的代码。对克隆代码的检测也是数据挖掘中应用最早的,目前对克隆代码的检测主要有以下几种方式,基于文本对比方法、基于标识符对比方法、基于度量的方法、基于程序结构表示的方法及运用潜在语义索引等方法。但是对于克隆代码的数据挖掘还不是很成熟,主要是因为数据挖掘时仅考虑了语法信息而忽略了对语义的挖掘。
其次,是对横切关注点(Aspect)的挖掘,对Aspect进行挖掘主要是因为有些关注点在程序中的代码非常相似甚至是同一代码段。对于Aspect的挖掘方式有很多,如,对代码文本分析时,可以根据不同的特点可以分为基于文本和类型的分析、形式概念分析方法、基于聚类分析方法及基于自然语言的分析方法等等。对于执行模式进行挖掘时可采用形式概念分析法及基于方法执行关系的挖掘两种方式。对于调用关系分析时,可以采用扇入分析软件探查技术和基于耦合与Page Rank度量的方式进行挖掘。
最后是在数据库中挖掘有用的代码或构件。目前,常用的方法有通过记录输入-输出关系检索、通过关键词进行索引和挖掘、寻找相似的代码源和语义、基于构建交互关系图的方法及对所需构件进行形式化描述等等,如我们使用的Google、百度等搜索引擎都可以进行数据的检索。
2.4 软件故障检测中的数据挖掘
数据挖掘技术还能从程序的执行记录中挖掘到程序的说明(规约)及交互模式,这些都可以对软件故障进行定位和检测。
对程序说明的挖掘主要是通过对信息的跟踪进行逆向建模,有利于加强对程序的理解和后续的维护。目前使用较多的挖掘方式有基于规则和基于自动化两种挖掘方式。其中,基于规则的挖掘方法主要是根据程序行为发现一定的规则并用时态逻辑表达式来表达。基于自动化挖掘方式目前较为成熟的有基于自动机抽象表示的API规则挖掘方法。
传统的对软件故障进行定位技术采用的是程序切片,但这种技术过于复杂,通常导致定位不准确。后来经过对传统定位方式不断的改进,目前较为成功的是通过程序谱抽象表示出程序的执行轨迹,并将成功的运行与故障的运行进行比较,通过之间的差异来判定故障的来源,以及通过近邻查询的方式进行故障定位等等。这些新式数据挖掘技术的应用极大的提高了软件故障检测的效率和准确性。
3 结束语
数据挖掘技术在分析程序代码、软件故障检测、开源软件开发及软件项目管理等方面的广泛应用,有利于提高软件工程的控制和管理。但是目前对于数据挖掘技术的研究还不是很成熟,因此我们要继续加强对软件工程中数据挖掘技术的深入研究,更好的促进软件的开发和管理。
参考文献
[1]李新,张晓静,米燕涛.软件开发过程中的数据挖掘[J].石家庄职业技术学院学报,2012(02):10-12.
[2]赵丽坤,陈立文,张国宗.基于数据挖掘技术的软件项目管理体系[J].经营与管理,2012(12):34-35.
关键词:软件工程;软件危机;发展与应用
中图分类号:TP31文献标识码:A文章编号:1007-9599 (2010) 07-0000-01
Development&Application of Software Engineering
Zhang Bin
(China Yto Group Corporation,Luoyang471004,China)
Abstract:The related content of the software engineering was summarized in this paper,the sofeware engineering techniques and methods and software engineering application were explained.The development trend of software engineering was explained,which has laid the groudwork for the further research on the issues.
Keywords:Software engineering;Software crisis;Development& Application
一、前言
随着高科技的逐步发展,计算机应用得到了日益普及与深化。计算机应用的大范围扩展,对软件自身与软件系统的需求的复杂度大幅度上升。传统的软件开发方法已无法适应计算机用户在效率与质量等方面对软件的需要[1]。由此导致了“软件危机”,长期以来,研究人员为了克服“软件危机”,在软件的相关领域做了大量而有实效的研究工作,逐步形成了系统的软件开发技术、理论与方法。在计算机信息时代的今天,计算机软件工程扮演着重要的角色。它已成为现代信息技术竞争的关键领域。
二、软件工程的相关内容概述
(一)软件工程的产生背景
计算机硬件技术的迅速发展,要求软件系统能与之相适应。然而,早期的软件生产具有作坊式、个体化特点,软件开发平台单一,开发工具相对落后,程序设计语言功能差。尤其是软件维护工作复杂,耗费大量的物力、人力与计算机资源,大量程序的个体化特性使得它们无法维护与修改。而且,软件的结构变得越来越复杂,规模也越来越大,软件维护与管理开发费用不断增加,这种软件开发工具、技术与生产方式落后的状况与计算机行业对软件的需求日益增加形成了很大矛盾。为了解决这一困境,研究人员把工程技术的思想引入到软件领域,使软件技术走上工程学科的途径。西欧与美国的一些软件研究人员于1968年首先提出“软件工程”这一学科名词,从此软件工程得到了相关研究与发展。
(一)软件工程的定义
软件工程是一门研究用工程化的方法维护与构建实用的、有效的与高质量的软件学科。它涉及到数据库、系统平台、程序设计语言、软件开发工具、设计模式与标准等方面的内容。在现代信息社会中,软件应用在许多方面。典型的软件如嵌入式系统、办公套件、编译器、数据库、电子邮件与游戏等。工业、银行、政府部门、农业、航空等[2]。这些实际应用促进了社会与经济的迅速发展,以方面提高了生活质量,另一方面,使人们的工作更加高效。
三、软件工程的方法与技术
当前,软件工程中主要使用的技术与方法可以分成管理与技术两类。从技术角度来看,软件工程理论在实践中应用时重点在软件复用。参照目前成熟的产品的开发模式,软件复用可以在软件开发中规避重复劳动,以现有成果为基础,利用过去开发应用系统中积累的经验与理论知识,将开发的重点放在新应用的特有构成成分上。
从管理的角度来看,软件项目管理与其他项目管理相比,具有一些不同的特性。软件项目管理需要平衡资源、质量、工期、需求这四者之间的关系;依靠规范的项目过程来控制项目进度,并能确保及时发现、解决问题[3]。大规模的软件工程项目需要拆分成几个子项目,以减小项目的管理风险;另外需针对不同软件工程项目的特点,制定不同的软件工程管理的方针。
四、软件工程的应用现状
(一)软件工程在测试标准的应用
软件测试时软件可靠性与质量保证的关键技术,目前正日益得到发展。然而,许多软件企业的开发模式始终处于无序开发的不规范状态,软件测试的作用没有得到应用的重视,不少软件工程项目的技术人员对软件测试还存在着认识误区,这种状况影响了软件测试的开展与软件测试质量的提高。
(二)软件工程在复杂动力网络的应用
软件工程在复杂动力网络上的应用与研究已经有10年,许多这一领域的研究人员将复杂网络的方法与理论应用与软件工程的相关研究中,如工具分析软件网络的网络化软件与各种统计特征的相关研究。
网络化软件是行为与结构可以动态演化的软件,具有开放性、自组织性与适应性等主要特点。相对于传统软件,网络化软件的组成单元的规模可伸缩、耦合更松散;网络化软件通过挖掘、发现、定制可用的网络资源,以实现网络资源的动态组合,并提供可持续运行的协同与交互服务,更便捷地满足用户需要。
五、软件工程的发展趋势
伴随着现代科技的迅速发展,软件工程的发展有如下趋势:
(一)蓄势待发,持续集成
持续集成是一个复杂的软件系统工程,组织需要首先会将现有的变更管理/配置管理工具与Build过程,在根据软件企业/软件项目/软件产品的现状,定义如何自动化地检测出软件质量情况,并定义管理报表[4]。持续集成式保证迭代化软件开发的主要方式,通过持续集成可尽早、自动化地保证代码质量。
(二)迭代、敏捷渐成标准
迭代开发已成为许多软件开发企业的必选项。但迭代对整个研发团队的架构、需求、协同与测试能力都提出了更高的要求,目前很多研发单位都在试图导入迭代开发的过程中,敏捷是被看成迭代化开发的一种导入方式。
(三)需求工程渐成热点
互联网级的交付速度,日益复杂的业务水平创新,专业化的角度及全球分布的团队,都对需求获取的有效性及正确性提出了更高的要求。需求分析员可以方便地通过用例分析将需求体系精华成分析模型。
参考文献:
[1]史济民.软件工程.高等教育出版社,2002
[2]张海藩.软件工程导论.清华大学出版社
关键词 创新 完善 计算机 软件工程管理 有效措施
中图分类号:TP311.5 文献标识码:A
我国计算机软件工程管理并没有随着社会的发展受到特别的关注。形成计算机软件工程管理存在问题的原因主要有两个方面,一是计算机软件工程在我国是一个新兴起的领域,在我国的发展仍处于初级探索阶段,有些问题没有专家进行解决,很多问题都是刚刚被发现。二是由于我国传统观念的影响,使用计算机时会受到各个方面的压力和制约。因此,想要做好对计算机软件工程的管理工作,就必须找到问题,解决问题,进而对其进行创新和改革。
1计算机软件工程管理的内容
1.1组织管理
组织管理就是应对人员分配和组织结构的完整性进行重视,不能使其停留在一个简单的组织结构内,须确保人员的分工,使信息传达更加的准确。目前没有形成一个完整的组织模式,是由于项目不同,要求也不同。
1.2管理员工
计算计软件工程师的主要工作就是进行软件程序的编制和寻找各个项目的后续处理任务及信息的寻找。因此,想要将管理工作做好,就必须对不同岗位的员工进行合理的分配。
1.3用户管理
计算机软件开发的最主要目的就是供更多的客户使用。在软件开发过程中,必须对客户的需求和操作习惯进行全面而充分的了解。并且在软件开发中,推荐正确软件给用户使用,可以让客户提供具有价值的建议,那么该软件的开发将具有足够的可操作性和实用性,会有更多的机会在市场中占有竞争优势。
2计算机软件工程管理中存在的问题
2.1实际业务与要求分析之间的差距较大
在计算机软件工程运行过程中需要对数据进行分析和处理,这也是软件工程管理方面最明显的一个问题。这个问题出现的原因主要是由于项目受到开发阶段的需求,又受到基本因素的制约。
2.2工作中无法对工作量管理计算机软件进行准确的评估
计算机软件工程的管理任务量是非常巨大的,并且在开发过程中会受到许多外界因素的影响,这就是整个计算机的发展受到了比较严重的阻碍。尤其是人的因素影响最大,因此,对于目前计算机软件工程还有很多需要改进的问题。必须以计算机软件的开发为前提,寻找一个快速、准确、有效的数据处理方式和有效的业务规划方法。只有这样,才可以实现软件多极化发展。
3 计算机软件工程管理的方法和对策
3.1提高软件的效率
传统修改数据的操作方法都是由前台进行监控的,但是随着软件工程的发展,数据库和信息技术得到了比较广泛的应用,并且这种技术已经慢慢取代了有网络操作的方法。因此,数据被修改后,软件程序是增加效率的一个重要前提条件,而且被平均分配到不同的电脑上,这就大大提高了数据传输的效率,保证了企业在货物运转中的安全性。
3.2建立健全的管理制度
想要建立健全的计算机软件工程管理制度,首先是要找到优秀的软件项目管理系统方面的专业人才,人才作为生产的第一动力,只有这样才能保证软件开发目标的实现,需要加强对人力资源的管理,对项目的进度进行实施的监控和了解,重视人才为项目带来的创造力,充分调动员工的积极性;其次,加强对员工的培训工作,将软件知识进行普及和推广。掌握和更新现有的软件知识,可以使理论与实践相结合,使软件的人机交换更加的方便,提高项目管理的效率。
3.3进行统一规划软件开发平台
目前,世界上仍没有建立一个统一的平台,这对计算机软件开发过程产生很大的影响。每一个新的软件产品都需要在一个新建的平台上进行开发。由于网络的快速发展,建立一个统一的团建开发平台非常的有必要。
3.4加强软件工程的风险管理
软件在开发过程中都会存在一定的风险。从目前来看,软件项目的风险主要体现在以下几个方面:一是需求方面,由于有些客户对软件的需求表达不明确,也可能由于其它主观原因,都会导致软件项目的重做;二是技术方面,主要体现在软件开发人员的技术还不够成熟,导致程序编写中出现错误等等。
4总结
随着信息化的普及和应用,计算机软件的发展前景将更加的广阔,并且为办公软件的智能化和自动化提供了强而有力的技术支持。创新和完善计算机软件工程管理将大大推进我国经济的发展和进步。
参考文献
[1] 张爱琴.浅析软件工程管理[J].中小企业管理与科技(下旬刊),2011.(23): 132-134.
[2] 张杰,刘元安,马晓蕾,贾金涛.救援环境下MANEMO网络结构[J].新型工业化,2011.(07):145-149.
[3] 陈霖.计算机软件技术在培训信息管理方面的应用[J].软件开发,2013.(20):160-172.
中图分类号:G642
摘要:翻转课堂作为一种新型的教学形式,实现了对传统教学模式的革新。构建云计算教学平台是一种有效实施翻转课堂的现代技术手段。文章介绍翻转课堂的概念,提出软件工程专业课程翻转课堂的教学模式,讨论如何构建一个与翻转课堂教学模式相适应的软件工程专业教学平台。
关键词:翻转课堂;云计算;软件工程;教学平台
0 引 言
软件工程是一个具有实践性、工程性、实用性等特征的综合型应用学科。软件工程专业的学生要在不断的实践中掌握软件开发的方法和思维方式。目前各高校的软件工程专业课程仍然沿用计算机类课程的教学模式,重理论而轻实践,导致学生学习积极性不高、实践能力较差。业界诸多学者提出面向应用的教学模式和项目驱动式教学法等新型教学方式来强化软件工程专业课程的实践学习,提高学生的动手能力和创新意识。翻转课堂是这些教学理念中较为成功的一种,而借助计算机、网络和多媒体等是翻转课堂成功的关键所在,云计算环境的引入就是翻转课堂得以实现的重要手段。
1 翻转课堂的概念
翻转课堂(flipped classroom),顾名思义就是颠覆课堂教学过程和课下学习活动的一种新型教学模式。美国科罗拉多州的林地公园高中于2007年最早提出了翻转课堂的概念,该校的化学教师乔纳森・伯尔曼使用软件录制了一段教学视频并上传到网络中供缺席的学生学习,学生在家观看教学视频,然后在课堂上完成作业和答疑活动。这种教学方式很快得到了学生的认可。翻转课堂在全美迅速推广,各大高校推出的微课视频为翻转课堂教学模式提供了充足的资源支持,促进了翻转课堂的发展。
翻转课堂教学模式颠覆了传统的知识传授和知识内化的过程,让学生在课上通过实践完成知识内化,提高课堂教学的成效性。学生可以在教师的帮助下在于同学的互动中主动学习,避免了传统课堂的单一教学形式对学生积极性的影响。寓教于乐的教学视频也可以提高学生在课下主动学习的积极性,为知识传授提供了新的形式。
2 软件工程专业的翻转课堂教学模式
软件工程专业课程的特点是基础理论较为抽象、对学生的创新能力要求较高。目前各高校的软件工程专业课程都有专门的实践教学环节,但仍离不开理论知识的讲解和思维方式的训练,这些都导致学生积极性不高、教学质量下降。哈尔滨师范大学软件工程专业在研究翻转课堂教学模式和本专业课程特点的基础上,提出了一个适用于软件工程专业课程特点的翻转课堂教学模型,如图1所示。
在软件工程专业的翻转课堂教学模式中,学生课前观看教学视频学习理论知识,通过和教师的即时交流完成知识学习;教师则根据学生的反馈统计课程的开展情况,酌情安排课上时间分配。在课上的教学环节中,教师首先集中讲解学生反馈的疑难知识点,对重点内容进行简要归纳,然后根据课程内容和教学统计结果提出实践学习内容。学生自由分组创建实践团队,按照软件开发过程的要求进行分工和调研,最终在教师的指导下完成一个具有项目特征的实训工作,提交相关的设计文档和研究成果。教师的课上任务就是点评提交的成果,总结学生的表现,解答学生实践过程中的问题等。
3 软件工程翻转课堂云计算教学平台
翻转课堂教学模式需要一定的技术和资源支持,云计算环境无疑是最佳选择。经过不断的探索和研究,哈师大软件学院构建了一个基于云计算环境的翻转课堂教学平台,包括课堂软件开发、课前理论学习、运行管理和教学评价等模块,如图2所示。
3.1 软件开发模块
软件开发模块体现了翻转课堂中实践教学的具体内容,是整个教学平台的核心功能模块。按照软件工程对软件开发生命周期的定义,软件开发模块分为项目规划、需求分析、系统设计、代码实现和系统测试等教学过程。在一个项目目标的规划内,每个教学过程都对应前后关联的任务、文档和成果。实际的教学过程是学生登录云计算平台进行实际的软件项目实训练习,以团队的方式完成项目,编写文档和提交成果报告。教师也要登录云计算平台全程监控和指导。云计算教学平台的教学资源库是通过深化校企合作得来的,所有的案例都来源于真实的软件开发项目,学生甚至可以在企业项目经理的指导下通过教学平台进行真实项目的开发。软件开发模块结合了翻转课堂、任务驱动和校企联合等面向应用的教学模式,体现了“工学结合、顶岗实习”的软件工程专业课程实践教学理念。
3.2 理论学习模块
理论学习模块是体现翻转课堂模式课前学习的功能模块,该模块的主要功能包括教学视频、课前训练和课程统计等。教学视频功能的资源都来自国内知名高校的公开课,并且具有快进、回放、重放、暂停等播放功能,便于学生自定义课前学习。课程教学视频的内容、视觉效果、互动性和长短都要根据学生的学习效果定期调整,不仅要保证教学内容和课前学习的目标吻合,还要突出教学重点和难点,方便教师和学生的课前交流。课前训练功能是在每个教学视频播放前设置一些教学问题,让学生在观看视频时寻找答案,在视频结束后学生要根据提示进行简单的问题解答和知识训练。课程统计模块可以统计学生观看视频和回答问题的情况,有效提高教学的目的性。除了上述3个主要功能外,教学平台还提供了方便教师和学生交流的论坛,所有与课程相关的讨论和问题都可以在论坛上交流和解答。
3.3 运行管理模块
运行管理模块是部署在软件工程翻转课堂云计算教学平台云端应用服务层中,将各种即时通讯、视频播放和在线论坛等应用集中封装的服务层次。具体的功能包括项目管理、学生管理、资源管理和师生沟通等。
1)项目管理子模块。
项目管理模块用来保存学生的实训成果和相关报告。该模块具有文档在线编辑和软件展示功能,可以根据课程类别和章节提供在线的实训环境和展示服务。学生在课程进行中提出的问题也可以在项目管理模块,由任课教师或企业专家在线解答。在实践教学中,教师可以通过项目管理模块掌握所有学生团队的项目进展情况,并通过在线成果交流来提高实践教学的教学质量。学生在项目管理模块中能够即时了解本队同学和其他团队学生的开发进度,这不仅有助于提高团队内部的沟通和协作,还可以通过比较和竞争提高团队凝聚力。
2)学生管理子模块。
学生管理模块用来监控学生的课前视频观看和课中实训练习状态。学生课前的视频教学是独自进行的,有效的教学监控是保证出勤率和质量的重要因素。学生管理功能不仅能监控学生是否观看了视频,还能知道他们观看了哪些视频,哪段视频的播发次数最多、时间最久。这些监控数据对教师掌握学生课前学习状态有至关重要的作用,教师可以通过在线统计获取课前学习数据,也可以在线设置各项参数自动获取指定人员和章节的统计数据。对于课中的实践教学,学生管理模块也可以获取学生团队的练习资料,比如项目进展情况、资料是否齐全等,这些数据可以为课后评估和项目管理等模块提供有效数据支持。在课程结束后,学生成绩也通过学生管理模块统计和查询。
3)资源管理子模块。
资源管理模块用来存储和维护云计算教学环境中教学资源。教学资源包括理论学习视频、课堂项目资料、软件开发资源和企业开发知识库等。这些资源的质量决定了教学的质量和效果,比如理论学习视频是否寓教于乐直接影响学生的学习积极性,课堂项目资料是否具有针对性直接影响教学的应用价值,企业开发库的资源是否有效直接影响学生的实际工作能力等。资源管理模块不同于传统的软件资源库,它具有在线文档编辑、视频制作、网络资源搜集等高级功能,可以实现对已有资源的改进和创新,也可以实现网络资源的汇总和摘选。另外,通过和一些国内知名云供应商的合作,我们还构建了包括软件开发云环境、企业软件项目库和软件开发技术资料库、软件开发文档模板库等在内的高级应用型软件开发资源平台。
3.4 学生评价模块
学生评价模块对学生学习过程和教师教学过程的评估打分。其中学习过程根据翻转课堂教学模式的要求分为课前理论学习和软件开发实训两部分:课前理论学习主要包括视频观看、作业完成、课堂交流表现等方面的评估;软件开发实训则是通过对项目成果和研发报告的评估来获得分数。这两部分分数按照一定比例折算成学生专业课程的课程分数,和期末考试笔试成绩一起考核。对教师教学的评估则通过课程中的表现定性评价,评价的指标包括在线时间、操作频率、交流次数和学生打分等。
4 实施效果
基于云计算环境的软件工程专业翻转课堂教学经过4个月的试运行,取得了显著的教学成果。使用云计算平台的学生在知识认知和技能实践等方面的能力比往届学生有较大提升。学生可以通过线上交流和团队合作完成开发任务,教师可以通过在线审核完成教学任务,基本达到了云计算平台的设计目标。
为了进一步掌握云计算平台的翻转课堂教学模式的实践效果,通过校内走访和问卷调查等方式深入了解学生的学习积极性、动手能力和计算思维意识。结果显示学生对这种寓教于乐的教学方式普遍认同,对自身知识掌握和动手能力的提升感到满意,教师则对系统带来的丰富教学资源和低成本办学模式感到满意。
论文关键词:软件项目管理;中小型软件企业;软件过程改进
目前软件的应用已经深入到企业、政府及我们日常生活的方方面面,其中大量的开发是由中小型软件企业承担的。由于中小型软件企业在体制、人力资源投入力度和关心程度等方面存在差异,开发软件产品时与专业软件企业有很大的不同,因此对中小型软件企业的软件项目管理进行研究,有助于提高软件项目管理水平,增强客户的满意度。
1软件项目管理与中小型软件企业
软件项目管理既具有一般项目管理的属性,又具有其特殊性,软件项目管理的重点在于标准的制定和推行。为了加强我国软件业的国际竞争力,需要发展一大批具有遵循开发过程与注重质量的文化氛围的企业。而制定和推行标准的目的正是要引导软件企业逐步走向成熟,使其工程和管理水平稳步提高,同时为它们提供全方位的服务,以支持软件产业的整体发展。
软件项目管理在20世纪70年代中期引起了广泛的注意。美国国防部通过研究发现了所谓的“软件危机”,即“管理是影响软件研发项目全局的因素,而技术只影响局部”。目前国内的中小型软件企业,由于其企业规模,研发能力等限制,造成其软件开发管理的问题非常普遍。不恰当的组织结构,工作流程不规范,缺乏项目管理概念和软件工程概念等是中小型软件企业面临的主要问题。
1.1中小型软件企业中软件开发的特点
国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在“程序员编代码”的水平上。对企业内部的软件开发缺乏管理意识,具体体现在以下几方面:首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单;再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档;最后,缺乏后续维护。
1.2中小型软件企业中的软件开发组织
与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小、人员少,开发人员待遇低,难以吸引高水平的人才,人才流失率达到50%以上。由于没有高水平的开发人员和技术管理人员,软件工作状况处于初级水平,软件开发不能按照软件工程的要求执行。
软件系统建立过程中需要多方面的人员:需求方人员、懂得软件项目管理的人员、软件程序员、系统分析员。普通企业由于对软件生产不了解,往往由软件需求方人员对软件工作直接管理。这个工作显然超过了其能力范围,不符合软件工作的相关原则。业务人员作为项目的负责人,既不能合理地计划软件开发工作,也不可能管理好软件工作中的各种风险,这将使软件开发处于无序的风险状态之中。
1.3中小型软件企业中的软件开发沟通
在需要团队协同工作的今天,沟通可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上更高层次的最佳途径。如果小组成员在协调上出了漏洞,会导致很大的问题,所以项目负责人必须随时监控开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。
项目组与组织之间、项目组与项目组成员之间,甚至与一个项目组的不同成员之间,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。中小型软件企业开发人员少,意味着不同人员的程序之间交互、接口相对少一些;缺少文档资料或者文档资料不规范也是软件项目管理中的普遍问题。由于讨论时忽略了某些情况,当大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却不能形成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头做起。
1.4中小型软件企业中的软件开发工作流程
与一个标准的软件开发流程相比,中小型软件企业内部的软件开发“节省”了不少步骤。例如不经过单元测试而直接进入系统测试等。由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,但某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行边界测试,就会很容易消除这些隐患。
2中小型软件企业软件开发过程改进模型
软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。一个企业的管理,大公司有大公司的方式,小公司也有小公司的模式,如果把别人的经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不可能完全一样。但从另一个角度来看,项目的大与小并没有本质区别,很多方法是共通的。因此为了改进软件开发过程,可参考模型如图1
2.1制定软件开发规范
一切沟通与交流,首先都要有可见的依据,这可以从制定软件开发规范入手。具体可以从以下四个方面制订:软件开发工作流程规范、产品文档规范、软件开发文档规范、开发管理文档规范。编写规范,可以参考国家标准的计算机软件工程规范,也可以结合开发经验制定出适合本企业使用的开发规范。
详细制定这些文档使用方法和规则,要保证文档便于书写、形式一致,这不仅要有文字描述,还应制定相关文档模板,形式上要保证简洁明了、实用、符合使用习惯。根据项目规模的不同,还可以制定不同的文档模板,小型项目可以写一个相对简化的小型项目文档,复杂项目可以使用较全面和大型的文档模板。
2.2软件开发人员培训
软件开发中人的因素占有很大的比重,因此对软件人员的培训是非常重要的。一个团体的软件水平并不是个别程序员的程序水平,而是整体的认识和系统建设的水平。可以先在内部对软件开发人员进行培训,内容包括软件工程、己经制订的各种规范、项目管理知识。通过共同分析软件工程对软件开发和开发者的益处,可以得到开发人员的认同,以便共同遵守和执行初期规范,更好地完成开发目标。
2.3加强软件生产过程规范性
软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。
在中小型软件企业中,很少有成本核算和严格的进度控制。影响项目的因素也比较多:需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序,没有合理的措施控制透彻的分析业务需求;时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,软件开发工
作协调、有效。
在规则明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出要简单明了。例如:项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应出面协调和帮助解决相应问题。
2.4软件配置管理机制
软件开发不是一个短期行为,但是,由于许多开发工作因缺少管理而成为个人行为,对于软件成果没有保护意识,更不能达到软件的共享与重用。通过“统一配置管理”这一具体的做法,能够强化软件完成后的总结工作。
建立基本的软件配置管理机制,在开发中和开发后都要求程序员及时备份源文件。进行这项工作要首先选择一套适合的配置管理软件,如Visual SourceSafe、cvs(Concurrent Versions System)等。项目主管应该要求程序员在开发全过程中使用软件来管理源文件,在全过程的配置管理的基础上,整个项目组更容易完成统一编码、测试组装产品等工作。
以上步骤,可以保障内部开发工作达到初级的项目可视化,在软件开发部门内部建立起对满足业务需求完成的信心,以满足业务需求的承诺。通过这些工作,可以在企业内获得对软件规范性的一定认识以及对执行方式的认同,这对软件开发工作会有不同程度的帮助。
2.5持续改进过程和管理模型
有了规范的开发生命周期模型和项目管理实践,可以为中小型软件企业设计一个建立在数据基础之上、不断度量和改进及不断提高企业开发能力的一个良性循环的工作机制模型。