精华内容
下载资源
问答
  • 计算机专业常用软件

    千次阅读 2018-11-28 08:33:23
    因此,这也要求我们必须熟练掌握计算机系统常用的硬软件工具。 而在计算机系统中,我们需要学习的有以下软件: C语言程序设计、VB程序设计、Java面向对象程序设计、数据结构、计算机网络与通讯、网络操作系统、软件...

    计算机软件专业是计算机科学的一个分支,和软件科学与技术专业相比较,计算机软件专业的侧重点在开发和技术的实际应用,而对软件开发的理论要求没有那么高。
    因此,这也要求我们必须熟练掌握计算机系统常用的硬软件工具。
    而在计算机系统中,我们需要学习的有以下软件:
    C语言程序设计、VB程序设计、Java面向对象程序设计、数据结构、计算机网络与通讯、网络操作系统、软件工程、多媒体技术与应用、大型数据库处理技术等。
    1,C语言程序设计
    C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
    2,Java面向对象程序设计
    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
    Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
    3,数据结构
    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
    4,多媒体技术与应用
    多媒体技术是指通过计算机对文字、数据、图形、图像、动画、声音等多种媒体信息进行综合处理和管理,使用户可以通过多种感官与计算机进行实时信息交互的技术,又称为计算机多媒体技术。

    展开全文
  • 并行计算和并行计算机体系结构

    千次阅读 2017-12-27 09:39:59
    冯诺依曼计算机体系结构 什么是并行计算 为什么用并行计算 谁在用并行计算 硬件提供了哪些支持 软件提供了哪些支持 总结 参考资料关于并行,你知道多少?思考多少?听到“并行”这个词汇,我最先想到的是在多车道上...

    关于并行,你知道多少?思考多少?

    听到“并行”这个词汇,我最先想到的是在多车道上飞驰的汽车,它们是并行运行的。它们之间完全独立吗?并不见得,当一个车道上的车要变道时要打开方向灯,相邻车道的车都会减速避让。可见,并行是发生在大部分时间,有时候有串行的成分在里面。从更宏观的层面来看,一般的问题都有“并行”和“串行”两种特性同时存在。其实,再说的直白点,任何一件事情都有独立性的部分,也有相关性的部分。哦,对了。我得解释一下“并行”的英文:parallelism。很相关的一个概念是“并发”,其英文:concurrency。顺便解释一下这两个概念,并行侧重于同时处理多个任务的能力,并发则侧重于并发的关键是你有处理多个任务的能力,不一定要同时。并发是一种设计理念,让一件事情完成的效率最高,并发设计的好的话,并行占比高,整个事情完成的效率就高。详细的见参考资料3Concurrency is not parallelism
    说实话,这个话题太大,网上资料也很丰富。我写这篇文章的目的是激发大家关于“并行”的思考,然后做一个概况性质的介绍,让大家对“并行”有一个正确的感性认识。

    并行这个概念太大,我们下面把范围缩小,重点讨论并行计算的话题。

    冯诺依曼计算机体系结构

    冯诺依曼计算机体系结构

    什么是并行计算?

    我们都知道计算实际上是一系列确定的步骤。聊并行计算哪能少了串行计算,直接上图:
    串行计算
    并行计算也得看图说话:
    并行计算

    这里我们假定了要解决的问题完全可分为4个独立运行的部分,由4个processors来独立运行。实际问题中,独立性和关联性是一个“太极”关系,就涉及到划分的粒度和通讯的频率等等问题。

    为什么用并行计算?

    1. 现实世界中存在大量并行
      . 自然社会中,每时每刻都在发生大量的有相互关联的事件。
      . 相比于串行计算模型,并行计算模型更有利于我们为现实世界建模。
      . 下面有好多并行的例子。
      自然社会中的并行例子

      更直接的原因

    2. 使用并行技术可以节约大量的时间&金钱
      并行节约时间和成本
      tag:大规模的运算集群可以由比较廉价的计算机组成用于完成大规模的计算任务,比如阿里巴巴的双十一。利用的通用的便宜的X86服务器组成超大规模nodes运算集群。

    3. 可以用来解决超大规模的问题
      Grand Challenge Problems
    4. 提供高并发性
      想想阿里,百度,腾讯可以同时为多少人提供服务吧。
    5. 可以充分利用网络上的计算资源(非本地计算资源)
      SETI@home
      Folding@home
      了解下这两个开源项目,你就明白啥意思了。

    6. 让你更了解你所使用的并行计算机硬件架构,充分发挥它的性能
      intel SMP

    7. 目前,随着网络数据量越来越大,大数据下所需要的计算力会更大
      全球对计算力的需求一直在成上升趋势,且大规模计算机集群提供的运算力也在逐年提升。
      大规模集群运算力
      数据来源:top500.org

      有了上面这些原因,相信你也对高并发程序设计感兴趣了吧。

    谁在用并行计算?

    1. 科学、工程领域
      科学和工程
    2. 工业、商业
      工业、商业
    3. 全球各种各样的APP
      各种APP

    硬件提供了哪些支持?

    其实,硬件从下面这些方面都提供了并行支持。
    1. 片内级
    . 片内级并行
    . 片内多线程
    . 单片多处理器
    2. CPU级
    . UMA对称多处理器系统
    . NUMA多处理器系统
    . COMA多处理器系统
    3. 计算机级
    . MPP—大规模并行处理器
    . 集群计算

    上个图,一目了然。
    并行计算机分类

    硬件上来说,我们现在使用的手机和笔记本实际上都是单CPU多核心的,比如我的笔记本是4核8线程的,就是说我的电脑有一个CPU,这个CPU有4个core,每个core上还提供了intel的超线程技术。那从操作系统这一级来看我拥有8个独立的cpu可以同时使用。
    4核8线程CPU

    这种架构就是标准的SMP系统,所有的核平等共享Cache,interrupt,和硬件资源。
    UMA
    PowerPC CPU硬件架构图
    这个是PowerPC结构的CPU结构图。
    看懂套路了吗?提高性能的方式也就两个:1,增强当个core的频率(每秒执行指令的次数)2,增加core的数量。
    单个CPU增加核心也是有瓶颈限制的,因为SMP中共享总线需要很高的bindwidth,还需要解决总线竞争问题。
    那咋继续提升性能呢?哦,你可能也想到了,解耦,然后增加CPU的个数,CPU之间也建立bus。intel有一种技术叫QPI,就是互联CPU用的。那CPU之间共享内存,读取自己CPU的内存不用通过QPI总线,肯定比读取挂在另一个CPU上的内存要快,所以叫NUMA。
    NUMA
    NUMA往细了分还可以分为CC-NUMA、NC-NUMA等。
    那这种耦合度的扩展限制在CPU互联bus上,可扩展性差一些,那要接着增强计算能力,咋办?老办法,解耦,把多个机器利用bus互联。这就产生了MPP(Massively Parallel Processors)、COW(Cluster of
    Workstations)。
    MPP

    但是,目前超大规模的集群运算,一般单个节点都是SMP的,或者是NUMA的,然后用高性能BUS将不同的机器再互联起来。

    我们目前市面上见到的4路服务器、16路服务器,一般是NUMA架构的服务器,见到的8单元服务器,一般是指COW架构的服务器。

    软件提供了哪些支持?

    通过上面关于硬件并行的介绍,我们也了解到要想合理的发挥这些机器的性能,还是需要了解这些机器的硬件架构,主要是要理解耦合性和内聚性,以及在软件设计时充分考虑如何利用这些硬件特性,才能设计出高效、经济的软件系统。
    等会,什么时候软件设计人员开始需要了解硬件细节了?其实,大部分硬件细节都通过OS,系统库给封装了,对软件开发人员透明。这个其实也是个很有争议的话题:能否在不了解底层细节的情况下,开发出好的软件?
    我的想法是,计算机体系结构是分层的,我们必须站在中间这一层看问题,比如你是做OS的,你往上要看应用,往下要看硬件。要想把一个工具发挥到极值,还是需要了解你所使用的工具的,所谓人剑合一就是这个意思。
    扯远了,在我们常见的SMP系统上,单个机器是符合冯诺依曼计算机体系结构的,各个core的抽象是在OS这一层做的。os+开发库,可以让软件开发人员透明地使用并行开发方法,比如我们常用的并发库—POSIX Threads。当然还有其他的一些线程库。这个我们很熟悉,但是到了NUMA架构的机器上,是谁做的抽象呐?答案还是OS,因为到目前为止的体系架构仍然还是硬件级共享内存的。你想linux kernel就可以识别NUMA架构的计算机,安装多个CPU,比如说安装2个16核的CPU,OS起来后,你可以看到你可以直接利用的cpu是32个。也就是说基于这种架构硬件的软件开发和在普通的PC机上无太大区别。
    但是到了COW或者MPP时,由于是多个独立的主机通过高速bus互联的架构,是一种非共享内存的模型,每个主机运行独立的OS,读取另外主机的内存只能通过Message方式,需要定义read、write原语。实现这种的有一个开源库叫OpenMPI。当然其他的也有很多,只是原来在SMP、NUMA上的程序要想移植到非硬件共享的平台上来,一般有两个方法:1,修改原有的软件,让其适应在非硬件共享内存的平台上运行。2,针对非硬件共享内存的平台做软件抽象,使应用程序看起来像是在共享内存环境下运行—就是使用虚拟机技术。使用虚拟机技术可以在不同层次中做共享内存抽象。
    shared memory模型

    总结

    说了这么多,感觉说明白了。其实说白了,并行计算机架构就是在解决一个事情:如何利用多个core来实现更高的运算能力。这和这一个问题是等价的:利用什么组织架构来管理很多人,让这些人发挥更大的改造自然的能力。
    在摩尔定律失效的当下,在不同层次研究并行计算的架构就显得很重要了,我个人感觉在传统IC的基础上有以下两个方向可以继续保持摩尔定律:1,研究更专用,更高效的并行架构,包括微指令层、指令层、IC层、CPU层、整机层。2,研究如何编写更高效的软件。目前,因为原来摩尔定律带来的诟病,有太多的不合格程序员在写着不合格的程序,其中就包括我在内。

    参考资料

    链接打不开的话,请注意开车方式。

    Introduction to Parallel Computing
    Structured Computer Organization(Andrew S.Tanenbaum)
    Concurrency is not parallelism

    展开全文
  • —— 《计算机组成与设计 硬件/软件接口》 数据结构与算法 数据结构与算法尤其重要呀,校招大厂就特别爱考察,还没练起算法的同学,抓紧啦! 数据库 Mysql 两本高分的书。 Redis 经典之作,重点看前三章,redis 的...

    大家好,我是小林哥。

    平日里,大家都喊程序员加班多很辛苦,动不动就掉头发,但干的还是很香的,毕竟大多数公司钱还是给的很到位的,今年毕业应届生的我见到好多动不动就月薪 20K~30K 的,真让人两眼泪酸酸,当然这离不开他们大学期间的努力。

    讲真,没什么家庭背景的人,选择当程序员确实是比较好的选择了,原因有二:

    • 首先,当今互联网、AI 人工智能、大数据等都是高速发展的行业,自然人才需求很多,薪资也相对其他传统行业高;
    • 第二,纯粹看你技术能力,只要自己愿意付出努力,技术能力肯定会慢慢提高上来,而且现在比起几十年前,学习资料也越来越多,且越来越优质;

    虽然我们身处时代的红利,但是它是高速发展的,技术也是在一直迭代更新的,停止学习,只会被时代 game over,相当很残酷,所以日常学习是我们程序员,不可缺少的一个习惯。学到秃,你不想变强,都会变强。

    那说到学习,那必然离不开书呀,小林也在豆瓣逛一圈,把高分的书推荐给大家

    其实这些计算机基础完全是可以自学的,不管你是不是计算机专业的同学,只要你认认真真跟着网课和自己看书学习,绝对超过大多数所谓的科班毕业的同学!

    我也整理一套系统化学习cs的书籍,数据结构,计算机网络,数据库,计算机组成原理,操作系统这些统统都有。

    这次分享给大家,点击获取方式计算机必读书籍(含下载方式)包含据结构与算法、计算机网络、数据库、计算机组成原理、操作系统、Java、C/C++

    计算机网络

    如果你要入门 HTTP,首先最好书籍就是《图解 HTTP》了,作者真的做到完完全全的「图解」,小林的图解功夫还是从这里偷学到不少,书籍不厚,相信优秀的你,几天就可以看完了。

    在这里插入图片描述

    如果要入门 TCP/IP 网络模型,我推荐的是《图解 TCP/IP》,这本书也是以大量的图文来介绍了 TCP/IP 网络模式的每一层,但是这个书籍的顺序不是从「应用层 —> 物理层」,而是从「物理层 -> 应用层」顺序开始讲的,这一点我觉得不太好,这样一上来就把最枯燥的部分讲了,很容易就被劝退了,所以我建议先跳过前面几个章节,先看网络层和传输层的章节,然后再回头看前面的这几个章节。

    在这里插入图片描述

    另外,你想了解网络是怎么传输,那我推荐《网络是怎样连接的》,这本书相对比较全面的把访问一个网页的发生的过程讲解了一遍,其中关于电信等运营商是怎么传输的,这部分你可以跳过,当然你感兴趣也可以看,只是我觉得没必要看。

    在这里插入图片描述

    对于 TCP/IP 网络模型深入学习的话,推荐《计算机网络 - 自顶向下方法》,这本书是从我们最熟悉 HTTP 开始说起,一层一层的说到最后物理层的,有种挖地洞的感觉,这样的内容编排顺序相对是比较合理的。

    在这里插入图片描述

    但如果要深入 TCP,前面的这些书还远远不够,赋有计算机网络圣经的之说的《TCP/IP 详解 卷一:协议》这本书,是进一步深入学习的好资料,这本书的作者用各种实验的方式来细说各种协议,尤其是 TCP 部分写的很好(我也只看了这书的 TCP 部分,嘻嘻),这本书买第一版本就好了,第二版本翻译的有问题。

    在这里插入图片描述

    操作系统

    我看的第一本操作系统书是《现代操作系统》,这本书也是大家力推的入门操作系统的教材,有很多常见的面试题都基本是出自这里的,比如哲学家就餐、读者写者等问题。如果单纯看书觉得比较枯燥,可以搭配 B 站清华大学操作系统课程一起学习。

    在这里插入图片描述

    华为鸿蒙操盘手陈海波大神,也出了一本新书《现代操作系统:原理与实现》,是由上海交通大学陈海波、夏虞斌领衔撰写。由浅入深介绍现代操作系统经典理论与方法,结合前沿研究与工业界实践,面向真实场景与真实问题。全新打造 ChCore 微内核系列课程实验,建立对操作系统的第一手实践经验。

    在这里插入图片描述

    这本被称为神书的《深入理解计算机系统》,豆瓣评分高达 9.8 分,这本书严格来说不算操作系统书,它是以程序员视角理解计算机系统,不只是涉及到操作系统,还涉及到了计算机组成、C 语言、汇编语言等知识,是一本综合性比较强的书。

    在这里插入图片描述

    计算机组成原理

    小林最近写的有关 CPU 文章,算是计算机组成的系列了。计算机组成大部分人会认为是硬件开发的人才需要接触,软件开发的人不用了解,我觉得这个观点是不对的,你写的程序也是运行在计算机上的,并且实际上计算机组成原理有些知识还是跟软件有关系的,那就有一本很适合软件开发人员了解的书 —— 《计算机组成与设计 硬件/软件接口》

    在这里插入图片描述

    数据结构与算法

    数据结构与算法尤其重要呀,校招大厂就特别爱考察,还没练起算法的同学,抓紧啦!

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    数据库

    Mysql 两本高分的书。

    在这里插入图片描述

    在这里插入图片描述

    Redis 经典之作,重点看前三章,redis 的数据结构,持久化,主从复制,哨兵模式,这些都是常考的面试题。

    在这里插入图片描述

    Java

    小林虽然不是搞 Java 的,但是请教了搞 Java 大佬,我把他推荐的书也放在这啦,Java 同学可以参考参考。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    C/C++

    对于想入门 C 语言的同学,可以看看这本黑皮经典书籍。

    在这里插入图片描述

    C++ 最好的入门书,就是这本了。

    在这里插入图片描述

    入门完 C++ 下,我们也不能停下脚步,快马加鞭进入进阶的节奏。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    Linux

    Linux 命令入门的好书,跟着鸟叔一起敲 Linux 命令,很快就能入门了。

    在这里插入图片描述

    熟悉了 Linux 命令后,我们就从编程的角度来学习 Linux,这里有几本好书。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    什么?你还想再深入 Linux 系统,那就来啃 Linux 内核代码吧,保证你对操作系统由有新的认识。在这里插入图片描述

    在这里插入图片描述

    絮叨絮叨

    小林在 CSDN 写了很多图解网络和操作系统的系列文章,很高兴收获到很朋友的认可和支持,正好最近图解网络和操作系统的文章连载的有 20+ 篇了,也算有个体系了。

    在这里插入图片描述

    所以为了方便大家阅读,小林把自己原创的图解网络和图解操作系统整理成了 PDF,一整理后,没想到每个图解都输出了 15 万字 + 500 张图,质量也是杠杠的,有很多朋友特地私信我,看了我的图解拿到了大厂的offer。

    图解系统 PDF 开源下载:图解系统 PDF 下载地址(点击)

    图解网络 PDF 开源下载:图解网络 PDF 下载地址(点击)


    最后祝大家前程似锦,在编码的道路上一马平川。

    如果文章对你帮助的话,可以给我点个赞,点个收藏,评论下更先显温情!

    展开全文
  • 10个常见软件体系结构模式

    万次阅读 2018-05-07 14:06:04
    根据维基百科,架构模式是在特定环境下软件体系结构常见问题的通用可重用解决方案。架构模式类似于软件设计模式,但具有更广的范围。在本文中,我将简要地解释以下10种常见架构模式及其用法,优缺点。分层模式...

    有没有想过如何设计大型企业级系统? 在开始主要软件开发之前,我们必须选择一个合适的架构来为我们提供所需的功能和质量属性。 因此,在将它们应用于我们的设计之前,我们应该了解不同的体系结构。

    什么是建筑模式?

    根据维基百科,

    架构模式是在特定环境下软件体系结构中常见问题的通用可重用解决方案。架构模式类似于软件设计模式,但具有更广的范围。

    在本文中,我将简要地解释以下10种常见架构模式及其用法,优缺点。

    1. 分层模式
    2. 客户端 - 服务器模式
    3. 主从模式
    4. 管道过滤器模式
    5. 经纪人模式
    6. 点对点模式
    7. 事件总线模式
    8. 模型 - 视图 - 控制器模式
    9. 黑板模式
    10. 解释器模式

    1.分层模式

    这种模式可以用来构建可以分解为子任务组的程序,每个子任务都处于特定的抽象层次。 每层为下一个更高层提供服务。

    一般信息系统最常见的4层如下。

    • 表示层 (也称为UI层 )
    • 应用程序层 (也称为服务层 )
    • 业务逻辑层 (也称为域层 )
    • 数据访问层 (也称为持久层 )

    用法

    • 一般桌面应用程序
    • 电子商务Web应用程序。
    分层模式

    2.客户端 - 服务器模式

    这种模式由两方组成; 一个服务器和多个客户端 。 服务器组件将向多个客户端组件提供服务。 客户端向服务器请求服务,服务器向这些客户端提供相关服务。 此外,服务器继续侦听客户端请求。

    用法

    • 在线应用程序,如电子邮件,文件共享和银行业务
    客户端 - 服务器模式

    3.主从模式

    这种模式由两方组成; 主人奴隶 。 主组件将工作分配给相同的从组件,并根据从组件返回的结果计算最终结果。

    用法

    • 在数据库复制中,主数据库被视为权威来源,并且从属数据库与其同步。
    • 在计算机系统中连接到总线的外设(主从驱动器)。
    主从模式

    4.管道过滤器模式

    这种模式可以用来构造产生和处理数据流的系统。 每个处理步骤都包含在一个过滤器组件中。 要处理的数据通过管道传递。 这些管道可用于缓冲或同步目的。

    用法

    • 编译器。 连续的过滤器执行词法分析,解析,语义分析和代码生成。
    • 生物信息学工作流程。
    管道过滤器模式

    5.经纪人模式

    这种模式用于构建具有解耦组件的分布式系统。 这些组件可以通过远程服务调用相互交互。 代理组件负责协调组件之间的通信。

    服务器将其功能(服务和特性)发布给代理。 客户向经纪人请求服务,然后经纪人将客户重定向到其注册中心的适当服务。

    用法

    经纪人模式

    6.点对点模式

    在这种模式中,单个组件被称为同级 。 同事可能既作为客户端 ,向其他同行请求服务,又作为服务器向其他同行提供服务。 对等体可以充当客户端或服务器或两者兼而有之,并且可以随着时间动态地改变其角色。

    用法

    点对点模式

    7.事件总线模式

    这种模式主要处理事件,并有四个主要组成部分; 事件源 , 事件监听器 , 通道事件总线 。 信息源将消息发布到事件总线上的特定频道。 听众订阅特定频道。 听众会收到发布到他们之前订阅的频道的消息。

    用法

    • Android开发
    • 通知服务
    事件总线模式

    8.模型 - 视图 - 控制器模式

    这种模式也称为MVC模式,将交互式应用程序分为三部分,

    1. 模型 - 包含核心功能和数据
    2. 视图 - 将信息显示给用户(可以定义多个视图)
    3. 控制器 - 处理来自用户的输入

    这样做是为了将信息的内部表示与信息呈现给用户并从用户接受的方式分开。 它将组件分离并允许有效的代码重用。

    用法

    • 主要编程语言的万维网应用程序体系结构。
    • Web框架,如DjangoRails 。
    模型 - 视图 - 控制器模式

    9.黑板模式

    这种模式对于没有确定性解决策略的问题是有用的。 黑板图案由3个主要组件组成。

    • 黑板 - 包含来自解决方案空间的对象的结构化全局内存
    • 知识源 - 具有自己表示的专用模块
    • 控制组件 - 选择,配置和执行模块。

    所有组件都可以访问黑板。 组件可能产生添加到黑板的新数据对象。 组件在黑板上查找特定类型的数据,并可能通过与现有知识源的模式匹配找到这些数据。

    用法

    • 语音识别
    • 车辆识别和跟踪
    • 蛋白质结构鉴定
    • 声纳信号解释。
    黑板模式

    10.解释器模式

    此模式用于设计解释用专用语言编写的程序的组件。 它主要指定如何评估程序行,称为用特定语言编写的句子或表达式。 基本思想是为语言的每个符号设置一个类。

    用法

    • 数据库查询语言,如SQL。
    • 用于描述通信协议的语言。
    解释器模式

    建筑模式的比较

    下面的表格总结了每种架构模式的优缺点。

    建筑模式的比较

    希望你发现这篇文章有用。

    原文:https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013

    展开全文
  • 软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要包括构件、构件性质和构件之间的关系。 通过使用软件体系结构,可以有效地分析用户需求,方便系统的修改,以及减小程序构造...
  • 产品涉及到结构设计环节,但是自己并非结构设计专业,... 为了知道结构设计的基本尺寸等信息,便于和结构工程师及注塑厂家沟通,需要安装一款结构设计软件,作者找了结构设计的常用软件对比,最后选用上手比较容易的...
  • 软件体系结构基础

    千次阅读 2020-12-27 12:57:33
    软件体系结构基础,对软件体系结构做简要总结,通用模型可以应用于许多不同类型的系统。此部分选择有代表性的结构进行总结。体系结构的模式选择设计模式做阐述,风格选择典型的三种体系结构风格做阐述,框架选择MVC...
  • 第三章 软件体系结构风格 一、基本概念 1. 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能够达到体系结构级的复用。 2. 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。...
  • 软件体系结构

    千次阅读 2014-10-30 20:28:50
    软件体系结构笔记 L1.pdf 课程简介源起... 现状系统分析员遇到的困境解决之道 基于软件体系结构的开发 示意图软件体系结构的生命周期 体系结构的非形式化描述 通常使用自然语言描述概念和...
  • 软件体系结构风格整理

    万次阅读 多人点赞 2019-01-06 15:17:36
    什么是软件体系结构风格? 软件体系结构风格(Architectural Styles)是描述特定系统组织方式的惯用范例,强调了软件系统中通用的组织结构。 风格这个词是个模糊的概念,不同的人有不同的理解,这有时候就让人很...
  • 第1章 计算机科学基础 ...对于本节内容的知识点,作为基本技能,主要在程序员级别中考核,在软件设计师级别中很少直接考核,而是融合在其他知识点中。 数据的表示 本节主要要求考生掌握数值数据的原码、反码
  • 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。 处理构件负责对数据进行加工; 数据构件是被加工的信息; 连接构件把体系结构的不同部分组组合连接起来。 这一定义注重...
  • 软件体系结构风格

    千次阅读 2013-05-22 15:04:32
    读者可能会觉得"软件体系结构太抽象、太理论化,没有什么实际的东西"。然而,任何实践都必须接受理论的指导,如果抛弃理论基础,一味地追求实用,那也只能是囫囵吞枣。  软件体系结构设计的一个核心问题是能否使用...
  • 计算机层次化存储结构

    千次阅读 2016-07-27 14:23:45
    随着CPU不断的升级和总线速度的不断提高,存储器的速度远远不能与之匹配,高速缓存的存取速度和CPU相匹配,但价格高,且容量;内存由DRAM构成,速度比高速缓存慢,但容量大;辅助存储器速度比内存慢的多,但容量又...
  • 软件体系结构期末考试总结

    千次阅读 多人点赞 2019-12-30 23:19:35
    今天刚考完软件体系结构,把考前的知识点总结发到群里,仅供自己参考,但是里面的内容确实有用也是面试会问到的基础,所以这门课很重要的还是,只可惜我是预习了一两天就参加考试了 对了我们的教材是《软件工程体系...
  • 1.量子计算软件 国外量子计算软件 1.pyquil pyquil 是美国的量子计算公司 Rigetti 开发的,可以实现量子线 路的计算模拟、含噪声的量子逻辑门计算模拟,量子芯片的云端运行等功能。Pyquil虽然比较小众,功能相对...
  • 3.程序运行模型-计算机体系结构

    千次阅读 2018-07-30 13:59:32
    程序运行模型-计算机体系结构 在我们日常生活中,经常用到电脑、手机、智能家电等电子产品。我们都会使用它们,它们的里面都有各自的程序在不停的运行着。那么,这些程序是怎么运行的呢?在哪里运行?程序又放在...
  • java编程常用软件

    万次阅读 多人点赞 2019-12-08 22:59:10
    有大神曾说“给我一个记事本,我还你一个项目”,作为小白的我,以前也对这句话深信不疑,但当我参加人生第一次编程考试的时候,我发现我用记事本码代码的速度... 废话讲完了,以下是我推荐的几款编程常用软件: ...
  • 常用EDA软件的license文件结构分析

    千次阅读 2010-11-13 12:29:00
    目前,80%以上的EDA软件,如ANSYS的Ansys(大型通用有限元分析软件)和Fluent(世界领先的计算流体动力学软件)、PTC 的ProE(三维图形软件)、Cadence 的OrCAD和Allegro(原理图/PCB设计软件)、Altera的...
  • 软件工程:数据流图和结构图怎么画?

    万次阅读 多人点赞 2020-09-01 18:43:03
    文章目录Step 1:根据软件的功能描述,绘制数据流图:Step 2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合: Step 1:根据软件的功能描述,绘制数据流图: 问题表述: ...
  • 哈佛结构 (英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下...
  • 计算机等级考试四级--软件工程

    千次阅读 2019-02-15 11:19:26
    ——软件工程(2013版) (殷绍波) 2015年9月26日录入 目 录 第1章 软件工程概述 - 8 - 1.1 软件软件工程的概念 - 8 - 1.1.1 软件的概念 - 8 - 1.1.2 软件危机 - 9 - 1.1.3 软件工程的概念 - 9 - 1.2 ...
  • 软件体系结构》 练习题

    千次阅读 2018-07-10 10:32:50
    就在刚才,提心吊胆的《软件体系结构》考试结束了,好久没有嗓子疼过了(昨天背知识点背的),脑袋里面又装下了很多知识,虽然不知道什么时候还能再用到,但一直相信,学到的就是自己的东西。分享一下备考过程中搜集...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 312,250
精华内容 124,900
关键字:

常用结构计算小软件