面向对象系统开发环境.docx
《面向对象系统开发环境.docx》由会员分享,可在线阅读,更多相关《面向对象系统开发环境.docx(31页珍藏版)》请在冰豆网上搜索。
![面向对象系统开发环境.docx](https://file1.bdocx.com/fileroot1/2022-12/30/a6bdb0f2-d5b2-490d-98b2-0be839c9a850/a6bdb0f2-d5b2-490d-98b2-0be839c9a8501.gif)
面向对象系统开发环境
第1章面向对象系统开发环境
目标
通过本章内容的学习,读者可以:
●定义信息系统分析与设计。
●解释系统的基本特性。
●描述信息SDC(SystemDevelopCycle,系统开发周期)。
●描述信息系统的三种类型——事务处理系统、管理信息系统和决策支持系统。
●描述信息系统开发中系统分析员的组织角色。
●叙述系统开发方法理论的发展历程。
内容
●本章内容预览
●什么是信息系统分析和设计
●系统分析和设计:
核心概念
●系统
●系统分析和设计
●信息系统与系统开发的各种类型
●分析员在系统开发中的角色
●系统开发中的系统分析员
●系统开发方法理论的发展历程
●为什么使用面向对象的系统分析和设计(OOSAD)
●迭代递增的开发
●本书面向对象的系统分析和设计的方法
本章内容预览
业务成功的关键是收集、组织和解释信息的能力。
开发信息系统的面向对象的系统分析和设计(OOSAD)方法正在迅速流行开来。
与OOSAD关系最为密切的人就是系统分析员,在其他系统分析与设计方法中也同样如此。
作为一名系统分析员,你将享有丰富的职业经历,这些经历能增强自身的计算机技术、组织、分析和人际关系能力。
虽然OOSAD是基于面向对象概念并与20世纪70年形成的目前还在流行的结构化分析方法有区别,但是二者在开发高效信息系统上的总体焦点是一致的。
系统开发中的四个主要步骤是所有系统分析和设计方法的基石:
(1)项目管理与计划,
(2)系统分析,(3)系统设计,(4)系统实现与操作。
这些步骤表示了解决系统开发问题的基本方法。
它们包括了很多基本的开发活动,诸如评价经济和技术可行性、理解用户需求、评价候选设计方案、确定最佳方案、将设计规范转换为代码,以及将软硬件和数据通信组件整合并测试等等。
实际的方法会随方式和组织的不同而不同,而开发的各种前提也会带来更多的设计选择,但是必要的步骤依然相同。
这种系统开发周期如图1-1所示。
本书的大部分章节都包括系统开发周期的更新版,其中突出了已经讨论过的各步骤以及剩余的步骤。
本书需要读者对信息系统介绍课程所介绍过的计算机信息系统有一个大体的了解。
第1章概述了OOSAD,并且是后续章节的基础。
图1-1系统开发周期
1.1什么是信息系统分析和设计
信息系统分析和设计
开发和维护信息系统的过程。
系统分析员
主要负责分析和设计信息系统的组织角色。
信息系统分析和设计是各公司(像,IBM、Pepsi和A)用来创建和维护信息系统的方法,这些系统可以实现基本的业务功能(如保存客户的姓名和地址、处理订单以及发放工资)。
系统分析和设计的主要目的是改善组织的系统,通常通过使用那些能帮助员工更轻松有效地完成关键业务的软件来达到这一目的。
在开发这类软件的过程中系统分析员处于核心地位。
信息系统的分析和设计建立在下述基础之上:
●对组织的目的、结构和处理过程的了解。
●发挥信息技术优势的知识。
为了成功完成这项工作,必须遵循系统性的方法,比如图1-1所示的用来确定、分析、设计和实现信息系统的四步式方法。
本书详细介绍了基于面向对象系统分析和设计的系统开发方法理论。
首先来看一些和系统分析与设计有关的核心概念。
1.2系统分析与设计:
核心概念
应用软件
即在组织中为处理数据和支持用户而设计的软件。
应用软件的例子包括电子表格、文字处理软件、工资系统和库存管理系统。
系统分析与设计的主要目的是改善组织的系统。
这项工作通常包括开发或者获得应用软件以及培训员工使用这些软件。
应用软件(也被称做系统)是为支持诸如库存管理、工资发放或市场分析等特定的组织功能或处理过程而设计的。
应用软件的目标是将数据转化为信息。
比如,为书店的库存管理部门开发的软件会为最新畅销书跟踪库存书籍的数量。
工资部门的软件会记录每个员工不断变化的薪酬水平。
为了满足办公自动化的需要,可以购买像MicrosoftOffice以及其他办公套件等各种现成的应用软件。
而要满足企业级需求,那些为组织需求而配置的大型集成成品软件包能实现如库存管理、财务核算和后勤管理等各种组织功能。
但是,对于特定组织内的特定需求来说,现成的软件就不能完全适用了,因而组织就要开发其专有系统。
在开发其专有系统的过程中,组织可以为整个系统的一部分部署从提供商那里购买组件,而系统的其他部分则自行编写。
除了应用软件之外,信息系统还包括以下部分:
●操作应用软件所需要的硬件和系统软件。
请注意,系统软件帮助计算机工作,而应用软件帮助用户执行各种任务,比如生成发票、制作电子表格和连接Internet。
●由系统分析员制作的文档和培训材料有助于员工们使用他们自己协助开发的软件。
●与整个系统有关的特定岗位(如操作计算机并维护软件运转的员工)。
●控制与安全机制,这些都是防欺诈盗窃辅助软件的组成部分。
●使用软件来完成工作的人。
计算机信息系统应用软件的各类组件都汇总在图1-2中。
图中给出了整个系统的所有维度,这些维度在应用软件开发中要着重强调,而这也是系统分析员的主要职责。
本书的目标是帮助读者理解并遵循创建信息系统的系统开发过程。
如图1-3所示,经过考验的方法理论、技术和工具是系统开发过程(也是本书)的核心。
方法理论是帮助开发最终产品(信息系统)的一系列逐步方法。
大多数方法理论都包含了一些开发技术,如直接观察和与现有系统用户会面等等。
技术是分析员用来协助确保他们的工作已经考虑充分、完整并且容易理解的过程。
技术为各种任务提供了支持,这些任务包括:
通过与使用信息系统的当前和未来用户会面来确定建立什么样的系统;在系统开发项目中计划和管理各种活动;绘制表示系统工作方式的图,并设计系统将为用户生成的各种报表,如发票。
工具是各种能让特定技术更容易使用的计算机程序,如CASE(Computer-AidedSoftwareEngineering,计算机辅助软件工程)工具。
这三种元素——方法理论、技术和工具——协同工作,形成了系统分析和设计的组织化方法。
图1-2计算机信息系统应用程序的各个组件
图1-3使用方法理论、技术和工具的软件开发过程
本章的后续部分讲述了系统开发的各种方法——面向数据、过程和对象的方法。
虽然面向数据和过程的方法不是本书的重点,但是这些方法的基本思想很重要,不仅是因为它们还在使用,更主要的是因为它们为现在流行的面向对象方法提供了历史环境。
本书也对开发系统的不同人群以及他们开发的各种系统进行区分。
此外本书还包括对UML(UnifiedModelingLanguage,统一建模语言)的简要介绍,该语言在表示面向对象系统设计方面,成为被广泛接受的标准。
下一章主要介绍面向对象的各种概念。
在讲解业务信息系统之前,先来简要讨论一下系统一词的含义。
1.3系统
本书中使用得最频繁的关键术语就是系统一词。
理解系统的含义以及它们是如何工作的对于理解系统分析和设计至关重要。
系统
用来实现业务功能、有确定边界、为某项用途工作的相关程序形成的组。
1.3.1系统及其组成部分的定义
系统是在业务单元中为某个目标协同工作的各种业务程序、对象或组件的集合。
比如,工资部门的系统跟踪各类支票,而库存系统跟踪各种供货。
两个系统是分离的。
系统有九项特征,其中的七项如图1-4所示。
每项特征后面都有详细解释,但是该图所示的系统存在于一个更大的世界——环境之中。
边界将系统与其环境分隔开。
系统从环境获得输入,然后处理输入,再将结果输出回环境中去。
图中的箭头表示了系统与其外界环境之间的这种交互。
图1-4系统的七项特征
●系统组件
●相互关系
●边界
●用途
●环境
●系统接口
●输入
●输出
●约束
系统由各种组件构成。
系统组件可以是不可约部分也可以是多个部分的组合(也被称为子系统)。
组件的简单概念很强大。
比如,在设计合理的汽车或者音响系统时,系统可以通过更换单独的组件来进行维修和升级,而不需要改变整个系统。
各组件是相互关联的,也就是说,一个组件的功能依赖于其他组件的功能。
例如,像销售订单这样的组件工作需要依赖购物车这样的组件。
系统的边界包含着所有的组件,并且形成了系统的界限,将系统与其他系统隔开。
边界内的组件可以被更改,而边界外的系统则不能被改变。
所有的组件协同工作来完成更大系统的一些总体用途:
系统存在的原因。
系统存在于由系统边界之外所有能影响到系统的事物所组成的环境中。
比如,一所州立大学的环境包括预期的学生、各种基金会和券商以及新闻媒体。
通常情况下系统与其环境相互作用。
大学通过开放宿舍和从本地高中招募学生来与预期学生相互作用。
信息系统通过接受数据(原始事实)和信息(处理为有用格式的数据)来与其环境交互。
图1-5所示的是一所大学如何被看做是一个系统的。
系统与其环境相接合的部分称为系统接口,而各子系统之间也存在接口。
图1-5作为系统的大学
来源:
Urbana-Champaign的Illinois大学的一部分,www.uiuc.edu/ricker/CampusMap?
buildingID=52&target=displayHighLight。
来自Urbana-Champaign的Illinois大学网站。
系统组件
一个不可约部分或组成一个系统的多个部分的组合;也被称为子系统。
相关组件
系统的一个部分与一个或多个其他系统部分的依赖关系。
边界
划分出系统的内部和外部的界线,并将系统与组织中的其他系统分离开。
用途
系统的整体目标或功能。
环境
与系统交互的系统外部所有事物。
系统接口
系统与环境或各子系统之间接触的地方。
约束
系统功能的限制。
由于在环境中存在系统功能和用途实现方式上的限制(容量、速度或者性能等方面),系统必须对其功能进行约束。
有些约束是来自于系统内部的(比如,可用员工的数量),而其他的约束则是由系统施加的(如,日制或规则)。
系统从环境中获得输入来实现功能。
比如,人从环境中获得食物、氧气和水作为输入。
如果在电梯中有人抽烟,那么你就无法呼吸新鲜空气。
最终,系统将其功能的执行结果作为输出返回给环境,并因此完成其目的。
如果电源被切断,那么系统也就不工作了。
1.3.2重要的系统概念
系统分析员需要知道一些重要的系统概念:
●分解
●模块性
●耦合
●内聚
分解
将系统分解为更小要素的过程,这些要素可能是子系统,也可能是最终单元。
分解是将系统分解为更小要素的过程,这些要素可能是子系统,也可能是最终单元。
而各个子系统本身也是系统,那么就仍然可以被递归分解,直到只剩下最终单元。
最终单元是不可约部分,也就是不能被再分解的部分。
分解对理解系统有何帮助?
分解使得较大、较复杂的部分变成更容易理解的较小、较简单的部分。
对系统进行分解也允许对系统的特定部分特别关注,也就更易于考虑修改独立于整个系统的某个部分的方法。
分解技术允许系统分析员完成如下工作:
●将系统分解为小的、可管理的和可理解的子系统。
●在一段时间内将精力集中于一个区域(子系统)而不受其他区域的干扰。
●专注于与特定用户群相关的系统部分,而不让不必要的细节困扰用户。
●在独立的时间建立不同的系统部分,并获得不同的分析员的帮助。
图1-6所示的是一台便携简易光盘(CD)播放器的分解。
该系统接受各种CD碟片和音量音调设定,并将其作为输入而将播放音乐作为输出。
将该系统分解为子系统展示了系统的内部工作情况。
各独立系统分别完成从CD读取数字信号、放大信号、将信号转换为声波以及控制声音的音量和音调等功能。
将各子系统分解为它们的各组件则进一步展示了系统内部更多的工作情况,也增强了我们对整个系统运转机制的了解。
图1-6分解为四个子系统的CD系统:
信号读取子系统、信号放大
子系统、信号控制子系统和信号转换子系统
模块性
将系统划分为更小的块或模块。
耦合
各子系统互相依赖的区域。
内聚
系统或子系统执行单一功能的区域。
模块性是分解的直接结果。
它将系统划分为更小的块或模块。
模块可以简单地表示系统,使得系统更容易被理解并能更轻松地重新设计和重新构建。
例如,图1-6中CD播放器的每个独立子系统模块都显示出分解是如何使得整个系统更容易被理解。
耦合即各子系统相互依赖。
各子系统应当尽可能独立。
如果一个子系统失效了而其他子系统高度依赖它的话,那么其他子系统要么也失效,要么将工作不正常。
请看图1-6,我们可以说便携CD播放器的各组件之间是轻度耦合的。
放大和读取CD信号的单元在同一个容器内通过线缆连接,而要将二者的边界清晰地画出则有一定困难。
如果一个子系统失效了,那么就需要维修整个CD播放器。
在家用音响系统中,各组件都是松散耦合的,因为像扬声器、放大器、接收器和CD播放器等子系统都是物理上独立而功能上互相依赖的。
如果家用音响系统中的放大器失效了,那么只需要维修放大器。
内聚是子系统实现单一功能的区域。
在CD的示例中,信号读取就是一个单一功能。
这些有关系统的简短讲解是关于计算机信息系统以及构建系统方法的预备知识。
很多相同的概念通常既应用于系统也应用于信息系统。
比如,常见术语“相互关系”映射到信息系统中就成了像关联和聚合这样的构建。
接口、组件、输入和输出在信息系统分析和设计中都很重要。
接下来的内容详细讲解信息系统分析和设计的各个步骤,并回顾系统分析的历史,包括面向过程、数据和对象的各种方法。
1.4信息系统分析和设计
前面一节讲解了信息系统开发的四个步骤(参见图1-1)。
现在用分析和设计上的特殊重点来定义这四个步骤。
项目管理和计划
当组织的整个信息系统需求已经分析并计划完毕,潜在的信息系统项目已经定义并且也已经讨论过是否继续该项目后,系统开发的第一步。
1.4.1第一步:
项目管理与计划
作为系统开发项目的第一步,项目管理与计划包括两项主要活动。
首先,为新的或增强的系统定义需求。
组织的信息需求被检查过后,项目就要满足所定义的这些需求。
组织的信息系统需求可以从下述内容中获得:
●在现有程序中处理问题的请求。
●执行附加任务的期望。
●在已有的机会上信息技术可以被利用的实现。
系统分析员区分需求的优先级并为信息系统(IS)部门将需求翻译为包含开发新主要系统进度的书面计划。
需要新的或增强系统的用户发出对新系统的请求。
在系统计划与选择阶段,组织要决定是否要将资源用来对在考虑之列的每个系统进行开发或增强。
进行可行性研究 以确定系统的经济和组织效益。
系统计划与选择阶段的第二项任务是研究系统并确定被提议系统的作用域。
接下来系统分析员团队为被提议的项目编制详细计划以遵照执行。
执行该基准项目计划所需的时间和资源也都详细地在计划中列出。
项目的正式定义取决于组织的IS部门是否有能力开发用来解决问题或带来机会的系统,以及开发系统的成本和其效益之间的对比。
通常项目领导和其他团队成员对组织的管理层就后续的项目阶段计划作总结汇报。
1.4.2第二步:
系统分析
在字典中分析 一词的意思是“分解为各部分或基本概念以确定整体的本质;系统地考察”(美国传统字典,第四版)。
通过分析可以将组织的功能分为诸如订单处理、发货、工资管理等。
在系统分析阶段,系统分析员彻底调研组织现有的程序和用来处理诸如总分类账、发货、订单处理、机器调度和工资管理等任务的信息系统。
在像工资管理这样的高级任务中可以使用被称为用例(usecase)的更小的可管理分析单元。
用例描述了一组系统执行动作的序列,这些操作为特定参与者产生可见的结果。
分析包含若干个步骤,第一步是判定系统的需求。
在这一步中,系统分析员与用户协作以确定在被提议的系统中用户需要什么。
这一步对所有的现有系统、手册和电子文档进行仔细的研究,它们在该项目中可能会被替换或增强。
在分析的第二步中,系统分析员研究需求并根据它们之间的相互关系、消除各种冗余来将需求结构化。
这些需求通过以数据、接口和过程细节为焦点的分析模型表示出来。
第三步包括生成候选初始设计以满足需求。
分析员比较这些候选方案以确定在组织愿意为开发过程付出的成本、劳力和技术层次上哪个方案最能满足需求。
分析的输出是由分析团队推荐的候选方案的描述。
如果组织接受了推荐方案,那么分析员可以制定计划来获取建立或操作新系统的所有硬件和系统软件。
1.4.3 第三步:
系统设计
系统设计主要关注如何实现 而不像系统分析主要关注要实现什么。
也就是说,系统设计细化了由分析阶段生成的被推荐候选方案是如何被翻译成详细的逻辑而后变成物理系统规范的。
这些规范在实现阶段被用于编码和部署。
在设计的最初阶段,分析类被求精和扩展。
它包括像输入输出屏幕、报表、数据库和计算机进程等接口细节。
由于分析和初始设计只是在细节程度上有所不同,因此通常情况下,设计的这两个阶段之间没有明显的界限。
系统分析
经过研究现有系统并提出了替代系统的候选方案后的系统开发的第二步。
用例
就像系统响应用户请求一样,描述各种条件下的系统行为或功能。
系统设计
系统开发的第三步,在系统分析中被选中开发的系统首先以与各种计算机平台(逻辑设计)无关的方式描述,然后被转换成与特定技术有关的细节(物理设计),所有的程序设计和系统构建都可以根据该设计完成。
逻辑设计与任何特定硬件和系统软件平台都无关。
理论上说,分析员设计的系统可以用任何硬件和系统软件实现。
与分析类似,逻辑设计关注系统的业务方面,但是在细节程度上与分析不同。
在物理设计阶段,分析员将逻辑设计转化为物理(或技术)规格。
在物理设计阶段,分析团队要决定编写计算机指令的编程语言、用来存储数据的数据库系统和文件结构以及系统将要操作的硬件平台、操作系统和网络环境。
接下来,团队需要确定在组织内外容易利用的组件所组成的子系统。
这些决定确定分析阶段后期所建立的软硬件计划。
此时,可以获得所有在组织内尚未采用的新技术。
设计阶段的最终产品是以图示或书面报告的方式呈现的物理系统规格,程序员和其他系统构建者根据该规格进行编码。
系统实现与操作
信息系统经过编码、测试、在组织中安装,或者经过系统的检修和改进后,系统开发的最后一步。
1.4.4 第四步:
系统实现与操作
在系统实现与操作阶段,分析员将系统规格转化为经过测试能够运转的系统并交付使用。
实现包括编码、测试和安装。
在编码过程中,程序员编写组成系统的程序。
如果用到了以前编写过的组件可以减轻编码工作,但是仍然需要将组件集成到系统中。
在测试过程中,程序员和分析员测试独立的程序和整个系统以寻找和修正错误。
在安装过程中,新系统成为组织日常活动的一部分。
应用程序软件被安装(或被加载)到已经存在的或新的硬件上,并对用户进行新系统的介绍和培训。
为测试和安装做计划应该在项目计划和选择阶段就进行,因为要开发出正确的测试方法需要严密的分析工作。
系统实现活动也包括像文档定稿、培训程序和正在进行的用户协作等初期用户支持。
请记住,文档和培训计划在实现过程中都定稿了;文档在系统开发周期中生成,而培训(和教育)自项目初始阶段就发生了。
在系统存在期间,系统实现可以一直持续,因为正在进行的用户支持也是实现的一部分。
但是,不管分析员、管理者和程序员做多大努力,安装并不总是一个简单的过程。
请记住,即使是设计良好的系统,如果没有管理好实现过程也还是会失败。
因为系统实现的管理通常由项目组完成,因此在本书中始终强调实现问题。
实现完成后接下来就是操作了。
如果系统在组织中操作,用户有时会发现问题并经常会思考改良。
在操作阶段,分析员和程序员根据用户要求进行修改,并更改系统以反映变化中的业务情况。
这些升级和改良工作都被认为是维护系统工作的一部分。
这些更改对于保持系统运转和有效是必要的。
但是,总有那么一天,信息系统不再能按需要工作,或者保持系统运转的成本变得不可接受,或者组织的需求发生巨大的变化。
这些问题表明到设计替代系统的时候了,因此循环完成并且周期再次开始。
当使用递增迭代方法时,从实现到系统计划的循环也会发生。
这种方法使开发过程逐渐递增,每次递增都包括计划、分析、设计和实现这四步。
后期的递增也许不包括计划,有时甚至不包括分析。
通常情况下,首先开发和实现系统更关键和更具风险性的方面。
递增迭代方法将在本章的后续内容中介绍。
1.5 信息系统与系统开发的各种类型
由于组织中每个人以及各自的喜好都不同,因此可以采用若干种不同类型的信息系统来满足组织对信息系统的所有需要。
到目前为止,我们都是用普通术语来讨论信息系统的,但是实际上存在多种类型或类的信息系统。
这些系统以其基本功能或技术实现的不同而相互区分。
系统分析员工作的一部分就是在给定的情况下确定哪种系统能最好地解决组织的问题或带来机会。
此外,不同类的系统会需要不同的开发方法、技术和工具。
系统分析员作为团队的一员也需要为如下各种类型的信息系统工作:
●事务处理系统。
●管理信息系统。
●决策支持系统(为个人、团体和主管)。
图1-7是这些系统类型的图形表示。
虽然后面的内容对每种主要的系统类型都做了详细的讲解,但是图1-7却显示出了它们之间的一些对比情况。
表示事务处理系统的图显示出该系统主要关注获得事务数据,然后将之发送到所有事务的计算机数据库中。
收银机旁男士的图标和正在处理订单的女士的图标代表了获得事务数据。
从图标到计算机的箭头表示将数据移动到数据库以存储。
图1-7中表示管理信息系统的图显示了经理正在使用事务数据来制作上个月的销售报表。
管理信息系统被设计为将事务数据处理为标准报表。
图1-7中的最后一幅图表示的是决策支持系统。
决策支持系统通过用不同方法分析数据来帮助经理作出决策。
经理可以修改他们的数据(就像改变利率),并查看这些更改是如何影响他们所管理的业务部分的。
在图1-7的这张图中,经理试图决定采用什么办法来将下降趋势扭转为上升趋势。
下面这一节简要而集中地介绍不同类型的系统之间系统分析和设计方法的不同之处。
图1-7信息系统类型的描述:
TPS、MIS、DSS
1.5.1 事务处理系统
TPS(TransactionProcessingSystem,事务处理系统)将处理业务活动或事务数据的工作自动化。
比如,银行的TPS获得用户账户的存取款信息。
能够捕获每项事务的数据,事务要么被验证并被接受,要么被拒绝,而生效的事务则被保存。
可以立即生成报表以提供所有事务的概要,而事务可以在过程间移动来处理业务活动的所有方面。
TPS的分析和设计需要分析员关注公司现有的处理事务程序。
组织如何跟踪、获得、处理和输出数据?
开发TPS的目标是改善事务处理过程,可以使用的方法有提高系统速度、增强工人生产能力、提高效率和精度、与组织的其他信息系统集成、改善客户服务以及提供以前不可用的信息。
1.5.2 管理信息系统
MIS(ManagementInformationSystem,管理信息系统)是基于计算机的系统,它从TPS获得可用的原始数据并将之转化为有意义的聚合形式。
比如,事务处理系统保存了销售的信息,然后管理信息系统可以确定畅销和滞销商品。
其结果就是,MIS系统可以指导制造部门调整产品结构。
开发MIS需要对经理所需信息的种类和他们在工作中使用这些信息的方式有很好的理解。
有时候经理可能并不清楚他们需要什么信息以及如何使用这些信息。
因此,分析员也必须对业务和为MIS提供数据的事务处理系统有深入的了解。
管理信息系统经常需要从多个事务处理系统(如,客户订单处理、原材料订购和雇员考勤)获得数据。
因此,如果数据被看做是独立于获得这些数据的TPS的组织资源,那么开发MIS就能够从这种数据导向中受益。
由于从各个子区域中获得数据很重要,因此在构建MIS过程中建立全面而精确的数据模型是根本要求。
1.5.3 决策支持系统
DSS(DecisionSupportSystem,决策支持系统)的设计目的是帮助决策制定者