OOAD

2,683 views 16 slides May 27, 2020
Slide 1
Slide 1 of 16
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16

About This Presentation

Introduction: The Structure of Complex systems, The Inherent Complexity of Software, Attributes of Complex System, Organized and Disorganized Complexity, Bringing Order to Chaos, Designing Complex Systems


Slide Content

@2020 Presented By Y. N. D.
Aravind 1
Presented By
Y. N. D. ARAVIND
M.Tech, Dept of CSE
Newton’s Group Of Institutions, Macherla

@2020 Presented By Y. N. D. Aravind
Chapter 1 Complexity 4
1.1 The Structure of Complex Systems 6
1.2 The Inherent Complexity of Software 8
1.3 The Five Attributes of a Complex System 11
1.4 Organized and Disorganized Complexity 12
1.5 Bringing Order to Chaos 13
1.6 On Designing Complex Systems 14
2

Intheearlydaysofobjecttechnology,manypeoplewereinitially
introducedto“OO”throughprogramminglanguages.Theydiscoveredwhat
thesenewlanguagescoulddoforthemandtriedtopracticallyapplythe
languagestosolvereal-worldproblems.Astimepassed,languagesimproved,
developmenttechniquesevolved,bestpracticesemerged,andformalobject-
orientedmethodologieswerecreated.
Todayobject-orienteddevelopmentisarichandpowerfuldevelopmentmodel.
Thissectiontakesastepbacktolookattheunderpinningtheorythatsupplies
thefoundationforalloftheaboveandprovidesinsightintowhythingsworkthe
waytheydointheobject-orientedparadigm.
@2020 Presented By Y. N. D. Aravind 3
CONCEPTS

Systems:Systemsareconstructedbyinterconnectingcomponents(Boundaries,
Environments,Characters,EmergentProperties),whichmaywellbesystemsin
theirownright.Thelargerthenumberofthesecomponentsandrelationships
betweenthem,higherwillbethecomplexityoftheoverallsystem.
SoftwareSystems:Softwaresystemsarenotanydifferentfromothersystems
withrespecttothesecharacteristics.Thus,theyarealsoembeddedwithinsome
operationalenvironment,andperformoperationswhichareclearlydefinedand
distinguishedfromtheoperationsofothersystemsinthisenvironment.They
alsohavepropertieswhichemergefromtheinteractionsoftheircomponents
and/ortheinteractionsofthemselveswithothersystemsintheirenvironment.A
systemthatembodiesoneormoresoftwaresubsystemswhichcontributetoor
controlasignificantpartofitsoverallbehavioriswhatwecallasoftware
intensivesystem.Asexamplesofcomplexsoftware-intensivesystems,wemay
considerstockandproductioncontrolsystems,aviationsystems,railsystems,
bankingsystems,healthcaresystemsandsoon.
@2020 Presented By Y. N. D. Aravind
4
4
COMPLEXITY

Complexity:Complexitydependsonthenumberofthecomponentsembeddedin
themaswellastherelationshipsandtheinteractionsbetweenthesecomponents
whichcarry;
1.Impossible for humans to comprehend fully
2.Difficult to document and test
3.Potentially inconsistent or incomplete
4.Subject to change
5.No fundamental laws to explain phenomena and approaches
@2020 Presented By Y. N. D. Aravind
5
5
COMPLEXITY

ExamplesofComplexSystems:Thestructureofpersonalcomputer,plants
andanimals,matter,socialinstitutionsaresomeexamplesofcomplexsystem.
ThestructureofaPersonalComputer:Apersonalcomputerisadeviceof
moderatecomplexity.MajorelementsareCPU,monitor,keyboardandsome
secondarystoragedevices.CPUencompassesprimarymemory,anALU,anda
bustowhichperipheraldevicesareattached.AnALUmaybedividedinto
registerswhichareconstructedfromNANDgates,invertersandsoon.Allare
thehierarchicalnatureofacomplexsystem.
ThestructureofPlants:Plantsarecomplexmulticellularorganismwhichare
composedofcellswhichisturnencompasseselementssuchaschloroplasts,
nucleus,andsoon.Forexample,atthehighestlevelofabstraction,rootsare
responsibleforabsorbingwaterandmineralsfromthesoil.Rootsinteractwith
stems,whichtransporttheserawmaterialsuptotheleaves.Theleavesinturn
usewaterandmineralsprovidedbystemstoproducefoodthrough
photosynthesis.
@2020 Presented By Y. N. D. Aravind
6
6
The Structure of Complex System

