SlideShare une entreprise Scribd logo
1  sur  33
Software Architecture


Quality Attributes & Tactics (3)
Modifiability




 Vakgroep Informatietechnologie – IBCN
Modifiability
      Modifiability is about the cost of changes.




        Operating Profit (EBIT) = Revenues - Expenses

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 2
Modifiability Definition




 The modifiability of a software system is the
ease with which it can be modified to changes
in the environment, requirements or functional
                specification.




 Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 3
Modifiability Aspects

   What can change ?
         Functions, Platform, Environment.
         Qualities (performance, reliability,…)
         Capacity (number of users,..)
   When is the change required ?
         Development time, build time, configuration, runtime
   Who will implement the change ?
         Software engineers ,users , administrators ?
   What is the cost of change?
         Cost of introducing the mechanism in the architecture
         Cost of making the modification using that mechanism

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN        p. 4
Business Concerns (1/2)
 Extensibility
       Adding and enhancing functionality
       Effort for the next release

 Simplification
       Complex components are difficult to change
       Simplifying functionality for maintainability

 Restructuring
       Modularizing
       Creating reusable components

       Smaller components are easier to modify



Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 5
Business Concerns (2/2)
 Time         to deploy
       Time for introducing a new feature
       Competitiveness

 Functional                scalability
         Ability to scale up or down in terms of users,
          transactions …
 Functional                flexibility
         Make existing functionality available to new users,
          new locations & unforeseen situations.



Vakgroep Informatietechnologie – Onderzoeksgroep IBCN      p. 6
Modifiability Generic Scenario (1/3)

    Source
        The developer, system administrator or end user, can
        request or introduce a change to the system.
    Stimulus
       A directive to
        Add/delete/modify   functionality;
        Modify quality attributes
        Modify platform, technology
        Operate in a new environment, new users
        Scale up and scale out

    Artifact
       Code, data, interfaces, components, resources,
       configurations, …

    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN       p. 7
Modifiability Generic Scenario (2/3)

   Environment









Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 8
Modifiability Generic Scenario (3/3)

   Response
    Make, test and deploy the modification

   Response measures
          Number of affected artifacts.
          Size of the change.
          Effort & time
          Cost (direct or opportunity cost)
          Number of other functions or quality attributes affected
           by the change
          New defects introduces




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                 p. 9
Modifiabililty Generic QAS

                                  Artifact
                            Code, Data, Interfaces
                            Components,
                            Resources, Configs ..




Source      Stimulus        Environment              Response    Measure
Developer   Modify:         - Design                 - Change,   # of artifacts
Sys         - Functions     - Build                  - Test      Effort
admin                       - Deploy                 - Deploy    Time
            - Qualities
User                        - Runtime
            - Platform                                           Cost
            - Technology                                         Impact
            - Scale/Scope                                        New defects


                                                                          p. 10
Example Modifiability Scenario


       A developer wants to change the UI code
        (e.g. change an input field to a pick list)
    at design time; the modification is made without
                 side effects in 3 hours.




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 11
Example 2: Saas Applications
A SaaS application is scalable, multi-tenant, and
configurable.
Scalable   application is able to handle and to support the
required quality of service as the system load increases.
In a multi-tenancy environment, multiple customers share the
same application, running on the same operating system, on the
same hardware, with the same data storage mechanism. The
distinction between the customers is achieved during application
design, so that customers do not share or see each other's data.
Configurable applications allow a certain level of customization
via metadata services, which are responsible for managing
application configuration for individual tenants.


   Vakgroep Informatietechnologie – Onderzoeksgroep IBCN     p. 12
Saas Maturity Model
                                                Lvl I: Ad Hoc/Custom
                                                      Each customer has its own customized version
                                                Lvl II: Configurable
                                                      Flexibility through configurable metadata: many
                                                       customers can use separate instances of the
                                                       same application code.
                                                Lvl III: Configurable, Multi-Tenant-Efficient
                                                      Hosting a single instance, which serves all
                                                       customers. Requires appropriate authorization
                                                       and security policies.
                                                Lvl IV: Scalable, Configurable, Multi-Tenant-
