软件架构设计、软件设计的基本概念和相关知识

图片[1]-软件架构设计、软件设计的基本概念和相关知识-不念博客
软件架构设计、软件设计的基本概念

一、软件架构设计

1、软件架构的定义

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件))、指导构件集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。

2、软件架构的风格

(1)数据流风格:数据流风格包括批处理序列管道/过滤器两种风格;

(2)调用/返回风格: 调用/返回风格包括主程序/子程序数据抽象和面向对象以及层次结构

(3)独立构件风格:独立构件风格包括进程通信事件驱动的系统;

(4)虚拟机风格:虚拟机风格包括解释器基于规则的系统;

(5)仓库风格:仓库风格包括数据库系统黑板系统超文本系统

3、软件架构的评估

(1)从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式,分别是基于调查问卷(或检查表)的方式基于场景的方式基于度量的方式,其中基于场景的评估方式最为常用

(2)基于场景的方式主要包括:架构权衡分析法(ATAM)、软件架构分析法(SAAM)和成本效益分析法(CBAM)。

二、软件设计

软件设计是需求分析的延伸与拓展。需求分析阶段解决“做什么”的问题,而软件设计阶段解决“怎么做”的问题。同时,它也是系统实施的基础,为系统实施工作做好铺垫。合理的软件设计方案既可以保证系统的质量,也可以提高开发效率,确保系统实施工作的顺利进行。从方法上来说,软件设计分为结构化设计与面向对象设计

1、结构化设计

(1)SD是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程

(2)SD 方法的基本思想:是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计详细设计两个阶段,其中概要设计又称为总体结构设计,它是开发过程中很关键的一步,其主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,而为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。根据任务的不同,详细设计又可分为多种,例如,输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等;

(3)SD方法的基本原则:高内聚、低耦合。

2、面向对象设计

(1)OOD方法是一种更接近现实世界、更自然的软件设计方法;

(2)OOD方法的基本思想:抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现;

(3)OOD方法的主要任务:对类和对象进行设计,包括类的属性、方法以及类与类之间的关系;

(4)OOD方法的结果:设计模型;

(5)OOD方法解决的核心问题:如何同时提高软件的可维护性和可复用性;

(6)OOD方法的原则:单一职责原则、开放-封闭原则、李氏替换原则、依赖倒置原则、接口隔离原则、组合重用原则、迪米特原则(最少知识法则)。

3、设计模式

(1)设计模式的定义:设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。当人们在特定的环境下遇到特定类型的问题,采用他人已使用过的一些成功的解决方案,一方面可以降低分析、设计和实现的难度,另一方面可以使系统具有更好的可复用性和灵活性;

(2)设计模式包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素;

(3)设计模式的分类(根据处理范围不同):设计模式可分为类模式对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,属于静态关系;对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性;

(4)设计模式的分类(根据目的和用途不同):设计模式可分为创建型(Creational)模式、结构型(Structural)模式和行为型(Behavioral)模式三种;

(5)创建型模式主要用于创建对象,包括工厂方法模式、抽象工厂模式、原型模式、单例模式和建造者模式等;

(6)结构型模式主要用于处理类或对象的组合,包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式等;

(7)行为型模式主要用于描述类或对象的交互以及职责的分配,包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。

© 版权声明
THE END