SlideShare uma empresa Scribd logo
1 de 61
Agile Software Architecture Course 2017-1
Slinger Jansen
Sjaak Brinkkemper
Jan Vlietland
Garm Lucassen
NISI
• Course is part of the Netherlands Institute for theSoftware
Industry
• NISI is a spin-off of Utrecht University
• Mission: “make (scientific) knowledge useful for practice, to
advance the software industry, by means of courses and
consultancy”
• With the results we fund new scientific research
NISI Core Team
Course Team
• Prof. dr. Sjaak Brinkkemper, Utrecht University
• Dr. Jan Martijn van der Werf, Utrecht University
• Dr. Slinger Jansen, Utrecht University
• Drs. Michiel Overeem, Senior Architect, AFAS Software
• Drs. Martijn Cox, Senior Architect, ARS
• Dr. Jan Vlietland, Director, NISI
• Drs. Garm Lucassen, PhD Student, lecturer
Who am I?
Dr. Slinger Jansen, assistant professor, Utrecht
University, the Netherlands
Author of several books
Acquired funding in excess of 2mln euro
Software ecosystems “expert”
Goal of the Course
• Promoting thinking from junior architects to senior architects
through
– State of the Art education resources
– Practical cases (AFAS, Netflix, Chrome, etc.)
– Discussion of current architecture
– Exchange of experiences and ideas
Program: Session 1
Agile Architecture
• Management decisions
• Software product management and architecture
• Agility in Architecture Design
• Runtime monitoring
• Collaboration in Architecture Design
• Homework: send 2 slides introducing yourself to
slinger.jansen@uu.nl
Program: Session 2
Architecture as a Platform for Decision Making
• Making decisions in architecture
• Traceability of decisions
• Decision documentation
• Architecture erosion
• Architecture “smells”
• Homework: Describe three decisions made about your
architecture in three slides.
– One decision that is obvious and adopted well
– One decision that needs to be explained repeatedly
– One decision that is being ignored
Program Session 3:
Architecture Perspectives, Styles, and Patterns
• Modelling architecture
• Documenting architecture
• Web architectures
• Simulating architecture
• Green Software
• Homework: Send three slides to slinger.jansen@uu.nl
describing how your software could be greener.
Program Session 4:
Quality Attributes
• ISO-standard 9001
• Evaluation of quality attributes
• Safety, privacy, and security
• Architecture evaluation and the TIOBE index
• Architecture evaluation methods
• Homework: What are the issues you encounter regarding
privacy, safety, and security? Max 5 slides.
Program Session 5:
Feedback and Monitoring in Architecture
• Monitoring as architecture aspect
• Mechanisms for Feedback
• Who watches the watchmen?
• Distributed systems and Microservices
• Performance engineering
• Read the supplied architecture document. Suggest 3 possible
improvements in an email to slinger.jansen@uu.nl to the
architecture. Max 2A4.
Program Session 6:
Architecture Evolution
• Evolvability of an Architecture
• From technical debt to technical surplus
• Transitioning to Cloud
• Internet of Things Architectures
• Homework: How could parts of your architecture be
transitioned to the cloud? Explain in 3-5 slides and send to
slinger.jansen@uu.nl.
Program Session 7:
Evaluation in Practice
• How to evaluate an architecture in practice?
– Case: Chrome
– Case: Netflix
• Homework: Present your own architecture.
Program Session 8:
Evaluation in Practice II
• Evaluate each other’s architectures
• Exam
• Diploma ceremony
Preparing questions
• What is your role?
• Software development, software architecture (support) or a
business role?
• How many years of experience do you have with architecture?
• Which products are developed in your company / unit and for which
markets?
• How often would you like to release new product versions to the
market?
• How large is your company (and your unit)?
• What is your largest customer network and how big is your
network?
• Can you briefly describe the IT landscape?
Participants
Various roles:
• Senior Software Developer
• Junior software architect
• Senior software architect
• Technical software product manager
Participants
Average years of experience with architecture:
• None to little
• 1 year
• 2-5 years
• 5+ years
Participants
Product & Services:
• Consulting (1)
• Public Transport (2)
• Enterprise Resource Planning (4)
• Public sector (2)
• Finance (1)
• Health care (1)
Participants
Company size
• >1.000
• 100 – 1000
• 10 – 100
Participants
Used technology:
Participants Needs
• What is your biggest Architecture impediment?
• What do you hope to find in this course?
• As many needs as participants!
Today’s Program (Cont’d)
Agile Software Architecture
• What are management decisions in architecture?
• Software product management and architecture
• Agility in Architecture Design
• Openness in Architecture
• Collaboration in Architecture Design
ARCHITECTURE INTRODUCTION
Motivation for Architecture
• Software systems are rapidly and continuously growing in size and complexity
• Techniques and tools for developing and maintaining such systems typically play catch-up
• To deal with this problem, many approaches exploit abstraction
– Ignore all but the details of the system most relevant to a task (e.g., developing the user interface
or system-level testing)
– This greatly simplifies the model of the system
– Apply techniques and tools on the simplified model
– Incrementally reintroduce information to complete the “picture”
• Software architecture is such an approach
– Applicable to the task of software design
What is Architecture?
• A high-level model of a thing
– Describes critical aspects of the thing
– Understandable to many stakeholders
• architects, engineers, workers, managers, customers
– Allows evaluation of the thing’s properties before it is built
– Provides well understood tools and techniques for constructing the thing
from its blueprint
• Which aspects of a software system are architecturally relevant?
• How should they be represented most effectively to enable
stakeholders to understand, reason, and communicate about a system
before it is built?
• What tools and techniques are useful for implementing an architecture
in a manner that preserves its properties?
The architecture of a packing robot control
system
Architecture: Our Definition
• An abstraction for a software part (system, program, package, class) that
focuses on uses, structure, issues, and risks
• Uses: How users (people and other software) interact with a part and how the
part responds
• Structure: The collection of parts and their interactions and dependencies
• Issues: Things that developers are concerned about, like complexity for a large
system, ease of use, robustness
• Risks: Potential for unwanted results, often related to performance, safety, and
financial and security threats
Intent
• When we develop software, we want our software to have an
architecture developed explicitly, not accidentally.
• Its purpose is to allow us to think critically about a product we are
developing before committing to code.
• For large systems an architecture may be represented by a, possibly
large, document.
• For smaller systems and programs it may be presented on a web page
or small collection of diagrams and notes, bound together in some form
of accessible container.
Architecture Level
• Systems:
– We usually think of an architecture as describing some large, distributed system.
• Packages:
– But packages also have architectures: uses, users, structure, and issues.
– Package structure relates to the package’s classes and how they interact.
• Classes
– Even a class has an architecture defined by its methods, data structures,
and how they interact.
The organization of the Model-View-Controller
Chapter 6 Architectural design 30
Web application architecture using the MVC
pattern
What Is Software Architecture?
• The architecture of a software system captures major features and design ideas for
a software development project.
• Describes relationship of users with the system
• Describes structure and organizing principles of the system
– Major partitions within the system and their interfaces
– Responsibilities of, and resources needed by, each partition
– Design concepts: data structures, algorithms, data flows that help developers understand
and implement their piece of the system
• Identifies major threads of execution
• Identifies critical timelines and risk areas
– A timeline is a time-based budget for critical threads.
– A risk area identifies objectives and requirements that will be difficult to meet under the
current architectural and design concept or susceptibility to threats.
Architectural Concerns
• Goals: Main objectives of the system
• Uses: How people and other software will interact with the system
• Tasks: Activities for a system and its major partitions
• Partitions: Subsystems, packages, and classes that make up the
system; responsibilities
• Interactions: The relationships and data flows between partitions, and
assumptions that partitions have about each other
• Events: Any occurrence that affects system activities
• Views: Appearance of the system to users and its designers
• Performance: Efficient use of computer resources—processor cycles,
network bandwidth, memory
The software architecture of an ATM system
Excerpt, slides deliberately left out
DECISION MAKING IN ARCHITECTURE
Architectural design
• An early stage of the system design process.
• Represents the link between specification and design
processes.
• Often carried out in parallel with some specification activities.
• It involves identifying major system components and their
communications.
Architectural abstraction
• Architecture in the small is concerned with the architecture of
individual programs. At this level, we are concerned with the
way that an individual program is decomposed into
components.
• Architecture in the large is concerned with the architecture of
complex enterprise systems that include other systems,
programs, and program components. These enterprise systems
are distributed over different computers, which may be owned
and managed by different companies.
Advantages of explicit architecture
• Stakeholder communication
– Architecture may be used as a focus of discussion by system
stakeholders.
• System analysis
– Means that analysis of whether the system can meet its non-
functional requirements is possible.
• Large-scale reuse
– The architecture may be reusable across a range of systems
– Product-line architectures may be developed.
The architecture of a language processing
system
Chapter 6 Architectural design 40
Architectural design decisions
• Architectural design is a creative process so the process differs
depending on the type of system being developed.
• However, a number of common decisions span all design
processes and these decisions affect the non-functional
characteristics of the system.
Architectural design decisions
• Is there a generic application architecture that can be used?
• How will the system be distributed?
• What architectural styles are appropriate?
• What approach will be used to structure the system?
• How will the system be decomposed into modules?
• What control strategy should be used?
• How will the architectural design be evaluated?
• How should the architecture be documented?
Architecture reuse
• Systems in the same domain often have similar architectures
that reflect domain concepts.
• Application product lines are built around a core architecture
with variants that satisfy particular customer requirements.
• The architecture of a system may be designed around one of
more architectural patterns or ‘styles’.
– These capture the essence of an architecture and can be instantiated
in different ways.
A repository architecture for an IDE
Overview
A framework for architectural knowledge management
(domain models, rule engine, and visualization components)
- Automatic annotation of architectural-significant elements
- Population & recommendation of architecture alternatives and software
solutions to realize architectural design decisions
- Extract architectural decisions (focus on technical decisions) from issue
management system
- Classify them as either structural, behavioral, or banned decisions
- Extract – who raised the concern, who took the decision and when was
the decision made from the issue management system (what is implicit)
- Build user profiles based on the above information
Use the AKM model, user model, and a set of simple heuristics to predict
the possible architectural decisions that will be taken by an architect
Architecture design decision model
170217 Manoj (© Florian Matthes, 2016)
46
• Existing work on ADD models do not consider user preferences, project
context, and heuristics to support the decision making process
• AIM
• Extract who took the decision, how long did it take to implement, complexity of tasks
involved based on source code changes
• Extract a decision makers’ preferences related to technologies and types of issues
handled to build user profiles.
• RESULT
• Combining user profiles with the ADD model should support the
recommendation of
• Who should be responsible to address a specific concern?
• What is the cost of addressing a specific concern?
Who did what, and when?
• Who did what and when?
• Use issue management system as the main input source
• Focus on a specific domain (e.g. analytics domain) and
system (e.g. component-based)
?
Example
• Sensitive case information…
OPENNESS IN PLATFORM ARCHITECTURES
Architecture Openness
• Architectural Openness Model
• Architectural Openness Factors
• Openness in Five Main Mobile Platforms
Results: Architectural Openness Model
Applications
Middleware
Kernel
Extended ApplicationsNative Applications
App 1 App 2 App 3 App N...
(Services, Libraries, Frameworks …)
(Device Drivers, Memory Management, Power Management, Security …)
App 1 App 2 App 3 App M...
51
Platform Architecture
Symbian Architecture Android Architecture
+
Platform Accessibility
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
Architecture (Cho and Jeon, 2007) iPhone Architecture
Results: Architectural Openness Factors
Layer Factor
Possibility
statuses
If possibleLicensing
statuses
Extended applications
Integrate extended
applications
Possible/
Possible for
some
components/
Not possible
Permission is not
needed/ In some
situation
permission is
needed/ Permission
is always needed
Extend extended applications
Modify extended applications
Native applications
Integrate native applications
Extend native applications
Modify extended applications
Middleware
Integrate middleware
Extend middleware
Modify middleware
Kernel
Integrate kernel
Extend kernel
Modify kernel
Results: Openness in Five Main Mobile Platforms
Android
Applications
Middleware
Kernel
Extended ApplicationsNative Applications
Home Contacts Phone Browser... App1 App2 App3 AppN...
Application Framework
Libraries Android Runtime
Activity
Manager
Windows
Manager
Content
ProvidersPackage
Manager
Telephony
Manager
Resource
Manager
View System
Location
Manager
Notification
Manager
Device Drivers (Display,
Camera, IPC, Flash
Memory, Audio, WiFi,
Keypad…)
Power
Management
Surface
Manager
Media
Framework
SQLite OpenGL | ES
FreeType WebKit SGL SSL
Core Libraries
Dalvik Virtual
Machine
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
Security
Memory
Management
...
Possible / Permission is not needed
Possible for some components / Permission is not needed
Possible / In some situation permission is needed
Possible for some components / In some situation permission is needed
Results: Openness in Five Main Mobile Platforms
iPhone
Applications
Middleware
Kernel (Core OS)
Extended ApplicationsNative Applications
App 1 App 2 App 3 App N...
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
Integrate
Extend
Modify
...
App 1 App 2 App 3 App M...
Core Services
Drivers Security Framework CFNetwork
Accessory
Framework
...
Address Book
Core Data
Framework
Core Location
Framework
SQLite
Core Foundation
Framework
...
In App Email
Map Kit
Framework
Address Book
UI Framework
UIKit
Framework
Apple Push
Notification Service
...
Cocoa Touch
Graphics Framework Audio Framework Video Framework
Media
Possible / Permission is always needed
Possible for some components / Permission is always needed
Not possible
Comparison
Factor Android Symbian Windows Mobile Blackberry iPhone
P L P L P L P L P L
Integrate extended
applications
Extend extended
applications
Modify extended
applications
Integrate native
applications
Extend native
applications
Modify native
applications
Integrate
middleware
Extend middleware
Modify middleware
Integrate kernel
Extend kernel
Modify kernel
P - Possibility: Possible (Green), Possible for Some Components (Yellow), Not Possible (Red)
L - Licensing: Permission is Not Needed(Green), In some cases permission is needed(Yellow),
Permission is Always Needed(R), N/A(Gray)
Conclusions
• Proposed architectural openness model shows how
the openness strategies of mobile platform suppliers
affect the software architecture of the platforms
• Proposed architectural openness factors shows how
open the mobile software platforms are
• Based on the model and the factors, the openness
degree of five main mobile platforms is identified
• Qualitative interviews validate the previous conclusion
• Interviews show application developers don’t care
about architectural openness of their favorite
platforms
• Interview with Some Device Manufacturers, and
Mobile Suppliers is recommended
Discussion: How could Android be more open?
Group discussion: How open is eSDK? EMUI?
Excerpt, slides deliberately left out
Course website
http://nisi.nl/cursussen/agilesoftwarearchitecture
You will receive the slides by mail or via the website
Information
For more information about the course you can contact
• Slinger Jansen
• S.jansen@nisi.nl
• 06 – 19884880
Don’t forget to submit your homework!
www.nisi.nl
info@nisi.nl
+31(0)30 - 268 5398
Copyright © 2017 Netherlands Institute for the Software Industry (NISI) and Utrecht University

