第1章引论ConvertordocWord文件下载.docx
《第1章引论ConvertordocWord文件下载.docx》由会员分享,可在线阅读,更多相关《第1章引论ConvertordocWord文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
DO是面向数据的分析方法,它首先分析企业的信息需求,建立企业的信息模型,然后建立全企业共享的数据库。
3)面向对象(ObjectOrient,OO)方法
OO是面向对象的分析方法,首先分析企业的一些对象,把描述对象的数据和对象的操作放在一起,或者说对象的数据和操作内容是对外封闭的。
如果多个对象对外共享某些数据和操作,共享的数据和操作就构成了对象类。
对象类可以有子对象,子对象可以调用其他类所定义的数据和操作。
任何系统都有一个产生、发展、成熟、消亡(更新)的过程,这个过程称为系统的生命周期。
信息系统也不例外,它在其使用过程中随着环境的变化,要不断维护、修改,新的目标和要求不断提出,从而要求设计更新系统,用新系统去代替老系统。
图1-15信息系统的生命周期
1.3.2生命周期法
1.生命周期开发步骤
所谓生命周期法就是严格按照系统生命周期的各个过程和步骤去开发系统。
生命周期法将信息系统的开发过程划分为系统规划、系统分析、系统设计、系统运行与维护等阶段,每个阶段又分成若干步骤。
如图1-15所示。
1)系统规划
系统规划阶段的主要任务是对组织的环境、目标、现行系统的状况进行初步调查,根据组织的整体目标和发展战略,确定信息系统的发展战略,明确组织总的信息需求,制定信息系统建设总计划,其中包括确定拟建系统的总体目标、功能、规模及资源需求,并根据需求的轻、重、缓、急及资源和应用环境的约束,把规划的系统建设内容分解成若干开发项目以分期分批进行系统开发。
2)系统分析
系统分析阶段的主要任务是对现行系统进行详细调查,进行可行性分析,确定新系统的基本目标和逻辑功能要求,提出新系统的逻辑模型。
其中的分析包括分析业务流程,分析数据流程,分析功能与数据之间的关系,提出分析处理方式。
3)系统设计
系统设计阶段的主要任务是根据系统分析提出的逻辑模型,确定新系统的物理模型,即计算机化信息系统应用软件的总体结构和数据库设计,并提出系统配置方案,进行详细设计。
主要内容包括:
代码设计、用户界面设计、处理过程设计等。
4)系统实施
系统实施阶段是将新系统付诸实施的阶段。
这一阶段的任务包括计算机系统等设备的购置、安装和调试,程序的编写和调试,人员培训,数据文件转换,系统高度与转换等。
5)系统运行与维护
系统投入运行后,需要评价,并经常进行维护,记录系统运行的情况,按照一定的规格对系统进行必要的修改,评价系统的工作质量和经济效益。
2.生命周期法的优点
生命周期法的主要优点是:
整个开发过程阶段和步骤清楚,每一阶段和步骤均有明确的成果,这些成果以可行性分析报告、系统分析说明书、系统设计说明书等形式表现出来,并作为下一阶段工作的依据。
在每阶段和步骤中,整个项目可以划分为许多组成部分,各部分可各自独立地开展工作,且各部分的工作必须按要求到期各阶段或步骤的终点,这有利于整个项目的管理与控制。
3.生命周期法的缺陷
在实践过程中,生命周期法也存在一些缺陷:
(1)难以准确定义用户需求。
系统的开发过程是一个线形发展的“瀑布模型”,各阶段须严格按顺序进行,并以各阶段提供的文档的正确性和完整性来保证最终应用软件产品的质量,这在许多情况下是难以
做到的。
用户在初始阶段提出的要求往往既不全面也不明确,而在设计过程中,用户可能感到最初的目标达不到要求,需要修改,这给开发工作不仅带来较大的工作量,而且使开发工作存在较大的难度。
(2)开发周期长,难以适应环境的变化。
对于一个比较大的系统,开发工作可能需要2—3年,在此期间,用户的要求会越来越高,环境的变化可能使原提出的配置、设计要重新考虑。
(3)系统开发成本高,效率低。
系统开发的各个阶段的工作从系统分析、系统设计到系统实施,绝大部分工作靠人工完成。
所以生命周期法的适用范围是:
主要适用于规模较大、结构化程度较高的系统的开发。
1.原型法定义
原型法(PrototypingApproach)的基本思想是1977年开始提出的,它试图改进生命周期法的缺点,它并不要求像生命周期法那样对原系统进行深入全面的调查和分析。
其基本思想是:
开发者和用户在系统的主要需求上取得一致意见后,由开发者在短期内开发
图1-16原型法示意图
1.3.3原型法
出一个功能不十分完善、实验性的、简易的应用软件的基本框架(称为原型),先运行这个原型,再不断修改、改进、扩展原型,使之逐步完善,真至形成一个相对稳定的系统。
其开发过程如图1-16所示。
2.原型法的优点
原型法的主要优点表现在:
(1)原型法的开发过程是一个循环往复的反馈过程,符合用户对计算机应用的认识逐步发展、螺旋式上升的规律。
开始时,用户和设计者对于系统的功能要求的认识是不完整的、粗糙的。
通过建立原型、评价原型、修改原型的循环过程,设计者以原型为媒介,及时取得来自用户的反馈信息,不断发现问题,反复修改,完善系统,确保用户要求得到较好满足。
(2)原型法很具体,使用户能很快接触和使用系统,容易为不熟悉计算机应用的用户所接受,可提高用户参与系统开发的积极性。
(3)原型法开发周期短,使用灵活,对于管理体制和组织结构不稳定、有变化的系统比较适合。
3.原型法的局限性
原型法有一定的局限性,这主要表现在:
(1)对于一个大型的系统,如果不经过系统分析来进行整体性划分,想要直接用屏幕来一个一个地模拟是很困难的。
(2)对于大量运算的、逻辑性较强的程序模块,原型法很难构造出模型来供人评价。
(3)对于原基础管理不善、信息处理过程混乱的问题,使用有一定的困难。
首先是由于工作过程不清,构造原型有一定困难;
其次是由于基础管理不好,没有科学合理方法可依,系统开发容易走上机械地模拟原来手工系统的轨道。
由于原型法需要快速形成原型和不断修改演进,因此,系统的可变更性要好,要易于修改。
采用原型法可以用具有形成原型和修改原型的支撑工具,如系统分析和设计中各种图表的生成器、应用程序生成器等。
所以原型法的适用范围是:
处理过程明确、简单系统;
涉及面窄的小型系统,不适合于:
大型、复杂系统,难以模拟;
存在大量运算、逻辑性强的处理系统;
管理基础工作不完善、处理过程不规范;
大量批处理系统。
面向对象(Object-Oriented)的方法是从20世纪80年代各种面向对象的程序设计(如Smalltalk、C++等)逐步发展而来的。
采用面向对象方法的目的是提高软件系统的可重用性、扩充性和可维护性,使软件系统向通用性方向发展。
1.面向对象方法的基本思想
(1)客观世界中的任何事物都是对象。
对象是数据与操作的封装通信单位,它具有静态特征和动态特征。
静态特征即可以用某种数据来描述的特征,动态特征即对象所表现的行为或对象所具有的功能。
对象作为一个整体,对外不必公开这些属性与操作,即对象的封装性(Encapsulation)。
(2)对象之间有抽象与具体、一般与特殊、整体与部分等几种关系,这些关系构成对象的结构(Structure)。
1.3.4面向对象的方法
(3)把一组具有相同结构、操作和约束条件的对象称为“类”(Class)。
对象由类说明和类实现两在部分组成。
类说明统一描述对象类的结构、应遵守的约束规划以及执行的操作,以便用户了解对象类的具体作用与功能;
类实现则由开发人员掌握,用户不必了解。
一个类的上层可以有超类,下层可以有子类,一个类可以有多个超类,也可以有多个子类,超类是下层子类的概括,子类可以继承超类的属性、操作和约束规则,这就是类的继承性(Inheritance)。
(4)对象之间可以互送消息(Message)。
消息就是向对象发出的服务请求,它应该含有提供服务的对象标识、服务标识、输入信息和回答信息。
消息的接收者是提供报务的对象,通过消息进行对象之间的通信。
2.面向对象方法的开发过程
一般说来,面向对象方法的开发过程分为四个阶段:
1)系统调查和需求分析
本阶段类的等于生命周期法中的需求分析阶段,即对系统将要面临的问题以及用户对系统开发的需求进行调查研究,确定系统开发的目标和任务,弄清问题是什么。
2)分析问题和求解问题
本阶段为面向对象的系统分析,即从问题域中抽象的识别出对象以及其行为、结构、属性、方法等。
3)整理问题
本阶段为面向对象的系统设计,即对分析的结果作进一步地抽象、归类、整理、并最终以范式的形式将它们确定下来。
4)程序实现
本阶段为面向对象的程序设计,即用面向对象的程序设计语言将设计整理的范式直接映射为应用程序软件,并调试之。
3.面向对象方法的当前研究
面向对象方法自提出以来经历了二十多年的发展历程,但仍然是目前计算机科学与技术学科的前沿课题,其当前研究主要有以下向个方面:
1)面向对象的程序设计
面向对象的程序设计是面向对象方法最成熟的领域,但是仍然有许多问题需要研究和解决。
例如:
对象语义、永久对象的表示与处理、对象之间关系的永久性存储、主动对象的表示与处理、分布式对象及其消息等。
而且用于智能程序设计方面还有许多问题正在探究,例如:
用对象描述知识系统中智能实体,用对象的属性表示实体所包含的知识、用服务表示智能行为等。
2)面向对象的数据库
该研究是把面向对象的方法与数据库技术的结合领域。
采用面向对象的数据模型,把对象作为存储与检索单位,支持封装与继承,提供面向对象的数据定义语言和数据操纵语言等。
当前的研究途径主要有:
在传统的数据库管理系统中增加面向对象的功能;
在面向对象的编程语言中协加数据库的功能;
开发全新的、自成体系的面向对象的数据库系统。
3)面向对象的系统分析与设计
把面向对象的方法运用于系统分析与设计的进程中。
其理论及工程体系自20世纪80年代末期开始形成。
目前仍在不断地发展和完善。
本书第五章将详细讨论。
4)面向对象的软件开发环境
软件开发环境对系统开发的效率有很大的影响。
20世纪90年代,人们着手对面向对象的软件开发环境进行研究。
比较理想的软件开发环境应该具有:
能支持复用和共享的类库及其浏览、维护界面,能存储并管理永久对象的对象管理系统,提供面向对象的编程语言与数据库的接口机制,提供面向对象的开发工具,并集成支持面向对象的用户界面开发,特别是图形化用户界面(GUI),支持传统软件工程开发环境中的必备功能,如配置管理、版本管理、权限管理等。
5)面向对象的体系结构
研究能够支持对象的存储、管理及协同运行的计算机体系结构。
这种新型的计算机体系结构,连同支持面向对象技术的新型操作系统,可望从根本上提高面向对象的软件开发效率和运行效率,并形成从硬件到操作系统、程序设计语言、用户界面及上层应用支持系统一体化的面向对象的开发及运行环境。
4.面向对象方法的优缺点
(1)优点:
分析、设计中的对象和软件中的对象的一致性;
实现软件复用,简化程序设计;
系统易于维护、开发周期缩短。
(2)缺点:
不易于大系统的开发
1.Jackson方法的产生
Jackson方法是20世纪70年代由M.Jackson提出的典型的面向数据结构的系统开发方法。
Jackson方法把问题分解为可由顺序、选择和循环3种基本结构形式表示的各部分的层次结构,3种数据结构可以进行组合,形成复杂的结构体系。
这一方法从目标系统的输入、输出数据结构入手,导出系统框架结构,再补充其他细节,就可得到完整的系统结构图。
Jackson方法的发展包含了两个阶段,一是产生于20世纪70年代的Jackson结构化编程方法(JacksonStructuredProgramming,JSP),而是20世纪80年代提出的Jackson结构化开发方法(JacksonStructuredDevelopment,JSD)。
Jackson结构化编程方法在设计较简单的数据处理系统时特别方便,但当设计比较复杂的程序时常常遇到输入数据可能有错、条件不能预测和数据结构冲突的问题,问了克服这个困难,Jackson与J.R.Cameron共同开发除了JSD方法,增加了一系列比较复杂的辅助技术,使之适合于大型系统的开发。
它以事件为驱动,是基于进程模型的。
1.3.5Jackson方法
2.Jackson方法的基本思想
程序和数据的密切关系可追溯到计算技术的起源,把程序看成数据,把数据看成程序。
在20世纪60年代,有一些人主张,内在数据结构是至关重要的,可利用输入数据结构和输出数据结构来推导出程序结构。
在许多领域中,存在着明显的层次信息结构,层次数据组织常常和使用这些数据的程序十分相似,数据的结构十分出色地指示了程序的结构,面向数据结构的设计方法就是利用这些结构的设计方法就是利用这些结构来作为开发软件的基础。
它使用的工具是Jackson图和刚要逻辑,基本原则是“程序解耦故同数据结构相对应”,适合于小规模的项目。
3.Jackson方法的优缺点
JSP方法简单,适合于规模不大的系统,建立了问题的数据结构之后,可直接推导出相应的程序结构。
但它仍然存在着较大的局限性,不适合于大系统,当输入数据结构与输出数据结构不相同且无对应关系的时候,难于应用。
数据结构发生变化时,程序结构也发生变化,一般是总体上JSD方法,局部范围用JSP方法。
系统开发可以使用许多不同的方法,这种多样性常使开发人员感到困惑不解。
几乎每一种方法都使用模型、工具和技术,并且在系统开发中有许多通用的概念,大多数的系统开发中都包括项目规划、分析、设计、实施和支持阶段。
不论何种开发方法,按系统开发生命周期(SDLC)或SDLC的变体所顺序描述的一系列活动就是知道系统分析和设计的逻辑思路。
然而,每种开发方法都有其各自的特点,选择一种适当的开发方法或者将几种开发方法进行综合,不仅能缩短系统的开发周期,而且还能保证系统的开发质量。
系统开发的传统方法倾向于顺序型,它强调在设计阶段之前完成需求的确定,实施之前一定要设计,当然传统的开发方法也为一些活动的并行性、重复性留有余地,如结构化方法,通过阶段性的预排和评审活动决定是否进一步完善该阶段的活动或转向其后继活动。
1.3.6开发方法选择或重构的依据
最原始的软件开发方式是完全顺序化的,这是时代背景的要求:
系统相对简单并且彼此独立、计算机硬件资源非常昂贵、软件开发工具相对原始。
这就是说,对相对简单、容易分析和建模的系统,在设计和构造活动开始之前,需求能够被充分和正确地界定;
计算机资源的巨大成本和编程工作的艰巨性使得构造一个“错误的”系统变得非常昂贵且耗费时间,因此在构造之前完成充分设计不仅是合理的而且在经济上也是必须的。
如今的信息时代,一方面软件开发工具与硬件能力的结合允许程序以更快速度、更廉价的成本进行开发;
另一方面现代信息系统规模日益庞大、结构更加复杂,没有理由认为在系统设计和构造之前就可以完全正确地确定所有的需求,而且技术、经济等方面的可行性也不能在项目开始的时候被完全确定。
因此,完全顺序的开发方法对此很不合适,而那种通过经验和学习,循序渐进的开发方法显然要更适合些,因为这样的方法允许组建发现和精炼需求,也可以使开发人员和用户能够跟上新技术的学习曲线,如原型化方法、面向对象方法。
为了不让项目重复执行,就必须确保构建正确的系统,并努力提高系统的质量。
这就需要重新强调在构建之前必须进行完整和正确的系统分析、设计,但是正如上所述,如果需求是复杂的、变化的或者是可行性不确定的时候,如
何才能做到这一点呢?
这就必须选择或重构正确的系统开发方法以包容这种不确定性。
一般来说,选择或重构开发方法除方法自身的特征外,尚需要依靠以下四个因素:
(1)系统规模的大小;
(2)系统开发初期需求或可行性因素的(不)确定性程度;
(3)系统生命周期中用户需求的预期变化率;
(4)开发人员对提出的开发技术和工具所具有的经验和信心。
因此,基于SDLC或SDLC变体的多种开发方法可针对不同的特定的系统,如图1-17所示,系统开发方法的选择或重构可看作是上述系统表现特征的因素的函数。
这里的重构是指对两种或两种以上方法的合理有序的综合。
事实上,现今开发的许多系统同时使用了传统方法和面向对象方法,如用传统方法进行系统分析和设计,而用面向对象方法进行实施;
一些IDE也在同一工具中结合了传统方法和面向对象方法,如面向对象编程用于用户界面,而过程编程则用于其他方面。
由图1-17可知,很大的系统规模、变化的或不确定的需求以及新技术的需求等都直接地促使我们原理顺序型的开发进程,综合这些特点的系统将会产生更多的SDLC变体。
需要注意的是,这里并没有建议完全抛弃顺序性或者传统的开发方法,当所要开发系统的需求和可行性不确定性较低的时候,顺序的或传统的开发方法让然是最快的途径,况且方法本身也在日益变化发展且方法之间有时互为补充。
1.什么是计算机辅助软件工程
计算机辅助软件工程(ComputerAidedSoftwareEngineering,简称CASE)是实现系统开发工作的基于计算机的自动化,提高系统开发效率与质量的重要途径。
如果严格地从认知方法论的角度来看,CASE技术,但从CASE的发展对系统开发过程所支持的程度来看,又不失为一种实用的系统开发方法。
CASE的主要目标是:
使结构化方法可以全面实施,使原型的建立有了高效率的手段,加快系统的开发过程,使系统开发人员的精力集中于开创性工作,通过自动检查提高软件的质量,提高软件的可重用度,简化系统的维护工作。
CASE的作用可概括为:
能实现一个具有快速响应、专用资源和早期查错功能的交互式开发环境,对系统的开发和维护过程中的各个环节实现自动化,通过一个有力的图形接口,实现直观的程序设计。
1.3.7计算机辅助软件工程
2.CASE的功能
一个完整的CASE,必须具备以下功能:
(1)中心信息库。
是存储和组织所有与应用软件系统有关信息的一种机构,包括系统的规划、分析、设计、实现和计划管理等信息。
如:
结构化图形、屏幕与菜单的定义、报告的模式、记录说明、处理逻辑、数据模型、组织模型、处理模型、源代码、事务规则、项目管理形式、数据元素以及系统信息模型之间的关系等。
中心信息库具有对系统信息存储、访问更新、分析和报告的功能,系统开发人员可以直接从中获取所需的信息。
(2)图形功能。
图形实际上是软件模型化的语言,它为软件的描述提供了一种简明的、没有歧义的方法,是产生好的系统和程序文档的基础。
清晰的图形在复杂系统的开发和编程的过程中起着关键性的作用,它能为开发人员提供清楚的思路,加快工作速度并提高产品的质量。
图形更是一种重要的沟通工具,在开发过程中,需要一种规范化的图形技术,使开发人员能够更好地交流思想,才能把系统的各个组成部分精确地集成起来。
用交互式方式在计算机屏幕上绘图,可加快图形绘制过程,实现标准化,实现文档自动生成等。
(3)查错功能。
在系统开发中,尽早查出错误,并排除错误是降低成本的一种行之有效的方法。
CASE提供了自动检查的功能,其思想是以规格说明(即系统说明书)为依据进行检测,达到系统的一致性和完整性。
(4)支持建立系统的原型。
CASE中,为建立原型提供了各种工具,如:
屏幕绘图程序,报告生成程序,菜单建立程序,可执行的规格说明语言等。
借助于CASE模拟工具,系统开发人员可对原型进行模拟运行以证实系统设计模型的正确性。
(5)代码自动生成。
CASE通过由程序设计规格说明生成代码,实现编程阶段的自动化。
这种自动生成可能是一个框架,也可能是一个完整的程序。
其框架可以是数据库、文件、屏幕和报表描述的代码;
其完整程序可以是可执行代码,需要访问的数据库/文件、屏幕求助信息、出错信息及程序文档等。
这样大大地提高了系统开发的效率。
(6)有利应用结构化方法。
CASE提供的若干工具,有利于结构化分析、结构化设计和结构化程序设计,从而使结构化方法实现自动化。
CASE工具为画数据流图、E—R图(实体联系图)等这类结构化图提供了图形支持,同时可自动生成诸如系统说明和伪码等形式的规格说明。
同时,CASE指导用户正确地使用结构化方法,要求用户按照一定的标准化次序和程序进行系统分析与设计。
由于系统开发涉及到复杂的技术背景和管理环境,人在系统开发各阶段中始终处于关键地位。
全部开发工作自动化是不切实际的幻想,但采用CASE方法可辅助人们更快、更好、更省地进行系统开发。
特别是基于人工智能的CASE方法将对系统开发产生重大的影响。
1.4信息系统开发的组织管理
1.4.1系统开发的准备工作
开发前的准备工作是建立领导机构,也就是要坚持“第一把手原则”,即一个组织要开发管理信息系统,必须要该组织的主要负责人亲自领导。
西方许多专家也认为必须由企业的主要负责人、公司的总裁或总经理领导系统的开发。
我国的实践证明,主要领导人的重视与参与是信息系统成功的关键因素。
为了领导信息系统的开发工作,领导人应有运用现代管理科学提高企业管理水平的设想,具备信息系统的一些基本知识,了解信息系统的开发过程,善于组织队伍。
推动信息系统开发的第一步是建立信息系统委员会。
信息系统委员会是领导者的主要咨询机构,有时系统开发的最高决策机构。
其主要工作是确定系统目标,审核和批准系统说明书、系统设计说明书、验收信息系统。
信息系统委员会的成员应包括有关部门的负责人、有经验的管理专家、系统分析员。
委员会的主任由企业主要负责人担任。
图1-18所示是一个系统开发组织的例子。
在信息系统委员会下建立一个系统开发组,这是进行具体工作的机构。
其成员包括各行业的管理专业、系统分析员、程序员、操作员等。
这种机构可根据具体情况而定,可由各单位抽调,也可以外聘,或者内外结合。
为提高系统开发的经济效果,当前应用软件的生产正向专业化方向发展,出现了专门从事软件开发的公司与研究单位。
企业可以将系统开发的任务全部委托或部分委托给专业机构去完成。
同时,计算机生产厂家和软件开发公司也不断推出面向企业