前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件开发论文主题范文,仅供参考,欢迎阅读并收藏。
1.软件开发类课程翻转课堂教学模式研究
2.浅谈软件项目开发过程中的需求分析
3.软件开发方法的创新发展过程研究
4.基于Java语言的安卓手机软件开发
5.软件开发的风险分析与控制
6.软件开发过程模型的发展
7.需求工程对于软件开发的重要性
8.软件复用技术及其在软件开发中的应用
9.试论VB编程语言在软件开发中的应用
10.软件开发的风险分析与控制
11.分析软件开发中数据库设计理论的实践
12.基于WBS-RBS的软件开发风险识别与控制
13.敏捷软件开发的双迭代模型
14.基于MATLAB的汽车制动系统设计与分析软件开发
15.软件开发劳动计量方法与软件成本估算
16.基于计算机软件开发的JAVA编程语言分析
17.一种以软件体系结构为中心的网构软件开发方法
18.基于构件的软件开发的方法与实践
19.ABC:基于体系结构、面向构件的软件开发方法
20.面向软件开发信息库的数据挖掘综述
21.浅谈三层架构在软件开发中的应用
22.使用开源软件进行软件开发的风险分析
23.汽车电子控制单元软件开发模式研究
24.软件开发与层次化思维方式
25.SQA规范对于教育软件开发的启示
26.基于证据理论的软件开发风险评估方法
27.软件开发人员绩效管理中的问题及对策
28.敏捷型软件开发方法与极限编程概述
29.信息化软件开发项目经理绩效考评研究
30.基于“众包”的软件开发模式
31.软件开发模型研究综述
32.支持第四代语言的并行进化式软件开发模型CESD
33.光滑粒子动力学核心算法与软件开发中的关键问题
34.面向重用的软件开发价值链
35.基于MVC模式的应用软件开发框架研究
36.支持模型驱动式软件开发的建模语言框架研究
37.3G智能终端软件开发实验教学改革的思考
38.软件开发国际合作模式研究
39.地理信息系统专业学生GIS软件开发能力的培养
40.有色Petri网在软件开发中的应用
41.浅谈软件开发的成本核算
42.一种高效率的软件开发方法——以用户为中心的软件开发方法(UCD)
43.软件开发成本估算技术综述
44.基坑双排桩支护结构设计计算软件开发及应用
45.软件构架设计在软件开发中的意义
46.面向软件开发信息库的数据挖掘综述
47.谈软件开发中的需求分析
48.浅谈插件化软件开发
49.计算机软件技术在植保软件开发中的应用
50.Onboard:以数据驱动的敏捷软件开发协同工具
51.软件开发综合能力培养的案例教学
52.软件配置管理在软件开发平台中的应用
53.软件开发成本估算模型的研究
54.软件开发绩效评价指标体系的构建
55.浅谈计算机软件开发技术的应用研究与趋势
56.军用软件开发工程化质量管理研究
57.计算机软件开发中的分层技术探讨
58.基于学生软件开发团队的沟通机制研究
59.项目管理在软件开发中的应用
60.面向农业软件开发的构件库研究与实现
61.搭建式GIS软件开发及其对软件工程的影响
62.软件开发过程中的质量管理探析
63.软件开发本体构建与模块化的应用研究
64.基于CDIO的高职软件开发专业课程体系设计
65.典型建筑火灾风险评估体系及其软件开发
66.有效的软件开发项目风险管理模型
67.框架技术在软件开发中的研究与实践
68.浅论新时期计算机软件开发技术的应用及发展趋势
69.基于软构件的软件开发框架研究
70.面向软件开发信息库的数据挖掘综述
71.模型驱动的软件开发模式研究
72.以《数据结构》为核心的软件开发课程群建设
73.护理信息网络化管理的研究与软件开发
74.分层技术在计算机软件开发中的应用
75.软件开发生命周期法比较之敏捷与传统
76.基于虚拟硬件在环的控制软件开发
77.项目管理在软件开发中的应用分析
78.项目管理在软件开发中的应用研究
79.软件开发中的设计原则
80.基于学习遗忘作用的人员调度实验设计及其软件开发
81.基于网络的可信软件大规模协同开发与演化
82.华池油田结垢预测及软件开发
83.探析计算机软件开发的规范化
84.软件开发自动化平台的研究与应用
85.架构和面向对象技术在PLC软件开发中的应用
86.国外XBRL软件开发技术比较及启示
87.企业软件开发标准化探讨
88.智能手机操作系统及其Google Android上的软件开发
89.浅析软件测试在软件开发中的重要意义——从软件功能测试的作用谈起
90.软件开发方法及其应用
91.使用嵌入式Linux操作系统进行软件开发的特点及优势
92.基于VB中MSComm控件的通信软件开发与实现
93.软件开发管理中的沟通与协调问题研究
94.基于Java语言的安卓软件开发的研究
95.关于计算机软件开发语言的研究
96.新时期计算机软件开发技术的应用研究
97.培养大学生软件开发创新能力的探索与实践
98.自适应多Agent系统的面向Agent软件开发方法学ODAM
现代化社会的发展,软件工程广泛应用到嵌入式系统、人机界面、翻译器、电子邮件及数据库和各项操作系统中。在此基础上,还受到了航空、工业、政府部门及银行等各个行业的大力追捧,大大减少了各行业工作人员的工作总量,有效提高了他们的工作效率,并促使人民群众的生活质量得到提高,带动了社会经济的发展。软件工程的开发离不开软件工程师,根据领域的不同又分成系统测试员、分析员、工程师及程序员等,统称为软件工程师。他们肩负着对费用合理、质量良好的软件产品的开发,通常情况下,其主要以产品的可靠性、安全性、可维护性、实用性、功能性等指标来衡量软件产品的整体质量。
2软件工程开发技术
2.1软件标准化应用技术
软件标准化应用技术又分成软件标准和软件过程标准,其是软件构件和软件重用技术开发与发展的先决条件,可有效保障软件工程产业的健康发展。软件标准化应用技术直接关系到软件工程各项指标能否达到相关标准,其也是衡量软件工程成熟度的重要条件。国际标准化工程和系统工程委员会详细指出了软件工程的标准结构,加之美国国防部关于软件标准相关内容的提出,并列成为当代软件工程的两大重要标准。
2.2软件构件和软件重用技术
软件构件和软件重用技术一直是软件工程开发中的重要环节。软件重用是开发和研究软件的必要手段,构件作为一项基础条件有着不可小觑的重要作用。其中,软件重用技术可让软件工程师从大量写代码的工作中解脱出来,促使其更好的投入到更具适用性软件系统的开发中,从而确保空间和相关问题的一致性。软件构件技术是实现重用技术的前提,两者相辅相成,互相促进。这一过程中,各类开发工具是软件开发和应用的依托,如集成开发环境、构件库管理及运行环境等。
2.3中间件技术的采用
中间件平台作为软件系统开发和运行的支撑,是实现构件技术的前提。中间件适用于合适的平台上,加速软件的隔离和抽象,最终形成构件。因此,中间件技术在软件行业中备受青睐,根据分布对象、通信、事务处理、调用远程过程、访问中间件这五大类进行划分,具有划时代的意义。
3软件工程开发过程
3.1用户需求分析
用户需求分析即为在构建或改变软件系统时,应根据新系统的定义、范围及功能等内容进行用户群体需求分析,并综合分析数据准确把握系统定位,以开发出优质的系统软件。该过程中,协调需求分析员和软件工程师之间的关系是十分关键的,两者强强合作后,应首先找准目标用户群,并针对用户的实际需求确定系统软件的各项功能,最终制定出最佳系统开发方案。
3.2软件系统分析
软件系统分析主要是指归纳和整合需求调查中的各项数据和相关资料,并针对软件内部实际管理和信息处理情况进行分析。软件系统分析的主要目的是为了落实用户的相关需求,并寻求出最具适用性的解决方法,其是软件设计过程中不可或缺的组成部分。
3.3软件测试
在整个软件系统进入使用之前,软件测试是最为重要的环节之一,在进行软件测试时,不仅能对软件的需求进行分析,还能对软件的功能及性能进行验证。软件测试是指,根据运用软件的测试方法和测试工具,按照测试流程及测试方案,对被测试软件的功能与性能进行检测。在对软件进行测试的过程中,编程人员可以按照不同的软件和不同的架构编写出各种测试系统以及测试方案和工具,以控制将有可能出现的问题。在软件开发的整个过程中,都要紧抓各个开发环节及时进行同步的测试内容,并且针对测试中发现的问题加以解决,同时完善相关的开发程序。在此之后进行重复测试,在反复测试中不断完善各种问题,直到软件最终成为完整产品。
4软件工程开发的基本特征与应用情况
4.1明确性
软件工程在进行软件设计时就已经根据人们多种多样的需求制定了明确的目标。软件工程设计的任务是在工程实施或者产品投产之前,为这项工程或产品提供各种需求的标准,这一任务正是体现了软件工程中“需求分析”的特点,并且需求分析的质量对软件开发的成败有着直接影响。在这个阶段中,开发技术人员需要不断的与用户进行沟通和交流,完全明确软件开发项目的概念,最终形成一个完整的、清晰的、明确的开发目标。
4.2完整性
在用户或者服务器系统的应用中,保证信息准确无误的重要条件是数据及数据处理的完整性。因此,在软件开发的过程中,确保数据及数据处理完整性的逻辑要求是最为严密的。例如,有时在处理一个事物的过程中,会修改多个表格数据,如果在修改中发生了任何细小错误,都必须放弃整个处理过程,而不是其中的一个过程,然后返回最开始的阶段,以确保操作的完整性,从而保证了数据及数据处理的完整性。
4.3规范性
应用软件的开发工作在不同人员进行修改时需要能较为容易的接手,因此开发应用软件必须保证规范性。由于软件在开发的过程中需要按照一定的规则进行对象组合,所以能符合标准。但是如果是群体开发软件,由于每个程序员的想法及工作习惯都不相同,因此不容易符合标准,而软件开发的标准极为重要,必须保证其规范性,所以在软件开发的过程中,程序员之间需要多沟通交流,确保软件的顺利开发。
4.4易维护性
由于在软件开发的过程中,对象组合具有继承性,在对祖先对象进行修改时,也会对其继承对象造成直接影响,提高了软件程序在一定程度上的维护性。并且,逻辑规定和语法规定相同,群体开发软件不会因为个人特有的思想与工作习惯受到影响,从而使软件开发的维护性得到了保证,也提高了相互之间互相弥补的可能性。
4.5创新性
科学技术需要发展,发展离不开创新。随着工程技术的不断创新,软件开发出的产品在满足人们高要求的同时不断进步,为了获得广大用户的信任与支持,系统分析员在进行系统分析时,应当全方位了解广大用户的需求,针对用户的各种需求提出可行性方案,并且在不断的与用户交流中完善与改进方案,在如此反复中完成整个设计开发的过程。
5结束语
建立三维中子动力学模型,包括三维中子扩散模型和考虑轴向流动的DNP平衡方程。由于DNP随燃料沿轴向流动,部分先驱核流出堆外并发生衰变,未衰变的将再次进入堆芯,因此DNP方程需在整个主回路中进行求解。时空中子动力学方程组包括G个中子扩散方程和I个DNP方程。根据之前的相关研究[3]可知,燃料盐的流动对堆芯中子注量率几乎没有影响,因此熔盐堆动力学方程组中的注量率方程与传统固体堆动力学注量率方程没有区别,只是在先驱核方程中增加了流动项。
2、程序验证
本文利用MSRE的实验数据对程序进行验证,MSRE功率为8MW,慢化剂为石墨,氟化盐以648.9℃的温度流经由石墨栅阵构成的矩形管道。根据橡树岭国家实验室(ORNL)熔盐堆运行报告[5]建立MSRE的简化模型(图1)。近似的MSRE几何模型为圆柱体,半径为71.2cm,高度为200.7cm,堆芯填充石墨栅阵,高度为17.15cm的上下腔室分别在石墨栅阵顶部和底部。石墨管道中燃料流速与上下腔室中的流速不同。计算中使用的热工水力参数取自文献[6]。燃料组成部分取自MSRE运行报告,为减少实验结果与计算结果的偏差,模拟过程选取了2套不同的DNP数据:①基于ENDF/B-VI库由HELIOS组件计算产生;②由ORNL提供的缓发中子数据。堆芯内有效DNP份额的计算方法取自文献[7]。
2.1MSRE稳态运行下DNP损失
第1个基准题计算MSRE稳态运行下的DNP损失。MSRE实验结果与文献[8]的计算结果作为参考解。本文计算了MSRE在采用235U燃料和233U燃料的2种情况下的缓发中子份额损失。表1、表2列出了2种燃料类型下本文计算的六组缓发中子份额损失与参考值的比较。从表中可以看出,本文的计算结果与试验值吻合较好,与其他单位的计算值差别不大。偏差的原因主要来自:①进行MSRE模拟时采用的简化几何模型不同;②评价缓发中子份额损失的模型不同。
2.2MSRE起泵和停泵瞬态
第2个基准题模拟MSRE在无保护状态下的燃料起泵和停泵瞬态过程。在这2个瞬态过程中,堆芯通过调节控制棒的位置使功率保持不变,反应性的损失可通过控制棒的位置进行计算。与上一基准题类似,模拟过程中使用了2组缓发中子数据。起泵过程中,燃料流量在10s内从0升高到正常值,停泵过程中,燃料流量在22s内从正常值降低为0。燃料流量的变化数据取自文献[9]。由图2可知,MOREL能很好地模拟MSRE在起泵和停泵过程中缓发中子份额的变化。MSRE在实验过程中对控制棒的提棒速度有一定限制,本文模拟过程中没有考虑到这个因素,这可能是高估反应性损失的一个原因。从图2可知,在约13s时,反应性损失曲线有一个波动,这是由于堆芯外未衰变的先驱核重新进入堆芯。
3、结论
关键词:软件项目管理;项目经理;项目计划
软件行业在现在的众多行业里是一个极具挑战性和创造性的行业,体现了软件开发者的智慧和汗水,同时软件开发是一项复杂的系统工程。牵涉到许多方面的因素,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因。得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关键。
一、软件开发中实行项目管理的意义
项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目干系人的需求,其本质就是对时间、质量和成本的管理。
随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。
二、目前在软件项目管理中存在的误区
现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在:
1项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。
2项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑:阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。
3缺乏有效的管理意识。部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
4缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失:有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
5风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
6项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求:或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付:项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
7缺乏项目团队的合理分工。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。三、解决软件项目管理中存在的误区的有效策略
要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到:
1项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
2计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
3加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
4制定有效的沟通制度和沟通机制,提高沟通意识:采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
5通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
6项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
目前,新时期计算机软件开发技术和开发方式都已经十分的成熟和完善,在新的时代背景之下,合理选择计算机软件开发技术对于提高计算机运行性能和提高工作能力方面有着十分重要的作用和意义,目前计算机软件开发技术的主要方式包括以下几个方面:首先,生命周期法。这种开发方式也称为结构化系统开发方法,是目前在国内使用比较成熟和比较广泛的方法,特别是在开发较为复杂大型的软件系统时,就能彰显这种开放方法的优势。其主要是目前计算机软开发技术应用最广,最成熟的一种软件开发技术,其优点在于强调了软件系统在开发过程中整体性和全面布局性,在开发过程中主要将整个过程氛围若干个开发阶段,在每隔阶段中都有明确的任务和目标,这样就能够大大降低整个软件系统在开发过程中复杂性和难度,提高了开发技术的可操作性。但是这种技术的缺点在于花费的时间周期比较长,必须完成一个阶段之后才能进行下一个阶段的工作,前一阶段一旦出现问题将会对后期的工作产生严重影响。其次,原型化开发方法。这种方法也是计算机软件开发过程中经常使用的方法之一,其主要是就系统主要需求取得一个相同的结果之后,进行原型的开发和运行,在运行过程中对这个原型不断的进行修改,指导用户满意为止。这种来发技术的方法其优点在于对用户的需求比较明确,能够有效境地开发过程中风险和成本,能够有效的利用各种系统进行服务,但是其缺点也十分明显,其主要适用于那些系统简单,中小型的软件开发啊,而对系统进行维护过程中存在较大的难度。
2计算机软件开发技术的应用
新时期计算机软件技术开发的主要目的是为了人们服务于人们的生活。而在软件开发过程中如何将其应用到计算机上,实现其真正的应用价值,才是我们最后应该注意的事项,例如将两种不同的计算甲软件系统安装应用到同一台计算机上,一种为VB6.0+Acess,一种是Web+Xml+ActiveX。如果将这两个软件系统分别安装到计算机上进行运行和操作,第一种软件可以直接的安装到电脑上进行运行,因为几乎所有的电脑系统都是微软的版本,可以有效的对软件进行兼容,而如果要安装第二种软件,则需要首先在计算机上安装一些组件,同时还要对计算机的浏览器进行更改,这主要因为第二种软件系统对电脑系统不兼容,所以在安装的过程中需要多增加一个步骤。当两种软件分别安装在电脑上成功运行之后,一段时间的观察我们就可以发现,第一种系统和安装方式可以在电脑中稳定的运行下去,不需做任何多余的操作,或者再进行一次修复工作,用户在电脑上可以直接的独立的完成操作,使用方法十分简便,所以多数的用户都会选择该种类型的软件,但是随着运用量的增加,会在一定程度上降低了软件客户端的运行速度,这时候就需要人工对客户端的运行情况进行有效的调整。而第二种系统在安装过程中由于受到了电脑系统和浏览器的现实,用户在使用过程中存在很大的不便,所有选择该种软件的用户数量较第一种数量较少。计算机软件的开发都是为了更好的为社会文明的进步而服务的,在软件开发过程中开发人员将会越来越专业,因此,在计算机软件啊开发故偶成中应该根据市场的需求进行实际的软件开发和应用。
3结语
[论文摘要]科学有效的软件项目管理有助于项目开发的成功.本文介绍了软件项目管理的内容并结合软件项目开发经验,探讨了影响软件项目管理的几个关键因素.
[论文关键词]软件项目软件项目管理
0引言
随着信息技术的飞速发展,软件产品的规模和复杂度随之增加,传统作坊式的开发方式逐步被以项目组为单位的协作式开发方式所取代,这就必然涉及到对软件项目的管理.实践表明,一个软件项目的成败,不在于其项目组的技术人员的技术水平,而在于是否采用的合适的管理:.好的管理方式不一定能使项目完全成功,但是一个不合适的管理模式往往会导致软件项目的失败.
1软件项目管理的特殊性
所谓项目,就是在特定条t"ae下,具有特定目标的一次性任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称.项目具有一次性、独特性、目标的确定性、组织的临时性和开放性以及成果的不可挽回性等基本属性.
项目管理是指“在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期望.”这一定义不仅仅是强调使用专门的知识和技能,还强调项目管理中各参与人的重要性.项目经理不仅仅要努力实现项目的范围、时间、成功和质量等目标,还必须协调整个项目过程,满足项目参与者及其他利益相关者的需要和期望.
软件项目管理和其他的项目管理相比有相当的特殊性.首先,软件的整个过程都是设计过程,不需要大量的物质资源,而主要是人力资源,软件开发的产品以程序代码和技术文档为主,并没有其他的物质成果;其次,软件是纯知识产品,其开发进度和质量很难估H-和度量,生产效率也难以预测和保证.软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制.因此,软件项目管理和其他项目管理相比,有很大的独特性.
2软件项目管理的内容
软件项目管理是一种科学的管理手段,它是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、~x-2,险等进行分析和管理的活动.管理的范围涉及人员的组织与管理、软件度量、项目计划、风险管理、质量保证、过程能力配置管理等几个方面,这几个方面都是贯穿、交织于整个软件开发过程中的.从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段.不论是作坊式开发,还是团队协作式开发,这六阶段都是不可缺少的.从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护及项目评价.由此可见,软件项目管理的范围不包括传统的软件开发过程,还应该包括开发前的准备工作以及运行中的维护工作和对项目的总结工作.根据PMBOK(项目管理知识体系ProjectManagementBodyofKnowledge,简称PMBOK)中的定义,软件项目管理可以分为以下几个方面:
2.1集成管理:项目计划制定、项目计划实施、集成变更控制等.
2.2范围管理:制定范围计划编制、范围定义核实、变更控制、任务协调等.
2.3时间管理:项目任务分解、进度计划编制、任务持续时间估算、进度计划控制等.
2.4成本管理:资源计划编制、成本估算、成本预算和控制等.
2.5质量管理:项目质量计划编制、软件质量保证、软件质量控制、软件过程改进等.
2.6人力资源管理:组织的计划编制、人员职责的分配、团队合作发展等.
2.7沟通管理:建立沟通渠道、信息交换管理等.
2.8风险管理:项目风险识别、项目风险分析、项目风险优先分析、项目风险控制等.
2.9采购管理:采购计划编制、合同管理、合同收尾等.
在面的软件项目管理中,有几个关键因素,它影响着软件项目的成败,下面就这几4-关键因素进行一下探讨.
3软件项目管理的关键因素
3.1合理配置人力资源
众所周知,人是决定组织和项目成败的关键,也是影响软件93:发质量的最关键的因素,因此软件项目管理应该以人为本,有效管理人力资源,合理配置人力资源.应该根据项目组成员的组成结构情况,合理搭配,充分发挥每位成员的技术专长,做到人尽其能;组织组建好项目团队,培养团结一致的团队精神,规范良好的职业道德;建立健全完备的奖惩制度,落实权利责任制度,做到权责明确,并在项目进程能及时化解各种人事冲突,营造良好的团队协作环境.
3.2顺畅有效的沟通管理
开发软件项目是一项知识性极强的工作,对人的依赖性比其它行业更为突出,因此加强人员之间的有效沟通,实现顺畅有效的沟通管理是软件项目成功的另一个关键因素.沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程.它把成功所必须的因素——人、想法和信息之间提供了一个关键连接.对于项目来说,要科学地组织、指挥、协调和控制项目的实施过程,就必须进行信息沟通.这里的沟通包括两个方面,一个方面是软件项目组开发人员与用户的沟通,另一方面则是软件项目组内人员的沟通.前者是做好软件需求分析所必须的;而后者则有助于组内成员的彼此交流,减少理解错位,实现信息畅通,改善人际关系,化解可能的冲突,加快项目的进度.沟通的方式是多样的,可以采用常用的项目组例会方式,可以通过面谈彼此交换意见;也可以利用方便快捷的通讯工具如电话、EMAIL、传真等方式加强信息的沟通;总之,顺畅有效的信息沟通,可以取得彼此的理解,剔除项目进度中的“BUG”,有利于项目按计划顺利开展.
3.3正确可靠的软件需求
软件需求是软件项目的根本所在,需求不明确,软件项目开发范围不确定,项目开发就会失去方向,容易造成开发的产品和用户实际的需求“南辕北辙“,最终导致项目的失败.一个可靠的需求,也是项目管理的关键因素之一.软件需求应当是项目有关的人员一致同意的、清楚的、完整的、详细的、可实现的和可测试的需求的确定,开发人员应该反复和用户进行沟通,认真听取用户的意见,及时归档记录,并适时发掘用户的潜在需求,最大限度地满足用户的目标,开发出用户最理想的产品.最后应拿出开发人员和用户一致认可的软件需求说明书,并加以确认.在项目开始以后,应该尽最大可能不更改需求,要与用户进行很好地沟通,以确保开发212作能按照需求进行,减少需求变更带来的风险!因此,正确可靠的软件需求也是项目成功的重要保障.
3.4周密可行的项目计划.
“凡事预则立,不预则废.”软件项目实施过程中,还必须有一个周密可行的项目计划.软件项目计划的目的是为完成软件工程和管理软件项目而制定的合理的计划,它包括以下步骤:估计软件产品规模及所需的资源,制定表,鉴别和评估软件风险和协商约定,而且要标志出几个阶段性的里程碑,这些都是极为关键的.软件项目开发组来说,一个可行的计划的重要性是不言而喻的.在实际发中,:计划的重视程度不够,计划过于笼统、粗糙导致可执行性差,再加上一些人为因素的影响,必然会产生一些反面的影响,或者有了周密可行的计划不严格遵守计划执行,任意变更,都将产生严重的负面影响,有时甚至是灾难性的影响.因此,要想成功进行项目管理,就要对高度重视、周密制定、严格执行.只有严格进行计划才能使成功项目管理得以实施.
3.5健全完备的文档资料
软件项目的文档作为软件产品的主要形式之一,集中体现了软件人员的劳动成果,在整个软件生存周期中占据重要位置.特别是在开发过程中需求发生了变更的情况下,健全完备的文档资料的重要作用就充yJ-~:现出来,开发人员可以及时在文档中回溯,快速锁定问题所在,及时解决问题避免软件项目延期,减少项目.此外,健全完备的档资料在项目接近尾声时也便于软件的测试与后期的维护工作,在项目结尾时,健全完备的文档资料也为人员的培训和项目的再开发发挥重要作用,因健全完备的文档资料也是软件项目成功的重要因素,在项目管理过程中应该高度重视.
3.6严格的风险管理
软件项目的管理是存在风险的,我们应该提前重视风险,并有所防范,最大限度减少风险的发生.实行严格的Ixt.险管理是有效的手段.建立风险项目检查表是进行风险识别的有效地方法就是,主要涉及到产品规模风险检查、过程风险检查、技术风险检查、开发环境风险检查等.此外软件的风险评估也是必不可少的.主要涉及到发生的可能性,最好建立一个尺度表示风险可能性;发生的结果;确定风险评估的正确性;另外,要对每个风险的表现、范围、时间做出尽量准确的判断.同时,要依据以下三个要素对风险进行评价:风险描述、风险概率和风险影响.并从成本、进度及性能三方面对风险进行描述.
一、软件工程开发中常见的问题
软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低开发成本;达到要求的软件功能;取得较好的软件性能;软件易于移植;维护费用较低;能按时完成开发任务;软件可靠性高等。在软件工程开发中遇到的具体问题可以总结为如下几点:
(1)软件模块开发过于独立,各模块没有统一的开发标准,造成系统功能重复,开发平台不统一,系统整合难度大;
(2)系统开发往往针对某一特定功能,没有形成一个完整的系统结构;
(3)总体设计不够细致,各个子系统功能模块风格不统一;
(4)开发人员技术水平、开发能力和时间有限,开发手段相对原始,代码的可重用性低、可读性差;
(5)缺乏有效的软件文档管理。这些问题集中体现在软件项目开发的每一模块中,导致整个项目开发过程中,开发费用超出原定计划,生产的软件系统不能满足用户需求,系统难以简易维护,系统无法高效运行等问题。这里既有技术层面的因素,即开发平台不统一;也有软件开发的组织与管理层面的因素,即程序员对系统功能的定义、规划和设计不明确,往往是开发人员摸着石头过河,仅仅从自己开发的这部分模块来考虑问题,另外开发人员和测试人员不能很好的协调,这些都说明了软件项目管理这一角色的欠缺。
二、项目管理针对软件工程开发的优势
项目管理包括时间、质量、成本三大要素,三者相辅相成,相互制约。时间可等价于软件项目开发中的开发生命周期,即在最终达到开发目标前的各个阶段的总用时。质量可等价于最终开发软件系统的功能性,可用性与达到的客户满意度。成本相当于软件项目开发中的费用,包括人力、地点、工具、系统故障处理等方面的开销。统筹时间、质量、成本三要素,即统筹软件项目开发周期、软件使用客户满意度和开发费用之间的平衡关系,不因忽略某一项指标而导致项目开发目的实现不了或中途中断,也不会为了实现较高的效率,而忽略成本的牺牲,让所有项目开发过程中,所涉及到的因素都可有条不紊地进行。
SPPT是项目管理另一层面上概括的四要素,分别为:战略(Strategy)、人(People)、次序和安排(Process)、工具(Tool)。战略对于软件项目来说,主要概括为模块开发的开发方式,配合方法等;人,毫无疑问,指的是项目开发中的参与者;次序则是项目如何划分模块,以及模块开发的先后次序;工具,即使用工具,包括:辅导设计程序系统、文档编写系统、资源管理系统等。对这四要素的稳定地统筹把握,能更好的协调好项目开发过程中涉及的多个方面,而又不造成某一方面的缺失,导致项目最终目的实现不了或效果不明显。
三、项目管理思想与软件工程开发的结合
根据上述项目管理要素与软件工程开发要素的结合,平衡项目开发过程中的开发要素,能更加简洁高效地完成项目开发目标。IT软件企业处于项目为主导的环境中,每天所面对的将是成百上千不断发生、进行的项目。在这种多项目并发、高技术、快速变化、资源有限的环境下,为了试图满足不断变化的市场需求及应对各种挑战,必须考虑改进项目管理。
以项目为中心有效地将所有资源结合在一起的工作方式将是软件企业,特别是项目经理或企业主管必须面对的、认真思考的课题。一个成熟的软件项目,必须具有一位项目经理做到:了解软件开发项目完整流程;掌握如何制定完整精炼的软件项目计划书;掌握项目管理体系中的各个要素;学会进行项目的跟踪和总结等。除此之外,一个软件项目能否最终达到成功,最关键的是进度控制。对于进度控制而言,计划尤为重要,它影响到资源是否被合理使用,项目能否顺利进行,直接关系到项目的成败。有两个重要方法可以应用到该控制中,一个是里程碑设置,以周为一个小里程碑,以月为中里程碑,以项目初验为一个大里程碑,允许在一定范围内存在进度偏移度。另一个是项目定期汇报。提交工作项目周报,包括项目名称、项目负责人、项目开始时间、项目计划初验时间、項目计划偏移度等。最后,制定周例会制度、建立配置管理和监督体系,也尤为重要。
自考计算机专业毕业论文怎么写呢?有没有什么写作技巧呢?本篇就是向大家介绍了自考计算机专业毕业论文写作技巧,记得关注学术参考网查看更多的论文写作方法,欢迎大家阅读借鉴。
写作流程
自考计算机专业毕业论文有1年准备时间,写作时间的分配主要取决于考生软件开发的进度,如果考生开发的软件很成熟,那末后续的写作时间就较快,否则后面的写作就会很被动。例如,一般会在每年7月份登记,9月底开题,期间开发软件,到第二年2、3月就要完成初稿,再留一个月修改。
1、选题。选题首先要重要、有意义。例如有的考生选择设计木马程序,其本身是个病毒程序,这样的程序只能带来危害,实际生活中没有意义,就不能用于做毕业论文。
2、开发软件。开发软件要与实际相结合。实际性非常重要,要自己能开发一个能实际运行的软件。有的考生自己并没有参与实际工作,只是看书是不行的。自己参与的可以是一个大的项目或课题组,论文中介绍完大的系统后,一定要把自己的工作量写清楚。
3、写论文。开发完就可以写论文了,论文是个总结,但是不要写成工作总结,一定要有主题,应体现自己的开发思想和论述自考本科计算机专业毕业论文写作指南自考本科计算机专业毕业论文写作指南。写论文要达到一定字数,一般要3万字。其中,编程代码一般为2-3千行,这个不是机器自动生成的代码,一定是自己写的源代码。
论文结构
计算机专业毕业论文一般有8个部分。1、概述或引言。这个部分相当于大纲,一般要求4-5千字,主要是对软件开发背景,使用的软件工具、环境,最后达到的效果,自我在里面的贡献等;2、需求分析。软件有哪些功能、模块,用的什么工具等;3、设计方案和主要技术自考本科计算机专业毕业论文写作指南文章自考本科计算机专业毕业论文写作指南出自http://gkstk.com/article/wk-78500001321796.html,转载请保留此链接!。主要是对里面每一部分的详细论述,使用的是什么技术,为什么使用。详细的模块分析或遇到的难点是怎样解决的等;4、具体的实现过程;5、测试。介绍自己开发软件实际达到的效果;6、总结。介绍自己开发软件的体会,或自己开发的成果使用情况,有什么评价,自己还有哪些不足,有什么需要改进的地方;7、致谢;8、参考文献。另外,还可以加一个“附录”部分。正文只能有一个中心,其他有重要参考价值的都可以放在附录部分。例如有重要的代码、图表,涉及其他领域的知识,需要解释的等都可以放在附录部分。
案例1:《家装工程预算软件的开放》1、概述;2、需求分析;3、总体设计;4、数据库设计;5、软件功能的实现;6、结论及改进;7、致谢;8、参考文献。
案例2:《经纬中天无线短信增值服务管理软件的设计和开放》1、引言;2、需求分析;3、设计方案论证和主要技术介绍;4、系统设计;5、编码实现;6、实际运行中出现的问题及相应的解决方案;7、结束语;8、致谢;9、参考文献。
答辩程序
答辩现场会有专业老师组成的答辩小组,一般为5人左右,学生抽签分配答辩组。答辩现场要考生做介绍和演示。考生需要提前准备幻灯片,一般不超过20张,为论文最核心部分的内容自考本科计算机专业毕业论文写作指南论文
WiseMedia
考生结合幻灯片介绍论文,答辩小组老师会根据考生论文提出问题,考生要实事求是回答,最后答辩小组老师打分,求平均分给出考生论文成绩。大部分考生都会达到优、良,个别考生没有通过论文,主要有两方面原因:1、论文并不是自己真正所做,用别人的软件为自己所用,老师一提问就能发现破绽;2、考生论得太简单,达不到工作量。这就需要考生踏踏实实地按照要求去作论文。
零碎提醒
论文的题目不要太大,一定要具体、实际,不能吹成通用的;
自考生考过全部课程后,最好能寻求实践机会。可以去应聘公司,真正参与一个项目,一边工作一边写论文;
论文不要上网抄,一定要自己做;
引用资料要有脚注;
关键词: 软件故障预测;贝叶斯信念网;软件度量
1 引言
当前关于软件故障预测的研究大都集中于软件工程领域的某个方面,毕业论文 如面向对象系统中利用各种度量属性建立模型预测故障数和故障倾向,利用测试过程中用例的覆盖率预测模块故障,利用专家经验建立专家知识库预测故障等等.软件故障的原因贯穿于软件开发全过程,仅从一个方面来考察软件故障是不充分的.近十几年备受关注的贝叶斯网络(BBNs)对于解决复杂系统不确定因素引起的故障具有很大的优势,被认为是目前不确定知识表达和推理领域最有效的理论模型.本文提出基于BBNs的故障预测方法,综合利用软件开发过程信息预测软件故障.
2 软件故障预测的研究现状
预测故障的方法可以分为两大类:(1)基于数量的技术,关注预测软件系统中的故障数;硕士论文 (2)基于分类的技术,关注于预测哪些子系统具有故障倾向.第一类已经有一些研究,但是开发一个有效的模型比较困难.第二类方法更成功一些.利用软件度量来预测故障倾向是一个重要的趋势和研究内容,当前的预测模型涉及软件设计度量,代码度量和测试度量.软件维护的历史数据,例如软件改变历史[1]和过程质量数据[2]也被用于软件故障预测.很多专家认为开发过程的质量是产品质量(这里默认是残留故障密度)最好的预测器.Ahmed E.Hassan等人提出利用启发式规则预测软件子系统故障倾向[3].还有文献提出利用测试过程中的各种数据(如测试覆盖率)来预测故障[2].
分析已有的故障预测模型,它们大多基于软件开发过程中的某一个或几个阶段的数据,或者基于一种或者几种度量,如软件复杂性度量和测试度量.但显而易见,影响软件质量的关键因素不仅仅是其几个度量.软件故障与软件开发全过程往往具有不确定的因果关联关系,导致软件故障的因素很多,单纯从软件开发过程的某个阶段或基于几种度量来预测软件故障是不充分的.BBNs本身是一种不确定性因果关联模型,具有强大的不确定性问题处理能力,能有效进行多源信息表达与融合.因此本文提出基于BBNs构建软件故障预测模型,综合利用软件开发过程信息预测软件故障.
3 贝叶斯网络
一个BBNs是一个有向无环图,由代表变量的节点及连接这些节点的有向边构成.节点代表随机变量,可以是任何问题的抽象,医学论文 如问题复杂度,观测现象,意见征询等.节点间的有向边代表了节点间的相互关联关系.有向图蕴涵了条件独立性假设,用A(vi)表示非vi后代节点构成的任何节点集合,用∏(vi)表示vi的直接双亲节点集合,则P(vi|(A(vi)∪∏(vi)))=P(vi|∏(vi)).用条件概率表(conditional probabilities table,CPT)来描述点与点之间关联,条件概率表可以用P(vi|∏(vi))来描述,它表达了节点同其父节点的相关关系———条件概率.没有任何父节点的节点概率为其先验概率.图1用BBNs描述了一个简单的关于软件产品质量的例子[4],产品质量由管理能力和开发能力确定,表1为其CPT.BBNs对构造者的信念(专家知识和经验)建模,基于这个模型它能够提供精确的数学计算和预测.
4 基于BBNs的软件故障预测方法
将BBNs应用于软件故障预测的步骤是:(1)确定变量及其顺序;(2)建立BBNs结构;(3)确定BBNs的参数(CPT).本文从软件开发过程来建立一个BBNs基本模型,并以此模型为基础扩展节点.
4·1 一个BBNs故障预测的基本模型
影响软件项目风险的基本因素可分为两组,一是与组织相关的因素,包括组织文化,管理经验和能力以及过程成熟度.二是与项目相关的因素[4].影响软件故障的基本因素可以描述为图2的基本模型.方框是可以扩展的基点.“项目特征”和“验证和确认”影响到软件开发的需求分析,设计,实现和测试过程,软件故障受开发过程的影响,这个模型涵盖了软件开发过程
4·2 扩展的BBNs故障预测模型
我们用已探测的故障数,残留故障数,职称论文 残留故障密度和测试中故障密度四个节点来描述软件故障,分别用“问题复杂度”,“设计功效”和“测试功效”节点描述需求分析,设计和测试过程.V&V[4]与问题复杂度,设计功效和测试功效三个变量关系紧密,因此本文去掉V&V节点,将这些描述V&V节点的变量(如测试覆盖率,员工能力等)用来确定问题复杂度,设计功效和测试功效的参数.
本文采用如图3所示的BBNs故障预测模型,这个模型可以解释为两个阶段:第一个阶段覆盖了软件生命周期的规约,设计和编码;第二个阶段覆盖了测试.设计规模和缺陷数节点为整数或者一个限定的范围,故障密度为实数,其他节点有下面的状态:很高,高,中等,低,很低.问题复杂度表示待开发问题集中内在的复杂度,这些问题是规约中离散的功能需求,问题复杂度和设计功效之间的不匹配将导致引入故障数和设计规模增大.测试阶段在设计阶段之后,实践中实际分配的测试功效比所要求的少得多.测试功效和设计规模之间的不匹配将会影响已探测故障的数目,引入故障是其边界条件.已探测故障和引入故障之差是残留故障数.测试中故障密度是已探测故障和设计规模的函数(已探测故障/设计规模),同样,残留故障密度是残留故障数/设计规模.这里的问题复杂度,设计功效和测试功效的粒度仍然较大,不利于确定其状态,将其继续扩展,建立相应子网来描述这些节点:(1)问题复杂度子网(图4);(2)设计功效子网(图5);(3)测试功效子网(图6).
4·3 确定BBNs参数
接下来的问题是确定变量状态的概率和变量之间关系的强度.从对软件开发过程的各种文档记录中我们可以得到一些确定性知识.对于不确定性知识,传统的方法是根据专家经验主观确定.研究人员定义了大量软件度量描述软件质量[2,5,6],将这些研究与专家知识和经验结合起来确定BBNs参数.
4·4 推理规则
采用应用最广的随机模拟采样法(Pearls and Gibbs算法).首先,为网络上的节点做初始实例化,证据节点实例化为观察值,非证据节点实例化为随机值;然后,开始遍历图,对每一非证据节点Y,计算在其他节点给定值的情况下Y的后验概率分布:
P(Y|WY)=αP(Y|Pa(Y))∏iP(si|Pa(si))
式中,WY表示除Y的节点集合,Si表示Y的第i个子女,工作总结 为正规化因子,其余乘积项为条件概率.公式表明了本节点的概率仅与其父母节点,子节点及其子节点的父母节点有关;Pearl使用上式结果对节点进行采样,结果作为Y的新实例化,反复进行,直到近似过程收敛(设进行了m次遍历),这时查询结果为:P(Y|e)=1m∑mi=1fi,fi为第i次遍历Y的条件概率,e为证据向量的观察值.
5 仿真实验
本文在AgenaRisk[7]系统中对该模型进行仿真实验.实验部分采用了AgenaRisk中关于软件故障预测和软件项目风险管理的数据.由于具体的项目数据难以收集,我们根据图3所描述的简化模型来做仿真实验.在实验中我们用软件需求复杂性度量和软件需求变更度量来描述问题复杂度[6].利用各种度量来描述设计功效,包括对象(模块)之间的耦合数(耦合度量),不使用公共属性的方法的个数(内聚度量),继承树的深度和继承的平均深度(继承度量)[5].用代码覆盖度量来描述测试功效,定义一个相应策略的测试有效率(test effective-ness ratio,TER),TER1是语句覆盖的测试有效率,TER2是分支覆盖的测试有效率,TER3是线性代码顺序和跳转覆盖测试有效率.我们设定的是一个中等规模的系统,严格按照软件工程开发过程开发,花费了大量资源在设计和测试上,尽量减少耦合,增加内聚,TER1,TER2达到100%,TER3达到90%,因此可以判定设计功效为很高(概率为100%),测试功效很高(概率为100%),如图7所示.从仿真结果可以看到设计规模较小,引入故障数较少(期望值为17.8),已探测故障密度相对较高,剩余故障数较小(期望值为6.6),这与实际情况是相符合的.当我们将设计功效设置为较低时(概率为100%),如图8所示,明显设计规模变大,引入故障数增加(期望值为43.1),相应的剩余故障数增加(期望值13.0),已探测故障密度减少.表2是两者的对比结果.在实验中我们分别对问题复杂度,测试功效和设计功效赋值,以检查模型对各种环境下的变化,其结果与实际较为符合,说明了模型的合理性.
6 结语
本文从软件开发全生命周期来考察故障,给出了一个BBNs故障预测原型系统,并在AgenaRisk系统中对该模型进行仿真实验.从实验结果可以看到,BBNs能够使用来自主观和客观的概率分布和不充分的数据预测软件故障数.仿真实验还只是基于一个简化的模型,将实际项目数据应用于模型,探讨建立完备网络结构和确定节点状态的方法,建立适应具体项目便于数据收集和确定节点状态的网络是需要进一步探讨的问题. 参考文献
[1] Todd L Graves,Alan F Karr,J S Marron,Harvey Siy.Predict-ing fault incidence using software change history[J]. IEEETransactions on Software Engineering,2000,26(7):653-661.
[2] Fenton,NE,Neil M.A critique of software defect prediction models[J].IEEE Transactions on Software Engineering,1999,25(5):675-689.
[3] Ahmed E Hassan,Richard C Holt.The top ten list:dynamic fault prediction[A].Proceedings of the21st IEEE International Conference on Software Maintenance(ICSM’2005)[C].Bu -dapest,Hungary:IEEE,2005.263-272.
[4] Chin-Feng Fan,Yuan-Chang Yu.BBN-based software project risk management[J].Journal of Systems and Software,2004,73(2):193-203.
[5] Munson J C,Nikora A P.Toward a quantifiable definition of software faults[A].Proceedings of13th International Sympo-sium on Software Reliability Engineering(ISSRE2002)[C]. Annapolis,MD,USA:IEEE,2002.388-395.