当前位置: 首页 > 活动方案 > 工作方案

软件设计模式论文(精选8篇)

时间:

软件设计模式论文篇1

关键词:测试准则;EM算法;测试用例复杂性;软件可靠性模型

中图分类号: TP311

文献标识码:A

0引言

随着软件应用的日益广泛及重要性的不断增强,人们对软件质量的要求也越来越高。可靠性作为衡量软件质量的重要特性,其定量评估和预测已成为人们关注和研究的焦点。软件可靠性模型作为可靠性评测的核心和关键,可用于软件生命周期的不同阶段,定量地估计和预测软件可靠。一个好的可靠性模型可以准确评估和预测软件可靠,这对于软件资源分配、软件市场决策有着重要的意义。オ

软件可靠性模型这一领域的研究在 20 世纪 70 年代获得较大发展后,很多可靠性模型已经投入使用。可以说,软件可靠性模型已从研究阶段发展到了工程阶段。但是,面对软件自身及其开发过程日益复杂的情形,它仍然呈现出其自身的不足。 首先,在软件可靠性建模方面,传统的软件可靠性模型主要是从时间域和输入域两个方面来考虑软件缺陷发生的概率或缺陷总数,很少从缺陷自身的因素论述;其次,在软件可靠性建模过程中,基本上是根据测试结果直接来推导模型,很少关注软件测试的设计过程;最后,在适应性方面也存在着一定的缺陷。

鉴于此,要想建立比较适用的软件可靠性模型,必须改变传统可靠性建模思路,采用新的观点、方法和新的数学工具来研究软件故障过程。论文将测试用例的设计融入到软件可靠性建模过程中去,在充分考虑软件缺陷影响因子和复杂性等因素基础上,采取合适的数学处理方法构建出一个基于测试用例的软件可靠性模型,并结合EM算法对该模型的可靠性作了验证。该模型不但考虑了失效出现的概率,还考虑了失效后可能产生后果的严重性。

论文主要工作如下:(1)根据等价类、边界值等方法来设计测试用例模型;(2)在一定假设的基础上,通过观测数据推导出测试用例的可靠性并得出相应的软件可靠性;(3)利用EM算法对软件可靠性进行相应的检验。

1测试用例模型的构建

测试用例的设计是软件测试过程中最为关键的一个环节,一个软件测试成功与否与其测试用例设计成功与否有很大的关系。所谓测试用例,也就是为特定目标开发的测试输入、执行条件和预期结果的集合。也可以说是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述,这些特定目标可以是验证一个特定的程序路径或核实是否符合特定需求。而测试活动要建立必要的前提条件,提供测试用例输入、观察输出,然后将这些输入和输出进行比较,以确定测试是否通过测试某个程序路径或何时满足软件规定的要求。简言之,测试用例就是设定输入数据,运行被测试函数,然后判断实际输出是否符合预期结果。

通常造成软件缺陷的主要原因有:(1)软件设计文档规范不一;(2)测试用例设计过程中引入了人为的错误;(3)测试执行后,复杂的决策条件、循环和分支的覆盖率目标并没有达到等。而一个完整的测试应该包含正面测试(Positive Testing,PT)和负面测试(Negative Testing,NT)。正面测试是验证程序应该执行的工作,而负面测试是验证程序不应该执行的工作。只有面面俱到,才能保证测试的充分性。要想保证测试用例设计质量,必须遵循四个原则:(1)测试准则,每个测试用例应当有一组有限可枚举的待测目标的判定准则;(2)测试用例输入域的划分和输入点集的提取;(3)测试目标的复杂性问题,应尽量化复杂为简单;(4)对测试用例进行测试的力度,就是在特定输入条件下进行测试的细分程度和测试的次数。在黑盒测试中,不可能采取穷举式测试。只能选取输入域中有代表性样本点来运行程序,然后通过程序运行的结果(成功率或失效率)来推断出软件可靠性。综上可知,一个好的测试用例既要有完善的输入域也要有代表性的输入点集。

输入域主要来源于需求规格说明、程序观察和额外的属性规约。假设D表示输入域,S表示规格说明,P表示程序观察,T表示额外的属性规约。则输入域可表示为:D=S∪P∪T。其中额外的属性规约主要是指规格说明中没有但满足负面测试或可能用到的那部分数据。

输入点的选取对软件测试来说也是至关重要的,为了确保输入点集选取的客观性,特采取有选择性随机输入的方法。其大体过程分为两步:

1) 提取测试用例的边界值点,构成集合T1;

2) 在每个相邻边界点中选取n个点进行测试,其中选取测试点个数由测试人员根据具体情况而定,关于相邻边界值点间测试点的选取通过高斯随机函数产生。即:

其中ij表示输入点,n表示选择点的个数,σ表示所选取点的方差,Id表示所选取点。

根据上式所得到的Id构成了集合T2。则测试用例的输入域D=T1∪T2。根据边界值和等价类相结合的方法将输入域化分成L个子区域。即D=(D1,D2,…,DL)。

2测试用例可靠性评估

2、1基本概念

软件可靠性模型通常分为三种:时间域可靠性模型、输入域可靠性模型和混合可靠性模型。实际上,软件黑盒测试的过程是从输入域着手,反复有选择性地随机抽取输入点集,通过观察其输入和输出之间的映射关系得出其可靠性。下面给出一些测试过程中常用到的概念和度量。

定义1测试准则:测试准则是关于一组有限可枚举的待测试目标(待测试的软件部分)的判定规则,如果测试通过了判定规则的判定,则认为达到了测试准则,否则就没有。假设i表示输入数据,且i∈D,output表示输出数据,也就是说如果输入数据i满足output=f(i)(i∈D),就认为达到了判定准则,否则就没有。

定义2测试子域:把测试用例的输入域D按照上述二个步骤划分成L个互不相交的子域D1,D2,…,DL,即D=D1∪D2∪…∪DL,且Di∩Dj=(i≠j且i,j=1,2,…,L),则Di称为测试子域。

定义3测试可靠性因子:为了更好的判断输入和输出是否满足映射关系,特此引入功能性可靠因子c,其中c=1或c=0。当c=1时,表示输入和输出符合其映射关系;当c=0时,表示输入和输出不满足其映射关系。

定义4缺陷影响因子:不同的缺陷对软件可靠性的影响不一样。通常测试人员将缺陷分为如下几个级别:致命、严重、一般、轻微、建议。对应不同的级别应给予相应权重来描述它,以表示它对测试结果的影响。其中缺陷影响因子用γi表示,这里i=5,表示5个级别。根据经验可设γ=(10,5,2,1,0、5)。

软件就好比一辆汽车,不同的缺陷、故障(缺陷因子不同)会产生不同的结果,就像座位和车刹的故障一样,同样是缺陷,但产生的结果不同。作为软件的可靠性来说,应该把缺陷因子考虑到其中,这样才能更好地度量和评价软件可靠性。

假设输入i产生缺陷的概率为P(i),其中i∈D,根据定义3可将c表示为i的函数c(i),它满足c(i)=1或c(i)=0,根据定义4可将缺陷影响因子γ表示为i的函数γ(i)。则测试用例的可靠性可用(1)式表示:

2、2测试用例的可靠性评估

在软件测试可靠性评估领域,所有的结果都是在一定假设条件下产生的,不论是JM模型、Musa模型或者NHPP模型,都是在一定的假设基础上进行的。

根据等价类原理可知测试向量所产生的缺陷在各个子域内出现的概率是均等的。同时,软件的复杂性在观测数据矩阵中也得到了很好的体现。根据等价类原理,可以计算出相应的可靠性模型。

推论1对任意一功能点进行一次有选择性的随机测试,其可靠度可表示为:

其中γi表示第i个缺陷影响因子,c/ij表示观测结果。

证明假设对任意一个功能向量F进行测试,其输入点集为:

根据其映射规则,通过定义3可以得出一组相应的矩阵C。它可表示为式(2)。

根据定义4可知每组输入可能产生5种等级的缺陷,而每种等级的缺陷对软件可靠度造成的影响是不一样的,因此可把矩阵C分解成一个新矩阵C/,C/中包含了5种缺陷影响因子的信息。由于论文主要是计算软件的可靠性,在定义3中已规定当输入和输出满足映射关系时,c取1,否则取0。所以C/表示式(3)。

根据矩阵C/和(1)式可以得出软件无缺陷运行的概率如(4)式所示。

根据(4)式可推知缺陷影响因子为γi的发生概率Pγ为:Pγ=1-PFi,从而可计算出软件可靠度RFi如式(5)所示:

推论2测试用例在无缺陷下运行的概率为:

证明测试向量F1,F2,…,Fn相互独立, 则可推出测试用例F的可靠度为各个测试向量可靠度的交集,表示为(7):

据推论1知测试用例的可靠度Rc=∏ni=1RFi, 从而可得出测试用例在无缺陷下运行的概率为

3软件可靠性评估

3、1最大概率的EM算法

在文献[5]中论述了EM算法在假设检验中的应用,本文将该方法引申到软件测试可靠性评估计算上。

假设输入点集为I,通过输入和输出的映射函数关系,观测到I服从概率分布Pd(I), Id。随机变量I只是观测数据的一部分,假设A表示与I有关的随机事件,即A={R(I)>Rα},R(I)表示通过随机输入I观测到的似然统计量,Rα表示测试人员的期望值,且Rα∈[0,1]。这里所要求的是最大概率sup{Pd(A):d∈D0},这里D0是D的子集。在假设检验中,最大概率可以是真实的检验水平,也可以是犯第1类或第2类错误的概率。

EM算法是用来求解似然函数最大值点的工具,所以,如果能够将概率Pd(A)看成似然函数的值,则可以利用EM算法得到最大概率sup{Pd(A):d∈D0}。

EM算法的基本步骤:

设f(y|d)是Y的概率函数。从一个初始点d∈D开始,则寻找sup{Pd(A):d∈D0}的算法由下面的两步迭代而成(t=0,1,…):

E步:给定现在的值d(t)后,对未知的对数似然函数l(d|Y)=log f(Y|d)求条件期望:

M步:最大化函数Q(d|d(t)),求取最大值点d(t+1)作为下一步迭代的值,即使得:

3、2基于测试用例的软件可靠度检验

软件测试是一个反复测试的过程,一个测试软件包含多个测试用例,各个测试用例之间的关系是相互独立的,假设测试软件P包括m个测试用例,并且对该软件进行了k次测试,根据推论2可计算出一个关于测试用例的观测数据矩阵R如(8)式所示:

其中Rij表示对第i个测试用例进行第j次测试所得到的结果。其中经过k次测试后,每个测试用例的可靠度可以取其算术平均值作为最后结果,其结果可表示为式(9)。

根据(8)、(9)式可推导出测试软件P的最终矩阵表达式为式(10):

