软考高级架构师——5、系统规划分析与设计方法

系统计划主要用于描述从项目提出、选择到确立的过程,包括系统项目的提出与可行性
分析,系统方案的制订、评价和改进
,新旧系统的分析和比较,以及现有软件、硬件和数据
资源的有效利用等问题。

1、项目的提出与选择

项目的立项目标和动机

进行基础研究并获取技术

进行应用研发并获得产品

提供技术服务

信息技术产品的使用者

项目的选择和确定
 

选择有核心价值的产品/项目或开发方向

评估项目风险、收益和代价
评估项目的多种实施方式
平衡地选择适合的方案

项目提出和选择的结果
 
系统项目提出和选择的结果, 最终会以“产品/项目建议书”的方式来体现
 

2、可行性研究与效益分析

可行性研究的内容

经济可行性

技术可行性

法律可行性

执行可行性

方案的选择

可行性研究与效益分析

成本效益分析

项目可能涉及的收益

效益分析的若干指标和进一步的分析

可行性分析报告 可行性研究报告首先由项目负责人审查(审查内容是否可靠),再上报给上级主管审阅
(评估项目的地位)。从可行性研究报告中应当得出“行或不行”的决断。

3、方案的制订和改进

确定软件架构

 
(1)分析模型的结构(2)一些对应于系统目标的最基本、最重要的实现要素(3)特性和要点的解释。这些附加的内容解释系统的一些特性、服务等是如何实现的。
确定实现的各种关键性要素和实现手段关键性的实现要素通常包括 关键的用例、最主要的控制类、功能和服务的首要组织方式(例如网站首页);
对象的组织模式;
常用和最关键的实现算法模型。关键性的实现手段通常包括:
选定基础计算平台,如操作系统、数据库、 Web 服务器、中间件平台等;
选定开发工具和开发环境,如计算机语言、构件库、工具软件等。

归结目标到最适合的计算体系
 
通常,提供开发工具和开发环境的组织总是有一些标准的计算体系可以选择(例如, .NET和 J2EE 等),因此对于大多数系统开发项目来说,比较各种标准计算体系与预期目标之间的匹配程度即可选定计算体系。

4、新旧系统的分析和比较

软考高级架构师——5、系统规划分析与设计方法_第1张图片

淘汰策略
第 3 象限为低水平、低价值区,即遗留系统的技术含量较低,且具有较低的商业价值。
对这种遗留系统的演化策略为淘汰 

继承策略
第 4 象限为低水平、高价值区,即遗留系统的技术含量较低,可满足企业运作的功能
或性能要求,但具有较高的商业价值,目前企业业务对该系统仍有很大的依赖性。 对这种遗
留系统的演化策略为继承

改造策略
第 1 象限为高水平、高价值区,即遗留系统的技术含量较高,本身还有较大的生命力,
且具有较高的商业价值,基本上能够满足企业业务运作和决策支持的要求。这种系统可能建
成的时间还很短,对这种遗留系统的演化策略为改造。

集成策略
第 2 象限为高水平、低价值区,即遗留系统的技术含量较高,但其商业价值较低,可
能只完成某个部门(或子公司)的业务管理。
 

5、定义问题与归结模型

问题分析
 

在问题定义上达成共识
理解问题的本质

确定项目干系人和用户

定义系统的边界
确定系统实现的约束
 

问题定义
 

包括目标、功能需求和非功能需求三个方面。
目标是指构建系统的原因,它是最高层次的用户需求,是业务上的需要
软考高级架构师——5、系统规划分析与设计方法_第2张图片

功能需求

功能需求是用来指明系统必须做的事情,只有这些行为的存在,才有系统存在的价值。

非功能需求

(1)观感需求(2)易用性需求(3)性能需求(4)可操作性需求(5)可维护性和可移植性需求
(6)安全性需求(7)文化和政策需求( 8)法律需求

 6、需求分析与软件设计

需求分析的任务与过程
 

需求分析阶段的工作可以分成 4 个方面

(1)问题识别
(2)分析与综合
(3)编制需求分析的文档
(4)需求分析与评审

需求的分类:功能需求、非功能需求和设计约束

