新版软件工程复习资料

上传人:公**** 文档编号:459176239 上传时间:2022-10-17 格式:DOC 页数:19 大小:237.04KB
返回 下载 相关 举报
新版软件工程复习资料_第1页
第1页 / 共19页
新版软件工程复习资料_第2页
第2页 / 共19页
新版软件工程复习资料_第3页
第3页 / 共19页
新版软件工程复习资料_第4页
第4页 / 共19页
新版软件工程复习资料_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《新版软件工程复习资料》由会员分享,可在线阅读,更多相关《新版软件工程复习资料(19页珍藏版)》请在金锄头文库上搜索。

1、软件工程复习资料2023软件概念:是计算机系统中的一个重要组成部分,从系统工程的角度来看,它作为系统元素,与计算机硬件、人、数据库、过程等共同构成计算机系统。它由两部分组成,计算机程序及其相关文档。其中,计算机程序是按事先设汁的功能和性能规定执行的指令序列,文档是与程序开发、维护和使用有关的图文资料,它又可以分为系统文档,用户文档和web站点。系统文档用于描述系统的结构,用户文档针对软件产品解释如何使用系统,web站点用于下载系统信息。软件也是用户与硬件之间的接口。软件危机:软件危机是指软件在开发和维护过程中碰到的一系统严重问题,重要包含二方面的问题,一是如何开发运用软件,二是如何维护数量不断

2、膨胀的已有软件。重要体现在软件开发进度无法预测,成本增长无法控制,软件可靠性没有保证,软件维护费用大幅上升,开发人员无限增多,软件产品无法满足用户的规定。解决办法:采用先进的开发技术和方法;使用好的软件开发工具,提高软件生产率,有良好的组织,严密的管理,各类人员互相配合共同完毕任务。总之,消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。因素:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增长。(4)软件开发技术落后。(5)生产方式落后。(6)开发

3、工具落后,生产率提高缓慢。软件的发展阶段:a.程序设计阶段(19461956)b.程序系统阶段(19561968)c.软件工程阶段(1968年以来)。软件工程定义:应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户规定的软件产品的定义开发发布和维护的工程或进行研究的学科。是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念原理技术和方法进行软件的开发与维护,把通过时间考验而证明是对的的管理技术和当前可以得到的最佳的技术方法结合起来,以较少的代价获得高质量的软件并维护它。软件工程的框架:可用一个三元组刻画,即SE=(G,P,Q)

4、,其中SE表达软件工程,G为目的,P为原则,Q为活动。目的:生产具有对的性,可用性,开销适宜的产品。活动:需求分析,设计,实现,V&V(验证与确认),支持。原则:选取适宜的开发范型,采用合适的设计方法,提供高质量的工具支持,重视开发过程的管理(工程管理)。软件的生存周期:是软件产品的一系列相关活动的整个生命期,即从形成概念开始,通过开发,交付使用,在使用中不断修改和演进,直到最终被废弃,让位于新的软件产品位置的整个时期。三个时期的基本任务:软件定义(任务:问题定义与可行性研究;需求分析)、软件开发(软件设计是技术核心,分为概要设计和具体设计;程序编码与单元测试;综合测试)、运营维护(软件维护:

5、使软件持久地满足用户的需要)。瀑布模型:定义:规定了这些活动,并且规定了这些活动按自上而下,互相衔接的固定顺序,如同瀑布流水,逐级下落。基本活动:需求分析与定义;系统与软件设计;实现和单元测试;集成和系统测试;运营和维护。特点:阶段间具有顺序性和依赖性:必须等前一阶段的工作完毕之后,才干开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档对的,后一阶段的工作才干获得对的的结果。缺陷:各个阶段的划分固定,缺少灵活性,阶段之间产生大量的文档,极大地增长了工作量;由于开发模型基本是线性的,用户只有等到过程的末期才干见到开花结果,从而增长了开发的风险;初期的错误也

