【第22期】观点:IT 行业加班,到底有没有价值?

软件架构的控制流总结

原创 2015年07月07日 12:22:39

在进行程序开发时,要从总体上对软件架构进行规划,软件架构(software architecture)包括两个aspects,control flow and data flow。这里先对typical software architecture control flow进行summarize,后续的文章将继续对data flow进行梳理和总结。这里要感谢dossier-andreas,把software architecture讲述的有清晰、有条理。让我这英语菜鸟也有机会读得懂。

1. Main program and subroutine,call and return(main函数和调用)

Command structure: Control Tree; Order of execution:Sequential.

这是一个最基础和最常见的控制流,在C、C++等几乎所有语言都支持。

2. Implicit invocation, Event Based(隐式调用)


依靠Message传递控制,主程序由无尽的控制循环构成,每次循环主程序都将Message发送给对应的模块去处理。类似windows MFC的消息机制,winmain函数中是一个大循环,用来接收消息,然后调用对应的module来处理消息。

3. The Manager Model 系统管理器模型


Commandstructure: Control Tree; Order of execution: Parallel.

这就是多进程的模型。由PCB(process control block,进程控制块)来负责存储和维护进程信息。主要由操作系统来实现Manager Model。实际上,在FPGA硬件上的并行就是一个个的process。

4. Emulated Parallel(模拟并行)


Command structure: Control Loop; Order ofexecution: Parallel.

这实际上是进程的实现模型(或者是进程内线程的实现模型)。时间片轮转调度,每一个循环分配给一个Module一段执行时间,就这样类似的将所有Module都推进,相当于并行执行。

 

参考文献:http://www.dossier-andreas.net/software_architecture







版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/lg1259156776/。 举报

相关文章推荐

用程序来控制一个网页,实现自动输入等操作

首先今天要说的东西跟游戏无关,你是不是有时候会遇到,在某个网页上重复着几十次的简单而又无聊的录入或点击等工作?比如你的程序需要测试,需要注册大量的测试邮箱。比如你的老板是个变态,让你去各个论坛发大量的...

开源一款远程控制软件 —— pcshare

这里开放一款远程控制软件的源码——pcshare,该软件分为被控制端和控制端。部分界面如下:控制端通过寄生在被控制端的后台程序来实现控制,可以对被控制台进行文件管理、屏幕监控、键盘监控、监控管理、查看...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

[MFC] 远程控制软件 V1.0 Beta Build 50(Server) and 30(Client)

此软件为本人原创编写的一款远程控制软件,下载地址以及介绍如下。 下载地址及介绍:点击打开原文即可直接下载

远程桌面控制软件TeamViewer应用经验集锦

如何使用TeamViewer面板与伙伴视频聊天 如何使用TeamViewer面板与伙伴语音聊天 如何使用TeamViewer工具栏的音频视频菜... 如何使用TeamViewer工具栏的文件传输菜.....

【转】常用的版本控制软件

版本控制是在软件开发过程中保证技术状态一致的一种手段,它是开发过程中进行全面管理的基础。下面我总结了一些常用的版本控制软件: 1、Visual SourceSafe(简称:VSS) VSS...

源程序生成控制流图和du-path

最近上《源代码分析技术》这个课,老师让写一个程序,you

软件测试之 控制流图 圈复杂度 独立路径 测试用例

例题:void Sort ( int  iRecordNum, int iType) 1 {  2    int x=0; 3    int y=0; 4    while ( iRecor...

编程基本功训练:流程图画法及练习

对于“程序设计”的工作,许多初学者的理解就是“写代码”。同样,新手们苦恼的问题是,他们只会“写代码”。当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着,就把自己绕糊涂了。头晕脑胀...

soot生成java代码的控制流图

Soot是McGill大学的Sable研究小组自1996年开始开发的Java字节码分析工具,它提供了多种字节码分析和变换功能,通过它可以进行过程内和过程间的分析优化,以及程序流图的生成,还能通过图形化...

控制流图|圈复杂度|基本复杂度

控制流图|圈复杂度|基本复杂度 控制流图是McCabe复杂度计算的基础,McCabe度量标准是将软件的流程图转化为有向图,然后以图论的知识和计算方法来衡量软件的质量。McCabe复杂度包括圈复杂...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)