软件系统设计(上)

  • 为学堂在线清华大学《软件工程》部分视频笔记

  • 目录

    12.8数据库选择策略

    数据库应具备的功能

    数据库的基本分类

    常见的数据库及其特点

    数据库选择策略

    12.1软件体系结构概念

    软件的复杂性

    软件体系结构概念

    软件体系结构的发展

    软件体系结构的目标

    风格、模式和框架

    12.2软件设计原则

    12.3软件体系结构风格(一)

    软件体系结构风格

    常见的体系结构风格


  • 12.8数据库选择策略

    • 数据库应具备的功能

    • 数据库的基本分类

    • 常见的数据库及其特点

      • mysql

      • Mongodb

      • Redis

    • 数据库选择策略

      • 分离业务
  • 12.1软件体系结构概念

    • 软件的复杂性

      • 问题:当系统的规模和复杂度不断增大的时候,构造整个系统的关键是什么? (比如统计文件单词频率与输出频率最高的单词 和 web信息检索之间的对比)
        随着软件系统的规模和复杂性不断增加,对系统的全局结构设计和规划变得比算法的选择和数据结构的设计明显重要得多。
    • 软件体系结构概念


      软件体系结构( Software Architecture )包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。
      • 构件
        构件是具有某种功能的可复用的软件结构单元,表示系统中主要的计算元素和数据存储。
        构件作为一个封装的实体,只能通过他的接口和外部环境进行交互,其内部的结构是被隐藏起来的。构件的功能,以服务的形式体现出来,并通过接口向外发布,进而产生与其他构件之间的关联。
      • 连接
        连接是构件间建立和维护行为关联与信息传递的途径。
      • 连接件
        连接件表示构件之间的交互并实现构件之间的连接。
        ​连接件也可以看做是特殊的构件。
    • 软件体系结构的发展

    • 软件体系结构的目标

    • 风格、模式和框架

      • 框架和体系结构的关系
      • 框架和设计模式的关系
  • 12.2软件设计原则

    • 软件设计原则
      设计原则是系统分解和模块设计的基本标准,应用这些原则可以使代码更加灵活、易于维护和扩展。
      • 抽象
        抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思考方法。
        抽象可以起到降低复杂性和增强扩展能力的作用
      • 封装
        封装和信息隐藏是指每个软件单元对其他所有单元都隐藏自己的设计决策,各个单元的特性通过其外部可见的接口来描述。
        要求: 应将单元接口设计得尽可能简单,并将单元对于环境的假设和要求降至最低。
      • 模块化
        模块化是在逻辑和物理上将整个系统分解成多个更小的部分,其实质是“分而治之”,即将一个复杂问题分解成若干个简单问题,然后逐个解决。
        • 系统分解原则
          • 高内聚,低耦合

      • 层次化

      • 复用


        复用( Reuse )是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统,其好处在于提高生产效率,提高软件质量。
  • 12.3软件体系结构风格(一)

    • 软件体系结构风格

      标准化的体系结构有利于系统的互操作
    • 常见的体系结构风格

      • 独立构件风格

      • 数据流风格

      • 以数据为中心的风格

        • 仓库体系结构
          适合于实现哪些经常发生改变而且具有复杂数据处理的任务,只要仓库的定义良好,就可以很方便地增添功能模块从而实现向系统增加新的服务
          ​问题:每个模块和仓库之间的耦合非常高,集中式的仓库很有可能成为系统性能的瓶颈
      • 虚拟机风格

      • 调用/返回风格

        • 主程序-子程序风格
          C语言
        • 面向对象
          C++,Java
      • 管道-过滤器风格


        构件具有良好的隐藏性和高内聚、低耦合的特性,可以很好地支持软件的重用和扩展,但是这种结构不适合交互应用的情况,如果管道过长或者过滤器过于复杂的话,系统性能大大降低。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件系统设计是在软件开发过程中非常重要的一步。软件系统设计书(Software System Design Document)是一份详细描述软件系统设计的文档。它包含了关于软件系统的架构、模块划分、功能设计以及相互之间的关系等信息。 软件系统设计书通常由软件架构师和开发团队共同编写。它的目的是为了梳理和明确整个系统的设计方案,从而为后续的开发、测试和部署提供指导。 在软件系统设计书中,首先需要明确系统的需求和目标。然后,根据这些需求和目标,设计系统的各种模块。模块之间的关系、数据流和接口也需要在系统设计书中进行明确描述。 此外,软件系统设计书还应该包含关于系统架构的详细描述。架构是软件系统的核心,它定义了系统的整体结构、组件之间的通信和协作方式。设计师需要根据系统的要求,选择合适的架构模式,并将其细化为具体的组件和模块。 在软件系统设计书中,还应该包含关于系统功能设计的内容。这一部分需要详细描述系统的各种功能和其实现方式。这可以包括使用的算法、数据结构和设计模式等。 最后,软件系统设计书还可以包括其他的内容,如性能指标、安全和可扩展性等方面的设计。这些内容可以帮助评估系统的性能和可靠性,以及为将来的扩展做好准备。 总之,软件系统设计书对于软件开发过程非常重要。它提供了一个详细的设计方案,帮助团队成员理解系统的整体架构和实现细节,促进团队之间的沟通和合作。同时,它也为后续的开发、测试和部署提供了指导。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值