复习
软件工程:工程开发过程
软件的输出物:
1、需求分析说明书(100页+)
1.1 需求分析
1.2 背景分析
1.3 功能分析
1.4 划分模块
1.4.1 子功能点
1.5 附件
2、概要设计说明书
2.1 软件版本(运行环境版本)
2.2 架构设计
2.2.1 界面线框
2.2.2 数据库表创建(有哪些数据)
2.2.3 程序骨架
2.2.4 流程图
2.3 编码规范设计
2.4 测试案例设计
2.5 输出物设计(交付设计)
3、详细设计说明书
3.1 算法设计
3.2 界面设计
3.3 数据库表结构(数据类型,表关联性,中间表设计)
学生表:t_student:id、name、sex、age、info
课程表:class:name、id
中间表:学生课程表:编号、学生id、课程id
3.4 测试用例设计
3.5 综合测试设计(本公司的测试设计,外包出去的测试范围)
3.6 部署设计(部署服务器的软件版本,软件环境)
4、数据库设计
4.1 数据库选择
mysql:轻量级数据库
oracle:企业级数据库
伪列
4.2 数据来源设计
4.3 数据库表结构
5、源码
6、数据库脚本(xxx.sql)
7、使用手册(一般由 实施工程师、 技术支持编写)
7.1 软件项目的搭建(从零开始 ----> 运行)
7.2 软件使用演示(视频、现场展示(实施,技术支持))
7.3 当前软件的缺陷(压力缺陷,临界值问题)
7.4 使用的文档说明
新课内容
模块化
版本控制软件:git,svn
git:将代码保存到云端 GitHub,coding,所有人从云端获取数据。
每个人将当天开发的代码直接传云端,自动进行代码整合(项目冲突)。
一般每个人开发过程中,都是独立完成自己的功能模块,模块间没有藕连性。
注意:代码保存在别人的服务器中,安全性有问题。
svn:在服务器上架设SVN服务器,将代码直接保存在svn服务器
软件项目
1、手机端客户端(app-功能简单)
1.1 根据用户使用模块划分(2人左右)
1.2 根据功能划分(基本信息操作,存取功能,借款功能,金融功能)
1.3 根据部门划分(OA系统:市场部,项目部,总经办,咨询部)
2、模块化的要求
2.1 每个大模块,需要进行模块细分
2.1.1 能直接编写代码,不考虑其他逻辑
2.1.2 减少模块间的关联性
2.1.3 模块间最好能独立测试
2.2 每个模块必须分配对应负责人
2.3 每个模块需要制定验收需求
子系统
如果项目过大,需要将项目划分为多个分支子系统
为了项目系统逻辑保密,故意将整个项目,划分为多个子系统,外包出去(银行类项目)
例如:中信银行-商贷平台 -----> 一个公司完成,这个公司的项目组成员,一定会知道整个系统的运作流程
系统保密性受影响
1. 加密算法(密码不安全)
2. 商贷利率算法(后门)
一般会将整个系统划分为多个子系统
子系统划分规则
1. 按照功能(没有关联性)划分 --- 交由多个公式或项目组开发
2. 按照部门划分
钉钉
OA: 考勤,提报,文件审批,20人一下
OA系统:公司运作情况
例如:中小学兴趣班培训后台系统
子系统一:咨询部
咨询人员:(新人员信息录入(名字,所在学校,当前年级))
考核人员: 入园考核
分配班级: 将考核成功的人员分配到对应的班级
班级负责老师:审批同意
---------新人员入班
2.1 功能独立
2.2 公共部分需要建立公共系统
2.2.1 考勤审核
2.2.2 输出物(将数据导出成Excel,doc)
2.2.3 读取文件(Excel)
2.2.4 其他的公共功能
2.3 每个子系统约定:减少扇出,增加扇入
2.4 整个系统大小需要适中
保证各个子系统的交付时间在一定的范围内
2.5 子系统必须按照需求文档进行设计
2.5.1 每个子系统都会规定功能,输出情况,如果私自变更会导致其他子系统衔接不上
电商:购物车(子系统),订单(子系统),支付(子系统)订单(传入商品信息自动生成详单)
订单(传入商品详细信息(数量(能否购买),总价,用户信息))
2.6 设置子系统输出数据验证
2.7 耦合,内聚
耦合:子系统之间减少耦合(一个只系统需要尽量减少相关联的子系统)
目的:当系统出现问题时,其他部分不会受到影响
内聚:子系统内部,需要提高能效,(代码精炼,逻辑紧凑)
界面设计
1、视觉效果
1.1 高级动效
1.2 性能消耗(计算机配置跟不上,高级动效变成ppt,还会卡电脑)
1.2.1 硬件情况(推荐配置)
1.2.2 算法
C语言(主策自学C语言编写),所有数据类型为String,所有动效加载是一定顺序的
1.2.3 网络情况(数据量)
如果数据量很庞大,设计时,尽量在用户本地进行生成
1.3 小清新风格(所占资源小,运行速度快,网络数据获取快)
1.4 色彩饱和度(护眼色) 长时间使用,眼睛不会干
1.5 显示大小(屏幕适配) 保证图片不能失帧
2、线框的设计 ---- 轮廓图
2.1 简洁
2.1.1 保证有必要的功能区
2.1.2 每个模块数据能够显示
2.1.3 将扩展部分的区域进行预留
2.2 使用的工具 -- 能做成思维导图的工具,最好使用正版
2.3 需要添加注解
2.4 文字描述
3、作色
主题:主美定
3.1 一般由主美进行设计 / 下发给各个UI设计师,由主美审核
3.2 颜色对比度(减少用户使用时的落差感)
3.2.1 减少对当前软件的意见
3.3 颜色不能太艳(尽量保持小清新分格)
4、图片
4.1 不能压缩图片
4.2 尽量按照原大小显示(美工)
4.3 图片层级(图片的组合,分辨率不高)---- 由多个图片组成动效,不同图片透明度不同
数据库设计
1、需求分析
1.1 数据类型及数据表示 员工编号:Id,Int
1.2 数据间的关系(中间产物:中间表,外键设置)
1.3 数据加工处理
1.4 数据量(分析:数据优化)
1.5 数据完整性,有效性
2、数据结构设计
2.1 数据所对应的实体类---对象,属性,联系
t_user:id,name,pwd,roleid
calss User{
private int id;
private String name;
private String pwd;
private int roleId;
}
t_dis:地区表 id,name, pid
1, 四川, 0
2, 成都, 1
3, 华阳, 2
4, 锦江区, 2
5, 青羊区, 2
6, 德阳, 1
7, 什邡, 6
8, 重庆, 0
9, 重庆市, 8
1、四川下面直接的地区分类:select id from t_dis where pid = '1'
2、select * from t_dis where pid IN (select id from t_dis where pid = '1')
3, 华阳, 2
4, 锦江区, 2
5, 青羊区, 2
7, 什邡, 6
递归:写对应的存储过程----递归查询
class Dis{
private int id; //地区编号
private String name; // 地区名称
private int pid; //上级地区编号
private List<Dis> sublist; //下级地区对象集合
}
注:查询当前类别下所有信息
2、数据库逻辑结构(表之间关系)
1. 外键(限制数据的录入)
t_user:id, username, pwd
1001 , '张三', '123456'
t_user_info: id, name, age, sex, phone
10001,'张三', 20, '男', 18200133592,1002
t_user_info.userId <=> t_user.id
当录入一个不存在于user表中的数据时,会报错
E-R图:各表之间的联系情况
2. 数据库约束
主键,外键,唯一,非空
3. 函数,存储过程(DBA)