Mais conteúdo relacionado

Mais procurados

Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...New Relic
 
Meeting Strict Documentation Requirements in Agile
Meeting Strict Documentation Requirements in AgileMeeting Strict Documentation Requirements in Agile
Meeting Strict Documentation Requirements in AgileTechWell
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOASteven Davelaar
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software ArchitectureChris F Carroll
 
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...Amazon Web Services
 
SharePoint Migration-What you need to know
SharePoint Migration-What you need to knowSharePoint Migration-What you need to know
SharePoint Migration-What you need to knowOliver Wirkus
 
Develop an Enterprise-wide Cloud Adoption Strategy – Chris Merrigan
Develop an Enterprise-wide Cloud Adoption Strategy – Chris MerriganDevelop an Enterprise-wide Cloud Adoption Strategy – Chris Merrigan
Develop an Enterprise-wide Cloud Adoption Strategy – Chris MerriganAmazon Web Services
 
How Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysHow Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysDevOps.com
 
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate Value
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate ValueIt’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate Value
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate ValueScout RFP
 
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterA Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterAtlassian
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise appsSumit Sarkar
 
Denver ACE October 21st 2020
Denver ACE October 21st 2020Denver ACE October 21st 2020
Denver ACE October 21st 2020denveraug
 
Machine Learning applications in accessibility
Machine Learning applications in accessibilityMachine Learning applications in accessibility
Machine Learning applications in accessibilityData Con LA
 
