软件项目开题报告十篇

时间:2023-03-18 17:04:26

软件项目开题报告

软件项目开题报告篇1

【关键词】软件开发;配置管理;小团队

1.引言

现在在研的军工产品上装备着大量的计算机软件,因此软件质量直接关系到了产品的可靠性,软件配置管理(SCM,Soft Configure Management)的目的是在整个产品的软件生存周期内,建立和维护软件项目的完整性。

软件配置管理包括在给定时间点上及时地标识软件的配置,系统地控制对配置的更改,并在整个软件生存周期中维护配置的完整性和可跟踪性。置于软件配置管理之下的工作产品包括交付给客户的软件产品(如软件需求文档和代码),以及与这些软件产品一同标识的或为产生这些软件产品所要求的产品项(如编译程序)。

通过软件配置管理的更改控制和配置审核职能,项目能系统地控制对基线的更改和由软件基线库构造的软件产品的。

关键过程域包括实施软件配置管理职能的有关实践。标识特定配置项/单元的实践则包含在描述各配置项/单元开发和维护的关键过程域中。

2.SCM的关键活动

软件配置管理包括了多项相关活动,其中包括版本控制、建立软件配置库系统、配置项变化的控制、软件基线记录报告等等。如果将SCM作为一个配置管理模型,应当强调以下几点:

2.1 任务清晰,责任明确

为了确保软件开发过程中开发人员之间各种信息交流的顺畅和准确,首要问题是确立一个实施架构。通常是以“组”的概念细分一项工程中各类任务的执行单位,明确各组在开发和管理过程中各自的职责、需要完成的工作,管理层面可由此清晰地了解产品的完成情况。总体设计者利用任务的展开方式进行任务分配,用网络图的方式控制各组之间的关系,包括时间进度计划和各组之间的接口等等。

软件开发过程中的任务管理是配置管理的基础,如果任务定义不明确,配置管理的实施也将难以保证。通过对任务的详细定义,把每一个子任务具体分配给某一个人去完成,这样就将对集体管理的任务细化到对个人的管理层面上了。

2.2 建立软件配置管理库系统

建立软件配置管理库系统的主要目的是用来存放软件基线。它可以对软件配置管理进行多级控制,譬如在产品开发周期中,不同阶段有着不同力度的配置管理,随着产品不断成熟,控制力度也随之增强;提供对库中配置项的存储和修改的功能,支持在相关组之间和库中不同控制级间共享和传输配置项;支持生成软件配置管理的报告文档及软件基线内容的报告文档;有助于确保从软件基线库中的相关文档和软件产品的正确性。

2.3 版本管理

版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个中间产品的任意版本。版本管理记录了所有库中代码和文档的开发历程,可以保证产品的可追溯性,为调试代码、清除缺陷提供很大的帮助。同时,版本管理支持并行开发和维护,为协同开发打下了基础。

2.4 变化控制

在有配置管理概念的软件产品开发过程中,所有的改变都是在有效控制下的,包括软件基线的改变、配置项的改变。改变管理的一个基本项就是改变请求(CR,Change Request),在一个软件系统中描述逻辑上改变的实体。改变请求是由开发计划变化和故障报告单生成的。在开发过程中,CR主要收集有关系统改变的信息。开发人员将一个新建或修改过的文件写入库中时,要指出相关的CR,文件名称和版本需在CR中登记。CR的最终版本包括逻辑改变的描述和所有修改的文件版本信息。由SCM组和SCCM(软件配置控制委员会)审核要写入配置管理库中的新的软件基线。

3.软件配置管理工具

软件配置管理工具(SCMT,Soft Confi-gure Management Tool)正是从这一角度出发,对软件配置管理过程进行具体实施,将抽象的软件配置管理工作转化为可借鉴的、可操作的具体执行规范。SCMT作为软件配置管理的辅助手段,必须要制定一个实际、可行的软件配置管理流程,依据该流程,加之SCMT的辅助,软件配置管理工作才能真正做到科学、有序。

Bloand公司的专业软件配置管理软件Startea具备自动比对功能,它可以使得软件变化情况一目了然;其次它的标签功能和链接功能能极大的为我们标注各版本文件之间的关系,并在以后将这些相关的配置项一同提出或者其他操作提供有力的支持;再次它还提供了一个系统日志功能,对登陆人员进行的每次操作都进行了详细的记录,让配置管理人员在特定的需要时进行查询;接着他还提供了全面强大的权限设定管理系统,对登陆访问人员的配置管理员可以从项目、视图、文件夹、项四个层级上对他们的所能看到的内容和所能进行的操作进行详细的设置,使得配置项的保密性有了可靠的保证,另外它还提供视图、提升状态、管理需求、管理主题等概念和功能。此SCMT功能强大,能够满足我们的需求。

4.软件配置管理流程

SCMT将软件配置管理工作分解为项目建立、配置策划、项目策划、计算机软件配置项(CSCI)策划、CSCI入库(初始入库、更动入库)、软件问题报告、软件更动报告、更动出库、浏览出库、项目归档、项目导入、产品定义、产品出库、配置审计、配置追踪、状态报告等。

首先由系统管理员建立项目,将项目基本信息入库和创建软件配置控制委员会(SCCB)用户、项目管理员;其次由项目管理员对已建立的项目进行项目策划,划分CSCI,一个项目可以包含一个或多个CSCI,包括将CSCI基本信息入库和创建CSCI管理员、配置管理组成员,项目策划需要由软件配置控制委员会审批。

其次,由CSCI管理员进行CSCI策划,包括划分基线、为每条基线标识软件配置管理项(CMI)、确定CMI之间的依赖关系、创建一般用户,CSCI策划由配置管理组审批;配置策划完成后,即可进行初始入库(指CMI的初次入库,由权限用户操作,由配置管理组审批)。有了已入库的CMI后就可以进行后续操作。

SCMT中规定如下配置更动规程:配置更动针对的是受控库中登录的软件问题,配置更动实施前必须填写软件更动报告,经更动评审组评审通过,且确认评审结论为“按计划实施”时,才能从受控库中提出需更动的CMI并实施更动。更动实施完成后,必须通过评审才能重新进入受控库。

更动过程在SCMT内分解为提交软件问题报告,提交软件更动报告,更动出库和更动入库。软件问题报告由发现问题的人员填写,不需要审批;软件更动报告由CSCI管理员填写,交更动评审组审核。在项目建立时或在接到软件更动报告后,建立更动评审组。根据所开发软件的关键级别和规模大小决定更动评审组规模的大小,构成人员应包括软件项目的管理人员、技术负责人员、总体设计人员、软件质量保证人员和软件配置管理人员,组成人数可视实际情况酌定。更动评审组收到软件更动报告后,分析此更动的必要性和技术可行性,并权衡其他的更动策略和方法,所涉及的有关CMI,对系统的功能和性能的影响,更动所需的资源是否合理、充分以及对整个工程进展和经费的影响等。由此决策是否实施此项更动,并给出更动评审结论,同时由SCCB签署该软件更动报告。

5.SCMT中的更动结论和游览出库

SCMT审查签署后的软件更动报告中的更动结论是指清除问题时,形成“问题报告”-“更动报告”链并问题解决通告;暂缓执行时,不需做任何处理;按计划实施时,允许CMI更动出库。更动出库由权限用户依据签署的软件更动报告进行;更动入库由权限用户操作,由CMG审批。

浏览出库是指出于测试或阅读的需要对CMI进行出库,浏览出库不需要审批。产品定义、产品出库、项目归档和项目导入由项目管理员操作,由SCCB审批。要求出库的产品必须曾经定义过,要求导入的项目必须为归档项目。配置审计、配置追踪、状态报告由SCCB、CMG、CSCI管理员操作。

6.结束语

软件项目开题报告篇2

【关键词】质量管理

1前言

2015年6月,作者参与了“XXXX”软件项目(以下简称为S软件)主管一职,任务来源于航天系统外部客户,XXXX应用于航天XX卫星载荷分系统导航任务处理机计算机模块S,主要目的设计支持应用程序的上载和重构功能。由于本软件应用于航天卫星系统,对软件质量、可靠性和安全性要求较高,本软件的开发过程中结合国军标GJB5000A能力成熟度模型三级的框架要求(相当于CMMI三级要求),以及软件工程学的质量保证策略进行项目的质量保证工作。S软件类型为新研类项目,使用C语言编码。软件的生存周期包括:软件需求分析、软件设计、软件实现、单元测试、集成测试、配置项测试、软件验收交付7个阶段,由于S软件应用于航天系统,可靠性安全性要求较高,需要对每个阶段的工作进行认真的评审和审查,所以整个阶段采用瀑布模型进行软件的研发。2016年1月,S软件已随卫星发射,目前卫星在轨运行,本软件运行正常。

2软件开发平台下的质量保障

下面作者以此软件开发平台项目为背景,论述了如何在公司质量管理体系大环境下,进行项目的质量规划、质量保证和质量控制等项目质量管理工作。

2.1项目初始阶段,对组织级项目管理过程进

行剪裁,制定项目的已定义过程作者所在的公司是一家科研研究所,我所已经建立ISO9000质量管理体系,也通过了国军标GJB5000A能力成熟度模型三级认证。我所具有较为完备的项目管理体系文件,其中包含了质量管理体系。我所制订了相关的质量方针和目标,落实了质量责任。按照我所项目管理流程,项目管理团队在项目启动后需要对组织的质量管理过程以及相关的项目管理过程进行剪裁,剪裁过程依据我所制定的过程剪裁指南执行。为保证用户需求不被遗漏、蔓延,为项目制定了需求双向跟踪矩阵,并根据体系文件《需求管理过程剪裁指南》,将需求双向跟踪矩阵包含在《需求规格说明》中;根据《工程过程域剪裁指南》将《概要设计说明》和《详细设计说明》合并为《设计说明》;过程和产品质量保证过程的工作产品输出为:质量保证计划、不符合项记录、产品评价记录单、过程评价记录单、软件质量保证报告。剪裁完毕后,形成本项目的已定义过程,之后我作为项目经理组织了同行评审,邀请项目组成员、相关专家、以及所EPG组成员参与,经过评审通过后,作为本项目执行过程中的指导。并将已定义过程写入开发计划的一个章节,作为制定质量管理计划的输入之一。

