SlideShare a Scribd company logo
1 of 66
ANALYZING SOFTWARE
ARCHITECTURES:
A SEMANTIC MODEL

Ali Mili, NJIT
Alpen Adria Universitaet
June 15, 2012
PLAN

    • Software Quality Attributes
    • Software Architectures and
          Architectural Styles
    • Requirements for An Architectural
          Description Language
    • ACME and ACME+
    • An Attribute Grammar for ACME+
    • Compiling ACME+ Architectures
2
    • Demo: Automated Architectural
          Analysis
    • Conclusion: Summary and Prospects
    • References
SOFTWARE QUALITY ATTRIBUTES
A talk on software architecture starts with a
  discussion of software quality attributes… Why?
 Architectural decisions determine quality (non
  functional) attributes.
       Whereas design/ programming decisions determine
        functional attributes/ properties.
   Architectural decisions are taken according to
    selected attributes.
       Prioritizing attributes as a major system level decision.
        We cannot have them all.
   Study of software architectures inseparable from
    the study of quality (non functional) attributes.               3
SOFTWARE QUALITY ATTRIBUTES
Attribute          Measure     Definition
Reliability        Hrs/days    Failure Freedom
Safety             Hrs/days    Freedom from catastrophic failure
Security           Hrs/days    Freedom from security breaches
Availability       Percent.    Ratio of operational time
Throughput         Trans/sec Volume of processing
Maintainability    PM/loc yr   Unitary Cost of Maintenance / year
Response Time      Sec         Time between query and response
Portability        PM/ migr    Ease of migration between platforms
Failure Prob       Prob        Probability of failure/ unit of op time
Ease of Use        Qualitat.   Ease of Use, even an adult can use it
Ease of Learning   Hrs         Required Effort to learn                  4
Modularity         Cpl+Coh     Coupling and Cohesion
Menu
                                                 Reliability
                                                 Safety
SOFTWARE QUALITY ATTRIBUTES
                                                 Security
From application domain to quality attributes.   Availability

 Application           Attribute                 Throughput
                                                 Maintainability
 Heart Monitor
                                                 Response Time
 E-commerce
                                                 Portability
 Online Banking                                  Failure Prob

 Batch Banking                                   Ease of Use
                                                 Ease of Learning
 Social Media
                                                 Modularity
 Incomplete Specs
                                                                   5

 Compiler
Menu
                                                 Reliability
                                                 Safety
SOFTWARE QUALITY ATTRIBUTES
                                                 Security
From application domain to quality attributes.   Availability

 Application           Attribute                 Throughput
                                                 Maintainability
 Heart Monitor         Safety
                                                 Response Time
 E-commerce            Availability
                                                 Portability
 Online Banking        Reliability               Failure Prob

 Batch Banking         Throughput                Ease of Use
                                                 Ease of Learning
 Social Media          Security
                                                 Modularity
 Incomplete Specs      Maintainability
                                                                   6

 Compiler              Portability
Menu
                                                 Reliability
                                                 Safety
SOFTWARE QUALITY ATTRIBUTES
                                                 Security
From application domain to quality attributes.   Availability

 Application           Attribute                 Throughput
                                                 Maintainability
 Heterogeneous App
                                                 Response Time
 Flight Info Server
                                                 Portability
 US Census 2020                                  Failure Prob

 Office Automation                               Ease of Use
                                                 Ease of Learning
 Flight Control
                                                 Modularity
 Flight Simulator
                                                                   7

 Database Query
Menu
                                                 Reliability
                                                 Safety
SOFTWARE QUALITY ATTRIBUTES
                                                 Security
From application domain to quality attributes.   Availability

 Application           Attribute                 Throughput
                                                 Maintainability
 Heterogeneous App     Modularity
                                                 Response Time
 Flight Info Server    Ease of use
                                                 Portability
 US Census 2020        Throughput                Failure Prob

 Office Automation     Ease of Learning          Ease of Use
                                                 Ease of Learning
 Flight Control        Safety
                                                 Modularity
 Flight Simulation     Reliability
                                                                   8

 Database Query        Response Time
PLAN

    • Software Quality Attributes
    • Software Architectures and
          Architectural Styles
    • Requirements for An Architectural
          Description Language
    • ACME and ACME+
    • An Attribute Grammar for ACME+
    • Compiling ACME+ Architectures
9
    • Demo: Automated Architectural
          Analysis
    • Conclusion: Summary and Prospects
    • References
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Software architecture consists of the rules and
 principles for how a system is decomposed into its
 component parts, the rationale for how
 responsibilities are allocated among those parts,
 and the policies and mechanisms that coordinate
 the interactions between those parts as they
 collaborate to fulfill the purpose of the system.
 Software architecture is at once the partitioning of a
 system into its significant elements, and the
 organization and integration of those elements into
 a cohesive whole.                                        10
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Architectural Models: Used to document an architectural
  design.
 Static structural model that shows the major system
  components. But there is more to architecture than
  structure (Boxes and Arrows).
 Dynamic process model that shows the process
  structure of the system. How control flows in the
  system.
 Interface model that defines sub-system interfaces.
 Relationships model such as a data-flow model that
  shows sub-system relationships.
 Distribution model that shows how sub-systems are       11
  distributed across computers.
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Three important characteristics of an Architecture:
 Structure

 Communication

 Control




                                                      12
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

System Structure
 Module Structure: Modules and Dependencies.
 Conceptual Structure: Functional units and data
  flow.
 Process Structure: Processes, execution threads,
  synchronization constraints.
 Call Structure: Call relationships between
  processes.
 Physical Structure: Deployment of Data and
  Functions across computers, and across
  geographic sites.                                  13
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

System Communication
 Hardware infrastructure, communication medium.

 Synchronous/ Asynchronous communication.

 Shared data, duplicated shared data.

 Parameter passing, global variables.

 Message passing.

 Routing, packet switching.



                                                   14
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

