信息系统分析与设计
信息系统分析与设计
第0章
1、信息系统的开发划分成若干个不同阶段:系统规划、系统分析、系统设计、系统实施、运行和维护。
2、系统分析是由系统分析人员和用户单位的管理人员和业务人员按照系统观点,在对现有系统深入调查和需求分析的基础上,综合运用系统科学、管理科学、计算机科学、通信网络技术和软件工程等多学科知识,深入描述及研究现行系统的活动和各项工作及用户的各种需求,使用一系列分析工具与技术绘制一组描述系统总体逻辑方案的图表,建立目标系统逻辑模型。
3、系统设计解决管理信息系统“怎么干”的问题,即在系统分析的基础上,按逻辑模型的要求,科学合理地进行系统的总体设计和详细设计,为下一阶段系统实施提供必要的技术资料。逻辑模型---物理模型
4、系统分析与设计( System Analysis and Design, SAD)是关于业务问题的解决和计算机应用程序的开发的活动。SAD 可能是最复杂、最棘手的人类活动之一。
(1)所分析的问题:具有非良的边界与结构,而解的本性又具有充分的不确定性。关于一个问题没有唯一的正确的解。
(2)知识技能:需要多种领域的知识和技能;(团队式开发是必要的); 知识基础在持续地进化;认知活动(把设想中的结构落在一个抽象问题上)。
5、结构化系统分析方法涉及内容
(1)需求分析和组织结构分析
(2)功能体系分析
(3)业务流程分析
(4)数据流程分析
(5)数据字典
(6)新系统的逻辑模型
(7)系统分析报告
7、面向对象的分析与设计
(1) 需求分析(在面向对象分析中,需求分析的结果是形成用例图。)
(2)系统静态分析(系统静态分析是通过建立系统静态结构来完成的。静态结构是指系统中的类的属性和方法,以及类之间的关系。)
(3)系统动态分析(交互图和状态图是系统动态分析的主要工具。交互图是通过一个用例的完整事件流程分析多个对象之间的交互来了解每个对象的行为。)
(4)面向对象分析设计的流程
8、信息系统(IS )是系统分析与设计的产品
(1) 关联人员:
系统所有者(提出者、所有者)从解决问题和探索机会的开销和收益的角度看待信息系统。
系统用户(客户(内、外部))从系统提供的功能、易学易用性方面的角度看待信息系统。 系统设计人员(业务需求技术方案)从指导最终系统构造的设计蓝图的角度看待信息系统。
系统构造人员(系统构造实施)从实现系统的实际软硬件的角度看待信息系统。
系统分析人员(研究组织中存在的问题和需求)通过与其他关联人员的交互推动信息系统的开发。
外部服务提供者(顾问、监理)为特定项目提供特殊的专业知识和经验。
项目经理(项目管理)确保系统及时、按预算并保质量地开发出来。
(2)企业驱动力(业务驱动力)影响到系统开发的发展趋势
经济全球化(支持多种语言、不同文化、货币汇率、国际贸易规则)
电子商务和电子业务(考虑面向互联网体系结构设计)
安全和隐私(考虑信息安全、数字隐私)
协作与合伙经营(考虑信息系统之间互操作的益处)
知识产权管理(关注数据和信息的集成)
持续改进和全面质量管理(发起和建议这种改进、质量管理的强迫性态度)
业务过程重组(业务流程再造)
(3)信息技术(IT )信息技术进步是信息系统的推动力
因特网和网络(认识其特性)
移动和无线技术(考虑无限访问能力)
对象技术(首选方法)
协作技术(构建到应用软件)
企业应用软件(开发增值应用软件、系统集成)
(4)系统开发
解决问题常规方法
1). 确定问题————————————————————系统启动
2). 分析并理解问题—————————————————系统分析
3). 确定对方案的需求或期望—————————————系统分析
4). 确定可选的方案并决定行动计划——————————系统设计
5). 设计“最好的”方案———————————————系统设计
6). 实现“最好的”方案———————————————系统实现
7). 评估结果。———————————————————系统实现
(如果问题没有得到解决,则应回到第1步或第2步。)
9、信息系统构件
知识——用于生成有用信息的原始资料
过程——实现企业任务的活动(包括管理)
通信——系统如何同用户和其他信息系统交互
10、信息系统建设的软件工具——CSAE
(1)CASE 工具的作用
1). 用来统一项目内对于建设目标、工作阶段划分以及有关的基本概念的理解和认识。
2). 用来统一各种文档和图表的格式,避免误解和不一致。
3). 用来与用户沟通,以便取得对于系统流程和存在问题的共识。
4). 用来加强文档管理的规范化程度,保证工作成果得以积累,以免因人员变更而造成资料散失。
5). 利用计算机辅助生成部分文档和报表、菜单等的代码,减轻开发工作的负担。
(2)CASE 工具
1)建模工具:包括分析模型、设计模型、实现模型、测试模型;IBM Rational Rose; Microsoft Office Visio;PlayCASE
2)设计工具:包括面向对象的设计工具——IBM Rational Rose ; 结构化设计工具——Microsoft Office Visio;数据库设计工具——ERWin
3)编程工具:可视化编程工具;Visual Studio 2005/2008(支持C#、VC 、C++、VB 、VJ 、J++等编程语言);Borland JBuilder
4)测试工具:包括白盒测试工具、黑盒测试工具、测试管理工具; TestDirector ; d-Tracker ; ClearQuest
5)项目管理工具:Microsoft Project 2003;
11、能力成熟度模型(Capability Maturity Model,CMM) 是用来评估组织的信息系统开发以及管理过程和产品的成熟度等级的框架。CMM 的基本思想:
(1)解决软件项目过程改进难度增大问题
(2)实现软件工程的并行与多学科组合
(3)实现过程改进的最佳效益
12、系统开发基本原理
原理1. 让系统用户参与
原理2. 使用一套问题解决步骤
问题:
(1)真正的问题(2)改进的机会(3)来自管理层的指示。
减少和消除以下风险:
(1)解决了错误的问题;(2)没有正确地解决问题;
(3)挑选了错误的方案;(4)挑选了非最佳方案。
原理3. 确立开发阶段和开发活动
原理4. 在开发过程中记录档案
原理5. 建立标准
原理6. 管理过程和项目
原理7. 将信息系统作为重要的投资看待
原理8. 不必害怕取消和返工(可行性管理、风险管理)
原理9. 分而治之(子系统)
原理10. 设计系统时应考虑到增长和变化(适应性)
13、项目的开发阶段(8个):(1)范围定义阶段;(2)问题分析阶段;(3)需求分析阶段;(4)逻辑设计阶段;(5)决策分析阶段;(6)物理设计和集成阶段;(7)构造和测试阶段;(8)安装和发布阶段。
14、系统开发过程
(1). 项目确定:项目大多由系统所有者和用户启动,大部分项目的推动力源自问题、机会和指示。
问题分类框架——PIECES :
P ——改进性能(performance )的需要
I ——改进信息(information)(和数据)的需要
E ——改进经济(economics)、控制成本或增加收益的需要
C ——改进控制(control)或安全的需要
E ——改进人与过程的效率(efficiency)的需要
S ——改进客户、供应商、合作伙伴、雇员等的服务(service)的需要
2)选择开发路线和策略
1)模型驱动开发策略,模型驱动的方法强调系统建模,三种流行的模型驱动开发技术:过程建模;数据建模;对象建模;
2)快速应用开发策略:原型法
3)商用应用软件包实现策略
4)混合策略
5)系统维护
第1章
1、项目管理是指在一定资源如时间、资金、人力、设备、材料、能源、动力等约束条件下,为了高效率地实现项目的既定目标,按照项目的内在规律和程序,对项目的全过各进行有效地计划、组织、协调、领导和控制的系统管理活动。信息系统项目管理分为两个阶段:立项与可行性论证阶段;项目实施管理阶段。
2、信息系统项目的特点
(1)阶段性:信息系统项目的阶段性也称为紧迫性,信息系统项目历时有限,在开始项目之前,就必须明确时间的约束,具体到每个工作组、每个人、执行项目中的每个任务都必须明确时间要求,没时完成进度,必须要有充分的客观理由。
(2)独特性:没有完全一样的信息系统项目。项目经理必须在开始之前通过合同明确地描述和定义向客户最终交付的产品内涵。
(3)不确定性:项目不可能完全在规定的时间内、按规定的预算由规定的人员完成。在实际中应避免不计划和过详细的问题。
3、信息系统开发与项目管理对应关系
4、项目管理内容:费用估算及成本管理、审计与控制;风险管理;计划安排及管理;项目质量跟踪管理与控制;人员管理;运行管理;文档管理;
项目管理主要活动包括:编写项目建议书;项目成本的度量;项目计划和进度安排;项目监控和复审;人员选择和评估;项目报告的准备和发布
5、项目管理过程中经常使用的方法与工具主要有:网络图(包括甘特图、PERT 、CPM )、工作分解结构(Work Breakdowm Structure, WBS)以及里程碑计划等,甘特图法用水平线段表示阶段任务;线段起点和终点分别对应于任务的开工时间和完成时间;线段的长度表示完成任务所需时间。甘特图的特点:
☐ 优点:直观性强,表明了各任务的计划进度和当前进度,能动动态地反映软件项目的开发进展情况。
☐ 缺点:一旦改变进度安排,图形就会发生变化,就需要重新绘制;不能反映多个任务之间存在的复杂逻辑关
系。
6、 网络构造方法
(1)前导法:节点表示活动,连线(或箭头) 表示活动之间的关系
(2)箭线图法:箭头表示活动,通过节点连接表示依赖关系
7、网络构造规则
☐ 一个项目网络应该只有一个开始节点;
☐ 一个项目网络应该只有一个结束节点;
☐ 前置任务是紧邻的前驱任务;
☐ 时间从左流向右;
☐ 网络不能包含回路;
☐ 节点要按次序编号;
☐ 网络不包含悬挂。
7、 关键路线法(Critical Path Method,CPM)
(1)一种常用的数学分析技术,它根据指定的网络顺序逻辑关系和单一的历时估算,计算每一活动(任务)的单
一、确定的最早开始和最迟结束时间,通过网络分析研究项目费用与工期的相互关系,并找出在编制计划时及计划执行过程中的关键路线。其核心是计算浮动时间,计算出来的日期不是项目的进度计划,而是计划的重要依据。
(2)一般求出某个项目的关键路径的基本步骤为:求出各活动的时间参数最早开始时间ES 和最早结束时间EF ;求出各活动的时间参数最晚完成日期LF 和最晚开始日期LS ;计算时差;确定关键路线。
标识关键路径:网络中至少有一条路径定义了项目的周期,即关键路径。关键路径上的任何延迟都会延迟项目的完成。最早开始期和最迟开始期间的差为活动的缓冲区期。
8、 计划评审技术(Program Evaluation and Review Technique, PERT)
☐ 假设项目持续时间以及整个项目完成时间是随机的,且服从某种概率分布,PERT 可以估计整个项目在某个
时间内完成的概率。CPM 主要应用于以往在类似项目中已取得一定经验的项目,PERT 应用于研究与开发项目,注重对各项目工作安排的评价和审查。
☐ PERT 对各项目活动的完成时间按3种不同情况估计:
(1)、乐观时间(optimistic time)--任何事情都顺利的情况,完成某项工作的时间。
(2)、最可能时间(most likely time)--正常情况下,完成某项工作的时间。
(3)、悲观时间(pessimistic time)--最不利的情况,完成某项工作的时间。
☐ 在实际项目中,用CPM 求出关键路径,再对关键路径上的各活动用PERT 估算完成期望和方差,从而得出完
成的概率。
☐ 假定3个估计服从β分布,可计算活动的期望值ti :
t i =a i +4m i +b i
6
☐ 其中,a i 、m i 、b i 分别为活动完成的乐观、可能、悲观时间。
(b i -a i ) 2
σ=369、 工作分解结构(Work Breakdown Structure,WBS) ☐ β分布的方差为: 2i
(1)任务分解技术,是项目中由一系列数字、字母或者组合在一起所表示的任务层次结构。
(2)它根据项目的内在结构或实施顺序进行层层分解而形成的结构示意图,可以将项目分解到相对独立的、内容单一的、易于成本核算与检查的工作单元。
10、里程碑计划
☐ 是完成阶段性工作的标志,通常以各阶段完成的文档来体现,具有二分性,即只有完成或没有完成,没有
80%等完成的模糊说法。
☐ 3种检查点:主里程碑、小里程碑和状态评估。
☐ 主里程碑是指项目生命周期中的重要转折点,为项目提供战略目标;小里程碑的形式和内容比较灵活。
10、 任务划分方法
(1) 按系统开发项目的结构和功能进行划分。
(2) 按系统开发阶段进行划分。
(3)将上述两种方法结合起来进行任务划分。
11、计划安排、管理和进度控制:系统配置计划、应用软件开发计划、测试计划、验收计划、项目管理计划、培训计划
12、项目范围定义依据:范围说明书、制约因素、前提条件、其他计划结果、历史资料
☐ 定义的方法和技术:工作分解结构模型;分解技术
☐ 定义的工作结果:项目工作分解结构图和项目工作分解结构字典
13、活动定义依据:、作分解结构、项目范围说明、历史信息、约束条件、假设前提条件
活动定义的方法:活动分解法、参照模板法
活动定义输出:活动清单、详细依据、更新的工作分解结构
活动排序依据:活动清单、产品描述、活动间逻辑关系
活动排序工具:前导图法、箭线图法
活动排序的输出:项目网络图、更新的活动清单
活动估算:工作量=规模/效率、资源、活动工期
活动估算方法:专家评定法、经验类比估算法、利用历史数据法、德尔菲法
活动时间估算:单一时间估计法 、三种时间估计法
14、项目制定进度计划依据:、项目网络图、活动持续时间估计、资源需求、资源安排描述、日历、约束条件、假设条件、提前或滞后要求、风险管理计划
制定项目进度计划的工具:数学分析法:CPM 、PERT 等方法;持续时间压缩法;模拟法;
项目管理软件。
制定项目进度计划的输出:项目进度计划;详细依据说明;进度管理计划;更新的项目资源需求
软件项目进度计划的主要活动:计划初始阶段:确定经理人,对成本、资源、时间需求初步评估,指出风险和约束条件,确定计划组;制定软件开发计划(SDP );对SDP 草稿进行审查和批准;实施SDP ;软件开发过程质量评价;修改SDP
软件项目计划书:(1)引言:计划的目的、 项目的范围和目标(范围描述、主要功能、性能、 管理和技术约束);(2)项目估算: 使用的历史数据,使用的评估技术,工作量、成本、时间估算);(3)风险管理: 风险识别,有关风险的讨论,风险管理计划( 风险计划、风险监视、 风险管理);(4)日程:工作分解结构、进度安排(甘特图)、资源表;(5)项目管理:人员、硬件和软件、特别资源;(6) 人员组织:组织结构、管理报告;(7)跟踪和控制机制:质量保证和控制、 变化管理和控制;(8)附录
15、成本管理:开发成本及运行维护成本、经费开支计划、经费预测计划
成本计算方法:按项目的生命周期、按项目成本的经济用途、将项目成本与有形产品进行类比
影响项目成本的因素:项目质量对成本的影响;项目工期对成本的影响;管理水平对成本的影响;人力资源对成本的影响;价格对成本的影响
16、自底向上估算:生产成本、硬件成本、软件成本、人员成本、管理成本、其他因素
17、风险管理应遵循的基本原则:技术上满足需求的同时,应尽量采用成熟的技术,降低系统开发的风险;费用开销应尽量控制在预算范围内;应始终保持与用户的联系,多听取用户的意见;充分估计到可能出现的风险,分析各种可能出现的风险;尽早做好预防风险的工作,及时采纳减少风险的建议。
风险管理步骤:风险辨识、风险分析、风险跟踪、风险措施
风险的识别:头脑风暴法、专家访谈法、历史资料法、检查表法、评估表法、分解分析法
18、审计与控制:制定系统开发的工作制度、制定审计计划、分析审计结果、控制
19、文档管理:文档要标准化、规范化;维护文档的一致性;维护文档的可追踪性;文档管理的制度化
20、项目管理中的质量保证:确保获得完整正确的需求;在开发的每一阶段结束时,要进行充分审查并确保该部分工作与系统相协调;采用具有质量控制内容的程序开发规范;规范安装调试;事后审计评价。
21、系统开发过程中的质量控制措施:严格挑选系统开发组成员;加强培训工作;正确选择系统开发策略与方法;建立质量检查制度;采用项目监理;进行集体评议。
22、可行性分析和系统方案建议:可行性分析和系统方案建议;可行性的6个准则;3. 成本效益分析技术;候选系
统的可行性分析;. 系统方案建议。
第2章
1、系统分析(system analysis):是一种问题解决技术,它将系统分解成各个组成部分,目的是研究各个部分如何工作、如何交互,以实现其系统目标。
信息系统分析(information system analysis):一个信息系统开发项目中的这样一些阶段,这些开发阶段的重点是业务问题和需求,这些需求独立于实现方案中可能使用的任何技术。
2、资料库(Repository ):是系统分析员、系统设计人员和系统构造人员保存与一个或多个系统或项目有关的文档的地方。内容包括:(1)一个网络目录,目录中存储了字处理软件、电子表格以及其他含有项目信件、报告和数据的计算机文件。(2)一个或多个CASE 工具目录或百科全书。(3)打印的文档(例如存储在活页夹和系统库中)。(4)一个到上述组件内联网网站接口(用于沟通)。
3、资料库(Repository ):是系统分析员、系统设计人员和系统构造人员保存与一个或多个系统或项目有关的文档的地方。内容包括:(1)一个网络目录,目录中存储了字处理软件、电子表格以及其他含有项目信件、报告和数据的计算机文件。(2)一个或多个CASE 工具目录或百科全书。(3)打印的文档(例如存储在活页夹和系统库中)。(4)一个到上述组件内联网网站接口(用于沟通)。
4、系统分析的方法:模型驱动分析法(结构化分析、信息工程、面向对象分析);加速系统分析法(获取原型、快速架构分析 )
5、信息工程(IE ):是一种用来计划、分析和设计信息系统的模型驱动的,以数据为中心的但对过程敏感的技术。IE 模型是一些说明同步系统的数据和过程的图形。这种技术强调在分析和研究过程需求、接口需求之前,首先研究和分析数据需求。
在绘制描述如何收集、存储、使用和维护数据的数据流图之前,系统分析员应首先绘制实体关系图(ERDs ),建造系统的原始数据模型。
6、面向对象方法(Object-Oriented Approach):是一种模型驱动的技术,它将“数据”和“过程”集成到被称为“对象”的结构中。对象模型是从各方面(例如结构和行为)说明系统的对象的图形。面向对象分析(Object-Oriented Analysis, OOA)技术用于
(1)研究现有对象,看它们是否能够被复用或者被调整用于新的用途;
(2)定义各种新对象和修改后的对象,它们将与现有对象一起组合成一个有用的企业计算应用系统。
对象技术的兴起,以消除这种数据和过程的人为分离现象。特定的数据以及产生、读取、修改和删除数据的过程被集成到称为“对象”的结构中。统一建模语言(UML )为整个对象模型系列提供了一种图形化语法。
7、加速系统分析方法强调构造原型以便快速地为一个新系统确定业务需求和用户需求。原型(Prototype) 是一个预期系统的小规模的、不完整的但可工作的示例。(原型迎合了“当我看到它时,我才知道我想要什么”的思维方式,这种思维方式是许多用户和管理人员的特点。)
获取原型(需求原型)向用户提供相应需求的一个快速而粗略的实现,以确定用户的业务需求。快速架构分析试图从现有系统或获取原型中导出系统模型。快速架构分析由于逆向工程技术而成为可能,逆向工程技术被包括在了许多自动化工具中,例如CASE 和编程语言。
逆向工程技术读取一个现有数据库、应用程序和/或用户界面的程序代码,并自动生成等价的系统模型。
8、需求获取法:(1)需求获取(requirements discovery)包括系统分析员用来从用户团体那里确定或提取系统问题和方案需求的那些技术。常见的方法有:调查研究(fact-finding )也称“信息收集”;抽样;;研究;;观察;调查和咨询;面谈。(2)联合需求计划(Joint requirements planning, JRP)技术通过研讨会将所有系统所有者、系统用户、系统分析员和一些系统设计人员及构造人员组织在一起进行系统分析。
9、敏捷方法(Agile method)集成各种系统分析和设计方法,根据要解决的问题和要开发的系统应用合适的方法。
10、FAST 系统分析阶段
(1)范围定义阶段——这个项目是否值得考虑?
1)范围定义。该阶段就需要按照范围、开发策略或“开发路线”、进度、资源需求和预算制定项目计划,范围定义阶段的交付成果是项目章程。
2)范围定义阶段的关键词:指导部门、项目章程(project charter )定义 了项目范围、计划、方法学、标准等内容,它的完成是项目的第一个里程碑。
3)范围定义阶段的任务:列出问题和机会、协商项目的初步范围、评估项目价值、计划项目进度和预算、汇报项目计划
(2). 问题分析阶段——是否值得构建一个新系统?目标:充分地理解问题域并全面地分析其中存在的问题、机会和约束条件。
1)问题分析阶段的任务:研究问题领域(建模问题域:数据模型、功能分解图(过程建模)、上下文图或用例图);分析问题和机会;分析业务过程;制定系统改进目标;修改项目计划;汇报调查结果和建议
2)问题分析阶段的里程碑——系统改进目标,系统改进目标应该是精确的、可度量的定义新系统预期的业务性能陈述,它产生处理问题、机会和指示。
(3). 需求分析阶段——用户需要和想要新系统干什么?
1)需求分析阶段的任务:定义需求(功能需求和非功能需求)、排列需求的优先次序、修改项目计划、交流需求陈述
2)需求分析阶段的里程碑——业务需求陈述,将完成系统的改进目标。
(4). 逻辑设计阶段——新系统必需做什么?使用系统模型进一步的记录业务需求,这些系统模型表示了数据结构、业务过程、数据流和用户接口;验证前面阶段建立的需求、
逻辑设计阶段的任务:结构化功能需求、建立功能需求的原型(可选)、验证功能需求、定义验收测试用例
(5). 决策分析阶段——最好的解决方案是什么?确定候选方案,分析那些方案并推荐一个将被设计、构造和实现的目标系统。
1)决策分析阶段的任务: 确定候选方案;分析候选方案(分析每个候选方案的可行性:技术可行性、运行可行性、经济可行性、进度可行性);比较候选方案;修改项目计划;推荐一种系统方案
2)决策分析阶段的里程碑—— 系统方案建议
11、需求获取简介
(1)系统需求:信息系统必须实现的功能或者必须具备的属性或质量。也称为业务需求,包括功能需求和非功能需求。
功能需求:描述一个信息系统必须提供的活动和服务,即信息系统必须实现什么的需求。
非功能需求:信息系统必须具备的属性或质量的需求。如性能、安全、费用等。
系统需求的PIECES 分析
(2)需求获取:系统分析员用来确定、分析和理解系统需求的过程和技术。需求获取和管理的目的是为一个新系统的用户正确地确定“知识”、“过程”和“通信”方面的需求。
定义需求的准则:一致的、完整的、可行的、需要的、准确的、可跟踪的、可验证的。
11、 需求获取的过程
(1)需求获取包括以下活动:
1)发现和分析问题,用鱼骨图来确定、分析和解决问题。鱼骨图的类型:整理问题型鱼骨图—— 各要素与特性值间不存在因果关系,而是结构构成关系;原因型鱼骨图;对策型鱼骨图。
2)获取需求,收集信息的有效方法——调查研究。7种调查研究技术:对现有文档、表和数据库进行抽样;调研和实地访问;观察;调查表;面谈;原型化;联合需求计划
3)归档和分析需求:记录需求草案(用例、决策表、需求表);分析需求(遗漏的需求、矛盾的需求、不可行的需求、重叠的需求、二义性的需求);形式化需求,系统需求通常以一种正式的方式(文档)记录,以便与关联人员沟通。(名称各异,如:需求陈述、需求规格说明、需求定义和功能规格说明等,格式通常按组织的要求进行剪裁。)
4)需求管理,需求管理涉及需求变化如何被处理的策略、规程和过程。
12、7种调查研究技术
(1)对现有文档、表和数据库进行抽样:从现有文档收集事实;文档和文件抽样技术;文档和文件抽样技术
(2)调研和实地访问
(3)观察:通过观察工作中的人收集事实;对观察的指南;现场直播系统
(4)调查表
(5)面谈:非结构化面谈;结构化面谈
(6)原型化
(7)联合需求计划
13、信息系统开发中用户需求调研分析方法:
(1)制定用户需求调研计划 ;
(2)进行用户需求调研:选择调研方法和工具;进行资料收集;绘制业务流程图
(3)用户需求分析:应用程序结构确定;确定系统开发环境;确定系统的功能模块;调研结束后提交的报告文档
14、记录系统需求的工具和技术
☐ 过程建模,是一种组织和记录数据的结构和流向技术。数据流图是一种描述通过系统的数据流以及系统实施
的工作或处理过程的工具。
☐ 数据建模
☐ 原型建模
☐ 用例建模
15、面向对象技术的主要特点有以下几点:可提高软件的重用性;可改善程序的可维护性;能够更好地支持大型程序的设计;增强了计算机处理信息的范围。
16、类的特性:抽象性,从为数众多的具体事物里抽取出与系统相关的共同的属性和方法形成一个类;继承性,当B 类包括了A 类所有的属性和方法,而B 类还有一些A 类不具有的属性和方法,则称B 类继承了A 类,A 类是父类,B 类是子类;多态性,是指不同的类具有相同的方法,不同类的相同名称的方法,可以有不同的实现;封装性,是指对象的共同的行为或者功能抽象成为类的方法,只留给用户必要的提供信息的渠道作为接口,将方法的实现过程变成用户无法接触的类的内容。
17、UML 模型图
(1)UML 概述:统一建模语言(UML )是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。UML 将系统看成是由若干对象构成的,对象间进行信息交互,向外部用户提供一定功能,分为静态结构和动态结构。UML 通过各种视图,描述系统的各个方面,表述一种想法、一种认识。UML 就是以一系列标准化的表示方法为准,提供了用户沟通的渠道。
(2)UML 基本元素构成
用例图(关系:在用例图上用两个符号间的一条线段表示)
类图(表示不同的实体(人、事物和数据)的内部构成,以及实体之间如何彼此相关,显示了系统的静态结构,在类图中无需考虑时间因素;类之间的关系:关联、泛化、组合和聚合)交互图(系统内部各对象之间如何交互需要用顺序图和协作图来描述。这两种图在内容上是等效的,可以相互转化)
活动图(活动图是为系统动态行为建模的图,是动态图之一。活动图最擅长的是表述一个流程可以用活动图来描述系统用例。活动图从开始状态到终止状态之间的一条路径被称为一个情景。)
状态图(状态图是描述一个类的对象在生命周期里如何从一个状态转移到另外一个状态,状态的迁移是由事件触发的)
第3章
1、系统设计是对系统分析中已确定的业务需求的说明或者构建一种基于计算机及相关技术的解决方案。系统分析强调业务问题,系统设计则专注于系统的技术性或实现方面。—— “怎么干”系统设计 – 详细的计算机系统方案的规格说明,也叫物理设计.
2、系统设计方法:模型驱动Model-Driven (结构化设计、信息工程、原型化、面向对象设计);快速应用开发RAD ; FAST 策略
2、结构化设计是一种系统设计技术,将系统过程分解成为可管理的构件。将程序设计成为自顶向下的模块层次;一个模块是一组指令——程序段、子程序或者子开发路线,这些模块的自顶向下结构按照各种设计规则和指南进行开发;高内聚:每个模块仅实现一个功能; 低耦合:模块间相互依赖小;易于实施和维护
3、系统设计的内部开发-构造方案
(1)用于内部开发的系统设计任务
1)设计应用构架:应用架构按照数据、过程、接口和网络组件定义的一个、多个或者所有信息系统使用的技术。设计应用架构需要考虑网络技术,以及对系统的数据、过程和接口构件在业务地点之间的分布方式做出决策。(通过分析原先在需求分析阶段创建的数据模型和过程模型来实现。)应用架构用物理数据流图进行记录,物理数据流图(PDFD )用于确定网络之间的物理过程和数据存储(数据库)。该任务的关键输入是各种来源的事实、建议和观点,以及决策分析阶段批准的系统方案建议,该任务的主要交付成果是应用架构和分布式分析,它们可作为后续详细设计活动的蓝图。
2)设计系统数据库(这个活动的一个关键输入是来自前一个设计任务的应用架构和分布式分析决策,这个任务的交付成果包括得到的数据库模式)
3)设计系统接口(输入、输出、界面或对话设计)
4)打包设计说明(把来自前面任务的所有说明打包成一套设计说明,并作为构造阶段指导计算机程序员活动的设计说明)
5)更新项目计划(评估项目的可行性,并相应地修改项目计划)
4、系统设计的商用软件-购买方案:研究技术评价准则和选项;向供应商征求建议或者报价;证供应商的声明和性能;评价并分级供应商建议;签订合同并听取供应商汇报;购买对于生命周期阶段的影响
5、信息技术架构
(1)分布式系统(文件服务器架构、客户/服务器架构、基于因特网的架构)
(2)数据架构——分布式关系数据库
(3)接口架构——输入、输出和中间件
(4)过程架构——软件开发环境
6、建模信息系统应用架构
(1)绘制物理数据流图:为网络架构开发一个物理数据流图;对于每个处理器,开发物理DFD 以显示被分配到那个处理器的事件过程;最简单的事件过程之外的所有事件过程都应该分解成为设计单元,作为物理 DFDs建模;设计单元作为整个系统的一个子集,其输入输出、文件和数据库以及程序可以作为子系统进行设计、构造和单元测试;最终,设计单元将被集成到系统中。
(2)前置条件:绘制物理DFD 的前置条件(包括逻辑数据模型和逻辑过程模型所述内容的详细资料库);概要设计(DBMS 、网络拓扑技术、用户界面和过程方法的架构标准;项目目标;技术和方法的可行性)。
(3)网络架构:是一个物理数据流图,将处理器(客户端和服务器)和设备(机器和机器人)分配到网络中,并确定客户端和服务器端的连接和用户在哪里与服务器交互;网络拓扑DFD (服务器及其物理位置、客户端及其物理位置、处理器说明、传输协议)。
(4)数据分布和技术确定:使用资源有数据分布矩阵、企业信息技术架构和数据和数据管理员的建议;数据分布的方式(在单个服务器上存储所有数据、在不同的服务器上存储特定表、在不同的服务器上存储特定表的子集、在不同的服务器上复制(重复)特定表或子集)。
(5)过程分布和技术确定(将信息系统过程分配到处理器。两层客户机/服务器系统,所有逻辑事件图都被分配到客户端;三层客户机/服务器系统和网络计算系统, 必须详细检查每个事件的基本数据流图,决定哪个基本过程被分配到客户端,哪个被分配到应用服务器上。)
(6)人/机边界
7、数据库设计:(1)常规文件和数据库;(2)系统分析员的数据库概念;(3)数据库设计前置条件-规范化;(4)常规文件设计;(5)现代数据库设计;(6)数据库设计前景
8、输出设计和原型化
(1)输出分类(内部输出:面向内部系统所有者和组织内的系统用户;外部输出:离开组织,面向客户、供应商、合作伙伴和政府部门,并且通常总结或者报告业务事务;回转输出:那些最终重新进入系统作为输入的外部输出)
(2)输出的实现方法(打印输出:表输出、分区输出;屏幕输出:在可视显示设备上联机显示信息,信息只是暂时的;图形输出;销售点终端;POS ,ATM ;多媒体:包括图像、声音、图片和动画,通常是为对屏幕输出的临时扩充;电子邮件;超链接;微缩胶片)
(3)如何设计输出
1)用于输出设计和原型化的自动化工具
2)输出设计指南(输出应该易于阅读和理解;输出的时效性很重要;输出的分布(或访问)对所有相关用户必须是足够的;输出必须对接收它们的系统用户来说是可接受的)
3)输出设计过程(确定系统输出并检查逻辑需求;确定物理输出需求;按照需求设计预打印的表格;设计、验证并测试输出)
9、输入设计和原型化
输入设计目标:收集和获取数据,并把它们转换成适合计算机使用的格式,输入必须总是足够产生输出;输入分类(数据最初如何收集、输入和处理;用来收集和输入数据的方法和技术)
(1) 数据收集、数据录入和数据处理(数据收集:新数据的标识和获取,源文档:用来记录业务事务的表格,用
以描述事务数据;数据录入:把源数据和文档翻译成计算机可读格式的过程;数据处理分批处理;联机处理:收集的数据立即处理;远程批处理:使用联机编辑技术输入数据,数据被收集成批次而不是立即处理,以后再进行批处理)
(2)输入方法和实现(键盘:最常见,易出错;鼠标;触摸屏;销售点:POS 、ATM ;声音和语音:语音识别技术;自动数据收集;光标记;光标记识别 (OMR);光字符识别 (OCR);条形码;磁性墨水;电磁传送;智能卡;生物识别)
(3)输入设计的系统用户问题(输入设计原则:只收集变化的数据、不要收集可以在计算机程序中计算和存储的数据、使用相应属性的编码;源文档:包括填写表格的指示、尽量减少手写的工作量、输入的数据应该排序由上至下或从左到右、尽可能使用具有已知含义的设计)
(4)内部控制——输入数据的编辑(内部控制指南:监视输入数量,减少丢失事务;确保数据有效,验证数据)
(5)输入设计的GUI 控件
(6)如何设计输入(输入设计和原型化的自动化工具;输入设计过程:确定系统输入并检查逻辑需求,选择合适的GUI 控件,设计、验证和测试输入(布局工具、原型化工具),如果需要,设计源文档)
10、用户界面设计
(1)用户界面设计概念和指南(把输出设计和输入设计集成为一个完整的用户界面, 从而建立用户与计算机之间的对话,影响因素:用户、人的因素、人类工程学指南;用户的类型:专家用户、初学者用户;界面设计问题:过多的使用计算机行话和缩写、不明显或者不太直观的设计、不能确定执行的动作、不一致的问题解决方式、设计不一致;用户界面设计原则:理解你的用户及其任务、让用户参与界面设计、在实际用户中测试系统、进行迭代设计)
(2)用户界面技术(操作系统和Web 浏览器、显示器、键盘和指点设备)
(3)图形用户界面风格
(4)如何设计用户界面(用户界面设计过程:以图表形式描述用户界面对话、原型化对话和用户界面、获得用户反馈、如果需要,回到第1步或第2步)
第4章 案例分析
1、系统的数据需求分析(业务流程、对目标系统的功能需求、)
2.数据分析( DFD和数据字典)
(1)确定各个单项数据(不含数据文件和数据流) 在目标系统中的名称;
(2)定义数据项的含义与取值;
(3)定义目标系统的数据流
3 .概念设计:用E-R 图描述概念模型
(1)确定E-R 模型应含的实体
(2)建立对应的单项应用的局部E-R 图:在实体之间建立联系,通常作法,在系统功能分析中首先选出一至数项有代表性(设计实体较多的)单项应用功能,建立局部E-R 。然后在此基础上逐步扩充,直到在所有实体之间建立应有的联系
(3)将局部E-R 图综合为系统的总体E-R 图
(4)改进总体E-R 图:最小数据冗余
4.逻辑设计。将E-R 模型转换为关系模型,且规范化
(1)每个实体转换为一个关系
(2)把每一联系转换为关系:联系的情况比较复杂。例如在E-R 模型中,有的联系不带属性,有的联系可能带一个或者多个属性;在转换成关系时,在关系的属性集中一般应包括(a)联系本身的属性;(b)由它所联系的各个实体的主键。
(3)转换结果的改进: 一般地说,对于由“联系”建立起来的关系,如果联系本身不带属性,都可以仿照方法处理,即:删除掉联系转换生成的“关系”,但对于1:M 的联系的两个实体,将处于“1”端的实体的主属性附加到处于“M ”端的实体的属性集中,而不是相反。
(4)转换结果小结
(5)关系规范化: 多数的冗余,都是由于在属性之间存在不适当的依赖关系引起的。
(6)规范化小结
5 .物理设计
(1)确定所有数据库文件的名称,及其所含字段的名称、类型与宽度;
(2)确定各数据库文件需要建立的索引,在什么字段上建立索引等。
设计步骤:第一步,确定所有字段的名称、类型与宽度;第二步,确定数据库文件的名称及其组成;第三步,确定索引文件与索引码;第四步,按选定的语言建立上述的数据库文件及其索引文件。