下面利用R={R(c)1,…,R(c)m}对软件可靠度RP进行检验。检验的问题是:

这里的RP表示测试员或者软件使用者对软件可靠度的期望值,如果测试软件可靠度大于该期望值,则认为测试软件的可靠度达到要求,否则,认为没达到要求。根据式(8)可推出软件的可靠度的极大似然估计为式(11)。

对于给定的检验水平α,假设A={R^p>Rα},通常的检验方法应该选取R尽可能的小,对给定的水平α,其中临界值Rα可以表示为式(12)。

通过上文分析,可得出RP的对数似然函数为式(13)。

其中,c是一个与Rij无关的常数且c=-m log k。

给定(R1,…,Rm)的一个初值(R(0)1,…,R(0)m),则在已知l步迭代后,EM算法的E步是:

EM算法的M步是在RP=R1…Rm=RP下求出Q(R1,…,Rm,R(l)1,…,R(l)m)关于(R1,…,Rm)的最大值。其中可以利用Lagrange乘子法得到最大值点为R(l)ij=R(l)ij+λ,其中λ是方程∏mi=1∑kj=1(R(l)ij+λ)=RP的解。

这样可得到一个序列{(R(l)1,…,R(l)m),l=1,2,…}。根据EM算法的一般原则,这个序列使得R(l)P{R^P>R}是单调不减的。如果初值选得适当,则方程也收敛得较快。

4试验模拟

软件可靠性模型主要是改进软件开发过程和软件可靠性的度量。基于测试用例的软件可靠性评估模型是根据在在改善测试用例设计过程中通过对失效数据进行建模,并且通过EM算法来求其最小置信下限,真实地描述了软件失效特征,理论上具有较高的预计精度和较好的适用性。

4、1测试用例可靠度计算

下面给出一个有关登录原为:登陆系统的测试用例试验数据,该用例包括3个测试向量,即,Fc={F1,F2,F3},根据定义4将其按照缺陷等级分成5个类别,其相关测试数据见表1。

缺陷因子对软件本身的影响的情况下可计算出功能向量的可靠度RF=[0、9415,0、9658,0、962]和测试用例的可靠度Rc=0、9564。从测试结果来说,用户和测试人员更容易接受包含缺陷影响因子的测试结果。

4、2适用性评价

本文所给出的软件可靠性评估模型是基于数据域的基础上提出的,而Nelson模型是数据域软件可靠模型的代表。文章通过对上述登录原为:登陆系统的模拟,得出了一组关于Nelson模型、传统算法和基于测试用例模型的试验数据(本文所提出的模型用TC模型表示)。

软件设计模式论文篇2

1、开题报告(含文献综述; )作为毕业设计(论文)答辩委 员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指 导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签 署意见及所在专业审查后生效。 2、开题报告内容必须用黑墨水笔工整书写或按此电子文档标 准格式(可从教务处网页上下载)打印,禁止打印在其它纸上后剪 贴,完成后应及时交给指导教师签署意见。 3、 文献综述;应按论文的格式成文,并直接书写(或打印) 在本开题报告第一栏目内, 学生写文献综述的参考文献应不少于 10 篇(不包括辞典、手册) ,其中至少应包括 1 篇外文资料;对于重 要的参考文献应附原件复印件,作为附件装订在开题报告的最后。 4、统一用 A4 纸,并装订单独成册,随《毕业设计(论文)说 明书》等资料装入文件袋中。

毕 业 设 计(论 文)开 题 报 告

1、文献综述: 结合毕业设计 (论文) 课题情况, 根据所查阅的文献资料, 每人撰写 2500 字以上的文献综述,文后应列出所查阅的文献资料。 软件项目开发管理系统

进入二十一世纪这个信息爆炸的时代,人们的各种观念开始发生惊天巨变,各行 业也开始转向信息化。而随着Internet的普及与发展、随着电脑及网络技术的大范围 应用,信息技术、网络技术、计算机技术等都在不同领域得到了飞速的发展。随着IT 产业的不断膨胀,各种各样的软件项目被飞快的开发出来。各种应用软件,各类实施 项目不断被推出,在世界高速发展的今天,在各类软件项目层出不穷的今天,如何规 范的,系统的,安全的,高效的管理好各类软件项目,成为了当前各软件项目开发公 司的最大难题。要想去逐步解决这些问题,则需要应用到软件项目开发管理系统。 软件项目开发是一件非常复杂的工作,他需要各种软件开发人员投入到这个开发 大军来,相互协调配合,相互提升。而对众多的软件公司或开发团队来说,有效的管 理和控制软件项目是非常重要的。为了给这一复杂而重要的工程带来可操作性的简便 和准确的数据信息。Software Projects Exploitation Management System就是为着 这一目的开发出来的。 软件项目管理系统主要用来帮助软件公司架构规范的软件项目开发管理过程(项 目计划管理、监督与跟踪、需求管理、测试管理、缺陷管理)包括: 1、帮助软件公司进行有效的项目数据度量管理(针对SEI CMM3/CMMI3的标准) ; 2、帮助各软件公司长效实施组织过程体系规范(ISO9001、SEI CMM/CMMI) ; 3、帮助软件公司建立项目过程数据库和知识库等。故本综述分别从基于B/S模式 数据库的设计方法、分析,设计对软件项目管理系统进行综述。 4、提高过程透明度,加强对项目的监督和管理(针对项目的进度、成本、质量、 资源、活动等) ; 5、支持软件公司的多级管理模式,包括:企业高层、质量部、项目经理、程序员; 6、支持项目组内、异地的开发组间、异地的客户与组间的协同工作模式,突破地 域障碍; 关健词:数据库软件、软件工程、C/S模式、B/S模式、JAVA 关健词

数据库技术是数据管理的技术,是计算机科学的重要组成部分。最近几年来,数 据库技术发展越来越快,在多种应用领域对数据管理的需求越来越多,数据库技术的 重要性已不断的被更多的人所熟知。数据库技术是数据管理的技术,它也是计算机科 学的重要组成部分目前,不仅在大、中、小、微各种机型上都配有数据库管理系统, 各行各业的信息系统,甚至是国际互联网上的信息系统都离不开数据库的支持。因此, 数据库已成为信息社会的重要基础设施。 从计算机技术和数据库的发展过程来看,计算环境和数据库技术基本保持着一种 同步发展的状态。现阶段最具有发展潜力的就是基于 B/S 模式或者基于 C/S 模式的数 据库、 数据库管理系统(DBMS)可以定义为: 数据库管理系统是用于管理数据的计算 机软件。数据库管理系统使用户能方便地定义和操纵数据,维护数据的安全性和完整 性,以及进行多用户下的并发控制和恢复数据库。随着 B/S 模式与 C/S 模式数据库的 发展,数据库系统也出现了嵌入式数据库系统和移动数据库系统。嵌入式移动数据库 可以定义为:嵌入式移动数据库系统是支持移动计算或某种特定计算模式的数据库管 理系统,数据库系统与操作系统、具体应用集成在一起,运行在各种智能型嵌入设备 或移动设备上。目前这已经成为一个十分活跃的研究和应用领域嵌入式移动数据 库或简称为移动数据库(EMDBS) 。 其中 C/S(客户机/服务器)结构,即大家熟知的客户机和服务器结构。它是 软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现。实质就是客户端运行应用程序,并向服务器数据库发 送 SQL 请求及取回结果;服务器数据库侦听基于 TCP/IP 的网络,响应请求并返回 处理结果。两层结构最大的优点在于系统结构简单。 一个良好的软件项目开发系统对 C/S 结构需要完成以下功能: a) 数据库的维护功能包括数据的备份、恢复等功能 b) 权限分配管理功能。 c) d) 基本数据的维护。基本数据指的是软件项目的基本信息。 动态数据录入、编辑、修改、查询等。动态数据指的是检测到的信息及其改造 后的一些相关的信息。

B/S(浏览器/服务器)模式数据库系统。是 WEB 兴起后的一种模式,WEB 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核 心部分集中到服务器上,简化了系统的开发、维护和使用。三层结构是把应用逻辑 划分为三个部分:第一层是用户界面(User Interface) ,提供用户与系统的友好 交互。第二层是应用服务器,专司业务逻辑的实现。第三层是数据服务器,负责数 据信息的存储、访问及其优化。 基于上述数据库系统特点,软件项目管理系统是在 WINDOWS 环境下,采用 C/S 模式,使用 JAVA+SQL Server 语言设计。其优越性体现在: (1) 非过程化语言 SQL 是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要 求用户指定对数据的存放方法, 也不需要用户了解具体的数据存放方式, 所以具有 完全不同底层结构的不同数据库系统,可以使用相同的 SQL 语言作为数据输入与 管理的接口 SQL 以记录集合作为操作对象,所有 SQL 语句接受集合作为输入,返回集 合作为输出, 这种集合特性允许一条 SQL 语句的输出作为另一条 SQL 语句的输 入,所以 SQL 语句可以嵌套,这使他具有极大的灵活性和强大的功能。 SQL 不要求用户指定对数据的存放方法,这个特点使用户更易注重于要得到的 结果;所有 SQL 语句使用查询优化器,它是 RDBMS 的一部分,由它决定对指定数据 存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而 用户则从不需要知道表是否有索引、有什么类型的索引。 (2)是所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持 SQL 语言,用户可将使用 SQL 的技 所有用 SQL 编写的程序都是可 能从一个 RDBMS(关系数据库管理系统)转到另一个, 以移植的 (3)统一的语言 以前的数据库管理系统为上述各类操作提供单独的语言, SQL 将全部任务统 而

一在一种语言中。SQL 可用于所有用户的 DB 活动模型,包括系统管理员、数据库 管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。。 通过阅读大量的文献证明,建立在B/S或C/S模式下的数据库设计基础之上的软件 项目开发管理系统具有稳定、高效、可靠的特点,同时拥有良好的可伸缩性,能够充 分适应未来系统的扩展需求,出色的可重用性则大大降低了构建新系统的成本。

参考文献 1、 《VB+SQL Server 数据库应用系统开发与实例》 2、 《Visual Basic编程技巧:网络与数据库篇》 3、 《数据库系统原理》 李站怀 著 李晓黎、张巍人民邮电出版社 机械工业出版社 西北工业大学出版社

4、 《Visual Basic 6 数据库编程大全》 弗洛克维克(美)电子工业出版社(2000) 5、 《Visual Basic 6 数据库程序设计高手》 温贤发 科学出版社(2001) 6、 《Visual Basic 开发指南:SQL Server 篇》邱仲潘 电子工业出版社(2000) 7《Visual Basic 编程技巧:网络与数据库篇》 清宏计算机工作室 版社(2001) 机械工业出

毕 业 设 计(论 文)开 题 报 告