Figure : Four-level SaaS maturity model
                                                 Efficient
                                                   Scalability is added through a multitier architecture
                                                     supporting a load-balanced farm of identical
                                                     application instances, running on a variable
                                                     number of servers.
                 Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                            p. 13
Understanding Modifiability
The modifiability of a system is determined by:

 Coupling: Modules in systems have different responsibilities. If
the responsibilities of modules overlap, a single change request
may impact multiple modules. The probability that a modification to
one module will propagate to another is called coupling. Coupling is
an “inter module” characteristic and is the enemy of modifiability:
low coupling is good.

 Cohesion: Cohesion measures how much the responsibilities of a
module are related. The cohesion of a module is the probability that
a change request to one responsibility will impact another one.
Cohesion is an intramodule characteristic and high cohesion is
good.


     Vakgroep Informatietechnologie – Onderzoeksgroep IBCN     p. 14
Modifiability Tactics
                                 Tactics
                                to Control              Changes made,
    Change
    Request                    Modifiability            Tested and Deployed
    Arrives                                             on Time, within Budget



         Reduce Module Size
         Increase Cohesion
         Reduce Coupling
         Defer Binding Time
               Commit as late as possible

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                            p. 15
Increase Cohesion (1/2)
   Maintain Semantic Coherence
          The responsibilities in a module should serve the
           same purpose.
               Example: Responsibilities that deal with hardware
                should be allocated to the hardware module and not to
                the application level. A hardware responsibility typically
                does not have any semantic coherence with the
                application responsibilities.
   Abstract Common Services
          In case of similar services they should be
           implemented only once in a slightly more general
           form.
          Refactoring is an example of this tactic. Refactoring
           rule involves examining existing responsibilities and
           factoring out the similar elements.
    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                    p. 16
Increase Cohesion (2/2)
    How to test for semantic cohesion?
          Anticipate the set of envisioned changes:
               Does one specific change impacts a lot of
                modules ?
               Do fundamentally different changes affect
                the same module ?
          If some responsibilities are not affected by a
           change they should be moved to another module.
          If a change impacts multiple modules,
           responsibilities need to be moved or allocated to
           new modules.
    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN      p. 17
Reduce Coupling (1/3)

   Hide information - Encapsulation
         Encapsulation introduces an explicit interface to a
          module.
         Encapsulation acts by enforcing information hiding
          behind an interface.
   Maintain existing interfaces – Wrappers
         A wrapper is a form of encapsulation. It is an interface for
          a module that transforms the data or control information
          for the module.
         The wrapper transformations reduce the total cost of a
          change by reducing the costs associated with
          propagation
    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN         p. 18
Reduce Coupling (2/3)

    Reduce Communication Paths
    Use Intermediaries - Break dependencies.
          Data(syntax):
            Data repositories (DB and Blackboards) act as
             intermediary between producer and consumer of
             data
            Publish/subscribe services

          Service (syntax)
               Patterns: façade, bridge, mediator, proxy,
                factory all provide intermediaries to convert from one
                syntax of a service to another

    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN           p. 19
Reduce Coupling (3/3)

   More intermediaries ...
        Identity of interface of A:
          A Broker can be used to find the interface to
            perform a service,
        Location of A (runtime)
          register with name-server
        Resource behavior of A or resource controlled by A
          Resource manager is intermediary
        Existence of A:
          The Factory pattern can construct instances if
            needed

    Vakgroep Informatietechnologie – Onderzoeksgroep IBCN     p. 20
Defer Binding Time (1/2)

 Implementation/Design                              time:
   Aspect-Oriented Programming.
   Polymorphism.

   Parameterize Modules.

 Build     time
     Component Replacement.(build scripts, makefiles)
 Deployment               & Initialization time
   Configuration-Time Binding.
   Resource Files.




  Vakgroep Informatietechnologie – Onderzoeksgroep IBCN      p. 21
