Slide1SE2SM11SystemsDesignandProjectManagementComputerScienceandInformationTechnologyDrLilySun2011/2012Slide2LearningObjectivesToextendtheunderstandingofsoftwaredevelopmentprocessToestablishaviewofsystemsthinkingforconductingrequirementsanalysisTotransformresultsoftherequirementsanalysisontodesignofsoftwaresystemsToapplymethodsandtechniquesforpreciselyrepresentingtheresultsofrequirementsanalysisandsystemsdesignToensuresoftwaresystems’sustainabilitybyadoptingagileapproachesforthedevelopmentIntroductiontoRequirementsAnalysisandSystemsDesignSlide4Iwantaswinginmygarden.Users’NeedsvsSolutionsSlide5TheproductspecifiedbymarketingpeopleSlide6AproductpromisedbysalesmanSlide7Theproductproposedfromdesigngroup’sinitialSlide8TheproductdesignedbycorporatearchitectSlide9TheproductproducedbyprogrammerSlide10Theproductinstalledatthecustomer’ssiteSlide11Theproduct-thecustomeractuallywantedSlide12Users’NeedsvsSolutions(cont.)NHS-ChooseandBooksystemanationalelectronicreferralservicegivengpatientsachoiceofplace,dateandtimefortheirfirstoutpatientappointmentinahospitalorclinicExpectedbenefitsforpatientsyoucanchooseanyhospitalinEnglandfundedbytheNHS(i.e.NHShospitalsandsomeindependenthospitals)planandmanagearoundyourexistingappointments,ifyouarecurrentlyundergoingtreatmentfityourtreatmentinwithyourothercommitments,athomeandatworkchooseappointmentsthatfitwithyourcarer'sschedulecheckthestatusofyourreferralandtoeasilychangeorcancelyourappointmentsSlide13GiveUserswhatTheyWantNotonlybuildthesystemrightbutalsobuildtherightsystemSlide14ChallengesinBuildtheRightSystemsLackofrelevancetotheobjectivesoftheproject;orthelackoftermsofreferencefortheprojectLackofclarityinthedescriptionofadomainStakeholdersandanalyststakingcertainknowledgeforgrantedandfailingtoensurethatthereiscommonunderstandingAmbiguityand/oruncertaintyamongtheusersaboutwhattheyneedfromasoftwaresystemProblemincommunicationbetweendevelopmentteamsConflictsand/orduplicationbetweenrequirementsRequirementsexpressedinsuchawaythatitisdifficulttoassesswhethertheyhavebeenachievedDesignofthesoftwaresolutiondidnotpreciselyfollowtherequirementsspecificationsInconsistentlevelsofdetailNomechanismstocopewiththerequirementschangeandthesolutionsevolutionSlide15RequirementsAnalysisandSystemsDesignSystemsthinkingtheprocessofunderstandinghowthingsinfluenceoneanotherwithinawhole–dynamicandcomplexinnatureestablishingaviewofthesysteminaholisticmanner–allthepropertiesofasystemexaminingthelinkagesandinteractionsbetweentheelementsthatcomposetheentiretyofthesystemSlide16SystemsThinkingIssuesInterdependenceofobjectsandtheirattributesindependentelementscanneverconstituteasystemHolismemergentpropertiesnotpossibletodetectbyanalysisshouldbepossibletodefinebyaholisticapproachGoalseekingsystemicinteractionmustresultinsomegoalorfinalstateInputsandOutputsinaclosedsysteminputsaredeterminedonceandconstantinanopensystemadditionalinputsareadmittedfromtheenvironmentTransformationofinputsintooutputsthisistheprocessbywhichthegoalsareachievedSlide17SystemsThinkingIssues(cont.)EntropytheamountofdisorderorrandomnesspresentinanysystemRegulationamethodoffeedbackisnecessaryforthesystemtooperatepredictablyHierarchycomplexwholesaremadeupofsmallersubsystemsDifferentiationspecialisedunitsperformspecialisedfunctionsEquifinality(convergence)alternativewaysofattainingthesameobjectivesMultifinality(divergence)attainingalternativeobjectivesfromthesameinputsSlide18SystemsDevelopmentMethodology-realisationofSystemsThinking3mainstreamsmethodologiesStructuremethodologyWaterfallRapidApplicationDevelopment(RAD)methodologyPrototypingAgilemethodologyExtremeProgrammingproviderapidfeedbacktotheuserKeepItSimple,Stupid(KISS)makeincrementalchangestogrowthesystemthechangesmustbeembracedSlide19ASoftwareSystemDevelopmentProcessSpecificationsWhatyouoffertobuildDesignHowyouwillbuilditRequirementsWhatthecustomerwantsImplementationWorkingsystemDeploymentPuttingitinplaceMaintenance&EvolutionHelpingthesystemgrowSlide20DesigninSoftwareSystemDevelopmentProcessDesignispervasiveTheactivityofdesignhappensthroughoutdevelopmentSpecificationsWhatyouoffertobuildDesignHowyouwillbuilditRequirementsWhatthecustomerwantsImplementationWorkingsystemDeploymentPuttingitinplaceMaintenance&EvolutionHelpingthesystemgrowSlide21MainTopicsinSoftwareSystemDesign1.Basicconcepts&keytechniquesDesignisapervasiveactivityOftenthereisnodefinitivesolutionSolutionsarehighlycontextdependentDesignlinksrequirementstoimplementablespecificationsDefinitionsofcomponentsthatareeasilycode-ableTraceabilityfromimplementationbacktorequirements,isdesirableDistinctionbetweenarchitecturaldesignanddetaileddesignSlide22MainTopicsinSoftwareSystemDesign(cont.)2.KeyissuesinsoftwaredesignThemainelementsofsoftwarethatneedtobemanagedDecompositionandModularisationbreakabigsystemintosmallercomponentsAbstractionignoringdetailtogetthehighlevelstructurerightEncapsulation/informationhidingtheabilitytohidedetail(linkedtoabstraction)Definedinterfaces,separablefromimplementationwhatservicesaclassoffersandhowotherclassesma