2、开题报告:一、课题的目的与意义;二、课题发展现状和前景展望;三、 开题报告: 课题的目的与意义; 课题发展现状和前景展望; 课题主要内容和要求; 研究方法、 课题主要内容和要求;四、研究方法、步骤和措施 一、 课题的目的与意义

在二十一世纪信息迅猛发展的时代, 网络的普及使网络和企业很自然地走到了一 起,而如今通信最杰出功劳之一,则是软件项目开发管理系统的广泛应用与飞速发展。未 来个人或企业管理可以很方便,快捷,高效的进行管理。 随着 Internet 技术的发展,它对我们工作和生活显得更加重要,尤其是现在项目软 件,应用软件不断推陈出新的今天,各企业对管理不同项目,来应用软件迫切的需要高 效性,规范性,安全性、及时性。而基于 B/S 模式下的数据库所设计而成的软件项目开 发管理系统刚好提供了这些功能。本系统就是一个能够让用户能及时有效地对软件项目 开发管理系统进行操控,并且是在安全的前提下进行的。在网上实现对软件项目的任何 时间,任何地点安全有效的管理这是软件项目开发管理系统的发展方向。

二、 课题的发展现状和前景展望

因特网是一个巨大的全球性的信息服务中心。随着互联网的发展,网上交易、电 子商务的逐渐繁荣,各行各业的规模不断发展与状大,这就更需要一个安全的,可靠的, 高效的管理系统来管理,因此,软件项目开发管理系统的设计就变得尤为重要。 各个公司可以根据自身的业务特点和公司的具体情况提出对应用软件的需求,通 过我们的软件项目的特定开发服务,不但可以解决企业当前面临的困境,还能够提高信 息中心的软件开发维护水平,为企业的长期可持续发展提供有效的保障。 随着企业信息 化水平的提高、网络的快速发展,已经有很多企业意识到了使用软件项目管理系统可以 大大提高管理效率、资金使用率、提高员工的工作效率、降低成本、同现有业务接轨。 随着现代社会节奏不断加快,各企业之间的竟争也日益激烈。随之也给企业带来了 巨大的压力与挑战,为了能适应残酷的市场竞争,为了能便捷管理,各软件项目管理系 统已经成为一种当前各大企业不可缺少的一部分了。而要分析设计出一个实用简单,安 全高效的管理软件,其前提必须在基于 B/S 模式下的数据库设计与分析。软件项目开发 管理系统做为一种新型的网络管理系统,已经越来越受到人们及其各大企业的重视,它 已经成为一家企业的管理支柱,而随着越来越多的软件系统的开发,如果缺少一个好的

软件管理系统,则不仅不能让操控者感觉到安全,方便,高效,而且会带来资源的浪费。 然而,现有的软件存在严重的功能不足,开发出一种新型便捷的软件项目开发管理系统 已经成为一种必然的趋势。

三、 课题主要内容和要求

1、此课题设计任务特点及分析主要是通过对该数据库软件设计与分析,使学生能够 熟练运用一门程序设计语言来掌握 C/S 或 B/S 数据库设计的方法和过程,以及为设计其 它应用软件提供帮助,进行提高软件设计能力。 2 、课题主要任务与要求 (1)初步方案:通过查阅资料,首先对我的课题进行可行性研究和需求分析,提出 相应的设计方案并进行方案论证,然后对该课题进行模块划分并找出模块之间的关联关 系,画出系统流程图,在此基础上进行源代码编写和调试,最后撰写毕业论文。 (2)主要任务 a 使用 C/S 或 B/S 模式设计该系统,并要求系统完成后操作简单,功能完善,界面美 观。 b 系统用户管理模块:包括文件操作,普通用户和系统管理员不同身份口令密码修 改,系统退出等。 c 登录界面设计:要根据不同的用户设计不同的口令密码,并且进入系统后,根据 用户不同对该软件使用权限也不同。 d 项目流程管理模块:包括项目基本信息的录入、修改和删除;申请立项;批准立 项;项目工程分配;项目中止等功能。 f 项目实施管理模块:包括成立项目组;划分功能模块;书写项目报告等功能。 e 项目文档管理模块:包括项目文档信息的添加、删除、修改和查询。 g 项目测试管理模块:包括测试工程师添加、修改和关闭报错记录;开发工程师查 看、解决报错记录。 h 项目验收管理模块:包括提请验收项目;测试工程师,质量控制工程师,业务主 管,项目主管签字等功能。 i 项目总结管理模块:包括项目总结记录的添加、修改和删除等功能。 j 信息打印模块:能实现对各种报表的打印

四、可行性分析、研究方法和步骤 可行性分析、

可行性分析: 可行性分析: 选取几台中等配置电脑, 在操作系统为 WINDOWS XP 的环境下, 使用 VFP, DELPHI, VB, JAVA 等程序设计语言开发该软件系统。 C/S(客户机/服务器)结构,实质就是客户端运行应用程序,并向服务器发送 SQL 请求 及取回结果;服务器侦听基于 TCP/IP 的网络,响应请求并返回处理结果。两层结构最 大的优点在于系统结构简单。只要把客户机和服务器在网络上连通,利用一些快速应用 开发工具,就可以很快地开发出一些部门级的小规模应用,同时开发和运行的环境都相 对简单。 B/S(浏览器/服务器)模式数据库系统。就是建立并配置 WEB 服务器及 PowerBuilder 应用服务器,以实现通过浏览器来访问数据库。B/S 结构设计思想的主要目的,就是为 了解决两层结构中原发性的问题。其最主要价值在于产生一套切实可行的解决方案,把 客户/服务器结构下的应用可靠地推广到企业级的关键任务环境中,并利用这一技术所 带来的高效率、多功能与灵活性,增强企业信息网的性能和扩展能力。三层结构是把应 用逻辑划分为三个部分:第一层是用户界面(User Interface) ,提供用户与系统的友 好交互。第二层是应用服务器,专司业务逻辑的实现。第三层是数据服务器,负责数据 信息的存储、访问及其优化。 研究方法: 研究方法: 主要采取包括:文献调研、课题考察、实践总结、实验分析、调查统计等 设计进度安排: 设计进度安排: 1 第 1 周任务:布置任务,学生进行资料查询。 2 第 2 周~第 3 周任务:软件需求分析并画出结构流程图。 3 第 4 周任务:系统模块功能划分。 4 第 5 周~第 13 周任务:模块源代码编写及调试。 5 第 14 周任务:系统检测并通过最后测试。 6 第 15 周任务:毕业设计论文编写。 7 第 16 周任务:指导老师论文审阅、修改及学生毕业答辩。

毕 业 设 计(论 文)开 题 报 告

指导教师意见: 1、对文献综述;的评语:

2、对本课题的深度、广度及工作量的意见和对设计(论文)结果的预测:

软件设计模式论文篇3

关键词:TOPCARES-CDIO;软件测试;人才;培养模式

随着我国软件产业规模逐渐壮大,软件的复杂性越来越高,软件产品难以把控,软件测试工程师成为软件企业不可缺少的技术人才。企业对软件测试工程师的需求不断增加,但高校对培养软件测试人才方面的课程及专业设置不能满足市场需求,软件测试人才供需失衡。大连东软信息学院计算机科学与技术系于2004年开设软件测试课程,2008年构建软件工程专业软件测试人才培养方案,至今已为社会输送软件测试人才近千人。

1、TOPCARES-CDIO

CDIO工程教育模式是近年来国际工程教育改革的新成果。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),其教育理念是让学生通过主动、实践与课程有机联系的方式进行学习,培养学生“做事”与“做成事”的能力。TOPCARES-CDIO是大连东软信息学院基于CDIO工程教育理念,构建具有特色的“能力”教育指标体系,即技术知识与推理能力、开放式思维与创新、个人职业能力、沟通表达与团队协作、态度与习惯、责任感、价值观、实践应用能力。

2、软件测试方向人才培养现状

IT企业需要大量具有创新精神和实践能力的软件测试人才,但现阶段的人才培养模式在学生工程能力培养方面存在薄弱环节,软件测试方向教学体系普遍存在以下问题。

1)培养计划滞后于社会岗位需求。

目前,软件测试方向的人才缺口突出,IT行业亟需具有实践能力、创新能力的测试人员。软件测试工程师要熟悉主流测试工具的使用,具备测试文档编写能力,熟练使用主流开发工具及语言,熟悉软件业务流程并能独立制定测试计划,独立完成自动化测试脚本等。当前计算机应用专业或软件工程专业在软件测试工程师方向的培养计划滞后于社会岗位需求,传统以理论为主的教育体系培养出的人才不能完全满足岗位需求。

2)实践教学与理论教学脱节。

学生在理论课上只学习理论知识,不能动手实践,上机实践安排在理论课之后,造成实践教学滞后于理论教学,学生通过上机实践不能达到实践效果。如何开展实践教学,缺乏从专业人才培养角度考虑,没有结合社会岗位的需求状况。因此,建立独立、层次化的实践教学体系,提高学生工程实践能力是改革的关键。

3)缺乏对学生工程能力、创新能力的培养。

计算机相关专业院校在培养计划中设置了扎实的理论基础课程,但没有建立增强学生创新能力的培养机制。学生能够掌握专业的相关理论知识,但与IT岗位所需的实践能力脱节,其工程实践能力、创新能力没有得到充分培养。

3、TOPCARES-CDIO引导的软件测试方向人才培养模式

2008年大连东软信息学院提出TOPCARES、CDIO工程教育思想,其核心是一体化教育。在人才培养上强调以能力为本,在专业建设方面,借鉴国内外先进教育理念与工程人才培养方法,采用CDIO工程教育模式,以学生实践能力与素质能力的培养为重点,突出专业特色,面向软件测试行业的职业需求,构建以TOPCARES-CDIO为引导的软件测试方向人才的培养方案。对于本科学生来说,本专业采用的是“3+1”教学模式,在大学4年中,前3年进行专业理论学习与实践学习,第4年进行项目实训及毕业设计。该教学模式保证学生在扎实的理论基础下,得到充足地实践锻炼,使学生能够很快地进入工作角色。此外,本专业的学生采用“1321”教学模式,每学年分为3个学期,其中,2个理论学期,1个实践学期,实践学期在理论学期所学知识的基础上进行。通过教学改革,将软件测试方向人才培养与现有的教学资源相结合,培养学生的专业技能、工程实践能力、职业素质,使学生适应IT行业发展的需要。

3、1 培养方案

大连是软件服务外包型城市,针对大连的区域经济发展需要,面向软件测试行业的需求,大连东软信息学院构建了以TOPCARES-CDIO为引导的软件测试方向人才培养方案。

首先,学校以学生为中心优化组织结构,取消教研室建制,将各系学生由原来按年级横向管理变为按专业纵向管理,实施以专业为基本教育单位的一体化管理模式,设置专业教育管理团队,让专业教师参与到素质教育与学生工作中,辅导员参与到专业教学工作中,从而实现辅导员队伍与专业教师队伍融合,形成全员育人的工作机制。

