武汉理工大学软件工程复习资料

合集下载

软件工程复习资料精选全文完整版

软件工程复习资料精选全文完整版

可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。

(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。

(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。

(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。

(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。

(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。

(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。

2021武汉理工软件设计与体系结构复习(仅供参考)

2021武汉理工软件设计与体系结构复习(仅供参考)

2021武汉理工软件设计与体系结构复习(仅供参考) 2021武汉理工软件设计与体系结构复习(仅供参考) 软件1 简答题什么是防止变异模式?是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。

解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定接口。

2.什么是依赖反转原理?把你的类从具体的实现中隔离开,使它们依赖于抽象类或接口。

它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。

3.仓库风格的组件和连接器是什么?组件:(1)一个能表示出系统的正确状态的数据结构(2)操作主要数据结构的独立组件的集合。

连接器:典型的过程调用或是直接内存访问。

什么是响应时间?measure of the latency an application exhibits in processing a request对一个应用程序在处理请求显示出的潜在因素的测量标准。

常用的中间件有那几种类型?CORBA (Common Object Request Broker Architecture)Message-oriented middlewareJ2EEMessage brokersBusiness process orchestrators(1)常见的对象请求代理架构(2)面向消息的中间件(3) Java2 Enterprise Edition(Java2的企业版)(4)消息代理(5)业务过程代理管道过滤器风格?在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。

因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入架构师需要的核心技能是什么?Many responsibilities:Liaison with stakeholdersTechnology knowledgeSoftware engineeringRisk managements(1)涉众之间的交流(2)技术知识。

武汉理工大学专升本软件工程题库

武汉理工大学专升本软件工程题库

一、材料( 每题参考分值5分)1、某校制定了教师的讲课课时津贴标准。

对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授40元,副教授35元,讲师30元,助教25元。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表。

判定树表示如下:2、加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。

附此之外的其他申请者都适用于A类保险。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表和判定树,只要描述能正确表达题目的意思即可。

下面是用判定表来描述:3、某工厂对工人的超产奖励政策为:该厂生产两种产品A和B。

凡工人每月的实际生产量超过计划指标者均有奖励。

奖励政策为:对于产品A的生产者,超产数N小于或等于100件时,都按超产100件算每件奖励2元;N大于100件小于等于150件时,大于100件的部分每件奖励2.5元,其余的每件奖励金额不变;N大于150件时,超过150件的部分每件奖励3元,其余按超产150件以内的方案处理。

对于产品B的生产者,超产数N小于或等于50件时,都按超产50件算,每件奖励3元;N大于50件小于等于100件时,大于50件的部分每件奖励4元,其余的每件奖励金额不变;N大于100件时,超过100件的部分每件奖励5元,其余按超产100件以内的方案处理。

请用结构化语言、判定表和判定树中的一种描述上述问题。

正确答案:程序语言可以用任意的语言如C、Basic、伪代码、自然语言等,也可以用判定表和判定树,只要描述能正确表达题目的意思即可。

软件工程基础期末复习资料完整版

软件工程基础期末复习资料完整版

2.文档有何作用?程序代码属不属于文档?答:文档指的是在软件开发和维护过程中形成的文字记录。

从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。

文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。

没有文档的软件维护不但不能延长反而会缩短软件寿命。

文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。

3.什么是软件危机?什么原因产生了软件危机?答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。

产生的原因是主客观不相适应。

见书图1-2。

●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。

5.软件工程三要素是什么?答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。

见图1-4。

(2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。

过程定义的活动集合及其序列见第2章。

(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。

如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。

软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。

(4)“工具”为过程和方法提供自动的或半自动的支持。

这些工具既包括软件也有硬件。

软件工具包括编程、建模、管理等开发工具。

通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。

CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

武汉理工软件测试复习

武汉理工软件测试复习

212.3,Male,已婚,2 年龄无效
50,BOY,已婚,2 50,Male,未婚,2
50,Male,已婚,-1 50,Male,已婚,12
2017/5/13
性别无效 婚姻状态无效
抚养人数无效 抚养人数无效
数 据 挖 掘
15 16
17 18
17
6.已婚 7.单身 抚 养 人 8.0 数 9.1-6人 10.7-9人
2017/5/13
16.指定以外的字符
17.小于0 18.大于10
数 据 挖 掘 16
测试用例
测试用例 27,Female,单身,0 50,Male,已婚,2 70,F,单身,7 0,Male,已婚,2 100,F,单身,5 50,男,已婚,2 预计输出 费率0.6% 费率0.6% 费率0.1% 年龄无效 年龄无效 性别无效 覆盖等价类 1、5、7、8 2、4、6、9 3、5、7、10 11 12 13 14
程序图
1
2
3 4 5 6 7 10 11 14 15
2017/5/13 数 据 挖 掘 9
12 13
8 9
基路径集合
基路径编号 p1 p2 p3 p4 基路径节点序列 1-2-3-4-11-14-15 1-2-3-5-6-7-10-11-14-15 1-2-3-5-6-8-9-10-11-14-15 1-2-12-13-14-15
2017/5/13
数 据 挖 掘
3
具体内容

结构性测试: DD-路径图 基路径测试 定义/使用测试
2017/5/13
数 据 挖 掘
4
具体内容

测试层次: 单元测试 集成测试 系统测试
2017/5/13

《软件工程概论》课程知识 复习 学习材料 试题与参考答案

《软件工程概论》课程知识 复习 学习材料 试题与参考答案

《软件工程概论》课程知识复习学习材料试题与参考答案一、单选题1.原型化方法是一种(A)型的设计过程。

A.自外向内B.自顶向下C.自内向外D.自底向上2.下述任务中,不属于软件工程需求分析阶段的是(D)。

A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台3.在软件生存周期中,用户主要是在(A)参与软件开发。

A.软件定义期B.软件开发期C.软件维护期D.整个软件生存周期过程中4.表示集成是指一个系统中的工具使用共同的风格以及采用共同的用户交互标准集。

表示集成有三种不同级别:窗口系统集成、命令集成和(D)。

A.数据集成B.平台集成C.界面集成D.交互集成5.软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。

A.软件生存周期B.软件过程C.软件开发方法D.软件开发模型6.技术可行性要解决(D)。

A.存在侵权否B.成本-效益问题C.运行方式可行D.技术风险问题7.瀑布模型是一种(D)。

A.软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型8.面向数据流的软件设计方法可将(C)映射成软件结构。

A.控制结构B.模块C.数据流D.事务流9.一个CASE工作台是一组(A),支持设计、实现或测试等特定的软件开发阶段。

A.工具集B.软件包C.平台集D.程序包10.软件工程学的目的应该是最终解决软件生产的(B)问题。

A.提高软件的开发效率B.使软件生产工程化C.消除软件的生产危机D.加强软件的质量保证11.目前有若干种软件生存周期模型。

例如瀑布模型、增量模型、螺旋模型等。

其中基于知识的模型也称为(B)。

A.演化模型B.智能模型C.变换模型D.喷泉模型12.可行性分析中,系统流程图用于描述(A)。

A.当前运行系统B.当前逻辑模型C.目标系统D.新系统13.软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型14.从结构化的瀑布模型看,在软件生命周期中的八个阶段中,下面的几个选项中,(C)出错,对软件的影响最大。

武汉理工软件工程经济学复习范围

武汉理工软件工程经济学复习范围

1、根据系统工程的理论,软件工程应包括哪三大类知识?根据系统工程的理论,任何一个工程学科,其方法均可划分为三大部分:工程技术学方法、工程经济学方法和工程管理学方法。

因此软件工程作为一种特殊的工程商品,其生产过程方法论同样可以划分为:软件工程技术学方法论、软件工程经济学方法论和软件工程管理学方法论等三部分。

2、什么是软件生存周期?软件生存周期一般可划分为哪几个阶段?将软件以概念的形成开始,经过开发、使用和维护,直到最后退役的全过程成为软件的生存周期。

可根据其所处的状态、特征以及软件开发活动的目的、任务划分为七阶段。

1.可行性分析2.计划与需求分析3.概要设计4.详细设计与编码5.集成与测试6.运行与维护7.退役4、简述成本的经济内容。

成本经济内容基本包括下面三个方面:1.劳动资料方面的损耗,主要指固定资产的折旧费,与此相关的损耗还有设备运转所需的动力费,为保持设备正常工作状态所需的修理费及设备购买与安装、运输等费用;2.劳动对象方面的损耗,主要是指各类损耗材料费及材料的仓储、运输费用等;3.人工方面的消费与消耗,主要是指工资及与此相关的福利费,为职工支付的保险费等。

5、什么是资金的时间价值?为什么资金的时间价值会直接影响软件项目的经济效果?在市场经济中,资金若锁住不用,会随着通货膨胀而产生贬值;相反,如存入银行或投资工程项目(如NIS项目),则该资金将进入一个循环和周转的过程,他的绝对金额将随着时间推移而转移,并将发生相应的增额或减额的变化,其增加或者减少的金额部分称为资金的时间价值。

对于软件构建者(经济主体),其资金的投入是按照经济活动的需求在生命周期的各阶段分批、分期投入,构成了一个现金(投入)流出量序列,其收益也构成一个收益(现金流入量)时间序列,所以客观评价软件项目方案的经济效果,不仅要考虑现金流入流出的总额,还必须考虑资金的时间价值。

此外,还应注意,企业对软件的投资绝大部分来自于对银行(或其他渠道)的借贷,由于借入与还贷之间有一个时间差距,因而必须考虑资金的时间价值。

软件工程复习资料-完整版

软件工程复习资料-完整版

软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。

它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。

软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。

二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。

通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。

2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。

设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。

3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。

编码时应遵循编程规范,确保代码的可读性和可维护性。

同时,要进行单元测试,确保每个模块的功能正确。

4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。

单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。

5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。

同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。

三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。

模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。

2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。

在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。

3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。

在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。

4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。

在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。

5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。

《软件工程》复习材料

《软件工程》复习材料

一、写出下列缩写英文的中文涵义CFD DFD OOA SA SD SP CMM CMMI UML CASE XP C/S B/SATAM PDL SQA MVC CRC MBS CBSD GUI SQL MTTR MTTFMTBF FTR PERT SCM CPM RMMP二、概念[1] 在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。

[2] 软件和硬件具有完成不同的特性,软件是设计开发的,而不是传统意义上生产制造的。

[3] 软件工程是一种层次化技术,是建立在以质量焦点为基础的,分过程、方法、工具三个研究层次的综合技术。

[4] 软件工程是应用计算机科学、数学及管理学等原理,开发软件的工程,其框架可概括为:目标、过程和原则。

[5] 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为事务型的数据流图。

[6] 数据流图仅反映系统必须完成的逻辑功能,所以它是一种功能模型。

[7]耦合性是定性度量模块独立性的标准之一,它根据模块的外部特征提出的,是对软件系统结构中各模块间相互联系紧密程度的一种度量,也称块间关系。

[8] 衡量软件的独立性有两个定性的度量标准,即耦合和内聚。

[9] 任何程序都可由选择结构、循环结构和顺序结构3种基本控制结构构造,其共同点是单入口、单出口。

[10] 统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流包括捕获需求、分析、设计、实现和测试等,这种软件过程的用例图式通过分析得到。

[11] 软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个自底向上或相反顺序集成的过程。

[12] 软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

武汉理工软件工程复习资料

武汉理工软件工程复习资料

第一章软件工程概述软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的严重问题。

表现方面:(1) 用户对开发出的软件很难满意。

(2) 软件产品的质量往往靠不住。

(3) 一般软件很难维护。

(4) 软件生产效率很低。

(5) 软件开发成本越来越大。

(6) 软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2、软件工程几种模型的优缺点瀑布模型优点:它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

虽然有不少缺陷但比在软件开发中随意的状态要好得多。

缺点:(1) 实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。

(2) 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。

(3) 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。

(4) 会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。

称之为“堵塞状态”。

它是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。

快速原型模型在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。

优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。

缺点:产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。

增量模型优点:(1) 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。

(2) 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。

软件工程复习资料-完整版

软件工程复习资料-完整版

一、选择题:1、用例图中,用来表示用例的符号为( B ) 。

2、协作图中包含的元素包括(A ) 。

A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。

A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。

A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。

A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。

A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。

A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。

A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。

A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。

A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。

A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。

A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。

A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。

湖工软件工程复习

湖工软件工程复习

软件工程复习宝典一选择题40二填空题15三名词解释15(10考5)1模块独立模块独立的概念是模块化.抽象.信息隐藏和局部化概念的直接结果。

2模块化模块化就是把程序划分成独立命名且可独立访问的模块过程。

3原型原型是可以逐步改进或运行系统的模型。

4软件的正确性系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。

5数据字典数据流图中的数据流、文件和数据项的定义的集合称作数据字典。

6软件是计算机系统中与硬件相互依存的另一部分,是程序.数据及相关文档的完整集合。

7软件测试在规定的条件下对程序进行操作,已发现程序错误,衡量软件质量,并对其是否满足设计要求进行的评估过程。

8需求分析在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统目的范围.定义和功能所要做的所有的工作。

9完善性维护完善性维护是为了扩充功能和改善性能而进行的修改,主要是针对已有的软件系统增加一些在系统分析和设计阶段没有规定的功能与性能特征10白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

四解答题301给程序代码画流程图判断环境复杂度独立路径.1012给语义画出对应的数据流程图(功能级数据流程图).3伪代码(类C语言)画程序流程图或N-S图第一章绪论软件的发展。

第一代软件技术:传统的软件工程第二代软件技术:面向对象的工程第三代软件技术:软件过程工程第四代软件技术:构件工程软件危机的具体体现:质量低,生产率低软件危机产生的原因:用户需求不明确缺乏正确的理论指导软件开发的规模越来越大软件开发的复杂度越来越大软件工程的定义:软件工程是一门指导计算机软件开发和维护的工程学科,是一门边缘学科,涉及计算机科学,工程科学,管理科学,数学等多学科,研究范围广,主要研究如何应用软件开发的科学理论和工程技术指导大型软件系统的开发。

软件工程复习提纲(附答案)

软件工程复习提纲(附答案)

软件工程第一章软件工程介绍1、软件的特性:P4软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。

2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P105、软件的定义:P4软件是指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。

第二章过程综述1、软件工程的三个要素:工具,过程,方法P17过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。

工具:为过程和方法提供自动化或半自动化的支持。

2、通用软件过程框架:沟通,策划,建模,构建,部署P8沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。

建模:它包括创建模型和设计两方面。

创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。

构建:它包括编码和测试。

部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P23沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。

可以写作为:软件=程序+数据+文档。

2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。

6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。

本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。

(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。

(3)编写文档,也就是完成“需求规格说明书”的编写工作。

2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。

非功能需求是对系统提供的服务或功能给出的约束。

包括时间约束、开发过程的约束、标准等。

3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。

武汉理工软件工程导论期末

武汉理工软件工程导论期末

软件工程导论复习题型及分值单选题(20分)20x1判断题(10分) 10x1问答题(25分)5x5应用题(45分) 7+8+8+10+12一、软件工程的基本概念(PPT 1-2章)1.软件危机(产生的原因)(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

(2)软件危机主要有以下表现:a.对软件开发成本和进度的估计常常不准确。

开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。

b.用户对“已完成”系统不满意的现象经常发生。

c.软件产品的质量往往靠不住。

Bug一大堆,Patch一个接一个。

d.软件的可维护程度非常之低。

e.软件通常没有适当的文档资料。

f.软件的成本不断提高。

g.软件开发生产率的提高赶不上硬件的发展和人们需求的增长。

(3)产生原因:一方面是与软件本身的特点有关;另一方面是由软件开发和维护的方法不正确有关。

(4)消除软件危机的途径:a.对计算机软件有一个正确的认识(软件≠程序)。

b.必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

c.推广使用在实践中总结出来的开发软件的成功技术和方法。

d.开发和使用更好的软件工具。

e.加强软件管理。

2.软件的特点有哪些?(1)软件是一种逻辑实体,而不是具体的物理实体,它具有抽象性;(2)软件的生产与硬件不同;(3)大多数软件是定制的;(4)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题;(5)软件的开发和运行常常受到计算机系统的限制对计算机系统有着不同程度的依赖性;(6)软件开发至今尚未完全摆脱手工艺的开发方式;(7)软件是复杂的;(8)软件成本相当昂贵;(9)相当多的软件工作涉及到社会因素。

3.软件工程?软件工程的目标?(……)(1)定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。

武汉理工软件工程课件第1章软件工程概述[1]

武汉理工软件工程课件第1章软件工程概述[1]

•智能网络 •(Intelligent Web)
•·从静态网到动态网
•·从被动方式到主动方式 •·从呈现信息和浏览的窗
口到智能生成的平台
•·从HTML到XML
PPT文档演模板
武汉理工软件工程课件第1章软件工 程概述[1]
• The Challenges and Opportunities of the Global Software Industry.
PPT文档演模板
武汉理工软件工程课件第1章软件工 程概述[1]
课程特点与安排
•1. 课程特点:
• 实践性强、发展迅速
•2. 课程安排(建议):
• 课堂教学(48学时)— 授课、案例分析、讨论
• 课程设计(课外为主,需求阶段及总体设计阶段

的答辩式评审共8学时)

课程设计以开发小组为单位进行。
•3. 关于考试(建议) :
PPT文档演模板
武汉理工软件工程课件第1章软件工 程概述[1]
三、信息化建设中对复合型软件人才的需求
• 我国复合型软件人才匮乏,培养适应迅速 变化的市场需求的复合型软件人才已是迫在 眉睫。
• 复合型软件人才—具备不同专业背景、有
市场观念的开发管理、工程管理和软件模板
• 本书是英国著名软件工程学家 Ian Sommerville 系统介绍软件工程 理论的力作,以要求极高的一类系 统为实例,精辟透彻地阐述了软件 工程的内涵。
PPT文档演模板
武汉理工软件工程课件第1章软件工 程概述[1]
参考网站
•http:// 软件工程网 •卡内基梅大学软件工程研究所 •/ 对象技术和构件技术 链接 • Rational公司 • OMG(Object Management Group)

软工复习资料

软工复习资料

软工复习资料软件工程是计算机科学与工程学科的重要分支,它研究的是软件系统的设计、开发、测试和维护等方面的理论和方法。

在软件工程的学习和实践过程中,掌握一些复习资料是十分必要的,有助于学生更好地理解和掌握软工的相关知识。

本文将介绍一些软工复习资料,希望对读者有所帮助。

一、教材类资料教材是软件工程学习的重要依据,掌握一本优秀的教材对于学习软工是非常有益的。

以下是一些常用的软工教材推荐:1. 《软件工程导论》(第9版)霍华德·P.佩特森等著该书是软件工程学习的经典教材,系统地介绍了软件工程的基本概念、原理和方法,适合初学者阅读。

2. 《软件工程》(原书第9版)伊恩·索莱文等著这本教材是软工领域的权威之作,全面介绍了软件工程的理论和实践,对于深入理解软工概念和方法非常有帮助。

3. 《软件需求工程》(第3版)伊恩·索莱文等著该书详细介绍了软件需求的概念、分析和规范等内容,是研究软件需求工程的学生必备参考资料。

二、参考书籍类资料除了教材外,还有一些学术专著和参考书籍也是软工复习资料的重要来源。

以下是一些值得推荐的参考书籍:1. 《架构之美》布鲁斯·巴特勒等著这本书介绍了软件架构的基本原理和实践方法,通过实例分析,让读者更好地理解和应用软件架构。

2. 《软件测试:一种实用方法》(第3版)桥本还等著软件测试是软工过程中不可或缺的环节之一,这本书详细介绍了软件测试的原理、方法和工具,对于深入理解和应用软件测试非常有帮助。

3. 《敏捷软件开发:原则、模式与实践》罗伯特·C.马丁等著敏捷开发是当前软件工程领域的热门话题之一,这本书系统地介绍了敏捷开发的原则、模式和实践经验,对于学习敏捷开发非常有益。

三、在线课程和视频资料除了书籍,还可以通过在线课程和视频资料来学习和复习软工知识。

以下是一些建议的在线学习资源:1. Mooc网Mooc(大规模开放在线课程)网站上有很多软件工程相关的在线课程,课程内容丰富,可以根据自己的兴趣和需求进行选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章概述1.软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它是包括程序(program),相关数据(data)及其说明文档(document)(1)程序是按事先设计的功能和性能要求执行的指令序列(2)数据是使程序能正常操纵信息的数据结构(3)文档是与程序开发,维护和使用有关的图文材料2.软件的特点:(1)软件是一种逻辑实体,而不是具体的物理实体,具有抽象性(2)软件的生产与硬件不同,在它的开发过程中没有明显的制造过程(3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题(4)依赖于计算机硬件系统(5)软件的开发至今尚未完全摆脱手工艺的开发方式(6)软件本身是复杂的(实际问题的复杂性,程序逻辑结构的复杂性)(7)软件成本相当昂贵(8)相当多的软件工作涉及到社会因素3.软件危机(software crisis)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

4.软件危机包含两方面的问题:其一是如何开发软件,以满足不断增长、日趋复杂的需求;其二是如何维护数量不断膨胀的软件产品。

5.软件危机的主要表现:质量:1. 软件产品的质量往往靠不住;2.软件常常是不可维护的;3.软件通常没有适当的文档资料;4.用户对“已完成的”软件系统不满意的现象时间:5.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;6.经常发生对软件开发成本和进度的估计常常很不准确预算:7.软件成本在计算机系统总成本中所占的比例逐年上升6.出现软件危机的主要原因一方面是与软件本身的特点有关,另一方面是与软件开发和维护的方法不正确有关。

解决的办法:软件工程7.(1)软件工程(software engineering)是将工程化的思想用于软件的开发和维护(2)软件工程(software engineering)就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。

(3)软件工程(software engineering)是:(1)将系统化的、严格约束的、可度量的方法应用于软件的开发、运行和维护,即将工程化应用于软件。

(2)在(1)中所述方法的研究软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。

8.软件工程包括两方面内容:软件开发技术和软件项目管理。

其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。

软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。

9.软件工程包含四个关键元素:方法(methodologies)、语言(languages)、工具(tools)和过程(procedures)(1)软件的方法提供如何构造软件的技术。

内容:明确的工作步骤与技术、具体的文档格式、明确的评价标准(2)软件语言用于支持软件的分析、设计和实现(3)软件工具为方法和语言提供自动和半自动的支持(4)软件过程规定了完成各项任务的步骤从内容上说软件工程包括:软件开发理论和结构、软件开发技术、以及软件工程管理和规范10.软件工程的原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采纳现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应少而精(7)承认不断改进软件工程实践的必要性11.软件的生存期:一个软件从计划开发到废弃不用的这段时期被称为软件的生命周期12.软件生存周期阶段:定义阶段:主要确定待开发软件系统要做什么(1)系统分析(问题定义):要解决的问题是什么。

同用户协商,达成共识。

(2)制定软件项目计划(含可行性研究):问题是否值得去解决。

若可行,则须指定软件项目计划包括确定工作域、风险分析、资源规定、成本核算、以及工作任务和进度安排等。

(3)需求分析:系统必须完成哪些功能。

开发人员与用户共同讨论决定哪些需求是可以满足的,并对其加以确切的描述。

开发阶段:确定待开发的软件怎么做(1)软件设计:总体上如何实现系统,将系统功能分割给几个子系统,子系统间的接口如何。

如何具体地实现系统,如何描述数据结构和算法。

(2)编码:选择编程语言并编写代码。

(投入最多,持续时间不长)(3)测试:包括不同的测试阶段,如测试功能的单元测试、测试性能的综合测试。

维护阶段(持续时间最长):进行各种修改,使系统能持久的满足用户的需要。

改正性维护、适应性维护、完善性维护和预防性维护13.常见的软件工程模型有:瀑布模型、原型法模型、演化模型、螺旋模型、喷泉模型、第四代技术过程模型(1)瀑布模型:具有顺序性和依赖性,便于分工合作,文档便于修改,并有复审质量保证,但与用户见面晚,纠错慢,工期延期的可能性大。

适合于软件需求比较明确、开发技术比较成熟、工程管理比较严格,无重大变化的系统。

优点:便于分工协作;文档驱动,有质量保证。

缺点:易阻塞;推迟实现;成功率较低。

适用范围:功能、性能需求明确,无重大变化的系统(2)原型法模型:针对瀑布模型提出来的一种改进方法。

它的基本思想是从用户需求出发,快速建立一个原型,使用户通过这个原型初步表达出自己的要求,并通过反复修改、完善,逐步靠近用户的全部需求,最终形成一个完全满足用户要求的新体系。

适用范围:(用户可见的功能和表示)对软件需求缺乏准确的认识的项目,采用新技术的项目(3)演化模型:适用范围:对软件需求缺乏准确的认识的项目,系统开发的时限十分严格的项目(4)螺旋模型:风险驱动:以降低风险为目的,极大地依赖风险评估技术适用范围:开发的大型项目面向对象软件的项目需求不准确的项目(5)喷泉模型:(面向对象)迭代与递增,重复,演进,无间隙,各阶段间无明显界限第二章可行性研究1.可行性研究的相关工作包括问题定义、可行性研究和需求定义(1)问题定义:是可行性研究和软件开发计划的制定的依据基本任务——了解问题的背景和用户的目标——提出关于问题的性质、工程的目标和规模的书面报告(2)可行性研究:可行性研究的前提:系统分析员与用户就项目的目标等取得了一致的认识可行性研究的结论:启动,或延期,或终止可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。

2.可行性研究的目的:技术可行性、经济可行性、操作可行性、法律可行性技术可行性:(1)风险分析:在给定的约束条件下,判断能否设计并实现系统所需的功能和性能(2)资源分析:论证是否具备系统开发所需的各类管理人员和专业技术人员、软件、硬件资源和工作环境等(3)技术分析:当前的科学技术是否支持系统开发的全过程经济可行性:系统的经济效益是否能超过它的开发成本(系统效益包括经济效益和社会效益)操作可行性:确定在当前政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构和人员等环境下,系统是否可行。

法律可行性:是否符合法律的规定3.可行性研究最根本的任务是对以后的行动方针提出建议。

4.可行性研究的步骤:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)导出和评价若干供选择的解法(5)草拟开发计划等文档并提交审查5.可行性研究最终得到可行性研究报告第三章需求分析1.需求分析是在可行性分析和需求定义的基础上,要求更加详细、准确的分析清楚系统必须做什么。

有时又称为软件系统分析,它处于软件工程的开始部分,提供了构建软件项目其余部分的根基,关系到软件开发的成败。

2.需求分析其任务是:对目标系统提出完整、准确、清晰、具体的要求3.需求分析与可行性研究的区别:(1)可行性研究是大大压缩简化了的系统分析和设计的过程(抽象层次较高)(2)可行性研究是在忽略许多细节的前提下,确定是否存在可行的解法4.需求分析的过程:(1)问题获取:解决要开发的软件做什么、做到什么程度(2)需求分析:包括提炼、分析和审查已收集的需求,以确保所有的风险承担者都明白它们的含义,并且找出其中的错误、遗漏或不足的地方(3)需求规格说明:描述需求的文档(4)需求评审:需求分析完成后对功能的正确性。

完整性和清晰性以及其他需求给于评审。

需求分析的原则:(1)必须能够表达和理解问题的数据域和功能域;(2)必须自顶向下、逐层分解和细化问题;(3)必须给出系统的逻辑视图和物理视图。

5.需求分析的方法:(1)结构化分析方法(SA):数据流建模,行为模型。

基本思想:自顶向下、逐步求精。

常用的工具有:数据流图(Data Flow Diagram,DFD)、数据字典(Data Dictionary,DD)等。

(2)面向对象分析方法(OOA):结构模型,对系统的建模结构化分析模型(数据字典三个子模型):数据模型、功能模型、行为模型。

数据模型包含3种信息:数据对象、属性、关系。

功能模型可以用数据流图描述;数据流图包含4种图形元素:数据流、加工处理、数据文件、源点和终点。

6.经过软件的需求分析建立起来的模型可以称之为分析模型或者需求模型。

核心是数据字典,围绕的是数据模型、功能模型和行为模型。

(1)数据模型包含数据对象、属性和关系。

数据对象只封装数据,没有引用对作用于数据对象的操作;关系:一对一,一对多,多对多。

常用实体关系图(ER图):实体、属性和关系(2)功能模型:数据流图(DFD)是以图形的方式表达数据处理系统中信息的变换和传递过程,包含数据流(含有固定成分的动态数据,包括输入数据和输出数据)、数据源(源点和终点表示数据的产生和最终抵达处,通常是系统边界)、数据的加工(又称变换或者功能模块,表示对数据进行的操作逻辑)和数据的存储(数据文件,文件表示处于静态的、需要存储的数据)。

(3)行为模型:状态转换图7.数据流图包含4种图形元素:数据流、数据流分量、数据存储、处理8.结构化方法适用于需求明确的应用领域。

面向对象软件开发包括面向对象分析(问题定义阶段)、面向对象设计和面向对象程序设计9.面向对象分析模型:对象模型、功能模型、行为模型10.产出软件规格说明书第四章系统设计1.1.系统设计的目标是确定系统的物理模型。

系统设计基本目的是用比较抽象概括的方式确定目标系统如何完成预定的任务。

系统设计包括:软件系统结构的总体设计、处理设计、数据结构设计。

2.结构图的形态特征:1)层次数——深度2)同一层最大模块数——宽度3)一个给定模块调用的模块个数——扇出4)调用一个给定模块的模块个数——扇入好的软件顶层扇出大,底层扇入大。

3.一般用两个准则度量模块的独立性,即模块间的耦合和模块的内聚性。

2.4. 耦合性是程序结构各个模块之间相互关联的度量,他取决与各个模块之间借口的复杂程度、调用模块的方式以及哪些信息通过接口。

按照耦合性从低到高的顺序排列如下:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

相关文档
最新文档