SlideShare uma empresa Scribd logo
1 de 30
The Role of the Software Architect
Hayim Makabee
International Association of Software Architects in Israel
Talk Outline
• IASA Overview
• Software Architecture
Skills
• Software Architect’s
Role
About Me:
 Education:
 Experience:
 Today:
What is IASA?
 Non-Profit Global Professional Association, founded in 2002.
 Target Public:
 Enterprise, Information, Infrastructure, Software and Business
Architects.
 Professional software developers targeting an architect position in
their career path.
 Manages an IT architecture knowledge repository.
IASA Chapters & Membership
 8,000 members in over 60 countries
 In 35 chapters on 5 continents
 Locally run by architects
Locally run by volunteer IT architects
8,000 members in 35 chapters
Local Chapter Activities
 Events
 Monthly events/meetings
 Virtual presentations/discussions
 Special interest/focus groups
 Conferences
 Mentoring
 Lifeline
 Study Groups
 Training Courses & Workshops
 Certification
Software Architecture Skills
 A Software Architect should have expertise in:
 Design
 Domain
 Technology
 Methodology
Expertise = Knowledge + Experience
“The young man knows the rules, but the old man knows the
exceptions.” – Oliver Wendell Holmes
The 4 Fields of Expertise
Design
Domain Technology
Methodology
Design Expertise
 The Software Architect should be an expert on Software
Design, including diverse methods and approaches:
 OOD, Aspect-Oriented, Event-Driven, Domain-Driven, etc…
 The Software Architect should be able to lead the development
team in the definition of the high-level design.
 The Software Architect should be able to review design
proposals and assess trade-offs among them.
 The Software Architect should be able to coordinate
development efforts and guarantee the integrity of design.
Design Integrity
 Software Quality Attributes:
 Correctness
 Modularity
 Coupling
 Cohesion
 Testability
 Maintainability
 Extensibility
 Reusability
Design Decisions
 Examples of high-level design decisions:
1. Service-Oriented Architecture (SOA) based on stateless RESTful
services returning JSON objects.
2. Staged Event-Driven Architecture (SEDA) based on message
queues and adaptive load balancing.
Domain Expertise
 The Software Architect should be an expert on the domain of
the system being developed.
 The Software Architect should assist in the requirements
elicitation process, assuring consistency and completeness.
 The Software Architect should contribute to the definition of a
domain model for the system being developed.
 The Software Architect should plan for software evolution,
taking in consideration future changes in requirements.
Planning for Software Evolution
 Planning for software evolution requires a good understanding
of the application’s domain:
 Modeling of the main domain entities, their attributes and
relationships.
 Refinement of generalization/specialization hierarchies.
 Identification of the domain aspects that are not represented in the
current requirements.
 Identification of areas of volatility that are likely to change.
 Domain analysis should drive the introduction of mechanisms
for flexibility and extensibility.
Domain Decisions
 Examples of domain modeling decisions:
1. Should a relationship be represented as an object or as an
association between two objects?
2. Should an object have a fixed list of attributes or a dynamic set of
properties?
3. Should an attribute be represented as a primitive type or as an
object?
Technology Expertise
 The Software Architect should be an expert on the available
technologies that may be used to implement the system.
 The Software Architect should coordinate the selection of:
 Programming Languages
 Development Environments
 Frameworks
 Libraries
 Platforms
 Databases
 Protocols
Technology Decisions
 Example of technology decision: LAMP stack
 LAMP:
 Linux Operating System
 Apache HTTP Server
 MySQL Database
 PHP Programming Language
Methodology Expertise
 The Software Architect should be an expert on software
development methodologies that may be adopted during the
Software Development Life Cycle (SDLC).
 The Software Architect should help the team choose the
appropriate development approaches.
 The planning and evolution of the software architecture during
the SDLC depends on the methodology being used.
Methodology Decisions
 Examples of methodology decisions:
1. Agile methods imply reduced design up-front and thus some form
of emergent or evolutionary design.
2. Test-Driven Development (TDD) reduces the risks associated to
Refactoring and thus requires less detailed design.
3. Pair Programming requires less design and code reviews.
Roles in Software Development
Software Architect
Product Owner
Developer
Tester
Technical Writer
Non-Functional Requirements
Non-Functional
Requirements (NFRs)
Examples of NFRs
 Latency
 Throughput
 Robustness
 Scalability
 Fault-Tolerance
Architecture Planning
(High-Level Design)
Architecture Discussion:
• Frameworks
• Platforms
• Technologies
• Abstraction Layers
• Components
• Design Patterns
Requirements Specification
Use Cases
(Functional Requirements)
Use Cases
Requirements
Discussion:
• Generalizations
• Commonalities
• Patterns
• Exceptions
• Impact on NFRs
Design Reviews
Design Review:
• Several design alternatives
• All alternatives satisfy FRs
• Different alternatives have
different impact on NFRs
• Discuss trade-offs
Multi-product Company
Sharing opportunities:
• Technologies
• Infrastructure
• Components
• Patterns
• Reuse
Product A
Product B
Product C
Infrastructure Team
Development of new:
• Infrastructure
• Reusable Components
• Tools
Product A
Product B
Infrastructure Team
Non-Functional Testing
Non-Functional Testing:
• Performance Tests
• Load/Stress Tests
• Robustness Tests
• Simulators
• Bombers
• Log Players
Internal and External Documents
External Documents:
• User Guides
• Manuals
Internal Documents:
• Infrastructure
• Service Interfaces
• Proprietary Protocols
Summary
 A Software Architect should have expertise in:
 Design
 Domain
 Technology
 Methodology
 The Software Architect should work in tight cooperation with:
 Product Owners
 Developers
 Testers
 Technical Writers
Thanks!
Q&A

Mais conteúdo relacionado

Mais procurados

Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Derk-Jan de Grood
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaEdureka!
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureHimanshu
 
System testing ppt
System testing pptSystem testing ppt
System testing pptL ESHWAR
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)ShudipPal
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture tigneb
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06Luktalja
 
Automotive SPICE® 3.0 - What is new and what has changed?
Automotive SPICE® 3.0 - What is new and what has changed?Automotive SPICE® 3.0 - What is new and what has changed?
Automotive SPICE® 3.0 - What is new and what has changed?Dominik Strube
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented DesignEdison Lascano
 
end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)Orange Business Services
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycleHimanshu
 

Mais procurados (20)

Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Software requirement specification(SRS)
Software requirement specification(SRS)Software requirement specification(SRS)
Software requirement specification(SRS)
 
Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018
 
How To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | EdurekaHow To Write A Test Case In Software Testing | Edureka
How To Write A Test Case In Software Testing | Edureka
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
System testing ppt
System testing pptSystem testing ppt
System testing ppt
 
Ch 6
Ch 6Ch 6
Ch 6
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)
 
Aspect oriented architecture
Aspect oriented architecture Aspect oriented architecture
Aspect oriented architecture
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
 
The role of Business Analyst
The role of Business Analyst The role of Business Analyst
The role of Business Analyst
 
Automotive SPICE® 3.0 - What is new and what has changed?
Automotive SPICE® 3.0 - What is new and what has changed?Automotive SPICE® 3.0 - What is new and what has changed?
Automotive SPICE® 3.0 - What is new and what has changed?
 
Software project management
Software project managementSoftware project management
Software project management
 
UML for Aspect Oriented Design
UML for Aspect Oriented DesignUML for Aspect Oriented Design
UML for Aspect Oriented Design
 
end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Quality software models
Quality software modelsQuality software models
Quality software models
 
Class notes
Class notesClass notes
Class notes
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

Destaque

Iasa, Iasa Ireland, ICS Jan 2011
Iasa, Iasa Ireland, ICS Jan 2011Iasa, Iasa Ireland, ICS Jan 2011
Iasa, Iasa Ireland, ICS Jan 2011iasaireland
 
