信息系统设计与开发

7 mins.7.9k360

参考资料

  • 左美云.信息系统与开发管理教程[M].北京:清华大学出版社.2021

信息系统的基础知识

信息的定义

信息是可以**传输和处理**的数据和知识,是**管理和决策的重要依据**

除定义之外,信息在实践中还具有以下特点:

  • 客观性:信息可以反映和再现事物的变化和特征
  • 系统性:信息反映客观事物之间的联系
  • 开放性:信息的使用随着人类的科技水平提升而提升,因此会有不断更新的信息加入系统(比如金融因子挖掘,每过一段时间就会发现新的因子,也会有以前的因子失效)
  • 相对性:不同用户的信息需求和对相同信息的反应不同
  • 变换性:信息的形态变化
  • 转移性
  • 有序性
  • 动态性
  • 时效性
  • 共享性
  • 两面性

系统的概念

系统是内部相互依赖的各个部分,按某种规则,为同一目的的实现而结合在一起的,合理有序的组合。

提示

(如果你是一个管理科学或信息系统管理专业的学生,你应该已经或未来会听系统的定义和性质听到厌烦)

从定义种可以提取出来的系统的性质

  • 整体性:关注整体,而不仅仅是局部的拼接。
  • 动态性:系统在时间中演化变化。
  • 层次性:系统可以分解为子系统,同时也是更大系统的一部分。
  • 关系性:系统要素之间的连接和互动决定了系统的性质。
  • 反馈性:系统内部存在正反馈和负反馈机制,影响系统行为
系统论的发展历程

1. 萌芽阶段(19世纪末至20世纪初)

  • 早期哲学与生物学:如德国生物学家 冯·贝塔朗菲(Ludwig von Bertalanffy)观察到生物系统的“有机整体性”。
  • 哲学思想中对“整体”与“部分”关系的探讨,已初具系统思想的雏形。

2. 形成阶段(20世纪40~60年代)

这一时期是现代系统论的奠基时期,系统思想逐步形成了系统理论框架。

(1)一般系统论(General Systems Theory, GST)

  • 提出者:冯·贝塔朗菲(Ludwig von Bertalanffy)
  • 主张:提出“跨学科”的一般系统模型,适用于生物、社会、技术等各类系统。
  • 特点
    • 强调**开放系统**
    • 动态平衡
    • 反馈调节

(2)控制论(Cybernetics)

  • 提出者:诺伯特·维纳(Norbert Wiener),1948年出版《控制论》
  • 核心概念
    • 反馈机制
    • 信息流
    • 调控
    • 稳态
  • 应用:自动化系统、生物调节、神经系统模拟等

(3)信息论(Information Theory)

  • 提出者:克劳德·香农(Claude Shannon)
  • 研究内容:信息的传递、噪声、编码与解码,为系统通信和控制打下基础。

(4)运筹学与系统工程

  • 第二次世界大战促进了复杂问题的系统性研究(如雷达部署、物流、战略模拟等)。
  • 系统工程(Systems Engineering)应运而生,用于解决大型工程项目中的集成与优化问题。

3. 扩展阶段(1970年代至今)

(1)复杂系统理论(Complex Systems)

  • 研究对象:具有非线性、涌现、自组织特征的系统。
  • 代表领域
    • 混沌理论
    • 网络科学
    • 自适应系统
  • 研究机构:**圣塔菲研究所(Santa Fe Institute)**是复杂系统研究的重要中心。

(2)软系统方法(Soft Systems Methodology, SSM)

  • 提出者:彼得·Checkland
  • 用途:解决“无明确定义”的社会复杂问题(如组织改革、教育系统)。
  • 特点
    • 强调参与者观点
    • 结构化讨论
    • 不断迭代改进

(3)系统动力学(System Dynamics)

  • 提出者:杰伊·福雷斯特(Jay W. Forrester)
  • 应用:研究经济、环境、社会系统的动态行为与反馈结构。
  • 代表作:《世界模型》(*Limits to Growth*, 1972)

(4)生态系统与可持续发展

  • 系统论被广泛应用于环境科学与可持续发展研究。
  • 应用方向
    • 生态系统的物质与能量流动模型
    • 循环经济分析
    • 耦合人地系统等

