SlideShare a Scribd company logo
Architecture Definition
• A “software architecture” is the structure (or
  structures) of a system,
  which comprise
  – software components,
  – the externally visible properties of those
    components,                                  App

  – and the relationships among them.
                                        Logic          Generic
                                                        GUI


                                                       Win32



 02 - Architecture Intro.
                     CSC407                1
Components & Structures
• Architecture defines “components”
   – an abstraction
   – suppresses details not pertinent to its interactions with
     other components
• An architecture comprises more than one structure
      • modular structure (calls/uses)
      • process structure (invokes, communicates with,
        synchronises with)
      • physical structure (libraries, DLL’s, processors)
      • inheritance structures (inherits)
      • …


02 - Architecture Intro.
                    CSC407                       2
In Practice
• Divide into two levels:
    – System-Level Architecture
    – Programming-Level Design

[User Interface
    – Sometimes also referred to as “design” (or even
      “architecture”)
    – Different topic. Not covered in this course.
]

02 - Architecture Intro.
                    CSC407                     3
Design & Architecture in the Development Process
                           Requirements



                           Architecture




   Design         Design                  Design                Design



Code   C&ut       C&ut           C&ut         C&ut   C&ut        C&ut
 &
Unit
Test
                           Integration Test


                            System Test



 02 - Architecture Intro.
                     CSC407                                 4
Software Architecture
• Specifying at the highest level the construction of
  the system:
   – Technology choices
      • Platforms, language, database, middleware, …
   – System construction
      • Overall pattern: Monolithic, RDBMS, client/server, 3-tiered,
        n-tiered, distributed, …
      • Hardware interfaces (if any)
   – Division into programs
      • E.g. a program for data entry, another for data analysis, a
        Web-oriented interface, …
   – Division of programs into major subsystems
      • Reuse strategy (shared subsystems)
      • Calls constraints
      • Major strategies (e.g., for persistence, IPC, …)
02 - Architecture Intro.
                    CSC407                              5
Software Design
• We are now considering how to lay down code.
• E.g., Object-Oriented
   – What classes? What inheritance amongst the classes?
   – What classes will call what other classes?
   – How are classes grouped into subsystems (e.g. Java
     packages)?
   – What data members of classes
• Must decide these things at some point during the
  coding process.
   – Wish to minimize re-writes now and down the line
   – Danger in early over-complexity (c.f. Extreme
     Programming)

02 - Architecture Intro.
                    CSC407                   6
Architecture & Design
• Architecture
   – High-level
   – Major decisions
   – Not even thinking about programming
• Design
   – “Laying out” the programming language code
     used to implement the architecture
   – Organizing programming language concepts
But, … N.B. no standard terminology

02 - Architecture Intro.
                    CSC407           7
Documentation of an Architecture
• Golden Rule of Software Development:
   – If it’s not reviewable (written down), it doesn’t exist.

• Architectures sometime suffer from over-elaborate
  documentation
   – Unnecessary. Simply document your decisions.
   – Most systems don’t deserve elaborate architectural documentation

• Dealing with unknowns
   – Indicate they are unknown for the present
   – Cycle back later and add new decisions taken
   – But beware of costs of postponing decisions

• Must religiously keep architecture document up-to-date
   – Very hard to do in practice: takes effort
   – Therefore keep it simple as possible (but no simpler)
02 - Architecture Intro.
                    CSC407                                8
How do we describe an architecture?
                         Control
                         Process
                           (CP)



        Prop Loss         Reverb            Noise
          Model           Model             Model
         (MODP)          (MODR)            (MODN)


• What is the nature of the components?
• What is the nature of the links?
• Does the layout have any significance?
• How does it operate at runtime
   – Dataflow
   – Control flow
• Can we evaluate this architecture?

02 - Architecture Intro.
                    CSC407                    9
Two Main Architectural Structures
• Modular structure
   – Purely static
   – Disappears at run-time
• Structures that survive through execution
   – E.g., pipes, processes, networks, objects, …


• Both views need to be considered (not the
  same)


02 - Architecture Intro.
                    CSC407               10
The Essence of the Architecture Document
• Imagine after the system has been built attempting to
  describe as cogently and in as compact a form as
  possible how the system has been put together.
