信息系统分析与设计课程心得

学习心得 专栏收录该内容
35 篇文章 3 订阅

信息系统分析与设计课程心得

此博客为信息系统分析与设计课程的学习心得记录。

原文出自http://blog.csdn.net/qq_31456593/article/details/58593089


第1、2、3章:
1、信息定义与基本属性?
信息是经过加工后的数据,它对接收者有用,对决策或行为有现实或潜在的价值。具有以下基本属性:
事实性、扩散性、传输性、共享性、增值性、不完全性、等级性、滞后性

2、系统的特性
系统的整体性、系统的层次性、系统的目的性、系统的稳定性
系统的突变性、系统的自组织性、系统的相似性

3、管理的层次
一个企业可以分为三个层次:高层管理(战略管理)、中层管理(战术管理)、基层管理(作业管理)。
战略性决策指有关重大方向性问题的决策
战术性决策指为了保证战略性决策所需要的人、财、物的准备而进行的决策
日常业务活动决策往往有经常性和重复性,有规律可循,可以事先安排

4、信息系统定义与对企业管理的影响
信息系统就是输入数据,通过加工处理,产生信息的系统
以计算机为基础的信息系统定义为:结合管理理论和方法,应用信息技术解决管理问题,为管理决策提供支持的系统。特点是面向管理。
对企业管理的影响(企业过程重组BPR):
1)帮助企业高层领导规划、控制企业的运作,获得整个企业内部和外部信息,以辅助他们决策
2)支持企业中层管理,辅助管理控制
3)帮助企业基层有效地应用信息技术,减少重复劳动,提高工作效率

第4章:
1、复杂性的理解
信息系统建设周期长、投资大、风险大,比一般技术工程有更大的困哪和复杂性,这是因为:
1)技术手段复杂
2)内容复杂,目标多样
3)投资密度大,效益难以计算
4)环境复杂多变

2、信息系统开发是一个社会过程
1)将信息系统建设与一般技术工程相比较,信息系统建设的困难不仅来自技术方面,还来自企业内部环境。
2)影响信息系统成败的有体制、政策、法规、观念、技术鞥多种因素。技术不是唯一因素,甚至不是主要因素。
3)信息系统是人机交互系统,其开发、维护都离不开人的参与。从社会行动观点看,信息系统系统开发是人类活动协调序列,是多种参与者的协作过程。
4)信息系统不只是单纯的计算机系统,而是辅助企业管理的人机系统

3、信息系统的生命周期

系统规划、系统分析、系统设计、系统实现、系统运行和维护
系统规划阶段:系统规划阶段的任务是对企业的环境、目标及线性系统的状况进行初步调查,根据企业目标和发展战略,确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出拟建系统的备选方案。对这些方案进行可行性分析,写出可行性分析报告。可行性分析报告审议通过后,将新系统建设方案及实施计划编写成系统设计说明任务书。

系统分析阶段:系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出线性系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。这个阶段又称为逻辑设计阶段。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。
系统分析阶段的工作成果体现在系统说明书中,这是系统建设的必备文件。他既是给用户看的,也是下一阶段的工作依据。因此,系统说明书既要通俗,又要准确。用户用过系统说明书可以了解未来系统的功能,判断是不是奇说要求的系统。系统说明书一旦讨论通过,就是系统设计的依据,也是奖励来验收系统的依据。
系统设计阶段:简单的讲,系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,也即设计新系统的物理模型。这个阶段又称为无力设计阶段。这个阶段又可分为总体设计和详细设计两个阶段。这个阶段的技术文档是“系统设计说明书”。

系统实施阶段:系统实施阶段是将设计的系统辅助实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和陶氏,程序的编写和调试,人员培训,数据文件转换,系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。
系统实施是按实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出系统测试分析报告。

系统运行和维护阶段:系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规格对系统进行必要的修改,评价系统的工作质量和经济效益。

4、信息系统开发方法
生命周期是指导性方针,很抽象,具体的信息
系统开发方法有很多,主要研究方向有两类:
针对开发过程: 不同的信息系统开发过程模型。关注整个开发采取哪些步骤,每个步骤包含哪些任务,由什么人完成,任务的成果如何体现等,也称为不同的生存周期模型
针对开发技术: 不同的建模方法,从不同的观点来反映系统的全貌,并采用不同技术手段予以实现
瀑布开发方法