信息系统

信息系统的定义

信息系统是由 人、技术、数据、过程和环境组成的相互关联的系统,用于收集、处理、存储和传播信息,从而支持决策和业务运作。

信息系统的类型

类别 功能 举例
事务处理系统(TPS) 处理日常事务数据 银行自动柜员系统、订单处理系统
管理信息系统(MIS) 为中层管理提供结构化信息 销售报告系统、库存管理系统
决策支持系统(DSS) 支持非结构化决策 财务分析、风险评估模型
企业资源计划系统(ERP) 集成企业各部门数据 SAP、Oracle ERP
办公自动化系统(OAS) 提高办公效率 文档管理系统、电子邮件系统
客户关系管理系统(CRM) 管理客户信息与关系 Salesforce、Zoho CRM
知识管理系统(KMS) 管理组织知识资产 内部知识库、协作平台

信息系统的结构

信息系统就像一座高楼,既有严谨的结构,又可以从不同角度对同一个结构得出不同形式

概念模型

概念

物理模型

信息系统的物理结构指的是信息系统的硬件系统的拓扑结构。

信息系统的物理结构主要有三种:集中式、分布式和混合式。

  • 集中式:所有的计算和存储都在一个中心服务器上完成,运行成本高,效率低,维护困难。
  • 分布式:计算和存储分布在多个服务器上,通常通过网络连接。提高了系统的可靠性和可扩展性,但也增加了网络通信的复杂性。
  • 混合式:结合了集中式和分布式的特点,部分计算和存储在中心服务器上,部分在分布式服务器上。优点是可以根据需要灵活调整资源分配,兼顾了集中式和分布式的优点。但是这种结构的复杂性较高,需要更精细的管理和维护。

层次结构

概念

功能结构

概念

信息系统的开发准备

信息系统的开发流程

在信息系统开发过程中,我们往往使用 系统开发生命周期(SDLC)模型来指导整个开发过程。SDLC模型包括以下几个主要阶段:

  1. 系统规划

    • 识别业务需求和问题
    • 制定项目目标和范围
    • 进行**可行性分析**(技术、经济、操作、法律等方面)
    • 制定项目计划和资源分配
  2. 系统分析

    • 收集和分析用户需求
    • 制定系统需求规格说明书(SRS)
    • 建立数据流图(DFD)和实体关系图(ERD)
    • 评估现有系统的优缺点
  3. 系统设计

    • 设计系统架构和模块
    • 设计数据库结构和数据模型
    • 制定用户界面设计
    • 制定系统安全和控制措施
  4. 系统实施

    • 编码和程序开发
    • 系统集成和测试
    • 用户培训和文档编写
    • 系统部署和上线
  5. 系统维护

    • 监控系统运行状态
    • 处理用户反馈和问题
    • 进行系统升级和改进
    • 定期进行系统审计和评估

系统规划的内容和方法

系统规划的内容

系统规划是信息系统开发的第一步,主要包括以下内容:

  • 业务需求分析
  • 可行性分析
  • 项目目标和范围
  • 资源规划

需求分析:

开发信息的第一步就是确定系统需求,简单说就是 弄清楚要做什么

需求分析的主要任务是识别和定义系统的 功能需求非功能需求

  • 功能需求:系统应该要做到的功能,是系统开发过程中最主要的需求部分。可以按照重要性分成“必须有”、“应该有”、“可选有”三类。

  • 非功能需求:系统的 性能可靠性安全性可维护性、**界面可交互性**等方面的要求。比如系统响应时间、并发用户数、数据备份频率等。

获取需求的方法包括:

  • 阅读文献:查阅相关的行业报告、技术文档和学术论文,了解最新的技术趋势和最佳实践。
  • 访谈:与业务部门、用户和其他相关人员进行深入访谈,获取他们的需求和期望。
  • 问卷调查:设计问卷,收集大量用户的反馈和意见。
  • 观察:实地观察业务流程,了解实际操作中的问题和需求。
  • 头脑风暴:组织团队成员进行头脑风暴,激发创新思维,提出多种解决方案。

可行性分析

确定了系统的目标需求之后,分析人员就应该开始进行可行性分析,评估系统开发的可行性。