• Be utterly clear
• you only have an hour in which to do it.
• your target audience is knowledgeable professionals
  in the field, but unfamiliar with the domain.
• They will wish to evaluate your choices


02 - Architecture Intro.
                    CSC407              11
Documentation of a Design
• UML (Unified Modeling Language)
   – Expresses OO design using diagrammatic notation
   – Complete UML for a typical system is very large.
   – A selection must be made for presentation
       •   Choose the most illuminating parts
       •   Simplify w.r.t. the actual code
       •   Divide into small sections (< 1 page)
       •   Add written text to describe the whys and wherefores.
• Danger of UML and code getting out of synch over time
   – Automated tools to keep the two in-synch
       • E.g., Rational Rose
   – Problem with these tools:
       •   Not literate
       •   Don’t work as well as we would want, cumbersome to use
       •   Eliding detail is difficult, simplifying (lying) is difficult
       •   Selection of parts for presentation is primitive
• Strive to explain (in writing) your choices to another programmer
  02 - Architecture Intro.
                      CSC407                                        12
Documentation
• Architecture
   – Informal diagrams
   – Written explanations
   – Bullet points
• Design
   – Formal UML
   – Reflects and in-synch with program structure
   – Simplify and divide into small chunks for
     presentation
   – Add written explanations.
02 - Architecture Intro.
                    CSC407              13
The Waterfall Model
• Requirements → Architecture → Design →
    Code → Test
  – Variations: Spiral, prototyping, …
     • All will have architecture and design artefacts
• Dave Parnas: “A Rational Design Process: How
  and when to fake it”
  – Not important that the steps are followed in this order
  – Only important that after the fact, there are documents
    that make it appear as though the process was followed
    in that order.

  02 - Architecture Intro.
                      CSC407                      14
Documentation In Practice
• As much requirements as you can manage without getting
  bogged down.
• As much architecture as you can manage without getting
  bogged down
• Some design
• Some code
• More design
• More code
• Refine architecture
• Fix requirements
• …


02 - Architecture Intro.
                    CSC407                  15
Why is architecture important?
• Manifests early design decision
   – most difficult to get correct and hardest to change
   – defines constraints on the implementation
   – inhibits or enables quality attributes
• Defines a work-breakdown structure
   – organization (especially important for long-distance development)
   – estimation
• A vehicle for stakeholder communication
   – an architecture is the earliest artefact that enables the priorities among
     competing concerns to be analysed
• Reviewable
   – architectural errors are vastly more expensive to fix once a system has been
     coded
   – Can serve as a basis for training new developers
   – As an indication of progress
   02 - Architecture Intro.
                       CSC407                                  16
Why is design important?
• When dealing with ~100s of packages and ~1000s of
  classes, coders lose sight of the forest for the trees.
   – Leads to designs that are muddled and inconsistent
       • Buggy, requiring constant re-work
       • Long learning curve for new developers
       • Hard to fix bugs
           – Long time to debug, lots of code to fix, introduce new bugs
       • Hard to change
           – Lots of time to figure out how to change, lots of code to change,
             introduce lots of new bugs
• Higher-level design descriptions lead to better designs
   – Can grasp the design at its essence and in its entirety
   – Can review and correct early
• Can be used to leverage the skills and experience of better
  designers across many developers

02 - Architecture Intro.
                    CSC407                                  17
Where does architecture come from?
   Developing                             Customers
   organization
                        Marketing
                                                   End Users




Current technical                   previous experience
  environment
                       Architec
                          t




02 - Architecture Intro.
                    CSC407                        18
What does architecture affect?
 –   The structure of the developing organisation
 –   The enterprise goals of the developing organisation
 –   customer requirements for the next system
 –   influence later architectural decisions




02 - Architecture Intro.
                    CSC407                19
Architecture process steps

 •   create the business case
 •   understand the requirements
 •   create the architecture
 •   represent and communicate the architecture
 •   evaluate the architecture
 •   implement based on the architecture
     – ensuring conformance
 • enhance/maintain based on the architecture
     – ensuring conformance


02 - Architecture Intro.
                    CSC407                 20
Functionality & Quality Attributes
• Functionality usually takes 1st place during
  development.
