信息系统分析与设计——信息系统建设
创始人
2025-05-28 12:06:29
🌟所属专栏:信息系统分析与设计
🐔作者简介:rchjr——五带信管菜只因一枚
😮前言:该系列将持续更新信息系统分析与设计课程的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~
👉文章简介:本文介绍信息系统建设概论

😃1.1 信息系统建设是复杂的社会过程

🔥技术复杂性

  • 计算机硬、软件技术

  • 数据通讯与网络技术

  • 各种信息采集与存贮

  • 各种控制与决策方法

  • 建模与仿真技术

  • 人工智能技术

🔥内容复杂性

  • 一个组织的管理与业务信息量大、面广,形式多样、来源繁杂,信息内容和处理要求又涉及到广泛的学科和事业领域。

  • 一个组织的信息系统必是一个规模庞大,结构复杂,具备多种功能、实现多个目标的大系统

  • 一个组织内各类机构和人员的信息需求不尽相同,有些需求可能相互冲突,需求的不确定性和可变性非常大。

  • 组织和外部环境之间的数据交换难以控制。

🔥环境复杂性

  • 涉及到组织内部各级机构、管理人员

  • 涉及组织面临的外部环境及发展趋势

  • 要考虑管理体制、管理思想、管理方法和管理手段的相互匹配、相互促进

  • 考虑人的习惯、心理状态及现行的制度、惯例和社会、政治诸因素

信息系统开发是一个社会过程

问题描述和方案验证不同于一般技术工程

技术工程问题明确,可以模拟,或制作实物模型、样品进行验证,信息系统的问题确定性差,难以提前验证解决方案。

人的影响

信息系统是人机系统,有来自于人的障碍。如了解、沟通、实施困难。

社会环境的影响

如政策、竞争、文化观念等对信息系统影响力很大,不同于纯技术工程。

🔧1.2 信息系统建设的一般方法

🔥早期方法的不足

早期,人们对信息系统的复杂性缺乏足够的认识,认为信息系统无非是“大程序”,缺乏科学的开发方法:目标含糊、通信误解、步骤混乱、缺乏管理控制

🔥系统方法的应用

系统科学方法为人们提供了新的思维模式,是研究复杂系统的有效工具。

钱学森曾指出“系统工程是组织管理系统的规划、研究、制造、试验和使用的科学方法,使一种对所有系统都具有普遍意义的方法”。

系统方法在信息系统建设中的应用:还原论(大的拆小)与整体论(部件整合)相结合、微观分析与宏观综合相结合、定性判断与定量计算相结合、严格生命周期阶段与反复迭代相结合

🔥系统建模

分析研究复杂系统问题,建模是一种基本手段。

建模(modeling)就是为描述系统的构成和行为,对现实系统的各种因素进行适当筛选,用一定方式(数学公式、符号、图形、图像等)表示现实系统的过程。

建模也称模型化。

如:实物模型、3D模型、数学模型等等

系统模型

系统模型是指以某种确定的形式(如文字、符号、图表、实物、数学公式等),对系统某一方面本质属性的描述。

一个适用的系统模型应该具有如下3个特征:

  • 它是现实系统的抽象或模仿;

  • 它是由反映系统本质或特征的主要因素(要素)构成的;

  • 它集中体现了这些主要因素之间的关系。

系统模型的分类

  • 根据抽象程度:概念模型、逻辑模型和物理模型。

  • 根据对时间的依赖:静态模型和动态模型。

全面彻底地描述一个系统,通常需要使用多个模型。

信息系统模型

信息系统领域常用模型

每种模型都有其标准符号、惯例、语法规则和用途,当这一组符号和规则形成了一套完整严谨的表示语言,就形成建模语言。

作用

  • 对复杂问题进行简化描述,帮助有关人员快速、简单直观、准确地了解系统;(凝练问题)

  • 建模的过程使得分析师和设计师能更全面地研究系统,深思熟虑,减少遗漏,以形成更成熟的方案;(全面考察系统)

  • 各阶段产生的模型为后续阶段的有关人员提供了工作依据;(提供工作依据)

  • 为项目各类人员提供了统一的交流工具,利于沟通和团队合作;

  • 为项目验收和将来的维护工作提供了文档依据;(文档依据)

  • 利用工具将模型映射为特定平台的可执行代码(MDD,Model-Driven Development),减少开发人员工作量。(生成代码)

建立管理模型

管理模型描述组织的状况,包括:

组织的静态特征,如组织结构图、实体关系图

动态特征,如任务分解图、状态转换图、甘特图、PERT图

业务流程,如流程图

业务规则,如决策树、决策表

UML统一建模语言

统一建模语言UML(unified modeling language)是由单一元模型支持的一组图示法。这些图示法有助于表达与设计软件系统,特别是采用面向对象方法构造的软件系统。

UML通过不同的图来描述系统的结构(structure)、行为(behavior)、交互过程(interaction)。

