系统概要设计中的构架设计

上传人:枫** 文档编号:474453653 上传时间:2023-12-14 格式:DOCX 页数:9 大小:274.55KB
返回 下载 相关 举报
系统概要设计中的构架设计_第1页
第1页 / 共9页
系统概要设计中的构架设计_第2页
第2页 / 共9页
系统概要设计中的构架设计_第3页
第3页 / 共9页
系统概要设计中的构架设计_第4页
第4页 / 共9页
系统概要设计中的构架设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《系统概要设计中的构架设计》由会员分享,可在线阅读,更多相关《系统概要设计中的构架设计(9页珍藏版)》请在金锄头文库上搜索。

1、第三章系统概要设计中的架构设计系统分析的目的就是把需求转换为系统的设计,分析与设计是一个前后相互关联的过 程。通过对本章内容的学习,读者将被引入软件开发的设计阶段。软件系统的设计一般分为 概要设训和详细设计,概要设计中最重要的工作是系统的架构设计。从软件系统的开发实现角度来看,系统的架构设计主要可以分为逻辑架构设计与物理架 构设计两个紧密相关的设计内容。系统的逻辑架构设计结果定义了应用系统中的基本逻辑组 成元素,以及这些逻辑元素之间的关系,这在UML中主要通过架构包图来表示;系统的物 理架构设计主要关注“目标程序及其依赖的运行库和系统软件”如何安装或部署到客户最终 环境的物理主机中.以及如何部

2、署主机(如各种形式的服务器主机)和网络配置来保证软件 系统的可靠性、可伸缩性和稳定运行性等方面的要求.这主要通过UML中的部署图来表示。在系统的架构设计中,应尽可能地分析清楚系统中哪些逻辑元素是稳定的需求,哪些是 经常变化的需求。以便在进行系统设计时,能够将软件系统的核心部分建立在稳定的需求上。 本章主要介绍系统概要设计中与“架构设计”有关的内容,并通过州上商城项目中系统架构 设计的示例来阐述与架构设计有关的思想、原则和方法以及模式的具体应用。3.1概要设计3.1.1软件系统设计概述1. 软件系统设计概述(1)什么是系统设计?系统设计就是通过某种特定的平台,完成软件系统的整体功能(也就是把软件

3、需求转变 为软件的具体方案)的实现。从工程管理的角度来看,软件设计分为如下两个阶段:概要设 计和详细设计。图3.1为概要设计和详细设计的具体工作内容。图3. l概要设计和详细设计的具体工作内容概要设计的工作重点在于进行系统的静态结构或者高层架构设汁;详细设计的工作重点 在于系统的用户界面、动态结构设计以及测试计划的制定等。(2)系统的概要设计。将软件系统的功能性需求和非功能性需求转化为数据结构和软件的系统结构,并合理地 设计和规划出组成软件系统的物理元素:程序、数据库、过程、文件等内容。分析设计人员 可以利用UML中的包图来建立和体现软件系统的体系架构。图3.2所示为某图书馆管理系图3.2某图

4、书馆管理系统项目中的架构包图从上面的架构包图中,很明显地能够看出,该系统采用标准的4层架构实现:表示层、 控制层、业务处理层和数据访问层;并日还能够了解每层中各个核心的组件及其关系。(3)系统的详细设计(重点是系统的动态结构设计)。通过对软件系统结构表示的进一步细化和完善,最后获得软件系统的详细数据结构和算 法、关键性问题的解决等方面的解决方案。为此,分析设计人员可以利用UML中的类图建 立相应的体系结构,同时再辅以UML中的4种动态分析图(顺序图、活动图、状态图和协 作图),进一步地描述和体现系统中各个用例的实现行为。图3.3所示为某图书馆管理系统 项目中业务层的类图。图3.3某图书馆管理系

5、统项目中业务层的类图在分析阶段,软件系统的开发者通过建立特定的软件系统模型来表示真实世界中的问 题,以便理解业务过程以及这个过程中需要用到的各种信息(业务数据和数据之间的关系)。 图3.4所示为某图书馆管理系统项目中管理员的各种可能的活动状态图示。图3.4某图书馆管理系统项目中管理员的各种可能的活动状态在具体实施系统的分析时,首先要学会分解问题,把复杂软件系统中的各种信息和需求 进行综合考虑,然后分解成多个易于理解的小问题。最后通过建立软件系统的需求模型来对 问题领域进行组织、构造和模拟,并且编制出相应的技术文档。在对软件系统进行分析建模的过程中,必须要邀请用户方的有关人员参与,并且需要用 户

