天天动画片 > 八卦谈 > 系统分析与设计 知识点总结

系统分析与设计 知识点总结

八卦谈 佚名 2023-05-16 06:22:07

系统分析与设计

第 1 章 信息系统分析与设计

引言

系统分析:理解并详细说明系统应该做什么

系统设计:详细说明系统的组成和实现

系统分析员:运用信息技术解决业务问题

1.1 解决商业问题的分析员

分析员要解决什么样的问题:客户定购、职工工资、管理人员、货物运输、生产部门、财务部门、销售部门等

分析员如何解决问题:研究理解问题、核实解决问题的效益大于成本、设计一套可能的解决方案、决定一个最佳方案并进行推荐、详细说明所选方案的细节、实施方案、监控证实得到预期结果

1.2 解决业务问题的系统

信息系统:对信息进行收集、处理、存储并输出所需信息的一组相互关联的部件的集合。

信息系统的类型:事务处理系统 TPS、管理信息系统 MIS、主管信息系统 EIS、决策支持系统 DSS、通信与办公系统

部件:功能分解的子系统、不同类型的事件

边界:

  • 系统边界:系统与环境之间输入输出所通过的分界

  • 自动化边界:系统内自动和手动的分界

1.3 系统分析员需要的技能

  • 技术知识与技能:了解计算机基础知识、了解开发系统的多种工具和技术、了解系统开发的专门技术

  • 商务知识与技能、对商业的全面熟悉、对特定行业的熟悉、对一个具体公司的熟悉

  • 人的知识与技能

  • 诚实与道德

第 2 章 项目经理级分析员

2.1 系统开发生命期:

计划、分析、设计、开发、支持。

计划过程先于一切活动进行,不允许与其他活动重叠。

2.2 信息系统生存周期:

系统规划、开发、演化(包括运行、维护)、管理、支持。

  1. 规划过程:提出信息系统的建设设想,进行规划和可行性分析,然后决定是否有必要开发,并制定总体规划。

  2. 开发过程:分析、设计、实现、测试等

  3. 演化过程:从系统提交使用开始到被终止为止,贯穿信息系统发挥作用的全过程。

    • 运行:信息系统应用于组织的业务、管理和决策,发挥作用的过程

    • 维护:不断地适应环境和需求的变化,进行完善和版本更新的过程。(如,版本更新不属于开发过程,属于维护过程)

  1. 管理过程:管理软件质量、软件成本、开发时间等,贯穿整个过程

    • 按内容划分:规划管理、开发管理、运行管理、维护管理

    • 按管理的对象划分:信息系统人员管理、信息资源管理、项目管理、网络管理等

  2. 支持过程:起辅助、支持作用。如文档过程、配置管理过程、质量保证过程、验证过程、评审和审计过程、培训过程、环境建立过程等。

2.3 项目管理:

组织和指导其他人员在预先确定的进度和预算内实现计划

重点:时间、成本、质量

系统开发项目的参加人员:

  1. 客户:提供资金开发系统的人

  2. 监督委员会:监督系统的开发有没有严格按照规划进行,监督时间、成本、质量、进度

  3. 用户:使用系统的人

  4. 成员、小组领导

  5. 项目经理:和不同的系统开发的参加人员进行沟通管理

2.4 项目的启动

  1. 自顶向下:由顶层管理人员决定,下层人员决定

  2. 自下而上:下层人员向上反应

  3. 针对外界压力: 在外界的压力下不得不开发

2.5 项目计划阶段

项目经理要:项目要解决什么问题、制定怎样的开发计划、论证项目可行性、建立项目组、启动计划

解释:

  • 定义问题:检查项目启动的要求(2.4中的3种)、需求说明、预期的商业收益、确定新系统的能力
    关联图:将系统作为唯一的一个处理功能,和外界进行信息交流。

  • 可行性分析:经济可行性(成本/收益分析、项目资金)、组织和文化可行性(开发人员能力水平等)、技术可行性、技术可行性、进度可行性

  • 制定项目计划表

  • 建立项目组:为项目提供人员。包括制定详细的资源计划、确定并邀请专门技术人员、用户人员、划分工作小组、实施培训和建组训练

  • 启动项目:定案,资金释放,并正式通知相关人员。

 

第 3 章

螺旋式

极限编程:是螺旋式的一个特例

3.1 方法、模型、工具和技术

三要素:方法、模型和技术

系统构建的模型:流程图、数据流图、ER图、结构图、用例图、类图、顺序图等

系统管理的模型:甘特图、PERT图、组织层次图等

工具:项目管理、制图、IDE、计算机辅助系统工程(CASE)工具、数据库管理应用程序、反向工程工具、代码生成工具等

技术:...

3.2 系统开发的三种方法

传统方法

通过查看过程和数据及其相互关系来定义系统需求、设计和构造系统。包括结构化方法和信息工程方法。

·        结构化方法:

    • 使用结构化编程、分析和设计等技术

    • 定义系统需要做什么、需要存储和使用那些数据、系统需要什么样的输入和输出,以及系统的功能如何组织