2.2项目计划实施阶段,制定质量计划、实施质量保证和质量控制

在完成项目管理的剪裁和开发计划后,作者领导和组织质量保证人员开始制定项目的质量管理计划。在质量管理计划中,明确了组织和资源,人员的分工;明确了质量目标;明确了质量保证活动和进度安排、以及使用的工具;明确了质量控制过程、进度安排、以及使用的工具;明确了工作产品和过程不符合项的解决和处理途径,软件BUG的管理。作者和项目组成员进行了充分的沟通,明确了质量对项目的重要性以及大家如何做才能保证项目的质量,使大家对于如何实现项目的质量目标充满了信心。使大家就以下内容达成了一致:(1)项目的质量是靠规范的项目管理流程和质量保证人员对项目的监管,而不是单靠测试保证的;(2)要十分重视项目的质量成本,越在项目早期发现的错误,纠正的成本越低。(3)项目质量目标的达成需要全体项目成员的参与,而不是个别人的事,质量保证人员在对过程和产品评价过程中指出的问题,项目组所有成员都应予以配合,及时纠正。根据规划,在项目实施期间,质量保证人员对软件工作产品和工作过程进行评价。过程评价依据组织级过程检查单,对工程过程和管理过程进行评价,包含需求分析需求分析过程、软件设计过程、软件实现过程、软件测试过程、需求管理过程、配置管理过程、项目管理过程、同行评审过程、测量分析过程的评价。除配置管理过程由事件促发评价外,其他过程评价每周一次,生成不符合项记录和质量趋势评价报告,对发现的质量问题用Excel进行统计分析。工作产品完成后两天内由质量保证人员完成审核,然后开展同行评审。对质量保证过程中发现的不符合项,形成不符合项纪录,及时通报给相关责任人,遇到质量保证人员和责任人意见不一致则逐级上报,先汇报给作为项目经理的作者,对仍不能解决的问题,再汇报给部门领导。考虑到本软件应用于航天系统,对质量要求较高。对本软件的源代码由测试组人员开展了单元测试、集成测试、配置项测试,测试组人员设计了相关的测试用例,单元测试语句和分支覆盖率均达到100%;在集成测试中,制定了模块设计和集成测试用例的双向跟踪举证;在配置项测试中,根据《需求规格说明》,制定了需求和配置项测试用例的双向跟踪举证。除开展单元测试、集成测试、配置项测试外,增加了代码走查,由每个模块的二岗设计师按照《航天软件C语言安全子集》要求对代码进行代码走查,形成走查报告,及时发现问题,修改代码直至符合要求;对关键模块代码进行代码开展同行评审;并请专业测评机构对软件开展第三方测评。对所有工作产品进行同行评审,对需求规格说明和配置项测试报告开展了用户参与外部评审,形成评审报告,对评审过程中发现的问题,有质量保证人员跟踪验证,直至问题关闭。对测试过程中发现的BUG,使用TestDirector进行BUG的跟踪、管理,直至问题关闭。对软件源代码和相关技术文档使用SVN<<上接59页系统进行配置管理,工作产品经过评审并对评审问题经质量保证人员验证关闭后进入配置管理系统,对交付用户的工作产品,待验收通过后需入产品库,再交付用户,保证了软件版本的有序性和正确性。

2.3项目收尾阶段,总结经验教训,丰富组织过程资产

在项目交付时,由用户和相关部门领导、资深工程师组成的评审委员会,对项目的成果进行了验收。认为项目的主要交付物已达到用户要求,可以交付用户使用,参与XX卫星载荷分系统的分系统联试。但也提出技术文档和源代码版本的配套说明欠缺,在《版本说明》文档中加以描述,经过评审后,入配置管理受控库。之后,源代码和需交付用户的文档入我所产品库后交付用户。作为软件开发主管,组织了项目组成员开展了项目的总结会议,分析了项目执行过程中的经验和教训,形成项目总结报告,并归入我所资产库,作为历史数据供后续项目参考。对质量保证过程检查单进行了修正,经过评审通过后,也归入组织资产库中,丰富组织过程资产。

3结语

软件项目开题报告篇3

【关键词】软件测试 测试报告 测试流程

1 引言

软件测试是软件开发过程的重要组成部分,是用来确认一个产品的品质或性能是否符合开发之前所提出的要求。对软件需求分析、设计规格说明和编码的最终复审,某种程度上测试工作的好坏直接影响了软件产品的交付和用户的满意度。因此,如何做好测试工作,使测试在软件工程中顺利进行,辅助软件开发工作是我们每个软件人员应该考虑的问题。

2 软件测试的目的

(1)确认软件的质量,确认软件做了你所期望的事情,确认软件以正确的方式来做了这个事件。

(2)提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。

(3)软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。软件测试的第三个目的是保证整个软件开发过程是高质量的。

3 软件测试的对象

软件测试并不等于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。

4 软件测试流程

软件测试工作并不是在软件代码开发完毕后才开始的,这一点是很多软件人员的误区,需要明确一下,它其实是在项目进入软件实现阶段就开始了,项目进入软件实现阶段的时候,就应该启动软件测试工作了。

下面根据笔者的测试经验,详细阐述一下软件测试的流程、每个阶段需要做的工作及整个测试过程产生的文档。

4.1 计划与设计阶段

4.1.1 召开测试启动会议

当项目进入软件实现阶段(编码),测试经理召集项目经理、开发经理开会确定测试交接时间,开发团队与测试团队交接测试内容,对测试目标达成一致,商讨测试计划的可行性,统一项目组的目标和测试的工作重点。进行规模预估并成立测试团队,完成《测试计划》和《测试方案》。

4.1.2 设计测试用例

明确了测试需求和测试计划,在需求分析文档确立基线以后,测试组需要针对测试需求编写全部测试用例,在实际的测试中,测试用例将是唯一实施标准。

4.2 实施测试阶段

4.2.1 实施测试用例

实施测试用例将花费测试组绝大部分时间,这些工作都是建立在前期很多计划工作的基础上。当测试用例全部编写完成后,测试工程师根据测试计划中分配给自己的测试任务,实施相应的测试用例,并记录测试结果。

4.2.2 填写测试记录

测试人员在进行具体的测试工作时,需要将测试内容填写在测试记录表中,直到所有的测试执行工作结束。

4.2.3 提交BUG清单

在具体的测试过程中,测试人员发现BUG后,需要将BUG记录在清单里,并及时提交给测试经理。

4.2.4 提交测试报告

在约定的测试周期完成之后,测试工程师需要总结此测试的结果,编写测试报告。测试工程师根据此轮测试的结果,编写测试报告,主要应包含以下内容:

(1)测试报告的版本。

(2)测试的人员和时间。

(3)测试所覆盖的缺陷――测试组在这轮测试中所有处理的缺陷, 不仅要写出覆盖缺陷的总数,还要写明这些缺陷的去向。

(4)上一版本活动缺陷的数量。

(5)经过此轮测试,所有活动缺陷的数量及其状态分类。

(6)测试评估――写明在这一版本中,哪些功能被实现了,哪些还没有实现,这里只需写明和上一版本不同之处即可。

(7)急待解决的问题――写明当前项目组中面临的最优先的问题,可以重复提出。

在每轮测试结束之后应尽快将符合标准的测试报告发给测试经理。

4.3 总结阶段

测试工作结束或即将结束时,测试组就要开始着手准备进行总结的工作。

4.3.1 编写测试总结报告

在测试结束之后,测试经理编写测试报告,对测试进行总结,并且提交给项目经理,为产品的后续工作提供重要的信息支持。

测试经理根据测试的结果及测试工程师提交的测试报告编写测试总结报告,测试总结报告必须包含以下重要内容:

(1)测试资源概述―多少人、多长时间。

(2)测试结果摘要―分别描述各个测试需求的测试结果,产品实 现了哪些功能点,哪些还没有实现。

(3)缺陷分析―按照缺陷的属性分类进行分析。

(4)测试需求覆盖率―原先列举的测试需求的测试覆盖率,可能 一部分测试需求因为资源和优先级的因素没有进行测试,那么 在这里要进行说明。

(5)测试评估―从总体对项目质量进行评估。

(6)测试组建议―从测试组的角度为项目组提出工作建议。

4.3.2 测试验收

测试验收工作是在以上工作全部结束后,测试经理对测试的过程、效果进行验收,签发测试验收报告,宣布测试结束。由测试经理进行测试验收,验收内容包括:

(1)测试效果验收―测试是否达到预期目的。

(2)测试文档验收―测试过程文档是否齐全,符合标准。

(3)测试评估―从总体对测试的质量进行评估。

(4)测试建议―对本次测试工作指出不足,需要在以后工作中改 进的地方。

(5)宣布测试结束―测试组成员签字宣布本次测试结束。

4.3.3 测试归档

测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档进行归档,主要包括测试计划、测试用例、测试报告、验收报告等。这些文档的编写保障了测试的顺利进行,同时作为整个测试项目的痕迹,被保留下来,供查阅。

参考文献

[1]佟伟光.软件测试[M].北京:人民邮电出版,2008.

[2]Rex Black.测试流程管理[M].北京:北京大学出版社,2001.