其次,软件测试方向以培养软件测试工程师为目标,以TOPCARES为核心,采取“133”的培养模式,即1个培养目标、3个能力层面、3条培养路线。1个培养目标指,以培养软件测试工程师为培养目标,培养以团队合作形式完成软件系统测试的系统构思、设计、实施、运行的软件测试工程师。3个能力层面指,专业能力,软件测试专业知识与推理能力的培养;素质能力,个人素质与职业素养;工程能力,在社会、企业环境下针对软件产品测试的构思、设计、实施、运行等工程全过程能力。3条培养主线指,课内1条主线,以项目为导向的一体化课程体系;课外2条辅线,贯穿课外实践环节辅线,针对专业能力的党建学团工作辅线。软件测试方向以项目为导向的专业主干课程能力培养设计,如图1所示。 3、2 专业课程体系

围绕软件测试方向人才核心能力培养目标,设计以项目为导向的一体化课程体系,包括学科基础课程、专业基础课程、专业技能课程及实践项目等。以某个项目为主线贯穿4年培养过程,围绕该项目在第1学期、第3学期和第6学期设置l级项目,在大学4年级设置1级项目,做到首尾呼应。培养过程中设置4个2级项目,为主线提供支持,设置10门核心课程和3级项目,使培养过程充实。课程体系与专业能力及就业岗位对应关系链路图,如图2所示。

3、3 实践教学体系

通过对IBM、东软、海辉、华信、松下等软件公司调研,建立以TOPCARES-CDIO工程教育模式为引导,设计面向岗位需求一体化、层次化的实践教学体系。以项目实训的1级项目为贯穿,以各学年实践学期的2级项目、课程中的3级项目为基础进行实践,各级实践项目循序渐进,相辅相成。

摒弃传统教育观念,改变以理论教学为中心,实践教学为理论服务的思想,构建与理论教学相结合,一体化、层次化的专业实践教学体系,根据岗位特点设置IT应用型人才培养的课程体系。只有建立相对独立的实践教学体系,使实验、课程设计、实训、毕业设计各环节循序渐进,才能以实践教学为中心,真正发挥其作用。软件测试方向实践教学体系架构,如图3所示。

3、4 面向就业岗位。改革教学内容

在教学改革中,将CDIO工程教育模式切实运用到专业建设及课程建设中,以项目驱动和“做中学”为方法提高学生的专业技能与实践能力。教学内容设置面向就业岗位,以“基于工作过程的课程观”为导向,融入产业、行业、企业、职业等要素,对软件测试行业进行调研,对软件测试工程师工作的流程进行分析,设计与应用能力培养目标对应的教学内容。

3、5 与企业合作,共筑实训平台

探索与企业合作的渠道和方式,采用校企合作共同开发实践项目的方式,建立软件测试人才实践能力培养的校内实训平台和校外实训基地。通过实训组织模式、实训教学资源及实训管理系统的建设与应用,提供规模化、企业化、系统化实践能力训练的平台,从根本上解决软件测试专业学生规模化参与企业真实项目训练的难题。

采用校企合作共同开发的方式,建设实训平台。2011年,与国内软件服务外包公司文思创新签署实践基地协议,为软件测试方向的学生定制实训项目,学生实训考核通过,获取文思创新实习生资格。

3、6 建立以TOPCARES-CDIO为引导的立体教学资源

以TOPCARES-CDIO为引导的立体教学资源包括,CDIO工程教育教材软件测试技术、实验项目指导书,CDIO指导的以项目为导学的电子课件与教案,教、考分离试题库、项目库,全程教学视频、Sovo工作室、软件测试社团等供学生课内外教学资源。

4、人才培养模式的成效

从培养制订计划到设置课程体系、教学计划撰写、项目设计、课程设计及课程知识点的讲解方法,以TOPCARES-CDIO教育思想为指导,将TOPCARES-CDIO教育理念融入应用型人才培养环节中。从目前就业情况及实习情况看,软件测试方向的学生就业相对容易。

1)2007级软件测试方向学生就业率达到96、55%,有4名学生在北京微软研究院任职。

2)2008级软件测试方向学生在大学4年级参加文思创新公司的企业实践项目,最终有23名学生获得文思创新实习生资格。

3)2009级软件测试方向毕业生共82名,其中73名顺利步入工作岗位。

软件设计模式论文篇4

关键词:整体项目模式;项目Bus;软件工程;教学

0 引言

文献1论述什么是整体项目模式以及整体项目模式的优缺点,文献2论述整体项目模式下软件工程专业的教学体系结构,同时也提到软件工程专业教学方面的要求,主要是针对教师的要求。在实际过程中,整体项目模式下软件工程专业的课程教学较为复杂。首先,需要理清专业课程之间的相互关系;其次,需要明确专业课程和项目过程之间的关系;第三,需要掌握专业课程教学和实际项目之间的切入点、重点和难点;最后,学生要能切实根据自己所做的项目,从不同的侧面或教学内容方面书写项目文档,并认识到同一项目可以从不同的角度进行分析、设计和编程。

传统的专业课程项目教学和整体项目模式下的专业课程教学存在很大区别。传统的专业课程项目教学主要是没有从整体项目模式考虑教学问题,割裂了专业课程之间的相互联系,只从该课程的教学内容方面列举案例,学生对教学内容的认识具有片面性和局限性,不能建立起对知识体系的整体观念。在实践教学过程中,学生曾经提出过很多问题:软件工程和结构化设计、面向对象设计有什么不同?它们之间有什么联系?为什么要学习面向对象?不学习可以吗?作为一个专业课任教师,如何进行解释?如果学生有足够的项目经验,前期是否一定要有详细的分析和设计文档?针对最后一个问题,若是不具备丰富项目经验的教师回答,那答案是一定要有详细的分析和设计文档;但是实践经验丰富的教师则认为这个问题的答案是不一定的。小型或者微型项目的前期不一定要有详细的分析和设计文档,可以直接在编程过程中进行分析和设计,那么这是否违反了软件工程呢?当然,答案也是否定的。如教师在讲授面向对象的软件开发方法课程时,必须强调某一开发方法的优缺点,可以综合运用其他开发方法如结构化分析方法、形式化编程,甚至弱化分析过程,强化设计和编码过程,主要目的是明确整体项目开发过程。

1 软件开发流程和系列课程之间的关系

1、1整体项目模式下软件工程专业教学体系结构

任何课程的设置不能脱离教学体系结构。一个好的教学体系结构能够帮助学生在头脑中树立完整的知识结构,让学生主动获取相关知识。在教学过程中,教师首先要明确该课程在整个教学体系结构中的位置,建立项目开发过程的全局观。文献2中建立的整体项目驱动模式下软件工程专业教学体系结构如图1所示。

从图1中可以看出,项目Bus横贯整个专业课程,教师和学生各自只使用同一个项目案例贯穿于系列课程中,从而从不同的角度让教师讲授、学生学习同一个项目的相关内容。

1、2软件开发过程流程

图2所示是笔者在软件开发过程中总结出来的一套软件工程专业软件开发过程流程,包括软件开发过程、软件工程文档、软件标准规范、实际软件开发规程等方面的内容。在每一门课程的开始和结束阶段,笔者都要将该图展示出来,让学生明确自己已经学到了哪些内容,还存在哪些欠缺。

1、3软件开发过程对应的专业课程设置

笔者有幸为中南民族大学软件工程专业以及本校与美国威斯康星大学合办的3+2软件工程国际合作试点班的学生讲授部分专业课程,包括软件工程、软件测试、用户界面设计、软件项目管理、面向对象的软件开发方法5门课程。对于相关的其他专业课程,我们将不做说明,如CMMI、软件过程、软件质量保证等。

这些课程与软件开发过程流程是一一对应的关系。软件工程课程是专业核心课程,涉及内容广泛,是其他专业课程的基础,也是整个软件开发过程流程的基础,主要内容包括软件需求提取、分析、设计、测试、维护变更管理以及软件质量控制、软件项目管理、软件开发配置变更管理、软件开发标准以及软件开发方法。软件测试贯穿软件开发过程的始终,包括用户需求的确认、用户界面的确认以及单元测试、集成测试、系统测试、Alpha/Bete诅测试、评审、验收等内容。用户界面设计主要包括软件界面设计理论、原则和规范,在实际软件开发过程中,是图2中的系统概要设计/用户界面驱动分析部分,通过与用户反复沟通确认需求,是测试的基础,同时也是软件编码阶段、评审、验收阶段的依据。软件项目管理主要对软件的质量、成本和进度进行管理和控制,同时考虑如何在软件开发过程中避免不必要的风险或者降低风险的影响。面向对象的软件开发方法着重于软件开发过程中面向对象的需求分析和设计,包括用户分析、界面设计、类模型、动态模型、状态模型等一系列的分析和设计。

这5门专业课程从不同的侧面讲解软件项目的开发过程和方法,各有特点。但是对于为什么要学习这几门课程,以及它们在软件开发过程中处于什么样的位置,起到什么样的作用,是教师在教学之初就应该明确的。

2 整体项目模式下系列课程的教学

根据整体项目模式原理,实践项目应贯穿到各专业课程之中,系列课程最好使用同一项目,这样更能加强学生理解软件开发过程的不同方面。该项目在专业课程开始之前就必须存在,即已经完成或正在进行中的实践项目,因此,系列课程必须是相互联系并且能基于同一项目案例,这和传统的项目教学方式虽然模式一致,但是效果却有本质的不同。图3为系列专业课程的项目案例、课程和学生实践案例示意图,5门课程都基于同一实际项目案例,学生根据自己所做的项目,按照不同专业课程要求的格式和内容书写相关文档。

2、1先案例后理论的案例驱动教学模式

软件工程专业的特点是实践性非常强,软件工程的很多理论都来源于对实践的总结和归纳。因此,教师在教学过程中采用先案例后理论的案例驱动教学模式,符合软件工程专业的授课特点。

首先,教师要讲解实际项目案例的文档,该文档是一套完整的、从不同侧面反映软件开发过程的实际文档。对于每一门专业课,教师首先讲解需求提取、需求分析过程、功能提取、系统功能结构框图等,让学生明确该系统的背景和要解决的问题,以及需要具备什么样的功能以实现目标。

其次,教师要联系实际项目案例,讲解课本上的理论,将每个理论知识点与实际的项目案例相结合,让学生充分理解理论。在实际讲解过程中,对于新开课,新教师若碰到教学学时偏少的状况,可以言简意赅地讲解重点知识;实践经验丰富的教师,碰到学时偏少的情况可以精简案例功能,讲解1~2个功能即可。

