zoukankan      html  css  js  c++  java
  • 软件工程与编程总结

    计算机软件

      在大学课本上有一个公式 程序=数据+算法,数据当然就是被操作对象咯,比如说一个变量,一个对象,一个数组,一个集合以及一个数据库等等等,根据粒度不同大小就不同。算法是什么算法就是解决问题的办法咯,

    他可以是一个流程,可以是一个数学公式,也可以是一个计算模型,分析模型等等。

    一 算法与架构

    1 机制

      在真实的软件开发中一个软件由很多机制这一要素,常见的机制有比如说生命周期:对象生命周期,组件生命周期等等,生命周期是一种非常典型的算法机制,他是很多计算模型的流程化表现。

      常见的机制:生命周期,会话机制,权限机制,插件化机制,模块化机制

    2 程序集

      当很多的机制算法组成了一套程序集的时候,他可以整合到一起形成一个程序集。比如我们的工具集,控件集,驱动集,组件集等等

    3 模块化和插件化

      模块化是一种更大粒度的封装吧,模块就像一个容器,他接纳很多东西组成一个高度聚合的功能块。比如他可以包括一个函数,一个类,一个控件,一个组件或者一些服务以及实体模型

    4 软件

      可以简单说软件在比较合理的架构下他都应该是模块化的,不管你是客户端也好,还是服务端也好他都是一个模块一个模块,模块内部高度聚合,模块之间高度耦合共同组成一个软件,一个软件系统。

    所有模块化的软件架构实现有很多很多了,比如我们常用的vs,androidstudio,或者cm框架,angular框架,什么经典三层结构他们都是模块化的

    5 平台化

      平台是在更高的粒度上组织和协作多系统多服务进行有效工作,一个平台由多个系统多个子系统他们要么水平,要么垂直,要么形成复制的关系网组成一个平台

    二 数据与模型

    2.1 数据

       在计算机世界里数据无外乎几种,比如简单的数据,字符串,数字类型,bool,以及复杂的对象,数组,集合模型

    2.2 面向对象结构模型

       简单的数据类型是构成对象的基本单元,他们基本上是不开再分的最小粒度了。一个对象他可以由简单类型构成,也可以由简单类型和对象类型复合构成,以达到描述复杂的客观世界

    2.3 面向对象结构关系

       前面说到了面向对象结构组成,再来说说关系,关系可以是简单的也可以是非常复杂的,那么有一些什么关系的,在结构与算法的课本中说到,对象的关系有

    1)无关系

    2)链表关系

    3)树形关系

    4)二叉树关系

    5)集合关系

    6)网状关系

    对于复杂的关系在处理上需要简单化,也就是将复杂的东西分离到简单的层面在处理各个击破

    三 数据模型与协议

      虽然说协议基本上是包含了数据模型,但是他们还是有一些区别,不同在于他们范围和解决的问题点不同。数据模型更关注实际的表示,而协议更多的关注一些规则和规定,让大家在一条线上协作。

    那么在协议的层面数据模型一般就那么几种形式了,要么二进制,要么字符串,二进制是所有计算机都兼容的低级语言,字符串估计也就是人能够明白。二进制具有最广泛的机器兼容性,因此他可以传输各种数据

    如文本,音频,视频流,图片,图像等,因此在低端嵌入式程序中都是采用二进制与外界进行交流。对于pc机一类的高级计算机来说就不同了他们可以处理复杂一些的东西,比如文本,于是就有了基于文本的http

    pop,ftp等等一些列高级协议,还有更高级的如基于json,xml格式的ws协议等等。

      当然协议除了包含数据模型以外还有很多地方,比如协议构成三要素,语义,语法,时序,其中语义基本上就是数据模型了。

  • 相关阅读:
    Java设计模式知识整理
    Java单例实现及分析
    Java开源框架知识整理
    JavaJ2EE相关知识整理
    数据库相关知识整理
    JavaJDK8新特性相关知识整理
    Java并发编程相关知识整理
    Java集合框架相关知识整理
    Java虚拟机JVM相关知识整理
    若依项目利用nginx实现负载均衡及保持会话
  • 原文地址:https://www.cnblogs.com/rjjs/p/7423757.html
Copyright © 2011-2022 走看看