软件项目实训及课程设计指导——制定待开发项目中各种形式文档的规范
1、制定对课程设计项目开发过程中的规范性要求
(1)从"形式"到"内容"两个方面控制和要求开发规范
"没有规矩,无以成方圆"——制定软件开发规范、并遵守软件开发中各种形式的规范,其主要的目的是为了能够细化开发过程,便于对开发流程中的各个项目进行度量、改进和控制;同时也规范化不同开发人员的表达方式,减少不必要的信息沟通环节,提高项目组内人员之间的交流沟通的效率,从而总体提高项目开发的效率和保证待开发项目的品质。
当然,对于本次的课程设计在开发规范方面主要是要从"形式"到"内容"两个方面控制和要求开发的规范,其目标是希望培养学生成为职业程序开发人员而不是"土八路"式的业余爱好者。
![b86177b035365a7dbb07ef6e0295bc32.png](https://i-blog.csdnimg.cn/blog_migrate/442050168cf885dbc3b979ee821d68af.jpeg)
(2)开发流程方面的具体规范要求
1) 按照软件工程所倡导的"五个开发环节"——需求、设计、实现、测试和维护完成本次课程设计的项目系统的开发实现。
2) 提供需求、设计和测试等环节中所产生出的各个方面和各种形式的文档。
由于软件开发更多的是脑力劳动,如何能够将无形的脑力劳动成果显示化以便能够更好地检查和共享?很简单的方法是记录——文档化,因为将无形的脑力劳动显示化目前比较好的方式是"文档化"——这也是作者写课程设计教学指导书的目的之一。
因此,在课程设计中为了能够让指导教师了解各个项目组具体的项目进度和开展的状况,必须要求每个项目组中的成员严格按照指导教师的要求提交有关的开发文档。
![b53acae6d309e100c452a9f9e05cdf61.png](https://i-blog.csdnimg.cn/blog_migrate/49d77ab77568443e755da08b5f0c7aa3.jpeg)
(3)提交的文档形式和内容等方面的规范要求
从项目需求阶段就应该提交项目的"需求说明书"、到系统设计方案,详细设计报告,测试规程,以及各种评审报告等都应该有相应的文档记录。各种形式的开发文档格式标准可以参考GB8567-88中对应的标准格式,下图为作者在百度中以"GB8567-88文档"作为关键词搜索的结果局部截图,指导教师可以提前下载或者要求学生自己下载这些文档模板文件作为本次课程设计的示范文档以增强学生遵守标准的开发意识。
![b57190784eee502d1610832f6f53209d.png](https://i-blog.csdnimg.cn/blog_migrate/8de58ecb53ee80d9d439a89130db2e63.jpeg)
在软件工程国标GB8567-88文档模板中主要包括:《文件给制实施规定的实例》、《可行性研究报告》、《软件需求说明书》、《数据要求说明书》、《概要设计说明书》、《数据库设计说明书》、《详细设计说明书》、《模块开发卷宗》、《项目开发计划》、《开发进度月报》、《项目开发总结报告》、《测试分析报告》、《测试计划》、《操作手册》和《用户手册》等文档的格式和内容的编写要求。
![fbd297abeb05154a263662abd7d05d7b.png](https://i-blog.csdnimg.cn/blog_migrate/22102eba6486b0720c1a78cce68056c0.jpeg)
(4)项目开发流程方面的基本规范
软件项目开发的规范不应该仅仅是要求开发人员提供各种各样的"文档",而更重要的是保证开发流程方面的规范化——因为过程决定结果的质量、细节决定成败。软件工程中所倡导的软件项目的开发过程主要有系统调研、需求分析、概要设计、详细设计、编码实现、审查和测试、实施与维护等环节。因此,课程设计教学中的项目开发过程也应该要按照这样的标准开发流程进行实施。
![f407d32f9bd4c6cae15dc84ff15ae412.png](https://i-blog.csdnimg.cn/blog_migrate/c35b9df3536fb1d5ff0380027cdbbdd9.jpeg)
当然,对开发过程中所涉及到的各种技术应用的深度要求也应该要考虑到不同学校和不同层次学生的差异而应该有所调整,但基本的开发流程方面的规范是应该要让学生亲自体验和实践的。此外,课程设计的指导教师也应该要引导学生思考与软件开发流程有关的各个方面的问题——例如,不同开发阶段应该完成什么样的阶段结果、产生出什么样的制品才算本阶段的结束?对这些里程碑式的制品又有什么样的要求?
(5)项目的功能实现方面的编码规范
良好的编码规范能够改善软件系统代码的可读性和可维护性,在课程设计中的每个项目组是由多位同学构成的,不同的学生在编码风格和命名规则上是不会相同的。因此,有必要规范项目功能实现方面的编码风格和规范——也就是要规范功能实现代码中的各个符号的命名、风格和形式等方面的内容,以提高项目中的各个模块功能实现代码的可读性。
当然,编码规范应该要尽可能遵守Sun公司在Java编程中所倡导的各种规范要求,并在Eclipse开发工具中使用Checkstyle插件来辅助开发人员自动检查所编写的程序代码是否满足某种编码规范——它是依照Sun公司的Java编码规范来检查项目中的各个代码的规范性。
![4133746ddedadb38c6e39cb8a9de1fa6.png](https://i-blog.csdnimg.cn/blog_migrate/38a675f1b8616376da3e0854e3a0a022.jpeg)
2、课程设计项目文档具体要求的内容细节
(1)对需求文档内容细节的要求
每个项目组根据分配给本组项目的具体任务目标,扮演成应用系统的使用者用户的角色罗列出所必须的功能性要求和非功能性要求,并整理成一份项目的用户需求文档,在该用户需求文档中至少应该包含有:
1) 项目系统的主要功能要求的说明;
2) 项目系统的性能要求指标;
3) 项目系统的运行环境要求等方面的内容。
(2)对设计文档(概要设计和详细设计)内容细节的要求
1) 体现本项目的系统架构设计结果的架构包图、项目中主要功能组件的组件图和类图(当然也包括实体/关系图)、部署图等UML设计图。对这些UML设计图可以根据学生自己的熟悉情况采用相应的支持UML的Case工具(如Rose、PowerDesign等)画出,最后粘贴到Word文档中或者以*.jpeg图片文件的形式保存、并留待以后提交给指导教师审查。
2) 项目的总体架构设计结果(当然,在文档中应该要解释为什么要采用该种架构设计、以及这样设计结果的优缺点)、主要的功能模块设计(一般只需要列出核心功能模块)并加以说明。
(3)对测试(单元测试和集成测试)文档内容细节的要求
1) 应该提供本项目系统从控制层、业务层和持久层中的各个组件类的单元测试结果文档——每个组件类的单元测试由各个功能模块的编码人员自行完成。
2) 应该提供本系统在项目开发后期总装配后的集成测试(包括功能和性能两方面测试)结果的文档——这应该由项目组内界面开发及集成测试人员完成这项工作。
![e5b66b1327859f734f8d8c2f867ff914.png](https://i-blog.csdnimg.cn/blog_migrate/1d72240bc06d76a5d860f1b1a04d66d6.jpeg)
(4)对Java平台中的各种编码规范的具体应用的要求
各个模块的编码人员在具体完成各个类的代码编程实现时,应该要遵守Sun公司在Java技术平台中所倡导的编码规范(如包名、类名、方法名的正确命名要求),该编码规范由指导教师在课程设计开始之前统一提出并要求学生严格遵守。作者在本章的1.2.2小节中也做了比较详细的介绍。