最后,教师必须强调实践的重要性并给出标准的文档规范,要求学生按照自己的实际项目书写标准的文档。在每一门课程讲解完毕后,教师再一次帮助学生回顾该课程在软件开发过程中的位置。

以软件项目管理为例,在正式进入课程教学之前,教师需要做大量的工作,首先需要准备的文档有项目需求、项目需求分析报告、可行性分析报告、项目开发计划书、项目Demo程序演示、软件项目投标书、软件项目开发合同。然后,开始进人软件开发项目管理过程教学,软件项目主要内容有成本管理、进度管理、人员管理、风险控制等理论内容。实际的软件项目管理主要分为4个阶段:IT项目的启动阶段、IT项目的计划阶段、IT项目的执行控制阶段、IT项目的收尾阶段,这在一般的教材中很少提及,但是教师在内容讲解中要明确阶段任务。IT项目的计划阶段涉及48个文档;IT项目的执行控制阶段涉及45个文档;IT项目的收尾阶段涉及14个文档。

教师在讲解合同的内容时,可以直接参照“软件项目开发合同”进行讲解。对于必不可少的合同内容,教师就必须跟学生讲清为什么必须要包含这些内容;讲解成本计算的时候,根据文档“工作包、进度和预算”进行项目的WBS分解以及基本的估算方法。

总之,由于教材先理论后案例的局限性,在听课之初,学生觉得枯燥乏味。而教师通过先案例的方式能有效调动学生在课堂上的学习积极性,为后面的项目实践奠定基础。

2、2学生项目实践环节

每一门专业课都有上机实践部分,学生在实践课上主要是书写文档。每门专业课都有各自不同的文档,软件工程课程要求学生必须完成标准的13个文档;软件测试课程需要软件测试报告文档;软件项目管理课程有127个文档;面向对象的软件分析方法课程有包含9大部分内容的软件项目分析与设计文档。每一门课程的文档内容非常多,要求每个学生最好独立完成,主要训练每一个学生的文档书写和理解能力。

需要强调的是,学生书写的项目文档一定要给出标准的、规范的文档格式,包括目录、段落、标题、字体等排版之类的要求。项目模板可以采用软件工程国标文档或者相关的其他标准文档,最好和某一软件公司的案例文档格式相一致。笔者在软件公司任职过程中,很多刚参加工作的大学生书写文档的水平非常差,主要是文档格式、结构和内容混乱,往往给人留下非常不好的印象。整体项目驱动模式下的课程教学,首先强调的就是文档格式和正确的文档排版,其次才是内容的正确性与完整性。

在学生项目实践中,任课教师最好跟踪指导。学生每次在实验课上必须完成相应的实验,并把实验的电子文档通过教学资源管理系统或以电子邮件的方式提交给教师。电子文档的批改能快速纠正学生文档格式不规范以及内容方面的错误,但这个工作量往往很大,每一次电子作业批改的工作量往往是学生数量的3~4倍。这是因为学生按照批改意见进行修改后又会返回给教师,最终达到合格标准的电子文档往往会被修改2~4次。

2、3考核方式

完成每门课程的项目文档是学生对文档书写熟练程度以及课程内容理解的直接反映,也是培养软件开发过程中需要具备的素养和习惯的有效途径,克服学生疏于或懒于书写文档的缺陷。因此,教师需要对学生书写的项目文档进行考核并将其反映在学生成绩上。项目文档的成绩占学生总成绩比例的30%~50%较为合理。

2、4教学效果

笔者经过近2年的教学实践,取得了良好教学效果。以中南民族大学软件工程专业2008级学生为例,首先,学生很顺利地完成了各自的软件项目,包括中南民族大学学生基金项目;其次,学生能很好地书写申请软件项目著作权系列文档以及毕业论文,书写的文档格式规范,只需稍加修改就能将文档立即转化成学术论文并发表。这表明学生无论是在文档格式还是在内容编排上都取得了进步,进一步提高了在软件开发过程中应有的素质。这也是软件工程专业学生和计算机其他专业学生之间非常明显的差别。

就前2届学生的就业情况,笔者回访了2家用人单位,他们对中南民族大学软件工程专业毕业的学生刮目相看,称赞学生书写的项目文档很规范。

软件设计模式论文篇5

关键词:软件体系结构,设计方法

0、引言

软件体系结构概念的提出和应用,表明软件工程走向新的发展阶段。未来的软件工程设计会逐步发展成为如同机械和建筑设计的机械组装过程一样,从而摆脱艰难的脑力劳动和无可靠质量保证的手工劳动,这其中软件体系结构将起主导作用。。新一代的软件工程将是体系结构的工程。软件体系结构设计包括早期的设计决定,体现了系统的全局结构,对于整个系统的质量有着决定性的影响。为了确保各种质量因素,正确地对体系结构进行抽象很有必要。为了获取对软件体系结构设计的抽象,人们已经提出了许多方法,我们把这些设计方法分类为工件驱动的方法、用例驱动的方法、模式驱动的方法、领域驱动的方法、需求驱动的方法。

1、软件体系结构的定义

虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:

(1)DewaynePerry和Alex Wolf:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。

(2)MaryShaw和David Garden认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。

(3)Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。

2、软件体系结构的设计过程

在软件设计中,软件体系结构设计是一种较新的说法,实际包括面向对象等设计方法和分析方法。软件体系结构设计的概念实现上将分析和设计活动包含在一个较大的、更紧密的设计框架内。

在软件结构的设计过程中由下面的步骤组成:

2、1 理解问题

在软件体系结构的设计前,必须对问题有一个清晰的理解,建立有效的解决方案。

2、2 确定设计元素及其关系

确定设计元素以及他们的相互依赖关系。在设计项目的早期,我们应该对应用进行一种自然的功能分解,为后续的设计任务和设计转换建立一个基线。

2、3 评价体系结构设计

本步骤对体系结构是否符合体系结构质量属性需求进行评估。许多质量属性可以通过对设计的观察来评价。

2、4 转换体系结构设计

设计操作将体系结构转换为满足质量属性需求、比以前设计更好的新设计。本阶段可以重复多次甚至可以递归执行。

3、软件体系结构的设计原理

体系结构设计的好坏将直接影响到软件系统开发的成功与否,为了能够设计出更合理的体系结构,我们在体系结构设计的时候要紧密联系这些技术,如:抽象、封装、模块化、信息隐藏、耦合与内聚以及层次化。

3、1 抽象

人们在实践中认识到在现实世界中一定事物、状态或过程之间总存在着某些相似的方面。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异就是抽象。对象的抽象把具有相同基类的导出类看作是同类,实现了动态约束。

3、2 封装

封装为不同抽象之间提供了明确的界限,有利于非功能特性实现。

3、3 模块化

模块化主要关心的是如何将一个软件系统分解成子系统和部件,其主要任务就是决定怎样将构成应用的逻辑结构物理的分割成代码实体。

3、4 信息隐藏

信息隐藏对用户隐藏了部件的实现细节,用来更好地处理系统的复杂性和减少各部件之间的耦合。

3、5 耦合与内聚

耦合强调模块之间的特征,而内聚强调模块内部的特性。耦合是用来衡量一个模块和另一个模块的联系的紧密程度的。内聚用来衡量单一模块内功能和元素间联系性的程度。

3、6 层次化

层次化把问题分解建立在基础概念和思想上多层次的、从底向上逐步抽象的分析和表达的结构,每一层处理该层次的问题、服务于该层次的要求。

4、软件体系结构的设计方法

为了获取对体系结构设计的抽象,人们己经提出了许多方法。我们把这些体系结构设计方法分类为:工件驱动(artifact-driver)的方法;用例驱动(use-case-driven)的方法;模 式驱动(patten-driven)的方法;域驱动(domain-driven)的方法。

4、1 工件驱动的方法

工件驱动的体系结构设计方法从方法的工件描述中提取体系结构描述。工件驱动的体系结构设计方法的例子包括广为流行的面向对象分析和设计方法 OMT和 OAD。

4、2 用例驱动的方法

用例驱动的体系结构设计方法主要从用例导出体系结构抽象。一个用例,是指系统进行的一个活动系列,它为参与者提供一些结果值。参与者通过用例使用系统。参与者和用例共同构成了用例模型。用例模型的目的是作为系统系统预期功能及其环境的模型,并在客户和开发者之间起到合约的作用。

4、3 模式驱动的方法

软件设计模式的目的在于编制一套可重用的基本原则,用于开发高质量的软件系统。体系结构设计模式是体系结构层次的一种抽象表示。

4、4 域驱动的方法

在领域驱动的体系结构设计方法中,体系结构抽象是从领域模型导出的。可以把领域驱动的软件体系结构(DSSA)看成是多系统范围内的体系结构,即它是从一组系统中导出的,而不是某一单独的系统。

4、5 需求驱动的方法

需求驱动是指软件体系结构设计基于需求分析的结果,因此需求驱动下软件体系结构设计主要是描述所解决问题和解决方案之间的动态关系。需求分析首先在于问题的描述,可并行建立目标模型和场景模型。体系结构设计是根据组件或子系统之间的数据、控制及其它依赖关系描述的系统全局结构设计,该结构描述系统如何分解为组件,并且各组件如何相互交互。通过描述组件和连接的抽象属性,得到软件体系结构的抽象模型,再从需求分析模型确定的解决空间中发现体系结构设计方案,从而得到具体的体系结构实例。。

5、结束语

由于软件体系结构研究刚刚起步,现有的研究成果尚不能满足工程需要,尤其需要进一步对基于软件体系结构在软件开发中的应用进行研究,使得软件体系结构在软件开发中发挥重要的作用。

【参考文献】

[1]王一宾、李心科 软件体系结构设计方法的研究 计算机工程与设计,2005 年 3 月

[2]王晓鹏基于模式的软件体系结构设计 软件导刊,2007

[3]刘志军、金蓓弘 软件体系结构设计技术及其应用 计算机工程与设计,2002年2月

[4]朱建浩软件体系结构设计方法的研究与应用 武汉大学,2004

[5]赵晓宇 基于图书馆管理系统软件体系结构的设计与研究 天津大学,2006

软件设计模式论文篇6

关键词:软件工程专业;应用型人才;培养模式

中图分类号:G642 文献标识码:A

1国内软件人才培养中存在的问题

软件人才培养模式的不合理会给软件业带来一系列的影响:

(1) 软件企业中的软件人才结构不合理。企业中只有极少数的几个主力,企业的发展、项目的开发、项目的管理及对开发成本的控制都由这几个主力来担当,这导致企业的发展及生存全都压在主力上,风险高。

(2) 软件人才缺乏“实战”训练。软件人才无法围绕软件工程的相关过程开展工作,导致软件项目的开发和管理难以按一种好的模式、好的机制展开,在关键问题上的处理能力不强,使得软件项目的失败风险不断提高。