[3]Robert V.Binder著,华庆一等译.面向对象系统的测试[M].北京:人民邮电出版社,2001.

[4]Mark Fewster, Dorothy Graham著,舒智勇等译.软件测试自动化技术与实例详解[M].北京:电子工业出版社,2000.

[5]Karl E.Wiegers著,陆丽娜,王忠民,王志敏译.软件需求[M].北京:机械工业出版社,2000.

软件项目开题报告篇4

有些存在质量问题的软件,在运行时程序时就会出现问题,软件的维护就更加困难,如果投入到新的硬件中进行使用,两者之间就未必能够相互适用。计算机整体的成本因为软件成本的增加而增加。近些年,计算机技术在不断的发展,自动化的软件生产程度也在不断提高,这样一来,导致计算机在硬件方面的开发成本却越来越低,由于软件开发对人力、物力的需求都在不断增加,软件成本逐年增高已成了必然趋势。

2软件工程的项目控制跟踪

2.1项目跟踪内容

依据软件项目计划,必须要对软件的产品规模(或更改后的规模)、软件的成本与工作量、所使用的重要计算机资源、项目软件日程、软件工程技术活动、项目费用、技术风险等内容与软件在开发前计划的相应内容进行比较。

2.2项目跟踪过程

软件项目的控制跟踪过程分为:

(1)项目跟踪人员要对软件度量的实际数据与再计划数据进行记录;

(2)负责人要根据文档里记载的程序在指定的地点审查项目成果;

(3)对软件的监控活动和项目的跟踪予以必要的检查。

2.3项目跟踪存在的问题

(1)控制与跟踪的频度,控制与跟踪在项目开发工程中的关键点有多个,这就需要我们找到一个好的频度去跟踪,若跟踪点少,就不能保证问题及时被纠正;若跟踪点多,在人力物力上的花费就会增多,对总体效率的影响很大。控制与跟踪的频度关系着软件项目的规模,大型项目设置的关键点相应较多。

(2)项目计划的修改,控制与跟踪软件开发过程以后,可能会发现软件项目有些地方会不符合实际,需要制定相应的修改计划,但其他组的活动就会受到修改后计划的影响,因此,没有得到相关组的同意,就不能对项目计划随意修改。

3软件工程的预测

3.1软件预测的意义

软件工程项目最关键的环节就是对软件进行预测,如果测试环节出现了问题或者测试不细致,那么将直接导致生产出的软件质量不过关,在应用软件的过程中也会逐渐发现软件存在的问题。问题不严重的,只是需要长期对软件进行修改,单单影响用户的应用;而问题严重的,会导致整个项目的失败,生产出的软件也无法投入使用。如果在投入使用前,没有经过测试,那就不知道用户有什么样的需求,也不知道软件存在什么隐患。尤其是有一些不经过测试就无法发现的隐患,一经投入使用,将会对用户造成巨大的损失。

3.2软件预测的内容

(1)文档审查,软件项目的验收需要提供一些文档,这些文档包括:经济分析报告、项目技术报告、用户手册、维护手册、项目总计报告、测试总结报告等,主要对文档的可理解性、正确性、完整性进行审查,还要对编写的规范程度进行审查。如果文档扫描不清晰、数量不齐全、甚至错误都将给用户造成不必要的麻烦,而且还可能导致软件无法升级。

(2)安装测试,安装测试第一个目的,是验证软件安装在最基本的配置下能否正常的运行;第二个目的,是验证软件安装在非正常的情况下,程序能否给用户足够的提示。非正常条件指内存不够、磁盘空间不足、不能自由创建目录。

(3)功能测试,功能测试是指根据软件需求规格说明书上的规定,逐项对软件进项检测,查看是否正确、是否有严重的错误存在。在测试前,一般要准备好合法数据、非法数据、边界数据这些测试用例,检测输出结果是否符合期望值。

软件项目开题报告篇5

1)实习报告是实践过程的重要体现。作为实践教学的受众主体,学生在实践过程中将学会通过一定的手段,借助一定的工具,掌握一定的方法,实现特定的目的。实践教学的考核往往视实习任务的完成情况而定,一方面,需要考核学生实习结果质量的好坏,另一方面,还需要考核学生实践过程的执行情况,如GIS软件操作的熟练程度、GIS软件设计与实现方法的掌握程度等。其中,实习结果的完成质量可以随堂考核,但对于实践过程而言,一般情况下,由于学生人数众多,指导教师不可能逐一进行仔细检查。实习报告是对实践过程的阐述、分析、综合和总结,是实践过程的重要体现,为指导教师了解学生实践过程的执行情况提供了重要渠道。2)实习报告是创新性思维的重要源泉。实践教学是对课堂教学的重要补充,具有较强的针对性和目的性,其实习内容将根据学生所学的某个知识点或多个知识点而定,涉及面相对较窄,且有一定的代表性,有助于学生加深对所学理论与方法的认识与了解。因此,学生的实践过程具有明确的指向性。在不偏离实习内容的前提下,适当进行外延拓展性思考,有助于将所学知识点融会贯通,纵向上可以扩展各知识点在实际应用中的深度和广度。如缓冲区分析实践教学中,除了实习内容规定的噪声影响范围分析,还可将其应用扩展到洪水淹没分析、城市扩张影响范围分析等。横向上可以提高利用不同知识点解决实际问题的能力,如将缓冲分析、路径分析、叠置分析等应用于商店的选址中。这些实习内容以外的思考或灵感可通过实习报告记录下来,与指导教师互动获取评价或建议,为今后各种创新性活动(各种GIS软件开发大赛)提供思路。3)实习报告是科技应用文的重要基础。对地理信息科学专业的学生而言,实习报告是最常见的一种科技应用文。除此之外,科技应用文还包括参加各种GIS软件开发大赛需提交的系统设计书、操作说明书、总结报告等,参与老师的科研项目涉及的投标书、项目建议书、项目可行性论证报告、项目申报书、项目计划任务书、项目实施方案、项目结题报告等,以及毕业阶段每个学生完成毕业设计的同时还必须撰写的学位论文。以上各种类型的科技应用文,是对所从事科技活动的阐述、分析与说明,从目前情况来看,大多数学生并不擅长撰写此类文章。以学位论文为例,大多存在图文不规范、参考文献引用格式不正确、缺乏创新等问题。实习报告作为学生接触最多的科技应用文体,其规范写作将有助于养成良好的科技行文习惯和良好的创新性思维习惯,为今后各种科技应用文写作打下坚实的基础。4)实习报告是就业面试的重要砝码。站在指导教师的角度,通过实习报告可以看出学生实践过程的执行情况和实习结果质量的好坏,还能看出学生对待实践课程的学习态度。对用人单位而言,通过实习报告能够间接了解一个学生在大学期间从事了什么样的实践活动,是否符合用人单位的发展需求,同时,从实习报告的行文规范能间接看出一个学生的职业素养和工作态度。因此,在毕业找工作之际,除了个人简历,还可以将大学期间所做的实习报告作为就业面试的重要砝码,为用人单位了解自身实践动手能力提供重要参照。

2地理信息科学专业实习报告的撰写

武汉大学、中国矿业大学、同济大学、中南大学、中国地质大学(武汉)等GIS领域国内知名高校的本科生人才培养方案中均有针对性地开设了相关实践课程,尽管这些课程的名称可能有所不同,但均涵盖了GIS软件操作、GIS软件研发、地图设计与编绘等3方面的核心实践课程。本文以这3种核心实践课程为例来探讨实习报告的撰写规范。首先,实习报告的封面应指明如下信息:实践课程名称、学校、学院、专业、班级、学号、姓名、指导教师和提交日期等。其次,实习报告的提纲应涵盖以下内容:实习名称、实习目的、实习时间、实习内容和实结等。1)实习名称,用于概要描述实习内容,字数不宜过多,以20字以内为宜,可作为标题放在实习报告的最上方,也可以作为实习报告的正文放在最前面。2)实习目的,一般言简意赅,直入主题。例如,GIS软件操作的实习目的在于熟悉某GIS软件的某些功能操作,实现指定应用目标,掌握课堂教学的相关知识点;GIS软件研发的实习目的在于熟悉某编程语言、某GIS软件基础开发平台,掌握GIS软件工程设计与实现思路;地图设计与编绘的实习目的在于精通制图软件的相关操作,掌握不同类型的普通地图和专题地图的设计与编绘技巧。3)实习时间,包括完成实习内容的起始时间。另外,还可以在这一部分增加时间进度安排,用于进一步规划实践过程每一个关键步骤的完成时间节点。4)实习内容,是整个实习报告中最重要的部分,是对实践过程的完整反映,需详细阐述实验环境、实验任务、实验步骤、实验结果等方面的内容。实验环境是指实践过程中涉及的各种软、硬件环境。除了实践课程所用的计算机硬件设施、操作系统,GIS软件操作的实验环境还包括各种GIS软件、数据库软件等。GIS软件研发的实验环境还包括编程语言、编译环境、二次开发平台、数据库软件等,地图设计与编绘的实验环境还包括各种图形图像处理软件、GIS制图软件等。实验任务是实习目的的具体化,通常通过完成某一个或多个实验任务来达到实习目的。例如,某地区地块拓扑关系的建立可以作为GIS软件操作的一个实验任务;某校园地理信息系统的实现可以作为GIS软件研发的一个实验任务;某地区人口结构分布图的制作可作为地图设计与编绘的一个实验任务。实验任务篇幅不宜过长,可略多于实习目的,通常用一小段文字进行描述。实验步骤是指完成实验任务的每一步操作、流程、思路等,应结合技术路线进行说明。从以往学生提交的实习报告中可以看出,在实验步骤的阐述中,一部分学生容易产生误区,如在GIS软件操作的实验步骤中大量插图,缺乏文字描述;在GIS软件研发的实验步骤中大量粘贴代码;在地图设计与编绘的实验步骤中仅指出图例设计与图面配置的结果。实验步骤的撰写应把握好度,既不能顾此失彼,也不能面面俱到。GIS软件操作的实验步骤应图文并茂,不必每一个参数的设置都配图,但需用文字进行说明,插图以关键步骤的实现效果图为宜,并辅以相应的文字表述。GIS软件研发的实验步骤应结合流程图展开,并辅以关键算法的代码。地图设计与编绘的实验步骤中,对于普通地图而言,应先指明地图符号设计和地图注记配置遵循的国家标准、地图综合选取和概况的方法与依据,再插入各种地图符号的设计效果图、地图注记的配置效果图、地图综合前后的对比图等;对专题地图而言,应先分析和比较现有专题资料,再统计分析各种专题数据,接着选择各种专题内容的表示方法,最后以各专题内容的表达效果作为插图。实验结果是指通过以上实验步骤,完成实验任务之后所得结论或取得的总体实验效果,一般以插图或插图加简要文字说明为主。GIS软件操作的实验结果可以是数据编辑处理之后的效果图、执行空间查询分析之后的效果图、二三维数据可视化表达效果图等;GIS软件研发的实验结果可以是系统运行界面、系统各功能操作效果图、算法执行后的效果图等;地图设计与编绘的实验结果可以是一幅完成数字化或地图综合后的普通地图,也可以是一幅完整的专题地图。5)实结,是对实践课程的整体回顾,是实习内容的进一步凝练与升华,能够体现学生在实践过程中是否进行了独立的思考。实结的内容包括实践过程的总述、遇到的问题及其解决方法、实践课程的收获与心得、实践过程中存在的不足、将来有待进一步学习和改进的地方以及对未来从事相关实践活动的展望等。由于实习内容难免和现实生活之间存在一定差距,照本宣科的机械式实践课程学习固然有助于巩固课堂教学所学知识点,但不利于培养学生的创新性思维能力,也不利于提高学生利用所学GIS知识解决复杂实际问题的能力。因此,应鼓励学生在完成实习任务的同时,充分进行外延拓展性思考,并将思考的内容记录在实结中,与指导教师进行交流,在课外进行实验验证,如GIS软件操作中的缓冲分析拓展综合应用;GIS软件研发中最短路径算法的改进与优化;地图设计与编绘中的自动综合、注记自动配置等。这既符合国家对高校提出的培养创新性人才的要求,又能真正让学生发挥专业特长,将所学的GIS知识灵活应用到日常生活中,还能为今后的各种创新性活动提供思路。最后,实习报告的图文格式方面应严格遵循科研要求,以养成良好的科技行文习惯。

