高级软件工程试题.docx

上传人:b****2 文档编号:174815 上传时间:2023-04-28 格式:DOCX 页数:26 大小:202.11KB
下载 相关 举报
高级软件工程试题.docx_第1页
第1页 / 共26页
高级软件工程试题.docx_第2页
第2页 / 共26页
高级软件工程试题.docx_第3页
第3页 / 共26页
高级软件工程试题.docx_第4页
第4页 / 共26页
高级软件工程试题.docx_第5页
第5页 / 共26页
高级软件工程试题.docx_第6页
第6页 / 共26页
高级软件工程试题.docx_第7页
第7页 / 共26页
高级软件工程试题.docx_第8页
第8页 / 共26页
高级软件工程试题.docx_第9页
第9页 / 共26页
高级软件工程试题.docx_第10页
第10页 / 共26页
高级软件工程试题.docx_第11页
第11页 / 共26页
高级软件工程试题.docx_第12页
第12页 / 共26页
高级软件工程试题.docx_第13页
第13页 / 共26页
高级软件工程试题.docx_第14页
第14页 / 共26页
高级软件工程试题.docx_第15页
第15页 / 共26页
高级软件工程试题.docx_第16页
第16页 / 共26页
高级软件工程试题.docx_第17页
第17页 / 共26页
高级软件工程试题.docx_第18页
第18页 / 共26页
高级软件工程试题.docx_第19页
第19页 / 共26页
高级软件工程试题.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高级软件工程试题.docx

《高级软件工程试题.docx》由会员分享,可在线阅读,更多相关《高级软件工程试题.docx(26页珍藏版)》请在冰点文库上搜索。

高级软件工程试题.docx

高级软件工程试题

软件工程

周丽媛

一.如何建立一种软件生产的激励机制和良好的产业生态环境?

答:

建立软件生产的激励机制可以根据软件设计人员的贡献给予相应的奖励,同时在设计团队之间引入竞争机制;建立软件的产业生态环境,需要与政府合作,通过促进政策、教育和维权等方式,建立更加健康的软件产业生态环境。

积极应对各种新挑战、资产管理促进技术创新、打击盗版多管齐下,营造一个良好的知识产权环境,为软件产业健康发展提供更好的保障。

二.如何通过软件演化来满足用户快速变化的需求?

答:

随时捕获用户的需求,更新软件功能,并且要根据社会环境预测用户需求,研发新技术,不断设计更新软件功能;处理之外也可以将不同功能的软件进行集成组合获取更加复杂的功能,这样可以应对用户快速变化的需求,同时也减少了更新软件的周期。

刘翘铭

1.简述UML实际建模过程。

答:

UML建模过程是一个迭代过程。

每次迭代都建立相应的模型。

分为以下几个阶段:

①分析阶段。

建模的目的是捕捉系统的功能需求,分析、提取所开发系统的“客观世界”领域的类以及描述它们的合作关系。

常以用例图为首选模型。

②设计阶段。

建模的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。

常建立以类图为主的静态模型,及包括状态模型、顺序模型、活动模型和合作模型等动态模型。

③实现阶段。

主要工作就是进行编码,同时对已构造的模型作相应的修正。

④配置阶段。

通过模型描述所开发系统的软硬件配置情况建立配置模型。

⑤测试阶段。

使用前几个阶段所构造的模型来指导和协助测试工作。

 

2.某电器集团公司下属的厂包括技术科、生产科等基层单位。

现在想建立一个计算机辅助企业管理系统,其中:

生产科的任务是:

(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。

(2)根据车间实际生产日报表、周报表调整月生产计划 。

(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。

(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间技术科的任务是:

     

(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。

     

(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。

 试写出以上系统中生产科和技术科处理的软件结构图。

答:

3.

Software engineering exists in a variety of applications exist in all aspects of software development. The program design typically include program design and coding of the iterative process, it is a stage of software development. Software engineering, software project seeks to provide guidance in all aspects,from feasibility analysis software until the software after completion of maintenance work. Software engineering that software development and marketing activities are closely related. Such as software sales, user training,hardware and software associated with installation. Software engineering methodology that should not be an independent programmer from the team and to develop, and the program of preparation can not be divorced from the software requirements, design, and customer interests. Software engineering design of industrial development is the embodiment of a computer program.

软件工程存在于各种应用中,存在于软件开发的各个方面。

而程序设计通常包含了程序设计和编码的反复迭代的过程,它是软件开发的一个阶段。

 软件工程力图对软件项目的各个方面作出指导,从软件的可行性分析直到软件完成以后的维护工作。

软件工程认为软件开发与各种市场活动密切相关。

比如软件的销售,用户培训,与之相关的软件和硬件安装等。

软件工程的方法学认为一个独立的程序员不应当脱离团队而进行开发,同时程序的编写不能够脱离软件的需求,设计,以及客户的利益。

 软件工程的发展是计算机程序设计工业化的体现。

李芬田

请从软件开发者,软件分类和用户的角度来研究一下软件的定义?

答:

第一,从软件开发者角度定义,软件=程序+文档,而程序又是由算法和数据组成,算法提供了解决问题的方法。

软件开发文档是软件开发使用和维护过程中的必备资料。

它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。

第二,根据软件的分类定义,软件大体可以分为系统软件和应用软件两大类,系统软件是电脑的基础软件,例如windows,ms-dos,应用软件是指具有具体功能的软件,并且是在系统软件上运行的,例如EXE文件COM文件windows是起基础作用的软件,一台电脑如果没有系统软件,并且是在系统软件上运行的,例如,财务软件,办公软件,广告设计,各种游戏等。

第三,从用户角度看,软件技术硬件的附庸,软件是单独的产品,软件是许可证,软件是服务。

2.什么是软件危机?

软件危机的表现是什么?

其产生的原因是什么?

解:

软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。

一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。

在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

软件危机表现在以下四个方面:

(1)经费预算经常突破,完成时间一再拖延。

由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。

主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。

由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。

(2)开发的软件不能满足用户要求。

开发初期对用户的要求了解不够明确,未能得到明确的表达。

开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。

(3)开发的软件可维护性差。

开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。

程序结构不好,运行时发现错误也很难修改,导致维护性差。

(4)开发的软件可靠性差。

由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。

造成软件危机的原因是:

(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发管理困难而复杂。

(3)软件开发费用不断增加。

(4)软件开发技术落后。

(5)生产方式落后。

6)开发工具落后,生产率提高缓慢。

唐东凯

简述一下2—8定律在高级软件工程中的应用

二八定律又叫80/20定律,是最省力的法则、不平衡的原则,被广泛应用与社会学及企业管理学中。

所谓二八定律,即是意大利经济学家帕累托发现:

社会上20%的人占有80%的社会财富。

而对于我们所学的软件工程,也有其用武之地。

二八定律主要用于软件测试中,它是软件测试的基本原理。

软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求,或者弄清楚预期结果与实际结果之间的差别的过程。

软件测试是为了发现程序中的错误而执行程序的过程。

在软件测试过程中应该注意测试中的“群集现象”,即发现问题越多的地方,隐含的缺陷也越多,需要重点处理。

这里提到的群集现象也就是我们一般所说的bug的群居现象。

如果简单归纳一下软件测试中的80-20定律,大致有这些:

1.80%的bug隐藏在20%的代码中

2.80%的bug是由20%的测试人员发现的

3.80%的bug属于20%的错误类型

4.80%的时间用在测试计划、测试设计、测试实现上,20%的时间用于测试执行上

5.80%的bug通过静态测试发现,20%的bug通过动态测试发现

6.80%的bug通过人工测试发现,20%的bug通过自动化测试发现

7.对于一个测试人员而言,20%的时间发现80%的bug,而剩余的80%的时间只能发现20%的bug。

 

二.如何理解敏捷视角下的软件过程

1、敏捷软件工程。

它是哲学理念和一系列开发指南的综合,这种哲学理念推崇让客户满意和软件尽早增量发布。

开发方法强调超越设计和分析的发布及开发人员和客户之间主动和持续的沟通。

是类软件工程,保留了基本框架活动,但将其缩小到推动项目组朝着构建和交付发展的最小任务集。

敏捷建模(AM)认为建模对于所有的系统都是必要的,但是模型的复杂度、类型和规模必须根据所构建的软件来调节。

2、敏捷联盟的12条原则。

 

(1)尽早交付有价值的软件来让顾客满意。

(2)在后期也欢迎变更,利用变更来为客户创造竞争优势。

 

(3)交付的时间间隔越短越好。

 

(4)业务人员和开发人员必须天天在一起。

 

(5)围绕受激励的个人构建项目。

 

(6)最有效的信息传递方式是面对面交谈。

 

(7)可工作软件是进度的首要度量标准。

 

(8)提倡可持续的开发速度。

 

(9)关注优秀的技能和好的设计。

 

(10)简单是必要的。

 

(11)好的架构和设计出自于自组织团队。

 

(12)每隔一定时间,反省工作,调整行为。

  

3、XP(极限编程) 

XP包括了策划、设计、编码和测试4个框架活动的规则和实践。

策划活动开始于建立一系列描述待开发软件必要特征与功能的“故事”,XP团队成员评估每一个故事并给出以开发周数为度量单位的成本。

设计严格遵循KIS原则,适用简单而不是复杂的表述。

鼓励适用CRC卡来组织相关的对象和类,鼓励重构。

 

编码一个关键概念是结对编程。

两个人面对同一台计算机共同为一个故事开发代码。

实施中两个人担当的角色略有不同。

测试。

在编码开始之前建立单元测试是XP的关键因素,所建立的单元测试应当适用一个可以自动实施的框架,易于重复执行,这种方式支持代码修复后的回归测试策略。

 

胡睿

题目1:

结构化程序设计的主要内容是什么?

它有什么优缺点?

答案:

结构化程序设计的思路是:

自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。

结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。

当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。

由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。

题目2:

系统设计的内容是什么?

系统设计阶段先从高层入手,然后细化。

系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供基础

(1)系统分解

系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类,关联,操作,时间和约束的集合。

每次分解的各子系统数目不能太多,最底层子系统称为模块。

(2)确定并发性

分析模型,现实世界及硬件中不少对象均是并发的。

系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。

后者可以放在一起,而综合成单个控制线或任务。

(3)处理器及任务分配

各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:

估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各个子系统的各物理单元的连接。

(4)数据存储管理

系统中的内部数据和外部数据的存储管理是一项重要的任务。

通常各数据存储可以将数据结构,文件,数据库组合在一起,不同数据存储要在费用,访问时间,容量以及可靠性之间做折中考虑

(5)全局资源处理

必须确定全局资源,并且制定访问全局资源的策略。

全局资源包括:

物理资源,空间和逻辑名字。

如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。

(6)选择软件控制机制

分析模型中所有交互行为都表示为对象之间的事件。

系统设计必须从多种方法中选择某种方法来实现软件的控制。

(7)人机交互接口设计

设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。

题目3:

软件测试类型都有哪些?

请试着分别比较这些不同与联系?

答案:

测试类型有:

功能测试,性能测试,界面测试。

  

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。

是把测试对象看作一个黑盒子。

利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

采用黑盒技术设计测试用例的方法有:

等价类划分、边界值分析、错误推测、因果图和综合策略。

  

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各  

项性能指标进行测试。

负载测试和压力测试都属于性能测试,两者可以结合进行。

通过负载  

测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指  

标的变化情况。

压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能  

提供的最大服务级别的测试。

 

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。

而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。

同时界面如同人的面孔,具有吸引用户的直接优势。

设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。

性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。

界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?

做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试  

武杰

1、Q:

Nomatteryouarewhatmajor,sincelearningthiscourseinadvancedsoftwareengineering,sowouldyoupleasetalkaboutthecoursewhicheffectonthedevelopmentofyouinthefuture?

(Pleaseviewthecomputerprofessionalstudents.)

A:

Voiceyouropinions

2、Q:

ThroughthecourseMr.Lee,whatknowledgehaveyoulearned?

Combinedwiththeactualtalkaboutyourtipsandfeeling?

A:

Voiceyouropinions

庞海龙

高级软件工程中提到的5大需求、4大设计分别指的是什么?

请你结合自己的理解谈谈软件需求获取的常用方法。

高级软件工程中提到的5大需求,分别是功能需求、性能需求、数据需求、环境需求、将来的需求。

4大设计指的是数据设计、架构设计、接口设计、模块设计。

需求获取是一个确定用户对软件看法和要求、理解不同用户类的需求和限制的过程,常用的方法有三种,分别是

组织人员

组织人员,建立分析小组、其中包括领域专家:

主角,也就是用户方面的问题专家,了解软件所解决问题的领域知识。

系统分析员:

导演,软件开发人员方面的人,其主要分析抽象领域专家的知识形成软件模型。

1、客户访谈

客户访谈主要是调查研究,主要包括:

(1)了解系统的需求。

软件开发常常是系统开发的一部分,仔细分析研究系统的需求规格说明,对软件的需求获取是很有必要的。

(2)市场调查:

了解市场对待开发软件有什么样的要求;了解市场上有无与待开发软件类似的系统。

(3)访问用户和用户领域的专家。

把从用户那里得到的信息作为重要的原始资料进行分析;(4)考察现场。

了解用户实际的操作环境、操作过程和操作要求。

2、问题分析与确认

组织分析并评审,最终确定问题是否比较完整。

刘凯

一、软件工程中的哲学思想

1.软件设计方法的改变中体现了唯物辩证法中发展的观点

说明:

从非结构化程序,到结构化程序,再到目前的面向对象程序,这一改变过程正体现着发展的观点。

符合历史发展趋势的新的设计方法逐渐战胜替代旧的设计方法,这是由新旧事物的本质和发展的辩证本性决定的。

新生的设计方法在旧设计方法的基础上诞生,对旧方法的因素取精华去糟粕,必将最终替代旧方法。

2.大型软件开发过程中资金、开发时间、开发人员之间的辩证联系。

说明:

资金不足会导致开发时间的拉长和开发人员的不满懈怠;而开发时间的拉长也会反过来增加资金的消耗,对开发人员的状态也有不小的影响;开发人员的能力和状态直接影响到资金和开发时间。

三者是相互影响、相互制约和相互作用的。

3.需求设计和具体编码是原因和结果的辩证关系

说明:

首先需求设计和具体编码有时间顺序,具体编码必须在需求设计之后进行;其次两者之间存在必然的联系,因为需求设计的结果是具体编码的参考。

并且两者互为因果,相互影响,需求设计决定具体编码,而具体编码过程中会发现需求设计的一些不足处,然后进行修改。

4.软件维护过程中体现矛盾的斗争性

说明:

在软件的使用过程中,开发人员必须对软件进行维护,修补一些Bug、漏洞,完善强化软件的功能。

但常常会出现这样的问题,修改一些功能很有可能会牵涉到其他的功能,甚至会导致其他功能的性能下降,这就存在了矛盾。

这时就需要权衡利弊,特别要坚持唯物辩证法的重点论与两点论的统一。

5.软件功能和底层代码之间是现象和本质的关系说明:

软件功能是底层代码的外在表现,而底层代码是一个软件的根本性质。

两者既对立又统一,首先两者有原则的界限,不能混同;其次软件功能由底层代码决定,而底层代码由软件功能体现。

Asthesoftwareplaysmoreandmoreimportantrolesintoday'sinformationsociety,thesoftwarereliabitity,safetyandsecurityarestronglyrequired.Thestateofartofitsengineeringtechnologiesforthishighconfidencesoftwareandthechallengesitfacedareworthresearching.Basedontheformalmethods,thisconfidencesoftwaredevelopingtrendsanditskeytechnicalpointsareworthdiscussing.

随着软件在信息社会中发挥日益重要的作用,人们对软件可靠性、可靠安全性和保密安全性等可信性质的要求也越来越高;高可信软件工程的现状和面临的主要挑战非常值得研究。

高可信软件工程技术的现状和面临的主要挑战,以及基于形式化方法的高可信软件技术的发转趋势值得探究。

蒋权

一.请描述一下UML里面静态建模及动态建模都有哪些图?

静态建模:

创建并建立一个系统的静态特征1.用例图:

描述系统功能及功能的使用者.2.类图:

表现系统里实体的关系,责任,类和类之间的关系,属性及方法.3.对象图:

当类图不能完全显示关系时用对象图.描述对象的属性,对象名,方法.4.组件图:

对类功能的封装,一个组件包含多个类.虚线:

表示依赖关系.5.部署图:

描述系统中的物理结构.

实线:

表示连接动态建模:

用来展示系统的行为1.时序图:

描述对象的交互过程.以时间为参考(强调的是时间顺序).虚线:

(生命线)表示对象的生命周期.实线:

对象消息.虚线:

返回消息.长方形:

活动(激活).叉:

对象消亡.2.协作图:

跟时序图一样,但强调对象的连接关系.3.状态图:

描述对象的自身的状态(一个对象的类型不同可能行为很古怪,行为变化很大).4.活动图:

(类似于流程图)描述一个环境中的交互顺序.

1、说出软件工程的四项基本原则?

选取适合的开发范型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。

2、请列出软件工程的生命周期的6个阶段?

问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护。

3、软件生产过程中有哪些活动?

什么是软件生存周期?

软件生产过程包括的活动有:

需求分析、概要设计、详细设计、编码、测试、发布、维护。

软件生产周期是指软件产品从研制、发布、维护到被新的产品代替这一整个产品生产过程。

4、主要的软件开发方法有哪些?

主要有何不同?

二.软件需求分析的任务是什么?

有哪些主要步骤?

需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。

 主要步骤:

 1.问题识别

    

(1) 功能需求:

明确所开发的软件必须具备什么样的功能。

    

(2) 性能需求:

明确待开发的软件的技术性能指标。

    (3) 环境需求:

明确软件运行时所需要的软、硬件的要求。

    (4) 用户界面需求:

明确人机交互方式、输入输出数据格式。

  2. 分析与综合,导出软件的逻辑模型

    分析人员对获取的需求,进行一致性的分

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2