高级软件工程复习题.docx
《高级软件工程复习题.docx》由会员分享,可在线阅读,更多相关《高级软件工程复习题.docx(24页珍藏版)》请在冰点文库上搜索。
高级软件工程复习题
Advancedsoftwareengineering
Chapter1AnIntroductiontoSoftwareEngineering
1.Whysoftwareengineeringisimportant?
非正规的软件开发不奏效,费用高不可靠难以维护,应该使用新的技术和方法来控制大型软件系统固有的复杂性,这就是软件工程。
2.Whatissoftware?
Whatissoftwareengineering?
软件(software)是计算机程序和所有使程序正确运行的相关文档和配置信息。
软件工程(softwareengineering)是关于软件生产的各个方面的工程学科。
3.Whatisthedifferencebetweensoftwareengineeringandcomputerscience?
计算机科学侧重理论和基础,而软件工程侧重于软件开发和交付的实际活动。
4.Whataretheattributesofgoodsoftware?
软件应具有用户所需的功能和性能,而且应该可维护、可靠、可用
5.WhatisCASE?
旨在使软件过程活动自动化的软件系统,常用作方法支持
6.Whatisthedifferencebetweensoftwareengineeringandsystemengineering?
系统工程侧重基于计算机系统开发的所有方面,包括硬件、软件和处理工程。
软件工程只是它的一部分。
7.Whataresoftwareengineeringmethods?
软件开发的结构化研究方法,包括:
系统模型、标记法、规则、设计忠告和过程指南
8.Whatarethekeychallengesfacingsoftwareengineering?
要面临一流系统、不断增长的多样性以及减少递交次数等问题的挑战
9.Issuesofprofessionalresponsibility
严格保守雇主或客户的机密,实事求是的表述自己的工作能力,知晓专利权、著作权等知识产权的法律,不滥用他人的计算机。
10.Codeofethics–principles
公众感—与公众利益一致
客户和雇主—满足客户和雇主的最大利益
产品—达到尽可能高的行业准则
判断力—公正和独立的职业判断力
管理—拥护并倡导合乎道德的有关软件开发和维护管理工作
职业感--弘扬职业正义感和荣誉感,尊重社会公众利益
同事—公平的对待和协助每一位同事
自己—毕生学习专业知识,倡导合乎职业道德的职业活动方式
11.Ifyouareasoftwareengineer,whatcodeofethics–principlesshouldyouobey?
Anddescribewhy?
(如果你是软件工程师,以应该遵守什么样的道德准则?
说明为什么)
参考上题解答
Chapter2Socio-technicalSystems
2.Whatmodaldoesthesystemengineeringprocessusuallyfollow?
Andwhy?
系统工程一般遵循需求定义、系统设计、子系统开发、系统集成、系统安装、系统进化和系统退役的过程。
系统工程过程在系统开发期间返工的余地缩小,并且学科间相互渗透。
3.Whatarethefivestepsofthesystemdesignprocess?
分割需求、识别子系统、为子系统分配需求、描述子系统功能、定义子系统接口
4.Whysystemevolutionisinherentlycostly?
1、必须从业务和技术的角度对提议的变更做仔细的分析,变更生效之前必须经过有关人员的认可
2、子系统不是孤立的,对一个子系统的变更可能导致其他子系统的性能或行为产生影响,往往也需要变更其他子系统。
3、原始设计决策的理由通常未被记录
4、系统长时间运行后,其结构被修改得复杂而凌乱,系统进化成本进一步增高。
2.Systemmodellingisusuallypresentedasablockdiagram.
3.Aftercompletion,thesystemhastobeinstalledinthecustomer’senvironment.
4.Thesystemsengineeringprocessincludesspecification,design,development,integrationandtesting.Systemintegrationisparticularlycritical
5.Listthreeexamplesofemergentproperties.Volume、Reliability、Security、Repairability、Usability
6.Thesystemdesignprocessincludes:
Partitionrequirements,identifysub-systems,Assignrequirementstosub-systems,specifysub-systemfunctionality,Definesub-systeminterfaces.
7.Whatisemergentsystemproperties?
Pleaselistthreeexamplesofemergentproperties?
遗留系统是以计算机为基础的社会-技术系统,他们是在过去开发出来,往往采用在今天看来是旧的和不再使用的技术。
这些系统不仅包括硬件和软件,还包括遗留的过程和手续。
1、系统硬件—为大型机硬件设计,现在已不再使用或是维护成本过高或是与当前的IT购买政策不相容。
2、支持软件—所依赖的操作系统、实用程序开发工具可能被废弃,无法得到支持。
3、应用软件—一般由多个程序组成,在不同时间段开发。
4、应用数据—系统处理的,积累了大量的数据,存在不一致或者重复。
5、业务过程—为达到一定目的而使用的过程,围绕遗留系统设计,受限于遗留系统的功能。
6、业务策略和规则—规定业务应该怎样完成以及对业务的约束。
8.Thesystemsengineeringprocess(系统工程过程)
9.Thefigurebelowshowsintruderalarmsystem
Filltheblankswiththecomponenttypesinalarmsystemfromthefigure.
Communication:
TelephoneCaller
Sensor:
Movementsendor,doorsensor
Interface:
Siren,Voivesynthesizer
Actuator:
AlarmController
Co-ordination:
Voivesynthesizer
10.Thesystemdesignprocess(系统设计过程)
11.What’sEmergentproperty?
参见第7题
Chapter3SoftwareProcesses
1.Genericactivitiesinallsoftwareprocessesare:
specification,design,
implementationandvalidationandevolution.
2.ListthreekindsofCASEsystems(nottools).
工具—用以支持单个的过程任务
工作平台—用以支持描述、设计等过程阶段和活动
环境—支持全部软件过程或至少是软件过程的主要部分
3.Listthreekindsofgenericsoftwareprocessmodels.
瀑布模型--采用一些基本的过程活动,即描述、开发、有效性验证和进化,并且使用单独的过程阶断表现这些活动
进化式开发—在描述活动、开发活动和有效性验证活动中不断修改内容。
基于组件的软件工程—基于已经存在的很多可复用组件
4.WhataretheRUP(RationalUnifiedProcess)phases?
开端—建立系统的一个业务案例
细化—增进对问题域的理解,建立系统的体系框架,给出项目计划并识别关键项目风险
构造—系统设计、编程和测试
转换--将系统从开发单位转移到用户单位,使之在真实环境工作。
5.Whataretheproblemsofevolutionarydevelopment?
过程不可见—管理者需要经常的交付来把握进度,如果系统开发比较快,产生每个版本的文档不划算
系统结构通常比较差—连续的变更损坏了系统的结构
6.Whataretheadvantagesoftheincrementaldevelopment
客户无需等到整个系统的实现
客户可以将早期的增量作为系统原型,获得后续增量系统的需求经验。
项目总体性失败的风险比较低
最重要的系统接受了最多的测试
Extremeprogramming(极限编程)
7.Pleaselistthreetypesofgenericsoftwareprocessmodels:
Thewaterfallmodel,EvolutionarydevelopmentandComponent-basedsoftwareengineering.
8.Listatleastgenericsoftwareprocessmodels.
瀑布模型--采用一些基本的过程活动,即描述、开发、有效性验证和进化,并且使用单独的过程阶断表现这些活动
进化式开发—在描述活动、开发活动和有效性验证活动中不断修改内容。
基于组件的软件工程—基于已经存在的很多可复用组件
9.WhatisthesoftwareprocessandWhatisthemainactivitiesofthesoftwareprocess?
软件过程是一组引发软件产品生产的活动。
1、软件描述
2、软件设计和实现
3、软件有效性验证
4、软件进化
10.Whatkindofmodeldoesthefollowingdiagramshow?
Whenthemodelisappropriate
for?
此图描述的是“瀑布”模型
在全面理解需求,而且在系统开发过程中不太可能发生重大改变的时候,应用此模型。
11.Thediagramshowswhatkindofmodelofthesoftwareprocess?
Andwhatdoeseachloopinthemodalrepresent?
此图描述的是“螺旋”模型
每个回路表现的是软件开发的一个阶段
Inspiraldevelopment,eachloopinthespiralissplitintofoursectors.Thefoursectorsare目标设置,风险评估和规避,开发和有效性验证,规划.
12.WhySoftwareevolutionisneeded?
从头开发的系统很少,将软件系统的开发和维护看作一个连续的过程更有意义,也就是将其开做一个进化过程。
13.Whatisrequirementsengineeringprocess?
Whatisthemainfourperiodofrequirementsengineeringprocess?
需求工程的目标是建立和维护系统的需求文档,主要过程包括系统可行性研究、需求导出和分析、需求描述、需求有效性验证。
14.Extremeprogrammingisbasedaroundthedevelopmentanddeliveryofverysmall增量
offunctionality.
15.Therearefourfundamentalprocessactivitiesthatarecommontoallsoftwareprocesses.Theseare:
Specification,Design,Validation,Evolution.
16.Inspiraldevelopment,eachloopinthespiralissplitintofoursectors.Whatarethey?
Objectivesetting,Riskassessmentandreduction,Developmentandvalidation,Planning.
17.Whatisthemaindrawbackofthewaterfallmodel?
瀑布模型将项目生硬的分解成确切的阶段,难以响应用户的需求变更
18.Whenisthewaterfallmodelappropriate?
在全面理解需求,而且在系统开发过程中不太可能发生重大改变的时候,应用此模型。
19.Lowerriskofoverallprojectfailureinincrementaldevelopment,why?
客户无需等到整个系统的实现
客户可以将早期的增量作为系统原型,获得后续增量系统的需求经验。
最重要的系统接受了最多的测试
Chapter4Projectmanagement
1.Softwareprojectmanagementactivitiesinclude:
,,
,.
Proposalwriting.
Projectplanningandscheduling.
Projectcosting.
Projectmonitoringandreviews.
Personnelselectionandevaluation.
Reportwritingandpresentations
2.Softwareprojectplanstructureincludes:
,,
,,
.
Introduction.
Projectorganisation.
Riskanalysis.
Hardwareandsoftwareresourcerequirements.
Workbreakdown.
Projectschedule.
Monitoringandreportingmechanisms
3.What’sMilestone?
里程碑就是一项软件过程活动的终结
4.Whatisamilestoneinprojectmanagement?
参见3题
5.Riskfactors(风险因素)
6.Pleasedescribetheprocessofriskmanagement.
风险识别、风险分析、风险规避、风险监控
7.Barchartsandactivitynetworksaregraphicalnotationswhichareusedtoillustratetheprojectschedule.Barchartsshowwhoisresponsibleforeachactivityandwhentheactivityisscheduledtobeginandend.Activitynetworksshowthedependenciesbetweenthedifferentactivitiesmakingupaproject.
ConsiderthesetofactivitiesshowninTable3.1.Thistableshowsactivities,theirduration,andactivityinterdependencies.
Givendependencyandestimateddurationofactivities,anactivitynetworkwhichshowsactivitysequencesmaybegeneratedasthefollowingFigure3.1.
Table3.1Taskdurationsanddependencies
Figure3.1Anactivitynetwork
Figure3.2istheactivitybarchartoftheproject.Theprojectbarchartshowstheextentofthepossibledelayasashadedbar.
Figure3.2Activitybarchart
Table3.2suggestsanallocationofstafftotheactivitiesillustratedinFigure3.2.
Table3.2Allocationofpeopletoactivities
Task
Engineer
T1
Jane
T2
Anne
T3
Jane
T4
Fred
T5
Mary
T6
Anne
T7
Jim
T8
Fred
T9
Jane
T10
Anne
T11
Fred
T12
Fred
Figure3.3suggestsstaffallocationvstimechart.
Figure3.3Staffallocationvstimechart
Answerthefollowingquestions:
(1)WhichtaskistaskT3dependenton?
ItisrightthatT1mustbecompletedbeforeT3starts?
T3依赖于T1,T3开始前T1必须完成
(2)Beforeprogresscanbemadefromonemilestonetoanother,allpathsleadingtoitmustbecomplete.Accordingtothis,whattask(s)mustbefinishedbeforetaskT9started?
T3和T6完成后,T9才可以开始
(3)Theminimumtimerequiredtofinishtheprojectcanbyestimatedbyconsideringthelongestpathintheactivitygraph(thecriticalpath).Inthiscase,howmanyworkingdaysdoestheprojectneedatleast?
Pleasenotifythecriticalpath.
11周或者55个工作日。
T1(8)-T3(15)-T9(15)-T11(7)-T12(10)
(4)IfT8isdelayed,doesitaffectthefinalcompletiondateoftheproject?
Why?
T8不再关键路径上,T8延时不会导致最后完成日期
(5)HowmanyworkingdaysistheextentofthepossibledelayofT4?
WhataboutT7?
Why?
T4(10)-T5(10)-T10(15)35天
T4(10)-T8(25)35天总天数为55天,T4最多可延期20天
T1(8)-T7(20)-T10(15)43天总天数为55天,T7最多可延期12天
(6)Doesstaffhastobeassignedtoaprojectatalltimes?
InFigure3.3,T6andT10areassignedtoAnne,butthereisainterveningperiodsbetweenT6andT10,why?
工作人员不必把所有时间都分配到一个项目。
这段时间他们可以休假、做别的项目或者参加培训和其他活动。
Chapter5SoftwareRequirementsandRequirementsEngineeringProcess
1.Milestonesintherequirementprocess,isthecorrespondingmilestoneofFeasibilityStudy.
2.Requirementsmeasures(需求度量)
3.What’sProblemswithNLspecification?
1.自然语言的理解依赖于读者和作者对同一个词语的一致的解释
2.自然语言书写的需求描述太过随意性
3。
没有一个简单的方法,将自然语言书写的需求模块化。
4.Pleasedescriberequirementsdocumentstructure
?
1.引言
1.1需求文档的目的
1.2产品范围
1.3定义、首字母缩写与缩略语
1.4参考文献
1.5文档其余部分的概览
2.一般描述
2.1产品透视
2.2产品功能
2.3用户特征
2.4一般约束
2.5假设和依赖型
3.专门需求:
覆盖功能和非功能以及接口的要求
4.附录
5.索引
Chapter6Object-OrientedDesign
1.What’sUML?
UML,统一建模语言,已经成为了一个标准的建模语言,尤其是面向对象的建模。
2.Object-orientedanalysis,designandprogrammingarerelatedbutdistinct.
OOAisconcernedwithdevelopinganobjectmodeloftheapplicat