6、进一步地解释这些需求。其目的是验证开发者建立的软件模型是否是正确的、合理的、可 行的。因为软件系统的设计本身,实际上也是个建模的过程,它把分析阶段得出的信息,也 就是需求模型,转换为称为解决方案的设计模型。图3.5所示为某图书馆管理系统项目中的各个组件的图示,利用组件图能够帮助客户理 解最终的系统结构,并使开发人员的实现工作有一个明确的目标;同时组件图还能帮助开发 组中的其他人员(如帮助文档人员)理解系统。JSPs组件J业务实体规则管理数据酒问J DAO组件Actions 组件ActionServlet组件匚n采购管理 粗件n图书管理3组件匚n异常处理 匚n组件图3.5某图书馆管理系统项目中的

7、各个组件的图示2. 为什么要进行软件系统的设计(1)进行软件系统设计的主要原因。因为建立的软件系统逻辑模型中的用例及用例图并不是分析模型,或者说不能够满足系 统的分析需要。它们只是形成分析模型中的素材,而对于用例的分析,开发者可以构造出一 个分析模型,但是很少有开发者直接根据这个分析模型去完成软件系统的程序编程实现的。 为什么呢?开发者首先应该了解这样一个事实,从用例及用例图得到的分析模型,只表达了 软件系统中的一些关键性概念,而不能表达软件系统中的性能和系统的外观(如用户界面 GUI)等方面的内容。系统分析模型对于最终的软件系统结构设计来说,又往往过于简单和粗糙,而在软件开 发中倡导的“组件

8、复用”、“模块分离”和“面向接口编程实现”等原则在这个系统分析模型 中都不能被考虑。因此,软件系统的分析设计人员有必要再对前面构造出的分析模型进一步地设计和完 善,以最终构造出开发者期望的软件系统发计模型。以利于指导软件系统的编程实现。(2)进行软件系统设计的目的。对软件系统进行全面设计的主要目的是指明一种易转化成软件系统功能代码的解决方 案,是对系统分析工作的进一步细化和具体实现。也就是进一步细化分析阶段提取的各个类 (包括其操作和属性),并H增加新的类以处理诸如系统中涉及的数据库系统、用户接口、 与其他设备的通信、控制和驱动其他的设备等技术领域的问题。3. 系统设计的基本要求(1)系统分析

9、和系统设计两者之间应该是相互合作的。系统分析是面向问题的,是明确和了解问题的过程,重在理解和翻译,灵活性一般比较 高;而系统设计则是面向解决方案的,是排除技术困难和解决问题的过程,重在精化和适应, 受约束性和限制条件一般比较多。从整体上看,分析和设计是不同的,在分析阶段关注的是对需求的描述和理解,而在设 计阶段,主要考虑的是具体的技术实现方案。它们是保障问题和针对该问题的解决方案趋于 合理和有效的基本动力。(2) 在进行软件系统设计时应该注意的要点。应该考虑能否使用重复的体系结构模式或者重用成熟的系统架构。也就是要考虑本系统能否达到在体系结构级别上的软件重用,即能否在不同的软件体系 结构中,使

10、用同一个体系结构。比如,人们经常提及的客户服务器模式的C/S体系结构和浏 览器服务器模式的B/S体系结构等的具体应用问题。体系结构从更高的层面上应该考虑的问题主要体现在“不变”的因素上。软件系统的体系结构一般应关注应用系统中的设计模式,更加体现在通过技术解决这些 业务差异所带来的影响。比如,关注是否是分布式应用程序、系统分层是如何设计和实现的, 也关注系统的性能和安全性等方面的要求是如何满足的。为了能够达到该设计目标,软件系统的设计者必须要了解和分离系统中的“不变”和“可 变”部分,然后将它们分离开。对“不变”部分或者是稳定的部分,尽可能地加以重用。4. 软件设计中的“3W”原则软件设计既是面

