欢迎光临散文网 会员登陆 & 注册

第2章 信息系统开发基础

2023-02-08 23:15 作者:敦庞之朴  | 我要投稿

1考情分析

根据对历年的考试真题进行分析,本章要求考生掌握以下几个方面的知识:

(1)信息系统开发方法:信息系统的生命周期(各阶段目标及其主要工作内容)、信息系统建设的原则、信息系统开发方法。

(2)软件工程知识:软件需求分析与定义、软件设计、测试与维护等。

(3)面向对象系统分析与设计:面向对象的基本概念、统一建模语言(United Model Language,UML)、可视化建模等。

(4)信息系统规划:大型信息系统的特点及应用、信息系统规划的核心步骤以及BSP的步骤和工具方法。

1.1本章重点

2考点精讲

2.1 信息系统生命周期及开发方法和模型

1. 信息系统生命周期阶段

信息系统按照其生命周期进行划分大致可分成以下5个阶段:系统规划阶段(编写成系统设计任务书)、系统分析阶段(提出新系统的逻辑模型)、系统设计阶段(设计新系统的物理模型,概要设计、详细设计)、系统实施阶段(开发、测试、硬件采购、调试等)、系统运行和维护阶段。

2. 软件开发方法

① 结构化方法

结构化方法属于自顶向下的开发方法,其基本思想是“自顶向下,逐步求精”,强调开发方法的结构合理性及所开发软件的结构合理性。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它包括了结构化分析(Structured Analysis,SA)、结构化设计(Structured Design,SD)和结构化程序设计(Structured Programing,SP)等方法。

② 面向对象方法

