SlideShare a Scribd company logo
1 of 44
Architecture and Design
               Himanshu Airon
Agenda

ο‚› What is Architecture?
ο‚› Importance of Architecture in Software
ο‚› Software Architecture Principles
ο‚› Software Architecture tools
ο‚› Software Architecture patterns
ο‚› UML introduction
ο‚› RUP introduction
Definition




ο‚› The Software architecture of a program or computing
  system is the Structure or structures of the system,
  which comprise software elements, the externally visible
  properties of those elements and the relationships
  among them.
Why Architecture is important?



ο‚› Handling complexity
ο‚› Communication among stakeholders
ο‚› Early Design Decisions
ο‚› Software Architecture is a transferable, reusable model
Influences
Architecture Principles
ο‚›   Single Responsibility Principle
     ο‚› every class should have a single responsibility, and that responsibility should be entirely encapsulated
       by the class
ο‚›   Open – Closed Principle (OCP)
     ο‚› Software Entities (Classes, Modules, Functions, etc.) should be open for extension but closed for
       modifications.
ο‚›   Liscov Substitution Principle (LSP)
     ο‚› Functions that use pointers or references to base classes must be able to use(Substitute base class)
       objects by derived classes without knowing it.
ο‚›   Interface Segregation Principle (ISP)
     ο‚› no client should be forced to depend on methods it does not use
ο‚›   Dependency Inversion Principle
     ο‚› A. High level modules should not depend on low level module. Both should depend on abstraction.
       Both should depend on Abstraction.
     ο‚› B. Abstraction should not depend on details.
ο‚›   DRY (Don’t Repeat Yourself)
     ο‚› Every piece of knowledge must have a single, unambiguous, authoritative representation within a
       system.
ο‚›   YAGNI - You ain't gonna need it
     ο‚› Always implement things when you actually need them, never when you just foresee that you may
       need them.
ο‚›   KISS - Keep it simple, Stupid!
     ο‚› Most systems work best if they are kept simple rather than made complex, therefore simplicity
       should be a key goal in design and unnecessary complexity should be avoided.
Architecture Patterns

An Architecture style or Pattern is
ο‚› a description of the component and connector types
  involved in the style
ο‚› the collection of rules that constrain and relate them
Example: MVC(Model-View-Controller), Layered, Multitier,
SOA(Service Oriented Architecture), Event Driven,
ETL(Extract-Transform-Load),EAI(Enterprise Application
Integration), ESB(Enterprise Service Bus), MFT(Managed
File Transfer), Data Warehouse, Analytical Reporting
Model-View-Controller
ο‚› Main goal:
   facilitate and optimize the implementation of interactive systems,
   particularly those that use multiple synchronized presentations of
   shared information.
ο‚› Key idea:
   separation between the data and its presentation, which is carried by
   different objects.
ο‚› Controllers typically implement event-handling mechanisms that are
  executed when corresponding events occur.
ο‚› Changes made to the model by the user via controllers are directly
  propagated to corresponding views. The change propagation
  mechanism can be implemented using the observer (design)
  pattern.
Layered Pattern

  ο‚› Context
     You are working with a large, complex system and you want to
     manage complexity by decomposition.
  ο‚› Problem
     How do you structure an application to support such operational
     requirements as maintainability, scalability, extensibility,
     robustness, and security?
  ο‚› Solutions
     Compose the solution into a set of layers. Each layer should be
     cohesive and at Roughly the same level of abstraction. Each layer
     should be loosely coupled to the layers underneath.
Layered Pattern cont…


 ο‚› Layering consists of a hierarchy of layers, each providing
   service to the layer above it and serving as client to the layer
   below.
 ο‚› Interactions among layers are defined by suitable communication
   protocols.
 ο‚› Interactions among non-adjacent layers must be kept to the
   minimum possible.
 ο‚› Layering is different from composition
    ο‚› higher-layers do not encapsulate lower layers
    ο‚› lower layers do not encapsulate higher layers (even though
      there is an existence dependency)
Three Tier Architecture
 ο‚› Context
    You are building a business solution using layers to organize your
    application.
 ο‚› Problem
    How do you organize your application to reuse business logic,
    provide deployment flexibility and conserve valuable resource
    connections?
 ο‚› Solutions
    ο‚› Create three layers: presentation, business logic and data
      access.
    ο‚› Locate all database-related code, including database clients
      access and utility components, in the data access layer.
    ο‚› Eliminate dependencies between business layer components and
      data access components.
    ο‚› Either eliminate the dependencies between the business layer
      and the presentation layer or manage them using the Observer
      pattern.
Three Tier Architecture

                          Presentation Tier




                          Business Tier




                           Integration Tier