o   结构化模型:DFD、ER图、结构图

结构化编程的三种结构:顺序、选择、循环

开发过程:

o   现代结构化分析:事件、数据流图、实体联系图

o   结构化设计:根据数据流图定义程序模块的结构图、时间对应结构图

o   结构化编程:使用结构化编程结构为模块编写代码

·        信息工程方法

    • 从全面的战略计划开始

    • 使用集成的CASE工具

面向对象方法

把信息系统看作一起工作来完成某项任务的相互作用的对象集合

对象:计算机中可以对消息作出相应的事物

面向对象分析OOA:定义在系统中工作的所有类型的对象,并显示这些对象之间的相互关联

面向对象设计OOD:定义和系统中人机交互所必需的所有类型的对象,并对每一种类型的对象进行细化,以至于可以用一种具体的语言或环境来实现这些对象

面向对象编程OOP:用某种语言的语句来定义各类对象的行为,及对象间的消息传递

模型:类图、用例图、状态图等

3.3 系统开发生命周期的变体

瀑布模型: 效率比较低下。

基于迭代的变体(螺旋模型)

基于开发速度的变体:适应对信息系统的大量需求、不断变化的技术和商业环境

快速开发方法:

  • 原型化开发方法

  • 螺旋型开发方法

快速开发技术:

  • 风险管理技术

  • 联合开发会议JAD

  • 基于工具的开发

  • 软件重用 软件重用是快速开发的要点,包括对象框架、组件

3.5 分析和设计阶段细节

  • 收集信息:如何收集信息、收集用户习惯

  • 定义系统需求

  • 区分需求优先级

  • 建立可行性原型和发现原形

  • 生成和评价可选方案

  • 和管理人员复查推荐方案

第 4 章 调查系统需求

4.1 功能需求和技术需求

系统需求:对系统所提供的功能做出的详细定义,来源于计划阶段所确定的高层功能,包括:

  • 功能需求:系统必须支持的功能和过程

  • 技术需求:描述操作环境和性能目标的需求

4.2 系统需求的来源

系统相关者:对系统的成功实施感兴趣的人。包括:

  • 系统用户

  • 项目客户

  • 技术人员

用户:

  • 水平方向和垂直方向的用户:

    • 水平方向划分:不同业务的用户

    • 垂直方向划分:权限和层次,如管理者、使用者、游客

  • 业务操作用户

  • 查询用户

  • 管理用户

  • 主管用户

4.3 识别系统需求

开发系统需求的方法:以新系统的逻辑需求模型为中心,识别现有系统的处理过程,为新系统开发建立模型

需求调查的三个主要问题:

  • 要做什么:

    • 商业过程和运作是什么

    • 理解商业功能

  • 怎样做:

    • 商业过程如何完成

    • 转向新系统的方法

  • 需要哪些信息:

    • 信息需求是什么

    • 定义新系统必须提供的具体信息

信息收集的各种方法:

  • 向系统相关者分发和收集调查表

  • 复查现有的报表、表格和过程描述

  • 主持与用户的面谈和讨论

  • 观察商业过程和工作流

  • 建立原型

  • 主持JAD会议

4.4 结构化遍历

简称遍历,是对调查结果和根据这些结果建立的原型进行复查。

在系统的每个大的功能结束后进行遍历;整体结束后也要进行。

4.5 业务流程重组

将原有的操作流程经过重组,交给信息系统完成。

第 5 章 系统需求建模:事件和事实


事件:

事件是可以描述的、值得记录的、在某一特定时间和地点发生的事情

  • 系统的所有处理过程都是由事件驱动或触发的

  • 事件对定义系统需求的意义:

    • 整体地看待系统,分析系统与外接的接口

    • 划分系统的一种方法

划分:

  • 系统相关事件

  • 系统无关事件

  • 外部事件:外部实体或动作参与者触发,如用户操作

  • 内部事件(也称临时事件):如定时事件

  • 状态事件:系统内部发生了需要处理的情况时引发的事件

识别事件的方法

  • 事件/条件和响应

  • 事件时序

  • 技术依赖事件和系统控制:忽略掉。如用户输入错误的事件

    • 理想的技术假设

事件的构成:

  • 触发器 Trigger:外部输入的数据,触发系统处理的事件

  • 来源 Source:触发事件的外部实体

  • 动作 Activity/Use case:系统要执行的操作

  • 响应 Response:系统要产生的输出

  • 目的地 Destination:输出的目的地

5.3 类图和ER图

第 6 章 传统的需求描述方法

6.1 传统观点和面向对象观点

传统方法

面向对象方法

系统是过程的集合

系统是交互对象的集合

过程与数据实体交互

对象与人或其他对象交互

过程接受输入并产生输出

对象发送与响应消息

6.2 数据流程图DFD

数据流程图(DFD)是一种图像化的系统模型,展示信息系统的主要需求:输入、输出、过程和数据存储;

图例:


例子:



评估DFD质量:

  • 复杂性最小化:(每一页上)没有过多的存储和处理过程

  • 信息超量:信息过多

  • 7±2原则:人能够理解并记忆的数量在7±2左右

  • 接口最小化

  • 数据流一致性:DFD图中的各部分一定要与ER图、事件表中的触发器一一对应。细化的DFD和上层的DFD也要保持一致性。

关于上下层的一致性:

  • 平衡:上层和下层保持一致

  • 黑洞:上层定义的数据,在下层不能凭空消失。如定义了变量但从未使用过。

  • 奇迹:上层没有定义的数据,在下层不能凭空出现。

0层图

0层图(又叫做事件划分的系统模型):一个为系统需求建立模型的DFD,建模过程中对应于系统或子系统中每个事件使用单个过程。

0层图和关联图的区别:

  • 0层图是对应事件的数据流程图片段,涉及数据存储

  • 关联图是顶层的数据流图,把系统表示成唯一的过程,不涉及数据存储

6.3 详细记录DFD部件

  • 结构化英语(伪码)例:

  借书(读者ID, 图书ID){

  1. 验证读者信息(读者ID)

  2. 检查读者可借图书信息(读者ID)

  3. 检查图书信息(图书ID)

  4. 借书(读者ID,图书ID){

      填写借书单(读者ID,图书ID,借书时间)

      更新读者信息(读者ID)

      更新图书信息(图书ID)

      }

  }

·        决策表

·        决策树

  • 数据流定义:数据流内容和内部结构的文本描述;

  • 数据元素定义

  • 数据存储定义

第 7 章 面向对象的需求描述方法

7.3 类图

7.4 用例图

场景:在用例中的一个特定的活动顺序。

  • 一个用例可能有多个不同的场景。

开发用例图:

  • 参照事件表

  • 确定所有使用系统的参与者

  • 开发场景(活动顺序图)

  • 确定通用的内部用例(多个用例都会涉及到的用例)

  • 划分用例

7.5 顺序图、协作图:对象状态

顺序图示例:


协作图示例:


各图中的名称一定要一一对应

基于技术的理想假设,如控制类(SystemDatabase等)不要放入顺序图或协作图

时序图消息的语法:[[条件]返回值:=]消息名(参数列表)

协作图:对象没有生命线,用序号标定顺序。

通过检查类中的消息,为类增加方法。

7.6 状态图:对象行为

例:


并发:

 


第 8 章 环境、方案与决策

将系统需求向系统设计和实施过渡。

8.1 评估目标系统环境

开发环境和系统软件环境

8.2 决定系统的范围和自动化水平

范围表:将系统功能需求程度分等级

分析自动化水平:给每项功能定义不同的自动化解决方案

8.3 系统实施方案分析

  • 托管:购买别人的服务;把项目托管在第三方平台上

  • 软件包和ERP

  • 客户化开发:二次开发

  • 自行开发

8.4 选择实施方案

确定选择标准:

  • 通用需求标准评价:从总体上看系统能否满足需求。包括团队经验、预期成本、预期效益

  • 技术需求标准评价:代码质量、文档、健壮性、安装的简易性等。

  • 功能需求标准评价:把需要满足的功能列出来,不同的功能给予不同的权重。

计算出三个标准的得分后,综合进行选择推荐。

8.5 考虑外包解决方案

  • 生成RFP(Request for Proposal)

  • 基准评价(Benchmarking)、选择卖方

8.6 递交结果和做出决定

在项目组中进行讨论,决定最终方案,形成文档,并交给筹划指导委员会。

原型:Axure的使用

第 9 章 系统设计

9.1 设计的要素

  • 系统的结构

  • 数据库的定义和组织

  • 设计系统输入输出

  • 定义人机交互界面

9.2 系统设计的工作模型

OOA

SA

包图

结构图

设计类图

系统流图

对象数据库模型

关系数据库模型

共有部分:

  • 混合关系数据库模型

  • 用户界面对话框、表格和报表

  • 系统控制

  • 伪码

  • 节点和定位图

9.3 面向对象的应用结构设计

设计类包图:指明具体的类包括在哪个包的包图,并且表明类之间的依赖关系

设计类图

需要标出变量的可访问性和类型;方法的可访问性、参数列表、返回值类型和内部结构(伪码)

设计类图的开发:

  • 决定需要设计的类,建立属性列表

  • 找到属于这个类的所有方法,考查顺序图

  • 详细描述方法逻辑,考查状态图

第 10 章 数据库设计

建议回去复习一下数据库系统

设计要点:

  • 为每个实体(类)建立一个表

  • 为每个表选择一个主键

  • 增加外键以表示一对多关系

  • 建立新表表示多对多关系

  • 定义参照完整性

  • 评价模式进行必要的改进

  • 为每个字段选择适当的数据类型和取值范围

补充内容

概要设计: 为了实现程序,使用什么样的框架和结构。

架构设计:还要考虑技术需求(如性能需求)


本文标题:系统分析与设计 知识点总结 - 八卦谈
本文地址:www.ttdhp.com/article/31242.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们