当前位置:文档之家› 系统分析与设计总复习

系统分析与设计总复习

第一章信息系统的生命周期★★信息系统的生命周期可以大致划分为以下五个阶段:规划、分析、设计、实施、运行与维护。

系统规划,主要进行四个步骤的工作:战略规划、初步调研、可行性分析、资源分配。

系统分析,主要任务就是明确用户的需求,确定新系统的目标和逻辑功能要求,提出新系统的逻辑方案。

系统设计,设计阶段就是回答的“怎么做”,“系统设计说明书”。

系统实施,将设计的系统付诸实施。

系统运行与维护,负责系统运行的组织与管理。

系统规划的任务★★◆制定信息系统的发展战略◆进行信息系统总体规划◆指定系统建设的资源分配计划系统规划的特点◆宏观指导◆服务决策◆面向高层◆动态调整信息系统战略规划的方法: <1>企业系统规划法(BSP)<2>关键成功因素法(CSF)<3>战略目标集转化法(SST)<1>企业系统规划法(BSP)★★★•BSP法主要步骤:1准备工作2调研3定义业务过程4业务过程重组5定义数据类6定义信息系统总体结构7确定总体结构中的优先顺序8完成BSP研究报告,提出建议书和开发计划。

系统维护★★系统维护包括纠错性维护、适应性维护、完善性维护、预防性维护等多种形式。

原型法★★•所谓“原型”, 在信息系统中,是指一个结构简单但已具备系统的基本功能的应用软件,也就是软件的一个可运行的早期版本。

它反映了最终系统的部分重要特性,可由开发人员与用户合作,直接在运行中不断修改尚不够成熟的原型,通过反复试验、评价与修改,最终开发出符合用户要求的信息系统。

所以原型可用来确定用户的需求,验证设计的灵活性,训练最终用户以及创建成功的系统。

•优点◆系统开发初期只需提出其基本功能,系统功能的扩充和完善是在开发过程中逐步实现的,因此比较容易适应不断变化的环境。

◆对需求分析采用启发式动态定义,使得需求分析原型逐步深入和不断提高,即使是模糊需求也会变得越来越清晰,这符合人的认识规律,使系统开发易于成功。

◆快速提供原型的方法使得开发信息反馈速度快,需求分析或系统设计不准确可及时、方便地得到验证和修改,可大幅度提高系统开发质量,降低维护费用。

◆用户参与信息系统开发的全过程,真正实现了以用户为中心的开发活动,这样可大大提高系统的实用性和用户的可接受性,同时在开发过程中通过培训提高了用户的使用水平。

•缺点◆在开发过程中缺乏对信息系统全面、系统的认识,因此它不适用于开发大型的信息系统。

◆每次反复过程都要花费人力和物力,如果用户合作不好,盲目纠错,就会拖延开发过程。

◆因强调以“原型演进”代替完整的分析与设计,故系统文档较不完备,程序也可能较难维护。

就短期而言,可能满足用户需求,但对长期来说,系统较易失败。

第四章•1、面向对象分析 OOA–概念:抽取和整理用户的需求,按照面向对象的思想来分析问题,最后建立问题域的精确模型的过程。

–分析的结果:文档资料——软件需求规格说明,包括:对象模型、动态模型、功能模型。

★★–问题域和系统责任–分析的过程就是识别问题域和系统责任,提取系统需求的过程,分析工作包括3项内容,即理解、表达、验证。

分析过程得出的最重要的文档资料是软件需求规格说明,在面向对象分析中,主要由对象模型、动态模型和功能模型组成。

–分析的基本过程:识别问题域中的类和对象、确定结构、确定主题、定义属性、定义服务★★•2、面向对象的系统分析活动–获取对象,抽象类★★面向对象系统分析过程也是这样的,虽然对象是面向对象方法中的核心概念,也是构成系统的基本单位,但是在OO建模和OOP中,所有的对象都是通过类来描述的,类是具有相同属性和操作的一组对象的集合。

OOA活动的最终目标是建立所有对象的类。

◆在识别问题域可能有用的候选对象时,可以从以下三个面入手:➢从问题域方面出发,可以启发分析员发现对象的因素包括:人员、组织、物品、设备、事件、表格、结构等。

➢从系统边界方面出发,应该考虑的因素包括:人员、设备和外部系统,它们是否与所要开发的系统有交互行为,如果有,那么它们就是候选对象。

➢从系统责任出发,对照系统责任所要求的每一项功能,查看是否可以由已找出的对象来完成该功能,在不能满足要求时增加相应的对象,可以使系统分析员尽可能全地找出所需的各种对象。

➢抽象出对象类的几种常见问题:(1) 类的属性或服务不适合该类的全部对象(不完全) ;(2) 出现属性和服务相似的类(冗余) ;(3) 出现对同一事物的重复描述。

–确定类的属性★★★–确定属性–对象的属性是描述对象静态特征的,确定对象属性时要从问题域和目标系统两方面进行。

一般说来,确定属性的过程包括分析和选择两个步骤。

–分析,从以下角度去确定对象应具有的属性:–按一般常识,该对象应具有哪些属性;–在当前问题论域中,该对象应具有哪些属性;–根据系统责任的要求,该对象应具有哪些属性;–建立该对象是为了保存和管理哪些信息;–对象为了在服务中实现其功能,需要增设哪些属性;–是否需要增设属性来区别对象的不同状态;–用什么属性来表示对象的整体-部分联系和实例连接。

–选择,通常有以下几种常见情况:–误把内部状态当成了属性;如果某个性质是对象的非公开的内部状态,则应该从对象模型中删掉这个属性。