System Control
 Procedure Call
       Remote Procedure Call,
 Concurrent, Sequential,
 Event Based,

 Interrupt Based




                                 15
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Architectural Styles: Architecture Families, defined
  by:
 Component Types,

 Connector Types,

 Communication Protocols,

 Semantic Constraints.




                                                       16
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Architectural Styles: Different classifications,
 Independent Components, autonomous control,
  message communication.
 Event Based Systems, events trigger reactions (XL).

 Virtual Machines, layered architecture (old OS).

 Data Flow Architectures, availability of data as control
  (DP). Example: Pipe and Filter.
 Data Centered Architectures, shared data,
  communication medium (DBMS).
 Call and Return Architectures, single control thread
                                                             17
  (traditional PL code).
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Software architecture as a prerequisite for reuse:
 Because a prerequisite for CB development.

 Why are cars built from components (tires,
  batteries, engines, transmissions, horns, A/C, etc)
  and software products are not?




                                                        18
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Software architecture as a prerequisite for reuse:
 Because a prerequisite for CB development.
 Why are cars built from components (tires,
  batteries, engines, transmissions, horns, A/C, etc)
  and software products are not?
 Because cars have had the same architecture for
  more than a century,
       Software products don’t.
   To build a system from components, the provider of
    the component and the builder of the system must
    agree on a common architecture.                      19
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES

Pre-architecture software reuse experiments:
 Large software repositories,
 Sophisticated search algorithms,
 High quality software components,
 All paid for by the government, provided for free,
 Open for business.
What happens?
 Nothing, despite cost/ risks of software.
     It is not about functions, it is about architecture/
      architectural assumptions. No common architecture, no
      reuse.                                                  20
SOFTWARE ARCHITECTURE AND
ARCHITECTURAL STYLES
While software products in
  general do not have a
  common architecture, the
  elements of a product
  family may… Hence
  product line engineering.
 Most common form of
  successful reuse.
 E-commerce, compilers,
  banking, etc.

                              21
SOFTWARE ARCHITECTURE AND
 ARCHITECTURAL STYLES
Attribute          Architectural Option
Reliability        Duplicate functions, fault tolerance.
Safety             Delegate safety critical functions to one component.
Security           Safeguard data, control access, multiply hoops.
Availability       Duplicate/ distribute data, functions.
Throughput         Coarse grain components, minimize message traffic.
Maintainability    Fine grain components.
Response Time      Avoid bottlenecks, duplicate/distribute data, funs.
Portability        Isolate platform dependent components.
Failure Prob       Redundancy, fault removal.
Ease of Use        No architectural impact.
Ease of Learning   Uniform interaction protocols.
                                                                          22
Modularity         High cohesion, low coupling, contract programming.
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
23
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE




                                    24
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE




Attribute       Sequential Arch.   Parallel Arch.
Response Time   Ra+Rb              Min(Ra, Rb)
                                                    25
Throughput      Min(Ta, Tb)        Ta+Tb
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE
Generalizing this type of reasoning for:
 Arbitrary topologies,

 Arbitrary quantitative attributes,

 Arbitrary number of links per component,

 Arbitrary relationships between links.




                                             26
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE
ADL         Author         Institution   Year

ACME        Garlan, Shaw   CMU           1995

AESOP       Garlan, Shaw   CMU           1994

Wright      Robert Allen   CMU           1997

MetaH       Vestal         Honeywell     1996

Lileanna    Tracz          IBM, Loral    1993

ArTek       London         Teknowledge   1995

C2          Taylor         UC Irvine     1996
                                                27
Modechart   Al Mok         UT Austin     1996
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE
ADL         Author       Institution        Year

Rapide      Luckham      Stanford           1995

UniCon      Shaw         CMU                1995

Darwin      Kramer       Imperial College   1995

SADL        Moriconi     SRI                1995

Demeter     Lieberherr   NEU                1996

CHAM        Berry        INRIA              1992

PSDL/CAPS   LuQi         NPS                1993
                                                   28
Resolve     Weide        Ohio State         1995
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE
Requirements for an Architectural Description
  Language
 Support the ability to represent quantitative
  attributes of architectural components,
 Support a generic ontology of architectural
  components (adequate vocabulary),
 Support a rich vocabulary of functional
  dependencies to enable quantitative analysis
  (topology is insufficient),
 Automate analysis of system-level attributes from
  component-level attributes (compiling ADL to
                                                      29
  relevant equations).
REQUIREMENTS FOR AN ARCHITECTURAL
    DESCRIPTION LANGUAGE
To our surprise, none of the existing languages do
  that.
 ACME does represent quantitative attributes, but
  treats them as comments,
 Wright does represent operational information, but
  it is too detailed (yet at times fails to reflect the
  functional dependencies we are interested in), and
  it does not represent quantitative attributes,
 Etc.

Surprising given that architecture deals with quality /
  non-functional attributes.
                                                          30
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
31
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
ACME AND ACME+
ACME Ontology
 Components
       Ports
   Connectors
       Roles
 Systems
 Properties

 Representations

 Representation Map


                       32
ACME AND ACME+
ACME Ontology… Focus on:
 Components
       Ports
   Connectors
       Roles
 Systems
 Properties

 Representations

 Representation Map


                           33
ACME AND ACME+
Component                  Connector

 Computational               Mediates interaction
  Element, or                  between components,
 Data Store (stores and      Has roles, each defining
  controls access to)          a particular function in an
                               interaction,
 Has ports, used to
                              Binary connectors:
  communicate with
                               caller/ callee; sender/
  other components via         receiver; reader/ writer.
  connectors
                              N-ary connectors:
                               broadcaster/ receivers.       34
ACME AND ACME+




                 35
ACME AND ACME+
ACME Properties
 Representing extra-structural attributes, in an open-
  ended manner,
 Arbitrary list of properties,

 Property, defined by: name, optional type, value.

 Any ACME entity may be annotated with a list of
  properties.




                                                          36
ACME AND ACME+




                 37
ACME AND ACME+
ACME+: Requirements,
 Formal definition of properties
   From a selected catalog (response time, throughput,
    failure probability, MTTF, MTTR, etc),
   Predefined units (seconds, transactions per second,
    probability scale, hours, hours, etc),
   Relationships between ports of a component (input,
    output, duplicate, complementary, synchronous,
    asynchronous),
   Relationships between roles of a connector (input,
    output, duplicate, complementary, synchronous,
    asynchronous, blocking, non-blocking, etc).
                                                          38