(3) 软件企业中的软件人才知识结构不合理。理论与实际动手能力不平衡,在项目开发和管理中表现出无预算性、无预见性、无文档指导性、随意性强,往往导致软件开发周期长,开发成本过高,影响了软件企业的生存和发展。

由此可见,软件人才的培养模式关系到中国软件企业的发展。如何培养社会急需的软件人才,已成为关注中国软件业的人士最关心的问题。但是国内高等院校在软件工程专业人才的培养模式上还有着明显的不足,主要表现在:

(1) 培养目标不明确,培养层次不清,致使教材的选择、教学大纲的拟定、教学模式及手段的运用和教学计划的执行缺乏灵活性、层次性和实用性。最终导致学生个性在专业方向上得不到发展,可塑性较差。

(2) 闭门造车式的人才培养模式无法适应企业现实的需求。软件工程是一门新兴的学科,其发展与信息社会的发展及需求息息相关。而目前大多数高等院校依然沿用老一套的培养模式,使得许多学生将精力集中在过多过泛的基础教育中,以理论讲授为主的教学方式致使学生的实践能力与理论能力严重失衡,实践教育的不同步性导致了多数人才只能“纸上谈兵”,最终表现出来就是:软件工程专业人才远远跟不上企业现实的需求。

(3) 课程体系的设置缺乏以“实训应用兼顾理论指导”为向导。在培养模式中,往往走了两个极端:一种情况是过分强调理论,教师授课过程中无法营造一个好的实际工程项目环境,教师授课就会枯燥无味,而学生在脱离了对实际项目的参与后,要理解整个课程体系的相关理论就会更加吃力,失去学习兴趣后难免产生厌学情绪,最后导致另一个恶性循环;另一种情况是教师主要强调简单的开发应用――表面化实训,缺乏系统性的理论指导,学生整个学习过程中就是掌握了如何实现系统的某部分功能,培养出来的专业人才只能编写代码而缺乏理论指导,致使其发展空间有限。

(4) 缺乏综合应用能力的锻炼。现行各地方高校的教育体制比较落后,在软件工程人才的培养过程中,教学计划的执行死板硬套,各门课独自设立实践教学,缺乏综合的实践教学,忽略了指导学生理性地将各专业课程的知识有机揉合在一起,学生缺乏综合应用能力的锻炼,致使学生仅仅专著于某一门课程的实践锻炼,学生综合运用知识的能力得不到提高。虽有毕业实习,也往往表于形式化,未能真正锻炼学生综合实践动手能力,学生步入社会后还得从头再学习。

2结合实际,提出人才培养指导思想

肇庆学院为了贯彻落实“教育部财政部关于实施高等学校本科教学质量与教学改革工程的意见”(教高[2007)1号)文件精神,提出了“软件工程专业应用型人才培养模式优化改革”,改革体现了“新形势下的软件工程教育教学改革与建设”,并应符合肇庆学院提出的“口径宽、基础实、适应广、能力强”的人才培养目标:

(1) 理论教学为辅,加大实践教学比重;

(2) 突出学科平台关键课程,模块化的专业基础课程和专业选修课程有利于学生按需的个性化发展;

(3) 增设综合应用实践教学,注重培养学生的综合应用知识能力、创新能力和团队合作精神。

3软件工程专业应用型人才培养模式的改革和优化

3、1推进改革软件人才教育理念和模式

地方性高校的很多学生底子比较薄,动手能力较差,因此存在的问题也比较多,例如针对计算机基础课程――程序设计,学生在课堂上学习了很多程序设计的语言语法、函数库、数据类型等,但许多学生都不知道学习这些知识的用处,无法与解决实际问题联系起来;学习了数据结构和算法设计但却无法使用前期所学的计算机程序设计语言来实现;学习了数据库系统原理和软件工程,却不能通过需求分析开发出一个满足用户需求的简易MIS。若沿用传统的人才培养模式,理论与实际应用只是单独过程性结合起来,课程没有预留出综合性应用实践教育的时间段,始终依然无法很好地解决上述问题。

推进改革软件人才教育理念和模式主要是通过参考、修订和引进软件业发达国家对软件人才培养成功的经验,采用以链式案例式的教学模式。通过一个完整的项目案例,在引导学生进入专业基础课程时介绍项目实现的每个步骤所涉及的主要知识内容,让学生了解在整个学习阶段所要掌握的主要知识模块。在学习计算机语言阶段,掌握相关的语法、函数后,以案例的某一简单功能为参照,让学生用对应的计算机语言设计实现,既巩固了学生的程序设计思想,又让学生认识到所学知识的实际应用;再附加大量程序设计题目,让学生通过大量编写程序来提高动手能力。在学习数据结构、算法设计、数据库系统原理等也结合学生早已熟知的案例进行详细分析,并用相应知识完成对应部分的设计和实现。最后,在软件项目管理、软件工程等高年级课程中,让学生按照相关的理论指导,完成需求分析、概要设计、详细设计、测试文档等文档的编写。在链式教学过程中,学生在每一个阶段能得到相应实践能力的锻炼,都可以看到实践成果,感受到成就感,使学生的学习兴趣和动手能力都得以提高,把所学的知识融会贯通,同时锻炼了学生的团队合作精神和相互探讨相互竞争的意识。

3、2合理利用校园资源,创建实践教学环境

高等院校中实践教学环境主要可用的资源是专业实验室和校园网络。

专业的实验室是培养专业人才所必需配备的硬件设施,为了配合链式案例式的教学模式,建设对应的专业实验室是必不可缺的步骤。教师需要通过专业实验室来实施项目案例教学,演示案例的设计与实现的过程及方法;学生也需要在良好的实践环境中相互合作、相互讨论和学习;同时专业实验室也有利于教师对学生进行集中式的指导,锻炼学生的实际动手能力,培养学生的团队合作精神。

通过校园网络,构建一个有利于讨论、交流经验的平台,同时构建一个有利于学生在线获取学习任务、提交学习作业的教学平台。教师通过校园网络随时随地公布相应的学习要求和作业要求,学生能方便、快捷地通过这个环境获取相应的信息,还可以在线提交课程作业,并可与其他同学进行讨论和交流问题的解决方法。教师在网络教学平台中的参与,更能起到一个指导性的作用,例如在计算机语言程序设计的教学中,教师在线公布大量的题目,让学生可在线提交所编写的程序并反馈一定的信息,这个过程中可不断更新任务要求,还可针对某一问题进行讨论、分析。网络和教学平台的有效应用,打破了教师受时间、地理位置和实验室的分配利用而无法进行实践教学的约束,是一个有效的实践教学辅助环境,同时也提高了教学效率。

3、3应用为主,设置模块化的专业课程体系

以教育部高等学校计算机科学与技术教学指导委员会所编制的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》为指导,结合培养应用型人才的目标,结合地方高校对软件工程专业发展的规划和实际情况,为适应社会信息化和软件工程技术的不断变化发展对应用型人才的需要和要求,通过设置多个模块化的专业课程体系,合理按需修整软件工程专业课程体系,既有利于培养出满足社会、企业需求的软件人才,也有利于学生发挥各自所长的个性化发展。

(1) 合理设置基础课程模块,突出核心基础

在软件工程领域,最新、先进的软件技术文档、技术文献、发展研究等都是英文撰写的资料;操作系统等系统的核心代码的相关注释、变量、函数名等都是用英文命名的;合资、外资公司中的软件工程人员所使用的工作语言也是英语。因此,能否掌握及应用好英语这门语言就显得特别重要。在教学中,在第一至第四学期对学生的英语能力进行强化训练,通过阅读、听力、写作和口语交流等方式提高其英语运用能力;并在第二学期开始的所有专业基础课程、专业核心课程和专业选修课程中加入一定比例的专业英语训练,将英语融入到专业理论知识学习的过程中,达到巩固和不断提高的目的,为学生动手编写英文程序代码、查阅英文技术文献、文档扫除语言障碍。

软件工程人才必须具备良好的逻辑分析能力,高等数学、离散数学、面向计算机的数理逻辑的学习是软件工程人才培养过程中必不可缺的一个重要环节,这些课程的学习对专业基础课程(如数据结构、算法设计与分析、计算机图形学等)的学习起着至关重要的铺垫作用。

(2) 合理设置专业入门基础课程,以引导为主

能否激发起学生对本专业课程的学习兴趣,合理设置新生入学阶段的专业入门基础课程就显得尤为重要了。以计算机导论为主,应以设置类型多样、专业覆盖面广的专业基础知识讲座或新生研讨课为辅,学生学习了计算机最基本的概念后,通过生动有趣的讲座获得更广的认识和了解。通过激发学生的学习兴趣,能引导学生更容易进入专业领域;另一方面,通过拓宽学生的视野和思路,使学生在了解本专业的基础知道自己的专业需求,有利于学生在本专业的个性化发展。

(3) 合理设置专业核心课程,以应用为主

专业核心课程关系到培养出来的软件工程人才的质量,针对计算机学科的需要,应设置以操作系统、计算机网络、数据库系统为核心的软件系统类课程;设置面向对象程序设计、数据结构、算法设计与分析为核心的软件实现类课程;设置软件工程、软件测试技术、软件项目管理、软件系统结构为核心的软件工程类课程;设置相应课程的课程设计、实际项目开发为核心的软件设计及实现类的实践类课程,有利于将一系列的核心课程的相关知识整合在一起,通过综合应用实践,有利于培养学生团队合作精神和提高学生的动手能力。有了核心课程的支持,为下一步的专业个性化学习和发展打下良好的基础。

(4) 设置专业方向模块化课程,突出个性化发展

