软件工程复习资料 3.docx
- 文档编号:15344342
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:19
- 大小:221.80KB
软件工程复习资料 3.docx
《软件工程复习资料 3.docx》由会员分享,可在线阅读,更多相关《软件工程复习资料 3.docx(19页珍藏版)》请在冰点文库上搜索。
软件工程复习资料3
软件工程复习资料2014
软件概念:
是计算机系统中的一个重要组成部分,从系统工程的角度来看,它作为系统元素,与计算机硬件、人、数据库、过程等共同构成计算机系统。
它由两部分组成,计算机程序及其相关文档。
其中,计算机程序是按事先设汁的功能和性能要求执行的指令序列,文档是与程序开发、维护和使用有关的图文资料,它又可以分为系统文档,用户文档和web站点。
系统文档用于描述系统的结构,用户文档针对软件产品解释如何使用系统,web站点用于下载系统信息。
软件也是用户与硬件之间的接口。
软件危机:
软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。
主要体现在软件开发进度无法预测,成本增长无法控制,软件可靠性没有保证,软件维护费用大幅上升,开发人员无限增多,软件产品无法满足用户的要求。
解决办法:
采用先进的开发技术和方法;使用好的软件开发工具,提高软件生产率,有良好的组织,严密的管理,各类人员相互配合共同完成任务。
总之,消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
原因:
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
(6)开发工具落后,生产率提高缓慢。
软件的发展阶段:
a.程序设计阶段(1946~1956)b.程序系统阶段(1956~1968)c.软件工程阶段(1968年以来)。
软件工程定义:
应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义开发发布和维护的工程或进行研究的学科。
是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念原理技术和方法进行软件的开发与维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。
软件工程的框架:
可用一个三元组刻画,即SE=(G,P,Q),其中SE表示软件工程,G为目标,P为原则,Q为活动。
目标:
生产具有正确性,可用性,开销适宜的产品。
活动:
需求分析,设计,实现,V&V(验证与确认),支持。
原则:
选取适宜的开发范型,采用合适的设计方法,提供高质量的工具支持,重视开发过程的管理(工程管理)。
软件的生存周期:
是软件产品的一系列相关活动的整个生命期,即从形成概念开始,经过开发,交付使用,在使用中不断修改和演进,直到最终被废弃,让位于新的软件产品位置的整个时期。
三个时期的基本任务:
软件定义(任务:
问题定义与可行性研究;需求分析)、软件开发(软件设计{是技术核心,分为概要设计和详细设计};程序编码与单元测试;综合测试)、运行维护(软件维护:
使软件持久地满足用户的需要)。
瀑布模型:
定义:
规定了这些活动,并且规定了这些活动按自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
基本活动:
需求分析与定义;系统与软件设计;实现和单元测试;集成和系统测试;运行和维护。
特点:
阶段间具有顺序性和依赖性:
①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。
缺点:
各个阶段的划分固定,缺乏灵活性,阶段之间产生大量的文档,极大地增加了工作量;由于开发模型基本是线性的,用户只有等到过程的末期才能见到开花结果,从而增加了开发的风险;早期的错误可能要等到开发后期的测试阶段才能发现,今儿带来严重的后果。
快速原型模型:
定义(基本思想):
基于快速开发一个满足构想的模型的想法提出来的。
先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
优点:
可以满足客户直接的要求,可以增量式地开发出需求规格说明,有较大的灵活性,适合软件需求不明确,设计方案有一定风险的软件项目。
缺点:
过程不可见,系统常常构造的不合理,可能要求特殊的工具和技术。
类型:
演进开发和废弃原型。
计算机系统的系统元素:
软件(计算机程序、数据结构、相关文档)、硬件(电子计算设备和外部机电设备)人(硬件和软件的用户)数据库(一个大型的有组织的信息集合)文档(手册、表格和其它用以描述系统使用和操作的信息)过程(定义每一种系统元素的特定使用步骤,或系统驻留的过程性环境)系统(中心)
SCD环境图:
定义:
确定了系统所使用信息的所有外部生产者,系统所生产信息的所有外部消费者,所有通过接口交流或者执行维护和自检的实体。
什么是需求分析:
指开发人员要准确地理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程。
该阶段的基本任务:
⑴问题识别⑵分析与综合,导出软件的逻辑模型⑶编写文档
软件需求层次:
1.业务需求:
反映了组织或客户高层次的目标要求,描述了组织的愿景。
2.用户需求:
描述了要求系统必须完成的任务,即用户对系统的目标要求,一般采用自然语言和直观图形相结合的方式描述。
例如采用用例、文档或场景、等方式说明。
3.功能需求和非功能需求:
功能需求定义了开发者应提供的软件功能或服务,但不涉及这些功能或服务的实现。
非功能需求则是对功能需求的补充,包括了对系统的各种限制和用户对系统的质量要求。
4.系统需求:
来自于系统分析和结构设计。
充分描述了软件系统应具有的外部行为。
各种需求的关系:
所有的用户需求必须与业务需求一致。
功能需求必须从用户需求中提取,以满足用户对产品的要求从而完成其任务。
开发人员应根据功能需求来设计软件以实现必须的功能。
功能需求从外部(用户角度)描述了软件系统所应具有的行为。
对一个复杂产品来说,软件功能需求也许只是系统需求的一个子集。
非功能需求作为功能需求的补充,包括产品必须遵从的标准、规范和合约;外部接口的具体细节;性能要求;设计或实现的约束条件及质量属性。
约束是指在软件产品设计和构造上的限制。
质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。
多角度描述产品对用户和开发者都极为重要。
软件设计的目标:
软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
准则:
性能准则(包括对系统速度和空间的需求,例如:
响应时间,吞吐量,内存)。
可靠性准则(决定了对减少系统崩溃及随后所造成危害所做的努力程度。
有健壮性,可靠性,可用性,容错性,保密性,安全性)成本准则、维护准则、最终用户准则。
任务:
是基于需求分析的结果建立各种设计模型,给出问题解决的方案。
它将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到实现之间起到了桥梁作用。
概念:
软件设计包括一套原理,概念和实践,可以指导高质量的系统或产品开发。
为程序正确提供了必要的框架。
软件设计的阶段和任务:
从工程管理的角度,可以将软件设计分为两个阶段:
概要设计阶段(概念:
把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。
称为概要设计或结构设计。
任务:
将需求转化为数据结构和软件的系统结构,要完成体系结构设计,数据设计及接口设计)和详细设计阶段(要完成过程设计,是通过对结构表示进行细化,得到软件详细的数据结构和算法)。
从技术的角度,采用的方法不同会有所不同:
传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计及过程设计四部分;面向对象方法则将软件设计划分为体系结构设计、类设计∕数据设计、接口设计、构件级设计四部分。
创建良好设计的原则:
1.分而治之:
将大型复杂的问题分解为许多容易解决的小问题。
(例:
软件的体系结构设计和模块化设计)2.模块化:
将程序划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责(面向对象中,对象是模块;结构化方法中,模块是过程、函数和子程序)3.模块独立性(好的话是高内聚低耦合):
概念:
模块化,抽象,逐步求精和信息隐藏等概念的直接结果,也是完成有效模块设计得基本标准。
软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。
3.1一般用两个准则独立模块独立性,模块之间的耦合(模块之间相互连接的紧密程度的度量,之间的连接越紧密,联系越多,耦合性就越高,模块独立性就越弱)和模块的内聚(模块内部各个元素彼此结合的紧密程度的度量,模块内部各个元素之间的联系越紧密,则它的内聚性越高,相对地,他与其他模块间的耦合性就会降低,模块独立性就越强)
模块类型与模块独立性间关系(耦合性紧密到松散):
内容耦合,公共耦合,控制耦合,标记耦合,数据耦合,例程调用耦合,类型使用耦合,包含/引入耦合,外部耦合
内聚类型与模块独立性间关系(内聚性高到低):
功能内聚,层内聚,通信内聚,顺序内聚,过程内聚,时间内聚,实用程序内聚。
接口设计:
系统的接口设计包括用户界面设计及系统的接口设计,是由穿越边界的数据流定义的,包括三方面内容:
模块或软件构件之间的接口设计;软件与其他软硬件系统之间的接口设计;软件与人之间的交互设计。
处理过程设计:
要决定各个模块的功能及模型的实现算法,并精确地表达这些算法。
PAD图:
用结构化程序设计思想表现程序逻辑结构的图形工具,由程序流程图演化而来。
优点:
1.PAD所表达的程序,结构清晰且结构化程度高;2.PAD的执行顺序从最左主干线的上端的节点开始,自上而下依次执行;3.由于PAD的树形特点,使他比流程图更容易在计算机上处理。
HIPO图:
由可视目录表(给出系统的功能分层关系)和IPO图组成(为系统的各部分提供具体地工作细节)
数据字典:
关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
体系结构概念:
软件被分成许多模块,模块之间相互作用,组合起来就有了整体的属性,就具有了体系结构。
一个程序或计算机系统的软件体系结构是指系统的一个或者多个结构。
结构中包括软件的构件、构件的外部可见属性以及它们间的相互关系。
外部可见属性则是指软件构件提供的服务、性能、使用特性、错误处理、共享资源使用等。
基本单位是软件构件。
体系结构的结构风格:
定义一个词汇表和一组约束。
1.数据流风格:
例管道和过滤器结构。
2.调用―返回风格:
主程序∕子程序体系结构;面向对象风格;层次结构风格。
3.数据仓库风格:
如数据库系统,超文本系统,黑板系统。
结构化程序设计:
原则:
使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑;选用的控制结构只准许有一个入口和一个出口;程序语句组成容易识别的块(Block),每块只有一个入口和一个出口;复杂结构应该用基本控制结构进行组合嵌套来实现;语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致;严格控制GOTO语句,仅在下列情形才可使用:
用一个非结构化的编程语言去实现一个结构化的构造,在某种可以改善而不是损害程序可读性的情况下。
包括两个方面:
1.在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。
方法:
以自顶向下逐步求精的方式编写程序:
把模块功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种编程语言写成的程序。
用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易阅读和理解。
2.在编写程序时强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。
尽可能避免使用会使程序质量受到影响的GOTO语句。
方法:
使用基本控制结构构造程序
结构化设计方法的设计步骤:
①对DFD图进行复审,必要时修改或细化;②根据数据流图确定问题的类型,针对不同的类型分别进行分析处理;③由DFD映射成初始SC图;④改进SC图,直至得到符合要求的结构图。
软件测试的目的:
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求。
对一个软件系统,尤其是规模大、复杂性高的大型软件系统,虽经过了分析、设计和编程阶段但仍会存在错误。
为了保证软件系统的质量,就要对软件系统进行检验和测试。
软件测试手段有三类:
动态检查、静态检查和正确性证明
软件测试的定义:
使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程;是的重要子域。
软件测试的基本原则:
1)测试用例应该由以下两部分组成:
输入数据。
预期的输出结果。
2)不仅要选用合理的输入数据作为测试用例,还应选用不合理的输入数据作为测试用例。
3)除了检查程序是否做了它应做的工作之外,还应检查程序是否还做了它不应做的事情。
4)应该长期保留所有的测试用例,直至这个程序系统被废弃不用为止。
软件测试步骤:
说明这些步骤的测试对象是什么?
答:
(1)单元测试,测试对象为单元模块
(2)集成测试,测试对象为组装后的程序模块(3)确认测试,测试对象为可运行的目标软件系统(4)最后一步是系统测试,检查软件与系统中其他元素是否协调
错误分类:
1.按错误的影响和后果分类:
微小错误,一般错误,较严重错误、严重错误,非常严重的错误,最严重的错误。
2.按错误的性质和范围分类:
功能错误、系统错误、加工错误、数据错误、代码错误。
3.按软件生存周期阶段分类:
需求错误、功能与性能~、程序结构~、数据错误、实现和编码错误、集成错误、系统结构错误、测试定义与测试执行错误。
单元测试定义:
是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作
,是在模块源程序代码编写完成之后进行的测试。
对于传统的结构化程序而言,程序单元是指程序中定义的函数或子程序,单元测试就是对函数或予程序进行的测试。
对于面向对象的程序而言,程序单元是指特定的一个具体的类或相关的多个类,单元测试是对类的测试;但有时候,在一个类特别复杂时,就会把方法作为一个单元进行测试。
目的:
验证代码是与设计相符合的;跟踪需求和设计的实现;发现设计和需求中存在的缺陷;发现在编码过程中引入的错误。
步骤:
人工检查和动态执行跟踪。
人工检查主要是保证代码算法的逻辑正确性、清晰性、规范性、一致性、算法高效性,并尽可能地发现程序中没有发现的错误。
动态执行跟踪就是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。
环境:
由于一个模块或一个方法并不是一个独立的程序,考虑测试时要同时考虑它和外界的联系,因此要用到一些辅助模块,来模拟与被测模块相联系的其他模块。
这些被测试模块和与它相关的驱动模块及桩模块共同构成了测试环境。
单元测试的基本内容:
测试构造软件系统的模块(对象和子系统)1、模块接口:
主要检查数据能否正确通过模块;属性及对应关系是否一致。
2、局部数据结构:
说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼写错误;数据类型不相容;上溢下溢或地址错误等3、重要的执行路径:
重要模块要进行基本路径测试,仔细地选择测试路径是单元测试的一项基本任务。
4、错误处理:
主要测试程序对错误处理的能力,应检查是否不能正确处理外部输入错误或内部处理引起的错误;对发生的错误不能正确描述的内容,难以理解;在错误处理之前,系统已经进行干预。
5、边界条件:
程序最容易在边界上出错,如输入输出数据的等价类边界,选择条件和循环条件的边界,复杂数据结构的边界等都应进行测试
单元测试策略:
1.自顶向下的单元测试策略:
从最顶层的单元开始,把顶层调用的单元用桩模块代替,对顶层模块做单元测试。
对下一层单元进行测试时,使用上面已测试的单元做驱动模块,并为被测模块编写新的桩模块。
依次类推,直到全部单元测试结束。
优点是:
可以在集成测试之前为系统提供早期的集成途径。
缺点是:
单元测试被桩模块控制,随着单元测试的不断进行,测试过程也会变得越来越复杂。
2.自底向上的单元测试策略:
先对调用图的最底层单元进行测试,使用驱动模块来代替调用它的上层单元。
对上一层单元进行测试时,用已经被测试过的模块做桩模块,并为被测单元编写新的驱动模块。
依次类推,直到全部单元测试结束。
优点是:
不需要单独设计桩模块;无需依赖结构设计,可以直接从功能设计中获取测试用例,可以为系统提供早期的集成途径。
缺点是:
自底向上的单元测试不能和详细设计、编码同步进行。
3.孤立测试:
分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。
优点是:
方法简单、易操作,能够达到高覆盖率。
各模块之间不存在依赖性,所以单元测试可以并行进行。
缺点是:
不能为集成测试提供早期的集成途径。
依赖结构设计信息,需要设计多个桩模块和驱动模块,增加了额外的测试成本。
4.综合测试:
单元测试分析:
目的是要根据可能的各种情况,确定测试内容。
要确认这段代码是否在任何情况下都和期望的一致。
1.模块接口测试(参数表、全局变量、文件)2.局部数据结构:
3.路径测试4.错误处理测试5.边界测试。
集成测试:
定义:
根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验的测试工作。
目的:
根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验的测试工作。
对于传统软件来说,按集成程度不同,可以把集成测试分为3个层次,即模块内集成测试;子系统内集成测试;子系统间集成测试。
对于面向对象的应用系统来说,按集成程度不同,可以把集成测试分为2个层次,即类内集成测试;类间集成测试。
环境:
硬件环境,操作系统~,数据库~,网络~,测试工具运行~,其他~
集成测试策略:
1,基于分解的集成方式(a.一次性集成方式,优点是只要极少数的驱动和桩模块;需要的测试用例最少;方法简单;多个测试人员可以并行工作,对人力、物力资源利用率较高。
缺点是一次试运行成功的可能性不大;错误定位和修改困难;有许多接口错误很容易躲过测试。
b.自顶向下的增量式集成:
优点是在增量式集成的过程中较早地验证了主要的控制和判断点;减少了驱动模块开发的费用;由于集成顺序和设计顺序一致,可以和设计并行进行;支持故障隔离。
缺点是建立桩模块的成本较高;底层构件中的一个无法预计的需求可能会导致许多顶层构件的修改;底层构件行为的验证被推迟了;随着底层模块的不断增加,整个系统越来越复杂,导致底层模块的测试不充分,尤其是那些被复用的模块。
c.自底向上的增量式集成:
优点是对底层模块的行为能够早期验证;可以并行进行测试和集成,驱动模块的编写工作量远比桩模块的编写工作量小;支持故障隔离。
缺点是对高层的验证被推迟到了最后,设计上的错误不能被及时发现;对于底层的一些异常很难覆盖。
d.优点是集合了由顶向下和自底向上的两种集成策略的优点,且对中间层能够尽早进行比较充分的测试;而且该策略的并行度比较高。
缺点是中间层如果选取不恰当,可能会有比较大的驱动模块和桩模块的工作量。
)2、基于层次的集成:
适用范围:
有明显线性层次关系的软件系统。
3.基于路径的集成:
集成测试分析:
1、体系结构分析:
1).跟踪需求分析:
从需求的跟踪实现出发,划分出系统实现上的结构层次图。
2)对系统各个构件之间的依赖关系进行分析,然后据此确定集成测试的模块的大小。
2、模块分析:
3、接口分析:
集成测试的重点是测试接口的功能性、可靠性、安全性、完整性、稳定性等多个方面。
接口的划分,接口的分类,接口数据分析。
4、集成测试策略的分析:
主要根据被测对象选择合适的集成策略。
测试用例的重要性:
测试用例是测试人员执行测试的重要参考依据。
良好的测试用例具有复用的功能,在测试过程中可以重复使用。
测试用例是在长期测试实践中积累起来的,组织好这些测试用例,可帮助测试者有效使用它们。
测试用例的通过率是检验程序代码质量的例证,衡量程序代码的质量,量化的标准应该是测试用例的通过率和软件缺陷(bug)的数目。
测试用例也是检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的因素。
黑盒测试(叫做功能测试或数据驱动测试或基于规格说明的测试):
定义:
根据产品的外部功能来规划测试,检查程序各个功能是否实现,主要的质量属性是否达到要求,其中有无错误。
白盒测试:
定义:
基于产品内部结构来规划测试,检查程序内部操作是否按规定运行,各部分代码是否被充分覆盖。
方法:
把测试对象看做一个玻璃盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
主要想对程序模块进行如下的检查:
1)路径覆盖测试:
对程序模块的独立的执行路径尽可能多的执行测试;2)逻辑覆盖测试:
对所有的逻辑判定,取“真”与取“假”的两种情况尽可能多地执行测试;3)控制流测试:
在循环的边界和运行界限内执行循环体检查循环的执行状态;4)数据流测试、领域测试:
测试内部数据结构的有效性。
白盒测试用例设计方法——逻辑覆盖有语句覆盖(设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
)、判定覆盖(设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
)、条件覆盖、判定/条件覆盖、条件组合覆盖及路径覆盖。
软件工程为什么要强调规范化和文档化?
规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。
文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。
另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。
在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
结构化分析的主要步骤:
根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。
以初始数据流程图为基础,从数据流程图的输出端开始回溯。
在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。
对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。
系统分析人员与用户一起对需求分析的结果进行复查。
根据细化的需求修订开发计划。
编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。
数据流图:
是描绘信息和数据从输入移动到输出的过程中所经受的变换。
反映了数据在软件中流动和被处理的逻辑过程。
数据流图是系统逻辑功能的图形表示,是一种极好的通信工具。
包括的条目:
数据流词条,数据元素词条,数据存储词条,数据加工处理词条,数据源点及终点词条。
组成:
外部实体(外部实体是指系统之外的人或单位,它们和本系统有信息传递关系)数据流,处理、数据存储。
内聚性和耦合性的类别。
作用:
数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
需求工程包括哪些基本活动?
各项基本活动的主要任务是什么?
主要活动:
⑴获取需求。
深入实际,在充分理解用户需求的基础上,获取足够多的问题领域的知识,积极与用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求。
需求获取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等。
⑵需求分析与建模。
对已获取的需求进行分析和提炼,进行抽象描述,建立目标系统的概念模型,需求概念模型的要求包括实现的独立性:
不模拟数据的表示和内部组织等;需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟等。
进一步对所建立的模型(原型)进行分析。
需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。
⑶需求规格说明。
对需求模型进行精确的、形式化的描述,为计算机系统的实现提供基础。
⑷确认需求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程复习资料 软件工程 复习资料