面向对象(Object-Orient,OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象,每个对象都有自己的运动规律和内部状态。OO方法构造的系统复用性好,与结构化方法相比阶段界限不明显,符合人们的思维习惯,在大型项目的开发上具有一定的局限性,不能涉足系统分析以前的开发环节。

③ 面向服务的方法(Service-Orient,SO)

OO的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件的概念。从应用的角度来看,组织内部、组织之间各种应用系统的互相通信和互操作直接影响着组织对信息的掌握程度和处理速度。如何使信息系统快速响应需求与环境变化提高系统的可复用性、信息资源共享和系统之间的互操作性,成为影响信息化建设效率的关键问题,SO思维方式恰好满足。

④原型法

原型是指模拟某种产品的原始模型。在系统开发中,原型是系统的一个早期可运行的版本,反映最终系统的部分重要特性。如果在获得一组基本需求说明后,通过快速分析构造出一个小型系统,满足用户的基本要求。原型法的优点主要在于能更有效地确认用户需求。从直观上来看,原型法适用于那些需求不明确的系统开发。对于分析层面难度大、技术层面难度不大的系统,适合于原型法。

3. 软件开发模型

对于开发模型知识点,要掌握软件生命周期的概念、各种开发模型的特点和应用场合。主要考查的开发模型有瀑布模型、增量模型、螺旋模型、喷泉模型、迭代模型、V模型、敏捷方法和统一过程等。

(1)瀑布模型。瀑布模型也称为生命周期法,是结构化方法中最常用的开发模型,它把软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型是最早出现的软件开发模型,它提供了软件开发的基本框架。瀑布模型的本质是“一次通过”,即每个活动只做一次,最后得到软件产品,也称作“线性顺序模型”或者“传统生命周期”。瀑布模型有利于大型软件开发过程中人员的组织与管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明,软件开发各项活动之间并非完全是自上而下的,因此,瀑布模型存在严重的缺陷,只适用于需求明确或很少变更的项目,例如二次开发或升级型的项目。

(2)螺旋模型。螺旋模型将瀑布模型和快速原型模型相结合,综合了两者的优点,并增加了风险分析。它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制定计划、风险分析、实施工程及客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统。

(3)迭代模型。迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。在迭代模型中,每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代模型适用于项目事先不能完整定义产品所有需求、计划多期开发的软件开发。在现代的开发方法中,例如XP、RUP等,无一例外地都推荐、主张采用能显著减少风险的迭代模型。

(4)V模型。在瀑布模型及其他的经典模型中,测试常常作为亡羊补牢的事后行为,但也有以测试为中心的开发模型,那就是V模型。V模型宣称测试并不是一个事后弥补行为,而是一个同开发过程同样重要的过程,如图1-5所示。

图1-5 V模型示意图

V模型描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段。在图1-5中,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即测试过程的各个阶段。请注意在不同的组织中,对测试阶段的命名可能有所不同。

V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。

(5)敏捷方法。敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。是一种以人为核心、迭代、循序渐进的开发方法。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。

(6)统一过程。统一过程(Unified Process,UP)是一个通用过程框架,可以用于种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。UP是基于构件的,在为软件系统建模时,UP使用的是UML。与其他软件过程相比,UP具有三个显著的特点,即用例驱动、以基本架构为中心、迭代和增量。UP中的软件过程在时间上被分解为四个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到。如果评审结果令人满意,就可以允许项目进入下一个阶段。由于UP是由Rational公司提出来的,因此,也简称为RUP。

(7)各种软件开发模型的特点比较

2.2软件工程

软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。IEEE对软件工程的定义是:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。

1、需求分析

①需求类型

软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。需求是多层次的,主要包括业务需求(系统高层次目标)、用户需求(用户视角)和系统需求(系统的角度看问题)。

在QFD(质量功能部署)中将软件需求分为三类,分别是常规需求、期望需求和意外需求(兴奋需求)。

②需求分析工具

2、软件架构设计

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模式以及这些模式的约束组成。软件构件风格:数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。

3、软件设计

从工程管理角度来看,软件设计可分为概要设计和详细设计两个阶段。

(1)概要设计。也称为高层设计,即将软件需求转化为数据结构和软件的系统结构。

(2)详细设计。也称为低层设计,即对结构图进行细化,得到详细的数据结构与算法。

4、软件测试

软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。目前,软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误和缺陷的主要手段。软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。

① 软件测试的分类

软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等。软件测试的方法分为静态测试(包括桌面检查、代码走查、代码审查)和动态测试(白盒测试、黑盒测试)。

  • 单元测试也称为模块测试,测试对象是可独立编译或汇编的程序模块、软件构件或OO软件中的类,目的是检查每个模块能否正确实现设计说明书中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。

  • 集成测试目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。

  • 确认测试主要用于验证软件功能、性能和其他特性是否与用户需求一致。

  • 系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。

  • 配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与SRS的一致性。

  • 回归测试的目的是测试软件变更后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。

② 测试管理

(1)测试监控管理

测试监控的目的是为测试活动提供反馈信息和可视性。测试监控的主要内容如下:

  • 测试用例执行的进度,只表明用例执行的进度,不表示测试的成功率;

  • 缺陷存活时间,表明修改缺陷的效率;

  • 缺陷的趋势分析,按照测试执行的时间顺序,统计被发现的缺陷数量分布情况;

  • 缺陷分布密度,需要考虑缺陷的优先级和严重程度;

  • 缺陷修改质量,用于评价开发部门修复缺陷的质量。

(2)测试工作效率与工作质量考核

(3)测试风险管理

在测试工作中,主要的风险表现如下:

  • 需求风险。对软件需求理解不准确,导致测试范围存在误差,遗漏部分需求或执行了错误的测试方式;

  • 测试用例风险。测试用例设计不完整,忽视了边界条件、异常处理等情况,用例没有完全覆盖需求;测试用例没有得到全部执行,有些用例被有意或无意遗漏;

  • 缺陷风险。某些缺陷偶发,难以重现,容易被遗漏;

  • 代码质量风险。软件代码质量差,导致缺陷较多,容易出现测试的遗漏;

  • 测试环境风险。有些情况下测试环境与生产环境不能完全一致,导致测试结果存在误差;

  • 测试技术风险。某些项目存在技术难度,测试能力和水平导致测试进展缓慢,项目延期;

  • 回归测试风险。回归测试一般不运行全部测试用例,可能存在测试不完全;

  • 沟通协调风险。测试过程中涉及的角色较多,存在不同人员、角色之间的沟通、协作,难免存在误解、沟通不畅的情况,导致项目延期;

  • 其他不可预计风险。

5.软件维护

软件维护占整个软件生命周期的60%~80%,维护的类型主要有以下4种:改正性维护、适应性维护、完善性维护、预防性维护。

2.3面向对象分析与设计

1、基本概念

(1)对象。在计算机系统中,对象是指一组属性及这组属性上的专用操作的封装体。一个对象通常可由三部分组成,分别是对象名、属性和操作(方法)。

(2)类。类是一组具有相同属性和相同操作的对象的集合。一个类通常可由三部分组成,分别是类名、属性和操作(方法)。每个类一般都有实例,没有实例的类是抽象类。

(3)继承。继承是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子类,这些子类都是父类的特例。

(4)封装。面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。

(5)消息。消息是对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。

(6)多态性。多态性是指同一个操作作用于不同的对象时可以有不同的解释,并产生不同的执行结果。

2、UML

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

UML2.0包括14种图:

①类图(class diagram):描述一组类、接口、协作和它们的关系,静态设计视图,活动类给出了静态进程视图;

②对象图(object diagram):描述一组对象和它们的关系,在类图中所建立的事物实例的静态快照;

③构件图(component diagram):描述一个封装的类和它的接口、端口以及由内嵌的构件和连接件构成的内部结构;

④组合结构图(composite structure diagram):它是类图的变体,进度设计实现视图;

⑤用例图(usecase diagram):描述一组用例、参与者及它们之间的关系,在对系统的行为进行组织和建模时非常重要;

⑥顺序图(sequence diagram)/序列图:对象之间传送消息的时间顺序,是用来表示用例中的行为顺序,是一种交互图;

⑦通信图(communication diagram):是一种交互图,强调收发消息的对象或参与者的结构组织,也称协作图;

⑧定时图(timing diagram):也是一种交互图,强调消息跨越不同对象或参与者的实际时间;

⑨状态图(state diagram):描述一个状态机,它由状态、转移、事件和活动组成;

⑩活动图(activity diagram):展示为计算机内部一步步的控制流和数据流;

⑪部署图(deployment diagram):一种展示运行时进行处理的结点和在结点上生存的制品的配置图;

⑫制品图(artifact diagram):展示了一组制品及它们之间的关系;

⑬包图(package diagram):包图是包和包之间的关系构成,是维护和控制系统总体结构的重要建模工具,用于描述系统的分层结构;

⑭交互概览图(interaction overview diagram):活动图和顺序图的混合物。

2.4 信息系统规划

1、大型信息系统的特点

大型信息系统是指以信息技术和通信技术为支撑,规模庞大,分布广阔,采用多级网络结构,跨越多个安全域,处理海量的、复杂且形式多样的数据,提供多种类型应用的大系统。特点包括:“两大两多一复杂”和跨地区。数据量和规模大、业务种类和用户多、网络结构复杂。

2、信息系统规划方法与工具

信息系统规划(Information System Planning,ISP)是从企业战略出发,构建企业基本的信息系统架构,对企业内、外信息资源进行统一规划、管理与应用,利用信息系统控制企业行为,辅助企业进行决策,帮助企业实现战略目标。

ISP方法经历了三个主要阶段,各个阶段所使用的方法也不一样。第一个阶段主要以数据处理为核心,围绕职能部门需求的信息系统规划,主要的方法包括企业系统规划法、关键成功因素法和战略集合转化法;第二个阶段主要以企业内部管理信息系统为核心,围绕企业整体需求进行的信息系统规划,主要的方法包括战略数据规划法、信息工程法和战略栅格法;第三个阶段在综合考虑企业内外环境的情况下,以集成为核心,围绕企业战略需求进行的信息系统规划,主要的方法包括价值链分析法和战略一致性模型。

企业系统规划(Business System Planning,BSP)方法是IBM公司于20世纪70年代提出的一种方法,主要用于大型信息系统的开发。对大型信息系统而言,BSP采取的是自上而下的系统规划,而实现是自下而上分步进行。BSP方法是通过全面调查,分析企业信息需求,制定信息系统总体方案的一种方法。

其活动步骤为:项目确定后→开始准备工作→定义企业过程→识别定义数据类→分析现有系统→确定管理部门对系统的要求→提出判断和结论→(定义企业信息系统总体结构→确定优先顺序)或评价信息资源管理工作→制定建议书和开发计划→最后形成成果报告。

信息系统规划工具:①为把企业组织结构与企业过程联系起来,可以采用过程/组织(Process/Organization,P/O)矩阵;

②为定义数据类,在调查研究和访谈的基础上,可以采用实体法归纳出数据类。 实体法首先列出企业资源,再列出一个资源/数据(Resource/Data,R/D)矩阵;

③功能法也称过程法可以用IPO(输入-处理-输出)图表示;

④按照企业过程生成数据类关系填写C(Create),使用数据类关系填写U(User),形成U/C矩阵。

2.5 过程管理

CMMI分阶段式和连续式,它们采用相同的24个过程域,逻辑上等价。注:CMMI1.2一共24个过程域,CMMI1.3一共22个过程域。

①CMMI阶段式分组(侧重组织的成熟度)

②CMMI连续式分组(侧重组织的过程能力)

3章节问答

1、数据、信息及知识三者的概念与区别是什么?

答:数据是最基本的单位,是未经组织的数字、词语、声音、图像等;信息是以有意义的形式加以排列和处理的数据(有意义的数据);知识是用于生产的信息(有意义的信息)。信息经过加工处理、应用于生产,才能转变成知识。


2、结构化开发方法、原型法与面向对象开发之间的优缺点:

答:

(1)结构化开发方法是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。结构化系统开发方法(亦称“生命周期法”)其优点是:从系统整体出发,强调在整体优化的条件下“自上而下”地分析和设计,保证了系统的整体性和目标的一致性;遵循用户至上原则;严格区分系统开发的阶段性;每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制;文档规范化,按工程标准建立标准化的文档资料。缺点:用户素质或系统分析员和管理者之间的沟通问题;开发周期长,难以适应环境变化;结构化程度较低的系统,在开发初期难以锁定功能要求。

(2)原型法其优点:符合人们认识事物的规律,系统开发循序渐进,反复修改,确保较好的用户满意度;开发周期短,费用相对少;由于有用户的直接参与,系统更加贴近实际;易学易用,减少用户的培训时间;应变能力强。缺点:不适合大规模系统的开发;开发过程管理要求高,整个开发过程要经过“试用—反馈—修改”的多次反复;开发人员易将原型取代系统分析;缺乏规范化的文档资料。

(3)面向对象开发方法其优点是:分析、设计中的对象和软件中的对象的一致性;实现软件复用,简化程序设计;系统易于维护;缩短开发周期。缺点:不易于大系统的开发。

(4)结构化分析是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明,它主要采用的工具是数据流图DFD,利用DFD描述边界和数据处理过程的关系。面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。面向对象分析阶段是通过行为分析法认定对象及它们之间的关系。


3、什么是需求跟踪?其作用是?

答:

(1)需求跟踪是指跟踪一个需求使用期限的全过程,需求跟踪包括编制每个需求同系统元素之间的联系文档,这些元素包括其他类型的需求、体系结构,其他设计部件、源代码模块、测试、帮助文件等。需求跟踪为我们提供了由需求到产品实现整个过程范围的明确查阅的能力。

(2)需求跟踪的目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。

(3)需求跟踪有两种方式:

正向跟踪:检查《产品需求规格说明书》中的每个需求是否都能在后继工作成果中找到对应点。

逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在《产品需求规格说明书》中找到出处。

(4)正向跟踪和逆向跟踪合称为“双向跟踪”。不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵(即表格)。需求跟踪矩阵保存了需求与后继工作成果的对应关系。

4、什么是SRS?它有哪些特点?应该由谁来编写SRS?

答:

(1)SRS(Software Requirements Specification)是软件需求规格说明书的缩写。SRS代表用户和开发人员对软件系统的共同理解,是软件项目后期开发和维护的基础,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。SRS详细记录了用户对软件的功能需求和非功能需求。

(2)SRS的特点有:无歧义性;完整性;可验证性;一致性;可修改性;可追踪性。

(3)SRS应由开发者和客户双方联合起草。SRS中每一个软件需求是要求开发软件产品的某些功能和性能的一个陈述。


5、什么是UML?UML模型图的构成?各UML图及特征?

答:

(1)UML(Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

(2)UML模型图的构成包括:

①事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象。

②关系(Relationships):关系把事物紧密联系在一起。

③图(Diagrams):图是事物和关系的可视化表示。


6、面向对象分析主要由用例模型和分析模型分别介绍了用例之间的关系和类之间的关系有哪些?

答:用例之间的关系:包含关系、扩展关系、泛化关系;

类之间的关系:关联关系、依赖关系、泛化关系、聚合关系、组合关系和实现关系。



第2章 信息系统开发基础的评论 (共 条)

分享到微博请遵守国家法律