• 软件系统的分层

    • 应用层与实现层
      主观上对系统按照用户需求和内在技术原理进行分层,其实就是在区分应用层与实现层。

      • 应用层的一切都是从用户需求出发的
      • 实现层的一切都是使这些需求落地实现的内容,实现层中的所有内容理论上都是技术性的,并且都会被当做达成目标的方法。
    • 功能性与非功能性
      考虑一个系统能够做什么和这个系统做的怎么样式有区别的,这就是对系统做功能性和非功能性划分的基础。

      • 功能性特征的例子包括通过网络发送数据、播放音乐、拍摄照片和修改图片中的一个特定的像素。
      • 非功能性特征的例子包括一个好看的可视化用户界面,快速运行的软件,以及安全、私密地保存用户数据的能力。

对手机使用两种划分方法的示例

分层 功能性特征 非功能性特征
应用层 拍照片
打电话
发邮件
上网
玩游戏
拥有漂亮的用户界面
操作简单
拍出的照片效果很好
应用层 永久保存本地数据
自动连接最近的基站
使用硬件加速优化屏幕的动画效果
高效存储数据
省电
确保用户隐私的安全性

应用层的功能是系统中最抢眼的部分,因为它满足了用户的明确需求,这些部分一般来说就是用户愿意学并深入了解的;另一方面,实现层的非功能性特征很少会被视作系统的主要组成部分,而且他们往往会被人们忽视。

完备性
完备性在任何软件系统中都是重要的非功能性特征。
- 数据完备性: 软件系统中的数据要完整、正确且无冲突
- 行为完备性: 软件系统要可顺利运行,并且保证不存在逻辑错误
- 安全性: 软件系统只对认证用户授权有限的数据访问与使用功能

区块链 - 基础知识 - 第一讲相关推荐

  1. 《区块链基础知识25讲》学习笔记——第一部分区块链术语与技术基础

    本书相对来说比较基础,笔记会比较简单 第一讲 理解分层的概念 一.软件系统的分层 根据主观上对系统按照用户需求和内在技术原理进行划分,可以分成应用层与实现层. 应用层是从用户需求出发 实现层本质上是技 ...

  2. w1区块链基础知识25讲

    11讲哈希值在现实世界的应用 哈希函数:以任意长度的数据输入,输出固定长度的数值,比如 32byte .这个值就称为哈希值,也可以称为 摘要 散列 指纹等. 11.1数据对比 目标就是对比两份数据不需 ...

  3. 区块链基础知识25讲

    刚刚读完这本书,总结回顾一下知识点 作者:Daniel Drescher 第1部分 区块链术语与技术基础 第1讲 理解分层的概念 系统分层 应用层与实现层 功能性与非功能性 应用层关注用户的需求,实现 ...

  4. 《区块链基础知识25讲》-第十八讲-核实并且添加交易数据

    目标 在确保真实性的前提下,允许每个人在历史交易记录中添加新的交易记录 挑战 在保持系统开放的同时,还要确保新添加交易的有效性 解决方案 为了确保唯一有效的交易被添加到系统中,所有节点都必须承担监督者 ...

  5. 《区块链基础知识25讲》-第七讲-双花问题

    三种含义 复制数字产品引起的问题 去中心化的点对点分布式账本种可能存在的问题 完全分布式点对点系统种违反完备性的一个例子 双花问题可以看作是去中心化点对点系统中数据一致性的问题

  6. 区块链基础知识与关键技术解析

    区块链基础 1. 区块链的来龙去脉     1.1 区块链技术起源     1.2 比特币产生背景与现状     1.3 数字货币概念     1.4 比特币技术原理 2. 区块链概念与产业现状   ...

  7. 区块链 - 区块链基础知识:交易哈希链

    区块链 - 区块链基础知识:深入了解交易哈希链 本文的主题是执行有关交易哈希链. 交易池的角色以及 一个最长的区块链如何永远占据主导. 讨论的细节包括以下内容: 事务哈希链的实现细节 交易池的角色 为 ...

  8. 【问链财经-区块链基础知识系列】 第四十四课 邮储银行:U链福费廷业务系统

    一.案例摘要 福费廷业务是银行根据客户或其他金融机构的要求,在开证行.包买行或其他指定银行对信用证项下的款项做出付款承诺后,对应收款进行无追索权的融资.邮储银行以企业级开源区块链平台 Hyperled ...

  9. 区块链基础知识系列 第一课 区块链网络简介

    区块链是一种分布式分类帐技术 (DLT),通过建立新一代事务性应用程序的新信任度.可计帐性和透明度,来简化业务流程.区块链网络首次引入到了比特币兑换市场,但其实际使用范围远远超出了加密数字货币事务处理 ...

最新文章

  1. 快捷指令_苹果怎么关闭快捷指令通知提醒 取消ios14快捷指令设置方法
  2. java读取hdfs文件夹_HDFS 读取、写入、遍历文件夹获取文件全路径、append
  3. OpenCV与gcc和CMake一起使用
  4. PHP获取客户端、PHP获取服务器相关信息
  5. 折纸机器人的步骤图解_折纸图解走路的人
  6. 解决CentOS7 无法启动mysql 的解决办法
  7. 通才还是专才——由摩托裁员引发的讨论
  8. 结对第一次—原型设计
  9. 米莱迪机器人加物理攻击_游戏中的那些事:米莱迪物理伤害,这个皮肤没见过,蔡文姬一直出错装...
  10. 计算机基础1.4习题答案,中职计算机应用基础习题集及答案~.doc
  11. win10无线投屏_win10投屏快捷键无需频繁插拔
  12. C++setw函数的运用
  13. unity暂停和继续按钮
  14. CTFShow“萌心区”WP(上)
  15. 词云中去重复的词_为什么要避免标题关键词重复?
  16. golang基础面试题总结
  17. 系统的学习linux
  18. 【Please, upgrade your dependencies to the actual version of cor问题】
  19. 【智慧农业】温室大棚控制系统如何解决管理粗放问题
  20. 样本均值方差的期望的推导

热门文章

  1. AD中出现off grid pin问题的解决方法
  2. python远程安装软件_在家想远程公司电脑?Python + 微信一键连接!
  3. 什么是进程? 什么是线程?
  4. NDIS笔记---(2)
  5. PIXI_锚点图片位控
  6. vmm_xactor
  7. Manjaro安装pscs6菜单栏无法显示中文,提示‘$$/ADMDialog/iFontProblemWarning=The Adobe UI font could not be loaded.’
  8. php单独使用laravel数据库 | laravel手动关闭数据库连接
  9. HL7体系入门级介绍【转】
  10. 一步搞定IP地址查询:这个在线工具帮你快速掌握设备的位置信息!