Defer Binding Time (2/2)

 Runtime
   Use Runtime Registration.
   Dynamic Lookup (for services)

   Interpret Parameters.

   Start-Up Time Binding.

   Runtime Binding.

   Name Servers.

   Plug-Ins.

   Publisher-Subscriber




  Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 22
Modifiability Tactics: summary


                                       Modifiability

                             Reduce                                Defer
                             Size                                  Binding Time

                   Split              Increase     Reduce                         Changes made,
Change             modules            Cohesion    Coupling
Request                                                                           Tested and Deployed
                                  Increase          Encapsulation
Arrives                           Semantic          Wrap
                                                                                  on Time,
                                  Coherence
                                                    Restrict                      within Budget
                                  Abstract          communication
                                                    paths
                                  Common
                                  Services          Use an
                                                    intermediary




 Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                                            p. 23
Architectural Patterns & Tactics
 The Model-View-Controller architectural
 pattern (MVC) divides an interactive application
 into three components.
   The Model contains the core functionality, data and
    state.
   Views is the user interface component. It produces a
    representation of the model and can handle input.
   Controllers manage the interaction between the
    model and the view ensures consistency between.
 Used      in :
     Java Swing, Adobe Flex, Nokia Qt, ASP.net

 Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 24
The MVC Pattern
MVC Tactics analyzed:
The Model-View-Controller pattern implements the
following tactics:
Maintain    Semantic Coherence. According to the definition, the
model component contains the functional core of the application,
requiring all the necessary responsibilities for those concepts to be
located within the model.
Encapsulation. The model component encapsulates the
functional core data and functionality.
Use an Intermediary. The controller acts as an intermediary
between the view and the model.
Use Runtime Binding. Views can be opened and closed
dynamically, and different views can be bound to the data at
different times during execution.



Vakgroep Informatietechnologie – Onderzoeksgroep IBCN            p. 26
The Layers Pattern
 The  Layers architectural pattern helps to
  structure applications that can be
  decomposed into groups of subtasks in which
  each group of subtasks is at a particular level
  of abstraction
 The pattern consists of a number of layers.
  Layers are partially ordered with respect to
  the uses relationship. A layer may only use
  lower level layers in the partial order.



Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 27
Layers Pattern




Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 28
Layers are used when :
 Late source code changes should not ripple
  through the system…
 Interfaces should be stable, and may even be
  prescribed by a standards body.
 Parts of the system should be exchangeable…
 It may be necessary to build other systems at a
  later date with the same low-level issues…reuse.
 Similar responsibilities should be grouped…
 The system will be built by a team of
  programmers, and work has to be subdivided
  along clear boundaries…
Vakgroep Informatietechnologie – Onderzoeksgroep IBCN   p. 29
Layers Tactics Analyzed (1/2)
   The Layers pattern can be understood in terms of the
    following tactics:
         Maintain Semantic Coherence. The goal of ensuring that a
          layer’s responsibilities all work together without excessive
          reliance on other layers is achieved by choosing
          responsibilities that have some sort of semantic coherence.
         Raise the Abstraction Level. Layers represent an abstract
          ladder of services. Modules in lower layers may have an
          abstract (or more general) representation in the upper
          layers.
               Example, there may be concrete device drivers in the lower layer
                and a more general notion of a virtual device driver in an upper
                layer.


Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                         p. 30
Layers Tactics Analyzed (2/2)
   Abstract Common Services. Typically the responsibilities
    of a layer are grouped together into services. Abstract
    Common Services would place a single copy of the service
    in a distinct module and have it accessed by the
    consumers of the replicated service. In the Layers pattern,
    the common services are abstracted and located in a layer
    below the consumers of the services.
   Use Encapsulation. There are two design considerations
    of the Layers pattern with respect to interfaces:
      1.  Each layer may have its own interface and
      2.  Particular layers may act as an interface (e.g., API, façade) for
          another layer.
      The first consideration is an instance of the Use Encapsulation
          tactic; the second is an instance of the Use an Intermediary
          tactic.
Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                 p. 31
Example 1: Modifiability
Project: BikePRINT

                                          Artifact
                                           Code



 Source       Stimulus               Environment             Response         Response