需求工程:需求开发、需求管理
需求分析方法:结构化分析方法、软系统方法、面向对象分析方法、面向问题域的分析

如何进行系统设计
 
(1)组件的独立性。审视自己设计的系统,是否做到了高内聚、低耦合?
(2)例外的识别和处理。谁能保证系统使用者都精确按照使用说明书使用?
(3)防错和容错。当网络中断、数据库崩溃这样的灾难性事件发生时,系统也跟着崩溃吗?
软件设计的任务与活动
 

(1)概要设计(2)详细设计
Jackson 方法:从数据结构导出模块结构;

Parnas 方法:将可能引起变化的因素隐藏
在有关模块内部,使这些因素变化时的影响范围受到限制,它只提供了重要的设计准则,但没有规定出具体的工作步骤。

7、结构化分析与设计

结构化分析方法的基本思想是自顶向下逐层分解

结构化分析工具

数据流图( Data Flow Diagram, DFD)、数据字典( DataDictionary, DD)、结构化语言、判定表、判定树

结构化分析的工作步骤

(1)研究“物质环境”(2)建立系统逻辑模型(3)划清人机界限

数据流图

(1)数据流图的层次

软考高级架构师——5、系统规划分析与设计方法_第3张图片

 (2) Context 图

软考高级架构师——5、系统规划分析与设计方法_第4张图片

 (3)逐级分解

软考高级架构师——5、系统规划分析与设计方法_第5张图片

 (4)DFD0 层图
 

结构化设计:

结构化设计包括架构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据
流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模
块化的过程。

概要设计:设计软件的结构、确定系统是由哪些模块组成,以及每个模块之间的关系。采用结构图(包括模块、调用、数据)来描述程序的结构,此外还可以使用层次图和 HIPO(层次图加输入/处理/输出图)

详细设计:确定应该如何具体地实现所要求的系统,得出对目标系统的精确描述。它采用自顶向下、逐步求精的设计方式和单入口单出口的控制结构。常使用的工具包括程序流程图、盒图、 PAD(Problem Analysis Diagram,问题分析图)、 PDL(ProgramDesign Language,程序设计语言)

模块设计:

模块化是一个很重要的概念,它是将一个待开发的软件分解成为若干个小的简单部分——模块,每个模块可以独立地开发、测试。这是一种复杂问题的“分而治之”原则,其目的是使程序的结构清晰、易于测试与修改

1.信息隐蔽原则
信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单
一的设计模块中,并且尽可能少地暴露其内部的处理。

2.模块独立性原则
软考高级架构师——5、系统规划分析与设计方法_第6张图片

 软考高级架构师——5、系统规划分析与设计方法_第7张图片

 8、面向对象的分析与设计

面向对象的基本概念

对象是系统中用来描述客观事物的一个实体

则是对具有相同属性和服务的一个或一组对象的抽象

        实体类:实体类映射需求中的每个实体

        边界类:边界类用于封装在用例内、外流动的信息或数据流。边界类用于系统接口与系统外部进行交互

        控制类:控制类是用于控制用例工作的类。控制类没有属性,但一定有方法

继承与泛化

        继承:说明特殊类(子类)与一般类(父类)的关系。“交通工具”是“自行车”和“小轿车”的泛化

        泛化:一般类与特殊类的关系。自行车”和“小轿车”从“交通工具”中继承。
 

软考高级架构师——5、系统规划分析与设计方法_第8张图片

 多态与重载

软考高级架构师——5、系统规划分析与设计方法_第9张图片

 模板类:类属类,它用来实现参数多态机制。一个类属类是关于一组类的一个特性抽象,
它强调的是这些类的成员特征中与具体类型无关的那些部分,而用变元来表示与具体类型有
关的那些部分。

消息和消息通信:消息就是向对象发出的服务请求,它通常包括提供服务的对象标识、消息名、输入信息和回答信息。

面向对象分析

面向对象分析的目标是开发一系列模型,这些模型描述计算机软件,当它工作时以满足
一组客户定义的需求。对象技术的流行,演化出了数十种不同的 OOA 方法,每个方法都引
入了一个产品或系统分析的过程、一组过程演化的模型及使软件工程师能够以一致的方式创
建每个模型的符号体系。

