SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureSandeep Ganji
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture Ahmed Marzouk
 
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Patternjeetendra mandal
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software EngineeringManish Kumar
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for BegginersChinh Ngo Nguyen
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedElizabeth Steiner
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture FrameworkFirmansyahIrma1
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
DevOps Maturity Curve v5
DevOps Maturity Curve v5DevOps Maturity Curve v5
DevOps Maturity Curve v5Paul Peissner
 
Introduction to Systems Engineering
Introduction to Systems EngineeringIntroduction to Systems Engineering
Introduction to Systems EngineeringBernardo A. Delicado
 
Building a DevOps organization
Building a DevOps organizationBuilding a DevOps organization
Building a DevOps organizationZinnov
 
Solution architecture
Solution architectureSolution architecture
Solution architectureiasaglobal
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleKittitouch Suteeca
 
The 5 principles of Model Based Systems Engineering (MBSE)
The 5 principles of Model Based Systems Engineering (MBSE)The 5 principles of Model Based Systems Engineering (MBSE)
The 5 principles of Model Based Systems Engineering (MBSE)James Towers
 
Software architecture in practice
Software architecture in practiceSoftware architecture in practice
Software architecture in practiceErwannWernli
 
All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)Rich Hilliard
 

Was ist angesagt? (20)

Solution Architecture
Solution ArchitectureSolution Architecture
Solution Architecture
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
 
Microservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design PatternMicroservice Architecture Software Architecture Microservice Design Pattern
Microservice Architecture Software Architecture Microservice Design Pattern
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 
Model-Based Systems Engineering Demystified
Model-Based Systems Engineering DemystifiedModel-Based Systems Engineering Demystified
Model-Based Systems Engineering Demystified
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
DevOps Maturity Curve v5
DevOps Maturity Curve v5DevOps Maturity Curve v5
DevOps Maturity Curve v5
 
Introduction to Systems Engineering
Introduction to Systems EngineeringIntroduction to Systems Engineering
Introduction to Systems Engineering
 
Building a DevOps organization
Building a DevOps organizationBuilding a DevOps organization
Building a DevOps organization
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Solution architecture
Solution architectureSolution architecture
Solution architecture
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycle
 
The 5 principles of Model Based Systems Engineering (MBSE)
The 5 principles of Model Based Systems Engineering (MBSE)The 5 principles of Model Based Systems Engineering (MBSE)
The 5 principles of Model Based Systems Engineering (MBSE)
 
Software architecture in practice
Software architecture in practiceSoftware architecture in practice
Software architecture in practice
 
All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)
 

Andere mochten auch

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
 
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
 

Andere mochten auch (15)

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
 
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
 

Ähnlich wie 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.
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architectllangit
 

Ähnlich wie 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
 
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
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Kürzlich hochgeladen (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

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