软件设计

软件复杂度一般有三个来源

  • 代码库规模,与开发工具、编程语言有关,代码行数与复杂度不成正相关。
  • 技术复杂度,指不同的编程语言、编译器、服务器架构、操作系统等能够被开发人员理解的难易程度。
  • 实现复杂度,不同的编程人员对需求的理解不同,在编程时会有截然不同的编写风格。

程序设计

  • 解耦
  • 模块化

软件 分层架构

  • 功能性需求:一个程序为用户做些什么,如文件上传、数据查询
  • 非功能性需求:除功能性需求以外的需求,如性能、安全性、容错与恢复、本地化、国际化

非功能性需求构建起来的就是我们的软件架构
软件架构就是软件的基本结构
包括三要素:代码和代码之间的关系和两者各自的属性。

最经典的软件架构就是分层架构——将软件系统进行分层。
主要优点:

  • 复用性
  • 横向扩展

劣势:

  • 开发成本变高,从上到下都要写
  • 性能降低
  • 代码复杂度增加,层与层直接强耦合,组合功能的调用需要增加层与层之间的调用

功能性需求:分层是为了把较大的复杂问题拆分为多个较小的问题,解耦
架构(非功能性需求):分层能提升代码可扩展性

代码分层架构设计主要为了实现责任分离、解耦、组件复用、标准制定

posted @ 2023-08-15 21:17  fchhk  阅读(20)  评论(0编辑  收藏  举报