Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 6 章信息管理系统分析与设计 本章知识: ( 1 )信息管理系统的分类 ( 2 )信息管理系统的开发过程和各阶段主要任务 ( 3 )系统分析、系统设计、系统实施与维护 本章内容: 6.1 概述6.1 概述 6.2 系统分析6.2 系统分析 6.3 系统设计6.3 系统设计 6.4 系统实施与维护6.4.

Similar presentations


Presentation on theme: "第 6 章信息管理系统分析与设计 本章知识: ( 1 )信息管理系统的分类 ( 2 )信息管理系统的开发过程和各阶段主要任务 ( 3 )系统分析、系统设计、系统实施与维护 本章内容: 6.1 概述6.1 概述 6.2 系统分析6.2 系统分析 6.3 系统设计6.3 系统设计 6.4 系统实施与维护6.4."— Presentation transcript:

1 第 6 章信息管理系统分析与设计 本章知识: ( 1 )信息管理系统的分类 ( 2 )信息管理系统的开发过程和各阶段主要任务 ( 3 )系统分析、系统设计、系统实施与维护 本章内容: 6.1 概述6.1 概述 6.2 系统分析6.2 系统分析 6.3 系统设计6.3 系统设计 6.4 系统实施与维护6.4 系统实施与维护

2 6.1 概述 6.1.1 信息管理系统分类 1 .办公自动化系统 ( Office Automation System) ( 1 )收文管理。( 2 )拟文管理。( 3 )呈报文管理。 ( 4 )档案管理。( 5 )电子邮件系统。( 6 )个人事务管理。 ( 7 )系统管理。 2 .管理信息系统 ( Management Information System , MIS ) 主要功能 : ( 1 )数据处理功能。 ( 2 )计划功能。 ( 3 )控制功能。 ( 4 )预测功能。 ( 5 )辅助决策功能 3. 决策支持系统 (Decision Supporting system,DSS)

3 6.1 概述 6.1.2 信息管理系统开发过程  软件的生命周期: 软件开发过程是由一系列相关活动组成的,包括从提 出要求,经过研制,到交付使用,在使用过程中不断 的增补修订,直到最后因被新的软件所代替而淘汰的 全部过程。  阶段划分  系统分析  系统设计  系统实施与维护

4 6.2 系统分析 6.2.1 问题定义 问题定义阶段必须回答的关键问题是: “ 系统要解决的问题是什么 ” 。 6.2.2 可行性研究  关键问题是: “ 对上一阶段提出的问题有可行的解决方案吗? ” 。  可行性研究的任务  可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题 是否能够解决。  可行性研究的内容:  经济可行性  技术可行性  法律可行性  开发方案的选择 可行性研究的步骤 明确新系统的实现目标,研究旧系统 分析问题,导出新系统模型 确定系统开发计划 完成可行性研究报告 返回本节目录

5 6.2 系统分析 6.2.3 需求分析 需求分析的步骤 进行调查研究 分析和描述系统的逻辑模型 评审的主要内容 : 1. 系统定义的目标是否与用户的要求一致。 2. 系统需求分析阶段提供的文档资料是否齐全。 3. 文档中所有描述是否完整、清晰、准确反映用户要求。 4. 与所有其它系统成分的重要接口是否都已经描述。 5. 所开发项目的数据流与数据结构是否足够、确定。 6. 所有图表是否清楚,在不补充说明时是否能够理解。 7. 主要功能是否已包含在规定的软件范围之内,是否都已充分说明。 8. 设计的约束条件和限制条件是否符合实际。 9. 开发的技术风险是什么。 l0. 是否考虑过软件需求的其它方案。 11. 是否考虑过软件将来可能会提出的其它需求。 12. 是否详细制定了检验标准,它们对系统定义是否能成功进行确认。 13. 有没有遗漏、重复或不一致的地方。 14. 用户是否审查了初步的用户手册。 15. 软件开发计划中的估算是否受到了影响。

6 6.3 系统设计 6.3.1 软件设计 任务是确定系统 “ 怎么做 ” 的问题。 划分 总体设计: 详细设计: 软件设计的过程 确定目标系统的不同的方案, 分析员推荐最佳实现方案, 设计软件结构。数据库设计。 制订测试计划。编写文档。 复审。