强调阶段的划分和阶段严格的顺序
各阶段工作任务明确,要求文档完备性
是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性

特点:
1) 简单易用,容易理解
2) 开发的进程一个顺着一个,没有反馈过程,需要严密控制
3) 允许基线和配置早期接收控制
4) 一个新的项目不适合这种模型
5) 用户直到项目结束才能看到质量如何
6) 不允许或者严格限制变更
不足:
需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变 更代价很大
风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时若发现大的错误,可 能引起客户的惊慌,其后果也可能是灾难性的
效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间 要长,即所谓的“堵塞状态”
(适用于一些需求已明确并且变化较少的信息系统)

原型开发方法

特点:
用户积极参与
原型的开发没有严密的阶段性
短期获得测试版本,降低风险

应用于以下场合:
需求含糊,用户不能标识出详细的输入、处理和输出需求
设计方案不明确,开发人员不能确定算法的有效性、操作系统的适应性或人机交互的有效性

不足:
1. 用户随意无止境的需求变化,因为用户容易产生误解,认为系统很容易被构造和修改
2. 如果采用原型基础上继续构造,由于修补过度,软件质量不易于保证
3. 开发人员为了快速构造原型,可能会采用不合适的操作系统、语言、算法等,造成后期风险,如系统适应性差、维护困难等

增量开发方法
一条直线一次性到达目的总是困难的。
紧迫的市场期限使得难以完成一个完善的软件产品,缓解压力的方式是先提交一个有限的版本,细节部分逐步增加。
增量模型——融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。 搭积木的方式,如按子系统划分增量

特点:
 以功能递增的方式进行软件开发
 能较快地产生可操作的系统
 在每一步递增中,都可以把用户/开发者的经验结合到不断求精的产品中
 可改善测试效果和降低软件开发总成本
应用场合:
 项目开始,明确了需求的大部分,但是需求可能会发生变化
 对于市场和用户把握不是很准,需要逐步了解
 对于有庞大和复杂功能的系统进行功能改进,本身就需要一步一步实施的。

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

特点:
 风险驱动,可以在生命周期早期强制性的确定项目中存在的风险
 需要开发人员具有相当丰富的风险评估经验和专门知识
 要求用户参与阶段评价,对用户要求较高
适用于:
 单位内部开发的大规模软件项目
 风险是项目的主要制约因素
 可能会发生重大变更
 采用新技术

5、基于技术的开发方法(一个简答题10’)
信息系统建模方法:
 面向过程的建模方法,也称结构化方法
 面向对象的建模方法

1)结构化方法,也称为 面向功能/面向过程/面向数据流 的软件开发方法
结构化分析(SA)对软件进行需求分析,以数据流图表示
结构化设计(SD)进行总体设计,以模块结构图表示
结构化程序设计(SP),以程序流程图表示
结构化方法的基本思想:从系统功能出发,自顶向下,按照层次逐步分解求精

2)面向对象的分析方法,以对象的观点来观察世界。
它认为一个系统可以被看成一系列相互作用的对象组成,每个对象拥有自己的数据结构和行为方式,以及能触发对象的某种操作(行为)而改变其状态(数据结构)的事件。
面向对象分析(OOA)、设计(OOD)和程序设计(OOP)最重要的模型图是对象图/类图。

3)两者比较
 结构化方法
容易理解和交流,对于大系统可以从全局逐步展开到局部,整体性较好。

 面向对象
稳定可靠,有利于维护和重用,并容易实现多层分布式结构,技术先进,但对前期分析设计人员要求较高,用户理解模型有困难。

结构化技术的特点:把现实世界描绘为数据在信息系统中的流动,在数据流的过程中数据发生转化。
通过自定向下的程序将复杂的程序分解为程序模块的层次图,概括为自顶向下、逐步求精
、模块化设计、结构化编码的基本特点。

面向对象的特点:面向对象技术将数据模型和处理模型二合为一,将属性和方法封装在一个对象当中。
将信息系统看成是一起工作来完成某项任务的相互作用的对象集合:通过定义系统中所有对象类型并显示对象之间是如何通过相互作用来完成分析任务。
面向对象就是既使用对象有试用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
面向对象优点:1、稳定性好; 2、可重用性好; 3、较易开发大型软件产品; 4、可维护性好

