1。什么是软件应用系统的系统设计所谓软件系统设计,其实就是通过特定的平台来实现一个软件系统项目的整个软件的功能和性能。从软件工程管理的角度来看,软件系统项目的设计过
1。什么是软件应用系统的系统设计
所谓软件系统设计,其实就是通过特定的平台来实现一个软件系统项目的整个软件的功能和性能。从软件工程管理的角度来看,软件系统项目的设计过程主要分为两步。
(1)概要设计
软件系统项目的需求转化为系统的数据结构和软件系统的整体结构——这个设计阶段重点是软件系统项目的静态结构设计,设计软件系统项目的物理组件——程序模块、数据库表结构、测试用例、各种设计文档等。
当然,软件系统项目的系统概要设计所需要的各种信息主要来自于软件系统项目的需求分析的结果。
(2)详细设计
在前期系统概要设计中软件系统项目总体结构设计的基础上,详细的数据结构和算法、用户界面设计、关键技术问题的解决方案(包括开发环境和工具、运行环境和平台等。)和相应的软件系统项目实现技术,通过进一步设计和细化软件系统项目结构中的各个物理组成元素,最终得到软件系统项目的实现技术。
2。软件系统概要设计阶段的主要工作重点
(1)设计中所需的各种信息主要来源于软件系统项目的需求分析结果。
(2)概要设计的关键内容是设计软件系统项目的系统架构。
(3)系统架构设计的基本流程如下。这个阶段是软件系统项目的系统架构师发挥作用的主要阶段。
因此,在设计软件应用系统时,软件系统项目的系统设计者需要做以下三个步骤:
1)描述系统需求;
2)描述系统结构;
3)描述系统行为。
所以可以看出,这三个步骤中,第一步和第二步是静态的,其建模方法一般称为静态建模;第三步是动态,其建模方法称为动态建模。在UML分析与设计的建模技术实现中,静态建模可以用UML图、类图等UML规范来表示。在UML中,动态建模可以用状态图、时序图和活动图来表示。因此,静态建模机制和动态建模机制是UML的两种主要类型。
3。软件系统详细设计阶段的主要工作重点
(1)软件系统详细设计所涉及的主要工作
1)用户界面设计,各模块组件的设计和实现技术(给出软件结构中各模块的内部流程描述)。
2)模块内部的算法设计。
(2)基本要求——一般完成了类的方法和属性的描述,但是这些方法的实现是不必要的。
4。为什么要做(或执行)软件应用系统设计阶段的工作
(1)主要原因
通过对软件应用系统的用例分析,软件系统分析人员和设计人员可以产生一个系统的分析模型,但设计人员很少根据这个分析模型直接完成程序的开发和实现。为什么?下图是某BBS论坛系统的系统后台管理用例图的部分截图:
首先,我们不要幻想直接画完解析类,就可以直接根据它来编码。
其次,要知道从用例图中得到的分析模型只是表达了系统中的一些关键概念,而不是系统的性能和外观。
最后,系统的分析模型对于系统的结构设计往往过于简单,在这个模型中无法考虑复用和调试。
因此,我们有必要进一步设计前面的分析模型,从而最终产生软件系统的最终设计模型。
5。软件应用系统系统设计的主要目的
或者说开发软件应用系统的系统设计的主要目的是指出一个可以方便地转换成代码的工作计划,也是对前一阶段分析工作的进一步细化——即进一步细化软件系统分析阶段提取的类(包括它们的操作和属性),增加新的类来处理数据库、用户界面、通信、设备等技术问题。
原因是软件系统的系统设计是对问题域外可见行为的规范,增加了实际计算机系统实现所需的细节,包括人机交互、任务管理和数据管理的细节。为应用系统中的数据库表结构定义的部分屏幕截图如下:
6。软件应用系统设计的基本要求
设计软件应用系统时应该考虑的主要问题是:处理什么?怎么处理?怎么用?
因此,在设计软件应用系统时应该注意的方面可以归纳为以下三类:
(1)处理的对象,即数据。
(2)处理方式,即我们的系统如何处理系统的逻辑。
(3)如何互动。这种交互包括用户(用户)和外部系统。
7。读者需要区分软件设计和软件编程实现
(1)软件设计以面向数据为主,面向功能和面向对象为辅;
(2)软件的编程以面向对象为主,数据和功能为辅。
8。设计软件应用系统时应注意的问题
(1)核心问题——我们可以使用重复架构模式吗?
也就是我们能否实现结构化的软件复用——也就是我们能否在不同的软件系统中使用相同的架构。例如,我们经常谈论C/S和B/S架构。因为架构是从更高的层面考虑问题的——关注点体现在”同样的”其实架构一般关心的是应用模式,更多体现在通过技术解决这些业务差异带来的各种影响。
比如我们关心是否是分布式应用,系统层如何设计,性能和安全性。因此,在这种情况下,我们将考虑使用一系列技术,如集群、负载均衡和故障转移。下图是系统架构设计中应用MVC架构模式的软件应用系统的分层设计结果的部分示意图:
(2)软件系统设计应该遵循什么”3W & # 8221原则
谁(为谁设计,谁是用户)
什么(你想为用户解决什么问题—-功能方面、性能方面)
为什么(为什么要解决这些问题—-为用户带来价值,降低开发者成本等。)
其实”3W & # 8221其实质是要求软件应用系统的系统设计者重点”用户”而不是围绕”我们”或者”时尚科技”开展软件应用系统的设计,满足”用户的需求,方便用户使用,同时可以使开发的技术尽可能简单并相应降低软件应用系统开发的整体成本”这是软件应用系统的设计者想要追求的设计目标。
9。软件应用系统设计-总体结构设计中的系统概要设计
(1)软件应用系统的系统概要设计是在什么时期进行的?
软件系统的需求分析明确后,对软件应用系统的系统需求进行领域建模,就需要进一步开展系统概要设计,因为软件应用系统的系统概要设计对软件应用系统的后续开发、测试、实现和维护有着关键的影响。因此,软件应用系统的设计者需要关注并认真开展相关工作。
(2)软件应用系统概要设计要点
如何让系统概要设计工作适应具体的实现环境和部署环境?系统概要设计的核心应该是规划方案的构建,在揭示实施细节的基础上可以得到设计方案的详细对象模型。下图显示了软件应用系统部署环境的部分截图:
(3)软件应用系统概要设计的重要性。
1)分析和设计模型是交错和迭代的。
2)软件应用系统概要设计的重要性主要体现在,它是软件应用系统需求转化为软件应用系统开发和实现过程中最重要的环节,软件应用系统的系统设计最终结果从根本上决定了软件应用系统的整体质量。
10。软件应用系统设计中系统概要设计涉及的主要内容
(1)制定开发规范。
在这个软件应用系统中制定各种开发规范,是以后项目开发团队共同开发的基础。有了开发规范和程序模块之间以及项目成员之间的接口规则、方式和方法,开发团队的所有成员将有一个共同的工作语言和平台,从而使整个软件开发能够协调有序地进行。制定本规范涉及的主要内容包括:
1)代码系统、接口约定和命名规则
2)规定设计文件的编制标准。
3)指定硬件和操作系统的接口约定和命名规则。
(2)软件系统的架构设计(Architecture design)
体系结构是复杂软件系统的抽象,例如客户机/服务器(C/S)和浏览器Web服务器-数据库服务器(B/W/S)结构的应用程序。同时,框架设计也要考虑什么形式的框架技术和服务器的平台类型。
(3)划分软件应用系统中的各个模块,设计组件类。
根据用户需求,可对各功能模块进行功能划分,模块设计应符合”独立单一责任原则(SRP,单一责任原则)”这是模块化设计的基本原则。因为,”独立”该模块可以降低软件应用系统在开发、测试、维护等阶段的成本。
(4)数据结构和算法的设计
设计高效的程序是基于良好的数据结构和算法,而不是编程技巧。因为数据结构和算法是一种数据及其相关操作的表示。确定软件系统涉及的文件系统的结构和数据库中数据访问的方式,设计数据完整性和安全性,确定输入输出文件的详细数据结构是这个阶段需要考虑的问题。
(5)数据库逻辑设计和系统数据流图(DFD)。下图是蓝梦CRM管理系统中系统数据结构设计阶段所涉及的系统数据流图(DFD)设计结果的局部示意图。
(6)可靠性等其他设计。
在软件运行过程中,为了适应环境的变化和用户新的功能需求,需要对软件进行频繁的修改、修订和完善。在软件开发之初,需要确定软件的可靠性等质量指标,并考虑相应的措施,使软件易于修改和维护。
十一。掌握软件应用系统的系统概要设计中涉及的一些系统设计的基本原则
(1)先进性
设计思想、系统架构、采用的技术和平台应具有先进性、前瞻性和可扩展性。应特别考虑某段时间内业务的增长和应用程序的变化趋势。在充分考虑技术先进性的同时,尽量采用技术成熟、市场占有率高的产品,以保证网站系统具有良好的稳定性、扩展性和安全性。
(2)实用性
在尽可能满足业务功能要求的前提下,要适应各业务角色的工作特点,做到简洁、人性化、人性化。实现统一身份和资源管理、统一认证、统一内容管理、个性化界面和内容定制。
(3)可靠性
由于企业应用不可避免地涉及不同的用户群体(操作人员、管理人员和业务人员),信息服务网站系统必须建立在建设平台上,以保证系统的可靠性和安全性。在系统设计上,要有适当的冗余等保护措施,平台和应用软件要有容错和容灾能力。
(4)开放性
在系统架构、采用的技术和平台选择上必须有更好的开放性。特别是在产品的选择上,要符合开放性的要求,遵循国际标准化组织的技术标准。所选用的产品不仅有各自独特的优势,而且可以与其他许多优秀的产品相结合,形成一个开放的、可扩展的、稳定的、统一的软件系统。
(5)可维护性
系统设计要标准化、规范化,按照分层设计用软件实现。采用的基于软件组件的开发方法应满足以下要求:一是系统结构分层,业务和实现分离;第二,以统一服务接口规范为核心,使用开放标准;第三,构件的语义描述要形式化;第四,精细化包装部件要标准化。
(6)可扩展性
考虑到一般企业应用网站系统的在线业务建设是一个渐进的、持续的扩展过程,系统应采用积木式结构,整体框架应与现有系统无缝连接,为未来系统扩展和集成留有扩展余量。
(7)可移植性
在选择开发的应用平台上,要考虑构建一套独立于平台、具有统一的服务接口规范、与各种数据库相连接的应用组件。
12。软件应用系统的系统概要设计阶段的最终重要输出结果
(1)软件应用系统概要设计规范一般需要包括以下主要内容:
1)编码规范:信息形式、接口规范和命名规则;
2)物理模型:部件图和配置图;
3)不同角度的架构视图:用例视图、逻辑视图、流程视图、部署视图、实现视图、数据视图(可选);
4)系统总体布局:由哪些部分组成,各部分的物理和逻辑关系;
(2)数据库设计说明
(3)用户手册
(4)制定初步的测试计划。