《chapter 8 system design》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
RichardL.VanHorn,AlbertB.SchwarzkopfandR.LeonPrice.Copyrightpending,2001.Thesematerialsmaynotbeusedorreproducedwithoutthepermissionoftheauthors.AstudentenrolledattheUniversityofOklahomainMIS4663orMIS5203haspermissiontoprintoutacopyforhis/herownuseonly.Chapter8Revised7-10-02SystemDesignTableofContentsIntroduction.1InputstoSystemDesign.2OutputsforSystemDesign.2Infrastructure3Organization5Data6RelationalSchema.7Metadata.8OtherDataSchema.12Process.12PhysicalDataFlowDiagrams.12ProgramStructureCharts.13FunctionHierarchyDiagrams.14Dialog.16WebPageNavigationMaps.17Action-EventDiagrams.20WebMetadata.21ModuleDesign.21ModuleSpecification.23Pseudo-code.25TypicalSystemDesignRequirements32ProcessDrivenSystems.32DialogDrivenSystems.33DataWarehouseSystems.33Exercises.348-38 IntroductionUpuntilnowithasbeenpossibletobefairlypreciseaboutthedocumentationrequirementsforproblemdefinitionandtheanalysisofsystemrequirements.ThefunctionsthatmostsystemsmustdocanusuallybecapturedbyastandarddatamodellikeanEntityRelationshipDiagramandaprocessmodellikeaDataFlowDiagram.Thepurposeofdesigndocumentationistospecifytoaprogrammerexactlywhattocodewithoutactuallywritingtheprogram.Agoodruleofthumbistoexpectthedesigndocumentationtobemaintenancemanualforaclassmatetouseforthesystem.Itneedstospecifyhowtheprogramistowork,butbeeasiertofollowthantheactualcode.Thismeansthatthedocumentationdependsonboththesystemandtheenvironmentinwhichitisbuilt.Designdocumentationhastomatchrequirementsoftheprogramtothelanguage.Thetechniqueweusetogeneratedocumentationismodeling.Amodelisasimplifiedversionofthesystemwewant.Itmustbeeasiertoworkwithbutcapturesomeessentialfeatureofthefinalproduct.Eachparticularmodelweuse–DFD,ERD,RelationalSchema,StructureChart,pseudo-codeorothertechnique–focusesonpartofthesystemandignoresotherparts.Thedesigndocumentationforthesystemconsistsofasetofmodelsthatcapturethecriticalfeaturesofthesystem.Thecriticalfeatures,andchoiceofmodels,dependonthesystem.Whentheteamselectsthealternativeofbuildingtheproposedsystem,theteamwillcarryoutasystemdesigneffort.InatraditionalSDLCmodel,theteamperformssystemdesignafterthecompletionoftherequirementsdeterminationphase.AsnotedinChapter7,real-worldteamsmayperformsystemdesignconcurrentlywithrequirementsdetermination.Withprototyping,ateammaycarryoutsystemdesign–i.e.,buildtheprototype,withoutanyextensiverequirementsdeterminationandthenusetheprototypetodefineorrefinetherequirements.InputstoSystemDesignTheteambringstheresultsfromProjectDefinition,ProposedSystemRequirementsandtheAlternatives,EvaluationandRecommendationstagesintosystemsdesignincludingthe:1.StatementofWork2.RDPlan3.CurrentSituationAnalysis4.ProposedSystemrequirementsincludingaConceptualDataModel,ModifiedDataFlowDiagramsandMetadatafortheCDMandMDFDs8-38 1.ARecommendationtobuildoratleastexplorefurtheraspecificalternativeSystemDesignthusbuildsdirectlyonextensivepriorwork.Asalways,theteammaywishtorevisesomeofthepriorworkasmoreinformationisacquired.OutputsforSystemDesignTheoutputsmayinclude:1.Infrastructureandorganizationalchangesfortheproposedsystem2.Adataschema,oftenarelationalschema3.Metadatatodefinethetables/filesandcolumns/data-items4.Afunctionhierarchydiagramorwebpagemapthatgraphicallydescribesthestructureoftheprogram5.Actualorpseudocodeforeachmoduleintheprogram6.AprototypefortheproposedsystemInChapter1,thecontentmodelidentifiedthemajorcontentareasofaninformationsystemasdata,process,infrastructureandorganization.Duringsystemdesign,theteamreviewseachofthecontentareasandaddscontentordetailtoarriveatcompletedesignthatwhenoperationalwillsolvetheproblemposedbytheclient.Thesesystemdesignactivitiesmayinclude:1.Infrastructure-redefinethehardwareandsoftwareasappropriatetofacilitateperformingtheactivitiesofthenewsystem.Forexample,thenewsystemmayrequiresomecombinationofnewworkstations,servers,telecommunications,datastorage,operatingsystem,databaseengine,orwebsoftware.2.Organization–modifytheorganizationasneededtomatchthefunctioningofthenewsystem.Often,thenewsystemrequirestheorganizationtodefinethepeoplewhohaveauthoritytocreate,update,retrieveordeletedata.3.Data-converttheCDMintoadatadesign.Forexample,establishanewdatabaseinthedatabaseengine,createadataschemaoftablesorfiles,specifyindices,etc.4.Process–specifythedetailedsystemlogic.Forexample,prepareaFHDandwritepseudocodeforeachprogrammoduleand/orwriteandprogramcode.Inthefieldproject,systemdesignforthebuildalternativeincludesthecreationofaprototype.InfrastructureInfrastructureconsistsofsuchelementsasdatabasemanagementsystems,computerstoperformtherolesofclientsandservers,telecommunications,8-38 operatingsystems,middleware,programminglanguagesanddevelopmenttools.Theclient’sstandards,procedureandpolicymanualsmaysetforthguidesandconstraintsforsystemdesign.Forexample,theclientmayspecifyabrandandconfigurationofPCsforusersormayspecifyaDBMStoserveasthedatabaseengineforallnewapplications.Ornewdevelopmentmayberestrictedtooneorseveralprogramminglanguagesortools.Aspartofthenarrativeonthecurrentsituation,theteamdefinedthecurrentdevelopmentenvironmentandconstraintsestablishedbytheclient.Forsomeprojects,theconstraintsmayallowtheteamlittleornochoicewithrespecttotheinfrastructurefortheproposedsystem.Forexample,theclientmayrequiretheteamtouseexistinghardwareandsoftware.Inotherprojects,theteammayreceiveagreementtomakeminormodifications–forexample,addMicrosoftAccesstotheexistingportfolioofsoftwareonanexistingcomputer.Occasionally,theteammayselectmuchortheentireinfrastructureforaproject.Becauseclient/serverandnetcentricarchitecturesarehighlymodular,theclientmaywishtoacquirenewhardwareandsoftwarefortheproposedapplication.IftheclientisnotanITperson,theteamshouldasktheclientforpermissiontotalkwithanITstaffpersontoassurethattheproposedinfrastructurefitswithincompanypolicyandstandards.AreviewofcharacteristicsandguidelinesforselectionofhardwareandsoftwarecomponentsforthedevelopmentenvironmentappearinAppendixE.Theteampreparesacomprehensivedescriptionofalltheproposedchangestotheinfrastructurefortheuser.Thedescriptionincludesatextsummaryofchangesandthefollowingforeachnewitem:Name,addressandcontactinformationforthevendorCompletespecificationsfortheproductPriceorcost,ifavailableWarrantyorserviceagreementtermsInstallationcost,methodandrequirementsMaintenancecostandoptions–client,vendororthirdpartymaintenanceTheinfrastructuredesignalsoneedstospecifythedevelopmentenvironment.Criticalissuesincludethefollowing.·Language(s)fortheproduct.Specifywhatlanguageanddesignapproach(ifappropriate)isusedtodevelopthesystem.Includeversions.E.g.ThesystemisaClient/ServersysteminwhichtheclienthasbeenwrittenVisualBasicandwillbeinstalledontheclientmachinesusingarun-timeversion.ThemastercopywillbemaintainedbyJoeSmithonhispersonalmachine.TheservercomponentisaSQL/ServerdatabaseinstalledontheCollegeserverinCEMR.·Hostenvironment.Specifywhatmachineswillbeusedandhowtheyfitintotheinfrastructure.ThesystemwillbeinstalledonmachinesintheMIS8-38 DivisionwhichareattachedtotheCollegeofBusinessLAN.ThesemachinesareallPCcompatiblewithatleastaPentiumIIIprocessor,64MBofRAMand500MBofavailablediskstorage.ThehostwillbetheCollegeFacultyServerwhichisaMSWindows/NTserverwithatleast128MBofinternalmemory,and650MBofavailablememory.·Network.Forthosesystemsthatoperateoveranetworkitisimportanttospecifythenetworkrequirements.Normallytheissueisnothowtochangethenetwork,buthowthenewsolutionwillimpactit.Largersystemsmayrequirenewlinksorcomponents.Thedesignteamshouldspecifytheclient,LAN,serverandnetwork“cloud”requirementsforthesystem.·Access.Specifyhowthesystemwillbeaccessedforuseandformaintenance.·SecurityAnyaccesslimitations,backuprequirements,etc.OrganizationDuringdesign,theteamidentifiesanddescribesanydesiredorganizationalchanges.Forexample,thenewsystemmayeliminateorreassignsomeofthetasksperformedbypeopleinthecurrentorganizationormaychangetheauthorityofpeopletocreate,update,deleteorretrieveinformationinthedatabase.Inparticularthedesignteamshouldspecifythefollowing.·Client.Whoistheultimateuseroftheinformationbeinggeneratedandwhatdotheywanttousetheinformationfor?·User.Whowillactuallyusethesystem?·Owner.Whoownsthesystemandisresponsibleforassuringthatitrunscorrectly.Thiscouldincludetheoperationplanandthemaintenanceplanforthesystem.·Support.Whoisresponsibleforrunningtheprogramsinthesystem?·Maintainer.Whowillmakechangesinthesystemifitneedsthem?AnexampleoftheinfrastructureandorganizationalenvironmentfortheproposedsystemforGBVideoappearsinFigure8-1.________________________________________________________________ProposedGBVideoEnvironmentInfrastructure.Atpresent,theGBretailvideotaperentalandreturnenvironmentoperatesmanually.Toimplementtheproposedsystem,thereamrecommendsthatGBpurchasethefollowingorequivalents:Eachofthethreecurrentstoreswillrequire2workstationsforatotalofsixandonemodem.Specificationsforarecommendedworkstationandmodemappearbelow.8-38 GentexRetailterminalsModel3301,$2,499each,fulloneyearwarrantywithin-officeserviceMonday–Fridayfrom8:00a.m.to10:00p.m.IncludesMSWindows,PC,17”monitor,barcodescangun,creditcardreaderandprinter.TheterminalsareconnectedwithinthestoreviatwistedpairtoaDSLconnection.Vendor:RetailSystems,Inc.7731Main,Norman,OK77019,Tel.405-325-0768,CustomerRep:TomJones.Afterfirstyear,a14x5in-storemaintenancecontractisavailablefromRetailsystemsatacurrentcostof$10permonthperterminal.DSLModemunitsandDSLservice.Threemodemsandinstallation$843.DSLservice$49permonthincludingmaintenanceandInternetaccess.Eachmodemwillconnecttouptofourworkstations.Vendor:SoonerTelephoneCo.,755LostLane,Moore,OK73170,Tel.1-800-SOONER1Theteamproposedthattwoserversbelocatedatheadquarters.Theseserverswillconnecttotheexistingrouter.Serverspecificationsappearbelow.RetailSystemswillpurchaseandinstalltheservers(includedinthepricebelow)andmakesurethattheyworkcorrectlywiththeretailterminals.ThisserverconfigurationshouldallowGBtoexpandtoasmanyastenbrancheswithoutupgrading.DeltaPower2000Servers.$8,472each.Includeshigh-speedlink,dualprocessors,100GBharddrive,1GBofmemory,andWindowsNT.Oneyearinofficewarranty24X7;warrantyserviceprovidedthroughRetailSystems.Alltransactionsareshadowedonbothserverssothatfullserviceisavailableaslongasoneisrunning.Vendor:DeltaSystems,1347BoydSt.,Houston,TX.72211,Tel.1-888-GoDELTA.Afterthefirstyear,maintenanceisavailablefromRetailSystemsonapercallrateof$30plus$50perhour(onehourminimum)pluspartcosts.Extrachargeof$50forweekendoreveningservicecalls.OrganizationNodirectchangesinorganizationarerequired.Allofthepeopleinabranchstillreporttothebranchmanager.CentralPurchasingwillcontinuetomakedecisionsonthetitlesandnumberofvideotapecopiesateachbranch.Somechangesdooccurwithrespecttolocation,ownershipandcontrolofdata.Withtheoldsystem,eachbranchownedandheldphysicalpossessionofthedatarelatingtorentalsatthebranch.Withthenewsystem,thedataonrentalsandreturnsarestoredonaserveratGBHeadquarters.Nodataarestoredateachbranch.Peopleatthebranchcanretrievedatabutcannotdeleteit.Onlythesystemmanageratheadquarterscandeletedata.Peopleateachbranchcanretrievedatageneratedatanybranch.Acustomercanchangehis/hercustomerdataatanybranchandcaninquireaboutthestatus8-38 ofanyopenrental.NodataaresenttoAccounting.Instead,AccountinghasaccesstothedatatablesfortheRentalSystem.Thesechangeshavebeendiscussedwithandagreedtobyallparties.Noorganizationalproblemsorissuesareanticipated.________________________________________________________________Figure8-1.ProposedEnvironmentforGBVideoDataAtthisstage,theteamdesignsthespecificdataschemafortheproposedsystem.Theteamconvertstheconceptualdatamodel(CDM)intoadataschemaofrelationaltables,objects,otherkindsoftables,flatfilesorotherfiles,etc.Iftheteamplanstoutilizearelationaldatabasemanagementsystem(RDBMS),theteampreparesarelationalschema.SomeCASEtools,forexample,OracleDesigner/2000,withmajorhelpfromtheanalyst,willconvertaCDM(inOraclenotationusingfirstnormalform)intothecorrespondingrelationaltableschema.Withaflatfilemechanism,theteamspecifiesthefileformatusingCOBOLorotherappropriateconventions.RelationalSchema.Relationaldatabasesarewidelyused.EnterpriseResourcePlanning(ERP)SystemsfromsuchprovidersasSAP,PeopleSoftandOraclerecommendstoringdatainandretrievingitfromrelationaldatabases.ManyotherpackageprogramsoperatewithaRDBMS.Becauseofportabilityandflexibilityconcerns,amajorityoforganizationsdesignnewapplicationsforaRDBMsystem.However,anenormousnumberofnon-relationaldatastoresremaininuseforspecialapplicationsandlegacysystems.Iftheteamusesarelationaldatabase,theteampreparesarelationalschemawiththefollowingrules.1.TheproposedsystemCDMprovidesthestructurefortherelationalschema.RepresentthecompletedatastructurefromtheCDMintherelationalschemaunlesstheteamexplicitlydecidestomakechangesanddocumentsthereasonsintheSystemDesignreport.2.Usesetnotation,tableheadingformats,MSAccesstypediagrams,ortheequivalentstographicallyrepresentthetableandcolumnstructure.3.TheanalystnormallyusesthepluraloftheentitynameontheCDMforthetablename.Columnnamesnormallycorrespondexactlytoattributenames.4.Identifyprimarykeysandnoteinthetexttheconventionusedtoidentifythem5.Addreferentialintegrityarrowstolinkfromeachforeignkeytoeachprimarykey8-38 1.Prepareclear,neatandprinteddiagramswithaCASEtool,drawingtool,MSWord,etc.2.Iftheschemaisnotinthirdnormalform(3NF),explainbrieflywhytheteamchosetodenormalizethestructureintheCDM.Note:relationalschemaalwaysmustobservefirstnormalform(1NF)andcontainonlyasinglevalueforeachattributeineachinstance.AsamplerelationalschemaintableheadingformatforGBVideothatfollowstheaboverulesappearsinFigure8-2.Intheschema,theentitiesTitleandVideoappearcombinedinasingletable.Thediagramcontainsanoteexplainingwhytheschemaisnotin3NF.8-38 CustNoFNameLNameAds1Ads2CityStateZipTelNoCCNoExpireCUSTOMERSRentalNoCustNoDateClerkNoPayTypeCCNoExpireCCApvRENTALSLINESLineNoRentalNoVideoNoDueDateReturnDateODChargePaytypeCOMVIDEOS)VideoNoNameOnedayfeeExtradaysWeekendCostNote1.Primarykeysareunderlined.Note2.Fordataintegritycontrol,PurchasingdoesnotwanttherentalsystemtoaccesstheirprimarytablesofVideoandTitle.InsteadPurchasingwillreplicatetherelevantdataasneededinaviewortablefortheRentalSystemcalledCOMVIDEOS.ThedenormalizedtableCOMVIDEOSintherelationalschemacontainsthecombinedattributesoftheVideoandTitleentitiesintheCDMexceptthattheattributes“TitleNo”and“VendorNo”areomittedinthetablepreparedbyPurchasing.Thecombinedtableresultsinasimplerdatastructureandpossibly,afasterresponsefortherentalsystem.Figure8-2.GBVideoRelationalSchemaMetadata.Asacriticalpartofthedatadesign,theteamselectsmetadataforthetablesandcolumns.Dataitemsconsistoftheattributesorcolumnheadingsinrelationaltablesorthedata-elementnamesinflatfilerecords.Theteammayneedtodefinedataitemsforuseininput,outputandtransformationoperationsthatarenotpartof,orplacedin,anydatastore.Forexample,theprogrammaycomputethetotalcostforarental.Total-Costisadata-itemusedtoprepareandprintaninvoice,butisnotpartofanydatastoreandthusisnotanattributeordata-element.Data-itemsthatarenotpartofastorearedescribedinaseparatesectioncalled“DataItems’followingtheattributeordata-elementdescriptions.Inpractice,themetadataforatableorfileanddata-itemsmayincludedozensofcategories.Thecategoriesselectedforthesystemdesigndeliverablesmaydependbothon(1)thosecategoriesincludedinthedatabaseengineand(2)thestandardsandpoliciesoftheorganization.8-38 Aminimalsetoftableorfilemetadatamightinclude:1.Ashorttextdescriptionofthetable–normallyidenticaltoandcopiedfromtheCDMentitydescription2.Retentionpolicy–howlongorunderwhatcircumstancesiseachrecordorinstanceorrowinthetableretained.Goodretentiondecisionsbalancecontroloftablesizeagainsttheavailabilityofdataforoperationsandhistoricalanalysis.ForsuchentitiesasItem,theretentionpolicymaybeobvious.TherecordforanitemisretainedaslongastheItemisstockedorsold,etc.,anddeletedortransferredtoahistoryfilewhentheitemnolongerisstocked.Retentionpolicyismostimportantwhenfilestendtoincreaseasaresultofactivity.Transactionfilesforsales,rentals,purchases,etc.exhibitthisbehavior.3.FileSize–howmanyrecordsorrowswillthefileortablecontainandhowmanymegabytesofstoragearerequired.Asfilesizegrowsbeyondtheforecastnumber,physicalstoragerequirementsoftenposelessofaproblemthanprocessingtime.Additionalphysicalstorageiseasytoaddandrelativelyinexpensive.Butincreasedfilesizesmaycauseaslowdowninfileprocessingactivitiesthatismoredifficulttoremedy.Asnotedabove,filesizesometimescanandshouldbecontrolledbyretentionpolicy.4.Authorization–identifieswhoisallowedtocreate,update,retrieveanddeleterecordsorrowsinthetable.Unlessauthorizationisdefinedclearly,organizationalconflictandlossofdataintegritymayresult.Aminimalsetofdataitemmetadataincludes:1.Ashorttextdescriptionforeachdataitem–normallycopiedfromtheattributedescriptionsintheCDMifrelevant2.Optionality–whethertheuserisallowedtoomitavalueforthedataitemwhenfirstcreatinganewroworrecord.Optionalityisimportantfordataintegrity.Byusingoptionalitytheteamcanassurethattheprimarykeyandothermandatoryorrequiredattributesarepresentatthetimearecordfirstiscreated.3.Datatype–aspecificationthatallowsthephysicalsystemtostoredataefficiently.TheteamnormallywillusethedatatypesprovidesbythedatabaseenginespecifiedintheInfrastructurefortheproposedsystemorintheproofofconceptmodel–forexample,Access,MSSQLServer,etc.InAccess,theavailabledatatypesinclude:text,number,date/time,memoandyes/no.Theteamshouldreferencethesourceofthedatatypesusedintheirsystemdesigndocuments.4.Size–themaximumlengthtoallowforeachdatatype.Somedatatypes,forexampledate,integer,etc.,possessasizedeterminedbythedatabaseengine.Partofthesizedescriptionforadecimalnumberincludesthenumberofdecimalplaces.8-38 AsamplesetofmetadatafortheGBVideorelationaldataschemainFigure8-2appearsinFigure8-3.Notethatinthisexampleandinmostcases,thetableandcolumndescriptionsfollowtheCDMentityandattributedescriptions.________________________________________________________________GBVideoDataTableMetadataTableandColumnDescriptionsNote:(PK)showsaprimarykeyand(FK)aforeignkey.Data-typesarefromMSAccess.Customers.Containsalltheavailableinformationabouteachcustomerwhohasmadeatransactioninthelastyear.Retention.Therecordsforcustomerswhohadnothadatransactionforoneyeararedeleted.Size.Thedatabasewillinitiallycontain3,000customerrecordsandrequireabout1MB.Authorization.Clerk:create,update,andretrieve.SystemManager:all.Data-ItemDescriptionOptionalTypeSizeDecimalCust_NoAuniqueidentifierassignedtoeachcustomer(PK)NoText10F_NameFirstnameandmiddleinitialifanyYesText15L_NameLastnameNoText30Ads1StreetorboxaddressNoText30Ads2ApartmentnumberorotherasneededYesText30CityNameofcityNoText20StateStateidcodeNoText2ZipZipcodeNoText9Tel_NoTelephonenumberYesText10CC_NoCreditcardnumberNoText16ExpireExpirationdateonthecreditcardNoDateRentals.Containstheheaderinformationoneachrentaltransaction.Retention:Transactioninstancesareremovedtobackupstorage15daysafteratransactioniscompleteSize:Approximately1500recordsandlessthanonemegabyteAuthorization:Clerk:create,update,retrieveData-ItemDescriptionOptionalTypeSizeDecimalRental_NoUniqueidentifierassignedtoNo8-38 eachrental(PK)Auto-numberCust_NoThecustomerfortherental(FK)NoText10DateDateoftherentalNoDateClerk_NoEmployeenumberoftheclerkenteringtherentalNoText3Pay_typeCash,checkorcreditcardNoText1CC_NoCreditcardnumberYesText16ExpireExpirationdateofthecreditcardYesDateCC_ApvCreditcardapprovalcodeYesText6Lines.ContainstheinformationoneachvideoassociatedwitharentaltransactionRetention:sameasRentalsSize:Approximately2000recordsandlessthanonemegabyteAuthorization:sameasRentals.Data-ItemDescriptionOptionalTypeSizeDecimalLine_NoUniqueidentifierassignedtoeachline(PK)NoAuto-numberRental_NoTherentalnumberthatthislinebelongsto(FK)NoLongInteger10Video_NoVideorentedonthisline(FK)NoText14Due_dateDatetapeistobereturnedNoDateReturn_DateActualreturndateYesDateODChargeChargefordayskeptafterduedateifappliesYesCurrency2Pay_typeMethodofpaymentfortheoverduechargeYesText1ComVideo.Containsinformationoneachvideo.Thisdatabasetableismaintainedandsuppliedtotherentalsystembypurchasing.Retention.NASize.Approximately500recordsandlessthanonemegabyteAuthorization.Clerk:retrieveonly.Data-ItemDescriptionOptionalTypeSizeDecimalVideo_NoAuniqueidentifierassignedtoeachvideotape(PK)NoText14NameThetitleofthevideoNoText30One_dayFirstdayrentalfeeNoCurrency2Extra_dayExtradaysrentalfeeYesCurrency2WeekendRentalfeeforSat.&Sun.YesCurrency28-38 Figure8-3.GBDataSchemaMetadata.OtherDataSchema.Someprojectswillinvolveadataschemaotherthanrelationaltables.Forexample,inasystemthatusesflatfiles,tablessimilartothosethatmakeuptheCOBOLdatadivisionmaydefinethedataschema.Theteamshoulddiscusstheappropriatemodelrepresentationwiththeirteammanager.Themodelselectedmustdescribecompletelythedataschema–thetable,fileorobjectstructure,andmustincludeafullsetofmetadata.Process.Designdocumentationrequireswhatwecallphysicalmodels.Aphysicalmodelmapsdirectlyontothesystemthewayitisactuallytobebuild.Moduleandflownamesshouldbethesameinthemodelasinthecode;attributesshouldhavethesamenamesinthedatabasesasinthemodel;callingandtriggeringsequencesshouldbespecifiedandmatchthatinthecode.Inthisstep,theteamspecifiesboth(1)themoduleorprogramstructureand(2)thesystemlogicwithineachmoduleorprocess.Thewaythatlogicisspecifiedwillvaryfromprojecttoproject.Thebasicrequirementsforlogicspecificationare:1.Representthestructureofthelogicinanappropriategraphicalform–aProgramStructureChart,PhysicalDataFlowDiagram,FunctionHierarchyDiagram,objectschema,webpagemap,orother.2.Specifythedetaillogicwithineachmoduleorprocedureshownonthegraphicalrepresentationinpseudocodeorprogramcode.DatatransfertoandfromtablesorexternalsisusuallycapturedonaPhysicalDataFlowDiagram.ADataFlowDiagramisagoodtoolforshowingdataaccessforasystem.AModifiedDataFlowDiagramalsokeepstrackoftriggers.Weusedataflowdiagramstotrackdatausagethroughoutthesystem.Thearchitectureofclassicalbatchprogramsconsistsofsubroutinesandfunctionsthattakethedatafromcallingroutines,modifieditandcalledanothersubroutine.Inthesesystemstheflowofdatadrivestheexecutionofthesystem.Dataflowdiagramsweredevelopedtocapturetheessentialsofthesesystems.PhysicalDataFlowDiagrams.DataFlowDiagramsmaybephysicalorlogical.WetalkedaboutusingaLogicalDataFlowDiagramtocapturetherequirementsofasysteminChapter6.ThepurposeofalogicaldataflowDiagramistounderstandhowthefundamental8-38 processinasystemfittogether.Logicaldataflowdiagramsdonotindicatesequenceofexecutionandcreatethenamesofboxes,flowsandstoresforunderstandability.Theydonotincludeerrorchecksorflags.WemayuseaPhysicalDataFlowDiagramtodescribehowthefinalsystemshouldwork.PhysicalDFD’sdescribetheprocessofdatatransformationasitiscoded.InaPhysicalDFDtheobjectsonthediagramcorrespondtoactualconstructsinthecode.Processeshavethesamenameascomponentsintheprogram,bubblesaresequencedintheorderthattheywillbeexecutedintherealprogram,flowsarenamedthesameasinthecode,andalltablesorquerieshavethesamenamesasintheactualdatabase.Physicaldataflowdiagramsincludetheflags,audittrailsanderrorchecksthatareneededfortheactualsystem.ProgramStructureCharts.Dataflowdiagramsfocusondatatransformation.AProgramStructureChartisagraphicalmodeldesignedtoshowprogramarchitecture.Itmodelscomponentsofaprogram,thetriggeringsequenceofthecomponentsandwhatcontrolordataflowspassamongcomponentstomakethemworkwell.Eachcomponentcorrespondstoaboxonthediagram.Boxesarenumberedandnamed.Wherepossiblethenumberscorrespondtoaparent-childtriggeringrelationship:Component2.shouldcallComponent2.2.Thisnumberingschemeworksreasonablewellforhierarchicaldesigns.Designsinwhichacomponentcanbeinvokedbyseveralparentscannotbenumberedsoregularly.Anarrowconnectseachparenttothecomponentsthattheparentmaycall.Thearrowrepresentsatriggeringactionanddoesnothaveaname.Someauthorsalsoincludeindicatorsofcontrolflagsanddataflowspassingfromonemoduletoanother.Typicallythesediagramsdonotincludeflowsfordatapassingintooroutofdatastoresorexternals.Thosedataflowsarecapturedonaphysicaldataflowdiagraminstead.Unlikedataflowdiagramsinwhichhigherlevelbubblesmaynotexistincode,alloftheboxesonastructurechartcorrespondone-to-onewithcodecomponentsinthefinalprogram.InaprocedurallanguagelikeCOBOLorCthesecomponentsaretypicallyparagraphs,subroutinesorfunctions.InaGUIlanguagelikeVisualBasictheycorrespondtoforms,controls,macros,queriesormodules.Thenameoftheboxonthestructurechartshouldbethesameasthenameofthecorrespondingstructureintheworkingcode.Eachboxshouldbesupportedwithanarrativedescriptioninpseudo-codeorstructuredEnglish.Connectionsbetweenboxesarenotnamed;however,theconnectionshouldcorrespondtotriggersortriggeredactionsinthenarrativedescriptionoftherelatedboxes.8-38 Ifcontrolflagsordataaretobepassedbetweencomponents,theflowshouldbeindicatedwithanamedarrow.Controlflagsareindicatedbyarrowswithanopencircleonthetail.Dataflowsareindicatedbyarrowswithsolidcircles.Eachflagorflowshouldbenamedwithadescriptivenamethatmatches(asmuchaspossible)thenameoftheelementactuallypassedbetweencomponents.FunctionHierarchyDiagrams.Functionhierarchydiagramsarestructurechartsthathaveatreestructure.Theyareparticularlycommoninstructuredprogrammingdesignsinwhichthetopmodulecorrespondstothemastercontrolmodulefortheprogram.Functionhierarchydiagramsaresometimesusedintheanalysisofasystemtodescribethelogicalgroupingofsystemfunctions.Thisuseleadstosomeconfusionamongtextbooksaboutwhatshouldappearonthediagram.Logicalfunctionhierarchydiagramsareusedtogroupthefunctionsofasystemintologicalunitsanddonotindicateeitherdatapassingororderofexecutionsequences.TypicallytheonlymodulesexpandedinalogicalFHDaretheleafmodules.Indesign(physical)FHD’s,allmodulesareexpanded.Hierarchicaldesignstendtobeeasiertodebugandmaintainthanmorecomplexstructures.Inahierarchicaldesigneachcomponenthasauniquepathintoit.Thatmakesiteasiertodebugandmaintainthananarchitecturethatallowsmultiplepathsintomodules.AsampleFHDforGBVideoappearsinFigure8-6.ThemodulesinthisdiagramcorresponddirectlytotheMDFDmodulesinChapter6.8-38 Figure8-6.FunctionHierarchyDiagramforGBVideo.N0.0GBVideo-VideotapeRentalandReturnSystemN4.0IdentifyoverduevideosN3.0Recordreturnofvideo(s)N2.0RentalProcessN1.0EnrollanewmemberorupdatedataN2.4PrintaReceiptN2.3CreateRentalandLinesN2.2Receivecash/checkorpostaCCtransactionN2.1Inputcustomerandvideodataforarental________________________________________________________________Dialog.AsnotedinChapter6,websitescanpresentachallengeformodeling.Theteammaywishtotryusingawebpagenavigationmaptoprovideagraphicalframeworkforthesystemdesignofthesite.Webpagenavigationmapsareintendedtodisplaythenavigationpathsanddataaccessrequirementsofadialogdrivensystem.Dialogsystems,especiallyWebdesigns,includesimpledocumentretrievalcomponentsandfunctionprocessingcomponents.Awebsitethatdisplayscoursedescriptionsisadocumentretrievalsystemthatrequiresverylittledesigndocumentation.AWebsitethatallowsstudentstoenrollinthosecoursesexecutesacomplexfunction.Documentretrievalsystemsareconvenientlydescribedbymenus.Amenudisplaysasetofoptions.Clickingontheoption(orperhapsabox)transfersthesystemtothatlocation,possiblyonthesamepage.Nodataispassed.Themostcommonmenusaredocumentaccessmenusbutanychoicelistthatonlytransfersscreencontrolanddoesnotpassdataorexecuteasystemfunction8-38 canbeamenu.ManymodernWebsiteshaveabasicfunctionmenuacrossthetopofeverypagethattransfersfromonebranchofthesitetoanother.Frequentlythereisanothermenualongthelefthandsidethatallowstheusertoselectwhichpageorfunctionhewishestoaccess.Thelogicofthesemenusissimple.Allthedesignerneedsisalistofdisplaytextandreferencelocations.WeindicatemenusonpagemapswithaletterMandanumberalongwithanoptionalmenuname(manyprogrammingsystemsdon’tmakeuseofmenunames).Thesamemenu(usingthesamenumberandname)canappearonseveralpages.Websitesthatperformsomefunctionorprocesslogicshouldbedocumentedinmoredetail.TheWebpagemapshouldshowthesequenceofscreencalls.ItshouldalsoindicatetableaccesstoanydatabasebeingusedusingthesametablesymbolsthatappearonaDFD.Weusedottedarrowstoindicationthedirection(s)ofdataflow.Wealsoneedtoindicateanydocumentfilesbeingaccessed.Thesefilesarenotnormallyincludedinadatabasemodel.Weuseadocumentsymbolfromastandardflowcharttoindicatedocumentfilesorfolders.WebPageNavigationMaps.TheWebpagemapshowseachpageandthemajorlinksbetweenpages.Thegeneralrulesappearbelow:1.Page.Eachpageofthesiteisrepresentedbyarectangle.Apageistheunitavailablefromthebrowsertotheviewerwithoutclickingahyperlink.Pagesarenumberedconsecutively–i.e.,1,2,…,n.Adescriptorfollowsthenumber–i.e.,P1.HomePage.Thepagenameshouldcorrespondtothenameusedinthecode:aformname,ahtmlfilename,oradisplayroutine.Allpagesareassumedtohavedisplaycode.2.Links.Linksareindicatedbysolidlines.Theyshowthemainlinksfromthecurrentpagetootherpages.Alllinksarebi-directionalunlessthebackfunctionisdisabledforaparticularlink.3.Menus.MenusareindicatedbytheletterMfollowedbyanumberinsidethepagebox.Thenumbersshouldbeuniqueacrosstheentirediagram.AmenuwithlinkstootherpagesreceiveslabelsthatstartwithanMfollowedbyanumber(i.e.,M1,M2,etc.)Themenunumbermaybefollowedbyanoptionaldescriptor(i.e.,M1.MainMenu.)Frequentlyasitehasoneorseveralmenusthatappearonanumberofpages.4.Processes(butseethediscussiononAction-Eventdiagrams.)Apagemaycontainoneormoreprocessesonsitesthatallowtheusertoinitiatesomeaction–enterdata,downloadadataset,transformdata,retrievefromorwritetoadatabase,etc.NormallytheprocessistriggeredbytheuserclickingonaActionButton–abuttonwithalabel“Submit”,“PlaceinShoppingCart”or“Compute”,etc.Anactionbuttonisrepresentedbytheletter“A”followedbyanumber–A1,A2,etc.Aprocessmayconsistofoneormoremodulesinaccordwiththerulesforgoodmoduledesign.The8-38 metadataforanactionbuttonmayconsistofthepseudo-codeforasimpleprocessoraFHDwithpseudo-codeformulti-moduleprocesses.UseDFDlabelconventionsforthemodulesstartingfromtheprocesslabel.Proceduresmayreceivedatafromexternalsources,senddatatoexternalsinksandstoredatainorretrievedatafromadatastore.DFDsandaFHDprovideagraphicmodelforthestructureandoperationofthemodulesinasite.1.Datastore–aprocedureandonlyaproceduremayinteractwithadatastoretostoreorretrievedata.UsetheDFDsymbolforadatastore.Agraphicaldatamodelordataschemadefinesthedatastoresasdiscussedintheprevioussection.2.Dataflows–flowsshowdatatransfersfromortoexternals,betweenmodulesandto/fromdatastores.UseDFDrulesandsymbols–forexample,allflowsmusthaveaprocess(i.e.,apagewithanactionbutton)atoneendandtheflowsactuallygotoandfromtheprocessinitiatedbytheactionbutton.(Note:auserclickonahyperlinkrepresentsacontrolflownotadataflow.Ahyperlinkclickisnotshownasadataflowfromtheusertothepage.Thecontrolflowmayinitiateadataflow–forexample,causeaproceduretoretrievedatafromadatastore.)3.Externals–externals,forexample,thesiteuseroracreditcardprocessor,arerepresentedbytheDFDellipsesymbol.4.Documents.Documentsordocumentfoldersshouldbeindicatedbytheflowchartdocumentsymbol.Documentsarefilesofanytypethataredisplayedandnotmanagedbythedialog.Examplesincludetextfiles,spreadsheets,orevenotherprogramsthatdon’tcommunicatewiththedialog.AnillustrativewebpagemapforaGBVideoreservationsystemappearsinFigure8-7.Thissiteallowscustomerstolookatavailabilityofvideosandmakereservationstopickthemup.Tomakeareservation,thecustomergoestothehomepage.Ifthecustomerisnotamember,he/shecanbecomeonebyclickingBecomeaMember”onthemainmenu.OntheNewMemberscreen,thecustomerfillsinthecustomerdata(seeFigures8-2,3.)andpressesasubmitbutton.Thesystemcreatesacustomerrecordanddisplaysthecustomernumberonthescreen.Thetextasksthecustomertoprintthescreenforawrittenrecordofthecustomernumber.Toreserveatape,thecustomerclicks“ReserveaVideo”onthemainmenu.Notethatthemainmenu(M1)appearsoneverypage.Onthispage(P2),anindexofVideosappears.Thecustomercanenteramembernumber,dateandthetitleofadesiredvideoandclicktheFindbutton(A2)Orthecustomercanusetheindextofindavideo.Foreachtitleontheselecteddate,thescreenshowseither“Unavailable,tryagainlater”or“Available”.Whenthecustomer,findsadesiredvideo,thecustomerclickstheReservebutton(A3).ThesystemdisplaystheReservationdataonthescreenandinvitesthecustomertoprintahardcopy.8-38 Togetthevideo,thecustomermustcometothestoreonthedayofthereservation.TofindoutmoreaboutGBVideo,thecustomermayclick“AboutGB”onthemainmenuandviewapagethattellsaboutGBandgivesbranchlocationsandtelephonenumbers.8-38 Figure8-7.WebPageMapforGBVideo–WebReservationSystem.P1.HomePageM1.MainMenuReservationDataCustomerMemberNumberCustomerDataVideoDataP3.ReservationPageM1.MainMenuA2.FindaTitleA3.ReserveVideoP2.MemberPageM1.MainMenuA1.SubmitDataP4.AboutGBPageM1.MainMenuReservationDataMemberDataMemberDataVideoAvailabilityDataMembersDSVideosDSRentalsDSCombinationsofdesigntoolsmayprovidethebestgraphicalprocessmodelforasite.Forprocessesinthepagemapthatcontainmorethanseveralmodules,aFHDand/orDFDfortheprocess(oronefortheentiresite)canaddclarityandreduceambiguity.Adataschemamodeldefinesandclarifiesthedatastorestructure.Action-EventDiagrams.InsomecasesitisnotreasonabletodescribeactionsorprocessesontheWebpagenavigationmap.Tryingtoincludeallcontrolsandproceduresonasinglediagramusuallymakesittoomessy.Aseconddiagramcanbeusedtoexpandtheactionsandeventsthatcauseprocessestobeexecuted.Eachpageisrepresentedbyabox.Controlsonthatpagearerepresentedbysubboxes.Eachevent(click,double-click,getfocus,etc.)isrepresentedbyanarrowthatconnectstoacircle.ThecircleactslikeaprocesssymbolinaDFD.Datastoresanddataflowsarerepresentedsimilarly.Eachoftheobjectsonthisdiagram,includingthepageitself,shouldbesupportedbymetadata.8-38 1.Process.Describetheprocesswithabox.NumberandlabeltheboxwiththesamenumbersandlabelsontheWebpagemap2.Controls.Eachcontrolshouldberepresentedbyasmallbox.Theboxshouldhavethesamelabelasthecontrolinthecorrespondingcode.3.Events.Eacheventcorrespondstoalineconnectingthecontrolboxtoaprocesscircle.Thelinesshouldbelabeledwiththeeventname.Onlycontrolswithactionsneedberepresented.4.Actions.Eachactionshouldberepresentedbyacircle.Circlesshouldhaveadescriptivename.Iftheactualcodemodulehasaname(VBscriptsdon’t)thebubblenameshouldmatchthenameinthecode.ActionsshouldbesupportedbyIPOcharts.5.DataStores.DatastoresshouldberepresentedbyopensquaresusingthesameconventionsasDFD’s.Thestorenameshouldmatchtablenamesinthecorrespondingdatabase.6.DataFlows.Dataflowsshouldberepresentedbyarrows.Arrowsshouldbelabeled.DataflowsinGUIprogramsarenotnormallylabeledwithnamessoarbitrarylabelsareallowed.Thearrowshouldflowtothecontrolorformtowhichthetableisattached.WebMetadata.Theobjectsonawebpagemaparedefinedfurtherbymetadata.Possiblemetadataforeachisasfollows:1.Page–abriefdescriptionofthehtmltextonthepageortheactualtextenclosedinquotes.Provideatablethatshowstheeachhypertextlinkonthepagethatisnotpartofamenuinthefirstcolumnandthewebaddressforthelinkinthesecondcolumn.2.Menu–thetableshowingmenunumber,textandhypertextaddressesforthemenu.Note:amenuisdefinedoncealthoughitmaybeusedformultiplepages3.Linklines–none.4.Procedures–abriefdescriptionoftheprocedureplusthedetaillogicforeachmoduleintheprocedure.UseaMDFDforcomplexprocedures.5.Datastore–definedbyatableschemaoradatadivisionwiththeirmetadata.6.External–briefdescription7.Dataflows–thedataitemsthatmakeupeachflow.Themetadataforeachdataitemappearsinthedatamodel.ModuleDesign.Severaldifferentnamesareusedtorefertomodules;themostcommonnamesareprogrammodule,codemodule,processmoduleandbusinessfunctionmodule.Normallycodeorprogrammodulenamesareusedatthedetaildesignlevel.Businessfunctionsnamesareusedformodulesattherequirementslevel.8-38 Aprogramorcodemodulecontainsasetofcode,pseudo-codeorlogicstatementsthatworktogethertowardacommonpurposeinaprogram.AmodulemaycorrespondtoaboxinaDFDorStructureChart,oramoduleorseveralmodulesmaycontainthecodeforaradiobuttoninVisualBasicorforaprocedureinanobject.Identifyingagoodsetofprogrammodulesforaprogramrequiresskillandcarefulthought.Ingeneral,agoodmodulecontainsahighlevelofcohesionandalowlevelofcoupling.Thestrengthoftheinterrelationshipsbetweenthelogicstatementsinamoduleiscalledcohesion.Inafunctionallycohesivemoduleallofthestatementsrelatetotheperformanceofthesamefunction.Forexample,oneoftheGBVideomodulesmightfocusonthefunctionof“inputtingandrecordingtheIDnumbersofthetapesthatacustomerwishestorent.”Notethatthelogicstatementsforthisfunctionalsomaypossesstemporalcohesion–theyoccurintimesequencewithoutinterruptionbystatementsfromanyothermodule.Functionalcohesiongenerallyisthemostimportantcohesionissueindesigningeffectiveprogrammodules.Functionallycohesivemodulessimplifyprogramdesign,testingandmaintenance.ThemodulestructureintheFHDforGBVideoisfunctionallyandtemporallycohesive.Eachmoduleateachleveldealswithasetofactivitiesthatrelatetothesamefunctionandoccurcontinuouslyintime–i.e.,oneafteranotherwithoutpauseorinterruption.Oneeasilycandevisemodulesthatdonotshowahighlevelofcohesion.Forexample,considerthemoduleN2.9withthedescription“Readinthevideotapeidentifierfromthescanner,createarentalrecordandcalculatetheoverduechangeforalatereturnofavideotape.”Intuitively,mostanalystswouldrecognizethatsuchamoduleseemslikepoordesign.Thesetoflogicforcalculatingoverduechargesforthelatereturnofavideoclearlyshowslittlecohesionwithinputtingvideonumbersandcreatingrentalrecordsforarental–thetwosetsoflogicstatementsrelatetodifferentfunctionsandoccuratdifferenttimes.Otherformsofcohesionexist.Forexample,statementmaybeplacedinthesamemoduletoenhancecommunicationalcohesion–statementsthatallutilizethesamesetofdataorsequentialcohesion–astatementrequirestheresultsproducedbyapreviousstatementtoperformitsfunction–i.e.tocomputethetaxonarental,theprogramfirstneedstocomputethetotalcharge.Couplingreferstothenatureoftheinteractionsbetweenmodules.Couplingisreducedwhenmodulesdonotuseormodifycodefromanothermodule–eachmoduleusesonlythelogiccontainedwithinit(plussubroutines).Theobjectiveistobeabletomodifythemodulewithouthavingtounderstandthelogicofother8-38 relatedmodules.Ingeneral,lesscouplingisbetter.TheloosestkindofcouplingiscalledDatacoupling.Indatacouplingtheonlythingthatconnectsonemoduletoanotheristhedatapassedtoit.Lessdesirablecouplingincludesstampcouplinginwhichtheformataswellasthecontentofthedatacarriesinformation.Aprogrammaystoreatelephonenumberasonefieldwiththefirstthreebeingtheareacode.Thiscreatesstampcoupling.Ifsomeonedecidestoincludeinternationalphonenumbersinwhichthefirstdigitsarecountrycodes,thentheprogramfails.Furthermorethefailurewouldbecausedbycodeinaseeminglyunrelatedmodule.Evenmoredifficulttodealwithishybridcoupling.Inhybridcouplingonemodulechangesthecodeinanothermoduleatruntime.Inthesecasesyoucannottellwhatstatementsactuallyranbylookingatthecode.Thesesystemscanbealmostimpossibletomaintain.Inmostapplications,modulesarecoupledmainlybydata–amodulemaypassdatatoanothermodulethatittriggers.Datacouplingcanbeaproblemwhenunknowndata-sensitiveactionsorlimitsexistinamodule.Forexample,ifacreaterentalrecordmoduleissetuptohandleamaximumof10videosperrental,themodulemayfailifthedatainputmodulepassesmorethan10videoIDstoit.Ifthemodulereceivingthedatawillperformtheexpectedactionsandonlythoseactionsforallallowablevaluesandsetsofdata,thendatacouplingpresentsfewproblems.ModuleSpecification.Structuredmoduledesignguidelinestrytoincreasecohesionandreducecoupling.However,nooneknowshowtodesignthe“bestset”ofmodules.AsinmanyotherpartsofISdesign,theanalystfollowstheprocedurecalled“satisficing”bySimon(xxxx);avoidclearlybadstructuresofmodulesandstrivetofindastructurethatatleastis“satisfactory.”Guidelinesforstructuredmoduledesignatthedetaillogiclevelinclude:1.Amoduleperformsoneandonlyonemajorfunction–chargecreditcard,prepareinvoice,retrievedata,updatedata,etc.Thestatementswithinthemoduleshouldshowahighdegreeoffunctionalandtemporalcohesionunlessanotherformofcohesionismoreimportant.2.Eachmoduleshouldworkcorrectlyforanydatasetthatitstriggermodule(s)maysendtoit.Thelessdatatransferthelesschancefordatacouplingproblems,butgooddesigninvolvestradeoffs.Retrievingdatafromadatastoreinsteadofreceivingthemfromanothermodulemayreducetheincidenceofdatacouplingproblems,butmayincreaseprocessingtime.3.Everymodulecontainslogicdefinedbypseudo-codeoractualprogramcode.Tocarryouttheirfunction,modulesmay(a)operateondatastoresto:retrieve,create,updateordeleterecords;(b)readinputfromexternalsources–keyboards,scanners,etc.,(c)sendoutputtoexternalsinks–printers,othersystems,etc.;(d)performdatatransformations(e)callorperformsubroutines8-38 orproceduresand(d)usesequencecontrollogictodirectthecontrolflowwithinthemoduleortoselectthenextmoduletotrigger1.Amoduleshouldhaveoneandonlyoneentrance–thestatementexecutedwhentheprocessistriggered.Itmayexit–transfercontrol,tooneormoreothermodulesoritmaycausetheprogrameithertocloseortowaitforanexternaleventtrigger.Amodulemayhavesequencecontrollogicattheexitpoint–i.e.,itmaytriggeroneofseveralmodulesornonedependingoninternalconditions.Controltransfersinonedirectiononly:fromtheexitpointofthetriggermoduletotheentrancepointofthetriggeredmodule2.Theonlycommunicationallowedbetweenmodulesconsistsofthedataitemspassedfromthetriggermoduletothetriggeredmoduleatthetimeofthetriggerevent.Thedatamayincludeflagorswitchvalues.Flagsandswitchesincreasethepotentialfordatacouplingproblemsandshouldbeusedwithcaution.Usingcorrectstatementsfromarecognizedprogramminglanguageorpseudo-codespecifiesthelogicwithinamodule.Whenstatementsfromaprogramminglanguageareused,theanalystspecifiesthespecificlanguageandversion.Theactualcodestatementsshouldfollowtheformatandconventionsofthelanguage.However,theanalystcansubstitutepseudo-codeorabriefdescriptionforactualcodeincomplexorstubmodulestobecodedatalatertime.Analystsuseseveraldifferentconventionstogovernwhichmodulesmaycontaincode.Withoneconvention,codemayappearonlyinthelowestlevelmodules,thosemoduleswithnochildrenordescendentsontheFHD.Thesemodulesarecalledbasicfunctionalmodulesorelementarymodules.Withthisconvention,additionalelementarymodulesareaddedasappropriatetocontainswitchboards,menusandsetupinstructions.Otheranalystsfinditmoreconvenienttoallowmodulesthatarenotelementarymodulestocontainswitchboards,menusandsetupinstructions.AgoodwaytodocumentindividualmodulesisthroughanInput-Process-Output(IPO)modulechart.AnIPOchartisatraditionalwayoforganizingtheinformationneededtocodeaparticularmodule.AswithFHD’s,thetermIPOhasalsobeenuseddifferentlytodescribearequirementscapturetool.IPOchartsshouldcapturethetriggers,input,process,outputandtriggeredmodulesinanarrativeform.Thechartshouldhavefivesections,oneforeachpart.1.Triggers.Thefirstsectionshouldlistallpossibletriggersforthemodule.Atriggermaybeaneventonadataentryscreen(e.g.abuttonclick),acallfromanothermodulewithorwithoutassociateddata,oranautomaticeventsuchasatimedexecution.2.Input.TheIPOdescriptionshoulddescribeallrequiredinputdataandwhereitisobtainedfrom.Inputcancomefromacallingmodule,ascreen,oradatabase.Screensareusuallytreatedasaflow(allfields)fromanexternal.Callstoadatabaseshouldincludeappropriatecallingpseudo-code.Aninputofallordersfromanordertableforagiven8-38 customershouldindicatethattheinputisfromtheOrderstablewhereOrder-Id=Current-Customer-ID.IftheinputisfromaquerytothedatabaseandnotatablethentheinputcaneitherindicatethattheflowisfromQuery-A:(SQLpseudo-code)orjustnamethequeryifthequeryisdefinedasapartofthedatamodel.1.Process.ProcessdescriptionsshouldbeinstructuredEnglishorpseudo-code.Theobjectiveistowriteinstructionsthatacompetentprogrammercouldfollowtogeneratewhatyouwant.Thestatementsshouldmatchthelanguageenvironmentthatyouuse.IfyouhaveanI/Oscreenshotassociatedwiththemoduleitshouldbereferenced(e.g.SeeFig27).2.Output.TheIPOshoulddescribealloutputsandwheretheygo.3.TriggeredEvents.Thedescriptionshouldindicateallpotentialnamedcomponentscalledfromthemoduleincludingsubroutines,macros,ormodules.Logicfordeterminingwhicheventiscalledshouldappearintheprocesslogic.Pseudo-code.Pseudo-codeoritscloserelative,structuredEnglish,offerageneralizedprogramminglanguagetospecifythedetaillogicassociatedwitheachmodule.Pseudocodeconsistsofasetofinstructionsorstatementssimilartothosefoundinprogramminglanguages.Asinaprogramminglanguage,thepseudocodestatementsineachmodulemustexplicitly,completelyandunambiguouslydefinetheactionsperformedbythemoduletotransforminputsintotherequiredoutputsincludinglinkstosubroutinesandothermodules..Theactionsorstatementsavailableinpseudocodeinclude:1.Readinputdatafromanexternalsource–keyboard,scanner,etc.2.Transformdata–assignagivenorcomputedvaluetoadataelement3.Operateonadatastore–retrieveorupdateattributesinanexistingrecordandcreateordeleterecords4.Callorperformsubroutinesorprocedures5.Useacontroltoexecutestatements,macros,modulesorsubroutines.6.Managetheflowofcontrol.Unlessotherwisespecified,controlwithinamoduleisassumedtoflowsequentially–fromeachstatementtothefollowingstatement.Useconditionallogictocontrolanyothersequenceofactions–if,classordostatements.Controlflowineventdrivensystemsismanagedbytheuseractivatingacontrolevent.7.Writeoutputdatatoanexternalsink–printacard,documentorreport,senddatabyEDI,etc.Whilesomegeneralconventionsapply,muchofpseudo-codeisflexible.Companiesand/oranalystsmaydeveloptheirownversionsasneeded.Thematerialbelowsketchesoutsomepseudocodestatementsforuseinafieldproject.Youshouldbefamiliarwiththeactionsperformedbythesestatements8-38 fromprogrammingcourses.Youmayusestandardprogrammingconventions–forexample,separatedataitemnamesbycommas.However,punctuationisnotcriticalinpseudocodeaslongasmeaningisclear–forexampleyoumayuseeitherperiodsorsemicolonstomarktheendofastatement.Foranumberofsituations,youwillwishtoinventorexpandoncorepseudocodetorepresentsomecomplexactioninasimplifiedform.Thefollowingsectionsillustratepseudocodeformatandgeneralconventionsforuseinthefieldproject.Thismaterialassumesthatteammembersarefamiliarwithprogramminglanguagesandconventions.Reviewanintroductoryprogramminglanguagebookifanyofthestatementsbelowareunclear.InputData.Thegeneralformofthepseudocodestatementis:Read(dataitemnames)[From(sourcename)].Anypartofastatementinsquarebrackets[xxx]isoptional.Thefollowingpseudocodestatementreadsinthecustomernumberforavideorental:8-38 ReadI-Cust-NoFromScanner.The“I”beforetheattributenameisanoptionalconventiontoidentifythefactthatthisdata-item,whichcontainsinputdatafromanexternalsource,isnotanattributeordata-elementretrievedfromadatastore.TheprogrammermayusetheReadstatementonlytobringindatafromanexternalsource;youmaynotReadfromadatastore.TransformingData.TheSetstatementsetsadataitemequaltothevalueofanexpression.Theformatofthepseudocodeis:[Set](data-item)=(agivenorcomputedvalueofanexpression).Theword“Set”isoptionalbuthelpfultoclarifythatthisstatementsetsorassignsavaluetothedata-itemonthelefthandsideoftheequation.Forexample,thestatement“SetTax-rate=0.07willsetthesalestaxratetoagivenvalue,7percent.Thestatement“SetTax=Tax-Rate*Total-Costsetsthevalueoftaxequaltoacomputedvalue–thetaxratemultipliedbythetotalcost.Allstandardfunctions–average,maximum,total,etc.,maybeusedinpseudocode.Whenyouuseorinventanon-standardfunctiondescribedinEnglish,provideanadequatedetailonwhatitdoes.Forexample,thestatement“SetCust-No=(nextunusedcustomernumberinthesequence)representstheautomaticgenerationofcustomernumbersmoreclearlythanSetCust-No.=(next).OperateonaDataStore.SQLprovidesthebasisforthepseudocodetospecifydatastoreoperations–create,delete,retrieveorupdatearoworrecord.IfyoudonotrememberorareunclearabouttheformatandeffectofSQLstatements,reviewSQLbeforetryingtowritepseudocode.YoumayusestandardSQLormixSQLwithsomeEnglishphrasesthatareclearbutwillnotexecuteinSQL.ApseudocodestatementtoretrievedataaboutaGBVideocustomermightbe“Select*FromCustomersWhereCust-No=I-Cust-No.ThisstatementretrievesallthedataforthecustomerwhosemembernumberwasscannedandstoredinI-Cust-No.AnyvalidformoftheSelectstatementmaybeusedinthepseudocode.PseudocodealsoallowsthedesignertoinventEnglishphrasestosimplifythecodeaslongasthemeaningisexplicitandcomplete.Forexample,thesystemmayprovideforretrievalofacustomerrecordbycustomernumber,telephonenumberorname–normallythreedifferentSQLstatements.Thecustomernumberoptionretrievesthedataforonecustomer;theothersmayretrievedataforseveralcustomers.Additionalprogramlogicisrequiredtolettheclerkselectthedesiredcustomerfrommultiplechoices.Ashorthandexpressionforthisprocessthatisacceptableatthepseudocodelevelis“Select*FromCustomerWhere(thecurrentcustomermaybeidentifiedbycustomernumber,telephonenumberorname).8-38 StatementsthatcontainincorrectSQLonlybecauseofcarelessnessorignorancedonotbelonginpseudocode.Forexample,ifthedesignerwishestofindthecustomernumbersofcustomerswithmorethanthreerentals,thestatement“SelectCust-No,Count(*)FromRentalsGroupByCust-NoWhereCount(*)>3”isincorrectSQLandinappropriatepseudocode.EitheruseacorrectSQLstatementwithHavinginplaceofWhereoruseastatementintheform“SelectCust-No,Count(*)FromRentals(forcustomerswithmorethanthreerentals)wheretheconditionclearlyisinEnglishnotSQL.AllotherSQLstatementmayappearinpseudocode.Forexample,anInsertstatementwillcreatenewrowsorrecords.Thestatement“InsertIntoRentalsValues(I-Rental-No,I-Cust-No,I-Date,I-Clerk-No,I-Pay-Type,I-CC-No,I-Expire)willtakethevaluesinputtedtoorgeneratedintheGBVideoRentalProcessandplacetheninanewrowintheRentalstable.TheDeletestatementwilldeleteanentireroworrecord.AnUpdateStatementchangesoneormorevaluesinanexistingroworrecord.Thestatement“UpdateLinesSetReturn-Date=(currentdate)WhereVideo-No=I-Video-NoandReturn-Date=nullwillupdatetherecordtoreflectthereturnofavideotape.Statementstocreatenewtablesorfilesmaybebutnormallyarenotincludedinthepseudocode.Thedataschemaanditsmetadatashouldprovideanadequatesystemdesignspecificationfortheactualcodetocreatethetables.SomeCASEtools,forexample,D/2000willcreatewillcreatethedataschemafromanERDand(withsomehelpfromthedesigner)createthetablesfromtheschema.PerformaProcedure.Theperformstatementisusedtoexecuteaprocedure–anamedblockofcodeinsidethemodule,ortocallasubroutineoutsidethemodule.Proceduresinsidethemoduleallowtheprogrammertousethesamesetofinstructionsatmorethanonepointinsidethemoduleortosimplycomplexconditionalexpressionsbyseparatingoutthestatementsintheprocedure.Aprocedureiscreatedinsidethemodulebygivingasetofstatementsaheading“Procedure(name)”wherenameisanyuniqueprocedurename–anamenotusedbyanotherprocedure.Inthemetadataforamodule,theProceduresfollowthesequentiallyexecutedcodeblock.Theformatis:ProcedureName-1BeginStatement1…StatementnEndSubroutinesconsistofproceduresusedbymorethanonemodule.Thedescriptionsfortheseproceduresfollowthemoduledescriptionsinasectioncalled“CommonSubroutines”8-38 Theformatofthestatementtoexecutebothinternalandsubroutineproceduresis:Perform(name).FlowofControl.Asnotedearlier,controlflowssequentiallyfromstatementtostatementinthepseudocodeunlesschangedbyaconditionalstatement.ConditionalstatementsinpseudocodeincludeIfThenElse,DoandClass.TheformatfortheIFstatementis:IF(condition)Then(action)[Else(action)].ActioncanconsistofanypseudocodestatementincludingaPerform.Whenamodulewishestopasscontroltoanothermodule,thestatementisTrigger(moduleIDnumber[{listofdata-items}]),forexample,thestatementTriggerP2.2{Cust-No,Rental-No}mayappearattheendofmoduleP2.1.Theflowofcontrolandthevaluesofthedata-itemspassfromP2.1toP2.2.Dostatementsappearinmanyforms.Threegeneralformsforpseudocodeare:While(condition)Do(Actions)EndWhileDo(actions)Until(condition)DoFor(index=initialTolimit)(Actions)EndDoInDostatements,actionsmayconsistofasetorblockofpseudocodestatementsincludingPerforms.TheCasestructureprovidesanefficientwaytoshowthechoiceamongseveralalternatives.Theformatis:Select(data-item)Case(value-1,action-1)……Case(value-n,action-n)DefaultCase(action)EndSelectThestatementinvolvesasetoflinkedvaluesandactions.Theactionpairedwiththecasevaluethatmatchesthevalueofthedata-elementisexecuted.IfpushingtheMemberbutton,setsthedata-itemchoice=1,Rentalsetschoice=2andReturnsetschoice=3,thenthefollowingpseudocodewillselecttheappropriateGBVideoprocess:8-38 Module0.0ReadChoiceSelectChoiceCase1TriggerP1.0Case2TriggerP2.0Case3TriggerP3.0DefaultCaseTriggerP0.0EndSelectNodataarepassedinthisexample,onlytheflowofcontrol.NotethattheprogrammermayuseembeddedIfstatementstoaccomplishtheaboveselectionbuttheCasestatementoffersaneasiertofollowform.OutputData.TheWritestatementisusedonlyforoutputtoanexternalsink.Theprogrammermaynotwritetoadatastore.TheformatisWrite(data-itemlist){To(device)}.Forexample,WriteNameTo(membercardimprinter)placesthecustomersnameonamembercardthatalreadycontainsbothaprintedandbarcodedmembernumber.AsamplesetofpseudocodeforthefirstseveralmodulesofGBVideoappearsinFigure8-8.ThemodulestructureisdefinedintheFHDinFigure8-6.Figure8-8.GBVideoPseudocode._______________________________________________________________________PsuedocodefortheGBVideo–VideotapeRentalandReturnSystemEachmoduleisshownbelowwithappropriatepseudocode.Notethattheexampleusestheconventionofincludingswitchboards,triggers,menusandsetupinthenon-elementarymodules.N0.0GBVideo-VideotapeRentalandReturnSystem.Thesystemmanageroroperatortriggersthismodule.ThemodulecontainsthecodetostartandrestartthesystemandtodisplaythemainswitchboardthatallowstheusertoselectortriggerN1.0,N2.0orN3.0.Read(function)fromKeyboardSelect(function)Case(1,TriggerN1.0)Case(2,Trigger8-38 N2.0)Case(3,TriggerN3.0)EndSelectEndN1.0Enrollanewmemberorupdatedata.TriggeredbyN0.0Input(I-Customer_status)fromKeyboardSelect(I-Customer_status)Case(Old,PerformOld)Case(New,PerformNew)EndSelectProcedureOldBeginReadI-member_no,I-telephone_nofromkeyboardSelect*FromCustomerWhereCustomer_No=I-Customer_NoorTelephone_Number=I-Telephone_NoRead(allattributesofcustomer)fromkeyboard[Note:userentersanycorrectionsintotheinputform]whichcontainstheretrieveddata.]UpdateCustomerEndProcedureNewBeginRead(allattributesofcustomerexceptCustomer_No)fromkeyboard)ReadI-Customer_NofromScanner[Note:thecustomernumberisscannedfromablankmembercard]InsertIntoCustomerValues(fromscannerandkeyboardinput)Print“MemberCard”EndEndN2.0RentalProcess.TriggeredbyN2.0.ThismoduletriggersN2.1.N2.1Inputcustomerandvideodataforarental.TriggeredbyN2.0.Read(I-Customer_No)fromscannerRead(I-Video_No)fromscannerTriggerN2.2N2.2Receivecash/checkorpostaCCtransaction.TriggeredbyN2.1Read(I-Pay_type)fromkeyboardIfI-Pay_type=checkthengetacheckapprovalnumberelseifI-Pay_type=CC,thengetaCCapprovalnumberelsetriggerN3.0[Note:gettinganapprovalnumberisacomplexprocesstobecodedlater]Ifapprovaldenied,thenendelsetriggerN3.08-38 End_____________________________________________________________________________TypicalSystemDesignRequirementsThearchitectureofaprogramisthesetofmodulesorunitsthatmakeuptheprogramandtherelationshipamongthem.Inatraditionalproceduralprogramaunitisasubroutineoracalledfunction;inaGUIbasedlanguagelikeVisualBasicaunitisascreenoracontrolonascreen.Thepurposeofprogramarchitectureistoputintooneplacethethingsthatarelikelytochangetogetherwhenthesystemischanged.Themostcommonarchitecturesarefunctionallydrivenanddialoguedriven.Afunctionallydrivenarchitecturetriestoputintothesamemodulethoselinesofcodethatsupportthesamefunction.IfasystemforGBVideoallowsacustomertoselectitemstopurchase,specifyshippingandthenarrangeforpaymentthenafunctionaldecompositionwouldhaveaSelect-Itemsmodule,aSpecify-ShippingmoduleandanArrange-Paymentmodule.Thesemodulesmightbecodesubroutinesortheymightbeforms,dependingonthelanguageusedtoimplementthesystem.Adialoguedrivenarchitectureisorganizedaroundthedialoginterfacewiththeuser.AprogramforGBVideodesignedtoevaluateperformancemightallowtheanalysttoshowamapofsalesbylocation,thenputacursoronalocationanddisplayeitherachartortableofsales,thenmodifythedisplaysintocategoriesandprinttheresult.Theanalystwouldliketobeabletoswitchamongthesedisplayoptionsinanyorder.InthiscaseyoumightchoosetocreateaDisplay-Mapmodule,aProduce-Chartmodule,andaPrint-Resultsmodule.ProcessDrivenSystems.Processdrivensystemsaresystemsforwhichprocessesthatoccurwithinthesystemaretriggeredbytheoutcomesofotherprocessesinthesystem.Batchprogramsaretypicallyprocessdrivenasaremostorderentrysystems.Designdocumentationshouldinclude:·I/Olayoutsorscreenshots·PhysicalDataFlowDiagram·PhysicalDataModel(usuallyrelational)·StructureChartorFunctionalHierarchyDiagram·IPOprocessdescriptionofallmodulesintheStructureChart/FHD·Detailedrepositorymetadata(tables,attributes,flows)·Individualdatamodelsforanyuserdataviewsincludingappropriatequerytables.·Querylogicforallqueries.8-38 DialogDrivenSystems.Thesearesometimescalled“eventdriven”systems.Thesequenceofactionsexecutedbytheprogramisdeterminedbyuseractivatedevents(keystrokesandmouseclicks)inthedialog.Designdocumentationshouldinclude:·Webnavigationmap·Action-EventdiagramforanyActionScreens(screensthatexecuteprocessotherthannavigation)·IPOprocesslogicforallactionscreens·I/Olayoutsorscreenshots·PhysicalDataFlowDiagramforanyprocessactions·PhysicalDataModelforalldataaccessedbythesystemaswellasanyoperationaldatafilesusedforexecutingcodesuchasPHPorASPlogic·Individualdatamodelsforanyuserdataviewsincludingappropriatequerytables.·Querylogicforallqueries.DataWarehouseSystems.Thesearereadorienteddatabasestructuresusedforreportingorstrategicdataexploration.Documentationneedstospecifysourcedata,transformationandeditingrequirements,databaseproperties,andusagerequirements.Documentationshouldinclude:·Physicaldatamodelofallsourcedata.·ADFDdescriptionoftheExtraction,Transformation,andLoading(ETL)processes.·Processlogicdescriptionsofallprimitivebubblesthatdescribeanytransformationsoredits.·Physicaldatamodelofanyintermediateworkingdatastructures.·Source-Destinationloadingtablesthatdescribethesourcesofalldataloadedintoeitherworkingorwarehousedatastructures.·PhysicalmodelfortheDataWarehouse.·CompletemetadatafortheDataWarehouse·SQL-likemetadataforallloadingprocessesintoeithertheDataWarehouseortheworkingdatastructures.·I/Olayoutsorscreenshotsforallstandardreports.·Individualdatamodelsforanyuserdataviewsincludingappropriatequerytables.·Querylogicforallqueries.8-38 Exercises.OSUoperatesacarrentalservicethatrentsorangecarstofacultyandstaffmembersforuseonuniversitybusiness.Whenapersonarrivestopickupacar,aclerkgoestoacarfileinthenextroomwithacardforeachvehicleandselectsavehiclethatappearstobeavailable.Fortheselectedvehicle,theclerkwritesthedate/timeoutanddepartmentforthisrentalonthecard.Theclerkfillsoutarentalformwithcompletecustomerandvehicledata.Theformisplacedinafilefolderattherentaldesk.Customerswhorentregularlycomplainthattheyshouldnothavetosupplyalltheircustomerinformationeachtimetheyrentandwaitwhiletheclerkslowlyandsometimesincorrectlywritesitdown.Dependingonhowmanypeopleareinlinetorentacar,thisprocessmaytakefrom30minutestowelloveranhour.Manycustomersbecomeannoyedorevenangryatthedelay.AnumberofcustomershaveaskedforspecialpermissiontouseHertzLocalEditioneventhoughHertzchargeshigherrates.Therentalofficehasaddedmoreclerkstoimproveserviceandnowhasthreepeopleondutyallday,butmostofthetimetheclerkshavenothingtodo.Whenacarisreturned,aclerkwalksouttocheckthemileageandgastanklevelandlookforanydamage.Theclerkthenretrievesthevehiclecardfromthenextroomandtherentalformfromthefilefolder,fillsinthemileageandreturntimeontherentalformandvehiclecard,calculatesthechargeandmakesacopyoftherentalformfortherenter.Theoriginalformisstoredinafilingcabinetforhistoricalanalysis.Thereturnprocessmaytakefrom20minutestomorethananhour.Theofficewassetuptorentcarsatthelowestpossiblerate–atleastratesbelowthoseofthemajorcarrentalcompanies,provideservicecomparablethemajors,andcoverallitscoststhroughthefeesitcharges.Themaintenancepeoplecomplainthatthemileageeitherisnotwrittenonthevehiclecardorisincorrect,makingitmoreexpensiveforthemtoscheduleserviceonthevehicles.Inaddition,therentalclerkshavenostandardmethodforrecordingandreportingproblemsonthecars,againincreasingmaintenanceproblemsandexpense.Therentalofficehasaskedyourteamtodevelopasimple,computer-basedinformationsystemforthemtoreducecostandimproveservice.Yourteamcanchangethedatastructure,flows,etc.,inaccordwithgoodpractice,butisaskedtopreservethebasicorganization,functionsandoperationsofthecurrentoffice.TheVicePresident,Dr.PeterPistol,towhomtheofficereportshastoldtheofficetohavethenewsysteminplacebynextFallatthebeginningofthesemester.Theofficeistousetheexistingsoftware,networkandserversalreadyinplaceinitsdivision.8-38 1.TraditionalDesignOSUhasdecidedtohaveyoubuildtheinformationsystemspecifiedatthebeginningofthistest.a.ConverttheDataFlowDiagramforthecaseintoaFunctionalHierarchyDiagram(precedencechart.)Usecorrectnumberingandnamingconventions.Indicateanydatathatflowsamongmodules.b.Providecompletedesigndocumentationforthe“ReturnaVehicle”process.Includeappropriatetriggers,input,process,outputandtriggeredevents.Writeapseudo-code(orsimilar)descriptionoftheprocesslogic.c.AssumeyouwillwritethesysteminMSAccess.SelectthenecessarydesignviewpropertiestoprovideappropriatedesignmetadatafortheRENTALtableinthedatabase.2.DataWarehouseTheOSUadministrationwantstocreateaDataWarehousetotrackvehicleuse.Questionsinclude·Howfarhaseachvehiclebeendriveneachmonth?·Whatarethenumberofrentals,totalmiles,andtotalchargesforeachdepartmenteachmonth?·Whatisthetotalmileageoneachvehicle?DataWarehousingspecialistshavedesignedthefollowingstructurefortheDataMart.RENTALRentalNumLicPlateNoDate/Time_outCustDepartmentVehicleMakeEndingMileageMilesDrivenVEHICLEMakeModelRateLastMileagea.DrawaDataFlowDiagramfortheupdateprocess(ETL)forthedatamart.Assumethesourcetablesaretheonesfromthecaseatthebeginningofthetest.b.Providecompletedesigndocumentationforthe“LoadDataintoRental”process.Includeappropriateinput,process,andoutput.Writeapseudo-code(orsimilar)descriptionoftheprocesslogic.8-38 c.Writepseudo-code(orSQL)toretrieve“TotalmilesrentedbyeachCustomerDepartmenteachmonth”fromtheDataMart.3.WebDesignOSUhasdecidedtomovethereservationpartoftherentalsystemtotheWeb.TheyhaveindicatedthattheywantahomescreenfortheRentalProgramthatincludesadescriptionofthedepartmentandthemissionoftheprogram.Fromthatpagetheywanttobeabletoselecta“VehiclesOwned”sheetthatdescribesthetypesofvehiclesavailableandtheirrate.Theyalsowanta“RentVehicles”screenthatallowscustomerstoreserveavehicleforrental.TheVehiclesOwnedlinkbringsupaMSWorddocument“Vehicles.doc”storedinthefolderOSURentalontheOSUadministrativeserver.The“RentVehicles”linkgoestoascreenthatallowsuserstobrowseandreservevehicles.Thescreenshouldoperateasfollows.ThecustomerenterstheirName,Telephone,Address,Department,anddepartmentalAccount_no.Oncetheaccountnumberhasbeenverified(customerisonalistofpeopleauthorizedtorentontheaccount)thescreendisplaysaboxforthedesiredDate/Time_inandDate/Time_out.Whenthisinformationisentered,thesystemdisplaysalistofallvehiclesavailable(LicPlateNo,Make,Model).Avehicleisavailableifthereisnorentalrecordforthatvehiclethatoverlapswiththerentaltimerequested.Thecustomerclicksonavehicleandthesystemrecordsarentalentryforthatvehicleandcustomer.a.DrawaWebMaptotrackthenavigationthroughthesystem.b.DrawascreenlayoutfortheRentVehiclesscreen.Includeanytriggerbuttonsyouneed.c.Providecompletedesigndocumentationforthe“RentVehicle”process.Includeappropriateinput,process,andoutput.Writeapseudo-code(orsimilar)descriptionoftheprocesslogic.8-38 Purchase(Teams1,2,6,7,23)OSUhasdecidedtooutsourcetheentirerentalprocess.Dr.Pistolsaidthatanyoutsourcermustbeabletoprovidecars,vansanddeliverytrucksforthecampus.Hewasconcernedthatthevehiclesbeofhighquality(cleanandwellmaintained),servicebepromptandconvenient,andthatcostsbelow.CandidatesincludeHartzAutomotive,PennyRental,andEskimoJoe’sGarage.HartzhasanofficeinStillwaterjustoffcampus.Theyagreetohaveasupplyofcars,vansanddeliverytruckskeptatthesiteandcangetadditionalvehiclesdriveninwithoneday’snoticeifnecessary.Theyhaveanon-sitemaintenancegarageanddonotkeepanyvehiclethathasmorethan18,000milesonit.Thedailyrentalratetheybidwas$35perdayforcars,$45perdayforvans,and$60fordeliverytrucks.Pennyhasanofficeabout4milesfromcampus.Theystockcars,vansanddeliverytrucks,butwouldhavedifficultyobtainingadditionalvehiclesforaspecialevent.TheymaintaintheirvehiclesattheirgaragefacilityinTulsaandsellvehiclesthathavemorethan25,000milesonthem.Theybidarentalrateof$35perdayforcars,$40perdayforvansand$55perdayfordeliverytrucks.EskimoJoe’sisrightoffcampus.Theyprovidecarsandvansbutdonotprovidedeliverytrucks.Theykeeptheirvehiclesfor40,000milesbutdoacompletemechanicaloverhaulevery5,000miles.TheyagreedtorentadditionalvehiclesfromHartzorDollarforanyspecialeventattheirbidrate.Joe’sbidarentalpriceof$20perdayforeithercarsorvans.Answerthefollowingquestionsinbulletform.a.WriteaprojectstatementtoputinanRFPspecificenoughforvendorstobeabletotellwhethertheyarecompetitive.Includemandatoryanddesirablerequirements.8-38 b.Whatisyourproposedevaluationprocedure?Indicatec.Conductanevaluationusingtheapproachaboveandmakearecommendation.Explainhowyouwouldobtainyourdatainarealsituation.d.WhatisyourTestandAcceptanceplan?(HowwillyouassureOSUthattheoutsourcercandeliverwhatispromised?)8-38
此文档下载收益归作者所有