1.团队软件项目编码实现与规范:
1.包名最好都是小写。
2.类或者接口:如果是一个单词,那么首字母大写(如:Book);如果是多个单词,则每个单词的首字母大写(如:BookCar)。
3.方法或变量:如果是一个单词,那么首字母小写(如:book);如果是多个单词,则从第二个单词开始,每个单词首字母大写(如BookName)。
以上是我们团队商议出的部分编码规范,其他的包括HTML编码规范都已上传到Github《软件编码规范说明书》中。
3.成员具体分工及场景照片:
![](https://img2018.cnblogs.com/blog/1661026/201906/1661026-20190611191353120-770599403.jpg)
整个任务分为两个部分:
第一部分:对系统设计和详细设计进行改进,整理。
- 1.杨露露:基于之前已经完成的实验,对团队项目系统设计说明书和详细设计说明进行修改完善,并编写《快活帮团队项目软件设计方案》。占整个文档任务的工作量比例:25%
- 2.张琳:陈述软件设计准则的体现,并结合燃尽图总结本次实验执行过程,最后编写博文。占整个需求文档任务的工作量比例:24%
第二部分:团队软件项目编码实现。
- 1.陈润菊:根据小组内成员共同商议制定出的团队项目编码规范,编写文档《软件编码规范说明书》。占整个需求文档任务的工作量比例:25%
- 2.沙沙:代码的分析(详细分析本团队项目要在代码上做出的改变,具体到类、方法)。占整个需求文档任务的工作量比例:26%
搭建并配置项目集成开发环境这一任务由团队成员共同完成。
4.本实验执行过程(结合燃尽图):
![](https://img2018.cnblogs.com/blog/1661026/201906/1661026-20190610150338921-1887430008.png)
1.我们团队燃尽图是以卡片数为统计方式的(根据需求分析结果以及项目设计要求,将整个项目实施过程分为32张卡片)。
2.Leangoo看板周期目前设置为2019-05-26到2019-06-12。
3.2019-05-26到2019-05-28期间,团队成员均在有序推进工作(原因是:任务量少并且任务难度相对于整个项目来讲比较容易实现)。
4.从2019-05-29开始到目前为止,进程推进缓慢(原因是:虽然对需求的确定以及对软件概要设计、详细设计等的改进和完善,使得团队成员更加理解和掌握了团队项目实现过程中的技术以及思想,但与此同时,任务难度增加,在预估进程的完成时间时不够准确)。
5.目前已经初步设计了编码实现规范与原则,项目其它进程也正在努力跟进中。
5.软件设计准则的体现:
1.抽象:我们团队的软件项目在实现过程中用到了MVC三层架构,它的核心就是抽象的分层。而且我们将项目功能分为不同模块,每个模块负责实现自己的功能,体现了单一原则。
2.强内聚/弱耦合/模块化:将整个项目分为管理员、用户、图书管理等模块,每个大的模块在具体实现过程中又被分为多个小模块,尽量使得各模块之间以及模块内部实现高内聚低耦合。
3.信息隐藏和封装:在具体的编码实现过程中,利用接口或私有方法等实现信息的隐藏和封装。
4.界面和实现的分离:首先我们借鉴相似项目的界面框架,将大致界面由相应团队成员实现,然后负责具体代码实现的成员针对界面中的具体内容进行具体实现。
5.错误情况处理:我们针对可能出现错误或者容易出现错误的情况进行不断地测试,同时,为了尽量减少系统的漏洞,对接收的数据进行适当的处理,比如过滤掉一些特殊的字符,如单撇、双撇、空格等等,比较典型的就是在用户注册时就明确指出字符长度或禁止一些特殊字符。
6.运行环境假设:(1)Windows7及以上所有Windows系统,且本系统不需要特定的硬件或硬件接口进行支撑;(2)IE 4.0或者更高版本的网络支持;(3)Windows 7 Server 或更高版本,以及Tomcat6.0 或后续版本;(4)Windows 7 Server 或更高版本,以及Mysql5.0或更高版本。
7.设计方案的灵活性和数据处理能力:我们团队的软件设计方案是由团队所有成员共同商议,并针对项目的具体实现来进行合理设计的。设计方案中包括以下几点:不要将代码写死(消除代码中的常数);抛出异常(由操作的调用者来处理异常);尽量使用并创建可复用的代码;更好地实现高内聚和低耦合(提高替换能力)。
8.设计中采用的启发式规则:采用最重要也是最基础的是“改善软件结构,提高模块独立性”,同时还有“模块功能完善化”,“设计规模适中的模块”,“降低模块接口的复杂程度”等。
6.实验心得总结:
软件项目的实现除了需要精确的需求分析、概要设计和详细设计等,更加需要编码阶段中的编码规范、环境配置以及编码设计准则的实现。通过本次实验,我们团队对“项目编码”有了更进一步的了解,知道编码不是单纯的编写代码的过程,而编写代码也绝对不是“只要实现功能就好了”,都需要实现一定的软件设计准则。所以,我们团队将在今后的软件设计过程中,吸取经验教训、总结以往经验知识、提高团队的整体开发能力,在发挥团队精神的同时,进行“规范”的软件设计,完善团队项目。