11、对软件工程的具体应用技术,同时也是聚焦于大批开发者相互协作结果 的艺术,成功的软件系统产品应该来自于合理的系统设计。什么是合理的系统设计呢?软件系统的开发者在进行软件系统开发时,最需要考虑的问题就是他们开发和设计出的 软件系统或者产品必须满足客户企业发展战略规划的需求,并且能够帮助企业解决实际经营 中的问题,提高本企业在同行业中的竞争力。一个合理的软件系统的设计,应该遵守软件设 计中的“3w”原则。(1) Who (为谁而设计,应该明确软件系统的真正用户是谁)。为谁设计表达的是软件系统的开发者必须认真研究客户企业的业务领域、研究企业本身 的工作特点,从而对于企业本身的业务规则和流程有深刻的理解

12、,最后形成针对这个企业业 务经营状态的解决方案。(2) What (要解决用户在应用系统时的哪些问题,功能有哪些?性能又有哪些?)。要解决用户的什么问题,表达的是开发者必须把企业存在的问题提取出来,分析研究哪 些问题可以用信息化技术或者特定的软件系统和工具解决;同时还应该搞清楚,企业应用了 该信息化技术以后,企业的业务流程需要进行的更改,以及这些更改带给企业的正面和负面 影响。(3) Why (为什么要解决这些问题?将这些问题解决后,能否为用户带来价值、降低开 发方的成本等)。为什么要解决这些用户问题,表达的是如何帮助企业产生可度量的价值,而这些价值是 在研究企业目前存在的问题的基础上产生的,

13、没有这些价值的产生,对软件系统的投资是没 有意义的。价值不可度量,企业领导者就不可能积极地支持应用该软件系统或者开发出某套 软件系统。另外,还要注意的是设计必须是便于用户使用的。减少系统维护和培训资源的消 耗,而且系统应操作简单、应用方便。“3W ”原则的本质,就是要求软件系统的设计者围绕“用户”而不是围绕“开发者” 或者“时髦的技术”来开展软件系统的设计和开发工作。因此满足“用户的需求、便于用户 的使用,同时又能使开发出的软件系统在应用新技术方面尽可能简单.相应地降低开发成 本”,这就是软件系统的开发者应该追求的设计目标。软件系统设计过程中的各项活动,其实就是权衡“利与弊”的过程,设计人员需

14、要在“简 单”与“复杂”之间、“功能实现”与“系统性能”之间、一种“技术方案”与另一种也可 行的“技术方案”之间进行权衡。因此,好的设计方案,一定是“中庸”的设计。5. 软件系统常用的设计方法(1)面向过程的设计方法。面向过程设计方法的基础建立在3种能够构成结构化程序的逻辑构造方面,顺序、选择 和重复上;并且面向过程的设计方法采用的是“自顶向下、逐步精化”的瀑布式设计方法, 由于瀑布式设计方法是按“自顶而下”的顺序进行的,这就要求设计者在一开始就要对系统 需要解决的各个问题有全面的、周密的了解。(2)面向对象的设计方法。面向对象的设计方法主要定义系统中各种可能类型的对象,并对每种类型的对象进行

15、细 化,以找出对象之间的关系;面向对象的设计方法关注的是消息和响应机制。3.1.2面向对象设计方法1. 面向对象设计方法(1)面向对象设计方法的特点。在面向对象设计(Object-Oriented Design,OOD)方法中,可以充分利用对象具有的抽象 性、封装性、继承性、多态性等特性,同时面向对象设计方法是一种“自下而上”的设计方 法,这与面向过程的设计方法中的“自上而下”刚好相反。另外,面向对象设计方法的最基本的概念是类、职责、状态、角色等,及与这些概念相 关的耦合度、聚合度、可重用性、可扩展性、可维护性等。(2)“自下而上”的设计方法的优点是能够形成一种螺旋上升的软件开发方式。不像面向

16、过程式设计那样,在设计的开始阶段就需要明确整个软件系统本身,面向对象 的设计往往从问题的一部分(局部)着手,一点一点地构建整个软件系统的各个模块。随着开 发者在开发过程中逐步加深对软件系统需求的理解,开发者将分阶段和分层次地添加对这些 新功能的具体实现。这些新的理解以及开发中遇到的需求变化.都会再作用到软件系统开发本身(也包括设 计阶段),从而形成一种螺旋式上升的开发方式和开发过程。在这种开发方式中,对于已有 的系统设计或者部分编程实现的代码,只需要进行局部修改或者调整以体现系统的变化即 可。2. 面向对象设计方法与面向过程设计方法的最根本的区别(1)面向对象的设计方法将整个软件系统看成对象集。面向对象的设计方法把软

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号