The document provides an introduction to software architecture concepts including:
- Software architecture is defined as a set of components and connectors communicating through interfaces along with architecture design decisions.
- Multiple views are used to describe architectures including logical, process, deployment, and more.
- Architectural styles like pipe-and-filter and layered styles guide architecture design.
- Careful architecture design is important as it impacts system properties like performance, scalability, and testability.
This is an introductory lecture to Software Architecture, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
My take on the difference between software architecture and software design. Also highlights similarities between ISO/IEC/IEEE 42010-2011 (Systems and software engineering —Architecture description) and IEEE STD 1016-2009 (Systems Design — Software Design Descriptions)
This is an introductory lecture to Software Architecture Design Decisions, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
This is an introductory lecture to Software Architecture, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
My take on the difference between software architecture and software design. Also highlights similarities between ISO/IEC/IEEE 42010-2011 (Systems and software engineering —Architecture description) and IEEE STD 1016-2009 (Systems Design — Software Design Descriptions)
This is an introductory lecture to Software Architecture Design Decisions, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
Software architecture and software design are two aspects of the same topic. Both are about how software is structured in order to perform its tasks. The term "software architecture" typically refers to the bigger structures of a software system, whereas "software design" typically refers to the smaller structures.
Basics of Software Architecture for .NET DevelopersDan Douglas
Understanding what Software Architecture is and the benefits of a good architecture along with the implicit requirements that go along with it. The presentation then goes into detail about how the .NET framework can be leveraged as part of a great architecture.
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
Ivano Malavolta.
Research Fellow at the Computer Science Department of the University of L'Aquila (Italy).
PhD thesis presentation, University of L'Aquila, March 2012.
The full PhD thesis is available here:
http:www.di.univaq.it/malavolta/files/IvanoMalavoltaPhDThesis.pdf
Software development is a very dynamic discipline, it can be very hype-driven at times. Technologies change all the time. For years, the pattern movement has successfully aimed at capturing the essence of what’s going on in the software development field in order to make sure wheels are not invented over and over again. Some patterns are very specialized, some are quite fundamental (such as the GoF patterns).
However, what are really the fundamentals of software development? Quicksort? Scheme? UML? What would you like all your developers in the team to really understand, what would you like to be the guiding principles of a curriculum of software engineering?
In this pattern language, I try to capture these principles. I will illustrate them with quite different, but usually contemporary and relevant technology examples. Some of the principles are implemented in languages, others in technologies, some in processes.
Title: The Role of the Software Architect
Speaker: Hayim Makabee, co-founder of the Israeli Chapter of the International Association of Software Architects (IASA)
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including:
- The four areas of expertise: Design, Domain, Technology and Methodology.
- The cooperation with stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Understanding the expected areas of expertise is essential for the architect to develop his/her professional skills.
Understanding how to cooperate with the diverse stakeholders is essential to improve the architect's impact and effectiveness.
Software architecture for developers by Simon BrownCodemotion
The agile and software craftsmanship movements are pushing up the quality of the software systems we build, but there’s more we can do because even a small amount of software architecture can prevent many of the problems that projects still face, particularly if the team seems to be more chaotic than they are self-organising. Successful software projects aren’t just about good code and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This session is about that bigger picture, software architecture, technical leadership and the balance with agility.
A presentation on layered software architecture that goes through logical layering and physical layering, the difference between those two and a practical example.
Simon Brown is coming to the UK to teach his Software Architecture for Developers Workshop in April, so we asked him if he could give a free talk on software architecture for our community. Simon agreed to give a talk exploring the question "Architecture, where do you start?".
Software Architecture and Design - An OverviewOliver Stadie
about “Software Architecture and Design”
what it is, what it isn’t
giving a basic idea about the terms
detailed comments and annotations for each slide can be found here: https://docs.google.com/presentation/d/1U8zNQ5YQ2562yQzotVQ5cLxsPKu44lD3_L9jdSPKk4g/edit?usp=sharing
Basics of Software Architecture for .NET DevelopersDan Douglas
Understanding what Software Architecture is and the benefits of a good architecture along with the implicit requirements that go along with it. The presentation then goes into detail about how the .NET framework can be leveraged as part of a great architecture.
Software Architecture by Reuse, Composition and Customization Ivano Malavolta
Ivano Malavolta.
Research Fellow at the Computer Science Department of the University of L'Aquila (Italy).
PhD thesis presentation, University of L'Aquila, March 2012.
The full PhD thesis is available here:
http:www.di.univaq.it/malavolta/files/IvanoMalavoltaPhDThesis.pdf
Software development is a very dynamic discipline, it can be very hype-driven at times. Technologies change all the time. For years, the pattern movement has successfully aimed at capturing the essence of what’s going on in the software development field in order to make sure wheels are not invented over and over again. Some patterns are very specialized, some are quite fundamental (such as the GoF patterns).
However, what are really the fundamentals of software development? Quicksort? Scheme? UML? What would you like all your developers in the team to really understand, what would you like to be the guiding principles of a curriculum of software engineering?
In this pattern language, I try to capture these principles. I will illustrate them with quite different, but usually contemporary and relevant technology examples. Some of the principles are implemented in languages, others in technologies, some in processes.
Title: The Role of the Software Architect
Speaker: Hayim Makabee, co-founder of the Israeli Chapter of the International Association of Software Architects (IASA)
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including:
- The four areas of expertise: Design, Domain, Technology and Methodology.
- The cooperation with stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Understanding the expected areas of expertise is essential for the architect to develop his/her professional skills.
Understanding how to cooperate with the diverse stakeholders is essential to improve the architect's impact and effectiveness.
Software architecture for developers by Simon BrownCodemotion
The agile and software craftsmanship movements are pushing up the quality of the software systems we build, but there’s more we can do because even a small amount of software architecture can prevent many of the problems that projects still face, particularly if the team seems to be more chaotic than they are self-organising. Successful software projects aren’t just about good code and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This session is about that bigger picture, software architecture, technical leadership and the balance with agility.
A presentation on layered software architecture that goes through logical layering and physical layering, the difference between those two and a practical example.
Simon Brown is coming to the UK to teach his Software Architecture for Developers Workshop in April, so we asked him if he could give a free talk on software architecture for our community. Simon agreed to give a talk exploring the question "Architecture, where do you start?".
Software Architecture and Design - An OverviewOliver Stadie
about “Software Architecture and Design”
what it is, what it isn’t
giving a basic idea about the terms
detailed comments and annotations for each slide can be found here: https://docs.google.com/presentation/d/1U8zNQ5YQ2562yQzotVQ5cLxsPKu44lD3_L9jdSPKk4g/edit?usp=sharing
Using cyclomatic complexity to measure code complexityJane Chung
To make sure your code is maintainable and programmer-friendly, you should use CCN to analyze your code complexity.
--
Brought to you by Skygear.io -- an open source development kit for mobile, web & IoT apps.
Find us on Twitter @Oursky
These is the slide deck I used during my talk at Software Architect about how using architecture in order to create maintainable, secure and fast mobile applications.
An introduction to requirements engineering for students with no previous background in this area. Part of critical systems engineering course, CS 5032.
Function Point Analysis & Cocomo. Two main estimation methods for structured and object oriented methodology estimations. Cocomo is widely used in estimating where Rational Unified Process is followed.
Software Architecture: Introduction to the AbstractionHenry Muccini
The Software Architecture is the earliest model of the whole software system created along the software lifecycle
A Software Architecture can be designed along four perspectives:
- as A set of components and connectors communicating through interfaces
- as A set of architecture design decisions
- with Focus on set of views and viewpoints
- Written according to architectural styles
Software Architecture: Introduction to the abstraction (May 2014_Split)Henry Muccini
This is an introductory presentation on Software Architecture that I made at the University of Split, in Croatia.
It shows what does it mean abstraction and why it is so important.
Advanced Software Engineering Course, University of L'Aquila
This lecture explains a generic Architecting process to be followed when designing a software system. It also links the architecting process with agibility.
These slides present the needs, challenges, and opportunities in architecture description languages. They have been presented at the Empirical Software Engineering unit, at the University of Bolzano.
The presentation starts with an introduction to software architecture, then presents some challenges and opportunities in architecture description languages.
Tool-Driven Technology Transfer in Software EngineeringHeiko Koziolek
This talk presentst the tool-driven technology transfer process ABB Corporate Research applies in selected software engineering University collaborations. As an example, we have created an add-in to a popular UML tool and developed the tooling in close interaction with the target users. Centering the technology transfer around tool implementations brings many benefits such as the need to make conceptual contributions applicable and the ability to quickly benefit from the new concepts. A challenge to this form of technology transfer is the long-term commitment to the maintenance of the tooling, which we try to address by creating an open developer community. Tool-driven technology transfer projects have proven to be valuable a instrument of bringing advanced software engineering technologies into our organization.
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
1
Lesson 5.3
UML Deployment Diagrams
Lesson 5.2
Distributed Systems Architecture (DSA) for Deployment
Lesson 5.1
Basic Vocabulary of the Deployment View
1
2
3
4
5
Learning Module Table of Contents
Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.
Lesson 5.4 (time permitting)
Using Deployment Diagrams to Illustrate the Development View
1
2
Lesson 5.3
UML Deployment Diagrams
Lesson 5.2
Distributed Systems Architecture (DSA) for Deployment
Lesson 5.1
Basic Vocabulary of the Deployment View
1
2
3
4
5
Let’s get started with the first lesson of the module
Reference
Rozanski, N. and Woods, E. (2012) Software systems architecture (2nd Edition). Chapters 21 and 20.
Lesson 5.4
Using Deployment Diagrams to Illustrate the Development View
2
System Architecture Views (using the ISO/IEC 42010 standard)
3
REF: ISO Software Architecture Standard as described by Rozanski and Woods
CONTEXT Views
FUNCTIONAL View
DATA View
TIMING View
DEVELOPMENT View
DELPOYMENT View
(we are here)
OPERATIONAL View
Not a new idea in systems design
Other architectural standards
Kruchten’s 4 + 1 architecture (IBM)
IEEE Standard 1471 that is the basis for your textbook
Zachman’s Framework for Information Systems Architecture
3
4
The Deployment View focuses on how hardware and software elements of your new system will be distributed or assigned across a network.
The deployment view includes both technical and non–technical
sub-views.
The deployment view shows how various implementation components will be distributed to specific ”nodes” on the network.
The deployment view shows the communication lines (wired and wireless) between processing nodes
What is the Deployment View of a System’s Design?
Overview of the Deployment ViewCharacteristics ExplanationDefinitionDescribes the processing and storage environment of your IT system/solution, and the potential points of failure for which you may need a service disruption and business continuity plan.ConcernsAll hardware, software, and storage nodes required for your system
Commercial (third party components) that must be purchased
Software components that must be built and where each will be executed (run-time environment)
Data storage components, capacity, and recovery
Network requirements and capacities
Points of failureArchitectural DescriptionsRun-time models
Network models
Technology dependency ModelsPossible ProblemsUnclear or inaccurate dependencies between required nodes in the network
Unproven technology choices, or obsolete technology choices
Missing or poorly developed service level agreements with user community
Lack of necessary technical knowledge or expertise
Deployment becoming an after thought – compromising design and construction already completed
Poor or no capacity planning analysis
No service disruption business continuity plan, or disaster recovery plan and environment
5
REF: Adapted from Rozanski and Woods (2012)
...
TMPA-2017: Stemming Architectural Decay in Software SystemsIosif Itkin
TMPA-2017: Tools and Methods of Program Analysis
3-4 March, 2017, Hotel Holiday Inn Moscow Vinogradovo, Moscow
Stemming Architectural Decay in Software Systems
Nenad Medvidovic (Professor, USA University of Southern California, ACM SIGSOFT Executive Committee Chair)
For video follow the link: https://youtu.be/D7ZVSifyJoA
Would like to know more?
Visit our website:
www.tmpaconf.org
www.exactprosystems.com/events/tmpa
Follow us:
https://www.linkedin.com/company/exactpro-systems-llc?trk=biz-companies-cym
https://twitter.com/exactpro
Similar to Software Architecture: introduction to the abstraction (20)
These slides have been presented at the ICSE 2020 conference, SEIS (software engineering in society) track. It reports on our experience within the Uffizi Project, and how we had to take into account human behaiour to design our IoT-based solution.
How cultural heritage, cyber-physical spaces, and software engineering can wo...Henry Muccini
This is a seminar provided to a PhD school on Cultural Heritage Conservation and Valorization.
The focus has been on the interdisciplinarity among cultural heritage, cyber-physical spaces, and software engineering.
Turismo 4.0: l'ICT a supporto del turismo sostenibileHenry Muccini
The importance of sustainable tourism is today very clear, as also highlighted by some national and international organizations. This presentation highlights the role of ICT in the context of sustainable tourism. Some ongoing projects are presented as well.
Sustainable Tourism - IoT and crowd managementHenry Muccini
What is Sustainable Tourism and how IoT may help to reduce crowd management. This material reports on our experience within the Uffizi Galleries project and the CAPS IoT modeling and simulation framework.
Software Engineering at the age of the Internet of ThingsHenry Muccini
This is an overview on Sw Engineering the IoT, created for the FOI, Faculty of Organization and Informatics of the University of Zagreb, and presented during their International Days.
The influence of Group Decision Making on Architecture Design DecisionsHenry Muccini
Group Decision Making influcencs Architecture Design Decisions. This presentation, given as a keynote at the MARCH 2019 workshop (https://is.ieis.tue.nl/research/bpm/MARCH/index.php/keynote/), tries to identifies GDM factors that influence architecture design decisions.
Web Engineering L8: User-centered Design (8/8)Henry Muccini
This lecture focusses on User-centered Design (UCD). It covers the "The Elements of User Experience" book by Garrett.
The topics covered are:
- the UCD process
- Personas
- Scope
- Information Architecture
- Sitemaps
- Wireframes
- Prototypes
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications. The list is availabe at https://trello.com/b/z49P8z3b
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Henry Muccini
This lecture covers Sequence diagrams and Design decision models. It covers:
- sequence diagrams in UML 2.x
- the QOC model for design decisions
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications. They are listed at https://trello.com/b/z49P8z3b
Web Engineering L6: Software Architecture for the Web (6/8)Henry Muccini
This lecture discusses Architectural aspects of Web engineering.
It covers:
- software architecture design
- software architecture for the web
- component model for software architecture description
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Web Engineering L5: Content Model (5/8)Henry Muccini
This lecture focusses on Content Design.
It presents the UWE approach for producing the:
- Conceptual Model
- Navigation Space Model
- Navigational Structure Model
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Web Engineering L3: Project Planning (3/8)Henry Muccini
This lecture focusses on project planning.
It focuses on:
- work breakdown
- project planning
- PERT
- Critical Path
- Project Tracking and Estimation
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Web Engineering L2: Requirements Elicitation for the Web (2/8)Henry Muccini
This lecture focusses on requirements elicitation.
It covers:
- Requirements discovery
- Requirements classification
- Requirements Prioritization
- Requirements Specifications
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Web Engineering L1: introduction to Web Engineering (1/8)Henry Muccini
This lecture makes an introduction to Web Engineering.
- Why web engineering
- Quality
- Issues to avoid
- Web architectures
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Web Engineering L4: Requirements and Planning in concrete (4/8)Henry Muccini
This lecture summarizes and extends L3, with a focus on:
- Critical Path
- Agile for Planning
- Convergence and divergence
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Collaborative aspects of Decision Making and its impact on SustainabilityHenry Muccini
In this talk I made an effort to link together sustainability, architecture design decision, and group decision making. Take a look and contact me for questions.
This presentation proposes CAPS, an architecture-driven
modeling framework for the development of Situational Aware
Cyber-Physical Systems.
Situational Awareness involves being aware of what is
happening in the surroundings, and using this information
to decide and act. It has been recognized as a critical,
yet often elusive, foundation for successful decision-making
in complex systems. With the advent of cyber-physical systems
(CPS), situational awareness is playing an increasingly
important role especially in crowd and fleets management,
infrastructure monitoring, and smart city applications. While
specializing cyber physical systems, Situational Aware CPS
requires the continuous monitoring of environmental conditions
and events with respect to time and space. New architectural
concerns arise, especially related to the sense , compute &
communication paradigm, the use of domain-specific hardware
components, and the cyber-physical space dimension.
This work illustrates the CAPS modeling languages used
to describe the software architecture, hardware configuration,
and physical space views for a situational aware CPS.
I progetti UnivAq-UFFIZI, INCIPICT, e CUSPISHenry Muccini
Alcuni progetti dell'Universita' degli Studi dell'Aquila volti al supporto dei beni culturali. Tale presentazione e' stata fornita nel contesto dell'evento Le Gallerie degli Uffizi incontrano UnivAq
Exploring the Temporal Aspects of Software ArchitectureHenry Muccini
The keynote lecture video is now available at http://www.icsoft.org/KeynoteSpeakers.aspx?y=2016
This presentation covers the main topics discussed by the software architecture conferences in the past 15+ years. It provides a systematic, unbiased view on research trends with reflections on the future challenges.
This speech has been provided as a keynote at ICSOFT 2016.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
Software Architecture: introduction to the abstraction
1. Software Architecture: Introduction to the abstraction
Henry Muccini
henry.muccini@univaq.it, @muccinihenry, henrymuccini.com
DISIM
Dep.nt of Information Engineering, Computer Science and Mathematics
University of L’Aquila, Italy
3. The material in these slides may be freely reproduced
and distributed, partially or totally, as far as an explicit
reference or acknowledge to the authors is preserved.
SEA Group
Henry Muccini
4. Software Architecture in Practice (3rd Edition) (SEI Series
in Software Engineering) Hardcover – October 5, 2012,
by Len Bass , Paul Clements, Rick Kazman
SEA Group
Chapters: 1, 2, 3, 4, 15, 17, 19, 25, 26
LinkedIn groups on Software Architecture
SATURN
https://www.linkedin.com/groups?home=&gid=153925
Software Engineering Productivity – Software Architecture
https://www.linkedin.com/groups?home=&gid=2967358
97 Things Every Software Architect Should Know
https://www.linkedin.com/groups?mostRecent=&gid=183565
7&trk=my_groups-tile-flipgrp
4
5. Research interests
on developing methods and tools for the
analysis and design of software architectures
SEA Group
→Architecture-driven Model-based Testing
→Model-checking Architectures
→Architecting Fault Tolerant Systems
→Interoperable and Multi-view Software Architecture
Descriptions
Other
→Global Software Engineering Education
→Architecting Wireless Sensor Network
→Model Driven Engineering
7. Process: Architecture as an artefact
SEA Group
Requirements
Drives
Software
Architecture
Implementation
Low Level Design
8. Process: Architecture towards the process
SEA Group
• The architecture includes a collection of views
Models
• The architecture is NOT a single fase in the software
development process
Views
Use Case
Model
Design
Model
Depl.
Model
Impl.
Model
Test
Model
Analysis
Model
10. The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
A set of components and connectors
communicating through interfaces
A set of architecture design decisions
Focus on set of views and viewpoints
Written according to architectural styles
SEA Group
11. Software Architecture definitions
Perry and Wolf, ’92 (aspects):
→“Architecture is concerned with the selection of architectural elements,
their interactions, and the constraints on those elements and their
interactions necessary to provide a framework in which to satisfy the
requirements and serve as a basis for the design.”
→Elements are divided into processing elements, data elements and
connection elements
Garlan and Shaw, ’93 (elements):
→ Architecture for a specific system may be captured as “a collection of
computational components - or simply components - together with a
description of the interactions between these components - the connectors
–”
SEA Group
12. 12
Let us reason about the
Gaudi’s Sagrada Familia
SEA Group
15. Development
Environment
SEA Group
Plugin
Java
Development
Tools
SWT
JFace
Core
Workspace
Workbench
Runtime
User Interface
16. SEA Group
standard
standard
standard
standard
standard
p
r
o
c
e
s
s
laws
17. Privacy e confidentiality
Autenticity
Need of Standards
Shared Process Management
Scalability
Docs digitalization
SEA Group
18. SEA Group
Architectural constraints
and requirements
Ideas
Constraints
Req1:..
Req2:..
Req3:..
………
Architectural
requirements
C2
C3
C1
C4
Software
Architecture
Software
Architecture
synthesis
Evaluation and
Decisions making
19. But which Architecture?
Implications on privacy, confidentiality, performance,
SEA Group
scalability, maintainability, etc.
20. But which Architecture?
Implications on privacy, confidentiality, performance,
SEA Group
scalability, maintainability, etc.
21. The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
A set of components and connectors communicating
through interfaces
A set of architecture design decisions
Focus on set of views and viewpoints
Written according to architectural styles
22. Architecture Design Decisions
Decisions about:
SEA Group
Selected components/interfaces/connectors
Distribution/Configuration of
components/connectors
Expected behavior
SA Styles, Patterns and Tactics
HW/SW/Deployment and other views
Components’ Nesting and sub-systems
NF attributes
23. 23
Architecture as a set of design decisions
A set of architecture design decisions taken to generate
SEA Group
the architecture artifact
Design
problem
sub-problem
(or issue)
sub-problem
(or issue)
Design
option
Design
option
Design
option
Design
option
Problem space
Solution
space
Alternative
solutions
Alternative
solutions
Decision =
best option
Decision =
best option
Best, with respect
to some criterion
Jansen, A.; Bosch, J., "Software Architecture as a Set of Architectural Design
Decisions," Software Architecture, 2005. WICSA 2005. 5th Working IEEE/IFIP
Conference on , vol., no., pp.109,120, 2005. doi: 10.1109/WICSA.2005.61
26. At which abstraction?
Implications on privacy, confidentiality, performance,
SEA Group
scalability, maintainability, etc.
27. SEA Group ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural
Description, 2011
“The practices of recording
software, system and
enterprise architectures so
that architectures can be
understood, documented,
analysed and realized.”
28. and, which is the right architecture!?!
28
SEA Group
29. the right architecture…
29
The one that satisfies at best the
requirements and constraints
The “less” risky one
SEA Group
Architectural constraints
and requirements
Ideas
Constraints
Req1:..
Req2:..
Req3:..
………
Architectural
requirements
C2
C3
C1
C4
Software
Architecture
Software
Architecture
synthesis
Evaluation and
Decisions making
30. The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
A set of components and connectors communicating
through interfaces
A set of architecture design decisions
Focus on set of views and viewpoints
Written according to architectural styles
33. SEA Group ISO/IEC/IEEE 42010 - International Standard for Systems and Software Engineering – Architectural
Description, 2011
34. SEA Group
Logical
View
Object
Model of
Design
End-user
Functionality
Implementation (Development)
View
Programmers
Software management
Process
View
Use Case
View
System integrators
Performance
Scalability
Throughput
Deployment View
Conceptual Physical
Static
Organization of
the Software
Concurrency
and
Synchronizati
on
Software
Mapping To
Hw
System
engineering
System topology
Delivery,
installation
Communication
RUP 4+1 views
35. Using multiple views has become standard
practice in industry
SEA Group
• IEEE Std 1471 (2000) -> … -> ISO/IEC/IEEE 42010 (2011)
• Based on a survey we conducted with 48 practitioners
[Survey2012], and about the usage of ALs in industry
85% uses multiple views
[Survey2012] “What Industry needs from Architectural Languages: A Survey”, I. Malavolta, P. Lago, H.
Muccini, P. Pelliccione, A. Tang (under review)
36. The Software Architecture is the
earliest model of the whole software
system created along the software
lifecycle
A set of components and connectors communicating
through interfaces
A set of architecture design decisions
Focus on set of views and viewpoints
Written according to architectural styles
39. Why to care?
All the software systems have an architecture
SEA Group
All the critical/complex systems must have it carefully and
explicitly specified
Architecture-level decisions impact the scalability,
performance, testability, functioning of the produced
system
Even if the code is perfectly written, a wrong
architecture produces a wrong system
40. Why to care?
A wrong architecture produces a wrong system
SEA Group
Electronic Voting Systems
Bad architecting of FT software:
Tens of thousands of people around the large cities weren’t able to travel by
train Thursday morning. No trains from and to Amsterdam and Airport
Schiphol from early morning until after the morning rush hour. A failure in
the back-up system was the cause. The system therefore didn’t start. And
then the signals and switches could not be operated. Both primary and
backup failed, hence no operations. (april 2012)
the Interim Report on Causes of the August 14th 2003 Blackout in the US
and Canada clearly shows that the problem was mostly caused by badly
designed fault tolerance, including various architectural issues: poor
diagnostics of component failures, longer-than-estimated time for
component recovery, failure to involve all necessary components in
recovery, inconsistent system state after recovery, failures of alarm
systems. (2003)
Denver Airport
41. Why to care?
The Best Jobs of
2014
“For the first time, our
No. 1 job overall isn’t
from the health care
industry, it’s a tech
job.”
[http://goo.gl/WdxMjh]
SEA Group
43. Perry, D. E.; Wolf, A. L. (1992). "Foundations for the study of software
architecture". ACM SIGSOFT Software Engineering Notes 17 (4):
40.doi:10.1145/141874.141884.
Garlan & Shaw (1994). "An Introduction to Software Architecture".
Retrieved 2012-09-13.
ISO/IEC/IEEE (2011). "ISO/IEC/IEEE 42010:2011 Systems and software
engineering -- Architecture description". Retrieved 2012-09-12.
Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1”
View Model of Software Architecture. IEEE Software 12 (6), pp. 42-50.
Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice,
Third Edition. Addison Wesley, 2012, ISBN 0-321-81573-4 (This book, now in
third edition, eloquently covers the fundamental concepts of the discipline.
The theme is centered around achieving quality attributes of a system.)
43
SEA Group