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

下载本文档

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

文档简介

1、软件工程知识点汇总1软件工程、软件工程方法学:三要素1.1 软件工程:0应用系统化的、规化的、可度量的方法来开发、运行和维护软件,即将工程应用到软件:.对的各种方法的研究1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科1.3 软件工程三要素是:方法、工具、过程软件工程的方法:是指完成软件开发各项任务的技术方法软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境软件工程过程:是指将软件工程方法和工具综合起来以到达合理、及时地进行计算机软件开发这一目的2 软件工程的原那么包括:模块化原那么、信息隐蔽原那么、抽象化原那么、模块独立原那么聚、耦合、依赖倒转原那

2、么、开闭原那么等2.1 模块化原那么:指解决一个复杂问题时自顶向下逐层把软件系统划分为假设干模块的过程.模块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要适中,模块过大会使模块部的复杂性增加不利于模块的理解和修改,模块过小会导致整个系统表示过于复杂,不利于限制系统的复杂性.2.2 信息隐蔽原那么:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单.2.3 抽象化原那么:抽取事物最根本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化的方法限制软件开发过程的复杂性.2.4 模块独立原那么:是指每个模块只完成系统要求的独立子功能,并且与其他模

3、块的联系最少且接口简单.要求在一个物理模块集中逻辑上相互关联的计算机资源,保证模块间由松散的偶合关系,模块部有较强的聚性,这有助于限制系统的复杂性.即:高聚低耦合2.5 依赖倒转原那么:抽象不应该依赖于细节,细节应该依赖于抽象.2.6 开闭原那么:软件实体应该是可扩展的,但是不可以修改.即对于扩展是开放的,对于更改是封闭的.3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的11作原理、阶段、每阶段任务、特点、示意图;软件开发模型也称为软件过程模型:是从软件工程需求定义开始直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架3.1 瀑布模

4、型又称线性模型:3.1.1 工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落.前一阶段的工作成果是后一阶段工作开始的根底.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作3.1.2 阶段:方案时期:问题定义、可行性研究开发时期:需求分析、设计、编码、测试运行时期:运行和维护3.1.3 各阶段任务:1 .需求分析和定义在软件工程进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的根本依据,同时也是用户对软件产品进行验收的根本依据.需求分析和定义是以用户需求为根本依据,从功能、性能、数据、操作等

5、多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格.2 .软件设计根据系统需求的定义,确定系统的结构,进行系统的概要设计和各局部的功能与结构的详细设计.3 .编码与单元测试在这一阶段,根据软件设计文档完成了程序模块或程序单元的编码.通过程序单元测试,验证其是否满足设计规.4 .集成和系统测试程序模块或程序单元被组装集成起来成为一个软件系统,然后进行系统测试.测试完成后即交付用户使用.5 .运行和维护通常这是软件生命周期中最长的一个阶段.如果在运行期发现了软件的错误,就要修改软件,可能会重复上述某个或多个阶段的活动.3.1.4 特点:顺序性:依赖性:下一阶段依赖上一阶段的完成. 推

6、迟实现:阶段任务结束形成文档,并审核前方能进行设计任务,将程序的实现推迟进行. 质量保证:文档完整、文档评审,防止错误积累与放大效应.3.1.5 示意图:3.2快速原型3.2.1 工作原理:快速原型是利用原型辅助软件开发的一种新思想.经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中增强通信与反应,通过反复评价和改良原型,减少误解,弥补漏洞,适应变化,最终提升软件质量.废弃型:也称快速建立需求规格原型法:先构造一个功能简单而质量要求不高的模型系统,针对这个模型系统反复的进行分析修改,从而形成较好的设计思想,据此设计出更加完整、准确、一致可靠的最终系统,系统构造完成后,原来的模型就