Developer      Create                 Design time            Modification      measure
              different                                        is made      Integration of
            visualization                                    without side    visualization
            for analysis                                        effects      with system
                                                                            is done within
                                                                                4 hours

     Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                            p. 32
Example 2: Interoperability
Project: T.U.R.C.

                                          Artifact
                                           Code


                                                                              Response
 Source       Stimulus               Environment              Response         measure
Developer     Add new                 Design time             Protocol is       Only the
            communicati                                         added       communication
             on protocol                                        without        module is
                                                               affecting        adjusted
                                                                 other       Integration is
                                                             functionality possible within 3
                                                                                 hours
     Vakgroep Informatietechnologie – Onderzoeksgroep IBCN                            p. 33

Contenu connexe

Tendances

User interfaces presentation
User interfaces presentationUser interfaces presentation
User interfaces presentationsomipam1
 
Logic Apps reuse with microservices design
Logic Apps reuse with microservices designLogic Apps reuse with microservices design
Logic Apps reuse with microservices designBizTalk360
 
Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Biniam Asnake
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented ArchitectureVinay Rajadhyaksha
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkASG
 
Water management portal
Water management portalWater management portal
Water management portalPradeep Kiran
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9Ian Sommerville
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftMuleSoft
 
Heuristic Evaluation based on Nielsen's 10 Usability Heuristics
Heuristic Evaluation based on Nielsen's 10 Usability HeuristicsHeuristic Evaluation based on Nielsen's 10 Usability Heuristics
Heuristic Evaluation based on Nielsen's 10 Usability HeuristicsSebbe Isaac Kurian
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentjini james
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureRobert Sim
 
Developing Faster with Swagger
Developing Faster with SwaggerDeveloping Faster with Swagger
Developing Faster with SwaggerTony Tam
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
The Elements Of User Experience
The Elements Of User ExperienceThe Elements Of User Experience
The Elements Of User ExperienceJohn Chen, Jun
 

Tendances (20)

Miniprojectreport
MiniprojectreportMiniprojectreport
Miniprojectreport
 
User interfaces presentation
User interfaces presentationUser interfaces presentation
User interfaces presentation
 
Logic Apps reuse with microservices design
Logic Apps reuse with microservices designLogic Apps reuse with microservices design
Logic Apps reuse with microservices design
 
Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Service Oriented Architecture (SOA)
 
SOA Service Oriented Architecture
SOA Service Oriented ArchitectureSOA Service Oriented Architecture
SOA Service Oriented Architecture
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Water management portal
Water management portalWater management portal
Water management portal
 
Microservices
MicroservicesMicroservices
Microservices
 
eyeos technology
eyeos technologyeyeos technology
eyeos technology
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoft
 
Heuristic Evaluation based on Nielsen's 10 Usability Heuristics
Heuristic Evaluation based on Nielsen's 10 Usability HeuristicsHeuristic Evaluation based on Nielsen's 10 Usability Heuristics
Heuristic Evaluation based on Nielsen's 10 Usability Heuristics
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Developing Faster with Swagger
Developing Faster with SwaggerDeveloping Faster with Swagger
Developing Faster with Swagger
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Web services
Web servicesWeb services
Web services
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
The Elements Of User Experience
The Elements Of User ExperienceThe Elements Of User Experience
The Elements Of User Experience
 

Similaire à Sa 006 modifiability

Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
 
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)David Rosenblum
 
Content Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsContent Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsScott Abel
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeckfenggang wang
 
Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...Marlabs
 
Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Joe Gollner
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlCognizant
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...David Currie
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologiesprakashk453625
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies prakashk453625
 
Building a High-Performance Reactive Microservices Architecture
Building a High-Performance Reactive Microservices ArchitectureBuilding a High-Performance Reactive Microservices Architecture
Building a High-Performance Reactive Microservices ArchitectureCognizant
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive ArchitectureKnoldus Inc.
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtVincent Burckhardt
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceRosalind Radcliffe
 
