实验十一 团队作业7:团队项目设计完善&编码
时间:2019-06-11
本文章向大家介绍实验十一 团队作业7:团队项目设计完善&编码,主要包括实验十一 团队作业7:团队项目设计完善&编码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
实验十一 团队作业7:团队项目设计完善&编码
项目 | 内容 |
这个作业属于哪个课程 | 任课教师博客主页链接 |
这个作业的要求在哪里 | 实验十一 团队作业7:团队项目设计完善&编码 |
团队名称 | Coderxiaoban团队 |
作业学习目标 | 掌握软件编码实现的工程要求。 |
任务1:团队软件项目设计完善:
GitHub地址链接 | 更新《软件系统设计说明书》 |
1.抽象
所谓抽象则是提取共性,忽略细部特征,缩小关注点。面对对象的设计,同时进行数据抽象和控制抽象,从而实现使数据和控制融为一体,构成一个完整的整体。
2.强内聚/弱耦合/模块化
耦合、内聚的评估标准是强度,耦合越弱越好,内聚越强越好; 高内聚、低耦合讲的是程序单位协作的问题, 可以这样理解,一个企业的管理, 最理想的情况就是各个部门各司其职,井然有序,互不干涉, 但是需要沟通交流的时候呢, 各个部门都可以找到接口人专门负责部门沟通以及对外沟通。所以强内聚和弱耦合是相辅相成的,一个良好的设计是由若干个强内聚模块以弱耦合的方式组装起来的。模块化就是将软件系统划分成可独立命名且可独立访问的模块,每个模块完成一个子功能,就把这些模块集成起来构成一个整体。
3. 信息隐藏和封装
信息隐藏是目的,而封装则是藉以达到这个目的的技术。封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。在设计时,可能会对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。应该将其需要的属性保护起来,防止乱用。保护的方式:信息隐藏;隐藏一个类的实现细节;使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;便于修改,增强代码的可维护性
4.界面和实现的分离
在团队项目设计时,将界面与实现分离开来,对外只提供接口,隐藏具体实现。界面与实现的分类,保证了实现的独立变化,降低了模块间的耦合。
5.错误情况处理
一个的程序的实现都应该能够正确处理各种出错情况,并尽可能从错误中恢复。错误情况处理是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,一旦产生异常而没有指出如何处理时,程序就会自动终止整个程序运行。所以,在设计过程中设计者应该及时并且正确的处理各种错误情况,不应一再拖拉。
6.程序模块对于运行环境、关联模板、输入输出参数有什么假设?
(1)在试运行开始前搭建好软件环境,硬件环境,网络环境,调通线路;
(2)检查软件,硬件,网络,线路等各个环节是否有问题。
7.设计方案对于应对变化的灵活性
在团队的设计方案中,应该做到设计方案对于应对各种变化的灵活性,就是可以允许代码修改平稳地发生,而不会波及到很多其他的模块,以至于整个模块发生变化。
8.设计方案的数据处理能力
在团队的设计方案中,应该做到设计方案对各种数据的处理能力加强,以免以后出现一个小小的失误,就会对项目的实现会出现各种各样的错误,以至于花费大量的时间去修改。
9.设计方案的软件重用情况
在团队的设计方案中,应该做到设计方案的软件重用情况,也就是重复使用的意思。
10.设计中采用了哪些启发式规则?
在设计中,采用了如下启发式原则:
(1)改进软件结构提高模块独立性;
(2)模块规模应该居中;
(3)深度,宽度,扇出和善入都应适当;
(4)模块的作用域应该在控制域之内;
(5)力争降低模块接口的复杂程度;
(6)设计单入口单出口的模块;
(7)模块功能应该可以预测
任务2:团队软件项目编码实现:
数据库中创建的表
连接数据库
任务3:在团队博客发布博文,结合燃尽图陈述本实验执行过程,上传团队实施本次作业的场景照片,描述团队成员的具体分工、占整个作业任务的工作量比例及完成各自任务的实际时间,每位成员结合任务分工总结本次实验心得,最后由项目组长进行总结陈述。
团队风采:
燃尽图:
本次实验我们相比于计划的工作时间,前期较早地完成了每天的项目任务,后期进度就有点稍慢,但由于前期工作量的积累,最终较早完成了项目任务。牛顿说过要站在巨人的肩膀上,我们在利用了别人的代码的基础上再进行完善和修改,最终一步步做出了属于我们自己的成果。
成员分工:
团队成员 | 具体分工 | 占整个实验任务的工作量比例 | 完成各自任务的实际时间具体分工 |
周海瑞 | 设计完善、搭建并配置项目集成开发环境、编写软件代码 | 28% | 10h |
王立新 | 设计完善、编写软件代码、测试、撰写博文、编写软件代码 | 23% | 9h |
杨爱婷 | 完善《软件设计说明书》、编写软件代码、更新燃尽图、整理发布博文 | 30% | 10h |
党鹏勃 | 完善《软件设计说明书》、编写软件代码、撰写博文 | 20% | 9h |
结合任务分工总结本次实验心得:
王立新:本次实验完成了web平台底层框架的搭建作为可二次开发框架。过程中,遇到了一系列配置过程中的错误,集成的过程比较考研耐心和细心程度,好在Spring框架比较主流,网上有大量的资料可查,最终还是完成了任务。
周海瑞:本次实验,经过我们团队集体讨论,大致确定了编码中几处常见的的规范,如命名规则,第一个花括号的位置,数据库表字段命名规则等。最后参考阿里巴巴Java开发手册完成了本次编码规范说明。
杨爱婷:本次实验将项目进度推进了一大步,经过团队讨论将代码进行了规范,在团队的协作中,各位成员各司其职,在查阅一些资料并且参考后,解决了一些问题,将本次实验任务进行了圆满的完成。
党鹏勃:本次实验在组长的带领下,分工明确,各司其职。我们的选题是超市积分管理,在编码和测试的过程中也发现了很多有趣的问题,让我更深地认识到软件工程这门学科的实用性和趣味性。也再一次学习了编码规范,受益良多。
项目组长进行总结陈述:
本次实验,与以往实验不同的是,从本次实验开始,我们进行了功能的编码实现和数据库的设计,这是实打实的,也是比较有难度的。库的设计需要综合系统的实际需求,来确定实际需要的几张表,每张表需要那些字段等,这些看似容易的工作,实际做起来往往是有难度的。而框架的搭建牵扯到各种各样的配置文件,且对Spring框架有个基本的了解,是需要慢工出细活的。经过本次实验,总体来讲,难度较大,任务量繁重,但是风雨过后是彩虹,正是通过这样的难度,复杂性使我们团队对于java环境下的开发步骤有了更加深入的理解,通过撰写软件编码规范与软件设计方案也对于本系统有了更精细化的需求分析。
原文地址:https://www.cnblogs.com/CoderXiaoban/p/10982982.html
- 新年伊始,微软再遭叙利亚电子军挑衅
- 任天堂3DS游戏机烧录卡蓝屏事件
- android调用dialog.hide()引起的输入事件派发错误问题追踪
- 互联网世界的毒瘤——僵尸网络
- android 游戏移植 (一) (文末有福利) | SDL 西游释厄传调试
- 自制分布式漏洞扫描工具
- [细节剖析]X Windows中一个22年的漏洞
- android 游戏移植 (二) | SDL2.0适配 西游释厄传
- Android调用系统相册和拍照的Demo
- 黑客是如何通过RDP远程桌面服务进行攻击的
- SDL的几个宽高概念讲解(文中有福利)
- [安全科普]你必须了解的session的本质
- Android中如何动态的实现设置全屏和退出全屏
- Android 双进程Service常驻后台,无惧“一键清理”
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【MySQL性能调优】-关于索引的那些事儿(一)
- 【索引潜规则】-覆盖索引、ICP、MRR详解
- 微服务[学成在线] day12:基于 Nuxt.js 构建搜索前端工程
- 别找了,你要的Redis命令都在这了
- 微服务[学成在线] day13:使用FFmpeg进行格式转换以及m3u8文件生成、文件分块上传接口实现
- GTID,你了解多少?
- Spring Boot 拓展SpringMVC
- Spring Boot 日志配置
- R语言进阶之图形参数
- 第04期:Prometheus 数据采集(三)
- 技术分享 | Online DDL 工具 gh-ost
- Spring Boot 整合Mybatis
- R语言进阶之时间序列分析
- Spring Boot 实现员工信息管理demo
- 如何把 Flutter 云端一体化做到极致?