结构化方法就是将系统看成是过程的集合,过程与数据实体之间交互,过程接受输入并产生输出。

面向对象方法则不再把程序看成工作在数据上的一系列过程或函数的集合,而是把程序看做是相互协作而又被彼此独立的对象的集合。

1、从概念方面看
结构化软件是功能的集合,通过模块以及模块和模块之间的分层调用关系实现
面向对象软件是事物对象的集合,通过对象以及对象和对象之间的通讯联系实现

2、从构成方面看
结构化软件是过程和数据的集合,以过程为中心;
面向对象软件是数据和相应操作的封装,以对象为中心

3、从运行控制方面看
结构化软件采用顺序处理方式,由过程驱动控制
面向对象软件采用交互式,并行处理方式,由消息驱动控制

4、从开发方面看
结构化方法的工作重点是设计;面向对象的房的工作重点是分析
在结构化方法中,分析阶段和设计阶段采用了不相吻合的表达方式,需要把在分析阶段采用的具有网络特征的数据流图转换为设计极端采用的具有分层特征的软件结构图;
在面向对象方法中,设计阶段的内容是分析阶段的细化,则不存在这一转换问题

第5章:
1、信息系统规划的任务
 制定信息系统发展战略
 制定信息系统总体方案
 制定信息系统开发计划
 制定信息系统资源分配

2、可行性分析是哪几个方面和主要工作
是指在企业当前情况下,研制这个信息系统是否有必要,是否具备必要的条件。可能性、必要性、合理性
1) 技术可行性:根据现有的技术条件,能否达到所提出的要求;所需要的物力资源是否具备,能否得到
2) 经济可行性:估计项目的成本和效益,分析项目经济上是否合理。要解决两个问题:资金可得性和经济合理性。
3) 社会可行性:组织内部的改革是否能够推行(体制变化、人员精简)
领导和员工的素质、支持度/阻力
上级单位的认同
政策、法规

第6章
1、系统分析的主要任务
系统分析员与用户在一起充分理解用户的要求,并把双方的理解用书面文档——系统分析说明书表达出来。

2、收集的业务信息:
管理目标、功能、业务管理、数据流程
企业系统规划的四个步骤(P77):
1)定义管理目标:确定各级管理的统一目标,各个部门的目标要服从总体目标
2)定义管理功能组:即识别企业在管理过程中的主要活动
3)定义数据分类:四种数据类型——文档型、事物型、计划型、统计型
4)定义信息结构:划分子系统,确定信息系统各个部门及其相关数据之间的关系,确定子系统的先后顺序

3、业务流程图和数据流图
1)数据流图元素符号

外部实体:
指系统以外又与系统有联系的人或事物。它表达了该系统数据的外部来源和去处
外部实体是数据的来源(谁提供了最初始的数据?)
外部实体是数据的去处(数据对谁有价值?)

处理:
指对数据的逻辑处理功能,也就是对数据的变换功能。
别名:功能、处理过程,数据加工

数据流:
指处理功能的输入或输出(箭头表示数据流向) 。

数据存储:
表示某种数据保存后的逻辑统称。不是指保存数据的物理地点或物理介质。
流入数据存储的数据流: 将处理后的数据写入或修改到数据存储中
流出数据存储的数据流: 从数据存储中查询获取数据,不改变原来的数据

其他图形表示:
数据流图中的图形元素有不同的画法,本书使用Gane-Sarson画法

2)数据流图画法看书或者ppt,考试只用话2层,不需要过度分析

3)数据流图和业务流程图的却别
1、描述的对象不同
业务流程图描述某一具体的业务,数据流图描述对象是数据流
2、功能不同
业务流程图是一本用图形方式来反映实际业务处理过程的“流水帐”。
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。
3、基本符号不同
4、绘制过程不同
业务流程图是用一些规定的符号及连线来表示某个具体业务处理过程
数据流图是按照“自顶向下,逐层求精”的方法进行的

4)DFD规范:
1.数据守恒
2.在一套数据流图中的任务和一个数据存储,必定有流入的数据流和流出的数据流,即写文件和读文件,缺少任何一种都意味着遗漏某些加工。
3.父图中某一处理框的输入,输出数据流必须出现在对应的子图中,否则就会出现父图与子图的不平衡。
4.任何一个数据流至少有一端是处理框。