可行性分析主要包括两个方面: 必要性可能性。一个没有必要进行的项目是没有意义的,一个没有可能性的项目是无法成功的。

可能性分析可以从三个方面进行:

  • 技术可行性:评估现有技术是否能够支持系统的开发和运行。考虑技术的成熟度、团队的技术能力、开发工具和平台等。
  • 经济可行性:评估系统开发和运行的成本与预期收益。包括初始投资、运营成本、维护费用以及潜在的经济效益。
    • 人们在考虑费用的时候往往会低估成本,高估收益。以下因素需要特别注意:
      • 隐性成本:如培训费用、过渡期的生产力损失等。
      • 长期维护成本:系统上线后的持续维护和升级费用。
      • 风险评估:项目延期、技术失败等可能带来的额外成本。
  • 社会可行性:评估系统对社会、环境和法律的影响。确保系统符合相关法规和伦理标准,避免负面社会影响。

项目目标的确定

用于系统规划确定目标的方法包括 关键成功因素法(Critical Success Factors, CSF), 战略目标集转换法(Stragegy Set Transformation, SST) 和 业务系统规划法(Business System Planning, BSP)。

  • 关键成功因素法(CSF):首先确定组织目标,然后对目标进行分解,识别组织成功的关键因素以及支持关键因素成功的性能指标,最后将这些因素和指标转化为信息系统的目标。
  • 战略目标集转换法(SST):通过分析组织的战略目标,将战略目标作为一个目标集,由使命、目标和策略组成,然后将这些目标集转化为信息系统的目标。
  • 业务系统规划法(BSP):通过分析组织的业务流程和信息需求,识别业务系统的目标和信息系统的目标。
    • 基本步骤:组织目标→业务流程分析→信息需求分析→业务系统目标→信息系统目标

系统分析

系统分析是信息系统开发的第二步,是“做什么”的进一步细化。其任务是 通过调查分析,对用户单位的业务流程进行详细分析,构建出新系统的 概念模型,锁定系统边界、功能、处理过程和信息结构。

常用的系统分析方法有 数据流图(Data Flow Diagram, DFD)、 实体关系图(Entity-Relationship Diagram, ERD)和 状态转换图(State Transition Diagram, STD)。

在这里我们介绍以下数据流图(DFD)

数据流图(DFD)

数据流图(DFD)是描述系统功能和数据流动的图形化工具。它通过图形符号表示系统中的 过程数据流数据存储外部实体,帮助分析人员理解系统的功能结构和信息流动。

DFD的基本符号

  • 过程(Process):表示系统中的功能或活动,通常用圆形或椭圆形表示。每个过程应有一个唯一的编号和名称,描述其功能。
  • 数据流(Data Flow):表示数据在系统中的流动,通常用箭头表示。箭头的方向表示数据流动的方向,箭头上标注数据的名称。
  • 数据存储(Data Store):表示系统中的数据存储位置,通常用平行线表示。数据存储应有一个唯一的编号和名称,描述存储的数据内容。
  • 外部实体(External Entity):表示系统外部与系统交互的对象,通常用矩形表示。外部实体应有一个唯一的名称,描述其角色。

DFD符号

数据流图是层次结构的,通常首先绘制**上下文图**(Context Diagram),然后逐步细化为**一级图**(Level 1 DFD)、**二级图**(Level 2 DFD)等。

DFD的绘制步骤

  1. 确定系统边界:识别系统的外部实体和主要功能
  2. 绘制上下文图:表示系统与外部实体的交互
  3. 分解系统功能:将系统功能分解为多个子过程,绘制一级图
  4. 细化子过程:进一步分解子过程,绘制二级图
  5. 验证和完善:检查数据流图的完整性和一致性,确保符合用户需求

在绘制过程中需要注意,一个数据流从始终是从一个实体(外部实体或数据存储)流向一个过程,从一个过程流向下一个过程(如果中间的数据不需要存储或分发),或者从一个过程流向一个实体(外部实体或数据存储)。数据流不能直接连接两个实体或两个数据存储。如果一个数据流连接了两个实体,那么你可能省略的其中的处理过程。

