/C2

C2风格软件结构

Primary LanguageJava

#C2风格软件结构 ##后面还会更新, 现在还不完整

  1. 概述
    1.1软件体系结构C2风格, 将各个构件用连接件连接起来, 协同计算, 为今后运用这种风格和分布式学习打好基础.
    这种风格各构件的沟通就是通过消息.
    1.2需求分析:
    实现+,-,,/,sin,cos 并根据汇编原理完成表达式的计算,比如求2+34,要求程序自动生成
    3,4 *
    Result, 2,+
    1.3思考:
    涉及到()处理
    输入的长度的处理
    未输入正确的处理
    1.4逻辑图
    logic
  2. 运用的工具和语言
    中间件: activemq
    java第三方类库: activemq-all-5.3.1.jar
    语言: java jdk1.8
  3. 原则
    所有构件与用连接件连接起来
    连接件也可以互相连接起来
  4. 最终效果
    实现分布式计算器
  5. 运用所学知识
    5.1 编译原理
    词法分析 语法分析 语义分析 中间代码生成 优化 目标代码生成
    5.2 网络通信
    在同一个局域网内:几台电脑连接在一个交换机(数据链路层)或者由一个路由器(网络层)或者连接到一个WiFi(网络层)收发的信号时,这几台电脑是在一个局域网内的,因此可以互相访问使用 ping 命令(ICMP报文: 回送请求和回答).
    不在同一个局域网内: 简单的办法是可以关闭防火墙进行互联进行 ping. 复杂一点的办法可以配置反向代理(就是别人访问你的时候转到什么地方,而正向代理是你访问别人的时候),开放activemq服务端口(61616)可以让别人访问.
  6. TODO
    需要实现真正的分布式 前后没有联系的计算一起进行。无法实现,因为用编译的方法他会出错数据的返回时间不定, 只能实现流水式的并行。
    进行复杂运算还没有完成,编译器运用还没完成。已完成
    sin cos。sin可以加括号 也可以不加已完成
    0.0.3优化程序
  7. 运行效果
    程序运行起来后,输入: 12+34 将会给出结果 14
    输入: sin(30) 输出 0.499999999
  8. 软件测试
    白盒测试: 自动化测试工具(待续)
    黑盒测试:
    划分等价类
输入条件 有效等价类 无效等价类
计算方法 1.+ 2.- 3.* 4./ 5.sin() 6.sin 7.cos() 8.cos 9.() 无效的计算 13.arcsin 14.sqrt() 15.^2
字符 10.数字和以上计算符号 16.其他任意字符
进行运算个数 11.1个及以上 17.无输入运算
完整性 12.完整计算 18.不完整的计算例如 1+

测试用例:

输入条件 预期输出 覆盖等价类
sin30+sin(15+15)+6-cos60+cos(90-30)+56-30/5+(53) 46.xx 46附近的浮点数 1 2 3 4 5 6 7 8 9 10 12
arcsin(30) 未输入或者未涉及此类运算,抱歉请重新输入!!! 13
sqrt() 未输入或者未涉及此类运算,抱歉请重新输入!!! 14
^2 未输入或者未涉及此类运算,抱歉请重新输入!!! 15
a12 未输入或者未涉及此类运算,抱歉请重新输入!!! 16
未输入或者未涉及此类运算,抱歉请重新输入!!! 17
15+ 输入不完整 18
15*5+7+ 输入不完整 19
sin(60 输入不完整 20
sas(60 未输入或者未涉及此类运算,抱歉请重新输入!!! 21