关闭

软件架构的控制流总结

标签: 架构软件structure
1269人阅读 评论(0) 收藏 举报
分类:

在进行程序开发时,要从总体上对软件架构进行规划,软件架构(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







0
0
查看评论

软件工程控制经验总结系列之一 - 软件工程控制总论

前言:在实际的大规模软件实践中,笔者所带领的事业群总是碰到各种各样的项目交付问题,特别是规模稍微大一点的软件项目,更是如此,总是看到我们的项目经理或愁眉苦脸,或通宵达昼,或垂头丧气,或又将告诉你将延迟交付,问题不一而足,但核心要点几乎是一致的,全部是项目部分处于失控边沿,笔者也做过众多的培训,但仔细...
  • jackxinxu2100
  • jackxinxu2100
  • 2015-10-15 20:37
  • 1930

Java-控制流语句

1. Foreach语法不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。for(float x : f)定义了一个float类型的变量x,继而将每一个f的元素赋值给x。任何返回一个数组的方法都可以使用foreach。//String 类有一个方法toCharArra...
  • beauty_1991
  • beauty_1991
  • 2016-04-18 15:44
  • 725

Android代码混淆技术总结(一)

* 作者:ix__xi,本文转载自安全客,原文地址:http://bobao.360.cn/learning/detail/3704.html 一、前言 最近一直在学习Android加固方面的知识,看了不少论文、技术博客以及一些github上的源代码,下面总结一下混淆方面的技术,也...
  • github_30662571
  • github_30662571
  • 2017-04-28 17:40
  • 670

Java控制流语句总结

---------------------- android培训、java培训、期待与您交流! ---------------------- 黑马程序员——Java控制流语句总结  java控制流语句总的来说可以分为三种!  一.分支语句 分支语句根据表达式和变量的不...
  • baipeijie520
  • baipeijie520
  • 2011-12-12 17:59
  • 1078

C#软件开发三层架构的学习总结

今天学习了一下软件的三层架构,感觉受益匪浅,首先是明白了软件的三层架构分为显示层,业务层和数据层,从逻辑上就是UI+BLL+DAL,各层之间分工明确,感觉以前写程序用VB,事件驱动,一个按钮按下之后访问数据库之类的所有的操作都由这个事件引起,确实是落后而且不利于代码的复用,产生了很多重复代码,即使是...
  • mengqiqihao
  • mengqiqihao
  • 2014-03-18 19:36
  • 529

C语言之控制流

1、因为if只是简单的测试表达式的数值,所以某些缩短是可以的,     if (expression) instead of     if (expression != 0) 2、It is a good idea to use braces...
  • hanwang3
  • hanwang3
  • 2015-09-19 23:22
  • 432

R语言学习(6)-流程控制和循环

流程控制和循环 1.流程控制         if和else > if(TRUE)message("TRUE") TRUE > if(FALSE)message(&qu...
  • luoyhang003
  • luoyhang003
  • 2014-08-03 13:48
  • 1717

系统调用过程的控制流转移

用户态与内核态用户态、内核态其实是CPU运行权限的概念,我们知道处理器指令分为两类,特权指令和非特权指令,用户是不能直接使用特权指令的,不然用户可以随意调度敏感资源,整个系统就混乱了。x86 CPU的权限有四个层级,分别是Ring0~Ring3.其中Ring0的级别最高,可以使用所有指令(内核运行在...
  • u010185700
  • u010185700
  • 2016-11-02 15:44
  • 278

《深入理解计算机系统》异常控制流——读书笔记

控制流: 异常控制流:
  • zhanghaodx082
  • zhanghaodx082
  • 2013-10-05 20:35
  • 3066

Win10安全特性之执行流保护

微软在2015年1月22日公布了windows10技术预览版,Build号:9926。电脑管家团队第一时间对其引入的新安全特性进行了深入分析。 众所周知,漏洞利用过程中攻击者若要执行恶意代码,需要破坏程序原有指令的的正常执行。执行流保护的作用就是在程序执行的过程中检测指令流的正常性,当发生不符合预期...
  • stevegao_tencent
  • stevegao_tencent
  • 2015-02-04 15:00
  • 5007
    个人资料
    • 访问:1889338次
    • 积分:22118
    • 等级:
    • 排名:第393名
    • 原创:271篇
    • 转载:946篇
    • 译文:3篇
    • 评论:192条
    博客专栏
    最新评论