Design Pattern
 A design pattern systematically names, motivates, and explains a
 general design that addresses a recurring design problem in object-
 oriented systems. It describes the problem, the solution, when to
 apply the solution, and its consequences. It also gives
 implementation hints and examples. The solution is a general
 arrangement of objects and classes that solve the problem. The
 solution is customized and implemented to solve the problem in a
 particular context.
 Basic Design Patterns
 ο‚› Creational Design Patterns (Factory, Abstract Factory, Builder,
   Prototype, Singleton)
 ο‚› Structural Design Pattern (Adapter, bridge, Composite, Decorator,
   Façade, Flyweight, Proxy)
 ο‚› Behavioral Design Pattern (Chain of Responsibility, Command,
   Interpreter, Iterator, Mediator, Memento, Observer, State,
   Strategy, Template, Visitor)
Modeling
 ο‚› Modeling is a way of thinking about the problems using models
   organized around the real world ideas.
 ο‚› A modeling method comprises a language and also a
   procedure for using the language to construct models.
 ο‚› modeling is the only way to visualize your design and check it
   against requirements before your crew starts to code.
 ο‚› easier for developers, software architects and customers to
   communicate on a common platform.
 ο‚› we create a number of views of the system being described
  β€’ Each view is needed for a full understanding of the system
  β€’ Each view has information that is unique to that view.
  β€’ Each view has information that appears in other views
Motivations for UML

ο‚› We need a modeling language to:
    o Help convey clear representations of user
      requirements for clearer communication among
      project stakeholders (concerned parties:
      developers, customer, etc).
    o help develop efficient, effective and correct
      designs, particularly Object Oriented designs.
    o give us the β€œbig picture” view of the project.
UML 2 Diagrams
Structure diagrams define the static   Behavior diagrams capture
architecture of a model. They are      the varieties of interaction
used to model the 'things' that        and instantaneous state
make up a model - the classes,         within a model as it
objects, interfaces and physical       'executes' over time.
components.
UML Diagram purpose
Class Diagram

ο‚› Each class is represented by a rectangle divided into three sections:
    o The first section is class name.
    o The second section is attributes the class contain.
    o The third section is operations of the class
ο‚› The lines connecting classes show the communication relationships
  between the classes.




 β€’ Developers use Class diagrams to actually develop the classes.
 β€’ Analysts use Class diagrams to show the details of system.
 β€’ Architects looks at Class diagram to see the design of the system.
     o If one class contains too much functionality, an architect can see
       this in the Class diagram and split out it.
Class Diagram Notation
Class Diagram Sample
ο‚› A veterinary system. Animals served, such as dogs and birds,
  are tracked along with their owners. Since dogs and birds are
  "a kind of" animal, we use a Generalization relationship
Aggregation



   ο‚› Aggregation is a kind of association
   ο‚› β€œis part of” relation
       o a book is part of a library catalog
       o a library catalog has any number of books

    Objective
       o may make a diagram more readable
       o maps to the same code as any other association