SMARCOS CNR Paper Engineering
SMARCOS CNR Paper EngineeringSMARCOS CNR Paper Engineering
SMARCOS CNR Paper EngineeringSmarcos Eu
 

Similaire à Sa 006 modifiability (20)

Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
 
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
Scalability: What It Is and How to Analyze It (keynote talk at SBES 2007)
 
Netkit
NetkitNetkit
Netkit
 
Content Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM ProjectsContent Oriented Architectures: Putting Content at the Center of CM Projects
Content Oriented Architectures: Putting Content at the Center of CM Projects
 
05 microservices microdeck
05 microservices microdeck05 microservices microdeck
05 microservices microdeck
 
Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...
 
Content Oriented Architectures (COA)
Content Oriented Architectures (COA)Content Oriented Architectures (COA)
Content Oriented Architectures (COA)
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and Control
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
 
GCP DevOps Training.pptx
GCP DevOps Training.pptxGCP DevOps Training.pptx
GCP DevOps Training.pptx
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
Building a High-Performance Reactive Microservices Architecture
Building a High-Performance Reactive Microservices ArchitectureBuilding a High-Performance Reactive Microservices Architecture
Building a High-Performance Reactive Microservices Architecture
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive Architecture
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
 
Cloud native-microservices
Cloud native-microservicesCloud native-microservices
Cloud native-microservices
 
DevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse ConferenceDevOps for Mainframe for IBM Pulse Conference
DevOps for Mainframe for IBM Pulse Conference
 
SMARCOS CNR Paper Engineering
SMARCOS CNR Paper EngineeringSMARCOS CNR Paper Engineering
SMARCOS CNR Paper Engineering
 

Plus de Frank Gielen

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2Frank Gielen
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2Frank Gielen
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCedFrank Gielen
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Frank Gielen
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)Frank Gielen
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research CanvasFrank Gielen
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013Frank Gielen
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013Frank Gielen
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outlineFrank Gielen
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012Frank Gielen
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_viewsFrank Gielen
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availabilityFrank Gielen
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshopFrank Gielen
 
The Phonegap Architecture
The Phonegap ArchitectureThe Phonegap Architecture
The Phonegap ArchitectureFrank Gielen
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels Frank Gielen
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickFrank Gielen
 

Plus de Frank Gielen (20)

I mindsx4howest v2
I mindsx4howest v2I mindsx4howest v2
I mindsx4howest v2
 
I mindsx learning analytics v2
I mindsx learning analytics v2I mindsx learning analytics v2
I mindsx learning analytics v2
 
You have been MOOCed
You have been MOOCedYou have been MOOCed
You have been MOOCed
 
Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)Beyond MOOCs ctd. (2015)
Beyond MOOCs ctd. (2015)
 
Beyond MOOCs (2014)
Beyond MOOCs (2014)Beyond MOOCs (2014)
Beyond MOOCs (2014)
 
The Research Canvas
The Research CanvasThe Research Canvas
The Research Canvas
 
Defining the opportunity 2013
Defining the opportunity 2013Defining the opportunity 2013
Defining the opportunity 2013
 
KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013KPMG Legal and Tax September 2013
KPMG Legal and Tax September 2013
 
Dare 2 Start - Course outline
Dare 2 Start - Course outlineDare 2 Start - Course outline
Dare 2 Start - Course outline
 
Sop test planning
Sop test planningSop test planning
Sop test planning
 
Delaware presentation nov2012
Delaware presentation nov2012Delaware presentation nov2012
Delaware presentation nov2012
 
Pr crc
Pr crcPr crc
Pr crc
 
Sa 008 patterns
Sa 008 patternsSa 008 patterns
Sa 008 patterns
 
Sa 009 add
Sa 009 addSa 009 add
Sa 009 add
 
Sa 008 architecture_views
Sa 008 architecture_viewsSa 008 architecture_views
Sa 008 architecture_views
 
Sa 007 availability
Sa 007 availabilitySa 007 availability
Sa 007 availability
 
Pr 005 qa_workshop
Pr 005 qa_workshopPr 005 qa_workshop
Pr 005 qa_workshop
 