ACME AND ACME+
Relationships between ports of a component,
  relationships between roles of a connector.
 At a minimum, we wish to specify which are input
  ports and which are output ports.
 Among input ports, we wish to specify how they
  related to each other in providing input information.
   input(anyof(P1,P2,P3)).
   input(allof(P1,P2,P3)).
   input(mostof(P1,P2,P3)).



                                                          39
ACME AND ACME+
When more than one port is involved (as in all of, or
 most of) we must also specify whether they are
 synchronous or asynchronous:
     input(anyof(P1,P2,P3)).
     input(allof(asynch(P1,P2,P3))).
     input(mostof(asynch(P1,P2,P3))).
     input(allof(synchro(P1,P2,P3))).
     input(mostof(synchro(P1,P2,P3))).




                                                        40
ACME AND ACME+
As for output ports, in addition to designating them as
 such, we also need to determine the degree of
 overlap between them (duplicate, exclusive,
 overlap), as well as the synchronization between
 them (simultaneous, asavailable).
   output(duplicate(P4,P5)).
   output(overlap(asavailable(P4,P5))).
   output(exclusive(simultaneous(P4,P5))).
   output(exclusive(asavailable(P4,P5))).




                                                          41
ACME AND ACME+
Specified as part of a fundep statement (functional
 dependency), that specifies the relation between
 ports, and associates properties to the relation.
     fundep {three2two
        input(mostof(synchro(P1,P2,P3))),
        output(exclusive(asavailable(P4,P5))),
        properties(processingTime=0.02,
                   throughput=45,
                   bufferCapacity=256,
                   mttf=2000)}.

                                                      42
ACME AND ACME+
Adequacy of the notation, availability of needed
  information:
 Aegis Weapons System,
       Allen, CMU, Pittsburg, US
   Video Animation Repairing System,
       Bonta, Bernardo, Univ di Bologna, Padova, Italy
   E-Bay e-commerce platform,
       Ahmed, McGill University, Montreal, Canada
   Rule Based System.
       Garlan and Shaw, Pittsburg, US
                                                          43
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
44
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
AN ATTRIBUTE GRAMMAR FOR ACME+
We consider canonical architectures as architectures
  that satisfy the following conditions:
 A single component with no input port and a single
  output port: the source.
 A single component with no output port and a single
  input port: the sink.
 Each component has designated input ports and
  output ports.
 Each connector has designated origin roles and
  destination roles.
 Each component/ connector has relevant fundep
  relations, with relevant associated attributes.       45
AN ATTRIBUTE GRAMMAR FOR ACME+
Given a canonical architecture, we associate
  attributes (in the sense of attribute grammars) to
  each port and each role.
 These attributes represent the characteristics of a
  computation that initiates at the source component
  and reaches the port or role of interest. These
  attributes are synthesized from component and
  connector properties in light of:
   Functional dependencies of components and
    connectors upstream of the port/ role.
   Component and connector properties associated with
    these functional dependencies.                       46
AN ATTRIBUTE GRAMMAR FOR ACME+
Distinction between three concepts:
 System level properties: response time, throughput,
  MTTF, MTTR, etc. We represent these with upper case
  letters.
 Component/ connector-level properties, which are
  described by ACME+’s properties construct, and are
  attached to components and connectors.
 Port and role attributes that we define in the sense of
  attribute grammars.
   There is no one-to-one correspondence between properties
    and attributes.
   Component: Processing Time. Connector: Transmission
    Time. Attribute: Response time.
   Component/ connector: throughput, buffer capacity.         47
    Attribute: throughput.
AN ATTRIBUTE GRAMMAR FOR ACME+
While there is no one-to-one correspondence
 between component/ connector properties and port/
 role attributes, there is one between port/ role
 attributes and system level properties.

Port/ Role Attributes     System level Properties

RT                        Response Time

TP                        ThroughPut

FP                        Failure Probability

MTTR                      MeanTimeToRepair

MTTF                      MeanTimeToFailure          48
AN ATTRIBUTE GRAMMAR FOR ACME+
Base Attribute Values        Attribute Values at Sink

   source.outPort.RT = 0;      sink.inPort.RT =
   source.outPort.TP= ;         system.ResponseTime;
   source.outPort.FP=0;        sink.inPort.TP =
                                 system.Throughput;
   source.outPort.MTTF= ;
                                sink.inPort.FP =
                                 system.FailureProb;
                                sink.inPort.MTTF =
                                 system.MeanTimeToFail.



                                                          49
AN ATTRIBUTE GRAMMAR FOR ACME+
How do we propagate the attribute values from the
  source to the sink?
Inductive rules:
 Attachment statements: simple equations.
   attachment {C.outPort to N.originRole}
   We generate:
       C.outPort.RT = N.originRole.RT,
       C.outPort.TP = N.originRole.TP,

       C.outPort.FP = N.originRole.FP,

       C.outPort.MTTF = N.originRole.MTTF,

       Etc…


                                                    50
AN ATTRIBUTE GRAMMAR FOR ACME+
Propagation within components/ connectors (RT):

   Component, Single input port, single output port.
       C.outPort.RT = C.inPort.RT + C.ProcessingTime.


   Connector, Single origin role, single destination
    role.
       N.destinationRole.RT
                           = N.originRole.RT + N.TransmissionTime.


                                                                     51
AN ATTRIBUTE GRAMMAR FOR ACME+
Multiple ports, roles (component, RT):

   fundep {three2two,
                input(allof(asynch(P1,P2,P3))),
                output(P4),
                properties {processingTime= , …}}

   C.P4.RT = C.ProcessingTime +
                        max(C.P1.RT,C.P2.RT,C.P3.RT).

                                                        52
AN ATTRIBUTE GRAMMAR FOR ACME+
Multiple ports, roles (component, RT):

   fundep {three2two,
                input(anyof(asynch(P1,P2,P3))),
                output(P4),
                properties {processingTime= , …}}

   C.P4.RT = C.ProcessingTime +
                        min(C.P1.RT,C.P2.RT,C.P3.RT).

                                                        53
AN ATTRIBUTE GRAMMAR FOR ACME+
Multiple ports, roles (component, RT):

   fundep {three2two,
                input(mostof(asynch(P1,P2,P3))),
                output(P4),
                properties {processingTime= , …}}

   C.P4.RT = C.ProcessingTime +
                        med(C.P1.RT,C.P2.RT,C.P3.RT).

                                                        54