Atlassian Jira Brochure
Atlassian Jira BrochureAtlassian Jira Brochure
Atlassian Jira BrochureEllen Feaheny
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
Igniting Audience Measurement at Time Warner Cable
Igniting Audience Measurement at Time Warner CableIgniting Audience Measurement at Time Warner Cable
Igniting Audience Measurement at Time Warner CableTim Case
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsKelly Goetsch
 
How to Achieve Data in Motion Expertise | Mario Sanchez, Confluent
How to Achieve Data in Motion Expertise | Mario Sanchez, ConfluentHow to Achieve Data in Motion Expertise | Mario Sanchez, Confluent
How to Achieve Data in Motion Expertise | Mario Sanchez, ConfluentHostedbyConfluent
 
Azure App Modernization
Azure App ModernizationAzure App Modernization
Azure App ModernizationPhi Huynh
 

Mais procurados (19)

Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
Airbnb, From Monolith to Microservices: How to Scale Your Architecture, Futur...
 
Meeting Strict Documentation Requirements in Agile
Meeting Strict Documentation Requirements in AgileMeeting Strict Documentation Requirements in Agile
Meeting Strict Documentation Requirements in Agile
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...
Cloud Native, Cloud First and Hybrid: How Different Organizations are Approac...
 
SharePoint Migration-What you need to know
SharePoint Migration-What you need to knowSharePoint Migration-What you need to know
SharePoint Migration-What you need to know
 