7、被废弃追加型:也称快速建立渐进原型法.它采用循序渐进的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,最为最终系统的核心,将系统需要具备的性能逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有性能全部满足,此时原型模型也就是最终的产品.3.2.2 阶段及任务原型快速分析:是指在分析者和用户的紧密配合下,快速确定软件系统的根本要求,根据原型所要表达的特性总体结构、处理功能、模拟性能、界面形式等,描述根本需求规格说明,以满足开发圆形的需要.原型构造:在快速原型分析的根底上,根据根本需求规格说明,忽略细节只考虑主要特性快速构造一个可运行的系统.原型运行与评价

8、:是软件开发人员与用户频繁通信、发现问题、消除误解的用药阶段,目的是验证原型的正确程度,进而开发新的并修改原有的需求.原型修改:根据评价原型的活动结果进行修改.假设原型未满足需求说明的要求,说明对需求说明存在不一致的理解或实现方案不够合理,那么根据明确的要求迅速修改原型.3.2.3 特点1 .增强了软件开发人员和用户对系统需求的理解.,便于将用户模糊的功能需求明确化2 .为用户提供了一种强有力的学习手段3 .易于确定系统的性能,是理解和确定软件需求规格说明的良好工具4 .根据快速建立渐进原型法建立的原型即为最终的产品利用快速原型化技术可以为软件开发提供一种完整、灵活、近似动态的需求规格说明方法

9、.3.2.4示意图指导快速分析,确定初步规格说明构造原型快速分析或修改运行Ca原型开发模型1»模型的细化过程运行Z评价原型原型完成否整理原型提供文档r-N厂修正与改良原型T3.3喷泉模型3.3.1 工作原理:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程.该模型认为软件开发过程自下而上周期的各阶段是相互重叠和屡次反复的,各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏.3.3.2 阶段3.3.3 每阶段任务3.3.4 特点:喷泉模型表达了软件创立所固有的迭代和无间隙的特征.迭代指系统中某个局

10、部常常重复工作屡次,无间隙指活动之间没有明显的间隙,如在分析和设计之间没有明显的界限.3.3.5 示意图4软件生命周期:阶段、各阶段功能、所涉及的容图、工具和文档4.1 软件生命周期:是指一个计算机软件从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,知道被新的需求所替代而停止该软件的使用全过程.4.2 四个工作阶段:初始阶段:建立业务模型,定义最终产品视图,并且确定工程的围.精化阶段:设计并确定系统的体系结构,制定工程方案,确定资源需求.构建阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能.移交阶段:把开发出的产品提交给用户使用4.3各阶

11、段功能:1问题定义可行性研究可性研究的任务是以最小的代价在尽可能短的时间确定问题是否值得解决、是否能够解决.阶段性成果?工程可行性报告?2需求分析阶段需求分析的主要任务就是要通过软件开发人员与用户的交流和讨论,准确地获取用户对系统的具体要求.阶段性成果?需求规格说明书?、数据字典、数据流图DFD3概要设计阶段划分出组成系统的物理元素,设计软件的结构,即确定模块及模块间的关系,根据需求分析阶段得到的逻辑模型来设计系统的物理模型阶段性成果?概要设计说明书?4详细设计阶段设计每个模块的算法,确定每一模块使用的数据结构,确定模块接口的细节,为每一个模块设计一个测试用例,编写详细设计说明书?软件详细设计

12、?文档5编码和单元测试6系统测试7软件维护阶段4.4各阶段所涉及的容文档、工具、图5 结构化方法:生命周期中各阶段任务.获取用户需求、画数据流图、数据字典6 可行性分析、需求分析、设计概要设计+详细设计、测试、维护7 面向对象方法:核心概念、模型7.1 面向对象中的根本概念:对象:代表了一个现实的或虚构的实体类:对具有相同数据和相同操作的一组相似对象的定义继承:子类自动的共享父类中定义的数据和方法的机制多态性:一个名字具有多种语义封装:将属性和操作包装成一个单元,使得对状态的访问和修改只能通过封装提供的接口进行消息:对象间在交互中所传送的通讯信息关联:对象之间所存在的联系7.2 模型对象模型:

