系统分析:理解并详细说明信息系统应该做什么的过程
系统设计:详细说明信息系统的许多组件在物理上是如何实施的过程
系统分析与设计的重点在于理解商业问题并提出解决方案。
解决问题的过程:
1. 研究理解问题
2. 核实解决问题的效益大于成本
3. 确定解决问题的需求
4. 制定解决问题的方案
5. 决定哪个方案是最佳的
6. 详细说明所选方案的细节
7. 实施解决方案
8. 监控是否达到预期效果
SDLC
A. 项目计划阶段
主要目标是确定新系统的作用域,确保项目的可行性,制定进度表和资源分配计划并进行预算。
活动:
1. 定义问题(和所需解决方案的范围)
2. 制定项目进度表
3. 确认项目可行性
4. 安排项目人员
5. 启动项目
B. 分析阶段
主要目标是理解新系统的商业需求和处理要求并制作书面文件。其本质是一个发现过程。
活动:
1. 收集信息
2. 确定系统需求
3. 建立需求发现的原型
4. 划分需求优先级
5. 产生并评估可选方案
6. 审查建议
C. 设计阶段
主要目标是涉及解决方案的系统
活动:
1. 设计并集成网络
2. 设计应用程序结构
3. 设计用户界面
4. 设计系统界面
5. 设计并集成数据库
6. 设计细节的原型化
7. 设计并集成系统控制
D. 实施阶段
主要目标是建立,测试和安装最后的系统
活动:
1. 构造软件部件
2. 检验预测试
3. 转换数据
4. 培训与文档
5. 安装系统
E. 支持阶段
主要目标是保持系统安装后有效的运行
活动:
1. 维护系统
2. 加强系统
3. 支持系统
有效的方法,模型,工具和技术是成功进行项目分析和设计的关键因素。
模型:现实的抽象。用来辅助理解现实。
系统组件的一些模型:
1. 流程图
2. 数据流图
3. 实体联系图
4. 结构图
5. 用例图
6. 类图
7. 顺序图
8. 等等
管理系统开发过程的模型:
1. PERT图
2. 甘特图
3. 组织层次图
4. 财务分析模型
工具:帮组生成项目中所需模型或其他组件的软件支持。
1. 项目管理程序(工具)
2. 制图工具
3. 编辑器
4. CASE工具
5. IDE
6. 数据库管理工具
7. 代码工具
技术:一组帮助开发人员完成系统开发活动或任务的方法
例如
1. 战略计划技术
2. 项目管理技术
3. 用户免谈技术
4. 数据建模技术
5. 数据库设计技术
6. 结构化分析技术
7. 结构化设计技术
8. 结构化编程技术
9. 软件测试技术
10. 面向对象分析与设计技术
方法:提供完成系统开发生命周期每一部的详细指导,包括其中使用到的具体的模型,工具和技术。
A. 传统方法(结构化系统开发)
使用结构化分析,设计,编程的系统开发方法
B. 面向对象的方法
分析阶段详细:
信息收集技术:
1. 问题搜集
2. 复查现有报表,表格和过程描述
3. 面谈
4. 观察记录商业过程(工作流图)
5. 建立原型
6. 分发调查表
7. JAD
工作流:处理商业事务的一系列步骤
事件:描述值得记录的在某一特定事件地点发生的事情
1. 外部事件
2. 临时事件
到达某一时刻发生的事件
3. 状态事件
系统内部发生了需要处理的情况所引发的事件
事件表:一个事件列表,表以各个事件为行,各个事件的关键信息为列。
触发器:通知事件发生了的信号
来源:为系统提供数据的外部实体或参与者
活动、用例:当事件发生时系统执行的操作。
响应:系统产生的输出结果,将被送到某个目的地。
目的地: 接收系统输出数据的外部实体或参与者
事物辨识后, 传统开发方法是首先获得事件表,然后根据表的信息生成生成数据流程图,这些图包括关联图,DFD片段和详细的DFD。实体联系图定义了包括在DFD中的数据存储需求。
面向对象的方法,也是首先获得事件表,然后生成一组用例图和应用实例图。应用实例和类图用于生成对象行为的其他模型。
传统开发方法描述需求:
数据流图(DFD): 用处理,外部实体,数据流以及数据存储表示系统需求的图表。
外部实体:系统边界外的实体,接受数据输入或输出
处理:DFD的符号,代表数据输入转换到数据输出的算法或程序
数据流:符号,代表在处理,外部实体,数据存储之间的数据移动。
数据存贮: 保存数据的地方。
关联图:描述系统抽象概念的DFD.整个系统被标识成一个处理, 他在标识系统边界时很有用。
DFD片段是为事件清单中的每一个事件创建的,每个DFD片段是显示系统如何响应某个事件的独立模型。
面向对象的需求描述:
用例图: 用以显示不同的用户角色以及这些角色如何使用系统的图
协作图: 用以显示对象如何被协调在一起执行用例的图
消息:用例图内部对象之间的通信
顺序图: 用以显示用例对象之间消息顺序的图
交互图包括协作图或顺序图。
状态图:用以显示对象在各个阶段的生命周期和转换情况的图。
面向对象的需求: 事件表+类图+用例图+交互图+状态图
设计阶段详细:
架构设计:对系统结构做的设计(总体设计、概念设计)
细节设计:低层设计, 包括程序细节的设计。
结构化设计:
系统流程图:描述体统内程序之间控制流的图
结构图: 用来展示系统模块间层次关系的层次图。
面向对象设计:
包图:用于标识系统中主要部件的高层图。
设计类图: 类图的升级版,可以描述类中的设计部件
数据库设计:
参照完整性: 一个一致的数据库状态,每一个外部码值都作为一个主键值存在。
1NF,表中没有重复字段或字段组。
函数依赖,两个字段之间存在一一对应关系。
2NF,一个表是1NF而且所有非关键元素均函数依赖于整个主键。
3NF,一个表是2NF而且没有非关键字段函数依赖于其他非关键字段。
模型图:
关联图:表示一个系统作用域的图表
工作分解结构:划分一个项目的任务,活动和阶段是评估和安排一个项目任务的方法。
PERT 项目评估和检查技术
CPM 关键路径方法
甘特图:表示项目各项任务和活动进展的一个条形图
跟踪甘特图:表示当前日期和每项任务完成工作量的百分比。
数据流图:显示在结构化分析中产生的系统输入,处理,存储和输出的图形模型。
实体联系图:系统所需的数据的图形模型,包括结构化分析和信息工程阶段生成的存储信息的事物及事物之间的联系。
活动图:一种工作流图,用来描述用户的活动及活动的顺序。