The process of software architecting
The process of software architectingThe process of software architecting
The process of software architectingRoger Snook
 
Solution architecture
Solution architectureSolution architecture
Solution architectureiasaglobal
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectRandy Ynchausti
 
Iasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudIasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudiasaglobal
 
Delivering Data - Social Networking Personal
Delivering Data - Social Networking PersonalDelivering Data - Social Networking Personal
Delivering Data - Social Networking Personaliasaireland
 
Why IT needs more IT Architects (IASA style)
Why IT needs more IT Architects (IASA style)Why IT needs more IT Architects (IASA style)
Why IT needs more IT Architects (IASA style)Paddy Baxter
 
User story estimation with agile architectures
User story estimation with agile architecturesUser story estimation with agile architectures
User story estimation with agile architecturesRaffaele Garofalo
 
Cita iasa certifications
Cita iasa certificationsCita iasa certifications
Cita iasa certificationsAdams Firdaus
 
Architecting multi sided business
Architecting multi sided businessArchitecting multi sided business
Architecting multi sided businessRichard Veryard
 
IASA 2014 Conference - Cape Town, South Africa #iasa2014
IASA 2014 Conference - Cape Town, South Africa #iasa2014IASA 2014 Conference - Cape Town, South Africa #iasa2014
IASA 2014 Conference - Cape Town, South Africa #iasa2014Karen Du Toit
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environmentRaffaele Garofalo
 
Business Process Management: Implementing Continuous Improvement in Your Orga...
Business Process Management: Implementing Continuous Improvement in Your Orga...Business Process Management: Implementing Continuous Improvement in Your Orga...
Business Process Management: Implementing Continuous Improvement in Your Orga...Henry Chandra
 
Platforms or Two-sided markets
Platforms or Two-sided marketsPlatforms or Two-sided markets
Platforms or Two-sided marketsMartin Westhead
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution ArchitectureAlan McSweeney
 

Destaque (16)

Iasa, Iasa Ireland, ICS Jan 2011
Iasa, Iasa Ireland, ICS Jan 2011Iasa, Iasa Ireland, ICS Jan 2011
Iasa, Iasa Ireland, ICS Jan 2011
 
The process of software architecting
The process of software architectingThe process of software architecting
The process of software architecting
 
Solution architecture
Solution architectureSolution architecture
Solution architecture
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software Architect
 
Iasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudIasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloud
 
Delivering Data - Social Networking Personal
Delivering Data - Social Networking PersonalDelivering Data - Social Networking Personal
Delivering Data - Social Networking Personal
 
Why IT needs more IT Architects (IASA style)
Why IT needs more IT Architects (IASA style)Why IT needs more IT Architects (IASA style)
Why IT needs more IT Architects (IASA style)
 
User story estimation with agile architectures
User story estimation with agile architecturesUser story estimation with agile architectures
User story estimation with agile architectures
 
Cita iasa certifications
Cita iasa certificationsCita iasa certifications
Cita iasa certifications
 
Why certify
Why certifyWhy certify
Why certify
 
Architecting multi sided business
Architecting multi sided businessArchitecting multi sided business
Architecting multi sided business
 
IASA 2014 Conference - Cape Town, South Africa #iasa2014
IASA 2014 Conference - Cape Town, South Africa #iasa2014IASA 2014 Conference - Cape Town, South Africa #iasa2014
IASA 2014 Conference - Cape Town, South Africa #iasa2014
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
Business Process Management: Implementing Continuous Improvement in Your Orga...
Business Process Management: Implementing Continuous Improvement in Your Orga...Business Process Management: Implementing Continuous Improvement in Your Orga...
Business Process Management: Implementing Continuous Improvement in Your Orga...
 
Platforms or Two-sided markets
Platforms or Two-sided marketsPlatforms or Two-sided markets
Platforms or Two-sided markets
 
Structured Approach to Solution Architecture
Structured Approach to Solution ArchitectureStructured Approach to Solution Architecture
Structured Approach to Solution Architecture
 

