软件系统概要设计及总体架构设计
- 格式:pdf
- 大小:522.21 KB
- 文档页数:12
目录
1.1软件系统概要设计及总体架构设计 (2)
1.1.1系统设计概述 (2)
1.1.2系统概要设计(结构设计) (3)
1.1.3系统概要设计中的架构设计 (8)
1.1.4层架构技术在系统设计中的典型应用 (16)
1.1软件系统概要设计及总体架构设计
1.1.1软件系统设计概述
1、软件系统设计
(1)什么是软件系统设计
所谓的软件系统设计就是通过某种特定的平台,而达到完成整体软件的功能。主要涉及和包括概要设计(静态结构)和详细设计(动态结构)两个阶段。
(2)软件系统设计的主要任务
系统设计阶段的主要任务是在需求分析和建模的基础上,更加深入、综合地考虑辅助决策系统的目标、技术要求和约束,扩展和细化需求分析阶段的模型。
(3)软件系统设计的主要目标
其一,精化设计方案并开发出一个明确描述设计方案的可视化模型;其二,保障设计模型最终能平滑地过渡到程序代码开发阶段,即“怎么做”的问题。
2、软件系统设计的目的
(1)指明一种易转化成代码的工作方案,是对软件系统分析工作的细化。也就是进一步细化分析阶段所提取的类(包括其操作和属性),并且增加新类以处理诸如数据库、用户接口、通信、设备等技术领域的问题。
(2)设计是对问题域外部可见行为的规格说明、并增添实际的计算机系统实现所需的细节,包括人机交互、任务管理和数据管理方面的细节。
3、软件系统分析和软件系统设计的合作
(1)分析面向问题,是明确动力的过程,重在理解和翻译,灵活性高
(2)设计面向方案,是排除阻力的过程,重在精化和适应,受约束大
从整体上看,软件系统分析和软件系统设计的对立是保障问题和方案趋于一致的基本动力。就像两个相反方向的张力,使软件系统能够朝着正确的方向前进。
1.1.2软件系统概要设计(结构设计)
1、在什么时期进行软件系统概要设计
在需求明确、准备开始编码之前,需要做软件系统的概要设计。软件系统的概要设计对后续的软件系统开发、测试、实施、维护等阶段的工作都会起到关键性的影响。
2、系统概要设计工作的主要重点和核心
工作的主要重点是要适应特定的实施环境和部署环境。而工作的核心,则是规划设计方案的构造,在揭示实施细节的基础上得到设计方案的详细对象模型。
3、软件系统概要设计的重要性
(1)软件系统分析和软件系统设计模型是交错的,并且也是迭代的
(2)软件系统概要设计的重要性主要体现在,它是把需求转化为软件系统的最重要的环节,并且软件系统设计的优劣在根本上决定了软件系统的质量。
4、软件系统概要设计所涉及的内容
(1)制定规范
主要涉及体系结构、代码和接口规约、命名规则等的规范制定。因为,这些是项目小组今后共同开发的基础,有了开发规范和程序模块之间和项目成员彼此之间的接口规则、方式和方法,开发团队就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。
(2)体系结构设计(架构设计)
软件系统的体系结构是对复杂事物的一种抽象,如客户/服务器(C/S)和浏览器/Web 服务器/数据库服务器(B/W/S)结构等(参看如下示例图所示的结构关系示图)。
(3)模块设计(类的设计)
1)功能独立
根据用户的需求实现从功能上来划分各个功能模块,在模块设计中保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代
价。如下示例图所示为某个Web应用系统中的类图,各个功能模块相互独立。
2)模块设计的目的
通过创建出类图、状态图和活动图来描述新的技术类,并扩展和细化分析阶段"素描"的
商业对象类。
(4)数据结构与算法设计
设计高效率的程序是基于良好的数据结构与算法,而不是基于编程小技巧的。一般说来,数据结构与算法就是一类数据的表示及其相关的操作。
(5)用户界面设计
软件系统界面的风格一般有两类,其一是“一致性”,其二是“个性化”。商业应用软件的界面设计注重一致性(如B/S中的浏览器几乎成了唯一的客户机程序,因为用户希望用完全一致的软件来完成千变万化的应用任务),而在娱乐领域的软件开发中,有个性化的界面自然比泯然于众的界面更具有吸引力。
因此,对于通用的商业应用的软件系统,在用户界面的设计上一般都遵守“一致性”的规则,比如都采用Web浏览器作为客户端。
5、系统概要设计中所涉及的基本原则
(1)先进性
在设计思想、系统构架、采用技术和选用平台上均要有一定的先进性、前瞻性和扩充性。特别要考虑一定时期内业务的增长和应用的变化趋势。在充分考虑技术上先进性的同时,尽量采用技术成熟、市场占有率比较高的产品,从而保证建成的网站系统具有良好的稳定性、可扩展性和安全性。
(2)实用性
在尽量满足业务功能需求的前提下,要适应各业务角色的工作特点,做到简单、使用和人性化。实现统一身份和资源管理、统一认证、统一内容管理、个性化界面和内容定制。(3)可靠性
由于企业应用中不可避免地要涉及不同的用户群(操作层、管理层和业务层等人员),所以建设的信息服务网站系统必须在建设平台上保证系统的可靠性和安全性。系统设计中,应有适量冗余及其他保护措施,平台和应用软件应具有容错性和容灾性。
(4)开放性
在系统构架、采用技术和选用平台方面都必须要有较好的开放性。特别是在选择产品上,要符合开放性要求,遵循国际标准化组织的技术标准,对选定的产品既有自己独特优势,又能与其他多家优秀的产品进行组合,共同构成一个开放的、易扩充的、稳定的和统一软件的系统。
(5)可维护性
系统设计应标准化和规范化,按照分层设计,组件化实现。对于采用的软件构件化开发方式要满足如下的基本要求:
一是系统结构分层,业务与实现分离;
二是以统一的服务接口规范为核心,使用开放的标准;
三是构件语意描述要形式化;
四是提炼封装构件要规范化。
(6)可伸缩性
考虑到一般的企业应用的Web网站系统的网上业务建设是一个循序渐进、不断扩充的过程,系统要采用积木式结构,整体构架的考虑要与现有的软件系统进行无缝连接,为今后软件系统的扩展和集成留有扩充的余量。
(7)可移植性
在选择开发的应用平台上,应该考虑能够建设出一套与平台无关,以统一的服务接口规范和与各种数据库相连的应用组件。
6、系统概要设计的重要输出
(1)编码规范
接口规约、命名规则和代码风格。
(2)物理模型
组件图、配置图。如下示例图为某个CRM系统的分层包图,体现该系统的分层架构设计方案。