13、即寻找问题域中的对象,从对象中抽象出类的定义,识别对象的部特征,定义属性,识别对象的外部关系,识别主题.动态模型:即建立交互图、状态图和活动图,进一步定义用例.功能模型:即用例分析,以用例对用户需求进行规化描述;为了更好地理解问题,人们常采用建立建立问题模型的方法.模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述.通常,模型由一组图示符号和组织这些符号的规那么组成.模型是一种思考工具,可以把知识规地表示出来.对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了减少复杂性.一旦建立起模型之后,就要经受用户和各个领域专家的严格审查.模型常常会经过

14、屡次必要的修改.用OO方法开发软件,通常需要建立3种形式的模型:对象模型-描述系统数据结构;动态模型-描述系统限制结构;功能模型-描述系统功能;这三种模型各自从不同的侧面反映软件系统的容,相互影响、相互制约,有机地结合在一起,全面地表达对目标系统的需求.对象模型表示静态的、结构化的系统的“数据性质.描述了系统的静态结构.面向对象方法强调围绕对象而不是功能来构造系统.对象模型为建立动态模型和功能模型,提供了实质性的框架.1997年11月,国际对象治理组织OMG批准把UML1.1作为基于面向对象技术的标准建模语言.通常,使用UML的类图来建立对象模型.在UML中术语“类的实际含义是,“一个类及属于

15、该类的对象状态模型表示瞬时的、行为化的系统的“限制性质,它规定了对象模型中的对象的合法变化序列.一旦建立起对象模型之后,就需要考察对象的动态行为.所有对象都具有自己的生命周期.状态,是对对象属性值的一种抽象.各对象之间相互触发就形成了一系列的状态变化.一个触发行为称作一个事件.对象对事件的响应,取决于接受该触发的对象当时所处的状态,响应包括改变自己的状态或者乂形成一个新的触发行为.状态有持续性,它占用一段时间间隔.状态与事件密不可分,一个事件隔开两个状态,一个状态隔开两个事件.事件表示时刻,状态表示时间间隔.UML中用状态图来描绘对象的状态、触发状态转换的事件及对象的行为.每个类的动态行为用一

16、状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型.动态模型是基于事件共享而互相关联的一组状态图的集合.功能模型表示变化的系统的“功能性质,它指明了系统应该“做什么,因此更直接地反映了用户对目标系统的需求.通常,功能模型由一组数据流图组成.在OO方法中,数据流图远不如在结构化方法中那样重要.但建立功能模型有助于开发人员更深入地理解问题域,改良和完善自己的设计.UML中提供的用例图也是进行需求分析和建立功能模型的强有力工具.UML中把用例图建立起来的系统模型称为用例模型.使用用例模型代替传统的功能说明,往往能够更好地获取用户需求,它所答复的问题是“系统应该为每个或每类用户做

17、什么.8 面向对象方法、UML:获取用户需求、画用例图、对象模型、UML中的关系1 .面向对象的方法1分析:包括问题描述、构建对象模型、构建动态模型、构建功能模型.最后得到的分析文档包括问题需求的述、对象模型、动态模型和功能模型.2系统设计:结合问题域的知识和目标系统的体系结构,将目标系统分解为子系统,标识山问题所规定的并发性,设计适当的限制机制组织子系统协调工作,然后选择数据治理的根本策略,考虑对边界条件的处理.最后得到的系统设计文档包括根本的系统体系结构和高层次的决策策略.3对象设计:以分析模型为根底,首先定义类,设计类属性及操作,为每个操作选择适宜的数据结构并定义算法,调整类结构以强化继

18、承性;然后创立对象,设计消息以补充对象关联;通过关联发现新的对象或交互条件时,修改类组织以优化对数据的访问,改善设计结构.最后得到的对象设计文档包括细化的对象模型、细化的动态模型和细化的功能模型.4实现:将设计转换为特定编程语言代码并在相应环境运行,同时保持可追踪性、灵活性和可扩展性.2 .UML:统模语言UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统产品的文档.UML描述了一个系统的静态结构和动态行为3 .获取用户需求1与用户进行充分沟通,了解用户对软件的需求;2识别对象集合及对象间的关系;3定义类包括属性和操作并建立类间的层次关系;4建立模型来表示对象

