Software Engineering: A Challenge of Designing A System: Nguyen Trung Dang Thuy s3509547
Software Engineering: A Challenge of Designing A System: Nguyen Trung Dang Thuy s3509547
Software Engineering: A Challenge of Designing A System: Nguyen Trung Dang Thuy s3509547
DesigningASystem
NguyenTrungDangThuys3509547
Abstract
Softwareengineeringistheprocessofproducingapieceofsoftware.Itincludes
gatheringrequirementsfromtheclients,analysinganddesigningtheframework,
implementingandmaintenancethesoftwareafteritsrelease.Thisstudywillshowoneof
manychallengesthatsoftwaredevelopersfacewhenenteringthe2ndphaseofaproject
andhowwecanpreventthemfromobstructingthedevelopmentprocess.
Introduction
Afterreceivingtherequirementsofthesoftwarefromtheclients,developerscanstart
analysingkeyfeaturesofthesoftware,afterwhichtheystartmappingouthowdifferent
modulesinteractswithinthesoftware.Howeverthisisnotaneasyprocess,ifnotthemost
difficultone.Formanythingsthatcanconflictwitheachotheryetarecloselydependent,
developersmustapproachthiswithagoodworkflowinmind.Oneofthebiggestchallengeis
miscommunicationbetweenteammembers.Thiscouldprovecatastrophicinatraditional
waterfallcontext.Fortunately,withthecontinuingadaptationofmoreadvanceddevelopment
models,theriskofbigmistakeshappeninghaslessened.
Discoveries
AccordingtoareportbyProfP.L.RamtekeandDr.MohammadAtique,thereare
manywaysthatcanhelptheteamcommunicatingmoreeffectively.Thiscanbedoneby
havingeveryteammemberexpressthemselvesclearly.Theyneedtohaveagoodlookat
multipleangles,perspective,havingindepthdiscussionsonhowtoachievetheirgoals.
Moreover,theyneedtobeonthesamepage,fromcodingstylestousingdesignpatterns,in
ordertoobtaintotalconsistency.Secondly,beingtruetothetopicisalsoarequirement.
Thereweremanycaseswheremisunderstandingwhattheclientswantedaffectedgreatlyto
thefinalproduct.MypastprojectwithRMITITSdepartmentwasagreatexample.We
misunderstoodtheinitialobjectivesbeasmallmarginwhichmisledmyteam.Evenifthe
teamhasthoroughlyanalysedtherequirements,designingtheframeworkcanalsobeabig
challenge.InanotherstudydonebyMikaelB.SkovandLarsBoEriksen,throughaseries
ofexperiments,theyveconcludedthatwecannotsimplylookatthefutureusecontextto
getinformationaboutwhatistobeinthesystem.Wemayidentifyneedsorproblemsinan
applicationcontext,butthesewillnotnecessarilyhelpusinunderstandingthesituationtobe
depictedbythesystem.Thismeansthatweneedtolookatthesystemasawhole,what
thesystemisgoingtoencounterdoesnotfullyhelpusunderstandhowdifferentparts
interactwitheachother.Forexamplewemayknowwhatanairspacecontrolsoftwarewill
do,buttofigureouthowtodesignsuchasystemisnotaneasytask.Weneedtoidentify
whichdoeswhat,howtheydependononeanother,howthehierarchyofdifferentclasses
andfunctionslookslike,etcIhavealsofoundoutthat,bycriticallyanalysingthe
aforementionedconclusion,thattherewillcomeapointwhennomorestepbystepdesign
procedurescanbemade.Theremustbeabigenginepartthatneedstobeinstalled.
Otherwisetheprojectcannotadvance.Thisiscoincidentallythemostimportant,yetfeared
byalldevelopers.Toaddtothis,differentlayersofcommunicationcancomplexifythiswhole
process.LikethosewithaGraphicalUserInterface.Notonlywehavetoconsiderthelogic
behindtheinternalcodebutalsohowtheinterfacecancommunicatebetweensubsystems
andamongotherinterfaces.Thiscanbeseenmostclearlyinthecaseofeventhandlersin
UserInterfaceprogramminginJava.Situationslikeonecannotcallanexternalobjectdueto
thefactthatitsaninlinedobjectdeclaration,orwiththeadditionofmultithreadingclasses
makesitevenmoreentangled.
Tools
Sohowdowedealwiththesedifficulties?Asmoreandmoresoftwarecapableof
aidingdevelopers,onemustnottotallyreliesonthem.Thekeytosuccessisgood
communication.Sosimplesolutionslikehavingperiodicmeetings,discussproblems
thoroughlyonboards,documentsallideas,designs.Wecan,however,makeuseofall
technologywecanget.Onlineconferences,onlineversioncontrol,onlineteam/project
managementsystems,emails,calls,digitalnotes,etcTherearemanyfreeservicethatwe
canuse.GoogleMail,GoogleDrive,GoogleHangout,Trello,Github,Skype,tonameafew.
Theseservices,whenusecorrectlytogether,canproveextremelyvaluable.Theyareso
effectivethatbigcompaniessemployeesusethemonadailybasis.
Conclusion
Thisisanimportantphaseofsoftwaredevelopment.Thusweneedtopaymore
attentiontoitthanever.However,thiscannotbesolvedsolelyonasinglepieceofsoftware
ortechnology.Butratherthemethodofexecutionbythedevelopersthemselves.
References
M.B.SkovandL.B.Eriksen,EvaluatingSoftwareEngineeringModelingConcepts
intheContextofNarrativeSystemsDesign.
<http://people.cs.aau.dk/~dubois/papers/EriksenSkovOOAMM.pdf>
P.L.RamtekeandM.Atique,SoftwareEngineeringChallenges:ACaseStudy,
Mar.2002.
<https://www.researchgate.net/publication/228975715_Software_Engineering_Challe
nges_A_Case_Study>