Semelhante a The Role of the Software Architect

The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)Hayim Makabee
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachPanagiotis Papaioannou
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference ArchitectureJohan Eltes
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachPanagiotis Papaioannou
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Anti Patterns Siddhesh Lecture2 Of3
Anti Patterns Siddhesh Lecture2 Of3Anti Patterns Siddhesh Lecture2 Of3
Anti Patterns Siddhesh Lecture2 Of3Siddhesh Bhobe
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 

Semelhante a The Role of the Software Architect (20)

The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Anti Patterns Siddhesh Lecture2 Of3
Anti Patterns Siddhesh Lecture2 Of3Anti Patterns Siddhesh Lecture2 Of3
Anti Patterns Siddhesh Lecture2 Of3
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Cnpm bkdn
Cnpm bkdnCnpm bkdn
Cnpm bkdn
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Chapter1
Chapter1Chapter1
Chapter1
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Vsts intro
Vsts introVsts intro
Vsts intro
 

Mais de Hayim Makabee

Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your ReputationHayim Makabee
 
Applications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarApplications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarHayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine LearningHayim Makabee
 
Blue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseBlue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseHayim Makabee
 
Managing your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarManaging your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarHayim Makabee
 
Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)Hayim Makabee
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Hayim Makabee
 
Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your ReputationHayim Makabee
 
The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)Hayim Makabee
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software DevelopmentHayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine LearningHayim Makabee
 
Antifragile Software Design
Antifragile Software DesignAntifragile Software Design
Antifragile Software DesignHayim Makabee
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
 
The SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design PatternsThe SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design PatternsHayim Makabee
 
Aliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in IsraelAliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in IsraelHayim Makabee
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality AttributesHayim Makabee
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Hayim Makabee
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical DebtHayim Makabee
 

Mais de Hayim Makabee (20)

Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
 
Applications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarApplications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT Webinar
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
 
Blue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseBlue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use Case
 
Managing your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarManaging your Reputation Gvahim Webinar
Managing your Reputation Gvahim Webinar
 
Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)
 
Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
 
The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software Development
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
 
Antifragile Software Design
Antifragile Software DesignAntifragile Software Design
Antifragile Software Design
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
The SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design PatternsThe SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design Patterns
 
Aliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in IsraelAliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in Israel
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical Debt
 

Último

UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Último (20)

UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

