携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情
系统分析
系统分析阶段也称为逻辑设计阶段,其任务是根据系统设计任务书所确定的范围,对现有系统进行详细调查,描述现有系统业务的业务流程,指出现有系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。
系统分析阶段的工作成果体现在系统需求规格说明书中,这是系统建设的必备文件,是系统设计阶段的工作依据,也是将来系统验收的依据。
详细调查对系统所涉及领域的各个方面,进行静态信息(例如, 组织结构、系统功能等)和动态信息(例如,业务流程、数据流程 等)的调查,根据科学合理的原则,采用科学合理的方法,进行周密完备的调查。详细调查的主要方法有收集资料、开调查会、个别访问、书面调查、抽样调查、现场观摩、参加业务实践和阅读历史文档等。
现有系统分析
(1)获得现有系统的物理模型(应客观的反映现有系统的实际情况)
(2)抽象出现有系统的逻辑模型(区分出本质的和非本质的因素,去掉那些非本质的因素,即可获得反应系统本质的逻辑模型)
(3)建立新系统的逻辑模型
(4)建立新系统的物理模型
组织结构分析
组织结构调查就是对企业组织结构与职责进行分析,明确企业内部的部门划分,以及各部门之间的领导与被领导关系、信息传递关系、物质流动关系和资金流动关系,并了解各部门的工作内容与职责,包括业务程序和业务岗位等,其中岗位又包括工作名称、职责、责任、薪资、级别、以及该岗位与其他各岗位的关系等。
系统功能分析
功能体系图是一个完全以业务功能为主体的树形图,其目的在于描述企业内部各部门的业务和功能。确定了所有系统的功能后,还需要分析各个功能之间的关系和流程,一般用功能流程图来描述
业务流程分析
业务流程分析的目的是了解各个业务流程的过程,明确各个部门之间的业务关系和每个业务处理的意义,为业务流程的合理化改造提供建议。
业务流程分析的主要方法由价值链分析法、客户关系分析法、供应链分析法、基于ERP的分析法和业务流程重组等。
业务流程建模
业务流程建模可以采用两种方式,分别是自顶向下和自底向上
描述业务流程模型最常见的方法是形式化描述和图形化描述
建模方法:
(1)标杆瞄准
标杆瞄准是一个连续、系统化地对外部领先企业进行评价的过程,通过分析和评价,确定代表最佳实践的经营过程和工作过程,以便合理地确定本企业的业务流程
(2)IDEF
IDEF是一系列建模、分析和仿真方法的统称,从IDEF0到IDEF14共有16套方法
(3)DEMO
DEMO通过六中模型来描述信息系统的构成,包括交互模型、业务流程模型、事物模型、行为模型、事实模型和互约束模型。
(4)Petri
Petri网作为一种从流程的角度触发描述和分析复杂系统的模型工具,适用于多种系统的图形化、数学化建模工具,为描述和研究具有并行、异步、分布式和随机性等特征的信息提供了强有力的手段
(5)业务流程建模语言
主流的业务流程建模语言标准有BPEL(Business Process Exceution Language,业务流程执行语言)、BPML(Business Process Modeling Language,业务流程建模语言)、BPMN(Business Process Modeling Notation,业务流程建模标注)、XPDL(XML Process Definition Language,XML流程定义语言)和UML五种。
(6)基于服务的BPM
基于服务的流程建模是把BPM技术和服务的思想结合在一起,更加便于业务流程的分析、设计与优化。在基于服务的BPM中,系统分析师必须对每一个业务流程进行认证的定义和说明,明确那些业务流程可以转化为服务,认真设计及定义服务,并需要区别服务和构件
数据与数据流程分析
数据与数据流程分析是以后建立数据库系统和设计功能模块处理过程的基础
SA是一种面向数据流的分析方法,在SA中DFD是数据流程分析使用的主要工具之一
(1)数据汇总分析
(2)数据属性分析
(3)数据的存储分布
\
\
系统设计
软件设计包括体系结构设计、接口设计、数据设计和过程设计
| 体系结构设计 | 定义软件系统各主要部件之间的关系 |
|---|---|
| 数据设计 | 将模型转换成数据结构的定义。好的数据设计将改善 |
| 接口设计(人机界面设计) | 软件内部,软件和操作系统间以及软件和人之间如何通信。 |
| 过程设计 | 系统结构部件转换成软件的过程描述 |
结构化设计
系统结构图(Structure Chart,SC)又称为模块结构图,他是软件概要设计阶段的工具,反应系统的功能实现和模块之间的练习与通信,包括各模块之间的层次结构,即反映了系统的总体结构。
SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等四个部分
流程设计
包括程序流程图、IPO图、盒图、问题分析图、判定树,表格工具包括判定表,语言工具包括过程设计语言等。
面向对象设计
| 单一职责原则 | 设计目的单一的类 |
|---|---|
| 开放-封闭原则 | 对扩展开放,对修改封闭 |
| 里是替换原则 | 子类可以替换父类 |
| 依赖倒置原则 | 要依赖于抽象,不是具体实践。对接口进行编程,不要对实现编程 |
| 接口隔离原则 | 使用多个专门的接口比使用单一的总接口好 |
| 组合重用原则 | 尽量使用组合不是继承达到重用的目的 |
| 迪米特原则 | 一个对象应当对其他对象有尽可能少的了解 |
面向对象的基本概念
面向对象=对象+分类+继承+通过消息的通信
1、对象的概念
一个对象通常由三部分组成,分别是对象名、属性和操作(方法)
2、类的概念
类是一组具有相同属性和相同操作的对象的集合,一个类通常可由3部分组成,分别是类名、属性和操作(方法)
3、继承
4、类定义
5、多态性
多态性是指同一操作作用于不同的对象可以有不同的解释,产生不同的执行结果
(1)参数多台应用比较广泛,被称为最纯的多态
(2)包含多态最最常见的例子就是子类型化,即一个类型是另一个类型的子类
(3)过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊
(4)强制多态是编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求
统一建模语言
UML又称统一建模语言或标准建模语言,支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持
UML中有4中事务:
(1)结构事务:名词、静态部分、物理元素
(2)行为事务:动词、动态部分、行为
(3)分组事务:包
(4)注释事务:注解
uml分类
(1)静态模型(系统结构)
用例图、类图、对象图、构件图、部署图
(2)动态模型(系统行为)
状态图、活动图、顺序图、协作图
用例图
用例图是指参与者、用例、边界以及它们之间的关系构成的用于描述系统功能的视图。用于需求分析阶段。主要对系统、子系统或类的功能行为进行建模
类图
类图展示了一组对象、接口、协作和他们之间的关系。类图是静态视图
类图中包括:
(1)类
(2)接口
(3)协作
(4)依赖、泛化和关联关系
使用类图的情况:
(1)对系统的静态设计建模
(2)对简单的协作建模
(3)对逻辑数据库模式建模
类的分类
(1)实体类:实体类对应系统需求中的每个实体,通常需要保存在永久存储体中,一般使用数据库表或文件来记录
(2)控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。
(3)边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类、如对话框、窗口、菜单等。
类图中的关系
对象图
对象图展现了某一时刻一组对象以及他们之间的关系,描述了在类图中所建立的事物的实例的静态快照
类图与对象图
| 类图 | 对象图 |
|---|---|
| 再类中包含三部分:类名、类的属性和类的操作 | 对象包含两个部分:对象的名称和对象的属性 |
| 类的名称栏只包含类名 | 对象的名称栏包含”对象名:类名“ |
| 类的属性栏定义了所有的属性特征 | 对象的属性栏定义了属性的当前值 |
| 类中列出来操作 | 对象图中不包含操作内容,因为对属于同一个类的对象,其操作是相同的 |
| 类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 | 对象使用链进行连接,链中包含名称、角色 |
| 类代表的是对象的分类所以必须说明可以参与关联的对象的数目 | 对象代表的事单独的实体,所有的链都是一对一的,因此不涉及到多重性 |
交互图
交互图表现为序列图、通信图、交互概览图和计时图。用于动态建模
序列图强调消息时间顺序的交互
通信图强调接收和发送信息的对象的结构组织的交互
交互概览图强调控制流的交互图
计时图适合嵌入式系统建模的交互图
状态图
用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。用于对系统的动态方面建模。状态图主要描述行为的结果。
活动图
将进程或其他计算机的结构展示为计算内部一步步的控制流和数据流,主要用来描述系统的动态视图。活动图的本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。活动图主要描述的事行为的动作。
构件图(组件图)
使用构件图的思想是复用。
构件有以下几种类型:
(1)部署构件:dll文件、exe文件、com+对象、CORBA对象、EJB、动态Web页和数据库表等
(2)工作产品构件:源代码文件、数据文件等
(3)执行构件:系统执行后得到的构件
部署图
是用来显示系统中软件和硬件的物理结构
从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式
包图
在UML中类似于文件夹的符号表示的模型元素的组合。包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系
包图的作用:包图可以描述需求,设计的高阶概况;包图通过合理规划自身功能反应系统的高层架构,在逻辑上将系统进行模块化分解;包图最终是组织源码的方式
一个包图可以由任何一种UML图组成,通常UML用例图或是UML类图
包被描述成文件夹,可以用于UML任何一种的图上
包图只是把某些类放在一个包中,因此可以看作是类图的一种