美文网首页
软件工程2018-09-29

软件工程2018-09-29

作者: 快来看老实人 | 来源:发表于2018-10-08 08:46 被阅读0次

复习

软件工程:工程开发的过程

软件的输出物:

  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,课程编号
3.4、测试用例设计
3.5、综合测试设计(本公司的测试设计,外包出去的测试范围)
3.6、部署设计(部署服务器的软件版本,软件环境)

4.数据库设计

4.1、数据库选择、
         mysql:轻量级数据库
                    limit
         oracle:企业级数据库
                   伪列
4.2、数据来源设计
4.3、数据库表结构

5.源码

6.数据库脚本(xx.sql)

7.使用手册(一般由实施工程师、技术支持编写)

7.1、软件项目的搭建(从零----》运行)
7.2、软件使用演示(视频、现场展示 (实施、技术支持))
7.3、当前软件的缺陷(压力缺陷,临界值问题)
7.4、使用文档说明

新课内容

模块化

软件项目

版本控制软件:Git,SVN

  Git:将代码保存到云端()GitHub, coding所有人从云端获取数据,每个人将当天 
开发的代码直接传云端,自动进入代码整合(项目冲突)
一般每个人开发过程中,都是独立完成自己的功能模块,模块间没有藕连性
注意:代码保存在别人的服务器中,安全性有问题

SVN:在服务器上架设SVN服务器,将代码直接保存到SVN服务器

1.手机端客户端(APP-功能简单)

1.1、根据用户使用模块划分(个人)
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:考勤,提报,文件审批
OA系统:公司的运作情况
例如:中小学兴趣班的培训后台系统
 子系统1: 
                咨询部(新人员的信息录入(名字,所在学校,当前年级))
                考核老师:入园考核
                分配班级:将考核成功的人员分配到对应的班级
                班级负责老师:审批同意
                -----------新人员才算入班
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,所有动效加载是一定顺序的
         和一个npc对话,刷新全地图npc(CPU占用率很高)
    1.2.3、网络情况
           如果数据量庞大,设计时,尽量在用户本地进行生成
1.3、小清新风格(所占资源少,运行速度快,网络数据获取快)
1.4、色彩饱和度(护眼色)
              长时间使用,眼睛不会很干
1.5、显示大小(屏幕适配)
              保证图片不能失帧(.9z.png)

2.线框的设计
-------轮廓图

2.1、简洁
    2.2.1、保证有必要的功能区
    2.2.2、每个模块数据能够显示
    2.2.3、将扩展部分的区域进行预留
2.2、使用的工具
    能做出思维导图的工具
2.3、需要添加注解
2.4、文字描述

3.着色
主题:主美定

1.一般由主美进行设计
2.下发给各个UI设计师,由主美审核
3.颜色对比度(减少用户使用的时候的落差感)
    3.1  减少当前软件的意见
4.颜色不能太艳(保存小清新风格)

4.图片

4.1、不能压缩图片
4.2、尽量按照图片原大小显示(美工)
4.3、图片的层级(图片的组合------分辨率不高)
     由多个图片组成的动效,不同的图片透明度不同

数据库设计

1.需求分析

1.1、数据类型及数据显示,员工编号:id,Int
1.2、数据间的关系(中间产物:中间表,外键设置)
1.3、数据的加工处理(处理算法)
1.4、数据量(分析:数据优化)
1.5、数据完整性,有效性

2.数据结构设计

1.数据所对应的实体类---对象,属性,联系

   t_user:id,name,password,roleId

   class User{
            private int id;
            private String name;
            private String password;
            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')
java递归:在一个方法中调用方法本身,称为递归写存储过程----递归查询

class Dis{
    private int id;    //地区编号
    private String name;    //地区名称
    private int pid;     //上级地区编号
    private List<Dis>  subList;      //下级地区对象集合
}
注:查询当前类别下所有信息

2.数据库逻辑结构(表之间的关系)
    1.外键(限制数据的录入)
    t_user:    id,    username,      password
             1001,     '张三'        '123456'
    t_user_info:      id      name      age      sex      phone      userId
                     10001   '张三'      20      '男'    1820133592   1002
    t_user_info.userId <=> t_user.id
    当录入一个不存在的于user表的数据时,会报错
    
    2.数据库约束
           主键,外键,唯一,非空,默认
    3.函数,存储过程(DBA)

数据库分析设计

1.员工模块
    员工表:员工编号,姓名,性别,电话,身份,登录状态,出勤状态,所需场馆,权重,头像,备注
    场馆表:场馆编号,场馆名称,场馆所需地区
    出勤状态表:正常,缺勤,休假,停职,停薪保岗,离职(辞退(n+1),劝退),复职
    职位表:店长,教练,销售,财务,前台,管理员,设备管理员

外键-不常用:外键匹配时,耗时,消耗较大
 使用下拉框进行选择,防止数据库攻击

相关文章

  • 2018-09-29

    2018-09-29 2018-09-29 2018-09-29 【日精进打卡第0049天:元气满满】 王航~立心...

  • 软件工程2018-09-29

    复习 软件工程:工程开发的过程 软件的输出物: 需求分析说明书(100+页) 2.概要设计说明书 3.详细设计文档...

  • 2018-09-29

    2018-09-29 2018-09-29 【日精进打卡第0048天:元气满满】 王航~立心小学部 【知~学习:名...

  • 软件工程2018-09-29笔记

    复习 新课内容 模块化 子系统 子系统划分规则 界面设计 数据库设计

  • Linux Basic Command

    UpDate 2018-09-29 1538230612Author unnam3dMail indv.zhang...

  • 模仿jQuery实现一个API

    title: 模仿jQuery实现一个APIdate: 2018-09-29 16:46:48tags: [Jav...

  • 照片

    鹭说:“狗仔又来了,快跑吧!” 鸭子说:“别理她!我们继续玩。” 2018-09-29 心地

  • (转)栀子花开呀开……

    《秋天的雨》教学反思 聆听栀子花开 互相关注 2018-09-29 07:52 · 字数 834 · 阅读 14 ...

  • API网关Kong(一):Nginx、OpenResty和Kon

    作者:李佶澳 转载请保留:原文地址 发布时间:2018-09-29 15:41:50 +0800 说明 Nginx...

  • Ubuntu16.04 PHP7.0升级7.2

    2018-09-29 实践Laravel项目过程中需要使用 Composer 安装最低支持版本 php7.1 的 ...

网友评论

      本文标题:软件工程2018-09-29

      本文链接:https://www.haomeiwen.com/subject/ybcvoftx.html