《你说对就队》第七次作业:团队项目设计完善&编码
时间:2019-06-12
本文章向大家介绍《你说对就队》第七次作业:团队项目设计完善&编码,主要包括《你说对就队》第七次作业:团队项目设计完善&编码使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
《你说对就队》第七次作业:团队项目设计完善&编码
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 【教师博客主页链接】 |
这个作业的要求在哪里 | 【作业链接地址】 |
团队名称 | 《你说对就队》 |
作业学习目标 | 掌握软件编码实现的工程要求 |
一.团队项目github仓库地址链接
二.Github仓库上传《软件设计方案说明书》
三.按任务1要求总结项目技术设计方案如何体现软件设计准则
抽象
我们把业务需求抽象成数据模型、模块、服务和系统,面向对象开发时我们抽象出类和对象,面向过程开发时我们抽象出方法和函数,最终我们还是要把我们抽象出来的架构、模型等,落地到真正的代码层面,那就还需要逻辑思维能力、系统分析能力等。
强内聚/弱耦合/模块化
它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。分解系统为一组具有高内聚和松耦合的模块是模块化的属性。我们采用职责驱动设计,设计中尽力做到“低耦合、高内聚”的一个非常重要的前提是,我们的软件是在不断变化的使用接口而不是继承。 高内聚是另一个普遍用来评判软件设计质量的标准。内聚,更为专业的说法叫功能内聚,是对软件系统中元素职责相关性和集中度的度量 高内聚”给软件项目带来的优点是:可读性强、易维护和变更、支持低耦合、移植和重用性强。
信息隐藏和封装
在面向对象方法中,信息隐藏通过对象的封装性来实现。一个模块不需要知道另外一个模块的内部情况,你可以有效的解除组成系统个模块之间的耦合关系,使这些模块可以独立开发,测试,优化,修改,理解,这样可以加快系统开发的速度,因为这些模块可以并行开发。它也减轻了维护的负担,因为我们可以更快点的理解这些模块,并在调用的时候不影响其他模块
界面和实现的分离
功能模块之间需要进行解耦 ,核心思想:强内聚,弱耦合 -:每个模块应该只实现单一的功能 , 模块内部的子模块只为整体的单一功能而存在 , 模块之间通过约定好的接口进行交互。
错误情况处理
主要对接口的实现进行调试,接口异常,运行环境异常等问题,经行反复测试。对于每个代码格式问题简单的处理。确定接口,函数,属性,各个变量等的规范使用 设计方案对于应对变化的灵活性:主要对接口的定义:模块之间仅通过接口进行关联,必然存在模块会使用接口 。模块间的关系是单向依赖的- 必然存在模块实现对应的接口
设计方案的软件重用情况
应用框架的重用:直接使用框架重用,继承这个类,实现接口。 在继承HibrnateDaoSupport的DAO实现里,Hibernate Session的管理完全不需要Hibernate代码打开,而由Spring来管理。Spring会根据实际的操作,采用“每次事务打开一次session”的策略,自动提高数据库访问的性能。
四.Github仓库上传《软件编码规范说明书》
五.Github仓库上传项目已完成源码
六.按任务3要求完成本次作业总结
1.燃尽图
2.团队成员的具体分工、占整个作业任务的工作量比例及完成各自任务的实际时间
成员 | 分工 | 工作比例 | 时间(min) |
---|---|---|---|
金生芳 | 完善项目设计方案说明书 | 20% | 240 |
张旭辉 | 设计项目技术原则,规范编码,初步编码 | 25% | 360 |
达选奇 | 编写编码规范说明书,实现初步编码 | 23% | 300 |
丁家辉 | 撰写博文,总结设计过程 | 22% | 180 |
温永琴 | 完善文档编辑 | 10% | 60 |
3.总结心得
程序编码阶段是一个非常重要的阶段,这个阶段决定着我们程序的安全性,以及后期的操作维护,软件的开发不是凭借一己之力就能做好的,我们需要的是团队的合作,关于编码,我们认为编码要想做的完美必备条件就是前面的软件定义和软件设计时期要按部就班的做,文档一定要按要求书写,不能偷懒也不能草草书写,把代码写的漂亮,注释、空行、规范一样不能少,可读性是放在第一位。进行程序编码的时候一定要要注意代码的规范性,要使源程序代码的逻辑简明清晰、易读易懂。这样尽管我们不是设计系统的人员,当看到源程序代码的时候也能容易读懂代码的意思。
原文地址:https://www.cnblogs.com/16rg/p/11007455.html
- JS魔法堂:彻底理解0.1 + 0.2 === 0.30000000000000004的背后
- mybatis: 利用多数据源实现分库存储
- 树莓派:文本编辑器与文件
- Java常用类(三)之StringBuffer与StringBuidler
- 使用监听器:定时清除map缓存
- 树莓派:光阴的故事
- lombok在IntelliJ IDEA下的使用
- 基础野:细说浮点数
- 微信开发如何保证access_token/jsapi_ticket长期有效
- struts2(五)之struts2拦截器与自定义拦截器
- 自定义的html radio button的样式
- 树莓派:漂洋过海来看你
- 树莓派:开机使用
- JavScript中的循环
- 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 数组属性和方法
- linux环境不使用hadoop安装单机版spark的方法
- 在linux下玩转带有超时时间的connect函数
- Linux/CentOS服务器安全配置通用指南
- 详解centos7中配置keepalived日志为别的路径
- jointplot快速探究两组变量的分布及关系
- linux中alarm函数的实例讲解
- 如何给Linux虚拟机连上WiFi详解
- Linux系统查看CPU、机器型号、内存等信息
- 实战基本的Linux sed命令示例代码
- 在Linux中如何查看可用的网络接口详解
- Linux程序运行时加载动态库失败的解决方法
- Linux/CentOS系统同步网络时间的2种方法详解
- Linux 常用命令之Linux more命令使用方法
- Ubuntu下VIM配置成C++开发编辑器
- Ubuntu环境下使用G++编译CPP文件