2016软件工程作业
软件工程作业第一章
1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。
危机原因:1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。
2、主客观不相适应。
●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。
1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?►基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。
►软件工程定义:是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它.►软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。
本质特性:P6消除软件危机:软件工程基本原理7条。
1-6 什么是软件过程?它与软件工程方法学有何关系?►软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
►过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。
关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。
1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。
生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
软件工程作业及参考答案(版)
软件危机与软件工程3.软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。
A •消除软件危机B •软件开发工程化C •程序设计自动化D •实现软件重用4•软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。
A .工程管理B .成本核算C .人员培训D .工具开发5•软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。
A •设计人员和用户B •分析人员和用户C .分析人员和设计人员D .编码人员和用户6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成于( )。
A .开发阶段B .计划阶段C .分析阶段D .设计阶段7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。
通常,计划时期包括问题定义、可行性研究和①,开发时期包括 ②、详细设计、编码以及 ③。
① A . 需求分析 B . 可行性研究 C . 经费预算 D .质量保证②A . 需求分析B . 可行性研究C 总体设计D 模块化设计 ③A . 文档编制B . 运行维护C . 测试D . 验收&软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型C .螺旋模型D .对象模型9.描述软件生存周期的瀑布模型包括计划、(A )、设计、编码、测试、维护等阶段。
其中,设计阶段又可以分成(B )和(C )两个步骤。
A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计②代码设计③概要(总体)设计 ④数据设计 ⑤详细设计10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务?可行性研究软件工程1软件危机是指在开发和( A .运行 B .设计2 •造成软件危机的原因是: A. 用户使用不当C .硬件不可靠)过程中所遇到的一系列严重问题。
《软件工程》作业及答案
《软件工程》作业第一章1.什么是软件危机,它有哪些典型表现?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
2.简述产生软件危机的原因和解决的思路。
答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程大作业(2)(答案)
软件工程大作业(2)(答案)软件工程作业第二部分一、填空1.结构化分析方法的分析策略是___自顶向下逐步求精_______。
2.衡量模块独立性的两个定性标准是_耦合性与内聚性________。
3.软件集成测试的方法主要有两种,它们是___渐增式与非渐增式测试_______。
4.继承性是子类自动共享其父类的__数据结构和方法____________机制。
5.在面向对象方法中,人们常用状态图描述类中对象的___动态行为________。
6.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为____容错_____软件。
7.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。
8.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是__功能需求_。
9.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是__维护_____阶段。
10.对象之间进行通信叫做__消息_____。
11.计算机辅助软件工程这一术语的英文缩写为_CASE_______。
12.McCall提出的软件质量模型包括______11________个软件质量特性。
13.为了便于对照检查,测试用例应由输入数据和预期的___输出结果____两部分组成。
14.软件结构是以____模块__________为基础而组成的一种控制层次结构。
15.结构化语言(PDL)是介于自然语言和____形式语言____之间的一种半形式语言。
16.软件概要设计的主要任务就是__软件结构的设计______。
17.结构化程序设计方法是使用___三种基本控制结构____构造程序。
18.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个__自底向上或相反顺序 _____集成的过程。
19.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和__数据存储对象_____。
二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2.面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
南华大学软件设计模式实验
南华大学计算机科学与技术学院软件体系结构与设计模式作业(2016秋季学期)学号:***********班级:软件工程1班*名:***任课老师:蒋良卫作业内容:创建型设计模式日期:2016 年11 月6 日1 简单工厂模式1.1 作业题目使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W。
则返回一个对象Woman,用java语言实现该场景。
现在需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。
(1)绘制简单工厂模式结构视图;(2)请绘制该实例类图,并代码实现。
1.2 所用模式结构视图1.3 实例类图1.4 实例实现代码公共类:lrz0101Personpackage com.bluesky;public class lrz0101Person {public void play(){System.out.println("我还是一坨泥巴,女娲还没有构造我!");}}简单工厂类:lrz0101NvWapackage com.bluesky;public class lrz0101NvWa {public lrz0101Person madeMan(String s){lrz0101Person person = null;switch(s){case"M":person = new lrz0101Man();break;case"W":person = new lrz0101Woman();break;case"R":person = new lrz0101Robot();break;default:System.out.println("Sorry,女娲暂时没有造这种人的能力");person=new lrz0101Person();}return person;}}子类1:lrz0101Manpackage com.bluesky;public class lrz0101Man extends lrz0101Person{ public void play(){System.out.println("大家好,我是男人!我来自地球!");}}子类2:lrz0101Womanpackage com.bluesky;public class lrz0101Woman extends lrz0101Person{ public void play(){System.out.println("大家好,我是女人!我来自水星!");}}子类2:lrz0101Robotpackage com.bluesky;public class lrz0101Robot extends lrz0101Person{ public void play(){System.out.println("大家好,我是机器人!我来未知星球!");}}1.5 运行结果2 工厂模式2.1 作业题目现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器ImgReader,如gif图片读取器GifReader用于读取gif格式的图片,jpg图片读取器JPGReader用于读取jpg格式的图片。
软件工程作业题(含答案)
软件工程作业题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993年IEEE的定义:“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径”。
我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1.管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3.增量过程模型:包括增量模型,,RAD模型。
4.烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。
《软件工程》作业与参考答案
一、填空(15分)1、需求分析的任务:1)。
确定目标系统的综合要求A。
目标系统的功能要求B。
目标系统的性能要求C。
目标系统运行的环境要求D。
目标系统的扩展要求2)。
分析目标系统的数据要求A。
需要哪些数据?B。
数据之间有什么联系?C。
数据有什么属性及数据结构?D。
对数据的处理逻辑?3)。
导出目标系统的逻辑模型4)。
修正系统流程图5)。
修正系统开发计划6)。
开发原型系统2、模块设计准则1)、改进软件结构提高模块独立性(低耦合高内聚)2)、模块规模要适中3)、深度、宽度、扇入及扇出要适当4)、设计单入口单出口的模块5)、模块功能应该可以预测6)、降低接口的复杂性7)、模块的作用域应该在控制域之内3、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?1)、无法开发复杂程度高的软件2)、成本和进度估计不准3)、无统一科学的规范,软件不可维护4)、无质量保证,可靠性差5)、软件常不能满足用户的需求6)、无适当的文档资料7)、软件生产率太低4 、总体设计的任务1)、设计系统的物理实现方案2)、设计软件的整体结构,划分程序功能模块,决定模块间的接口关系和传递信息; 3)、设计系统全局的存贮数据结构4)、设计系统I/O的方式和格式;5)、设计系统安全性、出错处理及代码等6)、设计组装测试计划。
5、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
软件工程作业1
软件工程作业1软件工程作业11. 前言本文档旨在描述软件工程作业1的内容和要求,并提供相应的解决方案。
作业1主要涉及软件需求工程的一些基本概念和方法。
2. 背景软件需求工程是软件开发过程中的关键环节,它旨在识别和定义用户的需求,为软件开发团队提供指导,确保开发出符合用户期望的软件产品。
在软件工程作业1中,我们将通过一个简单的实例来了解需求工程的基本概念和方法。
3. 需求分析3.1 需求定义本作业要求开发一个简单的待办事项管理系统,主要功能包括:- 记录待办事项的标题和描述- 根据优先级对待办事项进行排序- 标记已完成的待办事项3.2 功能需求根据需求定义,我们可以确定系统的功能需求如下:- 用户能够添加新的待办事项,并提供相应的标题和描述信息。
- 用户能够查看已有的待办事项列表,并能够根据优先级进行排序。
- 用户能够标记已完成的待办事项,并将其从列表中移除。
3.3 非功能需求除了功能需求外,我们还需要考虑一些重要的非功能需求:- 界面友好:用户界面应该简洁明了,方便用户操作。
- 性能高效:系统应该能够迅速处理大量待办事项的增删改查操作。
- 可靠性:系统需要具备一定的容错能力,确保数据不会丢失,应对异常情况。
4. 系统设计4.1 架构设计本系统采用简单的三层架构设计,包括表示层、业务逻辑层和数据访问层。
- 表示层:负责与用户进行交互,接收用户的输入并显示相关信息。
- 业务逻辑层:负责处理用户的请求,进行待办事项的增删改查操作。
- 数据访问层:负责与数据库进行交互,存储和检索待办事项的信息。
4.2 数据库设计本系统采用关系型数据库来存储待办事项的信息,数据库中主要包含以下两个表格:- todos 表:用于存储待办事项的基本信息,包括标题、描述和优先级。
- completed 表:用于存储已完成的待办事项信息,包括标题、描述和完成时间。
4.3 用户界面设计用户界面应该简洁而直观。
主要包括下面几个界面:- 待办事项列表界面:显示用户添加的待办事项列表,并可根据优先级排序。
软件工程作业含答案
软件⼯程作业含答案软件⼯程第⼀章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。
(1)1.4 什么是软件⼯程? (1)1.5 简述软件⼯程的基本原则。
(1)1.6 软件⽣存周期分哪⼏个阶段?分别简述各个阶段的任务。
(1)1.9 简述各类软件过程模型的特点。
(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统⼯程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可⾏性分析的任务。
(3)3.1需求⼯程的重要性是什么?举出⾝边由于需求分析失败⽽造成整个项⽬失败的例⼦。
(3)3.2需求⼯程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3⼀个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
(4)3.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明⼀个系统的3个不同类型的⾮功能需求 (5)3.8软件需求分析的操作性原则和需求⼯程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?⾃⼰寻找⼀个实例,亲⾃写⼀个需求规约。
(5)3.10需求验证应该有哪些⼈参加?画出⼀个过程模型,说明需求评审应该如何组织。
5第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。
(6)4.6 耦合和软件可移植性的概念有何关系?举例说明⾃⼰的结论。
(6)4.7⽤⾃⼰的话描述信息隐蔽概念,并讨论信息隐藏与模块独⽴两概念之间的关系。
(6)4.8什么是模块独⽴性?设计中为什么模块要独⽴?如何度量独⽴性?模块功能独⽴有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使⽤数据流图进⾏需求分析的过程。
2016软件工程作业及答案
《软件工程》作业第一章1.什么是软件危机,它有哪些典型表现?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
2.简述产生软件危机的原因和解决的思路。
答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程教案--作业三解答(李梁)2016
b1 C1 c1
a A b B b2 b3 C3 c3 C2 c2 d
e G h E f F j g
D
k J K
l
m
L
13:07:42
重庆理工大学计算机科学与工程学院 李梁(liliang@)
17
d 变换 d E e ge h f j fg G F FG
f
13:07:42
重庆理工大学计算机科学与工程学院 李梁(liliang@)
13:07:42
重庆理工大学计算机科学与工程学院 李梁(liliang@)
27
作业三 概要设计与详细设计(第6-8章)
3-8、某交易所规定给经纪人的手续费计算方法如下: 总手续费等于基本手续费加上与交易 中的每股价格和股数有关的附加手续费。如果交易总 金额少于1000元,则基本手续费为交 易金额的8.4%;如果交易总金额在1000元到10000 元之间,则基本手续费为交易金额的 5%,再加34元;如果交易总金额超过10000元,则 基本手续费为交易金额的4%加上134元。
24
作业三 概要设计与详细设计(第6-8章)
3-6: 画出下列伪码程序的流图,计算它的环形复杂度。你 觉得这个程序的逻辑有什么问题吗? C EXAMPLE G=H+R LOOP:DO WHILE X>0 A=B+1 END DO IF A>10 IF F>0 THEN X=A ELSE Y=Z THEN PRINT G END IF IF Y<5 ELSE PRINT K THEN PRINT X,Y END IF ELSE IF Y=2 THEN GOTO STOP LOOP ELSE C=3 END IF END IF 13:07:42 重庆理工大学计算机科学与工程学院 李梁(liliang@)
软件工程作业(答案参考)
软件工程第一次作业1)软件工程适用范围?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
2)软件工程如何控制系统开发的复杂性的?答:可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。
4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。
请问如果你是项目负责人,你会选择为客户开发那个层次的软件?答:我会选择仅仅满足用户需求的软件。
因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。
而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。
若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。
《软件工程》作业及答案
《软件工程》作业及答案软件工程作业及答案软件工程是以工程化的原则和方法来开发、维护和管理软件的学科。
在软件工程的学习过程中,作业是一种重要的学习方式,能够巩固所学的知识,提高实践能力。
以下是一道软件工程作业题目及答案的介绍。
作业题目:设计一个简单的学生成绩管理系统,具有添加学生信息、录入学生成绩、计算总分和平均分、查询学生信息和成绩等功能。
作业答案:一、需求分析根据题目要求,我们需要设计一个学生成绩管理系统。
系统需要包含以下功能:1. 添加学生信息:输入学生的姓名、学号和班级等信息,将学生信息保存到数据库中。
2. 录入学生成绩:输入学生的学号和各科成绩,将成绩保存到数据库中。
3. 计算总分和平均分:根据学生的各科成绩,计算出总分和平均分,并将结果保存到数据库中。
4. 查询学生信息和成绩:根据学生的学号,查询并显示学生的基本信息和各科成绩。
二、系统设计1. 数据库设计:设计一个学生信息表和学生成绩表,学生信息表包含学号、姓名和班级等字段,学生成绩表包含学号、科目和成绩等字段。
2. 用户界面设计:设计一个简洁美观的用户界面,包括添加学生信息、录入学生成绩和查询学生信息和成绩等功能按钮。
3. 系统功能设计:根据需求,设计相应的函数和方法来实现添加学生信息、录入学生成绩、计算总分和平均分以及查询学生信息和成绩等功能。
三、系统实现1. 使用编程语言:选择适合的编程语言来实现系统,比如Java、Python等。
2. 编写代码:根据系统设计,编写代码实现各个功能。
3. 运行测试:对系统进行测试,确保各功能正常运行。
四、系统运行和使用1. 安装和配置:将系统部署到服务器或本地环境中,并完成必要的安装和配置工作。
2. 运行系统:启动系统,进入用户界面。
3. 使用系统:根据需要,点击相应的功能按钮进行学生信息的添加、成绩的录入和查询等操作。
五、总结与展望通过完成这个学生成绩管理系统的设计和实现,我们不仅巩固了软件工程的相关知识,还提高了实践能力。
软件工程作业及参考答案
软件工程作业1.什么是软件工程?产生软件工程的原因有哪些?答:软件的定义:软件工程是借助工程化的方法进行软件开发(先对软件进行设计再开发)。
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
产生软件工程的原因:(1)当时无法在预算内开发出高质量软件;(2)软件开发者无法制定具体目标,无法实现预测所需的资源,无法实现客户的期望;(3)软件工程的重点既在软件,也在工程;(4)软件开发具有复杂性和多变性的特征;(5)软件产品必须随着终端用户需求和目标环境的变化而变化。
2.常见的软件体系结构有哪些?分析它们的优缺点?答:2.1 管道/过滤器风格在管道/过滤器风格中,每个构件都有一组输人和输出,构件读输人的数据流,经过内部处理,然后产生输出数据流。
这里的构件被称为过滤器。
连接件被称为管道。
此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。
这种风格的优点:(1)使得软构件具有良好的隐蔽性和高内聚、低藕合的特点;(2)有助于设计者将整个系统的输人/输出行为看成是多个过滤器的行为的简单合成;(3)支持软件重用;(4)易于系统维护和增强系统性能;(5)允许对一些如吞吐量、死锁等属性的分析;(6)支持并行执行。
这种风格的缺点:(1)通常导致进程成为批处理的结构;(2)不适合处理交互的应用;(3)数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,导致了系统性能下降,增加了编写过滤器的复杂性,使数据传输量增加。
这种风格经常应用在UnixS hell中编写的应用系统中。
2.2 仓库风格在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。
按控制策略的选取分类,可以产生两个主要的子类。
若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
北理工《软件工程》在线作业
北理工《软件工程》在线作业一、单选题共20题,60分13分维护过程本质上是________的过程。
∙A改正错误或压缩的修改软件定义和开发∙B修改文档∙C修改软件配置∙D修改程序23分以下不是软件开发方法的主要工作模型的是()∙A螺旋模型∙B循环模型∙C瀑布模型∙D专家模型33分黑盒测试在设计测试用例时,主要需要研究________ ∙A需求规格说明与概要设计说明∙B详细设计说明∙C项目开发计划∙D概要设计说明与详细设计说明43分下面几种语言中哪一种是纯面向对象语言______。
∙A TC∙B C++∙C Prolog∙D Lisp53分经济可行性研究的范围包括_____∙A资源有效性∙B管理制度∙C效益分析63分在用例分析中,执行者是____。
∙A任何对计算机系统交互的实体∙B驻留在系统中的任何商业对象∙C任何对系统外部力量做出反应的∙D不是用在用例分析中的术语73分软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,程序员编写程序用_________。
∙A机器指令∙B汇编语言∙C数据库语言∙D高级语言83分若有一个计算类型的程序,它的输入量只有一个X,其范围是[-2.0,2.0],现从输入的角度考虑一组测试用例:-2.001,-2.0,2.0,2.001。
设计这组测试用例的方法是_________∙A条件覆盖法∙B等价分类法∙C边界值分析法∙D错误推测法93分维护软件时为了保证修改不会影响原来可以正常使用的功能,应安排_______测试。
∙A单元∙B集成∙C验收∙D回归103分当某一开发项目的进度有可能拖延时,应该_______。
∙A增加新的开发人员∙B分析拖期原因加以补救∙C从别的小组抽调人员临时帮忙∙D推迟预定完成时间113分软件测试是软件质量保证的主要手段之一,测试的费用已超过_____的30%以上。
因此,提高测试的有效性十分重要∙A软件开发费用∙B软件维护费用∙C软件开发和维护费用∙D软件研制费用123分下面软件详细设计工具的图示中,___中每个过程用一个盒子表示,盒子可以嵌套。
软件工程历考不重复真题
第一部分选择题(按原题号归类)未重复【2016年4月真题】1.提出软件工程概念的目的是倡导以工程的原理、原则和方法进行软件开发、以期解决出现的A.软件矛盾 B.软件危机 C.软件制约 D.软件滞留2.用于描述待开发产品/系统功能上得能力、性能参数或其他性质得是A.程序B.需求C.设计D.规约3.在初始发现需求得常用技术中,需求人员通过提出问题/用户回答这一方式,直接询问用户需求需要得技术是A.询问 B.问答 C.交谈D.审问6.在一个软件结构中,同一层次上模块总数的最大值是指模块得A.宽度B.深度C.扇入D.扇出7.在UML中,一种可以表达系统功能模型的图形化工具是A.用况图 B.状态图 C.类图 D.对象图【2016年10月真题】3.属于需求规约的基本性质是A.必要的B.可测试的 C.无歧义的 D.完整的4.可用以描述加工的是A.数据流图 B.系统结构图 C.结构化自然语言D.数据字典7.可视为面向对象技术发展中一个重要里程碑的是A.UML B.用况图 C.状态图 D.顺序图8.能可视化地表达系统静态结构模型的工具是A.包B.用况图C.顺序图 D.类图9.根据RUP实现活动,输入为构件和接口活动为完成单元测试,则输出为A.接口B.用况C.子系统D.构件12.一般来说,集成测试是以主控模块作为测试A.驱动模块 B.桩模块 C.类模块D.对象模块【2017年4月真题】2.需求分析产生的正式文档是A.项目开发计划 B.需求规约C.软件设计规约 D.可行性分析报告3.一般适用于规模较小的、复杂程度不大高的小型软件项目,或在获取SRS(草案)时使用的需求规约表达风格是A.形式化的B.非形式化的C.结构化的 D.非结构化的6.对模块的宽度影响最大的因素是模块的A.控制域B.作用域 C.扇出 D.扇人7.下列术语,可用于摘象客观世界中事物的是A.类B.关联 C.细化 D.泛化8.大学由若干专业系构成,则大学与专业系的关系是A.聚合 B.组合 C.细化D.泛化10.下列软件测试技术中,依据程序逻辑结构的是A.状态测试技术B.功能测试技术C.黑盒测试技术D.白盒测试技术【2017年10月真题】1.软件工程在20世纪80年代以来获得的主要成果有A.瀑布模型B.CASE产品 C.过程式语言 D.结构化方法3.需求规约的基本性质包括重要性和稳定性程度、可修改的、完整的和A.一致的 B.可重复的 C.可复用的 D.可测试的4.在建模过程中,可用以描述加工的工具是A.数据表 B.加工表 C.数据字典 D.判定表5.指不同模块之间相互依赖程度的度量是A.扇出 B.扇入 C.内聚D.耦合6.把要解决问题的过程分解为多个步骤或阶段,每一步是对上一步结果的细化,以接近问题的解法,该方法称为A.逐步求精 B.逐步分解 C.逐步抽象 D.逐步概括7.关联的多重性是指A.一个类有多少个方法被另一个类调用B.一个类的某个方法被另一个类调用的次数C.两个类所具有的相同的方法和属性的个数比D.类中对象参与一个关联的数目8.使用用况图可以为系统建模,描述软件系统行为的A.功能结构 B.业务过程结构 C.整体结构 D.状态结构9.RU的设计方法给出用于表达设计模型中基本成分的术语,包括子系统、设计类、接口和A.构件B.用况细化 C.体系结构描述 D.部署模型12.有效性测试的目标是发现软件实现的功能与需求规格说明书不一致的错误,通常采用的测试技术是A.黑盒测试技术B.用况测试技术 C.回归测试技术 D.性能测试技术【2018年4月真题】3.通过复审有关需要的陈述,或功能和性能目标的陈述等技术文档,而获取相关需求的初始发现需求技术是A细化B.提炼 C.求精D.抽象7.下列术语可用于表达客观世界中各种各样事物之间的关系的是A.类 B.对象 C.接口D.依赖9.根据RUP实现活动,输入为设计类和接口,活动为实现类,则输出为A.构件 B.用况 C.接口D.子系统10.下列软件测试技术中,依据软件行为描述的是A.结构测试技术B.路径测试技术C.黑盒测试技术D.自盒测试技术第二部分填空题(按原题号归类)未重复【2016年4月真题】16.计算机软件一般指计算机系统中的程序及其文档。
《软件工程》大题作业
附加题:1、对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x=l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
答题要求:(1)画出流程图。
(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
答:(1)流程图(2)用白盒法中条件组合覆盖设计测试用例:①y=2, z=0, x=4;②y=2, z=1, x=1;③y=1, z=0, x=2;④y=1, z=1, x=1.2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。
系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。
现要求用黑盒测试法中的边界值法写出测试用例。
答:输入条件测试用例说明测试数据报表日期的1个数字字符 5类型及长度5个数字字符200357个数字字符2003005有1个非数字字符2003.5全部是非数字字符MAY---6个数字字符200305日期范围在有效范围200301边界上选取200812数据200300200813月份范围月份为1月200301月份为12月200312月份<1 200300月份>12 2003133、对以下程序进行测试:PROCEDURE EX(A,B:REAL;VAR X:REAL);BEGINIF(A=3)OR(B> 1)THEN X:=A×BIF(A>2)AND(B=0)THEN X:=A-3END先画出程序流程图。
再按不同逻辑覆盖法设计一种(写出名称)测试数据。
答:语句覆盖A=3 B=04、程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016软件工程参考资料(建议先做再参考,内容仅供参考,对错责任自负)1.用户需求调查主要有哪些方法?需求评审有什么作用?
答:用户调查的方法就是用户需求信息收集方法,最常用的调查方法包括用户访谈、开访谈会、开展区域性问卷调查、用户重要资料收集。
主要作用是尽早发现潜在的问题,尽早纠正缺陷,控制纠正成本的滚雪球效应。
本阶段造成的错误如果能够及时地发现,或者在后面越早的阶段发现,就能够及早发现潜在的风险,及时做好防范的对策,做到未雨绸缪。
2.什么是软件生命周期?
答:软件的生命周期,亦称软件的生存周期。
它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。
3.简述软件质量特性与评价准则之间的关系。
答:特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。
4. 若非连通程序控制结构图的边数为12,结构图的结点数为10,计算程序结计算程序结构复杂度。
答:12-10+2=4
macall复杂度,c=e-n+2
5.简述信息隐蔽与模块独立性两概念之间的关系。
答:信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。
信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。
模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。
衡量模块独立程度的度量标准有两个:耦合和内聚。
耦合是指模块之间联系的紧密程度。
耦合度越高则模块的独立性越差。
内聚是指模块内部各元素之间联系的紧密程度内聚度越低模块的独立性越差。
6.简述进行软件测试的目的。
答:1、测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
2、成功的测试在于发现了迄今尚未发现的缺陷。
所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷
7. 什么是软件工程?构成软件工程的要素是什么?
答:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
构成软件工程的要素是
1.目标:生产具有正确性、可用性及开销合宜的产品。
2.过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
3.原则:是指围绕工程设计、工程支持及工程管理在软件开发过程中必须遵循的原则。
8.请简述软件测试的目标,并说明软件测试的主要策略。
答:软件测试的目标是在软件投入生产性运行之前,尽可能多地发现并排除软件中潜藏的错误,最终把高质量的软件系统交给用户。
软件测试的主要策略:软件测试的策略、方法和技术是多种多样的。
对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。
从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。
9. 如下图所示是某“仓库管理系统”的系统流程图。
假如该系统入库单将由采购部门输入,出库单将由销售部门输入,入出库分析报表将直接打印到计划部门,采购定单将直接打印到采购部门。
请使用数据流图表示该系统的逻辑加工流程。
答:如下图:
10. 说明B∕S结构中Web服务器的作用?
答:Web服务器的作用是将信息表示集中到了专门的“Web服务器”上,因此可使客户端程序更加简化。
客户机上已经不需要专门的应用程序,只需要有一个通用的Web浏览器,就可以实现客户端数据的应用。
11. 什么是软件工具? Visual C++是属于什么类型的软件工具?
答:软件工具是指在使用电脑进行工作和学习时经常使用的软件。
Visual C++是一个功能强大的可视化软件开发工具。
12. 瀑布模型有哪些特点?
答:瀑布模型的特点是
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。
迭代1解决最大的问题。
每次迭代产生一个可运行的版本,同时增加更多的功能。
每次迭代必须经过质量和集成测试。
13.可行性分析的意义主要体现在哪些方面?
答:(1)经济可行性(2)技术可行性(3)法律可行性(4)抉择
14. 概要设计中的主要任务有哪些?
答:确定设计方案、模块结构设计
15. 说明概要设计中模块抽象化的作用?
答:(1)过程的抽象:从系统定义到实现,每进展一步都可以看作是对软件解决方法的抽象化过程的一次细化。
(2)数据抽象:允许设计人员在不同层次上描述数据对象的细节,更重要的是,可以通过定义与该数据对象相关的操作来规定数据对象。
(3)控制抽象:可以包含一个程序控制机制而无须规定其内部细节。
16. 界面设计中需要考虑哪些方面的用户因素?
答:(1)可使用性(2)灵活性
(3)复杂性及可靠性
17. 白盒测试的覆盖标准有哪些?黑盒测试是什么测试?
答:
A、(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)判定-条件覆盖(5)条件组合覆盖(6)路径测试
B、又称功能测试,其测试用例完全是根据程序的功能说明来设计的。
18. 某“人力资源管理系统”的组成是:
答:
(1)人事管理子系统,包括:档案管理、岗位设置、人事异动等功能。
(2)业绩管理子系统,包括:业绩标准设置、业绩录入、绩效评估等功能。
(3)工资管理子系统,包括:工资标准设置、工资数据生成、工资结构分析、人力成本分析等功能。
(4)用工管理子系统,包括:人力规划、人员调配、新人招聘等功能。
请使用功能层次图直观描述该“人力资源管理系统”的组织结构。
答如下图:
19. 软件工程方法?简要说明一些主要的软件工程方法。
答:软件工程方法是为软件开发提供了“如何做”的技术。
主要的工程方法:结构化方法、面向对象方法和形式化方法。
20. 请列出有利于提高可维护性的软件开发和程序设计技术。
答:1.明确软件工程的质量目标
2.利用先进的软件技术和工具
3.选择便于维护的程序设计语言
4.采取有效的质量保证措施 5.完善程序的文档。