版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.软件工程复习计算机软件指计算机系统中的程序、数据及其相关文档的集合。三要素:软件=程序+文档+数据程序是按照特定顺序组织的计算机数据和指令的集合。数据是使程序能正常执行的数据结构。文档是与程序的开发、维护和使用有关的资料。它是为了便于了解程序所需的阐明性资料,文档一般是给人看的,不一定装入计算机。软件的主要特点软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。但其维护的工作量大。软件的使用没有硬件那样的机械磨损和老化问题。软件的分类系统软件:属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥具体的应用领域无关。如操作系统、编译程序等。支持软件:支持软件的开发和维护的软件。如数据库管理系统、网络软件、软件开发环境等。按软件工作方式划分:实时处理软件分时软件交互式软件批处理软件按软件服务对象的范围划分:项目软件产品软件按使用的频度进行划分:一次使用频繁使用按软件失效的影响进行划分:高可靠性软件一般可靠性软件软件工程定义,以及为开发、运行和维护这些程序所必须的相关文件资料。FritzBauer的定义:软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件,而建立和使用的一系列完善的工程化原则。档资料,以及在计事机上运行时所必需的数据。软件工程化思想把软件看作是一个工程产品。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.两个方面:软件开发技术软件工程管理原因:缺乏软件过程控制能力能力成熟模型(CapabilityMaturityModel)体现:工程化管理软件工程基本原理尽可能推迟软件的物理实现。逐步求精原理,求解一个复杂问题,采用从抽象到具体,有条理地逐步分解与细化方分解与抽象原理,是把复杂问题趋于简单化处理的有效策略。信息隐蔽原理,把一些关系密切的软件元素物理地放得彼此靠近,使信息最大限度地质量保证原理,是软件与文档中明确描述的功能和性能需求、开发标准以及任何专业开发的软件产品具有的隐含特征相一致的程度。软件工程基本原则1983年提出了软件工程的7条基本原则:分阶段的软件生存周期坚持进行阶段评审实行严格的产品控制采用现代程序设计技术明确职责开发小组的人员应少而精不断改进开发过程软件工程两大范型结构化开发范型特征:结构化技术要么面向行为,要么面向数据构成结构化开发范型的技术包括:结构化分析结构化设计结构化编程结构化测试结构化维护软件工程两大范型面向对象范型特征:将对象视作一个融合了数据及在其上操作的行为的、统一的软件组件。技术包括:面向对象分析面向对象设计面向对象编程面向对象测试文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.面向对象维护优势:对象的概念符合业务或领域的客观实际维护容易软件过程定义:软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有通常使用生命周期模型简洁地描述软件过程。层次:软件工程是一门建立在以质量焦点为基础的层次化综合技术。过程:定义阶段和管理。方法:技术支持。工具:自动化实施支持。软件过程框架定义:框架是实现整个软件开发活动的基础,并且那些与过程有关的角色、职责的定义及实现也都离不开框架的支持。软件过程模型把软件生命周期中各项开发活动的流程用一个合理的框架—开发模型来规范描述,这能力成熟度模型CMM是对软件组织在定义、实施、度量、控制和改善其软件过程的各个发展阶段的描述,是国际公认的对软件公司进行成熟度等级认证的重要标准。能力成熟度模型集成(CMMI--CapabilityMaturityModelIntegration)是CMM模型CMM的五个级别级-已管理级和5级-优化级。1.初始(initial)级:过程无序且不可见。软件过程的特点是无秩序的,甚至是混乱的。几乎没有什么过程是经过妥善定义的,成功往往依赖于个人或小组的努力和机遇。t2.可重复(repeatable)级:里程碑可见,按计划开发。建立了基本的项目管理过程来跟踪成本、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。Level2:可重复级3.已定义(defined)级:每个阶段的内部活动可见,标准过程和项目定义过程裁剪己将管理和工程活动两方面的软件过程文档化、标准化,并综合成该机构的标准软文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。Level定义级4.Level4已管理(managed)级:过程可度量,预测值与结果之间的偏差可控。收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。Level管理级5.Level5优化(optimizing)级:过程动态调整、新技术的采用。整个组织关注软件过程改进的持续性、预见及增强自身,防止缺陷及问题的发生。过程的量化反馈和先进的新思想、新技术促使过程不断改进。Level5优化级极限编程极限编程(eXtremeProgramming,XP)是一种软件工程方法学,是敏捷开发中最有成效的方法学之一。具有强沟通、简化设计、迅速反馈等特点。适合于规模小、进度紧、需求不稳定、开发小项目的小团队。极限编程核心有四个要点:交流简单反馈勇气PairProgramming结对编程结对编程(Pair-Programming)是XP中非常重要的实践之一。定义:两个人坐在同一台计算机前面,使用相同的键盘和鼠标来开发同样的一个模块,一个称为驾驶者(Driver),负责代码的键入,另外一个称为领航员(Navigator),负责监看与决策,包括低级错误和方向性的错误。当出现的一个问题对其中一个人来说,难以解决,而恰好是另外一个人的强项的时候,那么角色就会发生转换。如何结对编程?Driver–写设计文档(Classdiagram等),进行编码(UnitTestandBusinessDriver和Navigator不断轮换角色,不要连续工作超过一小时,每一小时休息15分钟。Navigator控制开发时间。主动参与–虽然每个EngineeringTask都有owner,但不能以旁观者的心态来做。任如何结对编程?只有水平上的差距,没有级别上的差异。一个Pair,尽管可能大家的级别资历不同,但不管在分析,设计或编码,双方都拥有平等的决策权利。r文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.如果Pair中的一人请假,另一人应尽量不要写ProductionCode。Pair一起加班。软件工程实践软件工程实践的精髓是理解问题、计划解决方案、实施计划和检查结果的精确度等方通用的框架活动包括:沟通计划建模部署普适性活动典型的软件过程模型有:瀑布模型(waterfallmodel)演化模型(evolutionarymodel)增量模型(incrementalmodel)原型模型(prototypingmodel)螺旋模型(spiralmodel)面向对象过程模型——喷泉模型(waterfountainmodel)基于构件的开发模型(component-baseddevelopmentmodel)形式方法模型(formalmethodsmodel)统一过程模型(unifiedprocdssmodel)软件过程模型软件过程模型是软件开发全部过程、活动和任务的结构框架。也称软件开发模型或软件生存周期模型。软件生存周期软件也有一个从生到死的过程,这个过程一般称之为软件的生存周期或生命周期(SoftwareDevelopmentLifeCycle)。软件生存周期包括可行性分析、项目计划、需求分析、软件设计、编码与测试、维护等阶段,每个阶段包含一系列的活动。一.瀑布模型瀑布模型将软件生命周期划分为软件计划、需求分析和定义、设计、实现、测试、运固定次序,如同瀑布流水逐级下落。瀑布模型特点顺序性和依赖性——接受上一阶段的结果作为本阶段的输入,上一阶段的输出正确,下一阶段的工作才能获得正确的结果。推迟实现——清楚地区分逻辑设计与物理设计,尽可能推迟程序的编程实现。质量保证的观点,重视各个阶段的文档齐备。点缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发。开发早期存在的问题往往要到交付使用时才发现,维护代价大。二.演化模型文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.许多软件项目在开发早期对软件需求的认识是模糊的、不确定的,因此软件很难一次最终软件产品的过程。演化模型适用于对软件需求缺乏准确认识的情况。典型的演化模型有:增量模型、原型模型、螺旋模型。型增量模型(IncrementalModel)也称为渐增模型,是在项目的开发过程中以一系列的增量方式包括:增量开发:以一定的时间间隔开发部分工作软件。增量提交:以一定的时间间隔增量方式向用户提交工作软件及相应文档。2.原型模型原型(prototype)是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本地构建原型。原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。3.螺旋模型螺旋模型(SpiralModel)是结合了瀑布模型和快速原型模型的迭代开发模型,是瀑布模型和演化模型的结合,并增加了风险分析。强调了其他模型均忽略了的风险分析:风险识别风险分析风险控制特别适合于大型复杂的系统。每一个周期都包括需求定义、风险分析、工程实现和评审。螺旋模型活动四个象限分别代表了以下活动:制定计划:确定软件目标,选定实施方案,确定项目开发的限制条件;风险分析:分析评估所选方案,考虑如何识别和消除风险;客户评估:评价开发工作,提出修正建议,制定下一步计划。螺旋模型是风险驱动的模型。三.面向对象过程模型面向对象是一种程序设计的方法,或者说它是一种程序设计范型。基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。面向对象的要素:抽象:强调实体的本质、内在的属性,忽略一些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,是对象的共性的抽象。封装性:指所有软件部件内部都有明确的范围以及清楚的外部边界。共享性。1.喷泉模型文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.喷泉模型是一种支持面向对象开发的模型。体现迭代和无间隙特征:无间隙:开发活动之间不存在明显的边界。四.基于构件的开发模型支持软件复用(reuse)。利用预先包装好的软件构件(包括组织内部开发的构件和现存商品化构件COTS)来构构件集成模型构件集成模型是基于构件的开发模型。构件集成模型:整个系统模块化。复用构件库中的软件构件。构件集成模型是演化形的,开发过程是迭代的。软件的需求分析和定义体系结构设计构件库建立应用软件构建测试和发布五.形式方法模型形式化方法(formalmethods)是建立在严格数学基础上的一种软件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成、直至维护各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。六.统一过程模型统一过程是用况驱动的。用况模型(usecasemodel)要素:用户(user)用况(usecase)动作(action)还能驱动系统设计、实现和测试的进行。统一过程模型统一过程(UnifiedProcess,UP)是风险驱动的、基于用例技术的、以架构为中心的、迭代的、可配置的软件开发流程。统一过程是一个软件开发过程,是一个通用的过程框架:初始细化构造移交统一过程五个核心工作流需求(RequirementsCapture):致力于开发正确的系统。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.分析(Analysis):更精确地理解需求。设计(Design):深入理解与非功能性需求和约束相联系的问题。实现(Implementation):实现系统与集成。测试(Test):验证实现的结构。软件需求在软件的整个生命周期中,首先是软件计划期,接着是软件开发期,软件需求分析是软件开发的第一个阶段,也是关系到软件开发成功与否的关键一步。需求分析的任务与步骤需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。1、建立分析模型——数据、功能和行为模型。需求分析的任务与步骤2.编写软件需求规格说明:主要包括描述目标系统概貌、功能要求、性能要求、运行要求和将来可能提出的要求。图、IPO图或其他工具简要描述的系统主要算法,都是该份文档的重要组成部分。此外,该份文档还应包括用户需求与系统功能之间的关系、设计约束等等文字描述。软件需求规格说明是需求分析阶段的最终成果。需求分析的步骤1.需求获取。2.需求提炼任务:分析建模。3.需求描述结果:软件需求说明书。4.需求验证改善需求说明的完整性,确保他可作为软件设计和系统验收的依据。需求获取的常用方法联合分析小组用户代表、领域专家和系统分析员。客户访谈充分准备,寻找共同语言;循序渐进、逐步逼近。分析与确认多个来回。软件需求获取的层次(内容)1.业务需求与用户需求:源于系统的特定领域的需求和用户使用交互需求。2.功能需求:描述系统预期提供的功能或服务。定义了系统做什么(描述系统必须支持的功能和过程)对系统应提供的服务;如何对输入做出反应;系统在特定条件下的行为。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.的特性(描述操作环境和性能目标)产品需求;机构需求;外部需求。需求分析过程需求分析主要是理解客户需要什么、分析要求、评价可行性、协商合理的方案、无歧义地详细说明方案、确认规格说明、管理需求,以至将这些需求转化为可行系统。过程包括:沟通导出需求精化需求可行性研究与客户协商编写需求规格说明验证需求管理需求多视点的需求分析过程视点识别:包括发现接收系统服务的视点和发现提供给每个视点的特别服务。层次的视点继承。视点文档编写:包括对被识别的视点和服务描述的精炼。视点系统映射:包括在面向对象设计中,通过封装在视点中的服务信息识别对象。场景分析分析员与项目相关人员共同识别出情景,并捕获这些情景的细节。把细节加入到一个纲要的需求描述中时,情景特别有用。情景是对交互实例片断的描述,每个情景可能包含一个或多个交互,它们能在不同的细节层次上提供不同类型的情景信息。情景开始于一个框架,在导出过程中,细节被逐渐增加,直到产生交互的一个完整的描情景内容在情景开始部分有一个系统状态描述;关于标准事件流的描述;关于哪儿会出错,以及如何处理错误的描述;有关其他可能在同一时间进行的活动的信息;在情景完成后系统状态的描述。场景名:取款参与者:银行客户场景描述:1.插入有效的银行卡;3.系统要求输入银行卡密码,用户输入密码;4.系统通过网络向银行内部系统请求验证密码;文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.6.系统要求输入取款金额,比如1000元;7.系统验证是有足够的现金,并请求验证银行内部服务器处理取款;钞票数目,并送出现金;10.系统打印凭条,用户取走凭条;银行卡,用户取走银行卡。结构化方法一种面向数据流的传统软件开发方法。以数据流为中心构建软件的分析模型和设计模型。分为:结构化分析(StructuredAnalysis简称SA)结构化设计(StructuresdDesign简称SD)结构化程序设计(StructuredProgrammin简称SP)结构化分析结构化分析方法是一种传统的系统建模技术,其过程是创建描述信息内容和数据流的模型,依据功能和行为对系统进行划分,并描述必须建立的系统要素。结构化分析过程理解当前的现实环境,获得当前系统的具体模型(物理模型)。从当前系统的具体模型抽象出当前系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型。为目标系统的逻辑模型作补充。结构化分析模型结构面向数据流的建模方法面向数据流的建模是结构化需求分析方法之一。表示:数据字典:模型中的数据信息集合。数据流图-DataFlowDiagram(简称DFD):描述系统处理过程,即是描述输入数据流到输出数据流的变换(即加工)过程,用于对系统的功能建模。数据流图符号文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.源或宿存在于软件系统之外的人员或组织,表示软件系统输入数据的来源和输出数据的去向,例如,对一个考务处理系统而言:考生向系统提供报名单(输入数据流),所以考生是考试系统(软件)的一个源。考务处理系统要将考试成绩的统计分析表(输出数据流)传递给考试中心,所以考试中心是该系统的一个宿。源或宿用相同的图形符号表示。当数据流从该符号流出时表示是源。当数据流流向该符号时表示是宿。当两者皆有时表示既是源又是宿。加工和文件加工:描述输入数据流到输出数据流的变换。每个加工用一个定义明确的名字标识。至少有一个输入数据流和一个输出流。可以有多个输入数据流和多个输出数据流。文件:保存数据信息的外部单元。每个文件用一个定义明确的名字标识。由加工进行读写。DFD中称为文件,但在具体实现时可以用文件系统实现,也可以用数据库系统实数据流每个数据流用由一组固定成分的数据组成,并拥有一个定义明确的名字标识。如:运动会管理系统中,报名单(数据流)由队名、姓名、性别、参赛项目等数据组数据流的流向:从一个加工流向另一个加工。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.从加工流向文件(写文件)。从文件流向加工(读文件)。从源流向加工。从加工流向宿。。系统为旅客安排航班,打印出取票通知单(附应交的帐款)。旅客在飞机起飞的前一天凭取票通知等交款取票,系统检验无误,输出机票给旅客。出卷系统:自动出卷数据流图出卷系统:自动出卷数据流图数据字典定义:数据字典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切的解释,是数据流图的补充工具。数据流图与数据字典是密不可分的,两者结合起来构成软件的逻辑模型(分析模型)。数据字典数据字典有以下两个作用:它是所有名字信息管理的有效机制。作为连接软件分析、设计、实现和进化阶段的开发机构的信息存储。数据字典应该由四类元素的定义组成:数据流数据流分量数据存储处理rocessOutput数据字典条目数据字典条目中应该包括关于数据的信息:一般信息(名字、别名、描述等)。定义(数据类型、长度、结构等)。使用特点(值的范围、使用频率、使用条件、使用方式、条件值等)。控制信息(用户、使用特点、改变数、使用权等)。分组信息(文档结构、从属结构、物理位置等)。数据字典——数据流应包含的内容一般的“数据流”字典条目应包含以下内容:数据字典——数据文件应包含的内容一般的“数据文件”字典条目应包含以下内容:数据字典——数据项应包含的内容一般的“数据项”字典条目应包含以下内容:对数据项的数据描述还可以采用以下的方式:数据字典数据字典卡片方式示例判定表判定表的组成元素文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.条件桩(ConditionStub):列出各种条件的对象,如发货单金额,赊欠天数等,每条件条目(Conditienentry):列出各条件对象的取值,条件条目的每一列表示了个可能的条件组合。动作桩(actionstub):列出所有可能采取的动作,如发出发货单等,每行写一个动作条目(actioneutry):列出各种条件组合下应采取的动作。判定表的其它形式判定(决策)树判定树描述有多个行为需要选择的过程。判定树由一组表示条件的节点和无标记边组成。判定(决策)树实例决策树形式简单,易于掌握和使用,并适合于与用户讨论。判定(决策)树实例本质上与判定表是相同的,只是表示形式不同。例如“审批发货单”加工逻辑的判定树描述入下:软件设计的两个阶段设计者必须同时满足用户和系统开发人员的要求:概要设计阶段——概要设计书。详细设计阶段——详细设计书。软件设计过程结构化设计(StructuredDesign,简称SD)是一种将结构化分析得到的数据流图映射成软件体系结构的设计方法。强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则。分为概要设计和详细设计两大步骤:概要设计是对软件系统的总体设计,采用结构化设计方法,其任务是:将系统分解成模块,确定每个模块的功能、接口(模块间传递的数据)及其调用关系,并用模块及其对模块的调用来构建软件的体系结构。SA、SD和SP构成完整的结构化方法体系。概要设计文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.软件设计的第一类活动——概要设计,也称为总体设计或结构设计、高层设计。软件概要设计主要是仔细分析需求规格说明,研究、开发产品的模块划分,形成具有预定功能的模块组成结构,表示出模块间的控制关系,并给出模块之间的接口。软件概要设计的步骤1.设计供选择的方案。2.选取合理的方案。3.推荐最佳方案。4.功能分解与设计软件结构。5.数据库设计。6.编制设计文档。7.审查和复审。详细设计软件设计的第二类活动是软件详细设计,也称模块设计,或者过程设计、低层设计。详细设计是为结构设计中的各个模块设计过程细节,确定模块所需的算法和数据结构但并不是真正的编码,而是设计出程序的详细规格说明。详细设计是将概要设计的框架内容具体化、明细化,将概要设计的模型转换成可以操作的软件模型,是设计程序的蓝图。详细设计的内容模块或构件的处理逻辑、算法、接口等。模块或构件的描述:功能、需要解决的问题,以及该模块或构件在什么时候被调用,为何需要该模块或构件。、边界和特殊条件,甚至参考资料等。数据描述:其内部的数据流。其处理逻辑可采用流程图、PDL语言、N-S图、判定表等描述算法的图表来表示。模块的独立性模块的独立性(ModuleIndependence)是模块化、抽象、信息隐蔽等概念的直接结果,也是判断模块化结构是否合理的标准。模块独立性是指开发具有独立功能,而和其他模块没有过多关联的模块。模块独立性度量模块独立性由两个定性标准度量:模块自身的内聚(Cohesion)),也称为块内联系或模块强度。模块之间的耦合(Coupling),也称为块间联系。模块独立性愈高,则块内联系越强,块间联系越弱。模块内聚性内聚性是从功能的角度对模块内部聚合能力的量度。高内聚是模块独立性追求的目标。分类:模块耦合性耦合性是对一个软件结构内不同模块之间互连程度的度量。耦合性的强弱取决于模块间接口的复杂程度,以及通过接口的数据类型和数目。分类:(1)如模块必须存在耦合,选择适当的耦合类型,原则:尽量使用数据耦合;文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.少用控制耦合;限制公共耦合的范围;坚决避免使用内容耦合。(2)降低模块间接口的复杂性。软件结构图软件结构(StructureChart,简称SC)是软件系统的模块层次结构,反映了整个系统软件结构一般用树状或网状结构的图形来表示。软件结构图的主要元素有:模块:模块用带有名字的方框表示,名称应体现模块的功能。控制关系:控制关系用单向箭头或直线表示模块间的调用关系。信息传递:用带注释的短箭头表示模块调用过程中传递的信息。的下方加一个弧形箭头,表示循环调用。软件结构图软件结构图的形态特征:深度为5。能粗略表示一个系统的大小和复杂程度,深度和程序长度之间存在着某种对应关系。宽度:指一层中最大的模块个数。图6-4中的结构图的宽度为8。一般来说,结构的宽度越大,则系统就越复杂。扇出:指一个模块直接下属模块的个数。图6-4中的结构图的模块I的扇出为4。一般为3或4。扇入:指一个模块直接上属模块的个数。图6-4中的结构图的模块T的扇入为4。扇入过大,意味着共享该模块的上级模块数目多,这有一定的益处,但是决不能违背模块的独立性原则而片面追求高扇入。画结构图应注意的事项:模块不能重名。调用关系只能从上到下。软件结构图文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.软件结构图计方法7.1数据流模型结构化设计是将结构化分析的结果(数据流图)映射成软件的体系结构(结构图)。根据数据流的特点,可将数据流图分为变换型数据流图和事务型数据流图,其对应的映射分别称为变换分析和事务分析。7.1数据流模型有三种数据流类型:变换型数据流;事务型数据流;混合型数据流。变换型数据流信息沿着输入路径进入系统,并将输入信息的外部形式经过加工变成内部形式,内部形式的信息通过变换中心的处理,再沿着输出路径经过加工后变成输出信息,送到系事务型数据流当数据流经过一个具有“事务中心”特征的数据处理时,它可以根据事务类型从多条路径的数据流中选择一条活动通路。就是事务型数据流,简称事务流。混合型数据流在一个大型系统的DFD中,变换流和事务流往往会同时出现。例如,在一个事务型的DFD中,分支动作路径上的信息流也可能会体现出变换流的特这种具有将事务流和变换流组合出现,就是混合型数据流,简称混合流。结构化详细设计的结构三种基本结构顺序结构选择结构循环结构文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.程序流程图Goldstine1946年首先采用。它的主要优点是对控制流程的描绘很直观,便于初学者掌握。程序流程图的主要缺点:程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流虑程序的全局结构;转移控制;程序流程图不易表示数据结构。程序流程图符号盒图是由Nassi和Shneiderman提出的,所以又称为N-S图。每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒图具有下述特点:功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。出口,很容易确定局部和全程数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。盒图符号PAD立公司发明。成程序代码比较容易。解的概念逐步转换为确定的和详尽的过程,使之最终可采用计算机直接进行处理。过程描述语言(PDL-ProceduralDescriptionLanguage)介于自然语言和形式语言之间的一种半形式化语言,是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑。外层用来描述控制结构,采用顺序、选择、重复三种基本结构。其动词含义要具体,尽量不用形容词和副词来修饰。PDL三种结构统计单词数目统计空格seq打开文件读入字符串文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.Totalsum=0程序体iteruntil文件结束……程序体end印总数seq印出空格总数印总数end关闭文件停止统计空格end面向对象基础面向对象是一种的程序设计方法,或者说它是一种程序设计范型,其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。面向对象方法学面向对象分析(OOA,Object-OrientedAnalysis)是一种半形式化的规格说明技术。面向对象设计(OOD)面向对象实现(OOP)面向对象测试(OOT)面向对象的基本概念1.对象(object)对象是指一组属性以及这组属性上的专用操作的封装体。属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它或修改。操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服面向对象的基本概念封装(encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。一个对象通常可由对象名、属性和操作三部分组成。面向对象的基本概念2.类(class)类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类tance类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。面向对象的基本概念面向对象的基本概念3.继承(inheritance)继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作实现方法。文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.面向对象的基本概念如果一个子类只有唯一一个父类,这种继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。面向对象的基本概念4.消息(message)消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如果有必要的话)。消息只告诉接收对象需要完成什么操作,但并不指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法完成所需的操作。面向对象的基本概念5.多态性(polymorphism)多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结象上,则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。面向对象的基本概念6.动态绑定(dynamicbinding)动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。传统的程序设计语言的过程调用与目标代码的连接(即调用哪个过程)放在程序运行前(即编译时)进行(称为静态绑定),而动态绑定则是把这种连接推迟到运行时动态绑定是一种在运行时确定被执行代码的技术。面向对象特征抽象性:强调实体的本质、内在的属性,忽略一些无关紧要的属性。类实现了对象的数据(即状态)和行为的抽象,是对象的共性的抽象。封装性:指所有软件部件内部都有明确的范围以及清楚的外部边界。每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离。共享性:面向对象技术在不同级别上促进了共享。统一建模语言(UML,UnifiedModelingLanguage)是一种基于面向对象的可视化建模语言。UML用丰富的图形符号隐含表示了模型元素的语法,而用这些图形符号组成元模型表达语义,组成模型描述系统结构(或称为静态特征)以及行为(或称为动态特征)。一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、构件、包、另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化(表示一般与特殊的关系)、依赖、聚集(表示整体与部分的关系)等。UML模型元素五种视图:用例视图从用户角度表达系统功能;结构视图主要使用类图和对象图描述系统静态结构;行为视图展示系统动态行为及其并发性;文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.实现视图展示系统实现的结构和行为特征;部署视图展示系统的实现环境和构件是如何在物理结构中部署的。1类与对象图(ClassDiagram)与对象图(ObjectDiagram)表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。一、类图与对象图对象类简称类,是面向对象模型的最基本的模型元素,用类图来描述。类图(Classdiagram)由系统中使用的类以及它们之间的关系组成,是描述系统的一种图式。类及类型名均用英文大写字母开头,属性及操作名为小写字母开头。类图是构建其它图的基础。对象是对象类的实例(instance),用对象图来描述。UML中类之间的关系7、其它关联递归关联(Recursiveassociation)聚集(aggregation)聚集是一种特殊的关联,它指出类间的“整体-部分”关系。又分为:1、共享聚集(sharedaggregation)其“部分”对象可以是任意“整体”对象的一部分。当“整体”端的重数不是12、组合聚集(compositionaggregation)文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.三、泛化泛化指出类之间的“一般与特殊关系”,即继承关系。父类与子类之间构成类的分继承性的实例一个最古老的软件方法问题是:怎样将大系统拆分成小系统。UML中解决该问题的思路L包是一种组合机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫子系统(subsystem)。析与建模用例驱动分析过程用例建模分析开发活动图开发泳道图用况模型由用况图组成,用况图展示了执行者、用况以及它们之间的关系。用况通常用正文形式来描述。一个用况模型可由若干幅用况图组成。一幅用况图包含的模型元素有系统、执行者、用况,以及表示它们间的不同关系,如关联、扩展、包含、泛化等。一.定义系统用况图中的矩形框代表系统,系统的用况画在矩形框内,代表系统之外的执行者二.确定执行者执行者是指与系统交互的人或其他系统。执行者代表一种角色,而不是具体的某个人。执行者可分成主执行者和副执行者:主执行者使用系统的主要功能。例如,保险系统中主执行者处理保险的注册和管理。副执行者处理系统的辅助功能。例如,管理数据库、通信、备份以及其他管理等系统维护。我们可以通过回答下列问题来确定执行者:谁使用系统的主要功能(主执行者)?谁需要从系统中得到对他们日常工作的支持?谁需要维护、管理和维持系统的日常运行(副执行者)?系统需要控制哪些硬件设备?系统需要与哪些其他系统交互?哪些人或哪些系统对系统产生的结果(值)感兴趣?三.确定用况1.用况的特征文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.用况总是被执行者启动的(initiated),执行者必须直接或间接地指示系统去执用况向执行者提供值,这些值必须是可识别的。用况是完整的,一个用况必须是一个完整的描述。用况是一个类型,而不是实例,用况的实例称为场景(scenario)。四.用况的描述用况通常用正文(text)来描述,也可用活动图来描述用况的正文描述应包括以下内容:用况的目的:用况的最终目的是什么?它试图达到什么?用况是如何启动(initiate)的:哪个执行者在什么情况下启动用况的执行?执行者和用况之间的消息流:用况与执行者之间交换什么消息或事件来通知对方改变或恢复信息?描述系统与执行者之间的主消息流是什么?以及系统中哪些实体被使用五.确定用况之间的关系六.确认模型对用况模型进行评审,以确认该模型是用户所需的。开发活动图UML活动图通过提供特定的场景内交流的图形化表示来补充用例。活动图符号:两端为半圆形的矩形表示一个特定的系统功能。箭头表示通过系统的流。判定菱形表示判定分支。水平线、分叉点和连接表示并发活动。对象节点表示活动对象。活动图通常能够既表示控制流又表示数据流。UML活动图代替传统的数据流图(DataFlowDiagram)表示法。泳道图UML泳道图(swimlane)是活动图的一种有用的变形。可以让建模人员表示用例所描述的活动图,同时看哪个参与者或分析类对活动矩形所描述的活动负责。泳道用纵向分割图的并列条形部分表示,就像游泳池中的泳道,也称特定分区。UML泳道图通常对于涉及众多参与者的非常复杂的业务过程建模具有价值。泳道图举例1顺序图顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。对象位于水平轴,垂直轴表示时间标识方式:对象名:类名垂直虚线表示对象生命线生命线上的矩形表示对象在此时的活动生命线下方用叉号×表示对象的生命终结消息文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.消息分类:简单消息:以简单、抽象的函数表示。同步消息:等待消息处理完后,才可继续执行。异步消息:不等消息处理就可继续执行后续操作。返回消息:是同步消息。1.顺序图的概念顺序图(sequencediagram):用来描述为了完成确定事务,对象之间按照时间消息交2.顺序图样式和元素3.消息①调用消息(ProcedureCall)调用消息(也称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北工业职业技术大学单招职业适应性考试模拟试题及答案解析
- 2026年河南对外经济贸易职业学院单招职业适应性考试模拟试题及答案解析
- 2026年曲靖医学高等专科学校单招职业适应性考试模拟试题及答案解析
- 2026年江西水利职业学院单招职业适应性考试模拟试题及答案解析
- 2026年眉山职业技术学院单招职业适应性考试模拟试题及答案解析
- 医疗安全与风险管理教育
- 住院部护理团队协作经验
- 妇产科主任:女性健康与产前护理
- 内分泌科疾病诊断与管理
- 期末考试的总结
- 病历书写基本规范课件
- 砼面板堆石坝混凝土面板无轨滑模施工技术专项方案设计模板
- 新海兰褐饲养管理手册
- 心理测量学复习重点方案
- 地下室抗浮锚杆工程施工方案
- 杆件的应力与强度计算拉伸杆
- HGT-20519-2009-化工工艺设计施工图内容和深度统一规定
- 大合唱领导讲话
- GB/T 4666-2009纺织品织物长度和幅宽的测定
- GB/T 3512-2014硫化橡胶或热塑性橡胶热空气加速老化和耐热试验
- 高危儿及营养性疾病的筛查与管理优质精选课件
评论
0/150
提交评论