3结语

软件项目开题报告篇6

关键词:DCIS 软件 V&V 质量控制 管理

中图分类号:HL362.1 文献标识码:A 文章编号:1007-3973(2013)009-122-03

1 引言

随着科技的发展,数字化仪控系统设备在核电领域的应用范围逐渐扩大。越来越多的仪控设备开发涉及硬件的开发、软件的开发及软/硬件的集成。为满足国内外法规/标准的要求,软件及基于软件的系统均采用验证与确认(Verification and Validation,V&V)的策略以确保开发过程受控、检验及证明产品的性能、保证相应的需求已正确实现以保证软件或系统(基于软件)的置信度。

V&V是软件开发过程的一部分,它包括一系列系统化的评审与测试活动,其贯穿于软件开发或基于软件的系统开发生命周期全过程。

2 软件V&V概述

因为软件有一些特有的方面需要被考虑,不同于以往设备(硬件)的质量保证(QA)及质量控制(QC),在软件开发时往往关注软件V&V,确切地说,软件V&V是系统V&V的一部分。系统一般由硬件作支撑运行,硬件部分与生产、制造等相关特有活动,通常由QA、QC确保其产品质量。对于系统分配至硬件的需求及设计、涉及与软件相关的硬件产品、硬件设计的过程文件、活动记录文件等,软件及系统V&V的技术方法均适用。

V&V过程需要文件控制、需求管理、配置管理等辅助活动支持,用以提高V&V的执行效率。V&V过程涉及与软件开发一样的控制与管理问题。其结果同样可用于第三方或公司内部专业质保人员评审。

2.1 V&V与QA的基本关系

V&V是质量保证(QA)的一部分。V&V既注重产品质量,同样也注重产品开发过程。V&V的“验证”关注过程的实施。这点基本与QA思路一致。

当讨论核电站基于软件的数字系统时,V&V与QA的关系可能被混淆。在上世纪末,软件QA计划一般遵循IEEE Std 730,其将软件分类为关键软件和非关键软件。软件QA包含软件开发生命周期、编码标准、管理控制与V&V。为澄清术语及应用,EPRI的报告重新定义了核电QA与软件QA的概念:

(1)核电QA――10 CFR 50附录B中规定安全相关核电系统必须执行的QA活动。

(2)软件QA――IEEE 730描述的对于关键软件和非关键软件的QA活动。

所以,V&V可以被认为是QA的活动子集。若一套数字控制或保护系统在核电QA大纲下执行,那么必然包含完整的V&V活动。反之,V&V的执行并不意味着执行了核电QA。V&V适用于确保基于软件的数字控制系统的质量。

QA应包含软件V&V计划及相应等级的V&V活动需求。随着系统工程的发展,IEEE Std. 1012- 2004逐渐取代软件QA的概念,更注重对过程的管理、执行与产品的质量控制。4个软件完整度等级的定义量化了软件关键的数量,有效地协助项目组织对于资源的合理分配,以达到全面、有效地保证软件质量。

项目团队应正式、清晰地记录V&V活动数据,供项目QA专业执行人员审查。

2.2 V&V与CM的基本关系

配置管理(CM)必须满足项目QA计划的要求。CM必须确保:

(1)项目开发期间,每一个文档版本的使用是正确的。

(2)在测试执行期间,硬件、软件、或系统参数的使用是正确的。

CM与V&V是并行的活动。CM的结果可用于V&V评审活动的输入。若CM要求严格地执行,V&V在某些方面的活动可能显得低效。当项目组织使用螺旋型生命周期模型(迭代开发)时,CM是尤其重要的。

项目开发组织必须谨慎地控制涉及软件功能执行的元素,保持其一致性,从而确保V&V的结果可以支持现行的配置。在开发期间,如果不能确定被安装的配置是否与已存在的配置数据一致,即使这个系统被成功地开发(伴随相适应的V&V活动),那么其意义也是毫无价值的。

3 V&V过程

控制系统工程应用开发过程中的V&V可遵循IEEE Std. 1012-2004标准或国际行业协会各报告中的指导内容开展相关质量控制与管理活动。

控制系统开发生命周期及相关V&V过程与活动,如图1所示。

图1 数字化控制系统开发过程V模型

通常,V&V输出由V&V团队生成。对于安全级系统,V&V团队必须与设计团队相互独立,保持充分的独立性,确保V&V流程不受设计流程中的进度和资源的影响。本项目中涉及的系统属于非安全系统,因此保持项目组内部的V&V技术的独立性即可,来自设计团队的工程师可以进入V&V团队执行验证团队的任务,但注意执行此任务的产品项必须不是本人开发的。基于不同的完整度等级,验证任务也可以由开发团队来生成,但这个过程及结果应由V&V团队来审查或见证。

为检查软件生命周期内所定义的阶段之间传递信息的正确性,应通过验证来控制、保证。验证过程覆盖了从系统需求规格书阶段到设计、运行调试、维护和修改阶段的全过程。

每个阶段验证的目的是为了确认本阶段开发的产品(输出)正确地实施了本阶段的输入要求。每个阶段的验证过程包括对要求验证的输入文件、编码和数据的审查,产生验证结果文件。

确认的目的是为了证明软件和硬件集成的系统正确地执行了系统需求规格书定义的功能。要求通过集成的系统全面测试来判定该系统是否能完全地、正确地、一致地和精确地执行所有特定的功能。在确认过程中,该系统与其他系统及用户接口的完整性、正确性、一致性和精确性得到评估。确认必须评估关键性能参数、重要的功能和其他的系统要求已满足,必须证明控制系统完成其需求规格书的要求。

确认是基于系统需求规格书的基础上。通常确认活动通过FTs(工厂试验),FATs(工厂验收试验)和SATs(现场验收试验)实施。

4 过程管理

4.1 组织需求

根据RG 1.168-2004,“用于核电站安全系统的数字计算机项目的验证、确认、审核、和审计”,IV&V(独立验证与确认)活动对于评审人员有特定的独立等级需求。IV&V评审的深度基于安全等级分类。

对于安全级系统而言,NRC与NNSA均要求验证人员应该不同于那些执行初始设计的人员,应该由负责V&V的组织为V&V的充分性承担责任。负责V&V的人员必须与负责设计的人员相互独立。必须要有充分的独立性,以确保V&V流程不受设计流程中的进度和资源的影响。对于非安全级的控制系统项目而言,V&V活动的深度与独立性可适当降低要求,但必须满足最基本的技术独立需求。

V&V活动期间,管理控制关注以下几个方面:

(1)文件/软件/测试项的传递;(2)文件/测试事件报告和日志;(3)文件/测试总结报告;(4)V&V状态管理;(5)验证工程师所执行的活动内容;(6)可审查的配置管理执行。

4.2 传递控制

V&V与开发过程在许多项目的执行中存在一定的瓶颈。尤其是双方在过程产物传递的控制过程。无论是设计中间产品提交给V&V团队,还是V&V团队将评审结果反馈至开发小组,其中设计团队和V&V团队的关系在第3章进行了描述。文件和项目文档的维护是设计和V&V流程中的一个关键元素。在设计团队和V&V团队之间传递的可验证材料、交流信息可通过项目文控工程师进行传递。该工程师必须具备良好的CM执行意识,确认工程输出符合过程程序要求,保留当前和过往历史版本,并且保留的记录和已验证输出的记录。