7 6.3 系统设计 6.3.1 软件设计 模块 模块是能够单独命名并且能够独立完成一定功 能的数据说明和程序语句的集合。模块能够通 过名字来访问,如过程、函数、子程序等。 模块划分的原则 尽量提高模块的独立性: 模块的规模应该适中: 降低模块接口的复杂性,模块之间传递的参数 个数应尽量少,类型应尽量简单。 设计单入口、单出口的模块。

8 6.3 系统设计 6.3.1 软件设计 总体设计的图形描述工具 层次图、 HIPO 图(层次图 + 输入 / 处理 / 输出图)、结构图。 结构图 用一个方框代表一个模块,框内注明模块的名字或主要功能; 方框之间用箭头或直线表示模块的调用关系;用带注释的箭 头表示模块调用时传递的信息,箭头方向表示数据传递方向, 箭头尾部用空心圆表示传递的是数据信息,实心圆表示传递 的是控制信息; 结构图的基本符号

9 结构图举例 图 6-2 产生最佳解的结构图

10 6.3 系统设计 6.3.1 软件设计 详细设计的图形描述工具 常用工具有:程序流程图、盒图( N-S 图)、 PAD 图、过程设 计语言 PDL 、判定表、判定树、 Jackson 图等。它们都可以形 象的描述程序的控制流程、处理过程、数据组织以及各方面 的实现细节,作为编码的依据。 程序流程图 程序流程图的基本符号程序流程图的基本符号

11 6.3 系统设计 6.3.1 软件设计 详细设计的图形描述工具 盒图 : 又称 N-S 图,是 1973 年由 Nassi 和 Shneiderman 提出的, 它撇弃了程序流程图控制转移的随意性,以结构化的方式严 格控制处理之间的转移 。 图 6-4 N-S 图 的 基 本 符 号 返回本节目录

12 6.3 系统设计 6.3.2 编码 软件编码是系统设计过程的继续,是将软件设计转换成 用程序设计语言编写的源程序的过程。 1 .结构化程序设计的设计原则 使用语言中的顺序、选择、循环等有限的基本控制结 构表示程序逻辑。 选用的控制结构只有一个入口、一个出口。 程序语句组成容易识别的块,每块只有一个入口和一 个出口。 复杂结构应用基本控制结构进行组合嵌套来实现。 程序中没有的控制结构,可用一段等价的程序段来模 拟,但要求程序段在整个系统中应前后一致。

13 6.3 系统设计 6.3.2 编码 2 .程序设计语言的选择 除了选择结构化的程序设计语言,还应该考虑如下几个 方面: 系统应用领域。 算法和计算的复杂性。 软件执行环境。 性能考虑,程序设计语言能否达到软件系统的需求。 数据结构的复杂性。 软件开发人员的知识水平和心理因素等。

14 6.3 系统设计 6.3.2 编码 2 .程序设计语言的选择 项目的应用领域是选择语言的关键因素,不同的应用领 域有适应该领域软件特点的不同的程序设计语言开发 环境。如在科学计算领域多使用 FORTRAN 语言,在 数据库应用领域主要使用 PowerBuilder 、 SQL Server 、 ORACLE 、 ACCESS 、 Sybase 等,网页设计主要采用 JavaScript 、 VBScript 、 ASP 、 PHP 、 JSP 等程序设计 语言,对于实时性较高的应用系统一般采用汇编语言、 C 语言、 C++ 等。

15 6.3 系统设计 6.3.2 编码 3 .程序设计风格 良好的程序设计风格主要有四个方面: ( 1 )源程序文档化 ① 标识符的命名 标识符指表示模块名、变量名、常量名、子程序名、 函数名等的名字。名字命名应符合其表示的实际意义。 ② 程序注释 程序的注释能够帮助读者理解程序, 序言性注释:序言性注释置于模块的开头部分, 功能性注释。

16 6.3.2 编码 ③ 程序的形象化组织 使用空格、空行和移行来改善视觉效果, 使程序 的结构清晰,层次分明,易于理解。 例:写法一 float score;char degree;if (score>90) degree='A';else if (score>80) degree='B';else…… 写法二: float score; char degree; if (score>90) degree='A'; else if (score>80) degree='B'; else …… 显然,写法二中程序的结构则更清晰,便于理解和查错、改错。