19、之间的关系及行为特性.4 .用例图:用例模型描述外部执行者所理解的系统功能.用例模型用于需求分析阶段,描述待开发系统的功能要求,帮助软件设计人员理解系统要做的工作,同时用例模型还可以为其他模型建立、结构设计、实现及测试工作等提供依据.一个用例模型是由假设干用例图组成的,进行用例建模的过程主要包括寻找执行者、寻找用例、描述用例、确定执行者和用例之间的关系等工作,其中寻找执行者和用例是用例建模的关键.5 .对象模型:对象模型表示静态的、结构化的系统的“数据性质.描述了系统的静态结构.面向对象方法强调围绕对象而不是功能来构造系统.对象模型为建立动态模型和功能模型,提供了实质性的框架.通常,使用UML

20、的类图来建立对象模型.在UML中术语“类的实际含义是,一个类及属于该类的对象6 .关系:依赖关联泛化实现9测试:黑盒、白盒设计测试用例9.1 白盒测试结构测试、逻辑驱动测试:9.1.1 语句覆盖:设计假设干个测试用例,使得被测试的程序中的每条可执行语句至少被执行一次9.1.2 判断覆盖:每个判断至少都获得一次“真值和“假值9.1.3 条件覆盖:每个判断中的条件可能的取值至少被执行一次9.1.4 判断与条件覆盖:每个判断的真假值分支至少被执行一遍,并且每个判断的条件的部判断式的真假值分支也要被执行一遍9.1.5 条件组合覆盖:程序中每个判断条件的部判断式的各种真假值组合可能都至少执行一遍9.1.

21、6 路径覆盖:覆盖程序中所有可能的路径9.1.7 六种逻辑覆盖从弱到强的排列顺序语句覆盖-玲判断覆盖-9条件覆盖-玲判断条件覆盖玲条件组合覆盖-少路径覆盖9.2 黑盒测试9.2.1 等价类划分:有效等价类和无效等价类9.2.2 边界值分析10软件工程治理:工程治理、五大过程、九大知识领域、工程三角形工程治理:是为完成一个预定的目标,而对任务和资源进行规划、组织和治理的程序工程三角形:时间:反映在工程方案中的工程完成所需时间.资金:即工程的预算,取决于资源的本钱,这些资源包括完成任务所需的人员、设备和材料.围:工程的目标和任务,以及完成这些目标和任务所需的工时.工程治理的五大过程:启动过程、方案

22、过程、实施过程、限制过程、收尾过程工程治理的九大知识领域:围治理、时间治理、本钱治理、质量治理、风险治理、人力资源治理、沟通治理、采购治理、综合治理11配置治理:配置治理、配置治理项、基线、里程碑配置治理:是一组追踪和限制活动,它们开始于软件工程开始时,结束于软件被淘汰之时.配置治理项:1.计算机程序-源代码和可执行程序2o描述计算机程序的文档-供技术人员或用户使用3.数据-程序包含的或在程序外的.每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等基线:是一组配置项,这些配置项不能被随便修改和变更.基线是软件生存期中各开发阶段末尾的特定点,又称里程碑.软件开发各阶段的基线:12结

23、构化方法与面向对象方法的比拟:根本思想;分阶段比拟1 .结构化方法:根本思想:可以概括为自顶向下、逐步求精,采用模块化技术和功能抽象将系统按功能分解为假设干模块,从而将复杂的系统分解成假设干易于限制和处理的子系统,子系统乂可分解为更小的子任务,最后的子任务都可以独立编写成子程序模块,模块部由顺序、选择、循环等根本限制结构组成.2 .面向对象方法根本思想:面向对象方法的出发点和根本原那么,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类熟悉世界、解决问题的方法与过程,将客观世界中的实体抽象为问题域中的对象.使用现实的概念抽象地思考问题,从而自然地解决问题,保证软件系统的稳定性