UML 2.2中一共定义了14种图(diagram):

系统结构:类图、对象图、包图、构件图、部署图等

系统行为:活动图、状态图、用例图

交互过程:通信图、顺序图、计时图等

UML5种视图

(1)用例视图(use case view)描述系统的功能需求,是最终用户、分析人员和测试人员看到的系统行为。该视图把系统的基本需求捕获为用例并提供构造其他视图的基础。

(2)逻辑视图(logic view)描述系统的基本逻辑结构,是问题的逻辑解决方案,展示 对象和类是如何组成系统、实现系统行为的。

(3)进程视图(process view)用于描述系统性能、可伸缩性和吞吐量的设计,包含了 形成系统并发与同步机制的线程和进程。

(4)实现视图(implementation view)用于描述系统组装和配置管理、表达软件成分 的组织结构,包含用于装配与发布物理系统的构件和文件。

(5)部署视图(deployment view)描述组成物理系统的部件的分布、交付和安装,包含 了形成系统硬件拓扑结构的节点。

⏰1.3 信息系统的生命周期

系统声明周期包括:规划、分析、设计、实施、运维

🚩1.4 基于生命周期的开发方法

🔥瀑布开发法

是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性

特点

简单易用,容易理解

开发的进程一个顺着一个,没有反馈过程,需要严密控制

允许基线和配置早期接收控制

一个新的项目不适合这个模型

用户直到项目结束才能看到质量如何

不允许或者严格限制变更

不足

需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变更代价很大

风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时若发现大的错误,可能引起客户的惊慌,其后果也可能是灾难性的

效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间要长,即所谓的“堵塞状态”

🔥原型开发法

原型就是可以快速建立起来可以在计算机上运行的程序

特点

用户积极参与

原型的开发没有严密的阶段性

短期获得测试版本,降低风险

🔥迭代开发法

增量迭代:迭代周期完成一个增量,然后集成

特点

以功能递增的方式进行软件开发(可并行化)

能较快地产生可操作的系统

在每一步递增中,都可以把用户/开发者的经验结合到不断求精的下一个增量中

可改善测试效果和降低软件开发总成本。

这个过程好比搭积木。

进化迭代:迭代周期内包含演化和完善

特点

进化迭代与增量迭代的区别是在每个迭代周期是对上一次迭代的演化和完善。

比如可以将一个软件功能的编程划分了多个迭代周期,每个迭代是对该功能的补充和进化。

这个过程好比滚雪球。

🔥螺旋开发法

螺旋方法——把软件开发过程定义成不断上升的螺旋周期,每个周期划分为计划、风险分析、实施和评价四个方面。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本

特点

风险驱动,可以在生命周期早期强制性的确定项目中存在的风险

需要开发人员具有相当丰富的风险评估经验和专门知识

要求用户参与阶段评价,对用户要求较高

💥敏捷开发方法

敏捷过程(agile process)是一系列轻量的过程模型的总称,致力于在无过程和过于繁琐的过程中达到一种平衡,强调对需求变化的敏捷响应,以不多的步骤过程获取满意的结果。

敏捷软件开发宣言

个体和交互 胜过 过程和工具

可以工作的软件 胜过 面面惧到的文档

客户合作 胜过 合同谈判

响应变化 胜过 遵循变化

1.5 基于开发技术的开发方法

信息系统通常十分复杂,通常会借助于模型对它进行研究、认识、描述和设计。

🔥结构化开发方法(面向过程)

它采用了系统科学的思想方法,从层次的角度,自顶向下地分析和设计系统,即抽象与分解。

结构化方法包括结构化分析(Structured Analysis,简称SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program,简称SP)三部分内容:

结构化分析(SA)对软件进行需求分析,以数据流图表示

结构化设计(SD)进行总体设计,以结构图表示

结构化编程(SP),以程序流程图表示(即我们熟悉的顺序结构、判断结构和循环结构)

🔥面向对象方法

🔥面向服务方法

将应用程序的不同功能单元 定义为服务(service),通过服务间定义良好的接口和契约(contract)联系起来。

1.6 信息系统开发的组织管理

🔥信息系统发展的诺兰模型

诺兰模型的经验:模型中的各个阶段是不能跳跃的。“欲速则不达”

🔥建立信息系统的基础条件

领导重视,业务人员积极性高

有一定的科学管理基础

由不同层次人员组成的技术队伍

具备必要的资源

🔥信息系统建设的相关人员

🔥做好准备工作

有效的组织机构

各类人员的配备和分工

🔥选择开发方式

自行开发

委托开发

联合开发

购买现成软件产品

购买服务(SaaS/PaaS/云计算)

🔥开展项目管理

信息系统项目遵循项目管理的一般理论和方法,但也存在自身的特点,管理内容包括:

进度管理

成本估算和经费管理

质量管理

文档管理

人员管理

其它:需求管理、风险管理、软件配置管理

