美文网首页
软件工程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

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