1. OOA/OOD 方法

OOA 模型中包括主题、对象类、结构、属性和服务 5 个层次,需经过标识对象类、标识结构与关联(包括继承、聚合、组合、实例化等)、划分主题、定义属性、定义服务 5 个步骤来完成整个分析工作。

2. Booch 方法

Booch 认为软件开发是一个螺旋上升的过程,每个周期中包括标识类和对象、确定类和
对象的含义、标识关系、说明每个类的接口和实现 4 个步骤

软考高级架构师——5、系统规划分析与设计方法_第10张图片

 3. OMT 方法

OMT 是对象建模技术的缩写,它是由 Jam Rambaugh 及其同事合作开发的,它主要用
于分析、系统设计和对象设计。包括对象模型(静态的、结构化的系统的“数据”性质,通
常采用类图)、动态模型(瞬时的、行为化的系统“控制”性质,通常使用状态图)和功能
模型(表示变化的系统的“功能”性质,通常使用数据流图)。 OMT 方法的三大模型如表 8-6
所示
软考高级架构师——5、系统规划分析与设计方法_第11张图片

 4.OOSE 方法

OOSE 是面向对象软件工程的缩写,它是由 Ivar Jacobson 提出的。它在 OMT 的基础
上,对功能模型进行了补充,提出了“用例”的概念,最终取代数据流图进行需求分析和建
立功能模型。

统一建模语言

统一建模语言(Unified Modeling Language, UML)是用于系统的可视化建模语言,它将
OMT、 OOSE 和 Booch 方法中的建模语言和方法有机地融合在一起,是国际统一的软件建
模标准。

UML 是一种语言、一种可视化语言、一种可用于详细描述的语言

UML 的结构:

构造块
 
建模元素 包括结构事物(类、接口、协作、用例、活动类、组件、节点等)、行为事物(交
互、状态机)、分组事物(包)、注释事物
关系 包括关联关系、依赖关系、泛化关系、实现关系

静态模型:类图、对象图、包图、构件图、部署图、制品图
动态模型:对象图、用例图、顺序图、通信图、定时图、状态图、活动图、

交互概览图

公共机制 规格说明 规格说明是元素语义的文本描述,它是模型的重要组成部分
修饰 UML 为每一个模型元素设置了一个简单的记号,还可以通过修饰来表达更多的信息。
公共分类 包括类元与实体(类元表示概念,而实体表示具体的实体)、接口和实现(接口
用来定义契约,而实现就是具体的内容)两组公共分类
扩展机制 包括约束(添加新规则来扩展元素的语义)、构造型(用于定义新的 UML
建模元素)、标记值(添加新的特殊信息来扩展模型元素的规格说明)
架构
 
逻辑视图:以问题域的语汇组成的类和对象集合。
进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例。
实现视图:对组成基于系统的物理代码的文件和组件进行建模。
部署视图:把组件物理地部署到一组物理的、可计算的节点上。
用例视图:最基本的需求分析模型。

用例图

软考高级架构师——5、系统规划分析与设计方法_第12张图片

包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个组
件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示。所提取出来的
公共行为称为抽象用例。包含关系的例子如图 8-13 所示。

扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多
种事情。可以将这个用例分为一个主用例和一个或多个辅用例,描述可能更加清晰。扩展关
系的例子如图 8-14 所示。
软考高级架构师——5、系统规划分析与设计方法_第13张图片
      

 类图和对象图

软考高级架构师——5、系统规划分析与设计方法_第14张图片

 ① 依赖关系。有两个元素 X、Y,如果修改元素 X 的定义可能会引起对另一个元素 Y 的
定义的修改,则称元素 Y 依赖于元素 X。在 UML 中,使用带箭头的虚线表示依赖关系。

② 泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父
类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而
父类则是子类的泛化。在 UML 中,使用带空心箭头的实线表示,箭头指向父类。

③ 关联关系。关联表示两个类之间存在某种语义上的联系。例如,一个人为一家公司
工作,一家公司有许多办公室。就认为人和公司、公司和办公室之间存在某种语义上的联系。