AN ATTRIBUTE GRAMMAR FOR ACME+
Multiple ports, roles (component, RT):

   fundep {three2two,
                input(xxxxx(synchro(P1,P2,P3))),
                output(P4),
                properties {processingTime= , …}}

   C.P4.RT = C.ProcessingTime +
                        max(C.P1.RT,C.P2.RT,C.P3.RT).

                                                        55
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
56
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
COMPILING ACME+ ARCHITECTURES
ACME+:
 ACME
     - ACME-style properties
     + fundep statements, along with their properties.


   To generate ACME+ architectures:
     We use ACME Studio to generate plain architecture,
     Check its syntax, validate it using GUI,
     Add fundep statements,
           Run ACME+ compiler.
       Output: a set of equations linking all attribute values,
        from source to sink, and sink values to system
        properties.                                                57
COMPILING ACME+ ARCHITECTURES
Available Functionalities,
 Computer system level Properties from component/
  connector level properties.
 Produces explicit expression of system level
  Properties from component/ connector level
  properties.
 For some system level Properties, identifies the
  component/ connector that causes the bottleneck
  with respect to that property.


                                                     58
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
59
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
DEMO: AUTOMATED ARCHITECTURAL
    ANALYSIS
Aegis Weapons System




                                60
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
61
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
CONCLUSION: SUMMARY AND
PROSPECTS
Summary
 Software qualities cannot be achieved
  simultaneously, and must be prioritized.
 Software Architecture represent early design
  decisions that affect quality attributes of the final
  product.
       Hence the architecture of a software product must be
        designed according to the selected quality attributes.
 A proliferation of ADL, mostly during the nineties.
 Contribution: an ACME extension and support tool
  that enable us to reason about quality attributes.
                                                                 62
CONCLUSION: SUMMARY AND
PROSPECTS
Prospects
 Extend to non canonical architectures (cyclic
  topologies, concurrent processing),
 Other Quality Attributes,

 User Defined Quality Attributes,

 Broaden the analysis of architectures, notably by
  means of the explicit expression of system level
  properties,
 For more complex functional dependencies:
     Replace equations with inequations,
     Replace equation resolution with optimization.   63
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
64
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References
REFERENCES
 Lamia Labed Jilani, Imen Derbel, Khaled Bsaies,
  Hamdi Nasreddine, Ali Mili. Reasoning About
  Quantitative Architectural Attributes (Invited Paper).
  Journal of Software (4): 574-583 (2011)
  http://web.njit.edu/~mili/jsw.pdf
 Imen Derbel, Lamia Labed Jilani, Ali Mili: A model
  for analyzing architectural attributes. AICCSA
  2010: 1-7. http://web.njit.edu/~mili/compiling.pdf



                                                           65
PLAN

     • Software Quality Attributes
     • Software Architectures and
           Architectural Styles
     • Requirements for An Architectural
           Description Language
     • ACME and ACME+
     • An Attribute Grammar for ACME+
     • Compiling ACME+ Architectures
66
     • Demo: Automated Architectural
           Analysis
     • Conclusion: Summary and Prospects
     • References

More Related Content

What's hot

Rationalization and Defense in Depth - Two Steps Closer to the Clouds
Rationalization and Defense in Depth - Two Steps Closer to the CloudsRationalization and Defense in Depth - Two Steps Closer to the Clouds
Rationalization and Defense in Depth - Two Steps Closer to the CloudsBob Rhubart
 
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...HyTrust
 
Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Ian Sommerville
 
Intel Cloud Summit: Greg Brown McAfee
Intel Cloud Summit: Greg Brown McAfeeIntel Cloud Summit: Greg Brown McAfee
Intel Cloud Summit: Greg Brown McAfeeIntelAPAC
 
Resume_PankajTaneja_Infosystem
Resume_PankajTaneja_InfosystemResume_PankajTaneja_Infosystem
Resume_PankajTaneja_InfosystemPankaj Taneja
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 

What's hot (6)

Rationalization and Defense in Depth - Two Steps Closer to the Clouds
Rationalization and Defense in Depth - Two Steps Closer to the CloudsRationalization and Defense in Depth - Two Steps Closer to the Clouds
Rationalization and Defense in Depth - Two Steps Closer to the Clouds
 
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...
Virtualize More While Improving Your Cybersecurity Risk Posture - The "4 Must...
 
Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)Dependablity Engineering 1 (CS 5032 2012)
Dependablity Engineering 1 (CS 5032 2012)
 
Intel Cloud Summit: Greg Brown McAfee
Intel Cloud Summit: Greg Brown McAfeeIntel Cloud Summit: Greg Brown McAfee
Intel Cloud Summit: Greg Brown McAfee
 
Resume_PankajTaneja_Infosystem
Resume_PankajTaneja_InfosystemResume_PankajTaneja_Infosystem
Resume_PankajTaneja_Infosystem
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 

Similar to Analyzing Software Architectures: A Semantic Model

Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 Defining and Evaluating the Usability of CMS - Saurabh Kudesia   Defining and Evaluating the Usability of CMS - Saurabh Kudesia
Defining and Evaluating the Usability of CMS - Saurabh Kudesia STC India UX SIG
 
International approaches to critical information infrastructure protection ...
International approaches to critical information infrastructure protection   ...International approaches to critical information infrastructure protection   ...
International approaches to critical information infrastructure protection ...owaspindia
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John bRoopa Nadkarni
 
Security and Mobile Application Management with Worklight
Security and Mobile Application Management with WorklightSecurity and Mobile Application Management with Worklight
Security and Mobile Application Management with WorklightIBM WebSphereIndia
 
Oracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterOracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterGeneXus
 
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...apidays
 
Successive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular ApproachSuccessive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular Approachajeetmnnit
 
Timelytrendsin appdelivery
Timelytrendsin appdeliveryTimelytrendsin appdelivery
Timelytrendsin appdeliveryKelly Emo
 
BayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes EverythingBayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes EverythingCloudPassage
 
Architecting Secure Service Oriented Web Services
Architecting Secure Service Oriented Web ServicesArchitecting Secure Service Oriented Web Services
Architecting Secure Service Oriented Web ServicesIDES Editor
 
