文档介绍:该【软件工程实践者的研究方法 】是由【落意心】上传分享,文档一共【31】页,该文档可以免费在线阅读,需要了解更多关于【软件工程实践者的研究方法 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。软件工程实践者的研究方法
*
Design
Goodsoftwaredesignshouldexhibit:
Firmness(稳定性):Aprogramshouldnothaveanybugsthatinhibititsfunction.
Commodity(适用性):Aprogramshouldbesuitableforthepurposesforwhichitwasintended.
Delight(令人愉快):Theexperienceofusingtheprogramshouldbepleasurableone.
*
AnalysisModel=>DesignModel
*
3CharactersofDesignQuality
thedesignmustimplementalloftheexplicit(明确的)requirementscontainedintheanalysismodel,anditmustaccommodatealloftheimplicit(隐含的)requirementsdesiredbythecustomer.
thedesignmustbeareadable,understandableguideforthosewhogeneratecodeandforthosewhotestandsubsequentlysupportthesoftware.
thedesignshouldprovideacompletepicture(全貌)ofthesoftware,addressingthedata,functional,andbehavioraldomainsfromanimplementationperspective.
*
QualityGuidelines
Adesignshouldexhibitanarchitecturethat(1)hasbeencreatedusingrecognizablearchitecturalstylesorpatterns,(2)iscomposedofcomponentsthatexhibitgooddesigncharacteristicsand(3)canbeimplementedinanevolutionaryfashion
Adesignshouldbemodular;thatis,thesoftwareshouldbelogicallypartitionedintoelementsorsubsystems
Adesignshouldcontainrepresentationsofdata,architecture,interfaces,andcomponents.
Adesignshouldleadtodatastructuresthatareappropriatefortheclassestobeimplemented.
Adesignshouldleadtocomponentsthatexhibitindependentfunctionalcharacteristics.
Adesignshouldleadtointerfacesthatreducethecomplexityofconnectionsbetweencomponentsandwiththeexternalenvironment.
Adesignshouldbederivedusingarepeatablemethodthatisdrivenbyinformationobtainedduringsoftwarerequirementsanalysis.
Adesignshouldberepresentedusinganotationthateffectivelycommunicatesitsmeaning.
*
DesignPrinciples
Thedesignshouldbetraceabletotheanalysismodel.
Thedesignshouldnotreinvent(彻底改造)thewheel.
Thedesignshould“minimizethedistance”betweenthesoftwareandtheproblemasitexistsintherealworld.
Thedesignshouldexhibituniformityandintegration.
Thedesignshouldbestructuredtoaccommodatechange.
Thedesignshouldbeassessedforqualityasitisbeingcreated,notafterthefact.
Thedesignshouldbereviewedtominimizeconceptual(semantic)errors.
Designisnotcoding,codingisnotdesign.
FromDavis[DAV95]
*
FundamentalConcepts
Abstraction—data,procedure
Architecture(架构)—theoverallstructureofthesoftware
Patterns—conveys(承载)theessence(精髓)ofaprovendesignsolution
Modularity—compartmentalization(划分)ofdataandfunction
Informationhiding—controlledinterfaces
Functionalindependence—single-mindedfunctionandlowcoupling
Aspects—amechanismforunderstandinghowglobalrequirementsaffectdesign
Refactoring(重构)—areorganizationtechniquethatsimplifiesthedesign
DesignClasses—providedesigndetailthatwillenableanalysisclassestobeimplemented
*
DataAbstraction
door
implementedasadatastructure
manufacturer
modelnumber
type
swingdirection
inserts
lights
weight
openingmechanism
*
ProceduralAbstraction
open
implementedwitha"knowledge"ofthe
objectthatisassociatedwithenter
detailsofenter
algorithm
*
InformationHiding
module
interface
"secret"
•algorithm
•datastructure
•detailsofexternalinterface
•resourceallocationpolicy
clients
aspecificdesigndecision