24、和可复用性以及良好的维护性.3 .两种方法的比拟:传统的结构化方法,是软件工程中最为成熟的方法.对于能够预先确定需求的系统的开发,采用结构化方法非常有效,但是对于需模糊的或随时间变化的系统开发这种方法不能适应.面向对象方法,对于需求不能预先确定的系统的开发,可采用面向对象方法结合,这样就能够结合面向对象方法所具有的稳定性好、可复用性好和可维护性好的特点.需求分析阶段:结构化方法:采用自顶向下功能分解的方法,强调逻辑功能而不是实现功能的具体方法,使用图形进行系统分析并表达分析的结果-数据流图,使用结构化分析方法获得的需求规格说明书由数据流图、数据词典及补充材料组成.面向对象方法:面向对象分析的关

25、键是识别出问题域中的对象,并分析它们之间的关系,最终建立起问题域的简洁、精确、可理解的正确模型.面向对象分析模型通常包括对象模型、动态模型和功能模型.对象模型是最重要、最根本、最核心的.设计阶段:结构化软件是功能的集合,通过模块调用实现系统.面向对象软件是事物的集合,通过对象及联系实现系统.结构化软件二过程+数据,以过程为中央.面向对象软件=数据+相应操作,以数据为中央.结构化软件采用顺序处理方式,由过程驱动限制;面向对象软件采用交互式、并行处理方式,由消息驱动限制;结构化方法的重点是设计;面向对象方法的重点是分析.结构化方法更适合数据类型比拟简单的软件工程的开发;面向对象方法更适合大型复杂的

26、软件工程的开发练习题:1 .看书上实例A,理解RUP过程2 .试讨论RUP过程的优缺点3 .RUP过程主要适用于何种工程?4 .用面向对象方法开发软件时与结构化方法开发软件时相比拟,软件的生命周期有何不同?这种差异带来了什么后果?5 .为什么说本田牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?6 .什么是对象?它与传统的数据有何区别?7 .试用面向对象分析方法设计下述程序:8 .在显示器屏幕上圆心坐标为100,100的位置画一个半径为40的圆,在圆心坐标为200,300的位置画一个半径为20的圆,在圆心坐标为400,150的位置画一条弧,起始角为30度,结束角度为120度,半径为50.9

27、 .思考题1、一个程序能够既正确乂不可靠吗?请解释你的答案.软件可靠性是程序在给定的时间间隔按规格说明书的规定成功地运行的概率.软件可靠性即包含正确性乂包含健壮性.即程序在正常环境下应能正确地完成预期功能,在意外环境下,也应能作出适当的响应.如果某程序在正常环境下可正常运行,在异常环境下不能作出适当的响应,那么该项程序就是既正确又不可靠思考题2、为什么在开发软件的过程中变化既是必要的乂是不可防止的?为什么必须进行配置管理?在软件开发过程中,下述原因会导致软件配置项发生变化,新的市场条件导致需求或业务规那么变化,客户的需求也会或多或少地发生变化.企业改组或业务缩减,引起工程优先级或软件工程队伍结

28、构变化,预算或进度限制,导致对目标系统的重新定义,发现了前期阶段的错误,必须加以改正.因此,在开发软件的过程中,变化既是必要的,乂是不可防止的.如果不能适当地限制和治理变化,势必造成混乱并产生许多严重的错误.软件配置治理是在软件的整个生命期治理变化的一组活动,可以认为软件配置治理是应用于整个软件生命期的软件质量保证活动,是专门用于治理变化的软件质量保证活动,软件配置治理的目标是使变化更正确且更容易被适应,在必须变化时减少所需花费的工作量,综上所述,进行配置治理是十分必要的3、某些软件工程师不同意“目前国外许多软件开发组织把60%以上的人力用于维护已有的软件的说法.他们争论说:“我并没有花费我的60%的时间去改正我所开发的程序中的错误.请问,你对上述争论有何看法?答:软件维护并非仅仅是改正程序中

温馨提示

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

评论

0/150

提交评论