最新软件工程导论期末复习Word文档格式.docx
- 文档编号:7130615
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:23
- 大小:498.53KB
最新软件工程导论期末复习Word文档格式.docx
《最新软件工程导论期末复习Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新软件工程导论期末复习Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
People(mostimportant)
Tools
Method
Process
●WhatisthedifferencebetweenSE(softwareengineering)andCS(computerscience)?
Computerscienceisconcernedwiththeoryandfundamentals;
softwareengineeringisconcernedwiththepracticalitiesofdevelopinganddelivering(交付)usefulsoftware.
●Whatisthedifferencebetweensoftwareengineeringandsystemengineering?
systemengineeringisconcernedwithallaspectsofcomputer-basedsystemsdevelopment,includinghardwaresoftwareandprocessengineering(处理工程).softwareengineeringisapartofthisprocess.
●Whatissoftwareprocess?
Asetofactivitieswhosegoalisthedevelopmentorevolutionofsoftware.
Genericactivitiesinallsoftwareprocessesare:
Specification(描述)-whatthesystemshoulddoanditsdevelopmentconstraints
Development(开发)-productionofthesoftwaresystem
Validation(有效性验证)-checkingthatthesoftwareiswhatthecustomerwants
Evolution(进化)-changingthesoftwareinresponsetochangingdemands.
●Whatissoftwareprocessmodel?
Asimplifiedrepresentation(表示形式)ofasoftwareprocess,presentedfromaspecificperspective.
softwareprocessmodel:
Workflowperspective-sequenceofactivities;
Data-flowperspective-informationflow;
Role/actionperspective-whodoeswhat.
软件过程部分
●Genericprocessmodels
Ø
Waterfall;
(瀑布型)
——Separateanddistinctphasesofspecificationanddevelopment.(使用单独的过程阶段表现)
问题:
1.Inflexible(Onephasehastobecompletebeforemovingontothenextphase.)
2.Transferofrisks(风险转移)
适用:
mostlyusedforlargesystemsengineeringprojectswhereasystemisdevelopedatseveralsites
Evolutionarydevelopment;
(进化式)
——Specification,developmentandvalidationareinterleaved(交替,先快速开发再不断修改).
Exploratorydevelopment(探索式):
toworkwithcustomers
Throw-awayprototyping(抛弃式):
startwithpoorlyunderstoodrequirementstoclarifywhatisreallyneeded
1Lackofprocessvisibility(过程不可见)
2Systemsareoftenpoorlystructured
Forsmallormedium-sizeinteractivesystems
Component-basedsoftwareengineering.(基于组件CBSE)
——Thesystemisassembledfromexistingcomponents.(集成已存在的可复用的组件)
软件复用reuse:
peopleworkingontheprojectknowofdesignsorcodewhichissimilartothatrequired.
●Processiteration软件迭代:
(Iterationcanbeappliedtoanyofthegenericprocessmodels.)
两个过程模型专门为过程反复设计的
Two(related)approaches:
Incrementaldelivery(增量式开发);
——thedevelopmentanddeliveryisbrokendownintoincrements(增量)
Thehighestpriorityrequirementsareincludedinearlyincrements
Oncethedevelopmentofanincrementisfinished,correspondingsystemfunctionalityisavailable
Spiraldevelopment(螺旋式开发).
——Eachloop(循环)inthespiralrepresentsaphaseintheprocess.
Risksareexplicitlyassessedandresolvedthroughouttheprocess.
●Fourfundamentalprocessactivities:
•Softwarespecification
•Softwaredesignandimplementation
•Softwarevalidation
•Softwareevolution
Softwarespecification(描述)
Softwaredesignandimplementation(设计和实现)
Softwarevalidation(有效性验证)
Verificationandvalidation(V&
V)V&
Vmustbeappliedateachstageinthesoftwareprocess.
Hastwoprincipalobjectives:
Thediscoveryofdefectsinasystem;
Theassessmentofwhetherornotthesystemisusefulanduseableinanoperationalsituation
Verification:
"
Arewebuildingtheproductright”.——Thesoftwareshouldconformtoitsspecification.
Validation:
Arewebuildingtherightproduct”.——Thesoftwareshoulddowhattheuserreallyrequires.
Softwareevolution(进化)
软件项目管理部分
●Softwareprojectmanagement
Concernedwithactivitiesinvolvedinensuringthatsoftwareisdeliveredontimeandonscheduleandinaccordancewiththerequirementsoftheorganisationsdevelopingandprocuringthesoftware.
●MilestonesVs.Deliverables
Milestonesaretheend-pointofaprocessactivity.(里程碑)
Deliverablesareprojectresultsdeliveredtocustomers.(可交付的文档)
软件过程被分解为一系列想关的基本活动,每个基本活动都有相应的输出结果。
里程碑不是要交给客户的东西。
而可交付的文档是要交付给客户的项目成果,要在项目的描述、设计等阶段结束时交付。
例如需求过程:
可交付的文档是:
需求描述
●CriticalPath
Longestofallpathsthroughtheproject
●WBS
软件需求部分
●SoftwareRequirementVs.SoftwareRequirementEngineering
Requirement:
Itmayrangefromahigh-levelabstractstatementofaserviceorofasystemconstrainttoadetailedmathematicalfunctionalspecification.Descriptionofsystemservicesandconstraintstoadetailmathematicalfunction.
Requirementsengineering:
Theprocessofestablishingtheservicesthatthecustomerrequiresfromasystemandtheconstraintsunderwhichitoperatesandisdeveloped.
Therequirementsthemselvesarethedescriptionsofthesystemservicesandconstraintsthataregeneratedduringtherequirementsengineeringprocess.
●软件需求类型
用户需求(userrequirement)
Statementsinnaturallanguageplusdiagramsoftheservicesthesystemprovidesanditsoperationalconstraints.Writtenforcustomers.
系统需求(systemrequirement)
Astructureddocumentsettingoutdetaileddescriptionsofthesystem’sfunctions,servicesandoperationalconstraints.Defineswhatshouldbeimplementedsomaybepartofacontractbetweenclientandcontractor.
系统需求包括:
功能性需求(Functionalrequirements)
Statementsofservicesthesystemshouldprovide,howthesystemshouldreacttoparticularinputsandhowthesystemshouldbehaveinparticularsituations.
Functionaluserrequirementsmaybehigh-levelstatementsofwhatthesystemshoulddo
Functionalsystemrequirementsshoulddescribethesystemservicesindetail.
非功能性需求(non-functionalrequirements)
constraintsontheservicesorfunctionsofferedbythesystemsuchastimingconstraints,constraintsonthedevelopmentprocess,standards,etc.
需求工程过程(从可行性分析到需求文档,这部分包括很多细致的内容,请参考教材和ppt)
Requirementsengineeringprocess:
Feasibilitystudies
•Afeasibilitystudydecideswhetherornottheproposedsystemisworthwhile.
•Ashortfocusedstudythatchecks
◦Ifthesystemcontributestoorganisationalobjectives;
◦Ifthesystemcanbeengineeredusingcurrenttechnologyandwithinbudget;
◦Ifthesystemcanbeintegratedwithothersystemsthatareused.
Elicitationandanalysis
•Sometimescalledrequirementselicitationorrequirementsdiscovery.
•Involvestechnicalstaffworkingwithcustomerstofindoutabouttheapplicationdomain,theservicesthatthesystemshouldprovideandthesystem’soperationalconstraints.
•Mayinvolveend-users,managers,engineersinvolvedinmaintenance,domainexperts,tradeunions,etc.Thesearecalledstakeholders.
Requirementsvalidation
•Concernedwithdemonstratingthattherequirementsdefinethesystemthatthecustomerreallywants.
•Requirementserrorcostsarehighsovalidationisveryimportant
◦Fixingarequirementserrorafterdeliverymaycostupto100timesthecostoffixinganimplementationerror.
Requirementsmanagement
•Requirementsmanagementistheprocessofmanagingchangingrequirementsduringtherequirementsengineeringprocessandsystemdevelopment.
•Requirementsareinevitablyincompleteandinconsistent
◦Newrequirementsemergeduringtheprocessasbusinessneedschangeandabetterunderstandingofthesystemisdeveloped;
◦Differentviewpointshavedifferentrequirementsandtheseareoftencontradictory.
ReviewQuestionsforyou!
●WhatisSoftwareRequirement?
●Whodoesit?
●Whyisitimportant?
●Whatarethesteps?
●Whatistheworkproducts(artifacts)?
●HowdoIensurethatI’vedoneitright?
●WhataretheCASEforourrequirementanalysis?
软件体系架构设计部分
●SoftwareArchitectureVs.ArchitectureStyle
Thedesignprocessforidentifyingthesub-systemsmakingupasystemandtheframeworkforsub-systemcontrolandcommunicationisarchitecturaldesign.
Theoutputofthisdesignprocessisadescriptionofthesoftwarearchitecture.
软件设计部分
SoftwareDesign:
Designiswhatvirtuallyeveryengineerwantstodo.Itistheplacewherecreativelyrules-customersrequirements,businessneeds,andtechnicalconsiderationsallcometogetherintheformulationofaproductorsystem.
DesignPrinciples:
•Abstraction抽象
抽象是控制复杂性的基本策略。
“抽象”要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。
•Modularity模块性
•InformationHiding信息隐藏
•FunctionalIndependence功能独立
Coupling耦合——单元模块之间
Onemoduleisreferencedbyothermodules
Datatransportedfromonemoduletotheothers
耦合度是对软件结构中模块间关联程度的一种度量。
耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。
与内聚度正好相反,在设计软件时应追求尽可能松散耦合的系统。
因为对这类系统中任一模块的设计、测试和维护相对独立。
由于模块间联系较少,错误在模块间传播的可能性也随之变小。
模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。
耦合度也可以分为七级
Lowercoupling
No-directCoupling
无联系耦合:
如果两模块中任一个都不依赖于对方能独立工作,则称这两模块为(nodirectcoupling),这类耦合度最低。
DataCoupling
StampCoupling:
特征耦合:
介于数据耦合和控制耦合之间的一种耦合
印记耦合:
将数据结构作为参数进行传递
ControlCoupling:
控制耦合:
传递标志
如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则耦合度上升为控制耦合。
控制耦合通常会增加系统的复杂性,有时适当分解模块可消除控制耦合。
Externalcoupling
外部耦合:
一些模块都与一个外部环境相关,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 软件工程 导论 期末 复习