Develop an Enterprise-wide Cloud Adoption Strategy – Chris Merrigan
Develop an Enterprise-wide Cloud Adoption Strategy – Chris MerriganDevelop an Enterprise-wide Cloud Adoption Strategy – Chris Merrigan
Develop an Enterprise-wide Cloud Adoption Strategy – Chris Merrigan
 
How Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 DaysHow Uber Reduced AWS Costs 15% in 30 Days
How Uber Reduced AWS Costs 15% in 30 Days
 
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate Value
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate ValueIt’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate Value
It’s All About Adoption: How Gilead Sciences Forged a Path to Accelerate Value
 
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data CenterA Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
A Journey to Enterprise Agility: Migrating 15 Atlassian Instances to Data Center
 
What serverless means for enterprise apps
What serverless means for enterprise appsWhat serverless means for enterprise apps
What serverless means for enterprise apps
 
Denver ACE October 21st 2020
Denver ACE October 21st 2020Denver ACE October 21st 2020
Denver ACE October 21st 2020
 
Machine Learning applications in accessibility
Machine Learning applications in accessibilityMachine Learning applications in accessibility
Machine Learning applications in accessibility
 
Atlassian Jira Brochure
Atlassian Jira BrochureAtlassian Jira Brochure
Atlassian Jira Brochure
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Igniting Audience Measurement at Time Warner Cable
Igniting Audience Measurement at Time Warner CableIgniting Audience Measurement at Time Warner Cable
Igniting Audience Measurement at Time Warner Cable
 