4.3 问题跟踪

在执行V&V任务期间检测到的任何差异都必须进行记录。产品相关负责人需控制每一份差异报告,并且在需要时通知技术经理,如未及时汇报,差异报告至少应包含在V&V阶段总结报告中。

所有的差异经分析后会引申出一定的问题,而问题跟踪确保V&V活动中发现的问题得以被记录、追踪并最终落实到具体的人员解决。典型的需要记录的信息包括:

(1)问题发生的时间;(2)问题发生的位置;(3)问题发生前系统的状态;(4)发生问题的证据;(5)导致问题发生的条件/输入;(6)描述系统理想状态的运行情况,以及相关的需求;(7)解决问题的优先级。

4.4 软件相关的信息安全控制与管理

信息安全是保证项目产品质量与V&V活动正确展开的重要环节,其活动主要包括防止外部人员恶意窃取或篡改软件产品、资料或验证记录,以及内部人员非故意的信息泄漏、意外修改。

5 控制及执行策略

本章节提供了软件质量控制及执行V&V任务时要遵循的通用技术和方法。单独技术或集成技术可用于执行一项验证/确认任务,以控制软件及其产品的质量。

5.1 清单核查

清单用于协助产品的验证和确认。清单中的内容提供了执行验证的工程师在评审过程中应考虑到的基本事项集,可应用于各阶段、各种的设计产品。核查清单提供了一种可量化的评审方式。

5.2 检查/分析

检查/分析包含了研究被验证的产品。需要确认设计的某些方面,可以是正式记录的评估和计算,但不限于正式证明、图表分析方法和相关技术。分析包括完整性和正确性的评估。分析应重点关注以下几个方面:

(1)危害和风险分析;(2)可跟踪性分析;(3)数据分析;(4)COTS和质量鉴定审核前的产品分析;(5)V&V回归(变更)分析;(6)工具分析。这些方法适用于整个系统/软件开发的生命周期。

5.3 测试策略

测试适用于开发的各个方面。测试由系统或设备在具体条件下的操作、结果记录、和基于结果做出正确性评价组成。测试应该自下而上地执行,低等级目标测试的执行先于高等级组合。

测试可以分为两类:功能测试和结构测试。功能测试(黑盒测试)用于确定模块或系统的执行符合具体的需求。功能测试的测试用例直接由需求规范驱动,并且以模块或系统输入和输出为基础。该方法对于检查模块接口非常有用。结构测试(白盒测试)评估软件的内部结构。结构测试应该通过分支和路径测试的结合来完成。分支测试涉及生成测试用例,以提供充分的可信度,认为模块中所有的分支都可以到达。在路径测试中,开发测试用例以提供充分的可信度,认为所有的路径(所有模块中可行的分支结合)都被测试到。功能测试和结构测试的结合确保应用中没有意想不到的功能存在。

对于待执行的各测试,应提供测试规范、测试程序、测试结果报告、和任何差异报告。测试设备必须控制和记录。测试工具必须校准、控制、和记录。

测试方法采用低层级到高层级的方案。但是,为了确认合适的集成或低等级实体组合(元素、处理器模块、或通道)的执行功能,有必要采取重叠的功能测试。由于硬件组装,软件设计和与硬件集成,应执行一系列硬件和软件测试。现场验收测试(SAT)作为安装流程的一部分执行。现场验收测试在执行以完成安全系统开发的V&V范围之外。主要测试活动有:

(1)机柜硬件测试;(2)单元软件测试;(3)软件集成测试;(4)系统集成测试;(5)验收测试;(6)设备质量鉴定测试;(7)回归测试。

6 记录与度量

在控制系统开发过程的质量控制和管理过程中,记录的控制和管理将是重要的一环。在法规和标准中,对于记录的控制和管理有着强制的要求。10 CFR 50附录A中要求在核电厂的整个生命周期期间,安全重要系统和设备的设计、制造、安装的记录必须由核电厂执照持有者进行控制和管理。同时ASME NQA-1要求,记录必须提供描述满足质量需求的相关活动的证明文件。在记录的控制和管理过程中,考虑将图纸、技术规格书,采购文件,测试设备检定程序和检定报告,不符合项报告和纠正措施报告,审查、检查、监查、监督工作执行报告,试验和材料分析的结果都将作为记录的一部分。

6.1 验证与确认记录

质量保证记录中包括了验证和确认过程中产生的验证记录和测试记录,并且在项目的开展过程中合理地控制和管理这些记录。根据消化吸收原理样机研制项目实践经验,对于生命周期的不同阶段,验证的记录可以采用审查清单的方式,选择合适的审查内容,编制不同的审查记录清单。

而测试的记录则重点要求测试配置记录,测试执行记录,测试数据记录,不符合项记录与纠正措施记录的完整性、一致性。以确保在某些分析活动下,可以再次复现测试活动。

6.2 度量探索

度量活动适用于整个V&V流程中,以帮助分析、预测、确定有疑问的倾向。这些信息将尽快反馈到设计和V&V流程中,以纠正管理缺陷和减少返工。

7 结束语

本文对基于重大专项消化吸收课题数字化核电站控制系统原理样机研制项目V&V活动进行概述,其过程满足国内外法律、法规要求,并适用于核电站其它非安全相关的仪控子系统生命周期内软件的V&V活动。

参考文献:

[1] 龚益.核电厂安全系统软件验证和确认方法探索[J].低压电器,2004(5):27.

[2] RG 1.153-2011:Criteria for Use of Computers in Safety Systems of Nuclear Power Plants.

[3] TR-103291-CD,1998:Handbook for Verification and Validation of Digital Systems.

[4] IEEE Std 730-1998:Software Quality Assurance Plans.

[5] ASME NQA-1-2004,Quality Assurance Requirements for Nuclear Facility Applications.

[6] IEEE Std 1012-2004:Standard for Software Verification and Validation.

[7] IEEE Std 828-1998:Software Configuration Management Plan.

[8] IAEA TRS No.384,1999:Verification and Validation of Software Related to Nuclear Power Plant Instrumentation and Control.

[9] RG 1.168-2004:Verification, Validation, Reviews, and Audits for Digital Computer Software Used in Safety Systems of Nuclear Power Plants.

[10] SEI-CM-13-1.1,1988,Introduction to Software Verification and Validation.

软件项目开题报告篇7

引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。

1.1 编写目的

说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和(或)发行版本号,从而对该软件产品进行准确的定义。

如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。

1.2 项目风险

具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:

任务提出者;

软件开发者;

产品使用者。

1.3 文档约定

描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:

正文风格;

提示方式;

重要符号;

也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。

1.4 预期读者和阅读建议

列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:

用户;

开发人员;

项目经理;

营销人员;

测试人员;

文档编写入员。

并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。

1.5 产品范围

说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。

描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。

1.6 参考文献

列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:

本项目的合同书;

上级机关有关本项目的批文;

本项目已经批准的计划任务书;

用户界面风格指导;

开发本项目时所要用到的标淮;

系统规格需求说明;

使用实例文档;

属于本项目的其它己发表文件;

本软件产品需求分析报告中所引用的文件、资料;

相关软件产品需求分析报告;

为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:

标题名称;

作者或者合同签约者;

文件编号或者版本号;

发表日期或者签约日期;

出版单位或者资料来源。

2. 综合描述

这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。

2.1 产品的状况

描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:

是否是产品系列中的下一成员;

是否是成熟产品所改进的下一代产品;

是否是现有应用软件的替代品(升级产品);

是否是一个新型的、自主型的产品。

如果该软件产品需求分析报告定义的软件系统是:

大系统的一个组成部分;

与其它系统和其它机构之间存在基本的相互关系。

那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。

2.2 产品的功能

因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该 针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利 读者理解本软件产品。

为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。

参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。

2.3 用户类和特性

确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。

用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。

2.4 运行环境

描述了本软件的运行环境,一般包括:

硬件平台;

操作系统和版本;

支撑环境(例如:数据库等)和版本;

其它与该软件有关的软件组件;

与该软件共存的应用程序。

2.5 设计和实现上的限制

确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:

必须使用的特定技术、工具、编程语言和数据库;

避免使用的特定技术、工具、编程语言和数据库;

要求遵循的开发规范和标准

例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;

企业策略的限制;

政府法规的限制;

工业标准的限制;

硬件的限制

例如,定时需求或存储器限制;

数据转换格式标淮的限制。

2.6 假设和约束(依赖)

列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:

计划使用的商业组件,或者其它软件中的某个部件;

假定产品中某个用户界面将符合一个特殊的设计约定;

有关本软件用户的若干假定(例如:假定用户会熟练使用SQL语言。);

有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);

有关本软件运行环境的一些问题;

此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:

工期约束;

经费约束;

人员约束;

设备约束;

地理位置约束;

其它有关项目约束;

3. 外部接口需求

通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数 据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。

注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。

3.1 用户界面

陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:

将要采用的图形用户界面(GUl)标准或者产品系列的风格;

有关屏幕布局或者解决方案的限制;

将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:

选单;

标准按钮;

导航链接;

各种功能组件;

消息栏;

快捷键;

各种显示格式的规定,可能包括:

不同情况下文字的对齐方式;

不同情况下数字的表现格式与对齐方式;

日期的表现方法与格式;

计时方法与时间格式;

等等。

错误信息显示标准;

对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。

如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。

3.2 硬件接口

描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:

支持的硬件类型;

软、硬件之间交流的数据;

控制信息的性质;

使用的通讯协议;

3.3 软件接口