结合时代需求,结合学生个性化发展需求,设置多个专业方向的模块化课程,例如:设置软件应用类课程(如、J2EE、基于Web的网络程序设计、嵌入式软件技术等);设置信息系统课程模块(如管理信息系统、数字企业、网络数据库技术、电子商务基础、系统集成等);设置软件过程模块课程(如UML、软件需求分析、软件过程管理、交互式软件开发等);设置网络应用类课程(如C++/C##/Java网络游戏程序设计、手机游戏设计、网络数字媒体设计、Flash应用开发等)。设置多个专业方向的模块化课程,让学生可按需选修相应课程体系,有利于其发挥专业创新能力和专业个性化发展。

4结束语

信息社会的快速发展,软件工程专业应用型人才的培养模式也应与时俱进,一定程度上的校企联合,有利于主动适应就业市场的需求,有利于将学生培养成为高素质实用型人才,为企业输送满足其需求的软件工程专业人才。通过对软件工程专业人才培养模式优化改革的实施,改善在校生的学习效果,提高毕业生的就业率,促进其职业生涯中的快速成长。

参考文献

[1] 费宁,陈春玲,宗平、 软件工程人才的培养思路[J]、 计算机教育,2008,(14):9-11、

[2] 罗代忠、 应用型本科院校软件工程专业人才培养模式探究[J]、 计算机教育,2008,(08):121-122、

[3] 林丕源,刘才兴,张明武,徐建民、软件工程专业的实践教学改革初探[J]、 实验室研究与探索,2007,(12):245-247,254、

[4] 徐建民,林丕源,孟晓飞、 软件工程专业培养模式浅析[J]、 实验室研究与探索,2007,(12):335-337、

Reflection on the Applied Talents Cultivation Pattern of Software Engineering Major

Bai Wei-Hua, Li-Jian, Zhu Jia-Xian

(Dep、 of Computer Sci of ZhaoQing University, ZhaoQing 526061, China)

软件设计模式论文篇7

关键词:软件工程 实例化教学 项目实践

中图分类号:G462 文献标识码:A 文章编号:1674-2117(2014)16-00-02

1 前言

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、设计模式以及管理、标准、个人技能、团队协作和专业实践等多方面的知识和技能。它是一门理论性和实践性并重的重要学科。

软件工程课程是计算机专业重要的专业基础课。通过软件工程课程的学习,学生能够了解和掌握软件工程的理论、技术和方法,具备作为软件工程师所需的专业能力。由于软件工程的课程特点,传统的教师课堂授课为主、学生被动听讲为辅的教学模式在实践环节上存在很大不足,软件工程的理论和方法是从众多软件开发实践中总结出来的。但是对于缺乏软件开发实际经验的本科生来说,单纯地讲授理论知识往往使学生感到枯燥无味且难以理解,这严重影响了课程的教育质量和教学效果。近年来,部分学校采用了案例化教学的方式改革软件工程课程教学,在案例化教学中收集和总结了若干典型的软件开发案例,将这些案例贯穿于理论知识的讲解中;同时引入“做中学”教学模式,让学生在实际的项目开发中进一步理解理论知识,取得了很好的教学效果。[1-4]

我们在软件工程的授课过程中,也引入了案例化教学模式。总体来讲,学生的反应是积极的,不过也发现了一些问题。

(1)任课教师本身缺乏使用软件工程方法开发一个完整系统的经验,仅限于照本宣科地介绍基本原理和实际案例,不能将当前实际案例和软件工程方法有机地结合在一起,与实际的软件工程实践有明显的差距。

(2)大学阶段的课程实践基本以个人编程完成为主,软件工程方法起到的作用有限。即使面对需要团队协作的作业,也因为规模小、从头开发和无需维护的特点,使得学生感觉到使用软件工程方法作用不大,除了增加工作量外,没有明显的益处,无法激发他们进一步学习的兴趣。

(3)现有的软件实验环境偏重于提供编程工具的支持,缺少一个完整的软件工程支持环境,缺少适合教学使用的实验环境和资料,学生得不到真正的锻炼。

2 教学改革

针对现存的问题,结合ACM和IEEE联合的CCSE2005的相关内容[5],我们进一步改革课程体系框架和教学内容,本文将着重介绍我们在软件工程课程教学中的经验和成果。

IEEE的软件工程知识体系包括10个知识领域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程工具和方法、软件工程过程和软件质量。参考这10个领域知识,根据教学目标,结合理论知识、软件工具和工程实践等方面组织整个课程内容,在理论、应用、实践三个层次上建立了软件工程的课程体系。

理论部分以当前流行的统一开发过程RUP和UML语言为核心,覆盖IEEE的软件工程知识体系。包括软件需求、软件设计、软件实现、软件测试、软件演化、软件质量和软件配置管理等内容。

应用部分结合实际案例,覆盖IEEE的系列软件工程标准,学习RationalRose、ClearCase、ClearQuest、JUnit、MicrosoftProject等常见软件工程工具和环境。

实践部分要求学生以团队的方式协作开发具有一定规模的软件系统,并且在实践过程中能够熟练使用软件工程工具。实践部分着重培养学生应用软件工程的思想和现代技术解决软件开发问题的能力。

2、1 理论知识

理论部分的教学仍采用教师授课为主的模式,向学生讲述软件工程的基本理论,内容力求少而精,目的是在较短时间内让学生了解现阶段最广泛使用的软件工程技术的理论基础,为下一步应用部分的学习奠定基础。在具体的授课过程中,为避免单纯理论学习的枯燥性,授课内容围绕典型的软件开发案例展开。学生学习的注意力和兴趣是影响教学质量的重要因素。我们使用的案例是从国内著名的软件开发公司得到的真实案例,学生可以完整地看到项目的全景,这样既帮助学生认识到学习课程的必要性,又调动起学生的学习兴趣。

2、2 应用技术

软件工程与其他计算机课程不同,学生需要面对的不只是单一的软件工具,而是一组软件工具组成的软件支持环境。为了增强软件工程课的真实性,我们选用了一组业内流行的软件工程工具,营造一个适合软件工程课程项目实践的软件工程环境。使用RationalRose完成需求分析与系统分析和设计,使用ClearCase完成源代码管理,使用ClearQuest完成缺陷管理,使用MicrosoftProject完成项目资源调度等。考虑到相关软件工具的复杂性,为避免学生陷入单纯学习软件功能的误区,我们坚持“用中学”的方针,不要求学生面面俱到掌握软件功能,而是从实用角度出发,以完成项目为目的,掌握软件的常用功能。我们会首先演示如何使用相关软件完成典型案例,然后要求学生模仿示例,自行创作设计。

2、3 项目实践

大学阶段,大部分计算机课程实践通过学生的独立编程即可完成,软件工程课程实践则不同,软件工程方法和技术的作用必须在完成项目的过程中通过团队合作才能体现出来。

我们刚刚开始教这门课的时候,为了便于管理,选择的项目偏小,一般适合3~5人完成。不过通过几学期的实践,发现效果不佳。因为规模不大,通常只会有1~2人来承担主要开发工作,其他学生通常只起到辅助作用。在开发过程中,由于核心开发人员少,口头沟通远要比书面沟通简单有效,没有认真准备项目文档的动力;而且项目是从头做起,不需要利用以前文档来了解项目情况,无法体会到项目文档的重要性。在此种情形下,学生感觉到引入软件工程只是额外增加了工作负担,并没有明显的益处。

为了更好地帮助学生认识到这门课的重要性,我们在实践阶段做了若干改进。

(1)有意识地扩大了项目的规模,开发团队的人数也相应增加,通常开发团队人数在10人左右。人数的增多使得单纯的口头交流很难保证项目的顺利进行,从而促使学生撰写项目文档。

(2)分组时,根据学生的能力和水平,明确学习任务,进行合理有效的分工。在一个项目组内,应该有项目经理、系统分析师、软件工程师、配置管理员、测试工程师等角色。同一名学生在不同的开发阶段可能会承担不同的角色。

(3)项目开发也分为两个阶段,第一阶段完成后,我们会再提出一份更新的需求,要求在第一阶段的成果上继续开发。项目组的成员也不是一成不变的,第二阶段时每个项目组至少更换50%的成员。

在项目开发过程中,我们会监控项目的开发过程,参与项目阶段成果的评审工作。项目开发过程尽可能模拟真实软件企业的开发过程,最终使学生完成需求分析、设计、代码编写、测试、部署全过程,培养学生的合作意识、责任感和集体荣誉感。学生在开发过程中遇到问题,我们也不会直接给出答案,会建议他们自行讨论来解决,提高他们的沟通交际能力,培养其团队合作精神。

在教学过程中,理论部分、应用部分和实践部分并不是相互独立,而是有机地结合在一起。我们在该课程教学初期,首先给学生若干项目课题进行选择,题目选定后,以自主结合的方式完成分组。这样做可以有效地增强学生学习时的目的性。在重要章节的教学过程中,遵循先理论知识、再应用技术、最后实践部分的次序进行。完成某章节的学习后,就应该在规定时间内提交项目相应阶段的工作成果。例如,需求分析章节的理论知识学习安排在第2周、应用技术部分安排在第3周、需求分析说明书要求在第5周提交;系统分析的理论知识学习安排在第4周、应用技术部分安排在第5周、系统分析报告要求在第7周提交。我们会及时对每一部分的工作成果进行评讲,指出缺陷和不足,保障项目开发的顺利进行。在期末考试结束之前,结束第一阶段的开发工作。随后,我们会给出项目的新增需求,并调整项目成员,开始第二阶段的开发工作。由于第二阶段是在所有课程考试结束之后,学生有条件在固定地点集中上机,因此第二阶段的工作将尽可能模仿软件公司的开发模式。首先,项目经理必须和组员共同讨论出一份可行的项目开发计划。我们将根据该计划监控项目进展过程,并在重要节点抽查该项目的进展情况。项目计划的重大变化,必须及时更新项目开发计划。其次,在项目进展过程中,每个开发阶段的工作成果都必须经过评审。不评审或者评审不合格,不可以开始下一阶段的工作。最后,每个项目成员必须每天提交工作进展报告,内部会议也要有会议记录。所有这些项目管理相关文档和项目本身的文档都需要在项目结束时一并提交。评定成绩时结果和过程并重,项目管理相关文档是过程的重要体现。

3 考核方法和教学效果分析

为突出实践环节的重要性,我们将项目实践部分的考核比例增加至总成绩的50%,即成绩标准为项目实践成绩(50%)+笔试成绩(30%)+平时成绩(20%)。其中第一阶段的项目实践成绩占20%,第二阶段占30%。在对学生的实践环节考核中,我们更侧重于对学生的实践操作能力、文档编写能力、团队合作和沟通能力的考核。为避免浑水摸鱼,在评定成绩时,根据贡献不同,组中的不同成员会有不同的权重,每个学生的最终成绩是团队成绩和权重的乘积。采用新的考核方法后,极大地调动了学生参与项目实践的热情,取得了良好的学习效果。在随后的毕业设计和程序设计比赛中学生都体现出较强的团队开发能力。

4 结语

软件工程是一门理论和实践并重的课程,只有加强实践环节的训练,理论知识才能得到有效巩固。我们在教学过程中,始终把项目实践放在突出的地位,通过增大项目规模和引入两阶段项目开发,让学生主动认识到软件工程课程的重要作用。实践证明,现阶段软件工程的教学改革工作,有效地提高了学生的学习兴趣,增强了学生使用软件工程方法和技术解决实际问题的能力,培养了学生团队合作精神。下一步我们准备通过“校企合作”,增强项目实践的真实性,使软件工程的项目实践更加合理、完善。

(上海海洋大学信息学院,上海201306)

参考文献:

[1]张剑波,方芳,袁国斌、软件工程专业实践教学体系改革[J]、计算机教育,2013(12):37-41、

[2]王卫红,杨良怀,江领、软件工程优势专业的建设与发展[J]、计算机教育,2013(10):1-4,9、

[3]汤淼、软件工程专业“项目驱动”实验教学模式研究[J]、实验技术与管理,2012(4):267-271、

软件设计模式论文篇8

1、1偏重理论轻开发能力,人才培养模式滞后

经过我们对软件企业人才需求的调研,目前我国软件人才数量不少,但水平偏低,更重要的是结构失衡。具体表现为,企业希望招聘的高校毕业生具有软件开发岗位所必须具备的实践能力,但很多高等院校软件人才培养模式由于教育理念和师资力量本身的问题,偏重于传授知识和技术而轻视了软件开发能力的培养。这种现状导致软件企业从高校招聘的毕业生不能立即进入软件开发岗位,必须经过几个月的职业岗位培训,才能真正胜任开发工作。毕业生到软件开发工作岗位上要经历的适应期和培训期,说明高校培养的软件人才与软件企业的职业岗位存在明显差距,需要高等院校在培养模式、培养计划、课程设置等方面按照软件开发过程和设计开发能力的要求进行改革和完善。

1、2实践条件不能满足人才培养需求,学生动手实践能力有待提高

各个高校的实验条件经过近几年,尤其是2013年的国家和地方政府的投资,实验和实训的条件得到很大提高。校内软件工程的实验环节均能满足教学要求,有条件的高校已经建立了一定的校内实训基地,但实训基地尚摆脱不了之前知识教育体系下的实验模式,所开设的实践项目范围偏窄,模拟课题多,实战课题少,参与建设实训基地的企业热情不高,缺少真实的工作场景。现有的机器数量、配置大部分还是以单台性质的设备和个人计算机为主,满足不了软件及信息技术的发展的要求,特别是缺少真实的开发项目和项目开发指导组,难以营建软件企业的软件产品生产环境,不能满足基于软件产品开发过程对实训课程的需要,学生的动手实践能力有待提高。

1、3教师队伍工程能力偏低,难以支撑卓越工程师培养计划的实施

高校在师资队伍建设方面,多以高学历、高职称的比例来衡量教师队伍水平的高低。经过多年的师资建设,高校中大部分教师都具有博士、硕士学位,他们虽然有较强的学术能力,但是专业实践知识和工程实践经验却相对缺乏,尤其是新教师绝大部分是从学校到学校,情况更不容乐观。另一方面,由于计算机行业的发展,各类新技术层出不穷,尤其是软件开发技术和新的开发工具,老教师的技术能力没有得到及时更新,很难胜任新的软件工程应用开发类课程的教学。这就造成了整个软件工程专业的教师队伍工程能力偏低,与软件工程专业对教师素质的要求有较大差距,很难适应培养软件工程实践型人才的需要。此外,不论学术型还是应用型的高校评价教师的标准都是侧重于教师的理论水平和论文数量,使高校软件工程专业的教师在进入高校工作几年后,原来即使具备有开发能力的也随着新技术的发展而逐渐淘汰,无形中引导着教师队伍建设向学术型方向发展,而忽视了工程实践水平的提高。

2CDIO与软件工程专业

从项目或产品的生命周期可知,工程项目、产品运行的生命周期基本都要经历构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)这样的阶段。工程项目或产品首先要根据需求进行构思,将科学原理转化为工程项目或者产品开发的计划方案;再根据计划方案进行设计,确定实现工程实施或生产产品的工艺流程、操作程序等的设计方案;然后根据设计方案进行项目的实施或者产品的生产实现;最后是完成项目的运行服务或生产产品的销售、售后服务。因此,麻省理工学院和瑞典皇家工学院等4所大学组成跨国研究,以产品运行的生命周期所需要的从业人员必须具备的知识、能力、素质出发,经过4年的探索研究,设计了工程教育模式,创立了CDIO工程教育理念。2011年,CDIO区域性国际会议在北京中苑宾馆隆重召开,教育部部长助理林蕙青指出,未来我国高等工程教育改革发展的战略重点就是“四个更加重视”:一要更加重视高等工程教育服务国家发展战略和经济发展方式转变的需要;二要更加重视与行业企业合作育人、合作办学、合作就业;三要更加重视学生社会责任感、综合素质和工程实践能力培养;四要更加重视提高工程技术人才培养的国际化水平。CDIO工程教育模式有利于解决当前工程教育实践中存在的重理论轻实践、强调个人学术能力而忽视团队协作精神、重视知识学习而轻视开拓创新培养等诸多问题。此外,从国家实施卓越工程师培养的11条通用标准看,每个标准的实现都能够在CDIO工程教育模式中体现,因此在国家大力推进高等工程教育“卓越计划”中融合CDIO的教育理念必将为高质量实施“卓越计划”起到积极的推进作用。在软件工程学科领域,软件工程是应用计算机科学理论和技术以及工程管理原则和方法,根据用户的要求,按照按预算和进度实现软件产品的定义、开发、和维护的工程,是研究用工程化方法构建和维护有效、实用和高质量的软件的学科。软件工程研究的对象是软件系统,涵盖软件科学与工程两个方面。软件科学研究的重点在于发现软件可信性、度量和演化的基本规律,以应对当今软件所面临的复杂性、开放性和演化性等一系列重要挑战,是工程应用的理论层面;而软件工程的重点在于综合应用包括科学方法在内的各种软件设计方法,运用各种科学知识,深刻理解设计合格软件产品所涉及的多方面因素,去构建可靠、满足需求的软件产品。IEEE最新的软件工程知识体系(SWEBOK)将软件工程知识体系分解成10个知识域,即软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量,这些知识领域贯穿于软件产品生命周期的全过程。因此,在软件工程专业“卓越计划”中,以软件产品的方案设计、开发、部署、运行的软件生命周期为主线,将CDIO工程教育融合到卓越软件工程师的培养中是必要且可行的,有利于培养出软件设计能力、国际交流能力、管理与沟通能力和职业发展能力强的,具有软件工程背景的复合型、应用型高层次软件工程技术人才,推动软件产业不断开拓创新。