IBM Presentation for Mobile Developer Summit India
IBM Presentation for Mobile Developer Summit IndiaIBM Presentation for Mobile Developer Summit India
IBM Presentation for Mobile Developer Summit IndiaLeigh Williamson
 
Safe Code Software Integrity Controls0610
Safe Code Software Integrity Controls0610Safe Code Software Integrity Controls0610
Safe Code Software Integrity Controls0610Tommy Tracx Xaypanya
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous DeliveryTom Stiehm
 
Cloud Tools for Connected Communities
Cloud Tools for Connected CommunitiesCloud Tools for Connected Communities
Cloud Tools for Connected CommunitiesPeter Coffee
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software IBM WebSphereIndia
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareCollaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareIBM Software India
 

Similar to Analyzing Software Architectures: A Semantic Model (20)

Productivity Measurement by Dr. Bill Curtis
Productivity Measurement by Dr. Bill CurtisProductivity Measurement by Dr. Bill Curtis
Productivity Measurement by Dr. Bill Curtis
 
Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 Defining and Evaluating the Usability of CMS - Saurabh Kudesia   Defining and Evaluating the Usability of CMS - Saurabh Kudesia
Defining and Evaluating the Usability of CMS - Saurabh Kudesia
 
factors
 factors factors
factors
 
International approaches to critical information infrastructure protection ...
International approaches to critical information infrastructure protection   ...International approaches to critical information infrastructure protection   ...
International approaches to critical information infrastructure protection ...
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John b
 
Security and Mobile Application Management with Worklight
Security and Mobile Application Management with WorklightSecurity and Mobile Application Management with Worklight
Security and Mobile Application Management with Worklight
 
Oracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao DatacenterOracle - Soluções do device ao Datacenter
Oracle - Soluções do device ao Datacenter
 
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
Apidays Paris 2023 - API Security Challenges for Cloud-native Software Archit...
 
Successive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular ApproachSuccessive Software Reliability Growth Model: A Modular Approach
Successive Software Reliability Growth Model: A Modular Approach
 
Timelytrendsin appdelivery
Timelytrendsin appdeliveryTimelytrendsin appdelivery
Timelytrendsin appdelivery
 
Sqa material
Sqa materialSqa material
Sqa material
 
BayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes EverythingBayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes Everything
 
Dev ops intro
Dev ops  introDev ops  intro
Dev ops intro
 
Architecting Secure Service Oriented Web Services
Architecting Secure Service Oriented Web ServicesArchitecting Secure Service Oriented Web Services
Architecting Secure Service Oriented Web Services
 
IBM Presentation for Mobile Developer Summit India
IBM Presentation for Mobile Developer Summit IndiaIBM Presentation for Mobile Developer Summit India
IBM Presentation for Mobile Developer Summit India
 
Safe Code Software Integrity Controls0610
Safe Code Software Integrity Controls0610Safe Code Software Integrity Controls0610
Safe Code Software Integrity Controls0610
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous Delivery
 
Cloud Tools for Connected Communities
Cloud Tools for Connected CommunitiesCloud Tools for Connected Communities
Cloud Tools for Connected Communities
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareCollaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software
 

More from Förderverein Technische Fakultät

The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...Förderverein Technische Fakultät
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfFörderverein Technische Fakultät
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfFörderverein Technische Fakultät
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Förderverein Technische Fakultät
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...Förderverein Technische Fakultät
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksFörderverein Technische Fakultät
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfFörderverein Technische Fakultät
 

More from Förderverein Technische Fakultät (20)

Supervisory control of business processes
Supervisory control of business processesSupervisory control of business processes
Supervisory control of business processes
 
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
The Digital Transformation of Education: A Hyper-Disruptive Era through Block...
 
A Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdfA Game of Chess is Like a Swordfight.pdf
A Game of Chess is Like a Swordfight.pdf
 
From Mind to Meta.pdf
From Mind to Meta.pdfFrom Mind to Meta.pdf
From Mind to Meta.pdf
 
Miniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdfMiniatures Design for Tabletop Games.pdf
Miniatures Design for Tabletop Games.pdf
 
Distributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptxDistributed Systems in the Post-Moore Era.pptx
Distributed Systems in the Post-Moore Era.pptx
 
Don't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptxDon't Treat the Symptom, Find the Cause!.pptx
Don't Treat the Symptom, Find the Cause!.pptx
 
Engineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdfEngineering Serverless Workflow Applications in Federated FaaS.pdf
Engineering Serverless Workflow Applications in Federated FaaS.pdf
 
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdfThe Role of Machine Learning in Fluid Network Control and Data Planes.pdf
The Role of Machine Learning in Fluid Network Control and Data Planes.pdf
 
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
Nonequilibrium Network Dynamics_Inference, Fluctuation-Respones & Tipping Poi...
 
Towards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdfTowards a data driven identification of teaching patterns.pdf
Towards a data driven identification of teaching patterns.pdf
 
Förderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptxFörderverein Technische Fakultät.pptx
Förderverein Technische Fakultät.pptx
 
The Computing Continuum.pdf
The Computing Continuum.pdfThe Computing Continuum.pdf
The Computing Continuum.pdf
 
East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...East-west oriented photovoltaic power systems: model, benefits and technical ...
East-west oriented photovoltaic power systems: model, benefits and technical ...
 
Machine Learning in Finance via Randomization
Machine Learning in Finance via RandomizationMachine Learning in Finance via Randomization
Machine Learning in Finance via Randomization
 
IT does not stop
IT does not stopIT does not stop
IT does not stop
 
Advances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial NetworksAdvances in Visual Quality Restoration with Generative Adversarial Networks
Advances in Visual Quality Restoration with Generative Adversarial Networks
 
Recent Trends in Personalization at Netflix
Recent Trends in Personalization at NetflixRecent Trends in Personalization at Netflix
Recent Trends in Personalization at Netflix
 
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdfIndustriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
Industriepraktikum_ Unterstützung bei Projekten in der Automatisierung.pdf
 
Introduction to 5G from radio perspective
Introduction to 5G from radio perspectiveIntroduction to 5G from radio perspective
Introduction to 5G from radio perspective
 