The Role of the Software Architect

  • 1. The Role of the Software Architect Hayim Makabee International Association of Software Architects in Israel
  • 2. Talk Outline • IASA Overview • Software Architecture Skills • Software Architect’s Role
  • 3. About Me:  Education:  Experience:  Today:
  • 4. What is IASA?  Non-Profit Global Professional Association, founded in 2002.  Target Public:  Enterprise, Information, Infrastructure, Software and Business Architects.  Professional software developers targeting an architect position in their career path.  Manages an IT architecture knowledge repository.
  • 5. IASA Chapters & Membership  8,000 members in over 60 countries  In 35 chapters on 5 continents  Locally run by architects Locally run by volunteer IT architects 8,000 members in 35 chapters
  • 6. Local Chapter Activities  Events  Monthly events/meetings  Virtual presentations/discussions  Special interest/focus groups  Conferences  Mentoring  Lifeline  Study Groups  Training Courses & Workshops  Certification
  • 7. Software Architecture Skills  A Software Architect should have expertise in:  Design  Domain  Technology  Methodology Expertise = Knowledge + Experience “The young man knows the rules, but the old man knows the exceptions.” – Oliver Wendell Holmes
  • 8. The 4 Fields of Expertise Design Domain Technology Methodology
  • 9. Design Expertise  The Software Architect should be an expert on Software Design, including diverse methods and approaches:  OOD, Aspect-Oriented, Event-Driven, Domain-Driven, etc…  The Software Architect should be able to lead the development team in the definition of the high-level design.  The Software Architect should be able to review design proposals and assess trade-offs among them.  The Software Architect should be able to coordinate development efforts and guarantee the integrity of design.
  • 10. Design Integrity  Software Quality Attributes:  Correctness  Modularity  Coupling  Cohesion  Testability  Maintainability  Extensibility  Reusability
  • 11. Design Decisions  Examples of high-level design decisions: 1. Service-Oriented Architecture (SOA) based on stateless RESTful services returning JSON objects. 2. Staged Event-Driven Architecture (SEDA) based on message queues and adaptive load balancing.
  • 12. Domain Expertise  The Software Architect should be an expert on the domain of the system being developed.  The Software Architect should assist in the requirements elicitation process, assuring consistency and completeness.  The Software Architect should contribute to the definition of a domain model for the system being developed.  The Software Architect should plan for software evolution, taking in consideration future changes in requirements.
  • 13. Planning for Software Evolution  Planning for software evolution requires a good understanding of the application’s domain:  Modeling of the main domain entities, their attributes and relationships.  Refinement of generalization/specialization hierarchies.  Identification of the domain aspects that are not represented in the current requirements.  Identification of areas of volatility that are likely to change.  Domain analysis should drive the introduction of mechanisms for flexibility and extensibility.
  • 14. Domain Decisions  Examples of domain modeling decisions: 1. Should a relationship be represented as an object or as an association between two objects? 2. Should an object have a fixed list of attributes or a dynamic set of properties? 3. Should an attribute be represented as a primitive type or as an object?
  • 15. Technology Expertise  The Software Architect should be an expert on the available technologies that may be used to implement the system.  The Software Architect should coordinate the selection of:  Programming Languages  Development Environments  Frameworks  Libraries  Platforms  Databases  Protocols
  • 16. Technology Decisions  Example of technology decision: LAMP stack  LAMP:  Linux Operating System  Apache HTTP Server  MySQL Database  PHP Programming Language
  • 17. Methodology Expertise  The Software Architect should be an expert on software development methodologies that may be adopted during the Software Development Life Cycle (SDLC).  The Software Architect should help the team choose the appropriate development approaches.  The planning and evolution of the software architecture during the SDLC depends on the methodology being used.
  • 18. Methodology Decisions  Examples of methodology decisions: 1. Agile methods imply reduced design up-front and thus some form of emergent or evolutionary design. 2. Test-Driven Development (TDD) reduces the risks associated to Refactoring and thus requires less detailed design. 3. Pair Programming requires less design and code reviews.
  • 19. Roles in Software Development Software Architect Product Owner Developer Tester Technical Writer
  • 21. Examples of NFRs  Latency  Throughput  Robustness  Scalability  Fault-Tolerance
  • 22. Architecture Planning (High-Level Design) Architecture Discussion: • Frameworks • Platforms • Technologies • Abstraction Layers • Components • Design Patterns
  • 23. Requirements Specification Use Cases (Functional Requirements) Use Cases Requirements Discussion: • Generalizations • Commonalities • Patterns • Exceptions • Impact on NFRs
  • 24. Design Reviews Design Review: • Several design alternatives • All alternatives satisfy FRs • Different alternatives have different impact on NFRs • Discuss trade-offs
  • 25. Multi-product Company Sharing opportunities: • Technologies • Infrastructure • Components • Patterns • Reuse Product A Product B Product C
  • 26. Infrastructure Team Development of new: • Infrastructure • Reusable Components • Tools Product A Product B Infrastructure Team
  • 27. Non-Functional Testing Non-Functional Testing: • Performance Tests • Load/Stress Tests • Robustness Tests • Simulators • Bombers • Log Players
  • 28. Internal and External Documents External Documents: • User Guides • Manuals Internal Documents: • Infrastructure • Service Interfaces • Proprietary Protocols
  • 29. Summary  A Software Architect should have expertise in:  Design  Domain  Technology  Methodology  The Software Architect should work in tight cooperation with:  Product Owners  Developers  Testers  Technical Writers