3融合CDIO理念的软件工程专业卓越工程师的培养

3、1引入CDIO工程教育模型的综合培养理念设计软件工程应用型创新人才培养模式

融合CDIO工程教育理念进行卓越软件工程师培养,对传统的教育模式进行改革,将软件工程教育与项目、产品的构思、设计、实现和运作生命周期中所需要的知识、能力、素质紧密结合,以项目或软件产品的生命周期为载体,引入校企合作机制,采用3+0、5+0、5的培养模式。前3年与传统的软件工程教育类似,完成软件工程专业所需要的基本知识、基本技能和基本素质的培养。在后面的1年分为两个阶段,第一个阶段我们称为项目实训,以校外实习参观,校内讲座、实训的教学方式,用已经开发完成的项目或软件产品为例,模拟企业运作进行教学,熟悉项目工程、产品生命周期的各个环节,将前3年学习的知识融合,在实训中掌握开发工具,以学生以主动的、实践的方式接受软件工程设计能力、开发能力和素质教育的培养。第二个阶段,学生进入合作企业或者就业企业,参与到企业真正的项目开发中,以企业的课题完成毕业设计,在设计中锻炼职业能力。

3、2构建适合CDIO工程教育模型的理论教学体系

坚实的专业基础是学生今后成为优秀工程技术人员和管理者的保证,也是CDIO培养模式的基石。以软件产品的构思、设计、实施、运行为目标倒推成为卓越软件工程师所需要的知识、能力、素质,以培养知识、能力、素质去组织理论教学体系。包括软件从业人员所需要具备的良好的数学建模能力课程:微积分、线性代数、概率论和数理统计等;运用计算机进行软件开发所需的计算数学课程:离散数学、数据结构、算法分析与设计等;进行软件开发所需的软硬件系统基础课程:操作系统、软件工程导论、数据库原理、信息系统基础、计算机系统结构、计算机网络和编译原理等;进行软件设计所需的软件开发类课程:软件需求分析、软件构架、软件设计、软件测试、软件维护;软件工程工具等;软件从业人员需要具备的良好的身体素质和心理素质的人文素质系列课程:形势与政策、马克思主义基本原理、思想/邓小平理论和“三个代表”重要思想概论、法律法规、大学生心理健康教育、体育、团队激励与沟通及全校性选修课程等;软件从业人员需要具备的掌握发达国家的技术和了解国际IT文化的外语应用能力课程:基础英语、英语听说、日语基础和专业英语。

3、3构建适合CDIO工程教育模型的一体化、多层次的实践教学体系

CDIO工程教育理念是“做中学”原则和“基于项目的教育和学习”的集中体现,软件工程专业应用型创新人才的培养,实践能力的提高是设计软件产品能够实施和运行的关键。以产品的运行周期为主线的一体化、多层次的实践教学体系是以验证性实验为基础,实现第一层次的基本实践能力培养;以课程设计、实践课程为贯穿专业课程模块的线索,实现第二层次与第三层次的个人能力及团队能力培养;以校内外实践基地的实训和毕业设计为载体,实现第四层次的构思(C)、设计(D)、实施(I)和运行(O)综合能力培养。以此形成集实验、课程设计、实践课程、实训和毕业设计一体化、多层次的实践教学体系。基于CDIO的“做中学”原则的人才培养模式,采取向企业派驻科技特派员和聘任企业技术人员为兼职教师的“双向聘任制”模式,使软件工程专业与软件企业更为紧密地结合。企业技术人员和校内教师联合建立项目开发小组,让学生通过实际项目研发,体验软件产品生命周期各个阶段的从业人员角色。在项目研发中进行需求分析、软件体系结构设计、数据库设计、接口设计和算法设计,编码实现,测试、投入运作等一系列工程实践。以此为学生职业能力训练和教师项目开发锻炼提供一个真实的职业环境,有助于学生的职业素质、职业态度和习惯的形成。“基于项目的教育和学习”采用“双向聘任制”模式驱动,专业教师与实践基地软件技术人员间角色转换;科研、技术研发项目与教学课题间的相互渗透。学校将工程实践列入教师教学质量考核的指标,甚至职称晋升的指标,引导教师加强自身工程能力的提高,这将逐步解决困扰软件工程专业发展的教师队伍、实践、实训的难题。

3、4按照知识、能力、素质,规范人才培养质量标准,保障卓越工程师计划的顺利实施

培养质量标准,是规定某一个专业的专业培养目标、毕业要求、实现途径、评价方式的教学指导性文件。它是联系专业培养目标与教学活动的中间桥梁,可以确保不同的教师有效、连贯而目标一致地开展教学工作,对教师的教学具有直接的指导作用。在“卓越工计划”中引入先进的CDIO教育理念,将“卓越工计划”通用标准与软件工程行业标准、企业标准、职业资格标准结合制定人才培养质量标准,以标准规范人才培养是保障卓越工程师计划顺序实施的有效保障。

4结语