6、许要等到开发后期的测试阶段才干发现,今儿带来严重的后果。快速原型模型:定义(基本思想):基于快速开发一个满足构想的模型的想法提出来的。先开发一个“原型”软件,完毕部分重要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。优点:可以满足客户直接的规定,可以增量式地开发出需求规格说明,有较大的灵活性,适合软件需求不明确,设计方案有一定风险的软件项目。缺陷:过程不可见,系统经常构造的不合理,也许规定特殊的工具和技术。类型:演进开发和废弃原型。计算机系统的系统元素:软件(计算机程序、数据结构、相关文档)、硬件(电子计算设备和外部机电设备)人(硬件和软件的用户)数据库(一个大型的有组织的

7、信息集合)文档(手册、表格和其它用以描述系统使用和操作的信息)过程(定义每一种系统元素的特定使用环节,或系统驻留的过程性环境)系统(中心)SCD环境图:定义:拟定了系统所使用信息的所有外部生产者,系统所生产信息的所有外部消费者,所有通过接口交流或者执行维护和自检的实体。什么是需求分析:指开发人员要准确地理解用户的规定,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程。该阶段的基本任务:问题辨认分析与综合,导出软件的逻辑模型编写文档软件需求层次:1.业务需求:反映了组织或客户高层次的目的规定,描述了组织的愿景。

8、2.用户需求:描述了规定系统必须完毕的任务,即用户对系统的目的规定,一般采用自然语言和直观图形相结合的方式描述。例如采用用例、文档或场景、等方式说明。3.功能需求和非功能需求:功能需求定义了开发者应提供的软件功能或服务,但不涉及这些功能或服务的实现。非功能需求则是对功能需求的补充,涉及了对系统的各种限制和用户对系统的质量规定。4.系统需求:来自于系统分析和结构设计。充足描述了软件系统应具有的外部行为。各种需求的关系:所有的用户需求必须与业务需求一致。功能需求必须从用户需求中提取,以满足用户对产品的规定从而完毕其任务。开发人员应根据功能需求来设计软件以实现必须的功能。功能需求从外部(用户角度)描

9、述了软件系统所应具有的行为。 对一个复杂产品来说,软件功能需求也许只是系统需求的一个子集。非功能需求作为功能需求的补充,涉及产品必须遵从的标准、规范和合约;外部接口的具体细节;性能规定;设计或实现的约束条件及质量属性。约束是指在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发者都极为重要。软件设计的目的:软件设计的基本目的是用比较抽象概括的方式拟定目的系统如何完毕预定的任务,即软件设计是拟定系统的物理模型。准则:性能准则(涉及对系统速度和空间的需求,例如:响应时间,吞吐量,内存)。可靠性准则(决定了对减少系统崩溃及随后所导致危

10、害所做的努力限度。有健壮性,可靠性,可用性,容错性,保密性,安全性)成本准则、维护准则、最终用户准则。任务:是基于需求分析的结果建立各种设计模型,给出问题解决的方案。它将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到实现之间起到了桥梁作用。概念:软件设计涉及一套原理,概念和实践,可以指导高质量的系统或产品开发。为程序对的提供了必要的框架。软件设计的阶段和任务:从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段(概念:把一个软件需求转换为软件表达时,一方面设计出软件总的体系结构。称为概要设计或结构设计。任务:将需求转化为数据结构和软件的系统结构,要完毕体系结构设计,数据设计及接

11、口设计)和具体设计阶段(要完毕过程设计,是通过对结构表达进行细化,得到软件具体的数据结构和算法)。从技术的角度,采用的方法不同会有所不同:传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计及过程设计四部分;面向对象方法则将软件设计划分为体系结构设计、类设计数据设计、接口设计、构件级设计四部分。 创建良好设计的原则:1.分而治之:将大型复杂的问题分解为许多容易解决的小问题。(例:软件的体系结构设计和模块化设计)2.模块化:将程序划提成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责(面向对象中,对象是模块;结构化方法中,模块是过程、函数和子程序)3.模块独立性(好的话

12、是高内聚低耦合):概念:模块化,抽象,逐步求精和信息隐藏等概念的直接结果,也是完毕有效模块设计得基本标准。软件系统中每个模块只涉及软件规定的具体的子功能,而和软件系统中其他模块的接口是简朴的。3.1一般用两个准则独立模块独立性,模块之间的耦合(模块之间互相连接的紧密限度的度量,之间的连接越紧密,联系越多,耦合性就越高,模块独立性就越弱)和模块的内聚(模块内部各个元素彼此结合的紧密限度的度量,模块内部各个元素之间的联系越紧密,则它的内聚性越高,相对地,他与其他模块间的耦合性就会减少,模块独立性就越强)模块类型与模块独立性间关系(耦合性紧密到松散):内容耦合,公共耦合,控制耦合,标记耦合,数据耦合