在数据流图中,描述了系统的分解,系统由什么组成,数据从哪里来,流向哪里,经过什么处理,但是没有描述数据的内容和结构。因此, 数据字典是数据流图的一个重要补充。

数据字典

数据字典是对系统中所有数据元素、数据流、数据存储和外部实体的详细描述和定义。它提供了数据的结构、格式、含义和约束条件,帮助分析人员和开发人员理解和使用数据。

数据字典包括六类条目 数据元素数据流数据存储外部实体过程数据结构

数据元素

数据元素是系统中最小的数据单位,通常是一个字段或属性。数据元素应有一个唯一的名称和描述,说明其含义、格式、长度和约束条件等等信息。

示例,以下是几个数据元素:

名称 描述 格式 长度 约束条件
id_stu 学生的唯一标识符 字符串 10 必须唯一,不能为空
name_stu 学生的姓名 字符串 50 不能为空
birth_stu 学生的出生日期 日期 不能为空,必须是有效日期
id_course 课程的唯一标识符 字符串 10
name_course 课程的名称 字符串 100 不能为空
mark_stu 学生的课程成绩 数值 0-100之间的整数

数据流

数据流是系统中数据的流动路径,表示数据在系统中的传输和处理。数据流应有一个唯一的名称和描述,说明其来源、去向、内容和格式等信息。必要的话,还可以包括数据流的频率、传输方式和安全要求等。

示例,以下是几个数据流:

名称 描述 来源 去向 内容 格式
student_info 学生信息数据流 学生管理系统 成绩管理系统 包含学生的ID、姓名、出生日期等信息 结构化数据
course_info 课程信息数据流 课程管理系统 成绩管理系统 包含课程的ID、名称、学分等信息 结构化数据
grade_report 成绩报告数据流 成绩管理系统 教师、学生 包含学生的课程成绩和评语等信息 结构化数据
enrollment_request 学生选课请求数据流 学生管理系统 课程管理系统 包含学生的选课请求信息 结构化数据
attendance_record 学生考勤记录数据流 学生管理系统 成绩管理系统 包含学生的考勤记录信息 结构化数据

数据存储

数据存储是系统中数据的存储位置,表示数据在系统中的保存和管理。数据存储应有一个唯一的名称和描述,说明其内容、格式、容量、访问权限以及相关数据流。

示例,以下是几个数据存储:

名称 描述 内容 格式 容量 访问权限 相关数据流
student_db 学生信息数据库 包含所有学生的ID、姓名、出生日期等信息 关系型数据库 读写权限 student_info
course_db 课程信息数据库 包含所有课程的ID、名称、学分等信息 关系型数据库 读写权限 course_info

外部实体

外部实体是系统外部与系统交互的对象,表示系统的边界。外部实体应有一个唯一的名称和描述,说明其角色、功能和相关数据流。

处理过程

处理过程是系统中的功能或活动,表示系统对数据的处理和转换。处理过程应有一个唯一的名称和描述,说明其功能、输入输出数据流以及相关数据存储。

数据结构

数据结构是系统中数据的组织和表示方式,表示数据的层次关系和组成部分。数据结构应有一个唯一的名称和描述,说明其组成元素、层次关系和约束条件。

示例,以下是一个数据结构条目:

名称 描述 组成元素 层次关系 约束条件
student_record 学生记录数据结构 id_stu, name_stu, birth_stu 平面结构 id_stu必须唯一,name_stu不能为空

系统设计

系统设计阶段要完成的是 怎么做的问题。这一阶段需要在系统分析的 逻辑模型上进一步构建 物理模型,给出系统实施方案。

系统设计的目标是从保证系统的适应性入手,设计出一个易于理解、容易维护的系统。其任务大体上可以分成: 概要设计(总体设计)和 详细设计

概要设计

系统的设计是自顶向下的,在概要设计时基本进行:

  1. 将系统划分成模块
  2. 确定每一个模块的功能
  3. 确定模块之间的关系
  4. 确定模块间信息传递

详细设计