The Phonegap Architecture
The Phonegap ArchitectureThe Phonegap Architecture
The Phonegap Architecture
 
VC Do's and Don'ts - Jurgen Ingels
VC Do's and Don'ts  - Jurgen Ingels VC Do's and Don'ts  - Jurgen Ingels
VC Do's and Don'ts - Jurgen Ingels
 
Debt & Equity - Wouter Haerick
Debt & Equity - Wouter HaerickDebt & Equity - Wouter Haerick
Debt & Equity - Wouter Haerick
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Dernier (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Sa 006 modifiability

  • 1. Software Architecture Quality Attributes & Tactics (3) Modifiability Vakgroep Informatietechnologie – IBCN
  • 2. Modifiability Modifiability is about the cost of changes. Operating Profit (EBIT) = Revenues - Expenses Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 2
  • 3. Modifiability Definition The modifiability of a software system is the ease with which it can be modified to changes in the environment, requirements or functional specification. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 3
  • 4. Modifiability Aspects  What can change ?  Functions, Platform, Environment.  Qualities (performance, reliability,…)  Capacity (number of users,..)  When is the change required ?  Development time, build time, configuration, runtime  Who will implement the change ?  Software engineers ,users , administrators ?  What is the cost of change?  Cost of introducing the mechanism in the architecture  Cost of making the modification using that mechanism Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 4
  • 5. Business Concerns (1/2)  Extensibility  Adding and enhancing functionality  Effort for the next release  Simplification  Complex components are difficult to change  Simplifying functionality for maintainability  Restructuring  Modularizing  Creating reusable components  Smaller components are easier to modify Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 5
  • 6. Business Concerns (2/2)  Time to deploy  Time for introducing a new feature  Competitiveness  Functional scalability  Ability to scale up or down in terms of users, transactions …  Functional flexibility  Make existing functionality available to new users, new locations & unforeseen situations. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 6
  • 7. Modifiability Generic Scenario (1/3)  Source The developer, system administrator or end user, can request or introduce a change to the system.  Stimulus A directive to Add/delete/modify functionality; Modify quality attributes Modify platform, technology Operate in a new environment, new users Scale up and scale out  Artifact Code, data, interfaces, components, resources, configurations, … Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 7
  • 8. Modifiability Generic Scenario (2/3)  Environment  Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 8
  • 9. Modifiability Generic Scenario (3/3)  Response Make, test and deploy the modification  Response measures  Number of affected artifacts.  Size of the change.  Effort & time  Cost (direct or opportunity cost)  Number of other functions or quality attributes affected by the change  New defects introduces Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 9
  • 10. Modifiabililty Generic QAS Artifact Code, Data, Interfaces Components, Resources, Configs .. Source Stimulus Environment Response Measure Developer Modify: - Design - Change, # of artifacts Sys - Functions - Build - Test Effort admin - Deploy - Deploy Time - Qualities User - Runtime - Platform Cost - Technology Impact - Scale/Scope New defects p. 10
  • 11. Example Modifiability Scenario A developer wants to change the UI code (e.g. change an input field to a pick list) at design time; the modification is made without side effects in 3 hours. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 11
  • 12. Example 2: Saas Applications A SaaS application is scalable, multi-tenant, and configurable. Scalable application is able to handle and to support the required quality of service as the system load increases. In a multi-tenancy environment, multiple customers share the same application, running on the same operating system, on the same hardware, with the same data storage mechanism. The distinction between the customers is achieved during application design, so that customers do not share or see each other's data. Configurable applications allow a certain level of customization via metadata services, which are responsible for managing application configuration for individual tenants. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 12
  • 13. Saas Maturity Model  Lvl I: Ad Hoc/Custom  Each customer has its own customized version  Lvl II: Configurable  Flexibility through configurable metadata: many customers can use separate instances of the same application code.  Lvl III: Configurable, Multi-Tenant-Efficient  Hosting a single instance, which serves all customers. Requires appropriate authorization and security policies.  Lvl IV: Scalable, Configurable, Multi-Tenant- Figure : Four-level SaaS maturity model Efficient Scalability is added through a multitier architecture supporting a load-balanced farm of identical application instances, running on a variable number of servers. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 13
  • 14. Understanding Modifiability The modifiability of a system is determined by:  Coupling: Modules in systems have different responsibilities. If the responsibilities of modules overlap, a single change request may impact multiple modules. The probability that a modification to one module will propagate to another is called coupling. Coupling is an “inter module” characteristic and is the enemy of modifiability: low coupling is good.  Cohesion: Cohesion measures how much the responsibilities of a module are related. The cohesion of a module is the probability that a change request to one responsibility will impact another one. Cohesion is an intramodule characteristic and high cohesion is good. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 14
  • 15. Modifiability Tactics Tactics to Control Changes made, Change Request Modifiability Tested and Deployed Arrives on Time, within Budget  Reduce Module Size  Increase Cohesion  Reduce Coupling  Defer Binding Time  Commit as late as possible Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 15
  • 16. Increase Cohesion (1/2)  Maintain Semantic Coherence  The responsibilities in a module should serve the same purpose.  Example: Responsibilities that deal with hardware should be allocated to the hardware module and not to the application level. A hardware responsibility typically does not have any semantic coherence with the application responsibilities.  Abstract Common Services  In case of similar services they should be implemented only once in a slightly more general form.  Refactoring is an example of this tactic. Refactoring rule involves examining existing responsibilities and factoring out the similar elements. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 16
  • 17. Increase Cohesion (2/2)  How to test for semantic cohesion?  Anticipate the set of envisioned changes:  Does one specific change impacts a lot of modules ?  Do fundamentally different changes affect the same module ?  If some responsibilities are not affected by a change they should be moved to another module.  If a change impacts multiple modules, responsibilities need to be moved or allocated to new modules. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 17
  • 18. Reduce Coupling (1/3)  Hide information - Encapsulation  Encapsulation introduces an explicit interface to a module.  Encapsulation acts by enforcing information hiding behind an interface.  Maintain existing interfaces – Wrappers  A wrapper is a form of encapsulation. It is an interface for a module that transforms the data or control information for the module.  The wrapper transformations reduce the total cost of a change by reducing the costs associated with propagation Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 18
  • 19. Reduce Coupling (2/3)  Reduce Communication Paths  Use Intermediaries - Break dependencies.  Data(syntax):  Data repositories (DB and Blackboards) act as intermediary between producer and consumer of data  Publish/subscribe services  Service (syntax)  Patterns: façade, bridge, mediator, proxy, factory all provide intermediaries to convert from one syntax of a service to another Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 19
  • 20. Reduce Coupling (3/3)  More intermediaries ...  Identity of interface of A:  A Broker can be used to find the interface to perform a service,  Location of A (runtime)  register with name-server  Resource behavior of A or resource controlled by A  Resource manager is intermediary  Existence of A:  The Factory pattern can construct instances if needed Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 20
  • 21. Defer Binding Time (1/2)  Implementation/Design time:  Aspect-Oriented Programming.  Polymorphism.  Parameterize Modules.  Build time  Component Replacement.(build scripts, makefiles)  Deployment & Initialization time  Configuration-Time Binding.  Resource Files. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 21
  • 22. Defer Binding Time (2/2)  Runtime  Use Runtime Registration.  Dynamic Lookup (for services)  Interpret Parameters.  Start-Up Time Binding.  Runtime Binding.  Name Servers.  Plug-Ins.  Publisher-Subscriber Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 22
  • 23. Modifiability Tactics: summary Modifiability Reduce Defer Size Binding Time Split Increase Reduce Changes made, Change modules Cohesion Coupling Request Tested and Deployed Increase Encapsulation Arrives Semantic Wrap on Time, Coherence Restrict within Budget Abstract communication paths Common Services Use an intermediary Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 23
  • 24. Architectural Patterns & Tactics  The Model-View-Controller architectural pattern (MVC) divides an interactive application into three components.  The Model contains the core functionality, data and state.  Views is the user interface component. It produces a representation of the model and can handle input.  Controllers manage the interaction between the model and the view ensures consistency between.  Used in :  Java Swing, Adobe Flex, Nokia Qt, ASP.net Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 24
  • 26. MVC Tactics analyzed: The Model-View-Controller pattern implements the following tactics: Maintain Semantic Coherence. According to the definition, the model component contains the functional core of the application, requiring all the necessary responsibilities for those concepts to be located within the model. Encapsulation. The model component encapsulates the functional core data and functionality. Use an Intermediary. The controller acts as an intermediary between the view and the model. Use Runtime Binding. Views can be opened and closed dynamically, and different views can be bound to the data at different times during execution. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 26
  • 27. The Layers Pattern  The Layers architectural pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction  The pattern consists of a number of layers. Layers are partially ordered with respect to the uses relationship. A layer may only use lower level layers in the partial order. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 27
  • 28. Layers Pattern Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 28
  • 29. Layers are used when :  Late source code changes should not ripple through the system…  Interfaces should be stable, and may even be prescribed by a standards body.  Parts of the system should be exchangeable…  It may be necessary to build other systems at a later date with the same low-level issues…reuse.  Similar responsibilities should be grouped…  The system will be built by a team of programmers, and work has to be subdivided along clear boundaries… Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 29
  • 30. Layers Tactics Analyzed (1/2)  The Layers pattern can be understood in terms of the following tactics:  Maintain Semantic Coherence. The goal of ensuring that a layer’s responsibilities all work together without excessive reliance on other layers is achieved by choosing responsibilities that have some sort of semantic coherence.  Raise the Abstraction Level. Layers represent an abstract ladder of services. Modules in lower layers may have an abstract (or more general) representation in the upper layers.  Example, there may be concrete device drivers in the lower layer and a more general notion of a virtual device driver in an upper layer. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 30
  • 31. Layers Tactics Analyzed (2/2)  Abstract Common Services. Typically the responsibilities of a layer are grouped together into services. Abstract Common Services would place a single copy of the service in a distinct module and have it accessed by the consumers of the replicated service. In the Layers pattern, the common services are abstracted and located in a layer below the consumers of the services.  Use Encapsulation. There are two design considerations of the Layers pattern with respect to interfaces: 1. Each layer may have its own interface and 2. Particular layers may act as an interface (e.g., API, façade) for another layer. The first consideration is an instance of the Use Encapsulation tactic; the second is an instance of the Use an Intermediary tactic. Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 31
  • 32. Example 1: Modifiability Project: BikePRINT Artifact Code Source Stimulus Environment Response Response Developer Create Design time Modification measure different is made Integration of visualization without side visualization for analysis effects with system is done within 4 hours Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 32
  • 33. Example 2: Interoperability Project: T.U.R.C. Artifact Code Response Source Stimulus Environment Response measure Developer Add new Design time Protocol is Only the communicati added communication on protocol without module is affecting adjusted other Integration is functionality possible within 3 hours Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 33

Notes de l'éditeur

  1. Platform: OS, DBMS, Middleware change Environment: Keyboard control to touch screen, sensor input Data representation: binary to ASCII , proprietary to standard (XML), ….
  2. Model - The model represents enterprise data and the business rules that govern access to and updates of this data. Often the model serves as a software approximation to a real-world process, so simple real-world modeling techniques apply when defining the model. View -The view renders the contents of a model. It accesses enterprise data through the model and specifies how that data should be presented. It is the view's responsibility to maintain consistency in its presentation when the model changes. This can be achieved by using a push model, where the view registers itself with the model for change notifications, or a pull model, where the view is responsible for calling the model when it needs to retrieve the most current data. Controller - The controller translates interactions with the view into actions to be performed by the model. In a stand-alone GUI client, user interactions could be button clicks or menu selections, whereas in a Web application, they appear as GET and POST HTTP requests. The actions performed by the model include activating business processes or changing the state of the model. Based on the user interactions and the outcome of the model actions, the controller responds by selecting an appropriate view.