13、,例程调用耦合,类型使用耦合,包含/引入耦合,外部耦合内聚类型与模块独立性间关系(内聚性高到低):功能内聚,层内聚,通信内聚,顺序内聚,过程内聚,时间内聚,实用程序内聚。接口设计:系统的接口设计涉及用户界面设计及系统的接口设计,是由穿越边界的数据流定义的,涉及三方面内容:模块或软件构件之间的接口设计;软件与其他软硬件系统之间的接口设计;软件与人之间的交互设计。解决过程设计:要决定各个模块的功能及模型的实现算法,并精确地表达这些算法。PAD图:用结构化程序设计思想表现程序逻辑结构的图形工具,由程序流程图演化而来。优点:1.PAD所表达的程序,结构清楚且结构化限度高;2.PAD的执行顺序从最左主干

14、线的上端的节点开始,自上而下依次执行;3.由于PAD的树形特点,使他比流程图更容易在计算机上解决。HIPO图:由可视目录表(给出系统的功能分层关系)和IPO图组成(为系统的各部分提供具体地工作细节)数据字典:关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。体系结构概念:软件被提成许多模块,模块之间互相作用,组合起来就有了整体的属性,就具有了体系结构。一个程序或计算机系统的软件体系结构是指系统的一个或者多个结构。结构中涉及软件的构件、构件的外部可见属性以及它们间的互相关系。外部可见属性则是指软件构件提供的服务、性能、使用特性、错误解决、共享资源使用等。基本单位是软件构件。体系

15、结构的结构风格:定义一个词汇表和一组约束。1.数据流风格:例管道和过滤器结构。2.调用返回风格:主程序子程序体系结构 ;面向对象风格;层次结构风格。3.数据仓库风格:如数据库系统,超文本系统,黑板系统。结构化程序设计:原则:使用语言中的顺序、选择、反复等有限的基本控制结构表达程序逻辑;选用的控制结构只准许有一个入口和一个出口;程序语句组成容易辨认的块(Block),每块只有一个入口和一个出口;复杂结构应当用基本控制结构进行组合嵌套来实现;语言中没有的控制结构,可用一段等价的程序段模拟, 但规定该程序段在整个系统中应前后一致;严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的编程语言去

16、实现一个结构化的构造,在某种可以改善而不是损害程序可读性的情况下。涉及两个方面:1.在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。方法:以自顶向下逐步求精的方式编写程序:把模块功能逐步分解,细化为一系列具体的环节,进而翻译成一系列用某种编程语言写成的程序。用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清楚的层次结构,程序容易阅读和理解。2.在编写程序时强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽也许避免使用会使程序质量受到影响的GOTO语句。方法:使用基本控制结构构造程序 结构化设计方法的设计环节:对DFD图进行复审,必要时修改或细化;根据数据流图拟定问题的类型,针对不同的类型分别进行分析解决;由DFD映射成初始SC图;改善SC图,直至得到符合规定的结构图。软件测试的目的:从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号