1.7 信息系统开发工具(CASE工具)

信息系统开发工具指在系统开发生命周期各个阶段帮助开发者提高工作质量和效率的一类软件,也称为CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具。

分析与设计工具

统称为建模工具,如IBM Rational Rose、PowerDesigner、Visio、PlantUML等

编程工具

集成开发环境(IDE,Integrated Development Environment)是目前程序员最常用的编程工具。

如Visual Studio 2010、MyEclipse、VSCode、IntelliJ Idea等

测试工具

包括测试用例的选择、测试程序与测试数据的生成、测试的执行及测试结果的评价。

运维工具

项目管理工具

相关内容

热门资讯

基于bearpi的智能小车--... 基于bearpi的智能小车--Qt上位机设计 前言一、界面原型1.主界面2.网络配置子窗口模块 二、...
三、Java核心技术(进阶)-... 一、概念 国际化编程:通过一套软件适配多个语言包。 二、相关函数 java.util....
水声功率放大器与宽带匹配技术研...   作为声呐设备重要的一份子,水声信号发射机承担着非常重要的作用。水声信号发射机其实是...
【C++】12.继承 1.引入继承 学生管理系统 学生 老师 社管阿姨 保安大叔 4个类 4个类有很多重复的东西...
LINUX中atd和crond... 一、atd与crond的区别1、运行方式不同,at只运行一次,而cron...
C++数据结构 —— 哈希表、... 目录 1.哈希概念 1.1哈希函数 1.2哈希冲突 2.闭散列实现 3.开散列实现 4.容器的封装 ...
Streamlit 学习笔记1 Streamlit 学习笔记1 文章目录Streamlit 学习笔记1首先 安利下streamlit...
基层区域应用平台为目标开发的基... 系统特点:  JAVA语言开发,MYSQL数据库,B/S架构 基于云计算...
数智链接,新一代校园招聘解决方... 疫情3年市场巨变,00后新生代初登上求职舞台,中和作用下,...
面试官:rem和vw有什么区别 "rem" 和 "vw"的区别 "rem" 和 "vw" 都是用于网页设计的CSS单位。 "rem"...
Pytest自动化测试框架完美... 简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网...
华为nat配置实验:内网能够访... 一 需求分析1.1 需求 公司A在北京,公司B在上海,本次实验仅仅模拟局...
事务日志与 两阶段提交 文章目录 Redo Logredo的优点redo的组成redo的整体流程不同刷盘策略演示 Undo ...
【目标跟踪算法】Strong ... 1. Strong SORT算法的背景和概述 Strong SORT算法基于经典的Deep SORT...
Lock接口——JUC随记2 1、synchronized 1.1、synchronized的三种应用方式 一. 修饰实例方法&#...
IO流之字符流 文章目录1. 字符流概述2. 编码表3. 编码和解码4. 写数据的方式5. 读数据的方式6. 转换流...
C语言的灵魂---指针(基础) C语言灵魂指针1.什么是指针?2.指针的大小3.指针的分类3.1比较常规的指针类型3....
【华为OD机试真题JAVA】最... 标题:最优策略组合下的总的系统消耗资源数问题 | 时间限制:1秒 | 内存限制:262144K | ...
MATLAB | 给热图整点花... 前段时间写的特殊热图绘制函数迎来大更新,基础使用教程可以看看这一篇: h...
小知识·BitTorrent ... BitTorrent 简介从 P2P 说起经常在网上飙车的老司机应该都知道 BT 下载,...
Redis和Memcached...         对于大多数的系统服务来说,缓存是提高性能和可伸缩性的关键。一般情况下我...
[牛客算法总结]:重建二叉树    标签: 二叉树、DFS、先序遍历、中序遍历、递归   题目: 给定...
VS Code 将推出更多 A... 大家好,欢迎来到我们的二月更新!我们将为您带来与 JUnit 5 并行测...
为什么要推荐使用pnpm 在谈起pnpm时先来聊一聊之前的npm和yarn有什么存在的问题  npm2 在npm3之前我们安装...
多线程开发 文章目录多线程开发1. Thread创建多线程2. ThreadPoolExecutor创建进程池a...
闪存系统性能优化方向?NAND... Hello 大家好, 我是元存储~ 目录 前言 1. 提升效果 2. Cache Re...
关于复杂链表的复制问题(力扣) 上面我们已经说了两个关于链表的实现了,其中一个是单链表,另外一个是双向带...
STM32学习(二) 常用开发工具简介 安装仿真器驱动 DAP仿真器免驱ST LINK仿真器驱动安装方法:...
K8s配置jenkins Ma... 1、k8s安装jenkins 以阿里云的ACK为例 A、在有状态点击镜像创建,配置自己...
2023年新一代设备管理系统—... 设备管理是指在企业或者工厂对设备的生命周期进行管理、维护和保养等工作。设备管理系统是企业内部的信息管...