为何需要SysML以及系统思维?以及…
来源:互联网 发布:我的世界透视矿物js 编辑:程序博客网 时间:2024/05/20 01:45
终于到研二了,这学期也是最后一学期的留学生活了,总归得做些总结。
// Bridge startup pinMode(13, OUTPUT); i=0; Bridge.begin(); Serial.begin(9600); while (!Serial); // wait for a serialconnection
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) // Make the client connect to the desiredserver and port IPAddress addr(172,16,249,105); // Or define it using a single unsigned 32bit value // IPAddress addr(0xc0a8sab9); // same as192.168.42.185 // Or define it using a byte array // const uint8 addrBytes = {192, 168, 42,185}; // IPAddress addr(addrBytes);
client.connect(addr, PORT); digitalWrite(13, LOW); // turn the LED off by making the voltageLOW // Or connect by a server name andport. // Note that the Yun doesn't support mDNSby default, so "Yun.local" won't work // client.connect("ServerName.com",PORT);
if (client.connected()){ Serial.print("Connectedto the server. times"); Serial.println(i); // Send something to theclient client.println("Something... for the times:"); digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltagelevel) // Cheap way to give theserver time to respond. // A real application(as opposed to this simple example) will want to be moreintelligent about this. delay (250); client.println(i); // Read all incomingbytes available from the server and print them while(client.available()) { charc = client.read(); Serial.print(c); } Serial.flush();
// Close theconnection client.stop(); i++; digitalWrite(13, LOW); // turn the LED off by makingthe voltage LOW }else{ Serial.println("Couldnot connect to the server."); } // Give some time before trying again delay (1000);
上学期对SysML做了蛮多研究,发觉还不是那么通俗易懂和直观。虽然作为一个从UML延伸过来的语言,SysML有着很大的志向,想成为一个横跨软硬件和大型工程的模型语言。不过就其学习成本来说,还是略高。许多小项目使用基于文档的描述的话,估计从开始到做完的时间,都比学会SysML要短,更不要说使用SysML了。
这里讲讲系统思维的重要性:
为何需要系统思维?最近大家都在写论文,用LaTeX写的话就不说了。如果用word写,那么会遇到很多问题,单双页排版问题,图标和论文引用问题,图片序号更新问题,目录更新问题。现在应该没有人用手敲目录的页数了,因为那样工程量巨大,而且一旦内容有更新,那么其目录页数又有更改,就得重新输入。删掉其中一个图,那么随后的图片序号都得按顺序调整,这岂不是得崩溃。更崩溃的是,还得调整文章里引用的图片序号。
从此可以看出,如果写word的时候,没有事先设定好自动排号,没设定好自动编号的标题,那么到后面整个“系统”更改起来(例:插入个新图片或者删除个图片,图片序号都要更改)难度极大,工程量成倍增长。而且,系统越大,重复性工作越多,越多的工作耗费在毫无益处的事情上(改序号,校队文章引用)。
那么,什么是系统思维?什么需要系统思维?
一般一个系统内,如果你有预感,一些东西会时刻改变,而且是有规律地改变,那么就得好好设计它。在编程中,就是你把一个变量设计成数组(固定大小,不能扩展),还是链表(能自由扩展)的问题。例如在写论文的例子中,一个图表,其序号会在文章当中不断引用,而一但更新了这个图表的序号,其在文章当中的引用的序号也要一起更新的话,那么这个序号就应该好好设计成动态的形式。
最基本的系统思维就是:考虑哪些地方是固定不变的,哪些地方是需要扩展的,预留好接口。
考虑到系统的大小,就可以回答什么需要系统思维。一篇4页纸的论文,在考虑其图表和论文引用的时候需要系统思维吗?大体上应该是不用的。但是当你写一篇100多页的论文的时候,其中有上百个图表,那就得好好考虑这个问题了。
其实考虑系统思维,最基本的目标还是减少可预见的重复性劳动,提升系统开发效率。其次是提高系统可读性,方便后期的维护与升级。
……………………………………………………
这学期的确还挺忙的,不过收获也颇丰。有幸通过David的HyperLoop参赛小组,获得了ArduinoYún的学习机会。上淘宝一查我擦,Arduino Yún的价格居然还在500、600元人民币左右,居然还没降价。看来国内山寨厂商破解还得加油啊!淘宝ArduinoNano的价格已经在10多元左右了,感觉像称斤卖一样。只有设备价格降到一个白菜的级别,对其科学的研究才能够爆发式发展。最近去庆应K2实验室参观,发觉里面有一位老师特别喜欢机器人,用Arduino做了许多设备和控制装置,还非常兴奋地跟我说“啊!我从阿里巴巴买的,好便宜!好便宜!就是发来日本有些久”……我听了既为中国自豪,又感到有些对日本的产业无奈。
用Arduino Yún写了个小程序,成功连接上了与电脑连接相同的Wi-Fi网络,并向电脑上运行的一个Java编的Echo服务器发送了消息。服务器成功收到了。ArduinoYún端的代码很简单:
#include
#include
#define PORT 5001
// Define our client object
YunClient client;
int i;
void setup()
{
}
void loop()
{
}
代码修改自这里:http://forum.arduino.cc/index.php?topic=311200.0
0 0
- 为何需要SysML以及系统思维?以及…
- Linux系统简介以及为何常用于服务器
- 程序员思维以及学习方法
- 动态库加载出错,cannot restore segment prot after reloc: Permission denied以及为何编译动态库需要-fPIC
- 动态库加载出错,cannot restore segment prot after reloc: Permission denied以及为何编译动态库需要-fPIC
- 动态库加载出错,cannot restore segment prot after reloc: Permission denied以及为何编译动态库需要-fPIC
- 动态库加载出错,cannot restore segment prot after reloc: Permission denied以及为何编译动态库需要-fPIC
- 如何以及为何创建Search.NET版
- 什么是数据中心分级以及分级为何重要?
- 需要找发票以及其他
- 《程序员的思维修炼》读书笔记以及感悟
- 系统架构以及设计
- IOS第三方库的作用 以及 需要加入哪些系统的静态库文件
- 我们为何需要搭建Apache Kafka分布式系统
- IBM 架构师为何以及如何成为了架构师
- IBM 架构师为何以及如何成为了架构师
- IBM 架构师为何以及如何成为了架构师
- PCA原理以及为何要使用协方差矩阵
- 昆石VOS2009 VOS3000无漏洞去后门电脑管理客户端大全
- Spring入门学习——调用一个实例工厂方法创建Bean
- 从最容易理解的图到SysML和UML
- iOS开发之Masonry框架源码深度解析
- Spring入门学习——从静态字段中声明Bean
- 为何需要SysML以及系统思维?以及…
- Spring入门学习——从对象属性中声明Bean
- WebSocket服务器的几次改进
- Spring入门学习——使用Spring表达式语言
- Swing做界面还是相对好用。对于界…
- Spring入门学习——设置Bean作用域
- ant打包程序依赖外部jar包
- 用SysML做的编程技巧总结图
- Spring入门学习——自定义Bean初始化和析构