17 ( 3 )语句结构 语句结构应力求简单、直接,不能片面追求效率而使结构语句 复杂化。 注意以下几个方面: 在一行内只写一条语句,并且采用适当的移行格式,使程序的 逻辑和功能变得更加明确。 程序的编写应当首先考虑清晰性,不要刻意追求技巧性,使程 序编写的过于紧凑。 程序编写的要简单,写清楚,直截了当的说明程序员的用意。 程序编写要做到清晰第一,效率第二。 首先要保证正确性,然后才要求提高速度。

18 6.3 系统设计 6.3.3 软件测试 1 .软件测试的目标 G · Myers 给出了如下一些观点, ( 1 )测试是为了发现程序中的错误而执行程序的过程。 ( 2 )好的测试方案是即可能发现迄今为止尚未发现的错误。 ( 3 )成功的测试是发现了至今为止尚未发现的错误的测试。 2 .软件测试的原则 ( 1 )应当尽早地、不断地进行软件测试。 ( 2 )测试用例应由测试输入数据和预期的输出结果两部分组成。 ( 3 )程序员应避免检查自己的程序,开发小组和测试小组分开。 ( 4 )注意测试中的群集现象, ( 5 )测试用例应当包含合理的输入数据和不合理的输入数据。 6 )严格执行测试计划,避免测试的随意性。 ( 7 )应当对每一测试结果作全面检查。否则可能会遗漏错误。 ( 8 )在程序修改之后要进行回归测试。 ( 9 )要妥善保管测试计划、测试用例、修改记录、出错统计和最终分析报告, 为维护提供方便。

19 6.3.3 软件测试 3 .软件测试的步骤 ( 1 )单元测试 ( 2 )集成测试 ( 3 )确认测试 ( 4 )平行运行 图 6-5 软件测试与软件开发各阶段的关系

20 6.3.3 软件测试 4 .测试方法 ( 1 )静态分析 静态测试是指对系统分析、系统设计各阶段的文档进行分析、检查, 而不在实际的计算机运行环境下运行程序的过程。 ( 2 )动态测试 动态测试是指利用测试数据作为输入在计算机环境下运行程序,根据 实际的输出与预期的输出结果是否一致来确认程序是否有错的测试 过程。 动态测试的测试方法有黑盒测试法和白盒测试法。 黑盒测试法是指将程序模块看成是一个不透明的黑盒子,完全不考 虑程序的内部结构和处理过程,只检查程序的功能是否按照需求说 明书的规定正常使用,能否适当的接收数据并产生正确的输出信息, 并保持外部信息(如数据库或文件)的完整性。因此,黑盒测试法 又称为功能测试,是在模块的接口处进行的测试。 白盒测试法将程序模块看成是一个透明的白盒子,测试人员能够清 楚的看到程序的内部结构和处理过程,因此可以按照程序的内部逻 辑结构进行测试,检验程序中的每一条路经能否按照预定的要求正 常工作。因此白盒测试又称为结构测试。

21 6.3 系统设计 6.3.3 软件测试 5 .测试和调试 软件测试是为了发现错误而执行程序的过程。 调试则是在进行了成功的测试之后才开始进行 的,其目的是为了进一步诊断和改正程序中潜 在的错误。 软件调试工作包含两部分内容: ( 1 )确定程序中错误的确切性质和位置。 ( 2 )对程序(设计、编码)进行修改,排除错误。 因此调试是测试工作的延续。 返回本章目录

22 6.4 系统实施与维护 6.4.1 维护的分类 维护:在系统实施与维护阶段对软件产品 进行的修改。分类: 1 .改正性维护 2 .适应性维护 3 .完善性维护 4 .预防性维护

23 6.4 系统实施与维护 6.4.2 提高软件可维护性的方法 提高可维护性可采取的措施:  严格按信息管理系统开发过程组织软件开 发活动。  利用先进的软件技术和工具。  选择可维护的程序设计语言。  改进和完善软件文档。 返回本节目录

24 6.4 系统实施与维护 6.4.3 维护的过程 图 6-6 软 件 维 护 的 工 作 流 程

25 上机练习: 1. 全真模拟一级考试第二套 本章小结 系统分析 系统设计 系统维护 返回本章目录


Download ppt "第 6 章信息管理系统分析与设计 本章知识: ( 1 )信息管理系统的分类 ( 2 )信息管理系统的开发过程和各阶段主要任务 ( 3 )系统分析、系统设计、系统实施与维护 本章内容: 6.1 概述6.1 概述 6.2 系统分析6.2 系统分析 6.3 系统设计6.3 系统设计 6.4 系统实施与维护6.4."

Similar presentations


Ads by Google