Recently uploaded

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Recently uploaded (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

Analyzing Software Architectures: A Semantic Model

  • 1. ANALYZING SOFTWARE ARCHITECTURES: A SEMANTIC MODEL Ali Mili, NJIT Alpen Adria Universitaet June 15, 2012
  • 2. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 2 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 3. SOFTWARE QUALITY ATTRIBUTES A talk on software architecture starts with a discussion of software quality attributes… Why?  Architectural decisions determine quality (non functional) attributes.  Whereas design/ programming decisions determine functional attributes/ properties.  Architectural decisions are taken according to selected attributes.  Prioritizing attributes as a major system level decision. We cannot have them all.  Study of software architectures inseparable from the study of quality (non functional) attributes. 3
  • 4. SOFTWARE QUALITY ATTRIBUTES Attribute Measure Definition Reliability Hrs/days Failure Freedom Safety Hrs/days Freedom from catastrophic failure Security Hrs/days Freedom from security breaches Availability Percent. Ratio of operational time Throughput Trans/sec Volume of processing Maintainability PM/loc yr Unitary Cost of Maintenance / year Response Time Sec Time between query and response Portability PM/ migr Ease of migration between platforms Failure Prob Prob Probability of failure/ unit of op time Ease of Use Qualitat. Ease of Use, even an adult can use it Ease of Learning Hrs Required Effort to learn 4 Modularity Cpl+Coh Coupling and Cohesion
  • 5. Menu Reliability Safety SOFTWARE QUALITY ATTRIBUTES Security From application domain to quality attributes. Availability Application Attribute Throughput Maintainability Heart Monitor Response Time E-commerce Portability Online Banking Failure Prob Batch Banking Ease of Use Ease of Learning Social Media Modularity Incomplete Specs 5 Compiler
  • 6. Menu Reliability Safety SOFTWARE QUALITY ATTRIBUTES Security From application domain to quality attributes. Availability Application Attribute Throughput Maintainability Heart Monitor Safety Response Time E-commerce Availability Portability Online Banking Reliability Failure Prob Batch Banking Throughput Ease of Use Ease of Learning Social Media Security Modularity Incomplete Specs Maintainability 6 Compiler Portability
  • 7. Menu Reliability Safety SOFTWARE QUALITY ATTRIBUTES Security From application domain to quality attributes. Availability Application Attribute Throughput Maintainability Heterogeneous App Response Time Flight Info Server Portability US Census 2020 Failure Prob Office Automation Ease of Use Ease of Learning Flight Control Modularity Flight Simulator 7 Database Query
  • 8. Menu Reliability Safety SOFTWARE QUALITY ATTRIBUTES Security From application domain to quality attributes. Availability Application Attribute Throughput Maintainability Heterogeneous App Modularity Response Time Flight Info Server Ease of use Portability US Census 2020 Throughput Failure Prob Office Automation Ease of Learning Ease of Use Ease of Learning Flight Control Safety Modularity Flight Simulation Reliability 8 Database Query Response Time
  • 9. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 9 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 10. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Software architecture consists of the rules and principles for how a system is decomposed into its component parts, the rationale for how responsibilities are allocated among those parts, and the policies and mechanisms that coordinate the interactions between those parts as they collaborate to fulfill the purpose of the system. Software architecture is at once the partitioning of a system into its significant elements, and the organization and integration of those elements into a cohesive whole. 10
  • 11. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Architectural Models: Used to document an architectural design.  Static structural model that shows the major system components. But there is more to architecture than structure (Boxes and Arrows).  Dynamic process model that shows the process structure of the system. How control flows in the system.  Interface model that defines sub-system interfaces.  Relationships model such as a data-flow model that shows sub-system relationships.  Distribution model that shows how sub-systems are 11 distributed across computers.
  • 12. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Three important characteristics of an Architecture:  Structure  Communication  Control 12
  • 13. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES System Structure  Module Structure: Modules and Dependencies.  Conceptual Structure: Functional units and data flow.  Process Structure: Processes, execution threads, synchronization constraints.  Call Structure: Call relationships between processes.  Physical Structure: Deployment of Data and Functions across computers, and across geographic sites. 13
  • 14. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES System Communication  Hardware infrastructure, communication medium.  Synchronous/ Asynchronous communication.  Shared data, duplicated shared data.  Parameter passing, global variables.  Message passing.  Routing, packet switching. 14
  • 15. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES System Control  Procedure Call  Remote Procedure Call,  Concurrent, Sequential,  Event Based,  Interrupt Based 15
  • 16. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Architectural Styles: Architecture Families, defined by:  Component Types,  Connector Types,  Communication Protocols,  Semantic Constraints. 16
  • 17. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Architectural Styles: Different classifications,  Independent Components, autonomous control, message communication.  Event Based Systems, events trigger reactions (XL).  Virtual Machines, layered architecture (old OS).  Data Flow Architectures, availability of data as control (DP). Example: Pipe and Filter.  Data Centered Architectures, shared data, communication medium (DBMS).  Call and Return Architectures, single control thread 17 (traditional PL code).
  • 18. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Software architecture as a prerequisite for reuse:  Because a prerequisite for CB development.  Why are cars built from components (tires, batteries, engines, transmissions, horns, A/C, etc) and software products are not? 18
  • 19. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Software architecture as a prerequisite for reuse:  Because a prerequisite for CB development.  Why are cars built from components (tires, batteries, engines, transmissions, horns, A/C, etc) and software products are not?  Because cars have had the same architecture for more than a century,  Software products don’t.  To build a system from components, the provider of the component and the builder of the system must agree on a common architecture. 19
  • 20. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Pre-architecture software reuse experiments:  Large software repositories,  Sophisticated search algorithms,  High quality software components,  All paid for by the government, provided for free,  Open for business. What happens?  Nothing, despite cost/ risks of software.  It is not about functions, it is about architecture/ architectural assumptions. No common architecture, no reuse. 20
  • 21. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES While software products in general do not have a common architecture, the elements of a product family may… Hence product line engineering.  Most common form of successful reuse.  E-commerce, compilers, banking, etc. 21
  • 22. SOFTWARE ARCHITECTURE AND ARCHITECTURAL STYLES Attribute Architectural Option Reliability Duplicate functions, fault tolerance. Safety Delegate safety critical functions to one component. Security Safeguard data, control access, multiply hoops. Availability Duplicate/ distribute data, functions. Throughput Coarse grain components, minimize message traffic. Maintainability Fine grain components. Response Time Avoid bottlenecks, duplicate/distribute data, funs. Portability Isolate platform dependent components. Failure Prob Redundancy, fault removal. Ease of Use No architectural impact. Ease of Learning Uniform interaction protocols. 22 Modularity High cohesion, low coupling, contract programming.
  • 23. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 23 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 24. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE 24
  • 25. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE Attribute Sequential Arch. Parallel Arch. Response Time Ra+Rb Min(Ra, Rb) 25 Throughput Min(Ta, Tb) Ta+Tb
  • 26. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE Generalizing this type of reasoning for:  Arbitrary topologies,  Arbitrary quantitative attributes,  Arbitrary number of links per component,  Arbitrary relationships between links. 26
  • 27. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE ADL Author Institution Year ACME Garlan, Shaw CMU 1995 AESOP Garlan, Shaw CMU 1994 Wright Robert Allen CMU 1997 MetaH Vestal Honeywell 1996 Lileanna Tracz IBM, Loral 1993 ArTek London Teknowledge 1995 C2 Taylor UC Irvine 1996 27 Modechart Al Mok UT Austin 1996
  • 28. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE ADL Author Institution Year Rapide Luckham Stanford 1995 UniCon Shaw CMU 1995 Darwin Kramer Imperial College 1995 SADL Moriconi SRI 1995 Demeter Lieberherr NEU 1996 CHAM Berry INRIA 1992 PSDL/CAPS LuQi NPS 1993 28 Resolve Weide Ohio State 1995
  • 29. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE Requirements for an Architectural Description Language  Support the ability to represent quantitative attributes of architectural components,  Support a generic ontology of architectural components (adequate vocabulary),  Support a rich vocabulary of functional dependencies to enable quantitative analysis (topology is insufficient),  Automate analysis of system-level attributes from component-level attributes (compiling ADL to 29 relevant equations).
  • 30. REQUIREMENTS FOR AN ARCHITECTURAL DESCRIPTION LANGUAGE To our surprise, none of the existing languages do that.  ACME does represent quantitative attributes, but treats them as comments,  Wright does represent operational information, but it is too detailed (yet at times fails to reflect the functional dependencies we are interested in), and it does not represent quantitative attributes,  Etc. Surprising given that architecture deals with quality / non-functional attributes. 30
  • 31. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 31 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 32. ACME AND ACME+ ACME Ontology  Components  Ports  Connectors  Roles  Systems  Properties  Representations  Representation Map 32
  • 33. ACME AND ACME+ ACME Ontology… Focus on:  Components  Ports  Connectors  Roles  Systems  Properties  Representations  Representation Map 33
  • 34. ACME AND ACME+ Component Connector  Computational  Mediates interaction Element, or between components,  Data Store (stores and  Has roles, each defining controls access to) a particular function in an interaction,  Has ports, used to  Binary connectors: communicate with caller/ callee; sender/ other components via receiver; reader/ writer. connectors  N-ary connectors: broadcaster/ receivers. 34
  • 36. ACME AND ACME+ ACME Properties  Representing extra-structural attributes, in an open- ended manner,  Arbitrary list of properties,  Property, defined by: name, optional type, value.  Any ACME entity may be annotated with a list of properties. 36
  • 38. ACME AND ACME+ ACME+: Requirements,  Formal definition of properties  From a selected catalog (response time, throughput, failure probability, MTTF, MTTR, etc),  Predefined units (seconds, transactions per second, probability scale, hours, hours, etc),  Relationships between ports of a component (input, output, duplicate, complementary, synchronous, asynchronous),  Relationships between roles of a connector (input, output, duplicate, complementary, synchronous, asynchronous, blocking, non-blocking, etc). 38
  • 39. ACME AND ACME+ Relationships between ports of a component, relationships between roles of a connector.  At a minimum, we wish to specify which are input ports and which are output ports.  Among input ports, we wish to specify how they related to each other in providing input information.  input(anyof(P1,P2,P3)).  input(allof(P1,P2,P3)).  input(mostof(P1,P2,P3)). 39
  • 40. ACME AND ACME+ When more than one port is involved (as in all of, or most of) we must also specify whether they are synchronous or asynchronous:  input(anyof(P1,P2,P3)).  input(allof(asynch(P1,P2,P3))).  input(mostof(asynch(P1,P2,P3))).  input(allof(synchro(P1,P2,P3))).  input(mostof(synchro(P1,P2,P3))). 40
  • 41. ACME AND ACME+ As for output ports, in addition to designating them as such, we also need to determine the degree of overlap between them (duplicate, exclusive, overlap), as well as the synchronization between them (simultaneous, asavailable).  output(duplicate(P4,P5)).  output(overlap(asavailable(P4,P5))).  output(exclusive(simultaneous(P4,P5))).  output(exclusive(asavailable(P4,P5))). 41
  • 42. ACME AND ACME+ Specified as part of a fundep statement (functional dependency), that specifies the relation between ports, and associates properties to the relation.  fundep {three2two input(mostof(synchro(P1,P2,P3))), output(exclusive(asavailable(P4,P5))), properties(processingTime=0.02, throughput=45, bufferCapacity=256, mttf=2000)}. 42
  • 43. ACME AND ACME+ Adequacy of the notation, availability of needed information:  Aegis Weapons System,  Allen, CMU, Pittsburg, US  Video Animation Repairing System,  Bonta, Bernardo, Univ di Bologna, Padova, Italy  E-Bay e-commerce platform,  Ahmed, McGill University, Montreal, Canada  Rule Based System.  Garlan and Shaw, Pittsburg, US 43
  • 44. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 44 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 45. AN ATTRIBUTE GRAMMAR FOR ACME+ We consider canonical architectures as architectures that satisfy the following conditions:  A single component with no input port and a single output port: the source.  A single component with no output port and a single input port: the sink.  Each component has designated input ports and output ports.  Each connector has designated origin roles and destination roles.  Each component/ connector has relevant fundep relations, with relevant associated attributes. 45
  • 46. AN ATTRIBUTE GRAMMAR FOR ACME+ Given a canonical architecture, we associate attributes (in the sense of attribute grammars) to each port and each role.  These attributes represent the characteristics of a computation that initiates at the source component and reaches the port or role of interest. These attributes are synthesized from component and connector properties in light of:  Functional dependencies of components and connectors upstream of the port/ role.  Component and connector properties associated with these functional dependencies. 46
  • 47. AN ATTRIBUTE GRAMMAR FOR ACME+ Distinction between three concepts:  System level properties: response time, throughput, MTTF, MTTR, etc. We represent these with upper case letters.  Component/ connector-level properties, which are described by ACME+’s properties construct, and are attached to components and connectors.  Port and role attributes that we define in the sense of attribute grammars.  There is no one-to-one correspondence between properties and attributes.  Component: Processing Time. Connector: Transmission Time. Attribute: Response time.  Component/ connector: throughput, buffer capacity. 47 Attribute: throughput.
  • 48. AN ATTRIBUTE GRAMMAR FOR ACME+ While there is no one-to-one correspondence between component/ connector properties and port/ role attributes, there is one between port/ role attributes and system level properties. Port/ Role Attributes System level Properties RT Response Time TP ThroughPut FP Failure Probability MTTR MeanTimeToRepair MTTF MeanTimeToFailure 48
  • 49. AN ATTRIBUTE GRAMMAR FOR ACME+ Base Attribute Values Attribute Values at Sink  source.outPort.RT = 0;  sink.inPort.RT =  source.outPort.TP= ; system.ResponseTime;  source.outPort.FP=0;  sink.inPort.TP = system.Throughput;  source.outPort.MTTF= ;  sink.inPort.FP = system.FailureProb;  sink.inPort.MTTF = system.MeanTimeToFail. 49
  • 50. AN ATTRIBUTE GRAMMAR FOR ACME+ How do we propagate the attribute values from the source to the sink? Inductive rules:  Attachment statements: simple equations.  attachment {C.outPort to N.originRole}  We generate:  C.outPort.RT = N.originRole.RT,  C.outPort.TP = N.originRole.TP,  C.outPort.FP = N.originRole.FP,  C.outPort.MTTF = N.originRole.MTTF,  Etc… 50
  • 51. AN ATTRIBUTE GRAMMAR FOR ACME+ Propagation within components/ connectors (RT):  Component, Single input port, single output port.  C.outPort.RT = C.inPort.RT + C.ProcessingTime.  Connector, Single origin role, single destination role.  N.destinationRole.RT = N.originRole.RT + N.TransmissionTime. 51
  • 52. AN ATTRIBUTE GRAMMAR FOR ACME+ Multiple ports, roles (component, RT):  fundep {three2two, input(allof(asynch(P1,P2,P3))), output(P4), properties {processingTime= , …}}  C.P4.RT = C.ProcessingTime + max(C.P1.RT,C.P2.RT,C.P3.RT). 52
  • 53. AN ATTRIBUTE GRAMMAR FOR ACME+ Multiple ports, roles (component, RT):  fundep {three2two, input(anyof(asynch(P1,P2,P3))), output(P4), properties {processingTime= , …}}  C.P4.RT = C.ProcessingTime + min(C.P1.RT,C.P2.RT,C.P3.RT). 53
  • 54. AN ATTRIBUTE GRAMMAR FOR ACME+ Multiple ports, roles (component, RT):  fundep {three2two, input(mostof(asynch(P1,P2,P3))), output(P4), properties {processingTime= , …}}  C.P4.RT = C.ProcessingTime + med(C.P1.RT,C.P2.RT,C.P3.RT). 54
  • 55. AN ATTRIBUTE GRAMMAR FOR ACME+ Multiple ports, roles (component, RT):  fundep {three2two, input(xxxxx(synchro(P1,P2,P3))), output(P4), properties {processingTime= , …}}  C.P4.RT = C.ProcessingTime + max(C.P1.RT,C.P2.RT,C.P3.RT). 55
  • 56. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 56 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 57. COMPILING ACME+ ARCHITECTURES ACME+:  ACME  - ACME-style properties  + fundep statements, along with their properties.  To generate ACME+ architectures:  We use ACME Studio to generate plain architecture,  Check its syntax, validate it using GUI,  Add fundep statements,  Run ACME+ compiler.  Output: a set of equations linking all attribute values, from source to sink, and sink values to system properties. 57
  • 58. COMPILING ACME+ ARCHITECTURES Available Functionalities,  Computer system level Properties from component/ connector level properties.  Produces explicit expression of system level Properties from component/ connector level properties.  For some system level Properties, identifies the component/ connector that causes the bottleneck with respect to that property. 58
  • 59. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 59 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 60. DEMO: AUTOMATED ARCHITECTURAL ANALYSIS Aegis Weapons System 60
  • 61. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 61 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 62. CONCLUSION: SUMMARY AND PROSPECTS Summary  Software qualities cannot be achieved simultaneously, and must be prioritized.  Software Architecture represent early design decisions that affect quality attributes of the final product.  Hence the architecture of a software product must be designed according to the selected quality attributes.  A proliferation of ADL, mostly during the nineties.  Contribution: an ACME extension and support tool that enable us to reason about quality attributes. 62
  • 63. CONCLUSION: SUMMARY AND PROSPECTS Prospects  Extend to non canonical architectures (cyclic topologies, concurrent processing),  Other Quality Attributes,  User Defined Quality Attributes,  Broaden the analysis of architectures, notably by means of the explicit expression of system level properties,  For more complex functional dependencies:  Replace equations with inequations,  Replace equation resolution with optimization. 63
  • 64. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 64 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References
  • 65. REFERENCES  Lamia Labed Jilani, Imen Derbel, Khaled Bsaies, Hamdi Nasreddine, Ali Mili. Reasoning About Quantitative Architectural Attributes (Invited Paper). Journal of Software (4): 574-583 (2011) http://web.njit.edu/~mili/jsw.pdf  Imen Derbel, Lamia Labed Jilani, Ali Mili: A model for analyzing architectural attributes. AICCSA 2010: 1-7. http://web.njit.edu/~mili/compiling.pdf 65
  • 66. PLAN • Software Quality Attributes • Software Architectures and Architectural Styles • Requirements for An Architectural Description Language • ACME and ACME+ • An Attribute Grammar for ACME+ • Compiling ACME+ Architectures 66 • Demo: Automated Architectural Analysis • Conclusion: Summary and Prospects • References