④ 实现关系。实现关系是用来规定接口和实现接口的类或组件之间的关系的。接口是
操作的集合,这些操作用于规定类或组件的服务。在 UML 中,用一个带空心箭头的虚线表
示。

交互图

顺序图
 
顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。软考高级架构师——5、系统规划分析与设计方法_第15张图片

 
通信图
 
通信图用于描述相互合作的对象间的交互关系和链接关系,顺序图着重体现交互的时间顺序,
通信图则着重体现交互对象间的静态链接关系。
软考高级架构师——5、系统规划分析与设计方法_第16张图片
 
定时图
 
如果要表示的交互具有很强的时间特性(例如,现实生活中的电子工程、
实时控制等系统中),在 UML 1.X 中是无法有效地表示出来的。而在 UML 2.0 中引入了一
种新的交互图来解决这类问题,这就是着重表示定时约束的定时图
软考高级架构师——5、系统规划分析与设计方法_第17张图片
状态图
 

用来描述一个特定对象的所有可能状态及其引起状态转移的事件。大多数面向对象技术
都用状态图表示单个对象在其生命周期中的行为。一个状态图包括一系列的状态及状态之间
的转移。

软考高级架构师——5、系统规划分析与设计方法_第18张图片

 

活动图
 
活动图的应用非常广泛,它既可用来描述操作(类的方法)的行为,也可以描述用例和
对象内部的工作过程。活动图是由状态图变化而来的,它们各自用于不同的目的。
软考高级架构师——5、系统规划分析与设计方法_第19张图片
带泳道的活动图
 
软考高级架构师——5、系统规划分析与设计方法_第20张图片
对象流
 
在活动图中可以出现对象。对象可以作为活动的输入或输出,对象与活
动间的输入/输出关系由虚线箭头来表示。如果仅表示对象受到某一活动的影响,则可用不
带箭头的虚线来连接对象与活动。
 
信号
 
在活动图中可以表示信号的发送与接收,分别用发送和接收标识来表示。
发送和接收标识也可与对象相连,用于表示消息的发送者和接收者。
 
构件图
 
构件图是面向对象系统的物理方面进行建模要用的两种图之一。它可以有效地显示一组
构件,以及它们之间的关系。构件图中通常包括构件、接口及各种关系。
软考高级架构师——5、系统规划分析与设计方法_第21张图片
部署图
 

部署图,也称为实施图,它和构件图一样,是面向对象系统的物理方面建模的两种图之
一。

软考高级架构师——5、系统规划分析与设计方法_第22张图片

 9、用户界面设计

 接口设计主要包括三个方面的内容:一是设计软件构件间的接口;二是设计模块和其他
非人的信息生产者和消费者(如外部实体)的接口;三是人(如用户)和计算机间界面设计。

 

1 用户界面设计的原则 置用户于控制之下、减少用户的记忆负担软考高级架构师——5、系统规划分析与设计方法_第23张图片

 
2 用户界面设计过程
 
用户界面的设计过程也应该是迭代的,它通常包括 4 个不同的框架活动
软考高级架构师——5、系统规划分析与设计方法_第24张图片

 10、工作流设计

 工作流是一类能够完全或者部分自动执行的经营过程,根据一系列过程规则、文档、信息或任务在不同的执行者之间传递、执行 

 11、 简单分布式计算机应用系统的设计

 12、系统运行环境的集成与设计

  •  1.集中式系统
  • 2.分布式系统
  • 3. C/S 结构
  • 4.多层结构
  • 5.Internet、 Intranet 和 Extranet:Intranet 是私有网络,只限于内部使用,也使用 TCP/IP
  • 协议。 Extranet 是一个扩展的 Intranet。它包括企业之外的和企业密切相关合作的其他企业。
     

13、系统过渡计划

1.直接过渡:新系统运行时,立即关闭原来的系统

2.并行过渡:让新系统和旧系统在一段时间里同时运行,通过这样的旧系统作为新系统的备份,可以大大降低系统过渡的风险

3.阶段过渡
 

你可能感兴趣的:(软件架构师,软考高级)