• Systems are more frequently re-designed not
  because they are functionally deficient, but rather
  because
   –   They are difficult to maintain
   –   Difficult to port
   –   Won’t scale
   –   Too slow
   –   Too insecure
   –   Not fault tolerant

02 - Architecture Intro.
                    CSC407                21
System Qualities
• Observable via execution
   – Performance
   – Security
   – Availability
        • Reliability = mttf = mean time to failure
        • Availability = mttf/(mttf + time to repair)
   – Functionality
   – Usability
• Not observable via execution
   –   Modifiability
   –   Portability
   –   Reusability
   –   Integrability
   –   Testability


02 - Architecture Intro.
                    CSC407                              22
Business Qualities


     –   Time-to-market
     –   Cost
     –   Projected lifetime
     –   Target market
     –   Rollout schedule
     –   Use of legacy systems



02 - Architecture Intro.
                    CSC407           23
Architectural Qualities

•   Conceptual integrity
•   Correctness
•   Completeness
•   Buildability
    – Completed by available team in a timely
      manner




02 - Architecture Intro.
                    CSC407              24
Architectural Means of Achieving Quality
• Two questions
   – What structure shall I employ to
      •   Assign workers
      •   Derive a work breakdown
      •   Exploit pre-packaged components
      •   Plan for modification
   – What structure shall I employ so that the
     system, at runtime, fulfills its behavioral and
     quality attributes.



02 - Architecture Intro.
                    CSC407                  25

More Related Content

What's hot

05 architectural design
05 architectural design05 architectural design
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value Features
Roger Snook
 
Pitfalls of software product development
Pitfalls of software product developmentPitfalls of software product development
Pitfalls of software product development
Sofismo AG
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
siouxhotornot
 

What's hot (6)

05 architectural design
05 architectural design05 architectural design
05 architectural design
 
RCW@DEI - ADL
RCW@DEI - ADLRCW@DEI - ADL
RCW@DEI - ADL
 
Unit2
Unit2Unit2
Unit2
 
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value Features
 
Pitfalls of software product development
Pitfalls of software product developmentPitfalls of software product development
Pitfalls of software product development
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
 

Viewers also liked

Indian budget challenges..
Indian budget challenges..Indian budget challenges..
Indian budget challenges..Bharti Bansal
 
Wünsch AG Digitale Transformation : Mobile Geschäftsprozesse
Wünsch AG Digitale Transformation : Mobile GeschäftsprozesseWünsch AG Digitale Transformation : Mobile Geschäftsprozesse
Wünsch AG Digitale Transformation : Mobile Geschäftsprozesse
Wünsch AG
 
John Giuffre Hyundai
John Giuffre HyundaiJohn Giuffre Hyundai
John Giuffre Hyundai
GiuffreHyundai
 
продажник инфобизнес 4.0
продажник инфобизнес 4.0продажник инфобизнес 4.0
продажник инфобизнес 4.0infoconsalt
 
Gedicks on Mining in the Midwest
Gedicks on Mining in the MidwestGedicks on Mining in the Midwest
Gedicks on Mining in the Midwest
wcmcoop
 
Ura paisaian
Ura paisaianUra paisaian
Ura paisaiananderaris
 
презентація2007
презентація2007презентація2007
презентація2007irusyakorneech
 
Hidrokarbon
HidrokarbonHidrokarbon
Hidrokarbon
Leni Roni
 

Viewers also liked (13)

Indian budget challenges..
Indian budget challenges..Indian budget challenges..
Indian budget challenges..
 
Wünsch AG Digitale Transformation : Mobile Geschäftsprozesse
Wünsch AG Digitale Transformation : Mobile GeschäftsprozesseWünsch AG Digitale Transformation : Mobile Geschäftsprozesse
Wünsch AG Digitale Transformation : Mobile Geschäftsprozesse
 
Pentru unii napoleon
Pentru unii napoleonPentru unii napoleon
Pentru unii napoleon
 
John Giuffre Hyundai
John Giuffre HyundaiJohn Giuffre Hyundai
John Giuffre Hyundai
 
продажник инфобизнес 4.0
продажник инфобизнес 4.0продажник инфобизнес 4.0
продажник инфобизнес 4.0
 