5)表达处理逻辑的工具
1. 结构化语言
三种基本语句:祈使语句、判断语句、循环语句
2. 判定树
如果一个动作的执行不只是依赖一个条件,而是与多个条件有关,那么这项策略的表达就比较复杂,就可以使用判定树来表示
3. 判定表
如果条件较多、每种条件的取值情况也较多的情况下,可以使用判定表。
判定表的优点是可以把各种组合情况一个不漏地表示出来,还能帮助发现遗漏和矛盾的地方。
4、适用范围
决策树适合10~15种行动的一般复杂度的决策,有时也可把决策表转换成决策树,便于用户检查。
判定表适合于多个条件的复杂组合。
如果一个判断包含了一般顺序的动作或循环执行的动作,则用结构化语言。

第7:用例建模
1、用例的意义
1) 用例是对系统需求(主要是功能需求)的规范化的描述。
2) 用例图及用例的事件流描述集中体现了系统责任,
3) 通过用例建立交互图。交互图就是用例的具体实现,即系统中的对象以及对象间协作是如何完成一个用例的全部过程。
4) 用例驱动的开发过程,从用例模型到分析模型和设计模型之间有一致性和可追踪性。

2、用例图的构建(具体看书或ppt)
1)确定参与者
参与者是系统之外与系统进行交互的任何事物,只有在执行系统功能时与信息系统进行实时交互的人员才能被当作参与者
1.使用系统的个人
2.系统所连接的外部硬件。
3.与该系统进行通信的其他信息系统。
2)确定用例
用例就是功能性需求。
每个用例至少和一个参与者相关,用例名称要体现参与者希望系统提供的功能。
3)描述每个用例
至少包括以下内容:用例名、参与者、目标、前置条件、事件流、后置条件

双列格式:

顺序图:
纯文本的用例描述直观性较差
使用UML中的顺序图可以图形化地表现出参与者和系统之间的交互

3、用例关系
1) 包含关系:经过封装后可以在各种不同的基本用例中复用的行为称为包含用例。
 基本用例可以控制包含用例,并依赖于(使用)包含用例所得到的结果。
 包含用例是基本用例存在的必要条件
 一个基本用例可以有多个包含用例,一个包含用例可以包含在若干基本用例中。包含关系可以嵌套,但超过三层的嵌套是难于理解的。

2) 扩展关系:表达某些可选或只在特定条件下才执行的系统行为的用例,它们是对基本用例的扩展。称为扩展用例。
 扩展用例是可选的,它是否执行取决于在执行基本用例时所发生的事件(存在扩展点)。
 扩展用例的缺失不影响对基本用例的理解。

3) 泛化关系(不推荐):如果两个或更多用例在行为、结构和目的方面存在共性,可以使用泛化关系。父用例描述这些共有部分,子用例继承父用例并特殊化。
 用一个新的、通常也是抽象的用例来描述多个用例的共有部分(父用例),子用例继承父用例的所有结构、行为和关系,并含有自己特殊的部分。
 父用例通常是抽象的,如果两个子用例都对同一父用例进行特殊化,则两个子用例是相互独立而且完整的,这一点与包含关系扩展关系不同。

4)三者区别(百度的):
1.扩展不属于依赖,是用在用例和用例之间,扩展是指扩展用例与基用例之间的关系,说明如何将扩展用例定义的行为插入基用例定义的行为序列。比如发布博客用例和暂存博客用例之间就可以是扩展关系。
2.包含属于依赖的一种,也是用在用例和用例之间,比如写博客用例,应包含了插入图片用例。
3.泛化是集成,用在角色和角色之间,比如管理员和系统管理员可以是泛化关系。

第8:类图
1、面向对象的特点与优势(参见上面的比较。基本:封装继承多态)
2、类与类的关系(考试结合图判断关系)
1)关联
关联表示不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。可以使用关联表示对象了解其他对象的程度。
要素:关联名称、对象在关联中的角色、多重性、导向性

多重性:

2)类的泛化
泛化(Generalization)是在多个概念之间识别共性,定义超类(一般概念)和子类(特定概念)关系的活动。

3)聚合
描述整体-部分的关系,部分可能同时属于多个整体对象。
关联路径的末端有一个空心菱形,用来表示聚集关系。

