🌟所属专栏:信息系统分析与设计
🐔作者简介:rchjr——五带信管菜只因一枚
😮前言:该系列将持续更新信息系统分析与设计课程的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~
👉文章简介:本文介绍信息系统建设概论
计算机硬、软件技术
数据通讯与网络技术
各种信息采集与存贮
各种控制与决策方法
建模与仿真技术
人工智能技术
一个组织的管理与业务信息量大、面广,形式多样、来源繁杂,信息内容和处理要求又涉及到广泛的学科和事业领域。
一个组织的信息系统必是一个规模庞大,结构复杂,具备多种功能、实现多个目标的大系统
一个组织内各类机构和人员的信息需求不尽相同,有些需求可能相互冲突,需求的不确定性和可变性非常大。
组织和外部环境之间的数据交换难以控制。
涉及到组织内部各级机构、管理人员
涉及组织面临的外部环境及发展趋势
要考虑管理体制、管理思想、管理方法和管理手段的相互匹配、相互促进
考虑人的习惯、心理状态及现行的制度、惯例和社会、政治诸因素
信息系统开发是一个社会过程
问题描述和方案验证不同于一般技术工程
技术工程问题明确,可以模拟,或制作实物模型、样品进行验证,信息系统的问题确定性差,难以提前验证解决方案。
人的影响
信息系统是人机系统,有来自于人的障碍。如了解、沟通、实施困难。
社会环境的影响
如政策、竞争、文化观念等对信息系统影响力很大,不同于纯技术工程。
早期,人们对信息系统的复杂性缺乏足够的认识,认为信息系统无非是“大程序”,缺乏科学的开发方法:目标含糊、通信误解、步骤混乱、缺乏管理控制
系统科学方法为人们提供了新的思维模式,是研究复杂系统的有效工具。
钱学森曾指出“系统工程是组织管理系统的规划、研究、制造、试验和使用的科学方法,使一种对所有系统都具有普遍意义的方法”。
系统方法在信息系统建设中的应用:还原论(大的拆小)与整体论(部件整合)相结合、微观分析与宏观综合相结合、定性判断与定量计算相结合、严格生命周期阶段与反复迭代相结合
分析研究复杂系统问题,建模是一种基本手段。
建模(modeling)就是为描述系统的构成和行为,对现实系统的各种因素进行适当筛选,用一定方式(数学公式、符号、图形、图像等)表示现实系统的过程。
建模也称模型化。
如:实物模型、3D模型、数学模型等等
系统模型是指以某种确定的形式(如文字、符号、图表、实物、数学公式等),对系统某一方面本质属性的描述。
一个适用的系统模型应该具有如下3个特征:
它是现实系统的抽象或模仿;
它是由反映系统本质或特征的主要因素(要素)构成的;
它集中体现了这些主要因素之间的关系。
系统模型的分类
根据抽象程度:概念模型、逻辑模型和物理模型。
根据对时间的依赖:静态模型和动态模型。
全面彻底地描述一个系统,通常需要使用多个模型。
信息系统领域常用模型
每种模型都有其标准符号、惯例、语法规则和用途,当这一组符号和规则形成了一套完整严谨的表示语言,就形成建模语言。
作用
对复杂问题进行简化描述,帮助有关人员快速、简单直观、准确地了解系统;(凝练问题)
建模的过程使得分析师和设计师能更全面地研究系统,深思熟虑,减少遗漏,以形成更成熟的方案;(全面考察系统)
各阶段产生的模型为后续阶段的有关人员提供了工作依据;(提供工作依据)
为项目各类人员提供了统一的交流工具,利于沟通和团队合作;
为项目验收和将来的维护工作提供了文档依据;(文档依据)
利用工具将模型映射为特定平台的可执行代码(MDD,Model-Driven Development),减少开发人员工作量。(生成代码)
管理模型描述组织的状况,包括:
组织的静态特征,如组织结构图、实体关系图
动态特征,如任务分解图、状态转换图、甘特图、PERT图
业务流程,如流程图
业务规则,如决策树、决策表
统一建模语言UML(unified modeling language)是由单一元模型支持的一组图示法。这些图示法有助于表达与设计软件系统,特别是采用面向对象方法构造的软件系统。
UML通过不同的图来描述系统的结构(structure)、行为(behavior)、交互过程(interaction)。
UML 2.2中一共定义了14种图(diagram):
系统结构:类图、对象图、包图、构件图、部署图等
系统行为:活动图、状态图、用例图
交互过程:通信图、顺序图、计时图等
(1)用例视图(use case view)描述系统的功能需求,是最终用户、分析人员和测试人员看到的系统行为。该视图把系统的基本需求捕获为用例并提供构造其他视图的基础。
(2)逻辑视图(logic view)描述系统的基本逻辑结构,是问题的逻辑解决方案,展示 对象和类是如何组成系统、实现系统行为的。
(3)进程视图(process view)用于描述系统性能、可伸缩性和吞吐量的设计,包含了 形成系统并发与同步机制的线程和进程。
(4)实现视图(implementation view)用于描述系统组装和配置管理、表达软件成分 的组织结构,包含用于装配与发布物理系统的构件和文件。
(5)部署视图(deployment view)描述组成物理系统的部件的分布、交付和安装,包含 了形成系统硬件拓扑结构的节点。
系统声明周期包括:规划、分析、设计、实施、运维
是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性
特点
简单易用,容易理解
开发的进程一个顺着一个,没有反馈过程,需要严密控制
允许基线和配置早期接收控制
一个新的项目不适合这个模型
用户直到项目结束才能看到质量如何
不允许或者严格限制变更
不足
需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变更代价很大
风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时若发现大的错误,可能引起客户的惊慌,其后果也可能是灾难性的
效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间要长,即所谓的“堵塞状态”
原型就是可以快速建立起来可以在计算机上运行的程序
特点
用户积极参与
原型的开发没有严密的阶段性
短期获得测试版本,降低风险
增量迭代:迭代周期完成一个增量,然后集成
特点
以功能递增的方式进行软件开发(可并行化)
能较快地产生可操作的系统
在每一步递增中,都可以把用户/开发者的经验结合到不断求精的下一个增量中
可改善测试效果和降低软件开发总成本。
这个过程好比搭积木。
进化迭代:迭代周期内包含演化和完善
特点
进化迭代与增量迭代的区别是在每个迭代周期是对上一次迭代的演化和完善。
比如可以将一个软件功能的编程划分了多个迭代周期,每个迭代是对该功能的补充和进化。
这个过程好比滚雪球。
螺旋方法——把软件开发过程定义成不断上升的螺旋周期,每个周期划分为计划、风险分析、实施和评价四个方面。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本
特点
风险驱动,可以在生命周期早期强制性的确定项目中存在的风险
需要开发人员具有相当丰富的风险评估经验和专门知识
要求用户参与阶段评价,对用户要求较高
敏捷过程(agile process)是一系列轻量的过程模型的总称,致力于在无过程和过于繁琐的过程中达到一种平衡,强调对需求变化的敏捷响应,以不多的步骤过程获取满意的结果。
敏捷软件开发宣言
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面惧到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循变化
信息系统通常十分复杂,通常会借助于模型对它进行研究、认识、描述和设计。
它采用了系统科学的思想方法,从层次的角度,自顶向下地分析和设计系统,即抽象与分解。
结构化方法包括结构化分析(Structured Analysis,简称SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program,简称SP)三部分内容:
结构化分析(SA)对软件进行需求分析,以数据流图表示
结构化设计(SD)进行总体设计,以结构图表示
结构化编程(SP),以程序流程图表示(即我们熟悉的顺序结构、判断结构和循环结构)
将应用程序的不同功能单元 定义为服务(service),通过服务间定义良好的接口和契约(contract)联系起来。
诺兰模型的经验:模型中的各个阶段是不能跳跃的。“欲速则不达”
领导重视,业务人员积极性高
有一定的科学管理基础
由不同层次人员组成的技术队伍
具备必要的资源
有效的组织机构
各类人员的配备和分工
自行开发
委托开发
联合开发
购买现成软件产品
购买服务(SaaS/PaaS/云计算)
信息系统项目遵循项目管理的一般理论和方法,但也存在自身的特点,管理内容包括:
进度管理
成本估算和经费管理
质量管理
文档管理
人员管理
其它:需求管理、风险管理、软件配置管理
信息系统开发工具指在系统开发生命周期各个阶段帮助开发者提高工作质量和效率的一类软件,也称为CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具。
分析与设计工具
统称为建模工具,如IBM Rational Rose、PowerDesigner、Visio、PlantUML等
编程工具
集成开发环境(IDE,Integrated Development Environment)是目前程序员最常用的编程工具。
如Visual Studio 2010、MyEclipse、VSCode、IntelliJ Idea等
测试工具
包括测试用例的选择、测试程序与测试数据的生成、测试的执行及测试结果的评价。
运维工具
项目管理工具
上一篇:线程学习贴
下一篇:C和C++程序互相调用方案