Sym.php;doc
Sym.php;docSym.php;doc
Sym.php;doc
 
Uhis
UhisUhis
Uhis
 
Mama
MamaMama
Mama
 
Gedicks on Mining in the Midwest
Gedicks on Mining in the MidwestGedicks on Mining in the Midwest
Gedicks on Mining in the Midwest
 
Album photo
Album photoAlbum photo
Album photo
 
Ura paisaian
Ura paisaianUra paisaian
Ura paisaian
 
презентація2007
презентація2007презентація2007
презентація2007
 
Hidrokarbon
HidrokarbonHidrokarbon
Hidrokarbon
 

Similar to 02archintro

Architectural design
Architectural designArchitectural design
Architectural design
SHREEHARI WADAWADAGI
 
SKEL 4273 CAD with HDL Topic 1
SKEL 4273 CAD with HDL Topic 1SKEL 4273 CAD with HDL Topic 1
SKEL 4273 CAD with HDL Topic 1
alhadi81
 
SCM Patterns for Agile Architectures
SCM Patterns for Agile ArchitecturesSCM Patterns for Agile Architectures
SCM Patterns for Agile Architectures
Brad Appleton
 
1 introduction to sa
1 introduction to sa1 introduction to sa
1 introduction to sadavid10hm
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Software architecture slides chap1 .pptx
Software architecture slides chap1 .pptxSoftware architecture slides chap1 .pptx
Software architecture slides chap1 .pptx
alimunawar4316
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture DesignGESSI UPC
 
Design engineering
Design engineeringDesign engineering
Design engineering
Preeti Mishra
 
Unit 1b
Unit 1bUnit 1b
Unit 1b
Karthik Vivek
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
Comsysto Reply GmbH
 
Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)
Chris Chedgey
 
TMPA-2017: Stemming Architectural Decay in Software Systems
TMPA-2017:  Stemming Architectural Decay in Software SystemsTMPA-2017:  Stemming Architectural Decay in Software Systems
TMPA-2017: Stemming Architectural Decay in Software Systems
Iosif Itkin
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
wweinmeyer79
 
vlsi
vlsivlsi
vlsi
RAHULKC11
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
Fáber D. Giraldo
 
The art of architecture
The art of architectureThe art of architecture
The art of architecture
ADDQ
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
SumbalIlyas1
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
Eberhard Wolff
 

Similar to 02archintro (20)

Unit4
Unit4Unit4
Unit4
 
Architectural design
Architectural designArchitectural design
Architectural design
 
SKEL 4273 CAD with HDL Topic 1
SKEL 4273 CAD with HDL Topic 1SKEL 4273 CAD with HDL Topic 1
SKEL 4273 CAD with HDL Topic 1
 
SCM Patterns for Agile Architectures
SCM Patterns for Agile ArchitecturesSCM Patterns for Agile Architectures
SCM Patterns for Agile Architectures
 
1 introduction to sa
1 introduction to sa1 introduction to sa
1 introduction to sa
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Software architecture slides chap1 .pptx
Software architecture slides chap1 .pptxSoftware architecture slides chap1 .pptx
Software architecture slides chap1 .pptx
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Unit 1b
Unit 1bUnit 1b
Unit 1b
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)Bridging the divide between architecture and code (US version)
Bridging the divide between architecture and code (US version)
 
TMPA-2017: Stemming Architectural Decay in Software Systems
TMPA-2017:  Stemming Architectural Decay in Software SystemsTMPA-2017:  Stemming Architectural Decay in Software Systems
TMPA-2017: Stemming Architectural Decay in Software Systems
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 
vlsi
vlsivlsi
vlsi
 
Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)Lab Software Architecture (in spanish)
Lab Software Architecture (in spanish)
 
The art of architecture
The art of architectureThe art of architecture
The art of architecture
 
1605162990-week56.pptx
1605162990-week56.pptx1605162990-week56.pptx
1605162990-week56.pptx
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 

Recently uploaded

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 

Recently uploaded (20)

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 

