软件工程学习(六)

      本次学习的是《软件工程》里的12.1,12.2,12.3节内容。

软件体系结构概念

       软件工程师需要对软件系统的结构和行为进行抽象,实现系统级的复用(代码级的复用已经不能够满足日益复杂的软件)

       软件体系结构:包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。构建+连接+约束

       包括:构建(一组基本的构成要素)、约束(作用于这些要素或连接关系上的限制条件)、连接件(要素之间的连接关系)、质量(性能)、物理分布(这些要素连接之后形成的拓扑结构)

 构建

 任何能产生某种功能的软件体都可以称为构建,比如程序函数、模块、类、对象、文件等,构建作为一个封装的实体,只能通过它的接口与外界进行交互,其内部的结构是隐藏的,构建的功能以服务的形式体现出来,进而产生与其他构建的关联。

连接

需要连接机制和协议的支持。

 连接件

 软件体系结构设计目标

软件体系结构发展

 风格、模式和框架

软件设计原则

       软件设计原则可以使代码更加灵活、易于维护和扩展。不同的语言可以有不同的原则,但是必须要有的是抽象、封装、模块化、层次化和复用

抽象

封装

              单元设计要尽可能简单

模块化

                系统分解的目标是高内聚,低耦合(一个模块或子系统内部之间联系很紧密,不同模块或子系统之间独立性强)

例:一个软件系统中,A、B、C都要访问一个关系数据库(此时耦合度高

层次化

 

 复用

软件体系结构风格

 

   使用软件体系结构风格,可以促进设计的重用和大量代码的重用,也有利于系统的互操作。

   软件体系结构风格包括五种:

主程序-子程序风格

例子:c语言

面向对象风格

 例子:c++,java,python

管道-过滤器风格

优点:构件具有良好的封装性,符合高内聚、低耦合的特点

缺点:不适合交互应用

 仓库体系结构

所有的功能模块只访问和修改一个单一的数据数据存储功能模块之间相互独立

优点:适用于经常改变并且具有复杂数据处理的任务,可以很方便的增添功能模块

缺点:每个功能模块和仓库的耦合性很高

例子:现代程序设计编译器 / 数据库

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值