山东大学软件工程硕士专业学位论文撰写指南第1章论文评审质量要求1.1总体要求(1)文献综述应对选题所涉及的工程技术问题或研究课题的国内外状况有清晰的描述与分析。
(2)综合运用软件基础理论、科学方法、专业知识和技术手段对所解决的工程实际问题进行分析研究,并能在某方面提出独立见解。
(3)论文工作应有一定的技术难度或理论深度。
(4)论文工作应在导师指导下独立完成,论文实际工作量(含实习)一般不少于一年,论文一般为2-3万字。
(5)对于侧重工程软件或应用软件为主要内容的论文,要求需求分析合理,总体设计正确,程序编制及文档规范,并通过测试或可进行现场演示;(6)对侧重于软件工程项目管理的论文,应有明确的工程应用背景和一定经济或社会效益,数据可靠、充分,理论建模和分析方法科学正确。
(7)对于侧重于软件技术研究或技术改造类(包括应用基础研究、应用研究、预先研究、实验研究、系统研究等)项目论文,综合应用软件基础理论与专业知识,分析过程正确,实验方法科学,实验结果可信,论文成果具有先进性和实用性;(8)论文写作要求概念清晰,结构合理,层次分明,文理通顺,符合有关标准规范。
(9)论文中应包括企业应用证明、项目鉴定报告、获奖成果证书、设计图纸、论文发表等附录。
1.2工程开发类论文要求(1) 必须是一个完整的项目或一个完整项目的一部分。
(2) 可以是系统分析、设计、编码、测试等完整过程,也可以是其中的某几个环节,也可以是对整个项目或部分项目部分过程的管理。
(3) 所有的文档必须按软件工程的规范进行编写,应采用面向对象分析与设计与实现、UML建模工具和新的文档编制工具。
(4) 论文需详细地说明项目的应用背景和意义、需要解决的问题,问题的难度,解决问题所采取的关键技术和重要的算法,模块设计的思路,项目推广应用前景和进一步研究开发的展望;项目管理的理念和方法,如何应用这些理论和方法解决实际项目实施过程中的问题,解决问题的效果如何,项目管理的经验或教训的总结,项目实施的结果等。
(5)论文的编写一般应围绕一个项目来写。
(6)具体评审参考标准软件工程硕士专业学位论文质量审评表(工程开发类论文)1.3工程技术研究类论文要求(1) 需有一定的技术创新性,一般要在由计算机学位委员会认可的本学科技术类期刊上发表论文一篇。
(2) 论文需详细地说明项目的应用背景和意义、需要解决的问题,研究的方法,解题的思路,技术创新点,新的模型或算法,要完成研究的原型系统。
(3) 项目的推广应用价值和进一步研究的展望。
(4)具体评审参考标准软件工程硕士专业学位论文质量审评表(技术研究论文类)第2章论文内容组织结构软件工程硕士的论文的主要内容结构应按照如下方式进行组织,作者也可以根据自己研究设计开发系统的实际情况做一些微调。
具体如下:2.1 第1章绪论1.1 系统开发背景1.2国内外研究技术开发状况1.3解决的主要问题1.4本文的主要工作1.5论文的组织结构2.2 第2章需求分析2.1系统概述2.2系统目标和解决的问题2.3系统需求获取模式2.4系统需求问题描述2.4.1系统功能性需求2.4.2系统非功能性需求2.3 第3章系统架构设计3.1 系统设计目标和原则3.2 系统技术架构设计(网络架构、安全架构、系统逻辑、部署架构、实现架构、数据架构等几个方面,作者可以进行选择性的撰写。
)3.3 系统功能架构2.4 第4章系统详细设计4.1系统建模4.1.1系统的静态结构图4.1.2系统的动态结构图4.2系统数据库设计2.5 第5章系统实现与测试5.1系统总体实现5.2-5.n具体关键实现5.n+1系统测试,5.2.1系统测试的环境与方案5.2.2系统测试数据与过程5.2.4系统测试结果与分析2.6 第6章结论第3章论文主要内容写作说明3.1绪论绪论简要说明系统设计开发的背景、从国内外相关领域以及用户角度介绍有关的开发技术分析,采用技术的原因,需要多查询一下资料,可以是专业知识知名网站,以及系统解决的主要问题和论文的重点工作等。
每章节抽出几个核心的工作,一般通俗的有关技术知识,在绪论中不必赘述。
为了反映出作者确已掌握了所从事软件工程领域的坚实的基础理论和宽广的专业知识,具有开阔的科学视野,对研究开发方案作了充分论证设计,绪论应单独成章,列为第一章,并用足够的文字叙述,一般为10000字左右。
3.2论文的正文论文的正文主要包括需求分析、系统架构设计、系统详细设计以及系统的实现与测试等4个部分,该部分是论文核心部分,占主要篇幅。
正文必须实事求是,客观真切,准确完备,合乎逻辑,层次分明,简便可读。
3.2.1需求分析在系统需求分析章节中,主要是为作者设计开发的一个新系统定义业务需求,主要回答的是“系统开发设计的用户需要什么?通过作者开发设计的系统用户得到什么?”在系统概述中主要利用图表等概括性的描述系统的业务模型及有关业务流程现状和总体要求;需求获取模式主要介绍需求获取的过程和相关的需求获取采用的技术,如果需求分析不占主要篇幅,没有什么特色也可以不写,或2.3和2.4节合并;在需求问题描述中,重点要有较大的篇幅,主要从功能需求(functional requirement)和非功能性需求(nonfunctional requirement)两部分进行描述,其中功能需求主要描述作者开发设计的系统提供的活动和服务,重点是通过需求用例建模,其软件制品表现为系统用例图(use-case diagram)和系统用例描述(use-case narrative)。
论文在该部分描述中,作者可根据自己开发设计系统功能包的大小,对系统的核心用例和用例描述进行重点的描述,但避免全部在论文中罗列出来,作者可以用作为论文附件的形式进行附录,在描述功能性需求时作者需要体现论文写作设计的思想,不是把作者实际项目中所设计的全部用例以及用例描述都放在该部分内容章节里面,写成清单式报告等形式。
非功能性需求主要描述作者开发设计的一个满意系统的其他特征、特点和约束条件。
非功能性需求的内容一般用非量化的指标来表示。
作者在论文写作中其表现形式可以为图表的形式来展现。
如系统要求的可靠性指标包括故障率、可恢复性和可维护性等,可以以补充性规格描述等方式描述,这部分也可以包含对开发环境的描述等。
注:该部分内容应该设计需求分析的主要分析文档的描述:用例、业务模型、系统顺序图、操作规约、补充规格说明、数据字典,有些需求分析文档也可以在设计描述。
3.2.2系统架构设计系统架构(systems architecture)设计主要是为作者设计开发的系统提供一个统一的总体框架,主要关注结构、模块性、基本构件和主要控制流等方面,作者也要论述解释架构视图为何如此,在架构中作者要从某个角度观察系统的窗口,只强调关键信息或想法,忽略其他。
在这一章节中作者主要介绍设计架构要达到的目标和遵循的原则以及技术架构内容。
主要包括功能视图、逻辑视图、进程视图、部署视图、数据视图、安全视图、实现视图等主要部分内容。
作者在写技术架构该部分内容过程中,如果没有特色的内容可以适当进行一些论述,要对特色的重点部分进行论述,作者在写作中要对所设计得到的每个架构图表之前都要进行简要的论述,阐明设计该图表的方法,体现作者设计的思想,同时应体现作者完成该部分内容所应完成的工作量。
各类视图主要说明如下:逻辑视图:最重要的层、子系统、包、框架、类、接口等概念性组织。
概括了主要软件元素的功能;展示了描述系统关键方面的重要用例场景;UP设计模型的视图,是使用UML包、类和交互图的可视化。
进程视图:进程和线程。
描述了他们的职责、协作以及分配给他们的逻辑元素;UP设计模型的视图,是使用UML类图和交互图的可视化,其中使用了UML 进程和线程表示法。
部署视图:进程和构件在处理节点上的物理部署以及节点之间的网络配置;UP部署模型的视图,使用UML部署的可视化。
数据视图:数据流、持久性数据模式、对象与持久性数据之间的模式映射,对象到数据库、存储过程以及触发器的映射机制;UP数据模型的部分视图,使用UML类图的可视化用于描述数据模型;用UML活动图表示数据流。
安全视图:概述了安全模式和架构中实施安全的控制点;可以作为UP部署模型的视图,使用UML部署图的可视化,突出了关键安全控制点和相关文件。
实现视图:实现模型;包含源代码、可执行文件等;实现模型包括Web页面、DLL、可执行文件、源代码等;UP实现模型的视图,用文字或者UML包图和构件图表示。
该部分内容有关知识请参阅《Applying UML and Patterns》(Second Edition)第五部分,细化迭代3,第32章,架构分析和SAD的介绍。
对于框架(如持久性框架、交互框架等)也可以在这里描述。
注:在描述架构设计思想时体现设计模式,描述时还要注意的是不要用通用的结构,描述一定有具体的结构图,最好有特色,有思想。
3.2.3系统详细设计在该章节中作者主要根据UML模型图中的静态结构图(如类图、对象图),类之间的关系、交互图(顺序图、协作图)和状态图(状态图、活动图)来对系统进行详细的描述。
作为论文,作者不需要将系统所有上述内容进行细化描述,和在论文中进行罗列,要重点描述设计的思想、设计方法、设计模式和设计理论,描述有特色的设计、有一定难度的设计和有一定复杂度的设计,其他可以作为论文附件进行附录。
同时作者要对系统数据库进行有关的设计,包括表的设计,表关系的设计、OR转换,持久性的问题,存储问题。
这部分设计主要描述设计中的问题,设计的方法,包括设计模式,以及设计的结果,描述为什么会得到这样的设计,以及这样设计的好处。
注意:描述的方法,对于同样一个业务流程或操作的问题,在需求分析要用用例描述来描述,在设计中就要用顺序图或活动图描述,在实现时就要用算法、流程图或者伪代码描述等,但同一业务或操作最好不要在各个部分描述。
3.2.4系统实现与测试作者在写该部分内容时如果从具体功能实现的角度描述,论文可能罗列太多,缺乏思想性。
作者应重点从如下角度去挖掘该部分内容,首先从系统实现总体的角度用一节对系统的实现给出一个总体性的论述,并有适当的主要界面和2-4个主要的图表,可以3-5页;其次作者可以抽出关键的,复杂的功能算法实现,数据结构、数学模型、界面设计、交互设计、并发控制、性能设计、通讯协议,接口等分别进行一节的描述,可以以流程图和伪代码等形式进行描述,一定要避免大篇幅的代码附写在该部分章节内容中。
在系统测试该部分内容中,如果作者的论文测试没有特色就增加一节简单的描述作为软件开发过程的一个步骤,也可以不写。
如果作者的论文主要从测试角度来撰写,可以按照软件工程的角度来进行撰写,把软件测试按照一个项目进行组织管理,从测试背景、国内外测试相关技术、测试需求、测试方案和用例,测试的实现(测试过程和测试数据)、测试结果分析及建议等几个部分进行论文的撰写。