详细设计为具体模块任务选择技术手段和处理方法。基本内容包括:

  • 输入设计:保证满足处理功能的基础上,要保证输入尽可能少、尽可能简单,这样可以减少输入出错的可能。对输入数据应该尽早检验合法性,尽量少转换其记录形式。
  • 输出设计:确定输出内容、选择输出设备和介质、确定输出格式。
  • 人机对话设计:设计用户和系统操作的接口,以业务人员为标准
  • 数据库设计:可以在数据流图和数据字典的基础上进行
  • 代码设计:代码标准化,这里的代码是指对系统中信息的编码,主要用以解决文字表示内容的规范问题。代码设计时应该保证长度尽可能短、带有一定逻辑性(比如身份证就是一种代码,其中不同分段的数字表示了不同的含义)、留有扩充的空间。

系统实施

系统实施阶段的主要任务是根据系统设计提出的物理模型和实施方案,完成一个可以实际运行的信息系统。在实施过程中,遵循 自顶向下原则,先完成上层模块,逐步向下。

这一阶段的四个主要任务:

  • 硬件准备:购买信息系统的主机、输入输出设备等,安装调试。
  • 软件准备:购买或人工编写应用程序,实现信息系统的功能,在这一部分包括了编写程序和测试程序。
  • 人员培训
  • 数据准备

信息系统测试

测试阶段的目的是尽可能地找出系统的错误,以供后续修改,建造更加高质量的系统。

作为一个多次学习管理学原理的学生,要时刻记住每一项业务都应该以 高效率高质量为目标,所以测试阶段不光要找出尽可能多的、以前从未发现的错误,还要权衡好测试成本。

测试任务的对象:

  • 系统硬件
  • 系统网络
  • 系统软件:在软件测试中应该把系统开发过程中的文档考虑进来,考虑是否是需求分析和系统设计时的失误。

考虑到群集现象,如果在测试阶段发现了很多的的错误,那么系统中实际存在的错误会更多。因此可以根据测试阶段发现软件错误的多少,为系统软件构建一个可靠性模型,预测系统修复已发现错误后的可靠性。

软件测试方法

  1. 根据是否需要执行被测试软件来分类测试方法:静态测试、动态测试;
  2. 根据是否考虑系统内部结构和具体实现来分类测试方法:黑盒测试、白盒测试;
  3. 根据软件测试的具体方法分类测试方法:手动测试、自动测试;
  4. 根据开发过程层次分类测试方法:单元测试、集成测试、确认测试、系统测试。

静态测试:不实际运行系统,主要针对被测试程序的编程代码进行评估,检查逻辑、结构等;

动态测试:在计算机上使用测试用例运行被测试程序,检验程序的动态行为和结果的正确性;

黑盒测试(功能测试):不考虑程序内部结构和特性,只测试程序的输入和输出接口,从用户角度出发,测试程序使用的功能性、舒适性等;

白盒测试:将程序中的所有独立分路全部至少运行一次。在所有逻辑判断中,每一个情况至少运行一次,每个循环都分别在边界情况和一般情况下运行一次,测试程序内部数据结构的有效性;

单元测试:对系统设计中每一个模块单独进行测试;

集成测试:将测试后的模块集成在一起进行测试,考虑是否完成了系统设计时的要求;

确认测试:考虑需求分析时的系统功能,测试是否完成项目初期定下的目标;

系统测试:将测试后的软件、硬件、网络集合起来测试,得到可以运行的完整系统。

上一篇更回味

  • 数据结构与算法

      数据结构——算法设计实践

      线性表NO.1 链表交叉逆序从1到n顺序排列的n个元素带头结点单链表L = {a1, a2, …, an},列表定义为 1234typedef struct L...

    • 下一篇更精彩

    • 雅思备考

        雅思写作task2词汇积累

        六大常见话题类: 环境类 政府类 教育类 媒体类 社会生活类 犯罪类 名词环境类 高频词汇 同义词/替换表达 pollution contamination, ...

      • 评论区

        你认为这篇文章怎么样?
        • 0
        • 0
        • 0
        • 0
        • 0
        • 0
        评论
        • 按正序
        • 按倒序
        • 按热度
        来发评论吧~
        Powered by Waline v2.15.8
        avatar

        Thanafox

        常应常静,常清净矣。

        • 146k

          文字

        • 26

          文章

        • 11

          分类

        • 52

          标签

        早上好呀~