Oracle: Building Cloud Native Applications
Oracle: Building Cloud Native ApplicationsOracle: Building Cloud Native Applications
Oracle: Building Cloud Native Applications
 
How to Achieve Data in Motion Expertise | Mario Sanchez, Confluent
How to Achieve Data in Motion Expertise | Mario Sanchez, ConfluentHow to Achieve Data in Motion Expertise | Mario Sanchez, Confluent
How to Achieve Data in Motion Expertise | Mario Sanchez, Confluent
 
Azure App Modernization
Azure App ModernizationAzure App Modernization
Azure App Modernization
 

Semelhante a NISI Agile Software Architecture Slide Deck

Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureMaikel Meeuwse
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Week-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdfWeek-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdfssuserc3fe80
 
Road to rockstar system analyst
Road to rockstar system analystRoad to rockstar system analyst
Road to rockstar system analystMizno Kruge
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii yearPreeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii yearPreeti Mishra
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...GaytriMate
 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplifiedPrasad Chitta
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applicationsPriyanka Lal
 
Kendall7e ch01
Kendall7e ch01Kendall7e ch01
Kendall7e ch01sayAAhmad
 
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01Analisis dan Perancangan Sistem - 1 - Kendall7e ch01
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01Ullum Pratiwi
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 

Semelhante a NISI Agile Software Architecture Slide Deck (20)

Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software Architecture
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Week-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdfWeek-2_LectureA1_701.pdf
Week-2_LectureA1_701.pdf
 
Road to rockstar system analyst
Road to rockstar system analystRoad to rockstar system analyst
Road to rockstar system analyst
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
 
SDLC 21.11.2022.pdf
SDLC 21.11.2022.pdfSDLC 21.11.2022.pdf
SDLC 21.11.2022.pdf
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Software architecture simplified
Software architecture simplifiedSoftware architecture simplified
Software architecture simplified
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Software design for scientific applications
Software design for scientific applicationsSoftware design for scientific applications
Software design for scientific applications
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Kendall7e ch01
Kendall7e ch01Kendall7e ch01
Kendall7e ch01
 
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01Analisis dan Perancangan Sistem - 1 - Kendall7e ch01
Analisis dan Perancangan Sistem - 1 - Kendall7e ch01
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 

Último

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 

Último (20)

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 

