前言
经过软工视频的学习,我认识到了软件设计是一个非常具有发展潜力的方面。
在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,并已在软件需求规格说明书和数据要求说明书中详尽和充分地阐明了这些需求后,下一步就要着手对软件系统进行设计,即考虑应该“怎么做”的问题
主要内容
任务和目标
1.软件设计的主要任务:将分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书。
从工程管理的角度看,软件设计分为总体设计和详细设计两个阶段。其工作流程如图所示:
每个设计步骤完成后,都应进行复审。因此软件设计阶段的任务又可具体分为三部分:
(1)确定软件结构,划分子系统模块
(2)确定系统的数据结构
(3)设计用户界面
2.软件设计的目标:
可根据一下原则来衡量软件设计的目标:
① 设计出来的结构应是分层结构,使得软件各部分之间的控制更明智。
② 设计应当模块化;这就是说,软件应在逻辑上分割为实现特定的功能和子功能的部分。
③ 设计应当既包含数据抽象,也包含过程抽象。应当由清晰且可分离的数据和过程表达来构成。
④ 设计应当建立具有具有独立功能特征的模块。
⑤ 设计应当建立能够降低模块与外部环境之间复杂连接的接口。
⑥ 设计应能根据软件需求分析获取的信息,建立可驱动可重复的方法的使用。 软件设计过程根据基本的设计原则,使用系统化的方法和完全的
② 设计应当模块化;这就是说,软件应在逻辑上分割为实现特定的功能和子功能的部分。
③ 设计应当既包含数据抽象,也包含过程抽象。应当由清晰且可分离的数据和过程表达来构成。
④ 设计应当建立具有具有独立功能特征的模块。
⑤ 设计应当建立能够降低模块与外部环境之间复杂连接的接口。
⑥ 设计应能根据软件需求分析获取的信息,建立可驱动可重复的方法的使用。 软件设计过程根据基本的设计原则,使用系统化的方法和完全的
软件体系结构设计
体系结构设计是软件设计的第一阶段,该阶段侧重于系统宏观结构设计,而不关心模块的内部算法。完整的应用系统都有若干功能相对独立的子系统聚合而成,每个子系统又都通过某种方式来共享数据。根据各子系统相互间共享数据的模式,整个系统的结构可分为集中式的仓库模型,分布式结构等几大类。下面让我们一起来看一下有哪些:
1.仓库模型:也称容器模型,是一种集中式的模型。在这种结构模型中,应用系统用一个中央数据仓库来存储各个子系统共享的数据,各子系统可以直接访问这些共享数据。
当然,每个子系统都有自己的私有数据库。为了共享数据,所有的子系统都是紧密耦合的,并且围绕中央数据仓库,如图所示:
2.分布式结构
在此结构中,合作的多方都会在分布式操作系统的协调下,利用各自的计算能力完成某项任务的一部分计算工作,从而在整体上提高了系统的处理能力和效率。
3.多处理器结构
简单地讲,多处理器系统指的是在一块主板上插有多个处理器的系统。
4.客户-服务器模型(C/S)
此结构是一种典型的分布式结构。它包括三个组成部分:服务器,客户,网络。
从软件上看,C/S结构的应用都有3个相对独立的逻辑部分组成:
用户界面部分
应用逻辑部分
数据访问部分
这3部分的逻辑关系如图所示:
5.多层应用模型
它是两层C/S模型的扩展,为了有效地管理那些完成业务逻辑的组件,中间层会用到应用服务,包括事务服务,消息服务等。
常见的三层结构应用有浏览器/服务器/数据服务结构,这是一种典型的三层B/S结构。如图所示:
6.分布式对象结构
在这种结构当中,服务的提供者是被称为“对象”的系统组件。
7.中间件
先简单介绍这么多,后续会继续更新软件设计中的模块分解、详细设计描述工具和用户界面设计的相关内容。