河北工业大学软件工程期末复习
- 格式:doc
- 大小:949.00 KB
- 文档页数:16
《软件工程》期末考试试题一、填空题(10分,每空1分)1.1实体联系(ER)图的基本要素为、和。
1.2一个软件模块完成的功能越单一,其越强,模块的独立性就越。
1.3软件测试技术主要包括白盒测试和黑盒测试技术。
其中,在白盒测试中,主要的方法有、和等。
在黑盒测试中,主要的方法有和。
二、选择题(20分,每题2分)2.1与计算机科学的理论研究不同,软件工程是一门学科。
A. 理论性B. 工程性C. 原理性D. 艺术性2.2 是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A. 软件过程B. 软件工具C. 软件产品D. 软件工程2.3 软件开发的螺旋模型是。
A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 可以很好的和客户沟通需求D. 可以很好的处理风险2.4 在各种不同的软件需求中,是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
A. 业务需求B. 功能需求C. 非功能需求D. 用户需求2.5状态-迁移图。
A. 描述了数据对象之间的关系B. 描述了转换数据流的功能C. 描述了现实世界实体之间交换的事件序列D. 在单个模型中描述一组事件踪迹2.6开发人员使用可以将用例的行为分配到所识别的分析类中。
A. 用例图B. 顺序图C. 类图D. 状态图2.7 对每个模块内部采用的数据结构和算法进行设计。
A. 概要设计B. 数据库设计C. 详细设计设计D. 用户界面设计2.8 投资回报率(ROI) 用来度量。
A. 产品的质量B. 过程的质量C. 商业环境下的质量D. 以上均不对2.9 以下四种耦合中,程度最低的是。
A. 数据B. 标记C. 控制D. 公共2.10下列UML类图表示的是设计模式。
A. 备忘录B. 策略C. 状态D.观察者三、判断题(20分,每题2分)3.1 软件不能按时交付,软件质量低是软件危机的两个重要体现。
软件测试的重点第一章P4 软件缺陷:它是计算机系统或者程序中存在的任何一种破坏正常运行能力的问题,错误,或者隐藏的功能缺陷,瑕疵。
注:软件缺陷出现最多的阶段是需求规格说明书。
P9软件测试的定义:软件测试为了发现程序中的错误而执行程序的过程。
{软件测试的目的:就在于在软件投入运行之前,尽可能多地发现软件中的错误。
===测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。
}实现此目的的核心是测试用例的设计。
判断软件测试的成功与失败:一个好的测试用例在于发现还未曾发现的错误,成功的测试是发现了错误的测试。
软件测试的目标是为了检验软件系统是否满足用户的需求。
调试和测试的区别:首先调试是由程序员编试的,且调试是在测试之前。
/////调试是一个随机的、不可重复的过程,目的是寻找错误的原因和具体的位置,并修复错误。
调试一般在测试前进行。
4.优秀的软件测试员应具备的素质:1 软件测试人员是群探索者。
2 软件测试人员是故障排除员。
3 软件测试人员不放过任何蛛丝马迹。
4 软件测试人员具有创造性。
5 软件测试人员是群追求完美者。
6人员判断准确。
7 软件测试人员注重策略和外交。
8 软件测试人员善于说服。
5. P12软件测试的分类:1.从是否需要执行被测软件的角度(程序是否运行的角度):软件测试可分为静态测试和动态测试。
其中静态测试可分为(1)代码检查法(2)静态结构分析法(3)代码度量质量法其中动态测试分为(1)黑盒测试和白盒测试###二者的区别: 静态测试不实际执行程序,而是利用人工手段及静态测试工具完成对程序的静态测试。
主要目的是检查软件的表示与描述是否一致,没有冲突和歧义。
而动态测试则是实际运行测试用例,以发现软件中的错误。
### 静态测试和动态测试的时序关系:一般可先进行静态测试,即代码检查法、静态结构分析法、代码质量度量法等进行测试;然后进行动态测试,即逻辑覆盖法、基本路径测试法、程序插桩等进行测试。
2022年河北工业大学软件工程专业《计算机系统结构》科目期末试卷B(有答案)一、选择题1、Cache存贮器常用的地址映象方式是( )。
A.全相联映象B.页表法映象C.组相联映象D.段页表映象2、CRAY-I的流水线是( )A.多条单功能流水线B.一条单功能流水线C.多条多功能流水线D.一条多功能流水线3、最能确保提高虚拟存贮器访主存的命中率的改进途径是( )A.增大辅存容量B.采用FIFO替换算法并增大页面C.改用LRU替换算法并增大页面D.改用LRU替换算法并增大页面数4、若输入流水线的指令既无局部性相关,也不存在全局性相关,则()。
A.可获得高的吞吐率和效率B.流水线的效率和吞吐率恶化C.出现瓶颈D.可靠性提高5、从计算机系统结构上讲,机器语言程序员所看到的机器属性是( )。
A.计算机软件所要完成的功能B.计算机硬件的全部组成C.编程要用到的硬件组织D.计算机各部件的硬件实现6、属计算机系统结构考虑的是()A.主存采用MOS还是TTLB.主存采用多体交叉还是单体C.主存容量和编址方式D.主存频宽的确定7、输入输出系统硬件的功能对()是透明的。
A.操作系统程序员B.应用程序员C.系统结构设计人员D.机器语言程序设计员8、在操作系统机器级,一般用()程序()作业控制语句。
A.汇编程序,翻译B.汇编程序,解释C.机器语言,解释D.机器语言,翻译9、推出系列机的新机器,不能更改的是( )A.原有指令的寻址方式和操作码B.系统总线的组成C.数据通路宽度D.存贮芯片的集成度10、IBM360/91对指令中断的处理方法是()A.不精确断点法B.精确断点法C.指令复执法D.对流水线重新调度二、填空题11、段式存储管理是指________,为此每道程序在系统中都有一个________12、软件和硬件成本由________和________组成。
13、寻径的基本原则是:________或________14、Cache存贮器采用组相联的映象规则是组间________映象,组内各块间________映象。
一、填空题(每空1分, 共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件旳功能进行划分, 软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究重要集中在如下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.顾客界面旳可使用性是顾客界面设计最重要旳也是最基本旳目旳。
5.常见旳软件概要设计措施有3大类: 以数据流图为基础构造模块构造旳___构造化设计措施_________, 以数据构造为基础构造模块旳__jackson措施__________, 以对象、类、继承和通信为基础旳__面向对象设计措施__________。
6.__数据流图________和__数据字典___共同构成系统旳逻辑模型。
7.软件测试旳措施有__分析措施________和___非分析措施_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主, ___黑盒______测试为辅。
9.成本估计措施重要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
二、单项选择题(每题2分, 共10分)1.下列哪个阶段不属于软件生存周期旳三大阶段( C )。
A.计划阶段B.开发阶段2. C.编码阶段 D.维护阶段3.需求分析是(A )。
A. 软件开发工作旳基础B. 软件生存周期旳开始C. 由系统分析员单独完毕旳D. 由顾客自己单独完毕旳原型化措施是软件开发中一类常用旳措施, 它与构造化措施相比较, 更需要( B )。
A. 明确旳需求定义B.完整旳生命周期C、较长旳开发时间D、纯熟旳开发人员软件维护时, 对测试阶段未发现旳错误进行测试、诊断、定位、纠错, 直至修改旳回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、防止性维护一般说来, 投入运行旳软件系统中有错误(A )。
1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
7.维护时期的主要任务是使软件持久地满足用户的需要。
8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。
9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。
a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。
①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
c)质量保证的观点:软件工程的基本目标是优质、高产。
为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。
每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
页眉软件工程试题A卷:一、填空题(每空2分,20空,共40分)1.软件定义时期包括两个阶段,它们是“1】可行性研究)和(【2】需求分析)两个阶段。
2.数据流图有“3】4)种基本符号,数据流图中,箭头表示“4】数据流)。
3.数据流图有变换型结构和“5】事务)型结构两种类型。
4. 4个人之间的通信量是“6】6)5.评定模块的独立性的标准是耦合和内聚。
“7】耦合)是对软件内部块间联系的度量,按照由弱到强的顺序,可以把它分为“8】7)类。
其中,最弱的是“9】非直接耦合),最强的是“10】内容耦合)6.程序结构的复杂性度量值V(G)取决于程序控制流的复杂程度。
顺序结构的V(G)值为“11】1),选择结构的为“12】2)。
7.在模块结构图中,“13】扇入)是指直接调用该模块的模块数8.模块的独立性可用耦合和内聚的高低来评定,设计较好的模块要求“14】内聚)高、耦合“15】低)。
9.语句覆盖测试技术是“16】白盒测试)方法的一种10.等价类划分技术是属于“17】黑盒测试)方法的11.按维护的起因,可以将维护活动分为4类:“18】改正性维护)、“19】适应性维护)、完善性维护和预防性维护。
完善性维护占总维护量的“20】50%以上)。
二、名词解释(每题4分,5题,共20分)1.软件的可靠性:是指在给定的时间间隔内,程序成功运行的概率。
2.内聚:标志一个模块内各个元素被此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
3.模块化:把一个程序划分成若干个模块,每个模块完成一个子功能,将这些模块组装成一个整体,即可完成该程序指定的功能。
4.改正(纠错)性维护:为改正软件系统中潜藏的错误而进行的活动5.对象:对象是客观世界事物和个体的抽象表示。
是它的属性和相关操作的统一封装体。
三、简述题(每题10分,4题,共40分)1.软件是什么?其特点有那些?答:软件(2分)是计算机程序及其说明程序的各种文档,软件=程序+文档(+数据)特点(8分,每个2分,答出4个即可)(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
河北⼯业⼤学软件⼯程期末复习软件⼯程期末复习总结第⼀讲概述(选择U填空U简答)1.1 软件⼯程的研究内容软件⼯程要考虑专业软件开发所需要的理论、⽅法和⼯具----⼯程技术问题软件⼯程要考虑如何有效的在软件开发中利⽤有限的成本资源----⼯程管理的问题1.2 什么是软件?软件包括:---软件的内涵①能够提供客户所需功能与性能的计算机程序;②使程序能够适当的操作信息的数据结构;③⽤以描述程序开发过程及使⽤的⽂档。
软件产品可以为⼀个特定的⽤户设计开发,也可以为某⼀类通⽤的市场设计开发。
软件产品可以分成:⼀个新的软件并不⼀定是全新开发,可以由现有软件或可复⽤软件成分配置形成。
1.3 什么是软件⼯程?软件⼯程是涉及软件⽣产各个⽅⾯的⼀门⼯程学科软件⼯程涉及软件⽣命周期的各个⽅⾯,从软件需求的确定到软件退役。
软件⼯程:(1)将系统化的、规范的、可度量的⽅法应⽤于软件的开发、运⾏和维护的过程,即将⼯程化应⽤于软件;(2)研究(1)中的⽅法.——IEEE[IEE93]1.4 什么是成功的软件项⽬⼀个成功软件项⽬的三个要素包括:按时交付不超预算满⾜⽤户要求。
1.5 软件过程与软件⽣命周期的相关概念软件过程是指开发或制作软件产品的⼀系列活动及其成果.所有的软件过程中都包括四个基本活动:(填空)1. 描述( Specification)- 系统应该提供的功能及其开发约束;2. 开发( Development)- 软件产品的⽣产过程;3. 有效性验证(Validation )- 检验软件产品是否满⾜了客户的需要;4. 进化( Evolution )- 按照⽤户的变更要求不断的改进软件。
软件⽣命周期是软件过程的另⼀种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。
1.6什么是优良软件的属性? P8 (填空U选择)优良的软件应能交付相应的功能与性能,⽽且应具有良好的可维护性、可依赖性、有效性和可⽤性:(选择题,考法内涵匹配)可维护性(Maintainability)Software must evolve to meet changing needs;可依赖性(Dependability)Software must be trustworthy;有效性(Efficiency)Software should not make wasteful use of system resources;可接受性(Acceptability)Software must be accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.第⼆讲软件过程(画法+特点+结构+缺点+适⽤场合)2.1 瀑布模型(顺序模型)(特点:变更少)(画法+特点+结构+缺点+适⽤场合)1.需求分析和定义2.系统和软件设计3.实现和单元测试4.集成和系统测试5.运⾏和维护(中⽂解释)瀑布模型的缺点和适⽤情况这种模型⽣硬的把⼀个软件过程划分成⼏个界限清晰的阶段,⽽且这些阶段前后有严格的顺序,这导致它很难对⽤户的需求变更做出及时的调整;因此,瀑布模型只适合需求⾮常清楚和需求变更被严格限制的情况下。
2022年河北工业大学软件工程专业《操作系统》科目期末试卷A(有答案)一、选择题1、下列选项中,会导致用户进程从用户态切换到内核态的操作是()I.整数除以零 II.sin函数调用 III.read系统调用A.仅I、IIB.仅I、IIIC.仅II、IIID. I、II和II2、假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是()。
A.DIV R0,R1;(R0)/(R1)→ROB.INT n;产生软中断C.NOT RO;寄存器R0的内容取非D.MOV RO,addr;把地址 addr处的内存数据放入寄存器RO中3、设有n个进程共用一个相同的程序段,若每次最多允许m个进程(mSn)同时进入,临界区,则信号量的初值为()。
A.nB.mC.m-nD.-m4、下列选项中,降低进程优先权级的合理时机是()。
A.进程的时间片用完B.进程刚完成I/O,进入就绪队列C.进程长期处于就绪队列D.进程从就绪状态转为执行状态5、一次性分配所有资源的方法可以预防死锁的发生,这种方法破坏的是产生死锁的4个必要条件中的()。
A.互斥条件B.占有并请求C.不剥夺条件D.循环等待6、如果I/O设备与存储设备间的数据交换不经过CPU来完成,则这种数据交换方式是()。
A.程序查询方式B.中断方式C.DMA方式D.外部总线方式7、系统管理设备是通过一些数据结构来进行的,下前的()不属于设备管理数据结构。
A.FCBB.DCTC.SDTD.COCT8、现代操作系统中,文件系统都有效地解决了重名(即允许不同用户的文件可以具有相同的文件名)问题。
系统是通过()来实现这一功能的。
A.重名翻译结构B.建立索引表C.树形目录结构D.建立指针9、文件系统中设立打开(open)系统调用的卡要目的是()。
A.把文件从辅存读到内存B.把文件的控制信息从辅存读到内存C.把文件的FAT表信息从辅存读到内存D.把磁盘文件系统的控制管理信息从辅存读到内存10、假设一个“按需调页”虚拟存储空间,页表由寄存器保存。
软件工程基础期末试题及答案一、选择题 (每题2分,共20分)1. 软件工程的主要目标是( )。
A. 提高软件的质量B. 降低软件的开发成本C. 提高软件的开发效率D. 以上都对答案:D2. 下列哪个不是软件工程的基本活动?A. 软件规格B. 软件设计和实现C. 软件验证D. 软件评估答案:D3. 下列哪个不是软件工程的关键过程?A. 需求分析B. 软件设计C. 软件测试D. 代码审查答案:D4. 下列哪个不是软件工程的核心思想?A. 规范性B. 可维护性C. 可靠性D. 高效性答案:D5. 在软件开发过程中,需求分析的目的是( )。
A. 确定软件的功能和性能要求B. 确定软件的架构和设计C. 确定软件的开发方法和工具D. 确定软件的测试策略答案:A6. 下列哪个不是需求分析的主要任务?A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的开发需求答案:D7. 下列哪个不是软件设计的主要任务?A. 确定软件的架构B. 确定软件的模块划分C. 确定软件的数据结构D. 确定软件的开发计划答案:D8. 下列哪个不是软件设计的重要考虑因素?A. 软件的可扩展性B. 软件的可维护性C. 软件的可靠性D. 软件的性能答案:D9. 下列哪个不是软件测试的主要目的?A. 发现和修复软件缺陷B. 验证软件的功能和性能是否符合需求C. 评估软件的质量和可靠性D. 提高软件的开发效率答案:D10. 下列哪个不是软件测试的主要方法?A. 黑盒测试B. 白盒测试C. 静态测试D. 代码审查答案:D二、填空题 (每题2分,共20分)1. 软件工程是一种应用系统工程的方法和工具,以规范化的、可量化的和可控制的方式开发和维护软件的工程学科,其基本目标是以$$______$$的方式开发和维护软件,以提高软件的质量、降低软件的开发成本和提高软件的开发效率。
答案:工程化2. 软件工程的核心思想可以概括为规范化、$$______$$、可维护性和可靠性,其中规范化是软件工程的基础,可维护性是软件工程的重要目标,可扩展性是软件工程的关键。
软件工程期末复习总结第一讲概述(选择U填空U简答)1、1 软件工程的研究内容软件工程要考虑专业软件开发所需要的理论、方法与工具----工程技术问题软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题1、2 什么就是软件?软件包括:---软件的内涵①能够提供客户所需功能与性能的计算机程序;②使程序能够适当的操作信息的数据结构;③用以描述程序开发过程及使用的文档。
软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。
软件产品可以分成:一个新的软件并不一定就是全新开发,可以由现有软件或可复用软件成分配置形成。
1、3 什么就是软件工程?软件工程就是涉及软件生产各个方面的一门工程学科软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。
软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行与维护的过程,即将工程化应用于软件;(2)研究(1)中的方法、——IEEE[IEE93]1、4 什么就是成功的软件项目一个成功软件项目的三个要素包括:按时交付不超预算满足用户要求。
1、5 软件过程与软件生命周期的相关概念软件过程就是指开发或制作软件产品的一系列活动及其成果、所有的软件过程中都包括四个基本活动:(填空)1、描述( Specification)- 系统应该提供的功能及其开发约束;2、开发( Development)- 软件产品的生产过程;3、有效性验证(Validation )- 检验软件产品就是否满足了客户的需要;4、进化( Evolution )- 按照用户的变更要求不断的改进软件。
软件生命周期就是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。
1、6什么就是优良软件的属性? P8 (填空U选择)优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性与可用性:(选择题,考法内涵匹配)可维护性(Maintainability)Software must evolve to meet changing needs;可依赖性(Dependability)Software must be trustworthy;有效性(Efficiency)Software should not make wasteful use of system resources;可接受性(Acceptability)Software must be accepted by the users for which it was designed、 This means it must be understandable, usable and compatible with other systems、第二讲软件过程(画法+特点+结构+缺点+适用场合)2、1 瀑布模型(顺序模型)(特点:变更少)(画法+特点+结构+缺点+适用场合)1.需求分析与定义2、系统与软件设计3、实现与单元测试4、集成与系统测试5、运行与维护(中文解释)瀑布模型的缺点与适用情况这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的顺序,这导致它很难对用户的需求变更做出及时的调整;因此,瀑布模型只适合需求非常清楚与需求变更被严格限制的情况下。
实际的软件开发过程中,几乎没有多少业务系统具有稳定的需求。
瀑布模型反映了工程设计的基本思想。
2、2 进化式开发模型(画法+特点+结构+缺点+适用场合)基本思想:通过开发系统原型与用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。
又叫做原型式开发方法。
两种基本类型:探索式开发;抛弃式原型法、2、2进化式开发模型问题缺乏过程可见性;系统结构通常会很差;需要一些特别的技术(如原型快速开发技术),通常与主流技术不兼容、适用情况适合中小规模的交互系统;可用于大型系统的局部开发(如系统界面),可以与瀑布模型混合使用;生命周期较短的系统2、3 基于过程反复的过程模型对于大型项目而言,系统需求的变更就是无法避免的,因此开发过程的反复就是软件开发的必要手段;过程反复可以与任何一种一般过程模型结合使用。
两种支持过程反复的过程模型:增量式开发;螺旋式开发。
2、3增量式开发增量式开发的特点在这种开发方式中,系统不就是作为一个整体交付,而就是被分解成若干个增量,每个增量交付系统的部分功能。
用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。
这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。
由于每个增量可以交付部分系统功能,因此软件可以较早的交付用户使用(部分功能);早期交付的增量可以作为后期增量的原型帮助后期需求的确定;项目总体的失败率较低;优先级最高的系统功能得到最多的测试。
螺旋式开发这种模型用螺旋线表示软件过程,而不就是采用一系列活动及活动间的反馈;螺旋中的每个回路表示软件过程中的一个阶段;这种模型充分考虑了软件开发所面临的风险,并贯穿软件过程始终。
螺旋线划分成四部分目标设置、风险评估与规避、开发与有效性验证、规划2、4 基于构件的软件工程软件复用就是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素(通常称为可复用构件、组件或软部件)的过程。
软构件就是标准的、可以互换的、经过装配可随时使用的软件模块。
在UML中,软构件被定义为系统中某一定型化的、可配置的与可替换的部件,该部件封装了实现并暴露一系列的接口。
软件复用的意义软件复用的出发点就是使软件系统的开发不再“一切从零开始”,能够充分利用已有的知识与经验。
软件复用能够在软件开发中避免重复劳动,充分利用已有的开发成果,,提高开发效率,降低开发成本。
软件复用还可以避免全新开发可能引入的错误,从而提高软件的开发质量。
构件的基本概念构件就是为组装服务的!软件构件就是指可以独立生产、获取与部署的、可以被组装到一个功能性系统中去的可执行单元。
软构件就是标准的、可以互换的、经过装配可随时使用的软件模块。
基于构件的软件工程第三讲需求工程(概念+综合分析(面向对象建模UML+分析))3、1 需求工程过程需求工程过程并不具有唯一的模型,在所有的过程中都会涉及一些共同的活动,它们就是:可行性研究(必不可少);需求导出与分析;需求描述;需求有效性验证;需求管理。
(填空U选择)3、2 可行性研究可行性研究要决定被提议的系统就是否值得去做。
进行可行性研究包括信息评估、信息汇总与书写报告三部分工作。
3、3 需求的两个不同层次的描述用户需求从客户的角度,采用自然语言配合以图表对目标系统应提供的服务以及系统操作要受到的约束进行的声明。
系统需求系统需求就是一种结构化文档,要运用一些专业的模型详细的描述系统的功能及其约束。
系统需求文档有时也称为功能描述,应该就是精确的,它可以成为双方之间合同的重要内容,同时作为开发工作的依据3、4 功能需求与非功能需求功能需求对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为的描述。
某些情况下还要包括系统不应做什么。
非功能需求(全局的)对系统提供服务或功能时收到的约束进行描述。
如时间约束、开发过程约束与标准等。
领域需求这种需求来自于系统的应用领域,反映领域特征。
可能就是功能需求也可能就是非功能需求。
功能性需求与非功能性需求相比较,非功能需求往往更为关键,因为非功能需求表示的就是系统的整体特征,而功能性需求描述的则就是局部功能。
(参瞧课本例子加强理解)功能需求功能需求描述系统所应提供的功能或服务。
取决于待开发软件的类型、未来的用户以及开发的系统类型。
功能性的用户需求只需要对系统应提供的服务进行高层一般描述,对于系统需求,则应该详细的描述系统功能、输入输出及异常。
非功能性需求非功能需求不直接与功能相关,但定义了实现系统功能受到的约束与系统特性。
如可靠性、响应时间、存储空间、I/O设备能力等。
非功能需求还常与系统的开发过程有关,表现为过程需求。
如设计必须实用的特定CASE工具集、设计语言与开发方法。
领域需求领域需求来自于应用领域,描述的就是反映领域特点的系统特性与特征。
领域需求可能就是新的功能需求,也可能就是对现有需求的约束或定义一个特别的计算。
领域需求非常重要,如果领域需求不能满足,可能会使整个系统无法运转。
需求的全面性与一致性原则上,功能性需求描述应该具备全面性与一致性。
全面性:包括了所有用户要求的服务。
一致性:在系统服务的描述中没有冲突与矛盾需求的两个不同层次的描述用户需求:用户需求就是从用户角度来描述的系统功能需求与非功能需求,这样的描述可以使不具备专业技术知识的用户能够瞧明白。
用户需求使用任何人都瞧得懂的自然语言、图表与直观的图形来描述。
系统需求:相对于用户需求,系统需求就是对系统功能、服务及约束的更详尽的描述。
系统需求就是系统实现的基本依据,会被写入合同中。
因此系统需求就是一个完全的、一致的系统描述,就是设计的起点。
系统需求可以用系统模型来定义与说明。
3、7 需求导出与分析这个阶段在可行性研究之后进行,通常与需求描述交叉进行。
需求导出的过程活动包括:需求发现、需求的分类与组织、优先排序与冲突解决、需求文档化。
需求的发现与识别就是整个过程中最为关键的活动,负责收集目标系统级现存系统的相关信息并从这些信息中提炼出用户需求与系统需求。
信息的来源包括已有的文件,系统的信息持有者(stakeholders)以及相近系统的规约描述。
需求要从多个视点进行分析视点用来表述不同角度的需求来源(信息持有者、其它相关系统及领域)。
每一个视点代表系统需求的一个子集。
从多视点对系统进行分析就是十分重要的,因为没有那一种单一的途径能够诠释整个系统需求视点的类型:交互者视点、间接视点、领域视点3、8 结构化分析(SA)建模(概念)结构化分析方法就是一种面向数据流的系统建模技术,它从数据加工的角度对系统进行规格描述;SA帮助分析者理解系统的功能,并采用模型与用户进行交流;不同的模型从不同的角度对系统进行描述。
结构化分析建模结构化分析方法建立的分析模型结构如下图:结构化分析模型的核心就是数据词典,它描述了所有的在目标系统中使用的与生成的数据对象。
围绕着这个核心的有三种图:实体—关系图(ERD)描述数据对象及数据对象之间的关系;数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能);状态—迁移图(STD)描述系统对外部事件如何响应,如何动作。
因此,ERD用于数据建模,DFD用于功能建模,STD用于行为建模。
(考试用英文)3、9 UML与面向对象分析方法(分析+设计+面向对象建模)3、9、1 理解UMLUML就是一种标准的图形化建模语言,它为不同领域的人们提供一种统一的交流标准,这种标准使得系统构造者能够用标准的、易于理解的方式建立能表达出她们想象力的系统蓝图,并使客户、分析员、设计人员、程序员与系统其它涉及者能够相互理解与达成一致,从而能够有效地共享与交流设计结果。