ThestructureofAnimals:Animalsexhibitamulticulturalhierarchical
structureinwhichcollectionofcellsformtissues,tissuesworktogetheras
organs,clustersoforgansdefinesystems(suchasthedigestivesystem)andso
on.
ThestructureofMatter:Nuclearphysicistsareconcernedwitha
structuralhierarchyofmatter.
Atomsaremadeupofelectrons,protonsandneutrons.Elementsand
elementaryparticlesbutprotons,neutronsandotherparticlesareformedfrom
morebasiccomponentscalledquarks,whicheventuallyformedfrompro-
quarks.
ThestructureofSocialinstitutions:Insocialinstitutions,groupofpeople
jointogethertoaccomplishtasksthatcannotbedonebymadeofdivisions
whichinturncontainbrancheswhichinturnencompasslocalofficesandso
on.
@2020 Presented By Y. N. D. Aravind
7
7
The Structure of Complex System

The Properties of Complex and Simple Software Systems: Software
may involve elements of great complexity which is of different kind.
Some software systems are simple.
These are the largely forgettable applications that are specified,
constructed, maintained, and used by the same person, usually the amateur
programmer or the professional developer working in isolation.
Such systems tend to have a very limited purpose and a very short life
span.
We can afford to throw them away and replace them with entirely new
software rather than attempt to reuse them, repair them, or extend their
functionality, Such applications are generally more tedious than difficult to
develop; consequently, learning how to design them does not interest us.
@2020 Presented By Y. N. D. Aravind
8
8
The Inherent Complexity of Software

Some software systems are complex.
The applications that exhibit a very rich set of behaviors, as, for example,
in reactive systems that drive or are driven by events in the physical world, and
for which time and space are scarce resources; applications that maintain the
integrity of hundreds of thousands of records of information while allowing
concurrent updates and queries; and systems for the command and control of
real-world entities, such as the routing of air or railway traffic.
Software systems such as world of industrial strength software tend to have
a long life span, and over time, many users come to depend upon their proper
functioning.
The frameworks that simplify the creation of domain-specific applications,
and programs that mimic some aspect of human intelligence.
Although such applications are generally products of research and
development they are no less complex, for they are the means and artifacts of
incremental and exploratory development.
@2020 Presented By Y. N. D. Aravind 9
The Inherent Complexity of Software

Why Software is inherently Complex
The complexity of software is an essential property not an accidental one. The
inherent complexity derives from four elements; the complexity of the problem
domain, the difficultly of managing the developmental process, the flexibility
possible through software and the problems of characterizing the behavior of
discrete systems.
1. The complexity of the problem domain
Complex requirements
Decay of system
2. The flexibility possible through software
3. The problem of characterizing the behavior of discrete systems
Numerous possible states
Difficult to express all states
@2020 Presented By Y. N. D. Aravind 10
The Inherent Complexity of Software

There are five attribute common to all complex systems. They are as follows:
1.Hierarchicalandinteractingsubsystems
Frequently,complexitytakestheformofahierarchy,wherebyacomplexsystemiscomposedof
interrelatedsubsystemsthathaveinturntheirownsubsystemsandsoon,untilsomelowestlevelof
elementarycomponentsisreached.
2.Arbitrarydeterminationofprimitivecomponents
Thechoiceofwhatcomponentsinasystemareprimitiveisrelativelyarbitraryandislargelyupto
thediscretionoftheobserverofthesystemclassstructureandtheobjectstructurearenot
completelyindependenteachobjectinobjectstructurerepresentsaspecificinstanceofsomeclass.
3.Strongerintra-componentthaninter-componentlink
Intra-componentlinkagesaregenerallystrongerthaninter-componentlinkages.Thisfacthasthe
involvingthehighfrequencydynamicsofthecomponents-involvingtheinternalstructureofthe
components–fromthelowfrequencydynamicinvolvinginteractionamongcomponents.
4.Combineandarrangecommonrearrangingsubsystems
Hierarchicsystemsareusuallycomposedofonlyafewdifferentkindsofsubsystemsinvarious
combinationsandarrangements.Inotherwords,complexsystemshavecommonpatterns.These
patternsmayinvolvethereuseofsmallcomponentssuchasthecellsfoundinbothplantsor
animals,oroflargerstructures,suchasvascularsystems,alsofoundinbothplantsandanimals.
5.Evolutionfromsimpletocomplexsystems
Acomplexsystemthatworksisinvariablyboundtohaveevolvedfromasimplesystemthatworked
………..Acomplexsystemdesignedfromscratchneverworksandcan'tbepatcheduptomakeit
work.Youhavetostartover,beginningwithaworkingsimplesystem.
@2020 Presented By Y. N. D. Aravind 11
ATTRIBUTES OF COMPLEX SYSTEM

Simplifying Complex Systems
Usefulness of abstractions common to similar activities
e.g. driving different kinds of motor vehicle
Multiple orthogonal hierarchies
e.g. structure and control system
Prominent hierarchies in object-orientation
“ class structure ”
“ object structure ”
e. g. engine types, engine in a specific car
@2020 Presented By Y. N. D. Aravind 12
Organized and Disorganized Complexity

