软件工程知识点汇总_第1页
软件工程知识点汇总_第2页
软件工程知识点汇总_第3页
软件工程知识点汇总_第4页
软件工程知识点汇总_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程知识点汇总软件工程知识点汇总11/11软件工程知识点汇总软件工程知识点汇总软件工程,软件工程方法学:三要素软件工程:eq\o\ac(○,1)应用系统化的,规范化的,可度量的方法来开发,运行和维护软件,即将工程应用到软件;eq\o\ac(○,2)对eq\o\ac(○,1)的各种方法的探讨软件工程是一门探讨用工程化方法构建和维护有效的好用的和高质量的软件的学科软件工程三要素是:方法,工具,过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用供应自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理,及时地进行计算机软件开发这一目的软件工程的原则包括:模块化原则,信息隐藏原则,抽象化原则,模块独立原则(内聚,耦合),依靠倒转原则,开闭原则等模块化原则:指解决一个困难问题时自顶向下逐层把软件系统划分为若干模块的过程。模块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要适中,模块过大会使模块内部的困难性增加不利于模块的理解和修改,模块过小会导致整个系统表示过于困难,不利于限制系统的困难性。信息隐藏原则:采纳封装技术,将程序模块的实现细微环节隐藏起来,使模块接口尽量简单。抽象化原则:抽取事物最基本的特性和行为,忽视非本质细微环节,采纳分层次抽象,自顶向下,逐层细化的方法限制软件开发过程的困难性。模块独立原则:是指每个模块只完成系统要求的独立子功能,并且及其他模块的联系最少且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松散的偶合关系,模块内部有较强的内聚性,这有助于限制系统的困难性。(即:高内聚低耦合)依靠倒转原则:抽象不应当依靠于细微环节,细微环节应当依靠于抽象。开闭原则:软件实体应当是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改是封闭的。软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理,阶段,每阶段任务,特点,示意图;软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经运用后废弃为止,跨越整个生命周期的系统开发,运行和维护所实施的全部过程,活动和任务的结构框架瀑布模型(又称线性模型):工作原理:规定了它们自上而下,相互连接的固定次序,犹如瀑布流水,逐级下落。前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必需交出合格的文档,必需对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作阶段: 安排时期:问题定义,可行性探讨 开发时期:需求分析,设计,编码,测试 运行时期:运行和维护各阶段任务:1.需求分析和定义在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用户需求为基本依据,从功能,性能,数据,操作等多个方面,对软件系统给出完整,精确,具体的描述,用于确定软件规格。2.软件设计依据系统需求的定义,确定系统的结构,进行系统的概要设计和各部分的功能及结构的具体设计。3.编码及单元测试在这一阶段,依据软件设计文档完成了程序模块或程序单元的编码。通过程序单元测试,验证其是否满意设计规范。4.集成和系统测试程序模块或程序单元被组装集成起来成为一个软件系统,然后进行系统测试。测试完成后即交付用户运用。5.运行和维护通常这是软件生命周期中最长的一个阶段。假如在运行期发觉了软件的错误,就要修改软件,可能会重复上述某个或多个阶段的活动。特点:依次性,依靠性:下一阶段依靠上一阶段的完成。推迟实现:阶段任务结束形成文档,并审核后方能进行设计任务,将程序的实现推迟进行。质量保证:文档完整,文档评审,避开错误积累及放大效应。示意图:快速原型工作原理:快速原型是利用原型协助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户及开发者在试用原型过程中加强通信及反馈,通过反复评价和改进原型,削减误会,弥补漏洞,适应变化,最终提高软件质量。废弃型:也称快速建立需求规格原型法:先构造一个功能简单而质量要求不高的模型系统,针对这个模型系统反复的进行分析修改,从而形成较好的设计思想,据此设计出更加完整,精确,一样牢靠的最终系统,系统构造完成后,原来的模型就被废弃 追加型:也称快速建立渐进原型法。它采纳按部就班的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,最为最终系统的核心,将系统须要具备的性能逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至全部性能全部满意,此时原型模型也就是最终的产品。阶段及任务 原型快速分析:是指在分析者和用户的紧密协作下,快速确定软件系统的基本要求,依据原型所要体现的特性(总体结构,处理功能,模拟性能,界面形式等),描述基本需求规格说明,以满意开发圆形的须要。 原型构造:在快速原型分析的基础上,依据基本需求规格说明,忽视细微环节只考虑主要特性快速构造一个可运行的系统。 原型运行及评价:是软件开发人员及用户频繁通信,发觉问题,消退误会的用药阶段,目的是验证原型的正确程度,进而开发新的并修改原有的需求。 原型修改:依据评价原型的活动结果进行修改。若原型未满意需求说明的要求,说明对需求说明存在不一样的理解或实现方案不够合理,则依据明确的要求快速修改原型。特点 1.增加了软件开发人员和用户对系统需求的理解,便于将用户模糊的功能需求明确化 2.为用户供应了一种强有力的学习手段 3.易于确定系统的性能,是理解和确定软件需求规格说明的良好工具 4.依据快速建立渐进原型法建立的原型即为最终的产品利用快速原型化技术可以为软件开发供应一种完整,敏捷,近似动态的需求规格说明方法。示意图喷泉模型工作原理:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面对对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。阶段每阶段任务特点:喷泉模型体现了软件创建所固有的迭代和无间隙的特征。迭代指系统中某个部分经常重复工作多次,无间隙指活动之间没有明显的间隙,如在分析和设计之间没有明显的界限。示意图。软件生命周期:阶段,各阶段功能,所涉及的内容(图,工具和文档)软件生命周期:是指一个计算机软件从功能确定,设计到开发胜利投入运用,并在运用中不断地修改,增补和完善,知道被新的需求所替代而停止该软件的运用全过程。四个工作阶段:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围。精化阶段:设计并确定系统的体系结构,制定项目安排,确定资源需求。构建阶段:开发出全部构件和应用程序,把它们集成为客户须要的产品,并且详尽地测试全部功能。移交阶段:把开发出的产品提交给用户运用各阶段功能:1问题定义可行性探讨eq\o\ac(○,1)可性探讨的任务是以最小的代价在尽可能短的时间内确定问题是否值得解决,是否能够解决。eq\o\ac(○,2)阶段性成果《项目可行性报告》2需求分析阶段eq\o\ac(○,1)需求分析的主要任务就是要通过软件开发人员及用户的沟通和探讨,精确地获得用户对系统的具体要求。eq\o\ac(○,2)阶段性成果《需求规格说明书》,数据字典,数据流图(DFD)3概要设计阶段eq\o\ac(○,1)划分出组成系统的物理元素,设计软件的结构,即确定模块及模块间的关系,依据需求分析阶段得到的逻辑模型来设计系统的物理模型eq\o\ac(○,2)阶段性成果《概要设计说明书》4具体设计阶段eq\o\ac(○,1)设计每个模块的算法,确定每一模块运用的数据结构,确定模块接口的细微环节,为每一个模块设计一个测试用例,编写具体设计说明书eq\o\ac(○,2)《软件具体设计》文档5编码和单元测试6系统测试7软件维护阶段各阶段所涉及的内容(文档,工具,图)结构化方法:生命周期中各阶段任务.获得用户需求,画数据流图,数据字典可行性分析,需求分析,设计(概要设计+具体设计),测试,维护面对对象方法:核心概念,模型面对对象中的基本概念:对象:代表了一个现实的或虚构的实体类:对具有相同数据和相同操作的一组相像对象的定义继承:子类自动的共享父类中定义的数据和方法的机制多态性:一个名字具有多种语义封装:将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装供应的接口进行消息:对象间在交互中所传送的通讯信息关联:对象之间所存在的联系模型对象模型:即找寻问题域中的对象,从对象中抽象出类的定义,识别对象的内部特征,定义属性,识别对象的外部关系,识别主题。动态模型:即建立交互图,状态图和活动图,进一步定义用例。功能模型:即用例分析,以用例对用户需求进行规范化描述;为了更好地理解问题,人们常采纳建立建立问题模型的方法。模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组成。模型是一种思索工具,可以把知识规范地表示出来。对于那些因过分困难而不能直接理解的系统,特殊须要建立模型,建模的目的主要是为了削减困难性。一旦建立起模型之后,就要经受用户和各个领域专家的严格审查。模型经常会经过多次必要的修改。用OO方法开发软件,通常须要建立3种形式的模型:对象模型描述系统数据结构;动态模型描述系统限制结构;功能模型描述系统功能;这三种模型各自从不同的侧面反映软件系统的内容,相互影响,相互制约,有机地结合在一起,全面地表达对目标系统的需求。对象模型表示静态的,结构化的系统的“数据”性质。描述了系统的静态结构。面对对象方法强调围绕对象而不是功能来构造系统。对象模型为建立动态模型和功能模型,供应了实质性的框架。1997年11月,国际对象管理组织OMG批准把UML1。1作为基于面对对象技术的标准建模语言。通常,运用UML的类图来建立对象模型。在UML中术语“类”的实际含义是,“一个类及属于该类的对象”状态模型表示瞬时的,行为化的系统的“限制”性质,它规定了对象模型中的对象的合法变化序列。一旦建立起对象模型之后,就须要考察对象的动态行为。全部对象都具有自己的生命周期。状态,是对对象属性值的一种抽象。各对象之间相互触发就形成了一系列的状态变化。一个触发行为称作一个事务。对象对事务的响应,取决于接受该触发的对象当时所处的状态,响应包括改变自己的状态或者又形成一个新的触发行为。状态有持续性,它占用一段时间间隔。状态及事务密不可分,一个事务隔开两个状态,一个状态隔开两个事务。事务表示时刻,状态表示时间间隔。UML中用状态图来描绘对象的状态,触发状态转换的事务及对象的行为。每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事务合并起来,从而构成系统的动态模型。动态模型是基于事务共享而相互关联的一组状态图的集合。功能模型表示变化的系统的“功能”性质,它指明白系统应当“做什么”,因此更直接地反映了用户对目标系统的需求。通常,功能模型由一组数据流图组成。在OO方法中,数据流图远不如在结构化方法中那样重要。但建立功能模型有助于开发人员更深化地理解问题域,改进和完善自己的设计。UML中供应的用例图也是进行需求分析和建立功能模型的强有力工具。UML中把用例图建立起来的系统模型称为用例模型。运用用例模型代替传统的功能说明,往往能够更好地获得用户需求,它所回答的问题是“系统应当为每个(或每类)用户做什么”。面对对象方法,UML:获得用户需求,画用例图,对象模型,UML中的关系1.面对对象的方法(1)分析:包括问题描述,构建对象模型,构建动态模型,构建功能模型。最终得到的分析文档包括问题需求的陈述,对象模型,动态模型和功能模型。(2)系统设计:结合问题域的知识和目标系统的体系结构,将目标系统分解为子系统,标识由问题所规定的并发性,设计适当的限制机制组织子系统协调工作,然后选择数据管理的基本策略,考虑对边界条件的处理。最终得到的系统设计文档包括基本的系统体系结构和高层次的决策策略。(3)对象设计:以分析模型为基础,首先定义类,设计类属性及操作,为每个操作选择合适的数据结构并定义算法,调整类结构以强化继承性;然后创建对象,设计消息以补充对象关联;通过关联发觉新的对象或交互条件时,修改类组织以优化对数据的访问,改善设计结构。最终得到的对象设计文档包括细化的对象模型,细化的动态模型和细化的功能模型。(4)实现:将设计转换为特定编程语言代码并在相应环境运行,同时保持可追踪性,敏捷性和可扩展性。2.UML:统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述,可视化处理,构造和建立软件系统产品的文档。UML描述了一个系统的静态结构和动态行为3.获得用户需求(1)及用户进行充分沟通,了解用户对软件的需求;(2)识别对象集合及对象间的关系;(3)定义类(包括属性和操作)并建立类间的层次关系;(4)建立模型来表示对象之间的关系及行为特性。4.用例图:用例模型描述外部执行者所理解的系统功能。用例模型用于需求分析阶段,描述待开发系统的功能要求,扶植软件设计人员理解系统要做的工作,同时用例模型还可以为其他模型建立,结构设计,实现及测试工作等供应依据。一个用例模型是由若干用例图组成的,进行用例建模的过程主要包括找寻执行者,找寻用例,描述用例,确定执行者和用例之间的关系等工作,其中找寻执行者和用例是用例建模的关键。5.对象模型:对象模型表示静态的,结构化的系统的“数据”性质。描述了系统的静态结构。面对对象方法强调围绕对象而不是功能来构造系统。对象模型为建立动态模型和功能模型,供应了实质性的框架。通常,运用UML的类图来建立对象模型。在UML中术语“类”的实际含义是,“一个类及属于该类的对象”6.关系:依靠关联泛化实现测试:黑盒,白盒设计测试用例白盒测试(结构测试,逻辑驱动测试):语句覆盖:设计若干个测试用例,使得被测试的程序中的每条可执行语句至少被执行一次推断覆盖:每个推断至少都获得一次“真”值和“假”值条件覆盖:每个推断中的条件可能的取值至少被执行一次推断及条件覆盖:每个推断的真假值分支至少被执行一遍,并且每个推断的条件的内部推断式的真假值分支也要被执行一遍条件组合覆盖:程序中每个推断条件的内部推断式的各种真假值组合可能都至少执行一遍路径覆盖:覆盖程序中全部可能的路径六种逻辑覆盖从弱到强的排列依次语句覆盖-推断覆盖-条件覆盖--推断条件覆盖条件组合覆盖--路径覆盖黑盒测试等价类划分:有效等价类和无效等价类边界值分析软件项目管理:项目管理,五大过程,九大知识领域,项目三角形项目管理:是为完成一个预定的目标,而对任务和资源进行规划,组织和管理的程序项目三角形:时间:反映在项目安排中的项目完成所需时间。资金:即项目的预算,取决于资源的成本,这些资源包括完成任务所需的人员,设备和材料。范围:项目的目标和任务,以及完成这些目标和任务所需的工时。项目管理的五大过程:启动过程,安排过程,实施过程,限制过程,收尾过程项目管理的九大知识领域:范围管理,时间管理,成本管理,质量管理,风险管理,人力资源管理,沟通管理,选购 管理,综合管理配置管理:配置管理,配置管理项,基线,里程碑配置管理:是一组追踪和限制活动,它们开始于软件项目开始时,结束于软件被淘汰之时。配置管理项:1。计算机程序源代码和可执行程序2。描述计算机程序的文档供技术人员或用户运用3。数据程序内包含的或在程序外的。。。每个配置项的主要属性出名称,标识符,文件状态,版本,作者,日期等基线:是一组配置项,这些配置项不能被随意修改和变更。基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。软件开发各阶段的基线:结构化方法及面对对象方法的比较:基本思想;分阶段比较1.结构化方法:基本思想:可以概括为自顶向下,逐步求精,采纳模块化技术和功能抽象将系统按功能分解为若干模块,从而将困难的系统分解成若干易于限制和处理的子系统,子系统又可分解为更小的子任务,最终的子任务都可以独立编写成子程序模块,模块内部由依次,选择,循环等基本限制结构组成。2.面对对象方法基本思想:面对对象方法的动身点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法及过程尽可能接近人类相识世界,解决问题的方法及过程,将客观世界中的实体抽象为问题域中的对象。运用现实的概念抽象地思索问题,从而自然地解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。3.两种方法的比较:传统的结构化方法,是软件工程中最为成熟的方法。对于能够预先确定需求的系统的开发,采纳结构化方法特别有效,但是对于需求是模糊的或随时间变化的系统开发这种方法不能适应。面对对象方法,对于需求不能预先确定的系统的开发,可采纳面对对象方法结合,这样就能够结合面对对象方法所具有的稳定性好,可复用性好和可维护性好的特点。需求分析阶段:结构化方法:采纳自顶向下功能分解的方法,强调逻辑功能而不是实现功能的具体方法,运用图形进行系统分析并表达分析的结果--数据流图,运用结构化分析方法获得的需求规格说明书由数据流图,数据词典及补充材料组成。面对对象方法:面对对象分析的关键是识别出问题域中的对象,并分析它们之间的关系,最终建立起问题域的简洁,精确,可理解的正确模型。面对对象分析模型通常包括对象模型,动态模型和功能模型。对象模型是最重要,最基本,最核心的。设计阶段:结构化软件是功能的集合,通过模块调用实现系统。面对对象软件是事物的集合,通过对象及联系实现系统。结构化软件=过程+数据,以过程为中心。面对对象软件=数据+相应操作,以数据为中心。结构化软件采纳依次处理方式,由过程驱动限制;面对对象软件采纳交互式,并行处理方式,由消息驱动限制;结构化方法的重点是设计;面对对象方法的重点是分析。结构化方法更适合数据类型比较简单的软件项目的开发;面对对象方法更适合大型困难的软件项目的开发练习题:看书上实例A,理解RUP过程试探讨RUP过程的优缺点RUP过程主要适用于何种项目?用面对对象方法开发软件时及结构化方法开发软件时相比较,软件的生命周期有何不同?这种差异带来了什么后果?为什么说广州本田牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?什么是对象?它及传统的数据有何区分?试用面对对象分析方法设计下述程序:在显示器屏幕上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,起始角为30度,结束角度为120度,半径为50.思索题1,一个程序能够既正确又不牢靠吗?请说明你的答案。软件牢靠性是程序在给定的时间间隔内按规格说明书的规定胜利地运行的概率。软件牢靠性即包含正确性又包含健壮性。即程序在正常环境下应能正确地完成预期功能,在意外环境下,也应能作出适当的响应。假如某程序在正常环境下可正常运行,在异样环境下不能作出适当的响应,则该项程序就是既正确又不牢靠思索题2,为什么在开发软件的过程中变化既是必要的又是不可避开的?为什么必需进行配置管理?在软件开发过程中,下述缘由会导致软件配置项发生变化,新的市场条件导致需求或业务规则变化,客户的需求也会或多或少地发生变化。企业改组或业务缩减,引起项目优先级或软件工程队伍结构变化,预算或进度限制,导致对目标系统的重新定义,发觉了前期阶段的错误,必需加以改正。因此,在开发软件的过程中,变化既是必要的,又是不可避开的。假如不能适当地限制和管理变化,势必造成混乱并产生很多严峻的错误。软件配置管理是在软件的整个生命期内管理变化的一组活动,可以认为软件配置管理是应用于整个软件生命期的软件质量保证活动,是特地用于管理变化的软件质量保证活动,软件配置管理的目标是使变化更正确且更简单被适应,在必需变化时削减所需花费的工作量,综上所述,进行配置管理是特别必要的3,某些软件工程师不同意“目前国外很多软件开发组织把60%以上的人力用于维护已有的软件”的说法。他们争辩说:“我并没有花费我的60%的时间去改正我所开发的程序中的错误”。

请问,你对上述争辩有何看法? 答:软件维护并非仅仅是改正程序中的错误,它还包括适应性维护,完善性维护和预防性维护。纠错性维护只占维护活动总量的1/5,“目前国外很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论