软件体系结构
格里芬阀门工
这个作者很懒,什么都没留下…
展开
-
软件质量属性:易用性
定义:指用户使用软件的难度的高低,主要考虑用户能否更快得上手一款软件,降低用户的错误操作对系统的影响,用户使用的舒适度等提高易用性有两个大方向:运行时策略和设计时策略运行时策略的具体实现有:1.系统猜测用户想要完成的任务,如输入法和搜素引擎的联想功能2.系统给予用户实时反馈,如进度条等,降低用户等待的焦虑3.系统给用户提供一致的体验,如鼠标灵敏度的设置4.支持撤销操作,降低误操作的影响,比如回收站功能,或是各种编辑软件的撤销功能设计时策略的具体实现有:1.把用户界面和系统其他原创 2020-06-29 08:40:16 · 946 阅读 · 0 评论 -
软件质量属性:可测试性
测试的目的:尽可能多地发现软件中存在的BUG,不符合需求的部分或者是未实现的需求测试的意义:尽可能确保软件正式上线运行后不出现问题,减少潜在的风险和损失可测试性定义:指软件测试的难易度和效率,如果测试结果越直观,测试效率越高,可测试性就越好。因为软件测试主要分为黑盒测试和白盒测试,前者只关注输入和输出是否对因,后者要关心内部逻辑是否正确,所以提高可测试性的思路也围绕着这两种方法进行对于黑盒测试,主要策略有:1.记录/回放:用自动化/半自动化的方式测试,测试工具来模拟人与系统的交互2.把接原创 2020-06-29 08:34:18 · 553 阅读 · 0 评论 -
软件质量属性:安全性
定义:在确保用户正常使用系统的情况下,软件抵御攻击的能力。主要的关注方面有:不可否认性,私密性,完整性,保证性,可用性和审计提高安全性的方法主要分为三大类:抵抗攻击,检测攻击,从攻击中恢复一、抵抗攻击:防止攻击队系统和数据造成影响乃至破坏1.用户的证实:通过账号密码,指纹等识别手段,确定现在正在访问系统的人是真正的用户2.用户的授权:管理用户权限,确认用户的操作在自己的权限内3.维持数据的保密性:数据传输时进行加密4.维持数据的完整性:利用MD5码等校验文件是否未修改。MD5码是原创 2020-06-29 08:16:06 · 1355 阅读 · 0 评论 -
软件质量属性:可修改性
修改顾名思义就是修改软件的内容,可修改性,就是通过修改花费的时间,金钱,人力等数据衡量修改是否足够简单方便低成本。可修改性越高,每次修改所花费的人力物力成本也就越低提高方法:主要分为两大类:1.限制修改范围;2.延迟绑定时间一、限制修改范围:让修改所影响的软件范围尽可能小,具体方法有:1.高内聚低耦合,让软件模块化,每次只修改一个模块。通过尽可能地借助中间件可以达到这个效果2.预先考虑到可能的修改3.让模块通用,这样修改时不需要修改许多模块,只需要修改通用的模块4.隐藏信息,借助面向原创 2020-06-28 16:53:11 · 1564 阅读 · 0 评论 -
软件质量属性:性能
定义:系统的性能是指系统响应事件的速度。性能主要与事件数量和事件到达的模式有关。其中事件到达的模式主要是指事件到达的周期性规律和变化提升性能也有三个大的方向:资源的需求,资源的管理和资源的仲裁一、资源的需求:从需求入手,改变处理这些事件所需要的资源总量具体方法有:1.提高效率:采用更高效合适的算法,减少单个事件占用的资源数2.减少要处理的数据总量:只抽取一部分事件进行处理,防止系统资源被耗尽3.限制执行时间:有的事件的处理结果会随着处理时间变多和越来越精确,但为了减少资源占用量.原创 2020-06-28 16:51:14 · 467 阅读 · 0 评论 -
软件质量属性:可用性
定义:用户使用系统时,系统可用的概率(预先告示的停机维护不算做不可用的情况)大白话就是,系统故障崩溃概率越小,可用性越高提高可用性有三个大的方向:故障检测,故障恢复和故障避免一、故障检测:检测整个系统是否有故障,如果检测到了故障则及时通知厂商的运维人员。具体方法有:1.ping/echo。监控组件不定时地向被监控组件发送消息并等待回应,如果能够收到回应则视为正常,如果收不到则视被监控组件为故障。2.心跳:被监控组件主动地,周期性地向监控组件发送消息,如果监控组件连续一段特定的时间没收到消原创 2020-06-28 16:43:40 · 2293 阅读 · 0 评论 -
事件系统体系结构风格
事件:能够激活对象功能的动作,当发生动作后会给所涉及对象发送一条消息,对象便可执行相应的功能。事件系统主要分为隐式调用和显示调用两种隐式调用:1.事件的触发者不知道那些构件会被影响,相互独立2.不能假设构件的处理顺序,甚至不知道哪些构件或过程会被调用3.在整个系统中,各个构件之间无联系,各自独立,通过对事件的发布和注册实现关联整体结构如下:事件源负责广播一些事件,系统中的其他处理器在事件管理器中注册自己感兴趣的事件,并将自己的过程与某个事件相关联,事件管理器通原创 2020-06-28 15:12:41 · 2839 阅读 · 0 评论 -
虚拟机风格
主要有解释器风格和规则系统风格两种解释器风格:当底层不支持上层时,在两者之间加入一层虚拟机做模拟仿真,消除硬件和软件之间的差异优点:可以模拟原来不具有的功能,可以模拟一些灾难性的情况缺点:效率太低,因为多了一层解释器应用:各种脚本语言,配置文件,通信协议,用户输入等规则系统风格:根据既定的规则和目前的事实,做出相应的输出特点:有需要被执行的代码,解释器,控制解释器的部分,存储当前状态的存储器规则引擎和黑板系统有相似之处,都是存储规则和各种事实,计算机自原创 2020-06-28 15:11:39 · 2218 阅读 · 0 评论 -
以数据为中心体系结构风格
概念:在共享区域内存储数据,在存储区外,有许多构件可以访问修改数据主要有仓库体系结构风格和黑板体系结构风格两种仓库体系结构有一个中心数据结构,表示当前数据的状态。还有一组对中心数据进行操作的独立构件。根据输入流中的事物类型触发需要执行的过程典型例子:数据库,编译器,Eclipse黑板体系结构中心数据结构的当前状态触发并选择需要执行的过程应用场景:有时面对一个问题,没有直接地算法,而是多种算法都有可能得到结果,每个步骤都可能产生多个可能的解,或是需要多领原创 2020-06-28 15:10:46 · 2015 阅读 · 0 评论 -
调用返回体系结构风格
1.单线程控制,把整个程序划分为若干个步骤,同时有功能模块,把步骤集成至模块中2.操作和数据绑定,隐藏实现和其他细节3.面向对象的思想,有多态,继承等变种:1.客户机-服务器:一个进程就是一个对象。不对成:客户端一定知道服务端位置(如ip,网址等),但服务端不一定知道客户端2.层次化结构:可以看作是1的扩展,运行时通常只有少量的层3.组件化风格:多样化接口,支持动态配置使系统更加灵活...原创 2020-06-28 15:09:34 · 1413 阅读 · 0 评论 -
管道-过滤器体系结构风格
特点:单向流;数据源源不断地产生;有一部分数据产生或处理后立马发往下一个处理构件;可能有缓冲(防止处理速度不一致造成数据丢失)应用实例:编译器,UNIX管道,图像处理,信号处理等优点:1.良好的隐蔽性和高内聚、低耦合的特点2.支持复用3.方便维护和升级,可以随时删去旧过滤器或加入新的过滤器4.允许对一些属性进行分析,如死锁,吞吐量5.支持并发,因为每个过滤器单独工作缺点:1.不适合处理有交互的应用2.系统性能不高,而且增加了编写原创 2020-06-28 15:08:29 · 3080 阅读 · 0 评论 -
批处理体系结构风格
特点:近乎线性;每个处理步骤是一个独立的程序;每一步在前一步结束后才开始;数据必须是完整的,以整体的方式传播。应用实例:代码重复检测工具原创 2020-06-28 14:48:08 · 2558 阅读 · 0 评论 -
数据流体系结构风格
主要分为批处理风格和管道-过滤器风格特点:1.数据到达时激活,无数据时不工作2.系统结构由数据在各处理之间有序移动决定3.在纯数据流系统中,处理之间除了数据交换没有任何交互基本构件:数据处理,构件接口有输入端口和输出端口连接件:数据流。单向,通常异步,有缓冲。接口有reader和writer按照处理和数据流分布,主要分为以下三种但第一种因为数据流向混乱,可用性会很差...原创 2020-06-28 14:21:40 · 2511 阅读 · 0 评论