描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:

操作系统;

数据库;

工具;

函数库;

集成的商业组件

说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。

描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必 须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。

3.4 通讯接口

描述与软件产品所使用的通讯功能相关的需求,包括:

电子邮件;

WEB浏览器;

网络通讯标准或者协议;

数据交互用电子表格;

必须定义相关的:

消息格式;

通讯安全或加密问题;

数据传输速率;

同步和异步通讯机制;

4. 系统功能需求

需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供 的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。

如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。

功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。

用简短的语句说明功能的名称,例如:“4.1系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1~ 4.3这三个部分。

可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解 即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。

对应一些被共享的独立使用实例,可以定义一些公用系统功能。

必须特别注意的是,在2.2节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。

4.1 说明和优先级

对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。

4.2 激励/响应序列

列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这——功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。

描述激励/响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。

如果采用流程图来描述激励/响应序列,比较容易让用户理解。

4.3 输入/输出数据

列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。

当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。

对于每一项数据,均需要描述:

数据名称;

实际含义;

数据类型;

数据格式;

数据约束;

对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。

5. 其它非功能需求

在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。

5.1 性能需求

阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:

相互合作的用户数量;

系统支持的并发操作数量;

响应时间;

与实时系统的时间关系:

容量需求

存储器;

磁盘空间;

数据库中表的最大行数。

5.2 安全措施需求

详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。

5.3 安全性需求

详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保 护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统 安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”

5.4 软件质量属性

详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。

5.5 业务规则

列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个 业务规则的范例如下:“进行达到或者超过10,000,00元人民币的储蓄业务时,必须通过附加的管理员认证。”

列举业务规则时,可以根据规则的数量,选取合适的编目方式。

5.6 用户文档

列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:

安装指南

纸质文档,16开本;

用户手册

纸质文档,16开本;

在线帮助

电子文档,与软件产品一同分发、配置;

使用教程电子文档,与软件产品一同分发、配置。

6. 词汇表

列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析 报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术 语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。

7. 数据定义

数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度 以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。

如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容 易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一 致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。

在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:

原数据元素

一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其

含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行

注释文本,描述原数据元素的定义。

选择项

选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方

括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。

组合项

组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元

素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定

义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有

可选项,使用圆括号把该项括起来。

重复项

重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号

把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花

括号前。

8. 分析模型

这是一个可选部分,包括或涉及到相关的分析模型,例如:

数据流程图;

类图;

状态转换图;

实体-关系图。

软件项目开题报告篇8

关键词: 软件测试; 案例教学; 实践教学; 案例库

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2014)12-74-03

Research on case teaching in software testing course for higher vocational colleges

Zhang Xiaolan, Guo Jiandong

(Guangdong College of Industry and Commerce, Guangzhou, Guangdong 510510, China)

Abstract: Case teaching can not only fully mobilize the students' enthusiasm, but also improve their theoretical level and practical ability. Combined with teaching experience in software testing, the problems of the case teaching in software testing course are analyzed. In order to improve the teaching effect in software testing course, the case design method in theory teaching and practice teaching is proposed. The construction of teaching case library is given. The basis and premise of the implementation of case teaching are introduced.

Key words: software testing; case teaching; practice teaching; case library

0 引言

51testing公司的《2013年中国软件测试从业人员调查报告》显示[1],2013年中国软件企业软件测试人员与开发人员比例基本保持在1:3,相比之前的1:7比例虽有所下降,但仍与国外软件企业1:1的比例相差甚远,这表明国内软件测试人才市场需求仍会增长,其职业发展的潜力依然很大。正因为如此,很多高校相继开设软件测试专业或课程。在教学过程中,主讲教师一般讲解软件测试理论和介绍软件测试方法,但却缺乏较好的测试案例供学生测试,以验证所学的理论,故教学效果不佳。例如利用等价类划分法、边界值法设计测试用例,学生虽然能按要求做练习,能设计出测试用例,但是很多学生还是会疑惑设计出来的测试用例有何用、怎么用,学生缺乏实践环节的经验,当面对实际软件项目测试工作时,仍然无从下手。

目前,很多高职院校对“软件测试”这门课程进行了改革,并且取得了一定的成效。广东工贸职业技术学院(以下简称“我院”)计算机系从2009年开始开设软件测试课程,通过近五年的教学经验积累和总结,提出从构建软件测试课程的案例入手探讨该课程的案例教学方法。

1 软件测试案例教学所面临的问题

1.1 教材及教学资料缺乏

当前软件测试方面的教材很少,适应高职院校学生的教材更少。绝大部分教材只是阐述空洞的理论,附加简单而又陈旧的工具介绍,而这些理念和工具很多已经被业界淘汰或是被取代[2]。根据《2013年中国软件测试从业人员调查报告》显示,业界现在普遍采用的功能测试软件是QTP,而绝大部分教材中还停留在介绍Mercury Interactive公司的WinRunner工具,同时对于业界中性能测试龙头软件LoadRunner,很多教材并未涉及。绝大多数教材上所提到的自动化测试工具不多,而且讲解的也不是很详细,需要教师进行大量的补充。

1.2 案例缺乏

大多数软件测试教材都是理论内容过多,实践内容不足,甚至只有最后一章有测试案例。大多数高校软件测试课程的定位都是以讲解理论知识为主,实验教学只占很小一部分。高职院校定位于培养技能型人才,要求学生有较强的实际动手能力,这势必需要进行大量的测试实践,而实践需要大量的测试案例。同时,理论教学也需要运用典型案例,加深学生理解所学知识,培养其分析问题与解决问题的能力。

2 理论教学案例设计

教材及教学资料的缺乏势必需要软件测试主讲教师有针对性地扩充理论教学案例。

2.1 扩充教材中的教学案例

在软件测试的众多教材中,讲述软件测试方法的经典案例有三角形问题、日期问题、闰年问题等,但这些案例通常都是文字表述,缺乏具体的程序供学生测试。因此,首先要扩充教材中的案例,采用面向测试的软件设计方法将这些案例做成一个个小的被测系统,设一些缺陷,让学生沿着“测试―理论―进一步测试”的主线来学习。首先对这些案例系统进行测试体验,再系统学习理论,最后利用设计出的测试用例进一步测试,这不仅有利于加深学生对软件测试抽象理论的理解,也让学生更加深知在编程过程怎样避免缺陷,做到规范化编程,提高编程能力。

2.2 引导学生编写软件开发文档作为教学案例

在软件测试的理论教学中,经常会提到几个概念,如:黑盒测试是基于用户需求的测试,集成测试的测试依据是系统概要设计说明书,单元测试的测试依据是系统详细设计说明书等。学生通常会觉得很困惑:用户的需求到底是怎样的,系统概要设计说明书、详细设计说明书中分别包括什么内容,有何区别,对这些文档始终没有直观的认识。事实上,在企业的开发与测试工作中,文档都是很重要的一部分内容。软件开发企业在软件开发过程中会产生一系列的文档,如需求分析报告、详细设计报告、概要设计报告等等,但很少对外公布这些文档。就算能通过校企合作或项目合作的方式获得企业项目文档,缺乏项目业务背景的学生也很难弄清项目中的数据流程、工作流程等。所以通过与软件工程课程教师的沟通协调后,要求学生在软件工程课程设计中,按小组自选熟悉的项目系统,如:“学生成绩管理信息系统”、“图书管理系统”、“宿舍管理系统”等等,按照软件工程的原理编写相应需求说明书、概要设计说明书、详细设计说明书等,只有具备以上资料,才可真实地模拟实际工作模式。在软件测试课程中,延续使用这些案例系统,将对学生掌握软件测试的流程很有帮助。

3 实践教学案例设计

3.1 实践教学目标及工具选用

为了培养面向市场的合格测试人才,在教学过程中,除了理论知识外,还要求教师加强学生测试技能的培养。测试技能的培养是需要通过大量的实践练习来获得的[3]。

通过实践教学环节,加深学生对软件测试理论知识的理解,使学生能掌握软件测试的技术和方法,熟练主流自动化测试工具的使用,提高实际动手能力。51testing公司的《2013年第七届中国软件测试从业人员调查报告》中对软件测试从业人员常用的单元测试工具、功能测试工具、性能测试工具进行统计调查分析,得出在功能自动化测试工具中QTP使用最广泛,如图1所示。在性能测试工具中LoadRunner仍然稳居第一,LoadRunner在性能测试工具中的大哥地位无可动摇,Jmeter测试工具在今年来有小幅上升趋势,如图2所示。在单元测试工具中,软件测试从业人员最常用的单元测试工具是Junit,如图3所示。

图1 2013年调查中常用的功能自动化测试工具分布

图2 2013年调查中常用的性能测试工具分布

图3 2013年调查中常用的单元测试工具分布

注:以上图表数据均来自51testing公司的《2013年中国软件测试从业人员调查报告》

在我院软件技术专业的软件测试课程实践教学中选用的单元测试工具是基于Java开发软件的测试选择Eclipse+Junit;基于C++开发软件的测试选择了CppUnit;基于.NET开发软件的测试选择Nunit。另外,性能测试选择了LoadRunner试用版本,功能测试选用QTP,实践教学环节工具基本与当前主流工具平台相符。

3.2 实践教学案例来源

在软件测试的实践教学中,我们从以下几个方面来扩充教学案例。

⑴ 课程设计成果

我院计算机系软件技术专业在程序设计方面,前期开设了Java和.NET程序设计两个方向。在Java程序语言设计,C#程序语言设计、数据库设计课程结束后,通常会安排两周的课程实训,要求学生在教师的指导下完成课程设计作品。将程序语言设计作品用作单元测试的案例,学生间交叉进行测试,互相充当对方的测试员,这样不仅有利于将程序开发与软件测试结合起来,综合解决软件开发中的问题,而且交叉测试会极大地调动学生学习测试兴趣和积极性,课堂气氛活跃。