–过于细化;在分析阶段应该忽略那些对大多数操作都没有影响的属性。

–存在不一致的属性;类应该是简单而且一致的。

如果得出一些看起来与其他属性毫不相关的属性,则应该考虑把该类分解成两个不同的类。

––确定关联:泛化、组合、聚合、关联、依赖★★★★关系就是事物之间的联系,当两个或多个类之间有相互依赖、相互作用的关系就是关联。

一个面向对象的系统中,类之间存在以下四种关系:–一般——特殊–一般——特殊结构–一般——特殊关系又称类属关系,是现实世界中一般对象和特殊对象之间的关系,反映了现实世界中事物之间的分类关系。

前者称为父类,后者称为子类,子类继承父类的特性(属性、操作、关联等),同时又拥有自己的特性。

–例如图书借阅管理系统中,对象类“人员”是类“管理员”和“借阅者”类的父类,而子类“管理员”又是类“系统维护人员”和类“一般操作人员”的父类。

–整体——部分–整体——部分–对象实例之间的整体——部分关系,反映了现实世界中的事物之间的构成关系。

整体——部分关联又可以从两个方面来反映:–聚合关系–表示对象实例之间的整体与部分的关系,作为整体的对 –象拥有作为部分的对象。

–组合关系 –是聚合关系的一种特殊形式。

在组合关系中,整体和部 – 分之间有着很强所有关系和一致的生命周期。

聚合关系 组合关系– 关联– 关联– 表示对象实例之间的静态联系,这两个对象实例之间存在某种语义上联系。

例如,员工为公司工作,一个公司有许多部门,因此,可以认为员工和公司、公司和部门之间存在某种语义上的联系,如下图所示。

依赖关系一个模型元素的变化影响另一个模型元素,则两个元素之间存在依赖关系。

以X 和Y 两个元素为例,当修改X 的定义时,引起Y 的定义的修改,则称Y 依赖于X 。

– 确定方法– 建立模型OOA 过程模型发动机车身汽车轮胎第6章面向对象的系统设计•1––设计系统结构–设计人机交互子系统–设计数据管理子系统•2、面向对象系统设计的准则★•简单与复杂, 模块化, 抽象化, 弱耦合与信息隐藏, 信息隐藏, 可重用•3、启发规则★•设计结果应该清晰易懂(1) 用词一致\(2) 使用已有的协议(3) 减少消息模式的数目(4) 避免模糊的定义•使类等级中包含的层次数适当应该使类等级中包含的层次数适当 ,一般来说,在一个中等规模(大约包含100个类)的系统中,类等级层次数应保持为7±2。

•设计简单的类(1)避免包含过多的属性;(2)有明确的定义;为了使类的定义明确,分配给每个类的任务应该简单,最好能用一两个简单语句描述它的任务。

(3)尽量简化对象之间的合作关系;对象间的合作关系应尽可能的简单。

(4)不要提供太多服务;一个类提供的公共服务不超过7个;在开发大型软件系统时,解决这个问题的办法,是把系统中的类按逻辑分组。

(5) 使用简单的协议;一般消息中的参数不要超过3个。

(6) 使用简单的服务;(7) 把设计变动减至最小。

•4、启发规则–重用(概念)★★★★★软件重用就是将已有的软件成分用于构造新的软件系统。

可以被重用的软件成分一般称作可重用构件,无论对可重用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作重用。

–移植★★★––共享–重用分类:★★★★–代码重用、设计重用、分析重用、测试信息重用•5、设计模式–六原则:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则★★★★•设计模式:单例模式、工厂模式、适配器模式、策略模式★★•第8章面向对象的系统实现•1、面向对象的程序设计语言–Smalltalk–C++(混合面向对象语言)–C++语言–C++语言是对C语言的扩充,并且借鉴了许多其他著名程序设计语言的精华特征。

1998年9月ANSI/ISO的C++标准化委员会正式发布了C++的国际标准,标准中给出了包括模板、容器类、I/O流类库、异常处理等典型语言特征的程序设计风格。

另外,它还兼有同时支持面向过程的程序设计和支持面向对象的程序设计特点。

–Java (纯面向对象语言)★★–Java是美国Sun公司开发的一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的程序设计语言。

因为它运行在JAVA虚拟机上,因此它与硬件无关,具有很强的可移植性。

–在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。

–C++与Java语言的对比★★★•2、面向对象的程序设计风格★•使用一致和有意义的变量名•自文档代码的问题•使用参数•为增加可读性的代码编排•嵌套的if语句•编码标准•3、集成★★★–自顶向下的集成–自底向上的集成–三明治集成•4、面向对象的系统测试★★–扩大测试的视角(从OOA阶段,测试就开始了)–测试OOA和OOD模型–OOA和OOD模型的正确性–OOA和OOD模型的一致性第10章 Internet环境下面向对象的信息系统•1、Internet环境下信息系统的开发模式–C/S模式–B/S模式–B/S与C/S混合模式–三层结构(安全性要求)★★★––DMZ区★★★•2、Internet环境下的异构系统及企业信息集成•异构系统的特征★★★★★•(1)计算机体系结构的异构:系统分别运行在大型机、小型机、工作站、PC等平台中。

•(2)操作系统的异构:各个系统的操作系统呈现UNIX、Linux、Windows等不同的平台。

•(3)数据库管理系统的异构:涉及的数据库可以是同类型的不同数据库,如Oracle、Sybase、DB2、SQL Server等关系型数据库,也可以是不同类型的数据库。

相关主题