脚本宝典收集整理的这篇文章主要介绍了软件体系结构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
按照惯例,在这里写下我对软件体系结构的一点理解和认识 软件工程是一门研究利用工程化的方法,构建维护有效的实用的高质量的软件的学科,东北林业大学软件工程专业核心课,就是按照软件生命周期的课来安排的,将每一个生命周期中的过程都抽象成一门课来给学生讲解,软件体系结构这门课是继需求分析和系统分析之后的一门课 需求分析教会了我们如何进行需求获取、需求分析和需求验证,最后形成需求规格说明书,系统分析教会了我们如何抽象出合理的类图,而软件体系结构讲的是如何把类抽象成构件以及如何合理的安排这些构件(或者类)
在两次或多次开发的过程中,重复使用相同或相近的元素的过程
青鸟模型:外部接口+内部接口
领域具有内聚性和稳定性——前提 可重用信息具有领域特定性——约束
对大量的构件进行有效的管理,方便构建的存储、检索和提取 构件的描述;名称、功能、参考函数、版本号等
关键词法
优点:简单易行 缺点:不便于查询刻面法
优点:方便查找相似构件 缺点:查询程序太难做超文本法
优点:操作人性化 缺点:容易差跑题了软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的建立应位于需求分析之后,软件设计之前,在建立软件体系结构时,设计师主要从结构的角度对整个系统进行分析,选择恰当的构件、构件间的相互作用以及他们的约束,最后形成一个系统框架以满足用户的需求,为软件设计奠定基础。
主要是整个系统的抽象结构表述 关注系统提供最终用户的功能 不涉及具体的编译即输出和部署 通常用BOOCH标记法,或在UML中用类图表示
主要侧重软件模块的组织和管理,为编程人员服务 软件可以通过程序库或子程序进行组织,从而可以由不同的人员进行开发 主要考虑软件内部需求,要充分考虑软件开发的容易程度,重用性,软件的通用性,充分考虑由于具体开发工具不同而带来的局限性。
侧重系统的运行特性 关注非功能需求(性能、可用性、并发性) 定义逻辑视图中的各个类的操作是在哪一个线程中被执行 可以描述成多层抽象 每个级别分别关注不同的方面 最高层抽象中:进程结构=构成一个执行单元的一组任务 | 独立、分布 | 通过逻辑网络相互通信
如何把软件映射到硬件上 关注系统性能、规模、可靠性等
重要系统活动的抽象 最重要的需求抽象 联系4个视图
建立软件体系结构阶段 选择合适的体系结构风格,把体系结构需求阶段已确认的构件映射到体系结构中,产生一个中间结构,分析构件之间的相互作用和关系,对中间结构进行细化。
设计阶段 主要是对系统进行模块化并决定描述各个构件间的详细接口、算法和数据类型的选定,对上支持建立体系结构阶段形成的框架,对下提供实现基础。
实现阶段 设计阶段设计的算法及数据类型进行程序语言表示,满足设计体系结构和需求分析的要求,从而得到满足设计需求的目标系统。
构件定义:构件是一个数据单元或一个计算单元,它由构件的对象的集合、属性的集合、动作的集合和端口的集合组成。
抽象表示为C = (O,A,X,P), O 是构件的所有对象的集合; A 是构件属性的集合; X 是构件动作的集合; P 是构件端口的集合。
构件是具有某种功能的可重用的软件模版单元 从其内容角度看,表现为:计算元素、数据存储 从其形式角度看,表现为:原子构件、复合构件 构件的接口:一组端口
顺序结构(顺序运算) 选择结构(选择运算) 循环结构
顺序运算定理:构件间的交互依据内容分类: 表现为:管道、过程调用、事件广播…… 连接件的接口:一组角色
连接件是构件运算的实现,它是一个6元组 <ID,Role,Beha,Msgs,Cons,Non-Func> 其中,Role为连接件和构件的交互点的集合,它由一个四元组定义 Role=<Id,Action,Event,LConstrains>
拓扑逻辑和约束
定义:设论域为U, (1)构件是一个软件体系结构 (2)连接件是一个软件体系结构 (3)构件经有限次连接(运算)后是软件体系结构。 软件体系结构记为A=<C,O>,其中C表示组成体系结构的构件集合,O表示构件运算的集合
性质:
什么决定了软件体系结构风格?控制原则、质量属性
缺点: 不适合处理交互频繁的应用 数据解析、合成麻烦
扩展形式:管线、有界管道、批处理
缺点: 调用使得修改被传播
构成:事件消费者、事件生产者、事件管理器
基本结构: 事件监听接口和事件监听器 事件监听的注册和注销特征: 是面向对象风格的变体 事件接触者不知道哪些构件会被这些事件影响 无法预知和假定构件的处理顺序
优点: 为重用提供支持 为系统改进提供方便
缺点: 弱化了对系统计算的控制能力 有数据共享的负担 系统逻辑关系复杂
优点: 支持基于抽象程度递增的系统设计 良好的扩展性 支持重用
缺点: 层次划分困难 适用性受限
要素: 两类构件:中央数据单元+外部构件 控制策略:两类构件间的交互方式
分类: 传统数据库型(被动) 黑板系统(主动)
优点: 易于增加数据的生产者和消费者 良好的知识库扩展性 易于保证数据的同步、一致性
组织规则: 顶、底 构件不能直接相连 连接件之间自由连接 连接件的直接相连是有序的
工作方式:请求+通知
特点: 基底独立性 构件只见交互只能通过消息传递实现 多线程
以上是脚本宝典为你收集整理的软件体系结构全部内容,希望文章能够帮你解决软件体系结构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。