⑵ 毕业设计成果

在大三第二个学期,我院会安排12周的毕业综合实践周,由指导老师跟学生共同确定毕业设计题目,学生独立完成毕业设计。通过对以往选题汇总发现,绝大部分同学都是选择Windows程序开发和网站开发两个方面。从毕业设计作品中可选择一部分优秀的作品作为实践教学的案例。考虑到现有的网站如网易、搜狐前已经做足了测试,很难再发现其中的缺陷,所以在Web网站测试实践中,我们将学生的网站作品在机房的局域网内,学生在学生机进行测试,在这个过程中真正体会Web网站测试、Cookies测试、安全测试、目录测试等方面,找到测试成就感与自信。

⑶ 科研项目成果

我院一直鼓励教师多参与科研项目,教师参与开发的项目也可以用于实践教学案例。只有任课教师对所选的项目非常熟悉,甚至是亲自参与开发,才能对项目开发整个流程、可能遇到的问题有充分的认识与准备,为学生提供有力的帮助和准确及时的指导,为项目教学的顺利开展提供前提条件,使项目教学的整个实施过程都能在任课教师的良好掌控之下[4]。

⑷ 校企合作项目

目前我院已与部分企业签订了校企合作协议,在软件测试课程的综合性生产实习中,引入企业的实际项目作为案例。邀请校外实习基地企业的行业专家将实际工作项目带入实训室,学生3~5人为一组,按行业实际给他们分配角色,在该过程中强化学生的综合设计和运用能力,让学生掌握在实际项目应用中各种测试方法的使用,熟悉测试项目管理,感受大型测试项目工作流程。

4 案例教学的实施前提

4.1 跟前导课程的衔接

软件测试与软件开发有非常紧密的联系。要想成为一名优秀的测试人员,就必须会编写程序,至少精通一门程序开发语言才能胜任单元测试、集成测试、性能测试的工作,软件开发课程学习的好坏直接影响了软件测试能力。在软件测试单元测试、集成测试教学实践中,案例主要来源于程序设计语言课程的设计作品,这要求该课程主讲教师对学生严格要求,要求学生按小组保质保量完成小组作业,这些小组作品是软件测试课程中交叉测试的基础和前提。

同时,软件测试要用到一系列的文档,如需求分析说明书、概要设计和详细设计说明书、用户手册和安装使用说明等,这些也是软件工程课程设计上要学生完成的内容,课程设计对这些内容的要求严格与否,会对软件测试课程带来很大影响。通过这几年的教学发现,大多数学生对这些文档不甚了解,而且高职院校的学生普遍重技术轻理论,不愿意花时间去写文档。

4.2 教师自身素质的提高

为了顺利实施案例教学,主讲教师也需要不断提高自身素质。软件测试工具较多,范围广,不易把握重点,大部分测试工具如:LoadRunner、WinRunner、JUnit、Jmeter等都是英文版[5],参考资料少,这就要求教师通过主动学习、走进企业来提高自身素养。高职院校提倡“双师型”专业教师队伍建设,要求教师既要具备理论教学的素质,也应具备实践教学的素质,学校也可以派遣教师到软件测试培训机构进行培训,提高教师水平。只有这样,教师才能自如地将企业实际的测试流程、方法、技术带入案例教学实践中。

5 结束语

兴趣是最好的老师,在理论教学和实践教学中引入案例教学、建立测试案例库,使理论和实践过程更具直观性、生动性、说服力、吸引力,能有效调动学生的积极性和兴奋点,有助于学生掌握软件测试的基本理论和方法,加深对软件测试测试自动化工具的理解。同时随着教学的推进,教师可针对当前的测试工具,设计新的教学案例,扩充至教学案例库中,不断提高案例的针对性、实效性、鲜活性。

参考文献:

[1] 2013年第七届中国软件测试从业人员调查报告.http://

,2013.

[2] 钟久隆,路桂明.高职院校《软件测试》课程教学改革探索与实践[J].

教育教学论坛,2012.2:130-131

[3] 丁智国,吕振洪.软件测试课程实验教学探索[J].计算机教育,2012.3:

102-105

[4] 龚宇辉.基于项目驱动的软件测试人才培养模式[J].华章,2013.20:

199

软件项目开题报告篇9

(1. 南京邮电大学 计算机学院,江苏 南京 210023;2. 中国科学技术大学苏州研究院 软件学院,江苏 苏州 215123)

摘要:分析传统计算机专业实践类课程所面临的问题,针对课题陈旧、技术滞后等现状,提出一种基于项目导向的实践类课程教学方法,指出该方法不仅可以提高学生参与实践类课程的积极性,有助于改善教学效果,还可以为教师实施科研项目提供一定的软件测试依据。

关键词 :计算机专业;实践类课程;项目导向教学法

基金项目:南京邮电大学教学改革研究项目(JG00414JX24);国家自然科学基金项目(61373139)。

第一作者简介:刘林峰,男,副教授,研究方向为计算机网络和博弈理论,liulf@njupt.edu.cn。

0 引言

计算机实践类课程如程序设计、课程设计等是计算机专业的重要基础性课程,对于计算机专业学生编程能力、思维模式和实践能力的培养起到举足轻重的作用。实践类课程通常是在学生系统地学习某种高级程序设计语言的基础上,教师通过设置和指导涵盖综合知识点的程序或软件开发课题,期望学生通过课题的实践巩固高级程序设计语言语法和逻辑的一种直接而可行的方式。然而,大多数情况下,教师所设置的课题较为陈旧,多为各类信息管理系统或者传统算法的设计与实现,少数甚至与当前计算机专业技术背景脱节,因此导致学生对实践类课程的认知度下降,抑制学习和探索的兴趣,从而影响实践类课程的设置初衷和实际效果。

项目导向教学法[1]是依托教师引导和学生实施而共同完成科研项目某个部分的教学方法,本质上属于建构主义模式[2]下的一种新型教学方法。著名的心理学家皮亚杰提出的建构主义学习理论认为,兴趣对于学习的重要性不言而喻;教育心理学家认为,学习兴趣是一种力求认识世界、渴望获得各种知识的主观意识倾向,这种倾向对于学习的效率和效果起着重要的作用。学生对课程产生兴趣后会处于积极主动状态,可以达到自主学习的目的。教师是意义建构的帮助者和促进者,而不是知识的提供者和灌输者;学生是知识信息处理的主角,是意义建构的主动者,而不是被动接收者。

在项目导向教学法的实施过程中,教师需要根据实践课程的时长和学生的接收程度抽象、简化出科研项目中具体任务;学生以研究小组为单位,集体制订研究计划和任务分工,通过项目任务的理解、探索和解决等步骤达到提高专业技能和动手能力的目的。

1 计算机实践类课程现状及存在问题

1.1 计算机专业本科生特点

当前计算机技术发展迅速并逐步趋于成熟,日常生活中充斥着各种计算机的应用,极大地便利了人们的生活,因此大学生基本都具备一些计算机方面的常识,而作为计算机专业本科生则更加关注专业相关技术的最新进展及新型技术的出现,对专业知识有着更深更广的涉猎,重视计算机专业基础课程学习,在实践类课程开始之前已经打下良好的基础。此外,教师在对计算机专业学生的培养上通常更侧重其获取新知识、应用新知识、团结协作以及自主创新等方面能力。这些特点都为项目导向教学法的开展提供了必要条件,使得在实践类课程中引入科研项目具有可行性。

1.2 现有教学法及缺点

现有应用于实践类课程教学的教学方法主要包括任务驱动教学法[3]、案例分析教学法[4]和竞赛驱动教学法[5]。任务驱动教学是以任务为主线开展的教学方法,是一种探究式教学模式,在实施步骤上与项目引导教学法比较类似,但是任务驱动教学通常使用背离前沿技术的课题并且在实施过程中没有教师的主导参与,包括研究背景介绍、课题抽取和多指标评价等,因此计算机专业学生的参与积极性不高,教学效果也受到限制。案例分析教学的核心是鼓励学生表达对问题分析及解决过程的想法,通过教学双方互动研讨,学生在解决课题的实践中掌握知识、熟练技能、侧重实用,但这种方法缺乏团队成员之间的交流和协作,没有形成项目学习的共同体,不利于学生团结协作能力的培养和开放性思维的形成。竞赛驱动教学法中成果评定一般都取决于最终程序的操作效果,因此学生往往关注程序的功能是否实现,而忽略程序实现方法的选择和取舍。

1.3 项目导向教学法的引入

计算机实践类课程期望能够巩固学生的专业知识、提高动手能力和强化创新意识,从而达到提高综合实践能力的目标,该过程中需要学生对课题具有自发的探索意愿,能够发挥主观能动性并学以致用,把零散知识碎片融会贯通。教师在该过程中扮演着课题提供者和引导者的角色,帮助学生尽快理解项目背景和课题要求,同时在学生实践过程中对选用开发方法和软件开发进程进行必要的管理和指导。项目导向教学法正能契合计算机实践类课程的教学,因此笔者提出一种基于项目导向教学法的实践类课程改革思路。

2 基于项目导向教学法的实践类课程教学

以科研项目导向的实践类课程教学通常包括课题设计与引导、项目实施、项目验收和教师评价4个步骤,如图1所示。

1)课题的设计与引导。

首先,教师应从科研项目中选取合适的内容作为实践类教学的素材,必须兼顾学生的专业基础以及课题的趣味性、可探索程度、技术涵盖面等多个方面,合理选择教学素材是项目引导教学法的关键之一;其次,由教师介绍科研项目的研究背景和内容,不仅可以拓展学生的视野,还可以帮助学生加快理解素材的内容与本质;最后,教师和学生共同完成对课题的理解,教师充当引导者角色,学生根据对科研项目背景的了解,尝试以问答方式理解课题的内容,分析出所需要运用到的技术和知识点。