02archintro

  • 1. Architecture Definition • A “software architecture” is the structure (or structures) of a system, which comprise – software components, – the externally visible properties of those components, App – and the relationships among them. Logic Generic GUI Win32 02 - Architecture Intro. CSC407 1
  • 2. Components & Structures • Architecture defines “components” – an abstraction – suppresses details not pertinent to its interactions with other components • An architecture comprises more than one structure • modular structure (calls/uses) • process structure (invokes, communicates with, synchronises with) • physical structure (libraries, DLL’s, processors) • inheritance structures (inherits) • … 02 - Architecture Intro. CSC407 2
  • 3. In Practice • Divide into two levels: – System-Level Architecture – Programming-Level Design [User Interface – Sometimes also referred to as “design” (or even “architecture”) – Different topic. Not covered in this course. ] 02 - Architecture Intro. CSC407 3
  • 4. Design & Architecture in the Development Process Requirements Architecture Design Design Design Design Code C&ut C&ut C&ut C&ut C&ut C&ut & Unit Test Integration Test System Test 02 - Architecture Intro. CSC407 4
  • 5. Software Architecture • Specifying at the highest level the construction of the system: – Technology choices • Platforms, language, database, middleware, … – System construction • Overall pattern: Monolithic, RDBMS, client/server, 3-tiered, n-tiered, distributed, … • Hardware interfaces (if any) – Division into programs • E.g. a program for data entry, another for data analysis, a Web-oriented interface, … – Division of programs into major subsystems • Reuse strategy (shared subsystems) • Calls constraints • Major strategies (e.g., for persistence, IPC, …) 02 - Architecture Intro. CSC407 5
  • 6. Software Design • We are now considering how to lay down code. • E.g., Object-Oriented – What classes? What inheritance amongst the classes? – What classes will call what other classes? – How are classes grouped into subsystems (e.g. Java packages)? – What data members of classes • Must decide these things at some point during the coding process. – Wish to minimize re-writes now and down the line – Danger in early over-complexity (c.f. Extreme Programming) 02 - Architecture Intro. CSC407 6
  • 7. Architecture & Design • Architecture – High-level – Major decisions – Not even thinking about programming • Design – “Laying out” the programming language code used to implement the architecture – Organizing programming language concepts But, … N.B. no standard terminology 02 - Architecture Intro. CSC407 7
  • 8. Documentation of an Architecture • Golden Rule of Software Development: – If it’s not reviewable (written down), it doesn’t exist. • Architectures sometime suffer from over-elaborate documentation – Unnecessary. Simply document your decisions. – Most systems don’t deserve elaborate architectural documentation • Dealing with unknowns – Indicate they are unknown for the present – Cycle back later and add new decisions taken – But beware of costs of postponing decisions • Must religiously keep architecture document up-to-date – Very hard to do in practice: takes effort – Therefore keep it simple as possible (but no simpler) 02 - Architecture Intro. CSC407 8
  • 9. How do we describe an architecture? Control Process (CP) Prop Loss Reverb Noise Model Model Model (MODP) (MODR) (MODN) • What is the nature of the components? • What is the nature of the links? • Does the layout have any significance? • How does it operate at runtime – Dataflow – Control flow • Can we evaluate this architecture? 02 - Architecture Intro. CSC407 9
  • 10. Two Main Architectural Structures • Modular structure – Purely static – Disappears at run-time • Structures that survive through execution – E.g., pipes, processes, networks, objects, … • Both views need to be considered (not the same) 02 - Architecture Intro. CSC407 10
  • 11. The Essence of the Architecture Document • Imagine after the system has been built attempting to describe as cogently and in as compact a form as possible how the system has been put together. • Be utterly clear • you only have an hour in which to do it. • your target audience is knowledgeable professionals in the field, but unfamiliar with the domain. • They will wish to evaluate your choices 02 - Architecture Intro. CSC407 11
  • 12. Documentation of a Design • UML (Unified Modeling Language) – Expresses OO design using diagrammatic notation – Complete UML for a typical system is very large. – A selection must be made for presentation • Choose the most illuminating parts • Simplify w.r.t. the actual code • Divide into small sections (< 1 page) • Add written text to describe the whys and wherefores. • Danger of UML and code getting out of synch over time – Automated tools to keep the two in-synch • E.g., Rational Rose – Problem with these tools: • Not literate • Don’t work as well as we would want, cumbersome to use • Eliding detail is difficult, simplifying (lying) is difficult • Selection of parts for presentation is primitive • Strive to explain (in writing) your choices to another programmer 02 - Architecture Intro. CSC407 12
  • 13. Documentation • Architecture – Informal diagrams – Written explanations – Bullet points • Design – Formal UML – Reflects and in-synch with program structure – Simplify and divide into small chunks for presentation – Add written explanations. 02 - Architecture Intro. CSC407 13
  • 14. The Waterfall Model • Requirements → Architecture → Design → Code → Test – Variations: Spiral, prototyping, … • All will have architecture and design artefacts • Dave Parnas: “A Rational Design Process: How and when to fake it” – Not important that the steps are followed in this order – Only important that after the fact, there are documents that make it appear as though the process was followed in that order. 02 - Architecture Intro. CSC407 14
  • 15. Documentation In Practice • As much requirements as you can manage without getting bogged down. • As much architecture as you can manage without getting bogged down • Some design • Some code • More design • More code • Refine architecture • Fix requirements • … 02 - Architecture Intro. CSC407 15
  • 16. Why is architecture important? • Manifests early design decision – most difficult to get correct and hardest to change – defines constraints on the implementation – inhibits or enables quality attributes • Defines a work-breakdown structure – organization (especially important for long-distance development) – estimation • A vehicle for stakeholder communication – an architecture is the earliest artefact that enables the priorities among competing concerns to be analysed • Reviewable – architectural errors are vastly more expensive to fix once a system has been coded – Can serve as a basis for training new developers – As an indication of progress 02 - Architecture Intro. CSC407 16
  • 17. Why is design important? • When dealing with ~100s of packages and ~1000s of classes, coders lose sight of the forest for the trees. – Leads to designs that are muddled and inconsistent • Buggy, requiring constant re-work • Long learning curve for new developers • Hard to fix bugs – Long time to debug, lots of code to fix, introduce new bugs • Hard to change – Lots of time to figure out how to change, lots of code to change, introduce lots of new bugs • Higher-level design descriptions lead to better designs – Can grasp the design at its essence and in its entirety – Can review and correct early • Can be used to leverage the skills and experience of better designers across many developers 02 - Architecture Intro. CSC407 17
  • 18. Where does architecture come from? Developing Customers organization Marketing End Users Current technical previous experience environment Architec t 02 - Architecture Intro. CSC407 18
  • 19. What does architecture affect? – The structure of the developing organisation – The enterprise goals of the developing organisation – customer requirements for the next system – influence later architectural decisions 02 - Architecture Intro. CSC407 19
  • 20. Architecture process steps • create the business case • understand the requirements • create the architecture • represent and communicate the architecture • evaluate the architecture • implement based on the architecture – ensuring conformance • enhance/maintain based on the architecture – ensuring conformance 02 - Architecture Intro. CSC407 20
  • 21. Functionality & Quality Attributes • Functionality usually takes 1st place during development. • Systems are more frequently re-designed not because they are functionally deficient, but rather because – They are difficult to maintain – Difficult to port – Won’t scale – Too slow – Too insecure – Not fault tolerant 02 - Architecture Intro. CSC407 21
  • 22. System Qualities • Observable via execution – Performance – Security – Availability • Reliability = mttf = mean time to failure • Availability = mttf/(mttf + time to repair) – Functionality – Usability • Not observable via execution – Modifiability – Portability – Reusability – Integrability – Testability 02 - Architecture Intro. CSC407 22
  • 23. Business Qualities – Time-to-market – Cost – Projected lifetime – Target market – Rollout schedule – Use of legacy systems 02 - Architecture Intro. CSC407 23
  • 24. Architectural Qualities • Conceptual integrity • Correctness • Completeness • Buildability – Completed by available team in a timely manner 02 - Architecture Intro. CSC407 24
  • 25. Architectural Means of Achieving Quality • Two questions – What structure shall I employ to • Assign workers • Derive a work breakdown • Exploit pre-packaged components • Plan for modification – What structure shall I employ so that the system, at runtime, fulfills its behavioral and quality attributes. 02 - Architecture Intro. CSC407 25