输入输出与程序复杂度的关系

  系统的输入越多,输入时间点的偶然性越大,其软件结构越复杂。

  如果一个嵌入式系统,没有输入的需求(没有与外界交流的任何接口),只需要其输出,那么我们只需要写输出的代码就可以了。

输出可能是客户需要的一句话、一篇文章、一首歌、一部影片,尽管输出的类型非常之多,但是其软件结构仍然非常简单,因为我们软

件的任务只有一个:输出。

  我们不需要考虑不同任务之间的调度与协作问题,只需要执行输出即可,那么我们就可以通过顺序执行输出代码既可以完成所有的

事情。顺序执行是人们最容易理解的方式,因为前后逻辑关系非常简单。所以,前后逻辑关系简单明了的软件结构是最简单的软件结构。

符合以上的软件结构设计起来也非常简单。

时间: 2024-10-10 01:25:01

输入输出与程序复杂度的关系的相关文章

1.一男子在路边一根接着一根地抽烟。一个女士走过来对他说:“嘿,你不知道你是在慢性自杀吗?注意看看烟盒上的警告信息。”“没关系”, 男子悠然自得地又吸了一口:“我是个程序员。”“嗯?这和你是程序员有什么关系?...

1.一男子在路边一根接着一根地抽烟.一个女士走过来对他说:"嘿,你不知道你是在慢性自杀吗?注意看看烟盒上的警告信息.""没关系",男子悠然自得地又吸了一口:"我是个程序员.""嗯?这和你是程序员有什么关系?""我们一点儿也不在乎警告(warning),我们只在乎错误(error)." 2.(唔--这个貌似跟程序员没关系--)地理学家和数学家在飞机上坐在了一起.地理学家伸过头来问数学家想不想玩个有趣的游戏.数

PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器

PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器(ORM,  Object Relational Mapper).与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能.使用PetaPoco只需要引入一个C#文件,可以使用强类型的 POCO(Plain Old CLR Object),并支持使用T4模板生成的类等等. PetaPoco最让人感兴趣的功能包括: 可与SQL Server.SQL

一、Linux应用程序基础 1、应用程序与系统命令的关系 文件位置 主要用途

一.Linux应用程序基础1.应用程序与系统命令的关系文件位置主要用途使用环境运行格式2.Linxu下软件包的类型rpmdeb源代码包自带安装程序的软件包免安装的软件包 二.使用RPM包管理工具1.RPM包的命令格式软件名称-版本号.此版本号.硬件平台.rpm rpm包与源代码包的区别: a.rpm包的功能没有源代码的强大 b.rpm包安装管理要比源代码简单方便 c.rpm包版本通常比源代码包的低 2.RPM包的管理工具就是---rpm命令rpm命令的功能:a.查询.验证rpm包信息b.安装.升

程序与进程的关系

一.程序与进程的关系 1.程序:静态保存的代码保存在硬盘.光盘等介质中的可执行的代码和数据2.进程:在CPU及内存中运行的程序代码动态执行的代码父子进程每个进程可以创建一个或多个进程3.线程:一个进程包含多个线程进程是线程的集合 二.查看进程信息 1.ps命令 (1)ps aux 静态查看 %MEM:内存所在百分比VSZ :占用的虚拟内存大小RSS:占用的常驻内存大小TTY终端STAT 进程状态S:可中断休眠进程D:不可中断休眠进程s:父进程<:代表优先级高的进程R:代表正在运行的进程l:代表多

MapReduce实现二度好友关系

一.问题定义 我在网上找了些,关于二度人脉算法的实现,大部分无非是通过广度搜索算法来查找,犹豫深度已经明确了2以内:这个算法其实很简单,第一步找到你关注的人:第二步找到这些人关注的人,最后找出第二步结果中出现频率最高的一个或多个人(频率这块没完成),即完成. 但如果有千万级别的用户,那在运算时,就肯定会把这些用户的follow 关系放到内存中,计算的时候依次查找:先说明下我没有明确的诊断对比,这样做的效果一定没 基于hadoop实现的好:只是自己,想用hadoop实现下,最近也在学:若有不足的地

基于SIM的python程序相似度判别

从开始着手SIM的研究已经将近一个月了,总算功夫不负有心人,好歹在SIM上增加了对python程序的支持.现在回过头来想想,真正需要自己动手去编写的代码还是非常有限的,大多时间都是对HUSTOJ代码不熟悉而消耗了. 在HUSTOJ下,通过judge_client调用SIM以实现判题过程的相似度判别,所有判别的数据库均来源于服务器端每次存储的已AC代码,例如题号1000的AC代码存放在data/1000/ac文件夹下.SIM所判别的结果也可以通过修改judge_client.cc及judged.c

黑马程序员----算术运算、关系运算、逻辑运算

一.算数运算 1.C语言中一共提供了34种运算符 2.基本运算(加.减.乘.除) 3.取余运算(也称模运算) %两边都是整数,如果为小数会报错 取余结果的正负性取决于%左边的整数 取余运算可以将一个整数的值固定在多少以内 4.自动类型装换 int a = 10.8; // double 自动转换成int,会有警告: 5.强制类型装换 int a = (int)10.8; // double 自动转换成int,不会再有警告: 6.自动类型提升 double c = 10.6 + 6; // 会将6

创业日记-程序和产品的关系

今天是2015年4月8日 深圳阴 昨天我们项目进入一个测试阶段. 一个产品总是从测试开始暴露问题. 很多时候产品经理将太多不可控因素寄托在了程序员的身上. 一个伟大的程序员一定也是一个伟大的产品经理. 但现实并非如此!伟大的程序员是一种稀缺资源! 产品经理要将风险在产品设计与开发阶段降到最低. 如何做到这一点很重要! 产品在原型阶段是否更接近最终结果,接后最终结果有以下三点 1.界面接近最终结果(最少颜色相同) 2.流程一定要跟结果一样(用户在操作原型时与最终结果保持一至,非常重要) 3.推动大

spark程序与参数的关系

What is spark.python.worker.memory? Spark on YARN resource manager: Relation between YARN Containers and Spark Executors? When running Spark on YARN, each Spark executor runs as a YARN container 所以说,--executor-memory <= yarn.scheduler.maximum-allocat