Principles that will provide basis for development
i.Abstraction
ii.Hierarchy
iii.Decomposition
i.TheRoleofAbstraction:Abstractionisanexceptionallypowerfultechniquefordealing
withcomplexity.Unabletomastertheentirelyofacomplexobject,wechoosetoignore
itsinessentialdetails,dealinginsteadwiththegeneralized,idealizedmodeloftheobject.
ii.TheroleofHierarchy:Identifyingthehierarchieswithinacomplexsoftwaresystemmakes
understandingofthesystemverysimple.Theobjectstructureisimportantbecauseit
illustrateshowdifferentobjectscollaboratewithoneanotherthroughpatternof
interaction(calledmechanisms).Byclassifyingobjectsintogroupsofrelatedabstractions
(forexample,kindsofplantcellsversusanimalcells,wecometoexplicitlydistinguish
thecommonanddistinctpropertiesofdifferentobjects,whichhelpstomastertheir
inherentcomplexity.
iii.TheroleofDecomposition:Decompositionisimportanttechniquesforcopyingwith
complexitybasedontheideaofdivideandconquer.Individingaproblemintoasub
problemtheproblembecomeslesscomplexandeasiertooverlookandtodealwith.
Repeatedlydividingaproblemwilleventuallyleadtosubproblemsthataresmall
enoughsothattheycanbeconquered.Afterallthesubproblemshavebeenconquered
andsolutionstothemhavebeenfound,thesolutionsneedtobecomposedinorderto
obtainthesolutionofthewholeproblem.
@2020 Presented By Y. N. D. Aravind 13
Bringing Order to Choas

EngineeringasaScienceandanArt:Everyengineeringdisciplineinvolveselements
ofbothscienceandart.Theprogrammingchallengeisalargescaleexerciseinapplied
abstractionandthusrequirestheabilitiesoftheformalmathematicianblendedwiththe
attributeofthecompetentengineer.Theroleoftheengineerasartistisparticularly
challengingwhenthetaskistodesignanentirelynewsystem.
ThemeaningofDesign:Ineveryengineeringdiscipline,designencompassesthe
disciplineapproachweusetoinventasolutionforsomeproblem,thusprovidingapath
fromrequirementstoimplementation.Thepurposeofdesignistoconstructasystem
that.
1.Satisfiesagiven(perhaps)informalfunctionalspecification
2.Conformstolimitationsofthetargetmedium
3.Meetsimplicitorexplicitrequirementsonperformanceandresourceusage
4.Satisfiesimplicitorexplicitdesigncriteriaontheformoftheartifact
5.Satisfiesrestrictionsonthedesignprocessitself,suchasitslengthorcost,orthe
availablefordoingthedesign.
According to Stroustrup, the purpose of design is to create a clean and relatively simple
internal structure, sometimes also called as architecture. A design is the end product of
the design process.
@2020 Presented By Y. N. D. Aravind 14
On Design Complex System

TheImportanceofModelBuilding:Thebuildingsofmodelshaveabroadacceptance
amongallengineeringdisciplineslargelybecausemodelbuildingappealstotheprinciplesof
decomposition,abstractionandhierarchy.Eachmodelwithinadesigndescribesaspecific
aspectofthesystemunderconsideration.Modelsgiveustheopportunitytofailunder
controlledconditions.Weevaluateeachmodelunderbothexpectedandunusualsituationsand
thenafterthemwhentheyfailtobehaveasweexpectordesire.Morethanonekindofmodel
isusedonordertoexpressallthesubtletiesofacomplexsystem.
TheElementsofSoftwaredesignMethods:Designofcomplexsoftwaresystem
involvesanincrementalanditerativeprocess.Eachmethodincludesthefollowing:
1.Notation:Thelanguageforexpressingeachmodel.
2.Process:Theactivitiesleadingtotheorderlyconstructionofthesystem'smode.
3.Tools:Theartifactsthateliminatethemediumofmodelbuildingandenforcerules
aboutthemodelsthemselves,sothaterrorsandinconsistenciescanbeexposed.
ThemodelsofObjectOrientedDevelopment:Themodelsofobjectorientedanalysis
anddesignreflecttheimportanceofexplicitlycapturingboththeclassandobjecthierarchies
ofthesystemunderdesign.Thesemodelsalsooverthespectrumoftheimportantdesign
decisionsthatwemustconsiderindevelopingacomplexsystemandsoencourageustocraft
implementationsthatembodythefiveattributesofwellformedcomplexsystems.
@2020 Presented By Y. N. D. Aravind 15
On Design Complex System

Thank You
@2020 Presented By Y. N. D. Aravind
Presented By
Y. N. D. ARAVIND
M.Tech, Dept of CSE
Newton’s Group Of Institutions, Macherla
16