Composition


 ο‚› Composition is a kind of aggregation with a well-defined
   meaning!
 ο‚› Example
       class Rectangle {
       private Point[ ] p = new Point[ 4 ];
       //the elements of p are never given out
       Rectangle( int x, int y, int height, int width ) {
       p[ 0 ] = new Point( x, y );
       …}


  β€’ Meaning: each part belongs to exactly one composite
      o When the composite is destroyed, the part is destroyed
      o Parts cannot be shared among composites
Dependency



ο‚› A depends on B
ο‚› Any kind of β€œuses” relation between classes that is not an
  association or a generalization
Examples:
ο‚› A instantiates B (but does not keep the reference)
ο‚› A has operations that have objects of type B as parameters
Generally:
ο‚› Class A cannot be used without class B
ο‚› Dependency can also be used with packages
Interfaces




ο‚› Class Rectangle implements interface Shape
ο‚› Top: full representation
ο‚› Bottom: elided representation
ο‚› no operations of the interface can be shown
ο‚› The relation between class and interface is a realization
ο‚› Interfaces are a kind of class in UML
Abstract Classes




ο‚› Abstract classes and operations
   ο‚› have names in italics
   ο‚› this is an other way to show generalizations
   ο‚› several arrows made into one
Package Diagram




                  ο‚› A grouping mechanism
                  ο‚› A package can contain any kind of
                    UML elements
                  Two uses:
                     ο‚› to hide part of a diagram
                     ο‚› to show the relationship between
                       large numbers of elements
Sequence Diagram Notation

            Object             Message




      Lifeline of Object   Object Activation




          Actor
Sequence Diagram


ο‚› Shows the flow of functionality through a user story.
ο‚› Users can look at these diagrams to see the specifics of their
  business processing.


ο‚› Analysts see the flow of processing in the Sequence
  diagrams.


ο‚› Developers see objects the need to be developed and
  operations for those objects.


ο‚› Quality assurance engineers can see the details of the
  process and develop test cases based
Sequence Diagram Sample
Component Diagram




        Component   Dependency
Component Diagram



ο‚› Show you a physical view of your model
ο‚› The software components in your system, and relationships
  between them.
ο‚› There are two types of components on the diagram:
   ο‚› Executable component
   ο‚› Code library
ο‚› Dependencies are drawn between the components (dahsed line).
ο‚› Component dependencies show the compile-time and run-time
  dependencies between the components.
Component Diagram Sample

                                       Register.exe
     Billing.exe
                   Billing
                   System




                                                      People.dll
                                                                         User
                     Course.dll
                                  Course




                                           Student                 Professor

    Course            Course
                      Offering
Deployment Diagram Notation




         Component        Association




          Node
Deployment Diagram
ο‚› Deployment diagram shows the physical layout of the network and
  where the various component will reside.
Rational Unified Process (RUP)
RUP 4+1 view

ο‚› Developed by Philippe Kruchten to describe the architectural
  views needed to represent a software system.
ο‚› Founded on the notion that different users need different views
  of the system
ο‚› Merges the technical aspects of a system with the requirements
  that drive the system
RUP 4+1 view in Practice
ο‚› Logical View
   ο‚› Models the translation of the system use cases into functional aspects
     of the system
   ο‚› Focus is on the how specific functionality is satisfied by architectural
     abstractions (i.e. use case realizations)
   ο‚› UML notation included most type of diagrams and elements(classes,
     collaborations, state machines,…)
   ο‚› This is where the meat of most modeling occurs
ο‚› Process View
   ο‚› The process view is intended to show the concurrent execution
     aspects of a system and the collaborations needed to support them.
   ο‚› Usually expressed as tasks, threads, or active objects.
   ο‚› In practice rarely used in general IT application development except in
     special circumstances
RUP 4+1 view in Practice


ο‚› Implementation View
   ο‚› Concerned with the representation of the system as modules, libraries,
     sub-systems and other software components
   ο‚› Shows the mapping of the design elements into their β€œdeliverable” form
     (ex. classes in a particular library)
   ο‚› Usually uses UML component representation


ο‚› Deployment View
   ο‚› Describes the deployment of the software elements of the system to the
     hardware elements and the relationships between those hardware
     elements.
   ο‚› Very useful in distributed systems development.
   ο‚› Uses the UML deployment notation.
RUP 4+1 view in Practice



ο‚› Use Case View
   ο‚› The overarching view that drives the rest of the system in use case
     driven development
   ο‚› Models show the use cases and actors that define the requirements of
     the system
   ο‚› Usually uses use case diagrams and activity diagrams along with
     supporting documentation that describes the use cases
Architectural Goals & Constraints


 The architecture will be formed by considering:
    ο‚› functional requirements, captured in the Use-Case Model, and
    ο‚› non-functional requirements, quality attributes.
 However these are constraints imposed by the environment in which
 the software must operate that will shape the architecture :
    ο‚› need to reuse existing assets
    ο‚› imposition of various standards
    ο‚› need for compatibility with existing systems
Requirements

Functional Requirements defines the capabilities and functions that
a System must be able to perform successfully. These are defined in
Use Cases or User Stories.
Non-functional Requirements are often called the Quality
Attributes or simply Qualities or Cross cutting concerns of a system.
These can be divided into two main categories:
ο‚› Execution Qualities e.g. security, reliability and usability which
  are observable at the run time.(Dynamic)
ο‚› Evolution Qualities e.g. Testability, maintainability, extensibility,
  scalability, which are in the static structure of the system.
The plan for implementing functional requirements is detailed in the
system design. The plan for implementing non-functional
requirements is detailed in the system architecture.

More Related Content

What's hot

Theory of architecture unit 02
Theory of architecture unit 02Theory of architecture unit 02
Theory of architecture unit 02Geeva Chandana
Β 
Scale & Proportion
Scale & ProportionScale & Proportion
Scale & ProportionKia Mosenthal
Β 
Anatomy of architectural design concept
Anatomy of architectural design conceptAnatomy of architectural design concept
Anatomy of architectural design conceptNahedh Al-Qemaqchi
Β 
Design principal
Design principalDesign principal
Design principalAtikul Islam
Β 
Principles of design theory of design module 2 proportion,scale, hierarchy etc
Principles of design theory of design module 2   proportion,scale, hierarchy etcPrinciples of design theory of design module 2   proportion,scale, hierarchy etc
Principles of design theory of design module 2 proportion,scale, hierarchy etcStanly Sunny
Β 
Rem Koolhaas –designing the design process
Rem Koolhaas –designing the design processRem Koolhaas –designing the design process
Rem Koolhaas –designing the design processSjors Timmer
Β 
Presentation1 plane-FORM SPACE AND ORDER
Presentation1 plane-FORM SPACE AND ORDERPresentation1 plane-FORM SPACE AND ORDER
Presentation1 plane-FORM SPACE AND ORDERSamridhi Gupta
Β 
Module 1 elements of design
Module 1 elements of designModule 1 elements of design
Module 1 elements of designswetha karlmarx
Β 
Generating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasGenerating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasWan Muhammad / Asas-Khuβ„’
Β 
Week 6 organization of form and space
Week 6 organization of form and spaceWeek 6 organization of form and space
Week 6 organization of form and spaceAbdullahi Lawal
Β 
Fractals in architecture
Fractals in architectureFractals in architecture
Fractals in architectureGeeva Chandana
Β 
Principles of Architecture and qualities of architecture by Pravin Minde
Principles  of  Architecture and qualities of architecture by Pravin MindePrinciples  of  Architecture and qualities of architecture by Pravin Minde
Principles of Architecture and qualities of architecture by Pravin MindePravin Minde
Β 
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...Galala University
Β 
Unit 5 Experiencing architecture by A.Sivaraman M.Arch
Unit 5 Experiencing architecture by A.Sivaraman M.ArchUnit 5 Experiencing architecture by A.Sivaraman M.Arch
Unit 5 Experiencing architecture by A.Sivaraman M.ArchSiva Raman
Β 
Primary elements of form
Primary elements of formPrimary elements of form
Primary elements of formAJstar26
Β 
Space planing
Space planing Space planing
Space planing Pei Jin
Β 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...Galala University
Β 
Criticizing architecture
Criticizing architectureCriticizing architecture
Criticizing architectureNidhi Thigale
Β 

What's hot (20)

Theory of architecture unit 02
Theory of architecture unit 02Theory of architecture unit 02
Theory of architecture unit 02
Β 
Line,Plane and Openings
Line,Plane and OpeningsLine,Plane and Openings
Line,Plane and Openings
Β 
Scale & Proportion
Scale & ProportionScale & Proportion
Scale & Proportion
Β 
Anatomy of architectural design concept
Anatomy of architectural design conceptAnatomy of architectural design concept
Anatomy of architectural design concept
Β 
Design principal
Design principalDesign principal
Design principal
Β 
Principles of design theory of design module 2 proportion,scale, hierarchy etc
Principles of design theory of design module 2   proportion,scale, hierarchy etcPrinciples of design theory of design module 2   proportion,scale, hierarchy etc
Principles of design theory of design module 2 proportion,scale, hierarchy etc
Β 
Rem Koolhaas –designing the design process
Rem Koolhaas –designing the design processRem Koolhaas –designing the design process
Rem Koolhaas –designing the design process
Β 
Presentation1 plane-FORM SPACE AND ORDER
Presentation1 plane-FORM SPACE AND ORDERPresentation1 plane-FORM SPACE AND ORDER
Presentation1 plane-FORM SPACE AND ORDER
Β 
Module 1 elements of design
Module 1 elements of designModule 1 elements of design
Module 1 elements of design
Β 
Theory of design
Theory of designTheory of design
Theory of design
Β 
Generating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design IdeasGenerating Architectural Concepts & Design Ideas
Generating Architectural Concepts & Design Ideas
Β 
Week 6 organization of form and space
Week 6 organization of form and spaceWeek 6 organization of form and space
Week 6 organization of form and space
Β 
Fractals in architecture
Fractals in architectureFractals in architecture
Fractals in architecture
Β 
Principles of Architecture and qualities of architecture by Pravin Minde
Principles  of  Architecture and qualities of architecture by Pravin MindePrinciples  of  Architecture and qualities of architecture by Pravin Minde
Principles of Architecture and qualities of architecture by Pravin Minde
Β 
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...
Architectural Professional Practice - Programming Ψ§Ω„Ω…Ω…Ψ§Ψ±Ψ³Ψ© Ψ§Ω„Ω…Ω‡Ω†ΩŠΨ© Ψ§Ω„Ω…ΨΉΩ…Ψ§Ψ±ΩŠΨ© ...
Β 
Unit 5 Experiencing architecture by A.Sivaraman M.Arch
Unit 5 Experiencing architecture by A.Sivaraman M.ArchUnit 5 Experiencing architecture by A.Sivaraman M.Arch
Unit 5 Experiencing architecture by A.Sivaraman M.Arch
Β 
Primary elements of form
Primary elements of formPrimary elements of form
Primary elements of form
Β 
Space planing
Space planing Space planing
Space planing
Β 
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lectures by Dr. Yasse...
Β 
Criticizing architecture
Criticizing architectureCriticizing architecture
Criticizing architecture
Β 

Viewers also liked

iue demetris layered design
iue demetris layered designiue demetris layered design
iue demetris layered designCarissa Demetris
Β 
Erlang factory layered architecture - final
Erlang factory   layered architecture - finalErlang factory   layered architecture - final
Erlang factory layered architecture - finalDennis Docter
Β 
Intro to Architecture Week 5 [compatibility mode]
Intro to Architecture Week 5 [compatibility mode]Intro to Architecture Week 5 [compatibility mode]
Intro to Architecture Week 5 [compatibility mode]Hamdija Velagic
Β 
Layered Architecture 03 Format
Layered Architecture 03 FormatLayered Architecture 03 Format
Layered Architecture 03 Formatanishgoel
Β 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOASperasoft
Β 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
Β 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layerSerious_SamSoul
Β 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture styleBegench Suhanov
Β 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architectureLilia Sfaxi
Β 
Agile, TOGAF and Enterprise Architecture: Will They Blend?
Agile, TOGAF and Enterprise Architecture:  Will They Blend?Agile, TOGAF and Enterprise Architecture:  Will They Blend?
Agile, TOGAF and Enterprise Architecture: Will They Blend?Danny Greefhorst
Β 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
Β 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagrammingmeghantaylor
Β 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Svetlin Nakov
Β 
10 Brain.ppt
10 Brain.ppt10 Brain.ppt
10 Brain.pptShama
Β 
Unit 1 architecture of distributed systems
Unit 1 architecture of distributed systemsUnit 1 architecture of distributed systems
Unit 1 architecture of distributed systemskaran2190
Β 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture StylesJorgen Thelin
Β 

Viewers also liked (20)

SECh1214
SECh1214SECh1214
SECh1214
Β 
iue demetris layered design
iue demetris layered designiue demetris layered design
iue demetris layered design
Β 
Erlang factory layered architecture - final
Erlang factory   layered architecture - finalErlang factory   layered architecture - final
Erlang factory layered architecture - final
Β 
Nxp jul1311
Nxp jul1311Nxp jul1311
Nxp jul1311
Β 
Intro to Architecture Week 5 [compatibility mode]
Intro to Architecture Week 5 [compatibility mode]Intro to Architecture Week 5 [compatibility mode]
Intro to Architecture Week 5 [compatibility mode]
Β 
Layered Architecture 03 Format
Layered Architecture 03 FormatLayered Architecture 03 Format
Layered Architecture 03 Format
Β 
N-Tier, Layered Design, SOA
N-Tier, Layered Design, SOAN-Tier, Layered Design, SOA
N-Tier, Layered Design, SOA
Β 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
Β 
Lecture 6 -_presentation_layer
Lecture 6 -_presentation_layerLecture 6 -_presentation_layer
Lecture 6 -_presentation_layer
Β 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
Β 
Software Engineering - chp5- software architecture
Software Engineering - chp5- software architectureSoftware Engineering - chp5- software architecture
Software Engineering - chp5- software architecture
Β 
Layered Architecture
Layered ArchitectureLayered Architecture
Layered Architecture
Β 
Agile, TOGAF and Enterprise Architecture: Will They Blend?
Agile, TOGAF and Enterprise Architecture:  Will They Blend?Agile, TOGAF and Enterprise Architecture:  Will They Blend?
Agile, TOGAF and Enterprise Architecture: Will They Blend?
Β 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
Β 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
Β 
Principle of architecture
Principle of architecturePrinciple of architecture
Principle of architecture
Β 
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Architectural Patterns and Software Architectures: Client-Server, Multi-Tier,...
Β 
10 Brain.ppt
10 Brain.ppt10 Brain.ppt
10 Brain.ppt
Β 
Unit 1 architecture of distributed systems
Unit 1 architecture of distributed systemsUnit 1 architecture of distributed systems
Unit 1 architecture of distributed systems
Β 
Three Software Architecture Styles
Three Software Architecture StylesThree Software Architecture Styles
Three Software Architecture Styles
Β 

Similar to Architecture and design

Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UMLyndaravind
Β 
Ooad
OoadOoad
Ooadgantib
Β 
ap assignmnet presentation.pptx
ap assignmnet presentation.pptxap assignmnet presentation.pptx
ap assignmnet presentation.pptxAwanAdhikari
Β 
UML-Advanced Software Engineering
UML-Advanced Software EngineeringUML-Advanced Software Engineering
UML-Advanced Software EngineeringAmit Singh
Β 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2Sisir Ghosh
Β 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdfSHIVAM691605
Β 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStepWaseem Khan
Β 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An OverviewRaj Thilak S
Β 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
Β 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.pptFaizaZulkifal
Β 
Uml diagram assignment help
Uml diagram assignment helpUml diagram assignment help
Uml diagram assignment helpsmithjonny9876
Β 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISEsreeja_rajesh
Β 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagramsNeeraj Kaushik
Β 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagramsNeeraj Kaushik
Β 

Similar to Architecture and design (20)

Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
Β 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
Β 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
Β 
Ooad
OoadOoad
Ooad
Β 
ap assignmnet presentation.pptx
ap assignmnet presentation.pptxap assignmnet presentation.pptx
ap assignmnet presentation.pptx
Β 
UML-Advanced Software Engineering
UML-Advanced Software EngineeringUML-Advanced Software Engineering
UML-Advanced Software Engineering
Β 
ASP.NET System design 2
ASP.NET System design 2ASP.NET System design 2
ASP.NET System design 2
Β 
SMD Unit ii
SMD Unit iiSMD Unit ii
SMD Unit ii
Β 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdf
Β 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStep
Β 
OOP_Module 2.pptx
OOP_Module 2.pptxOOP_Module 2.pptx
OOP_Module 2.pptx
Β 
Uml
UmlUml
Uml
Β 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
Β 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
Β 
uml2-1214558329929112-8.ppt
uml2-1214558329929112-8.pptuml2-1214558329929112-8.ppt
uml2-1214558329929112-8.ppt
Β 
Software_Archi-1.ppt
Software_Archi-1.pptSoftware_Archi-1.ppt
Software_Archi-1.ppt
Β 
Uml diagram assignment help
Uml diagram assignment helpUml diagram assignment help
Uml diagram assignment help
Β 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Β 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
Β 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
Β 

Recently uploaded

infant assessment fdbbdbdddinal ppt.pptx
infant assessment fdbbdbdddinal ppt.pptxinfant assessment fdbbdbdddinal ppt.pptx
infant assessment fdbbdbdddinal ppt.pptxsuhanimunjal27
Β 
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...amitlee9823
Β 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
Β 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
Β 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...ranjana rawat
Β 
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Servicearoranaina404
Β 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
Β 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxjanettecruzeiro1
Β 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja Nehwal
Β 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
Β 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja Nehwal
Β 
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...sonalitrivedi431
Β 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...Call Girls in Nagpur High Profile
Β 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
Β 
call girls in Dakshinpuri (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ
call girls in Dakshinpuri  (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈcall girls in Dakshinpuri  (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ
call girls in Dakshinpuri (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ9953056974 Low Rate Call Girls In Saket, Delhi NCR
Β 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneLukeKholes
Β 
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248  Good Looking standard Profil...Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248 Good Looking standard Profil...kumaririma588
Β 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
Β 
Tapestry Clothing Brands: Collapsing the Funnel
Tapestry Clothing Brands: Collapsing the FunnelTapestry Clothing Brands: Collapsing the Funnel
Tapestry Clothing Brands: Collapsing the Funneljen_giacalone
Β 

Recently uploaded (20)

infant assessment fdbbdbdddinal ppt.pptx
infant assessment fdbbdbdddinal ppt.pptxinfant assessment fdbbdbdddinal ppt.pptx
infant assessment fdbbdbdddinal ppt.pptx
Β 
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...
Brookefield Call Girls: πŸ“ 7737669865 πŸ“ High Profile Model Escorts | Bangalore...
Β 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
Β 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
Β 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
Β 
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow πŸ’“ Lucknow < Renuka Sharma > 7877925207 Escorts Service
Β 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Β 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
Β 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Β 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
Β 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Β 
young call girls in Pandav nagar πŸ” 9953056974 πŸ” Delhi escort Service
young call girls in Pandav nagar πŸ” 9953056974 πŸ” Delhi escort Serviceyoung call girls in Pandav nagar πŸ” 9953056974 πŸ” Delhi escort Service
young call girls in Pandav nagar πŸ” 9953056974 πŸ” Delhi escort Service
Β 
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
πŸ’«βœ…jodhpur 24Γ—7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
Β 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
Β 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Β 
call girls in Dakshinpuri (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ
call girls in Dakshinpuri  (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈcall girls in Dakshinpuri  (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ
call girls in Dakshinpuri (DELHI) πŸ” >ΰΌ’9953056974 πŸ” genuine Escort Service πŸ”βœ”οΈβœ”οΈ
Β 
Case Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, PuneCase Study of Hotel Taj Vivanta, Pune
Case Study of Hotel Taj Vivanta, Pune
Β 
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248  Good Looking standard Profil...Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls AdugodiπŸ’˜ 9352852248 Good Looking standard Profil...
Β 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Β 
Tapestry Clothing Brands: Collapsing the Funnel
Tapestry Clothing Brands: Collapsing the FunnelTapestry Clothing Brands: Collapsing the Funnel
Tapestry Clothing Brands: Collapsing the Funnel
Β 

Architecture and design

  • 1. Architecture and Design Himanshu Airon
  • 2. Agenda ο‚› What is Architecture? ο‚› Importance of Architecture in Software ο‚› Software Architecture Principles ο‚› Software Architecture tools ο‚› Software Architecture patterns ο‚› UML introduction ο‚› RUP introduction
  • 3. Definition ο‚› The Software architecture of a program or computing system is the Structure or structures of the system, which comprise software elements, the externally visible properties of those elements and the relationships among them.
  • 4. Why Architecture is important? ο‚› Handling complexity ο‚› Communication among stakeholders ο‚› Early Design Decisions ο‚› Software Architecture is a transferable, reusable model
  • 6. Architecture Principles ο‚› Single Responsibility Principle ο‚› every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class ο‚› Open – Closed Principle (OCP) ο‚› Software Entities (Classes, Modules, Functions, etc.) should be open for extension but closed for modifications. ο‚› Liscov Substitution Principle (LSP) ο‚› Functions that use pointers or references to base classes must be able to use(Substitute base class) objects by derived classes without knowing it. ο‚› Interface Segregation Principle (ISP) ο‚› no client should be forced to depend on methods it does not use ο‚› Dependency Inversion Principle ο‚› A. High level modules should not depend on low level module. Both should depend on abstraction. Both should depend on Abstraction. ο‚› B. Abstraction should not depend on details. ο‚› DRY (Don’t Repeat Yourself) ο‚› Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. ο‚› YAGNI - You ain't gonna need it ο‚› Always implement things when you actually need them, never when you just foresee that you may need them. ο‚› KISS - Keep it simple, Stupid! ο‚› Most systems work best if they are kept simple rather than made complex, therefore simplicity should be a key goal in design and unnecessary complexity should be avoided.
  • 7. Architecture Patterns An Architecture style or Pattern is ο‚› a description of the component and connector types involved in the style ο‚› the collection of rules that constrain and relate them Example: MVC(Model-View-Controller), Layered, Multitier, SOA(Service Oriented Architecture), Event Driven, ETL(Extract-Transform-Load),EAI(Enterprise Application Integration), ESB(Enterprise Service Bus), MFT(Managed File Transfer), Data Warehouse, Analytical Reporting
  • 8. Model-View-Controller ο‚› Main goal: facilitate and optimize the implementation of interactive systems, particularly those that use multiple synchronized presentations of shared information. ο‚› Key idea: separation between the data and its presentation, which is carried by different objects. ο‚› Controllers typically implement event-handling mechanisms that are executed when corresponding events occur. ο‚› Changes made to the model by the user via controllers are directly propagated to corresponding views. The change propagation mechanism can be implemented using the observer (design) pattern.
  • 9. Layered Pattern ο‚› Context You are working with a large, complex system and you want to manage complexity by decomposition. ο‚› Problem How do you structure an application to support such operational requirements as maintainability, scalability, extensibility, robustness, and security? ο‚› Solutions Compose the solution into a set of layers. Each layer should be cohesive and at Roughly the same level of abstraction. Each layer should be loosely coupled to the layers underneath.
  • 10. Layered Pattern cont… ο‚› Layering consists of a hierarchy of layers, each providing service to the layer above it and serving as client to the layer below. ο‚› Interactions among layers are defined by suitable communication protocols. ο‚› Interactions among non-adjacent layers must be kept to the minimum possible. ο‚› Layering is different from composition ο‚› higher-layers do not encapsulate lower layers ο‚› lower layers do not encapsulate higher layers (even though there is an existence dependency)
  • 11. Three Tier Architecture ο‚› Context You are building a business solution using layers to organize your application. ο‚› Problem How do you organize your application to reuse business logic, provide deployment flexibility and conserve valuable resource connections? ο‚› Solutions ο‚› Create three layers: presentation, business logic and data access. ο‚› Locate all database-related code, including database clients access and utility components, in the data access layer. ο‚› Eliminate dependencies between business layer components and data access components. ο‚› Either eliminate the dependencies between the business layer and the presentation layer or manage them using the Observer pattern.
  • 12. Three Tier Architecture Presentation Tier Business Tier Integration Tier
  • 13. Design Pattern A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object- oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context. Basic Design Patterns ο‚› Creational Design Patterns (Factory, Abstract Factory, Builder, Prototype, Singleton) ο‚› Structural Design Pattern (Adapter, bridge, Composite, Decorator, FaΓ§ade, Flyweight, Proxy) ο‚› Behavioral Design Pattern (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor)
  • 14.
  • 15. Modeling ο‚› Modeling is a way of thinking about the problems using models organized around the real world ideas. ο‚› A modeling method comprises a language and also a procedure for using the language to construct models. ο‚› modeling is the only way to visualize your design and check it against requirements before your crew starts to code. ο‚› easier for developers, software architects and customers to communicate on a common platform. ο‚› we create a number of views of the system being described β€’ Each view is needed for a full understanding of the system β€’ Each view has information that is unique to that view. β€’ Each view has information that appears in other views
  • 16. Motivations for UML ο‚› We need a modeling language to: o Help convey clear representations of user requirements for clearer communication among project stakeholders (concerned parties: developers, customer, etc). o help develop efficient, effective and correct designs, particularly Object Oriented designs. o give us the β€œbig picture” view of the project.
  • 17.
  • 18. UML 2 Diagrams Structure diagrams define the static Behavior diagrams capture architecture of a model. They are the varieties of interaction used to model the 'things' that and instantaneous state make up a model - the classes, within a model as it objects, interfaces and physical 'executes' over time. components.
  • 20. Class Diagram ο‚› Each class is represented by a rectangle divided into three sections: o The first section is class name. o The second section is attributes the class contain. o The third section is operations of the class ο‚› The lines connecting classes show the communication relationships between the classes. β€’ Developers use Class diagrams to actually develop the classes. β€’ Analysts use Class diagrams to show the details of system. β€’ Architects looks at Class diagram to see the design of the system. o If one class contains too much functionality, an architect can see this in the Class diagram and split out it.
  • 22.
  • 23. Class Diagram Sample ο‚› A veterinary system. Animals served, such as dogs and birds, are tracked along with their owners. Since dogs and birds are "a kind of" animal, we use a Generalization relationship
  • 24. Aggregation ο‚› Aggregation is a kind of association ο‚› β€œis part of” relation o a book is part of a library catalog o a library catalog has any number of books Objective o may make a diagram more readable o maps to the same code as any other association
  • 25. Composition ο‚› Composition is a kind of aggregation with a well-defined meaning! ο‚› Example class Rectangle { private Point[ ] p = new Point[ 4 ]; //the elements of p are never given out Rectangle( int x, int y, int height, int width ) { p[ 0 ] = new Point( x, y ); …} β€’ Meaning: each part belongs to exactly one composite o When the composite is destroyed, the part is destroyed o Parts cannot be shared among composites
  • 26. Dependency ο‚› A depends on B ο‚› Any kind of β€œuses” relation between classes that is not an association or a generalization Examples: ο‚› A instantiates B (but does not keep the reference) ο‚› A has operations that have objects of type B as parameters Generally: ο‚› Class A cannot be used without class B ο‚› Dependency can also be used with packages
  • 27. Interfaces ο‚› Class Rectangle implements interface Shape ο‚› Top: full representation ο‚› Bottom: elided representation ο‚› no operations of the interface can be shown ο‚› The relation between class and interface is a realization ο‚› Interfaces are a kind of class in UML
  • 28. Abstract Classes ο‚› Abstract classes and operations ο‚› have names in italics ο‚› this is an other way to show generalizations ο‚› several arrows made into one
  • 29. Package Diagram ο‚› A grouping mechanism ο‚› A package can contain any kind of UML elements Two uses: ο‚› to hide part of a diagram ο‚› to show the relationship between large numbers of elements
  • 30. Sequence Diagram Notation Object Message Lifeline of Object Object Activation Actor
  • 31. Sequence Diagram ο‚› Shows the flow of functionality through a user story. ο‚› Users can look at these diagrams to see the specifics of their business processing. ο‚› Analysts see the flow of processing in the Sequence diagrams. ο‚› Developers see objects the need to be developed and operations for those objects. ο‚› Quality assurance engineers can see the details of the process and develop test cases based
  • 33. Component Diagram Component Dependency
  • 34. Component Diagram ο‚› Show you a physical view of your model ο‚› The software components in your system, and relationships between them. ο‚› There are two types of components on the diagram: ο‚› Executable component ο‚› Code library ο‚› Dependencies are drawn between the components (dahsed line). ο‚› Component dependencies show the compile-time and run-time dependencies between the components.
  • 35. Component Diagram Sample Register.exe Billing.exe Billing System People.dll User Course.dll Course Student Professor Course Course Offering
  • 36. Deployment Diagram Notation Component Association Node
  • 37. Deployment Diagram ο‚› Deployment diagram shows the physical layout of the network and where the various component will reside.
  • 39. RUP 4+1 view ο‚› Developed by Philippe Kruchten to describe the architectural views needed to represent a software system. ο‚› Founded on the notion that different users need different views of the system ο‚› Merges the technical aspects of a system with the requirements that drive the system
  • 40. RUP 4+1 view in Practice ο‚› Logical View ο‚› Models the translation of the system use cases into functional aspects of the system ο‚› Focus is on the how specific functionality is satisfied by architectural abstractions (i.e. use case realizations) ο‚› UML notation included most type of diagrams and elements(classes, collaborations, state machines,…) ο‚› This is where the meat of most modeling occurs ο‚› Process View ο‚› The process view is intended to show the concurrent execution aspects of a system and the collaborations needed to support them. ο‚› Usually expressed as tasks, threads, or active objects. ο‚› In practice rarely used in general IT application development except in special circumstances
  • 41. RUP 4+1 view in Practice ο‚› Implementation View ο‚› Concerned with the representation of the system as modules, libraries, sub-systems and other software components ο‚› Shows the mapping of the design elements into their β€œdeliverable” form (ex. classes in a particular library) ο‚› Usually uses UML component representation ο‚› Deployment View ο‚› Describes the deployment of the software elements of the system to the hardware elements and the relationships between those hardware elements. ο‚› Very useful in distributed systems development. ο‚› Uses the UML deployment notation.
  • 42. RUP 4+1 view in Practice ο‚› Use Case View ο‚› The overarching view that drives the rest of the system in use case driven development ο‚› Models show the use cases and actors that define the requirements of the system ο‚› Usually uses use case diagrams and activity diagrams along with supporting documentation that describes the use cases
  • 43. Architectural Goals & Constraints The architecture will be formed by considering: ο‚› functional requirements, captured in the Use-Case Model, and ο‚› non-functional requirements, quality attributes. However these are constraints imposed by the environment in which the software must operate that will shape the architecture : ο‚› need to reuse existing assets ο‚› imposition of various standards ο‚› need for compatibility with existing systems
  • 44. Requirements Functional Requirements defines the capabilities and functions that a System must be able to perform successfully. These are defined in Use Cases or User Stories. Non-functional Requirements are often called the Quality Attributes or simply Qualities or Cross cutting concerns of a system. These can be divided into two main categories: ο‚› Execution Qualities e.g. security, reliability and usability which are observable at the run time.(Dynamic) ο‚› Evolution Qualities e.g. Testability, maintainability, extensibility, scalability, which are in the static structure of the system. The plan for implementing functional requirements is detailed in the system design. The plan for implementing non-functional requirements is detailed in the system architecture.

Editor's Notes

  1. AnOrderDetailcan be queried about itsItem, but not the other way around. The arrow also lets you know who &quot;owns&quot; the association&apos;s implementation; in this case,OrderDetailhas anItem.Multiplicities are single numbers or ranges of numbers. In our example, there can be only oneCustomerfor eachOrder, but aCustomercan have any number ofOrders.