2)项目实施。

首先,学生需要进行分组(5~6人为宜),各组按照课题要求指定实施计划,计划中应包括项目的进度安排、个人分工和软件总体目标等;其次,根据软件总体目标进行功能模块划分,需要针对软件各模块确定需采用的算法及开发方法,必要时应对算法及方法进行一定的优化;最后,学生根据软件设计结果进行实际的编码开发,开发过程应严格遵守软件工程的开发原则,当开发完成后需要进行软件测试,软件开发和软件测试一般是一个多次循环迭代的过程,即测试结果应作为软件修改和进一步开发的依据,直至软件测试结果符合项目的预期。

3) 项目验收。

在项目实施环节中,除了根据项目要求开发软件外,学生还需要在制订计划、确定算法和方法以及软件测试阶段撰写相应的需求分析报告、软件设计报告和软件测试报告,因此项目的验收包括对软件成果和报告文档的验收,软件成果要求程序结构合理、逻辑清晰、模块划分正确和输入输出准确,报告文档要求内容严谨、格式规范,能够反映学生对项目内容的理解和思考。

4)教师评价。

教师评价必须结合学生所开发软件的运行结果正确性、算法巧妙性以及各类文档规范程度等进行综合评判,同时还必须关注每位学生在小组中的分工情况,对学生的理解能力、分析能力和动手能力进行评价,得到一个较为客观的评价等级。

5)教学案例。

我们给出一个典型案例用以解释该方法的具体实施过程,案例结合我们所承担的国家自然科学基金项目“基于信号不规则性的水声传感器网络关键技术的研究”,涉及水下声通信传感器网络的部署、定位、拓扑控制及路由转发等多项技术,分为以下6个步骤。

(1)教师选取并抽象该项目中拓扑控制技术的研究部分,将节点行为采用罗伯特·阿克塞尔罗德所提出的多方囚徒困境重复博弈[6]方法:博弈双方分别采用合作和背叛两种行为将会得到不同的结果,如图2所示。现需要用软件表现出水下节点各种行为,模拟出节点的善良性、自私性、可报复性、宽容性等典型特点,参照图2,其中R表示双方合作时(即节点互相转发数据报文)得分,S表示自己合作但对方背叛时(节点为对方转发,但对方不为自己转发数据)得分,T表示自己背叛但对方合作时(节点不为对方转发,但对方为自己转发)得分,P表示双方都背叛时(互不转发)得分。

(2)教师向学生解释课题背景和意义、课题所需解决的主要问题及可能涉及的主要方法,指出在实施过程中可以使用的工具、语法和软件设计方向。

(3)学生在理解课题之后需要分析问题并设计相应的策略,分别形成需求分析报告与软件设计报告,交由教师进行审核。

(4)学生根据步骤3中的软件设计,完成软件程序的开发工作,教师验收开发成果,开发程序界面及部分核心代码分别如图3和图4所示。

(5)学生使用自己程序与他人程序进行对抗,每轮对抗结束,学生还可以根据本轮结果重复步骤3和4以调整策略和改善程序,进入下一轮对抗。

(6)教师在评价学生成绩时根据学生的对抗得分及在课程参与过程中分析问题、调整策略和改进程序的表现,进行成绩判定。

该项目中提取出的节点博弈课题并没有一个标准答案,每个学生的最终得分取决于自己的程序策略和他人的程序策略,如何预测他人策略并以此设计自己的策略成为一个可以无限探索的方向。该课题是前沿技术的一部分并具有较强的趣味性,能够引起学生积极参与课程的极大兴趣,同时该程序结果也可为教师科研项目的继续研究提供一定的实验测试依据。

3 结语

当前计算机专业实践类课程存在课题陈旧、偏离前沿技术、学生积极性不高等诸多问题,影响了最终教学效果。针对该问题,笔者提出一种以科研项目为导向的实践课程教学方法,在计算机专业实践类课程中引入科研项目中的部分内容,加以简化抽取形成教学素材,由教师引导学生参与项目的研究与开发,不仅激发了学生的学习兴趣,提高了实践类课程的教学效果,还使学生对前沿研究及技术有了更深的了解,提高了学生的开放性思维能力及实践动手能力。

参考文献:

[1] 尹春华, 胡炬, 于瑛英. 项目导向教学法在管理类课程中的应用[J]. 中国电力教育, 2012(16): 73-74.

[2] 田秀霞, 彭源, 张安勤, 等. 基于建构主义理论的信息安全专业C++课程群教学模式改革[J]. 计算机教育, 2013(15): 69-72.

[3] 冀松. 兴趣教学法在高级语言程序设计语言类课程中的应用[J]. 教育探索, 2012(3): 52-53.

[4] 王岚. 程序设计课程教学法探讨[J]. 中国职业技术教育, 2009(11): 65-67.

[5] 王桂平, 冯睿. 程序设计课程实践教学的改革探索[J]. 现代教育技术, 2010(增刊1): 51-53.

软件项目开题报告篇10

本报综合消息 混合使用开源软件与商用软件并不是一个新概念,很多年来IT部门一直在这么做,尤其是在部署核心服务器、网络和数据库基础设施的时候,更是这样。但是现在有一种新颖的混合应用开发战略,即把企业级Java API与开源Java应用框架结合在一起。

很多IT部门在开发和部署某些应用时已经采用开源软件,但纯开源解决方案并不总是能满足企业需求。而采用混合式应用开发及部署模式,开发人员就可以选择合适的开发工具,并产生更灵活的实施选项。

对企业级Java应用的整个生命周期进行管理面临着特殊的挑战。由于存在很多标准、编程模型和实施选项,因此难以做出选择,更不用提将它们集成在一起了。Java企业版API具有可靠的基本标准,但是选项太多,其架构可能过于复杂,发展也明显落后于目前的软件实践。

为了解决上述问题,开源社区开发了多种解决方案。开源Java应用框架利用Java企业级标准简化应用开发,这些框架可以根据社区反馈更快地做出修改,而且常常可以解决一些特定技术问题。

但是,采用开源解决方案也有很多难题,你必需管理纷繁的软件版本,还有知识产权问题。为了集成多种开源组件,IT部门还必须进行严格的测试。多种实施平台增加了复杂性,有些新技术,如果开源社区不关注,还可能没有相应的开发工具。

因此,混合使用商用和开源产品有极大的优势。在开发和管理Java应用时,对商用软件和开源软件的最佳功能进行混合和匹配,可以获得极大优势。

BitTorrent目光转向中国电影业

本报综合消息 与华纳兄弟公司签约后资金充足的BitTorrent公司已经将目光转向了中国市场。该公司公关部总监Lily Lin说,BitTorrent目前正在与几家中国香港和大陆的电影公司会谈,希望到今年年底,可以通过其文件共享软件以合法方式提供中文电影。

此举突出表明,文件共享软件厂商正在着力宣传自己的合法提供商形象,强调他们将以合法方式在线提供电影和电视节目等大型文件。与电影公司签订协议后,文件共享软件开发商可以证明自己是解决互联网盗版问题的力量之一,而不是促进合法下载的绊脚石。

但是在东亚,这种战略可能难于实施。因为那里大多数人都免费共享文件,最新电影DVD用不了几美元就可以买到,因此除非合法下载的提倡者免费提供电影等内容,否则就行不通。关于如何让电影公司获得收入,BitTorrent缺乏详细的计划,只是预计用户需要一定的时间才能习惯收费文件共享系统。

上月早些时候,华纳兄弟公司成为与BitTorrent签约的第一个大型电影公司,华纳将在美国通过BitTorrent的共享服务销售电影和电视内容。华纳称,BitTorrent去年11月与防盗版监管机构“美国电影协会”签署的一项协议是促成双方签订销售协议的关键因素。与美国电影协会签署的协议有助于抑制BitTorrent用做非法电影分发媒介。

简讯

亚洲发出的垃圾邮件最多

IDG专供本报消息 根据Sophos公司对2006年第一季度进行的调查,亚洲成为全球最大的垃圾邮件发出地,这与两年前的情况形成了鲜明对比,当时一半以上的垃圾邮件是从美国发出的。亚洲发出的垃圾邮件占总数的42.8%,接下来是北美和欧洲,比例分别为25.6%和25%。不过美国仍然是发出垃圾邮件最多的国家,中国正在迅速接近美国。Sophos公司共同创始人Jan Hruska博士说:“亚洲的经济增长和宽带普及是垃圾邮件数量猛增的原因。”

美互联网广告收入一季度增长38%

IDG专供本报消息 根据Interactive Advertising Bureau和普华永道公司5月30日的报告,今年第一季度,美国互联网广告收入同比增长38%,达到创纪录的39亿美元。这两家公司对出售在线广告空间的领先公司进行了调查,其中包括Yahoo和Google。调查结果表明,消费者在互联网上浏览内容的时间和购物支出都在增加,因此导致互联网广告收入提高。这两家公司自1996年以来一直跟踪在线广告支出,在每年的第二季度和第四季度提供详细的广告收入分析。

Forgent专利权部分被否

IDG专供本报消息 Forgent网络公司一直用一项自己持有的专利来维护其与JPEG数字图像标准有关的许可权。最近,美国专利与商标办公室表示,拒绝接受这项专利47项声明中的19项。该办公室是应美国公共专利基金会的请求对这项专利进行重新审查的,该基金会是一个非盈利性组织,所从事的工作是纠正那些不公平的专利。该基金会称,就Forgent这项专利而言,以前就存在有关发明,因此这项专利是无效的。Forgent是美国的一家知识产权公司。