NISI Agile Software Architecture Slide Deck

  • 1. Agile Software Architecture Course 2017-1 Slinger Jansen Sjaak Brinkkemper Jan Vlietland Garm Lucassen
  • 2. NISI • Course is part of the Netherlands Institute for theSoftware Industry • NISI is a spin-off of Utrecht University • Mission: “make (scientific) knowledge useful for practice, to advance the software industry, by means of courses and consultancy” • With the results we fund new scientific research
  • 4. Course Team • Prof. dr. Sjaak Brinkkemper, Utrecht University • Dr. Jan Martijn van der Werf, Utrecht University • Dr. Slinger Jansen, Utrecht University • Drs. Michiel Overeem, Senior Architect, AFAS Software • Drs. Martijn Cox, Senior Architect, ARS • Dr. Jan Vlietland, Director, NISI • Drs. Garm Lucassen, PhD Student, lecturer
  • 5. Who am I? Dr. Slinger Jansen, assistant professor, Utrecht University, the Netherlands Author of several books Acquired funding in excess of 2mln euro Software ecosystems “expert”
  • 6. Goal of the Course • Promoting thinking from junior architects to senior architects through – State of the Art education resources – Practical cases (AFAS, Netflix, Chrome, etc.) – Discussion of current architecture – Exchange of experiences and ideas
  • 7. Program: Session 1 Agile Architecture • Management decisions • Software product management and architecture • Agility in Architecture Design • Runtime monitoring • Collaboration in Architecture Design • Homework: send 2 slides introducing yourself to slinger.jansen@uu.nl
  • 8. Program: Session 2 Architecture as a Platform for Decision Making • Making decisions in architecture • Traceability of decisions • Decision documentation • Architecture erosion • Architecture “smells” • Homework: Describe three decisions made about your architecture in three slides. – One decision that is obvious and adopted well – One decision that needs to be explained repeatedly – One decision that is being ignored
  • 9. Program Session 3: Architecture Perspectives, Styles, and Patterns • Modelling architecture • Documenting architecture • Web architectures • Simulating architecture • Green Software • Homework: Send three slides to slinger.jansen@uu.nl describing how your software could be greener.
  • 10. Program Session 4: Quality Attributes • ISO-standard 9001 • Evaluation of quality attributes • Safety, privacy, and security • Architecture evaluation and the TIOBE index • Architecture evaluation methods • Homework: What are the issues you encounter regarding privacy, safety, and security? Max 5 slides.
  • 11. Program Session 5: Feedback and Monitoring in Architecture • Monitoring as architecture aspect • Mechanisms for Feedback • Who watches the watchmen? • Distributed systems and Microservices • Performance engineering • Read the supplied architecture document. Suggest 3 possible improvements in an email to slinger.jansen@uu.nl to the architecture. Max 2A4.
  • 12. Program Session 6: Architecture Evolution • Evolvability of an Architecture • From technical debt to technical surplus • Transitioning to Cloud • Internet of Things Architectures • Homework: How could parts of your architecture be transitioned to the cloud? Explain in 3-5 slides and send to slinger.jansen@uu.nl.
  • 13. Program Session 7: Evaluation in Practice • How to evaluate an architecture in practice? – Case: Chrome – Case: Netflix • Homework: Present your own architecture.
  • 14. Program Session 8: Evaluation in Practice II • Evaluate each other’s architectures • Exam • Diploma ceremony
  • 15. Preparing questions • What is your role? • Software development, software architecture (support) or a business role? • How many years of experience do you have with architecture? • Which products are developed in your company / unit and for which markets? • How often would you like to release new product versions to the market? • How large is your company (and your unit)? • What is your largest customer network and how big is your network? • Can you briefly describe the IT landscape?
  • 16. Participants Various roles: • Senior Software Developer • Junior software architect • Senior software architect • Technical software product manager
  • 17. Participants Average years of experience with architecture: • None to little • 1 year • 2-5 years • 5+ years
  • 18. Participants Product & Services: • Consulting (1) • Public Transport (2) • Enterprise Resource Planning (4) • Public sector (2) • Finance (1) • Health care (1)
  • 19. Participants Company size • >1.000 • 100 – 1000 • 10 – 100
  • 21. Participants Needs • What is your biggest Architecture impediment? • What do you hope to find in this course? • As many needs as participants!
  • 22. Today’s Program (Cont’d) Agile Software Architecture • What are management decisions in architecture? • Software product management and architecture • Agility in Architecture Design • Openness in Architecture • Collaboration in Architecture Design
  • 24. Motivation for Architecture • Software systems are rapidly and continuously growing in size and complexity • Techniques and tools for developing and maintaining such systems typically play catch-up • To deal with this problem, many approaches exploit abstraction – Ignore all but the details of the system most relevant to a task (e.g., developing the user interface or system-level testing) – This greatly simplifies the model of the system – Apply techniques and tools on the simplified model – Incrementally reintroduce information to complete the “picture” • Software architecture is such an approach – Applicable to the task of software design
  • 25. What is Architecture? • A high-level model of a thing – Describes critical aspects of the thing – Understandable to many stakeholders • architects, engineers, workers, managers, customers – Allows evaluation of the thing’s properties before it is built – Provides well understood tools and techniques for constructing the thing from its blueprint • Which aspects of a software system are architecturally relevant? • How should they be represented most effectively to enable stakeholders to understand, reason, and communicate about a system before it is built? • What tools and techniques are useful for implementing an architecture in a manner that preserves its properties?
  • 26. The architecture of a packing robot control system
  • 27. Architecture: Our Definition • An abstraction for a software part (system, program, package, class) that focuses on uses, structure, issues, and risks • Uses: How users (people and other software) interact with a part and how the part responds • Structure: The collection of parts and their interactions and dependencies • Issues: Things that developers are concerned about, like complexity for a large system, ease of use, robustness • Risks: Potential for unwanted results, often related to performance, safety, and financial and security threats
  • 28. Intent • When we develop software, we want our software to have an architecture developed explicitly, not accidentally. • Its purpose is to allow us to think critically about a product we are developing before committing to code. • For large systems an architecture may be represented by a, possibly large, document. • For smaller systems and programs it may be presented on a web page or small collection of diagrams and notes, bound together in some form of accessible container.
  • 29. Architecture Level • Systems: – We usually think of an architecture as describing some large, distributed system. • Packages: – But packages also have architectures: uses, users, structure, and issues. – Package structure relates to the package’s classes and how they interact. • Classes – Even a class has an architecture defined by its methods, data structures, and how they interact.
  • 30. The organization of the Model-View-Controller Chapter 6 Architectural design 30
  • 31. Web application architecture using the MVC pattern
  • 32. What Is Software Architecture? • The architecture of a software system captures major features and design ideas for a software development project. • Describes relationship of users with the system • Describes structure and organizing principles of the system – Major partitions within the system and their interfaces – Responsibilities of, and resources needed by, each partition – Design concepts: data structures, algorithms, data flows that help developers understand and implement their piece of the system • Identifies major threads of execution • Identifies critical timelines and risk areas – A timeline is a time-based budget for critical threads. – A risk area identifies objectives and requirements that will be difficult to meet under the current architectural and design concept or susceptibility to threats.
  • 33. Architectural Concerns • Goals: Main objectives of the system • Uses: How people and other software will interact with the system • Tasks: Activities for a system and its major partitions • Partitions: Subsystems, packages, and classes that make up the system; responsibilities • Interactions: The relationships and data flows between partitions, and assumptions that partitions have about each other • Events: Any occurrence that affects system activities • Views: Appearance of the system to users and its designers • Performance: Efficient use of computer resources—processor cycles, network bandwidth, memory
  • 34. The software architecture of an ATM system
  • 36. DECISION MAKING IN ARCHITECTURE
  • 37. Architectural design • An early stage of the system design process. • Represents the link between specification and design processes. • Often carried out in parallel with some specification activities. • It involves identifying major system components and their communications.
  • 38. Architectural abstraction • Architecture in the small is concerned with the architecture of individual programs. At this level, we are concerned with the way that an individual program is decomposed into components. • Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components. These enterprise systems are distributed over different computers, which may be owned and managed by different companies.
  • 39. Advantages of explicit architecture • Stakeholder communication – Architecture may be used as a focus of discussion by system stakeholders. • System analysis – Means that analysis of whether the system can meet its non- functional requirements is possible. • Large-scale reuse – The architecture may be reusable across a range of systems – Product-line architectures may be developed.
  • 40. The architecture of a language processing system Chapter 6 Architectural design 40
  • 41. Architectural design decisions • Architectural design is a creative process so the process differs depending on the type of system being developed. • However, a number of common decisions span all design processes and these decisions affect the non-functional characteristics of the system.
  • 42. Architectural design decisions • Is there a generic application architecture that can be used? • How will the system be distributed? • What architectural styles are appropriate? • What approach will be used to structure the system? • How will the system be decomposed into modules? • What control strategy should be used? • How will the architectural design be evaluated? • How should the architecture be documented?
  • 43. Architecture reuse • Systems in the same domain often have similar architectures that reflect domain concepts. • Application product lines are built around a core architecture with variants that satisfy particular customer requirements. • The architecture of a system may be designed around one of more architectural patterns or ‘styles’. – These capture the essence of an architecture and can be instantiated in different ways.
  • 45. Overview A framework for architectural knowledge management (domain models, rule engine, and visualization components) - Automatic annotation of architectural-significant elements - Population & recommendation of architecture alternatives and software solutions to realize architectural design decisions - Extract architectural decisions (focus on technical decisions) from issue management system - Classify them as either structural, behavioral, or banned decisions - Extract – who raised the concern, who took the decision and when was the decision made from the issue management system (what is implicit) - Build user profiles based on the above information Use the AKM model, user model, and a set of simple heuristics to predict the possible architectural decisions that will be taken by an architect
  • 46. Architecture design decision model 170217 Manoj (© Florian Matthes, 2016) 46
  • 47. • Existing work on ADD models do not consider user preferences, project context, and heuristics to support the decision making process • AIM • Extract who took the decision, how long did it take to implement, complexity of tasks involved based on source code changes • Extract a decision makers’ preferences related to technologies and types of issues handled to build user profiles. • RESULT • Combining user profiles with the ADD model should support the recommendation of • Who should be responsible to address a specific concern? • What is the cost of addressing a specific concern? Who did what, and when? • Who did what and when? • Use issue management system as the main input source • Focus on a specific domain (e.g. analytics domain) and system (e.g. component-based) ?
  • 48. Example • Sensitive case information…
  • 49. OPENNESS IN PLATFORM ARCHITECTURES
  • 50. Architecture Openness • Architectural Openness Model • Architectural Openness Factors • Openness in Five Main Mobile Platforms
  • 51. Results: Architectural Openness Model Applications Middleware Kernel Extended ApplicationsNative Applications App 1 App 2 App 3 App N... (Services, Libraries, Frameworks …) (Device Drivers, Memory Management, Power Management, Security …) App 1 App 2 App 3 App M... 51 Platform Architecture Symbian Architecture Android Architecture + Platform Accessibility Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify Architecture (Cho and Jeon, 2007) iPhone Architecture
  • 52. Results: Architectural Openness Factors Layer Factor Possibility statuses If possibleLicensing statuses Extended applications Integrate extended applications Possible/ Possible for some components/ Not possible Permission is not needed/ In some situation permission is needed/ Permission is always needed Extend extended applications Modify extended applications Native applications Integrate native applications Extend native applications Modify extended applications Middleware Integrate middleware Extend middleware Modify middleware Kernel Integrate kernel Extend kernel Modify kernel
  • 53. Results: Openness in Five Main Mobile Platforms Android Applications Middleware Kernel Extended ApplicationsNative Applications Home Contacts Phone Browser... App1 App2 App3 AppN... Application Framework Libraries Android Runtime Activity Manager Windows Manager Content ProvidersPackage Manager Telephony Manager Resource Manager View System Location Manager Notification Manager Device Drivers (Display, Camera, IPC, Flash Memory, Audio, WiFi, Keypad…) Power Management Surface Manager Media Framework SQLite OpenGL | ES FreeType WebKit SGL SSL Core Libraries Dalvik Virtual Machine Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify Security Memory Management ... Possible / Permission is not needed Possible for some components / Permission is not needed Possible / In some situation permission is needed Possible for some components / In some situation permission is needed
  • 54. Results: Openness in Five Main Mobile Platforms iPhone Applications Middleware Kernel (Core OS) Extended ApplicationsNative Applications App 1 App 2 App 3 App N... Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify Integrate Extend Modify ... App 1 App 2 App 3 App M... Core Services Drivers Security Framework CFNetwork Accessory Framework ... Address Book Core Data Framework Core Location Framework SQLite Core Foundation Framework ... In App Email Map Kit Framework Address Book UI Framework UIKit Framework Apple Push Notification Service ... Cocoa Touch Graphics Framework Audio Framework Video Framework Media Possible / Permission is always needed Possible for some components / Permission is always needed Not possible
  • 55. Comparison Factor Android Symbian Windows Mobile Blackberry iPhone P L P L P L P L P L Integrate extended applications Extend extended applications Modify extended applications Integrate native applications Extend native applications Modify native applications Integrate middleware Extend middleware Modify middleware Integrate kernel Extend kernel Modify kernel P - Possibility: Possible (Green), Possible for Some Components (Yellow), Not Possible (Red) L - Licensing: Permission is Not Needed(Green), In some cases permission is needed(Yellow), Permission is Always Needed(R), N/A(Gray)
  • 56. Conclusions • Proposed architectural openness model shows how the openness strategies of mobile platform suppliers affect the software architecture of the platforms • Proposed architectural openness factors shows how open the mobile software platforms are • Based on the model and the factors, the openness degree of five main mobile platforms is identified • Qualitative interviews validate the previous conclusion • Interviews show application developers don’t care about architectural openness of their favorite platforms • Interview with Some Device Manufacturers, and Mobile Suppliers is recommended
  • 57. Discussion: How could Android be more open?
  • 58. Group discussion: How open is eSDK? EMUI?
  • 60. Course website http://nisi.nl/cursussen/agilesoftwarearchitecture You will receive the slides by mail or via the website
  • 61. Information For more information about the course you can contact • Slinger Jansen • S.jansen@nisi.nl • 06 – 19884880 Don’t forget to submit your homework! www.nisi.nl info@nisi.nl +31(0)30 - 268 5398 Copyright © 2017 Netherlands Institute for the Software Industry (NISI) and Utrecht University

Notas do Editor

  1. Na de workshop dan een inventarisatie.