4)组合
组合聚集具有很强的归属关系,部分只能是一个组合对象的成员,而且部分对象的存在是依赖于整体对象,与整体同生共死。
整体端的重数不会超过 1(即它无法被多个整体对象共享),关系建立后是不可变更。
关联路径的末端有一个实心菱形,用来表示组合关系。

5)依赖

3、类图(具体看书或ppt,考试一切以业务描述为主,用名字短语来画图)
类图(class diagram):描述了构成一类对象特征的状态和行为(描述软件架构)
定义领域类属性的原则
1.仅定义与系统责任和系统目标有关的属性。
2.使用简单数据类型来定义属性。如数字、字符串、日期、布尔、文本等。还包含多种特征或规则的数据,可考虑作为独立的对象类。
3.一般不使用可导出的属性。
4.不为对象关联定义属性。属性只用于体现对象本身的内在性质,关联属性来实现,但那是设计阶段的问题,应推迟考虑。
5.如毕业设计题目与教师和学生存在关联,但题目中不应定义“教师姓名”、“学号”之类的属性。

第9:系统设计
1、经典的三层架构
表现层:处理用户和信息系统之间的交互。
可以是简单的命令行窗口,也可以功能完善的图形用户界面(胖客户端程序),如基于HTML的浏览器界面(瘦客户端程序)。

业务逻辑层:也称为领域层或应用层,是信息系统所有和领域相关的工作。
如根据输入数据或已有数据进行计算,依赖于数据访问层获取数据或保存数据,类库形式。

数据访问层:一般指与数据库的交互,主要责任是数据库记录的存取。

简化的层次结构:
表现层
业务层+数据访问层

甚至简化成没有分层:
窗口程序=表现+业务逻辑+数据存储
程序几乎不能重用

2、模型视图控制器架构MVC
模型: 即相关的数据,它是对象的内在属性
视图: 是模型的外在表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界 交互的功能
控制器:是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相应事 件,然后由对应的控制器对模型进行更新; 相应的,模型的更新与修改将通过控 制器通知视图,保持视图与模型的一致性

3、顺序图(具体看书或ppt)
1) 从用例描述中选择主要actor和发起事件。
2) 选择实现用例所需的基本显示屏幕,即边界对象。
3) 选择一个用例控制者(基本控制对象)来处理边界对象和领域对象之间的通信,从而实现模型-视图分离
4) 选择出所有参与到用例中的领域类(实体对象)。
5) 以上过程可以动态创建所需要的类
6) 若用例涉及到任何的包含或扩展用例,则可根据需要为它们创建次级控制对象。
7) 确定实现用例所需的窗口数目,可根据需要为每个主要窗口创建一个次级边界对象。
8) 在顺序图中按如下次序列出这些对象: 边界类对象、用例控制者、实体对象(以访问次序列出) ,以及按访问次序为准的次级控制对象和次级边界对象。
9) 根据如下类别来识别所有解决问题的操作:
实例创建和析构
关联形成
属性修改:计算、改变状态、显示或报表需求
与外部对象或系统的接口
10) 尽可能地根据任何已经存在的设计模式,来重新排列对象类之间消息的序列。
11) 命名每个消息并为其提供可选参数。
举例:
一个用户登录的用例:
系统中有多个用户
每个用户属于一个用户组
每个用户组有不同的授权
权限有多种,如数据查询、数据添加、数据删除、数据修改等

登录用例:
界面对象接受输入的用户名和密码
用例控制对象根据用户名和密码进行权限验证
用户对象确认用户是合法用户
通过用户的用户组对象获得有关权限
界面对象显示登录成功/不成功结果

分析阶段顺序图

设计阶段顺序图

第10:系统测试(了解)
目前,检验软件有三种手段:动态检查、静态检查和正确性证明。

 程序正确性证明技术目前还处于初级阶段,
 静态检查指人工评审软件文档或程序,发现其中的错误(代码审查、代码走查、同行评审)。
 动态检查就是测试。测试是为了发现错误而执行程序的过程。测试只能证明程序有错误,而不可能证明程序没有错误。

测试技术:
1、黑箱测试/黑盒测试
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序模块的详细说明,检查程序的功能是否符合它的功能说明。
黑盒测试又叫做功能测试或数据驱动测试

2、白箱测试/白盒测试
此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑结构进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

©️2022 CSDN 皮肤主题:撸撸猫 设计师:马嘣嘣 返回首页

打赏作者

Doit_

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值