סדנא

Software Architecture for Agile Software Developmentבהנחה לחברי האיגוד

מרצה‐ חיים מקבי
 החל מ- 01/07/2024
מקוון ב - ZOOM4 מפגשים

This workshop will be dedicated to the subject of Software Architecture in the context of Agile Development. Hayim will present his approach of Adaptable Design Up Front (ADUF), describing its rationale, applications in practice and comparison to other approaches such as Emergent Design. He will explain why adaptability is essential for the development of complex software systems using Agile methods.
 
We will cover relevant topics such as the SOLID Principles, Test-Driven Development, Architectural Patterns, Domain-Driven Design and Software Quality Attributes. We will also discuss the architectural requirements of systems using AI and Machine Learning. These concepts will be illustrated through practical software architecture approaches such as micro-services and examples of real software systems that were developed in the past. The workshop will also include several exercises and group discussions to share our experiences.
Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he has worked for several hi-tech companies, including several start-ups. Hayim had leadership roles in the fields of Software Architecture and Machine Learning and was the founder of the International Association of Software Architects (IASA) in Israel. Currently he is the CTO at Dooiu, an innovative Social Fintech. Hayim is the author of a book about Object-Oriented Programming and has published papers in the fields of Software Engineering, Distributed Systems, Genetic Algorithms, Recommender Systems and Behavioral Economics.

Agenda

DayDescription
Day 1 – 01.07.2024
Section 1: Agile Principles and Methodologies
·        Agile principles and values
·        Overview of Agile methodologies (Scrum, Kanban)
·        Roles and responsibilities in Agile teams
·        Agile ceremonies and artifacts
Open discussion: How do you use Agile methods in your projects?
 
Section 2: Adaptable Design Up Front: Designing for Change and Evolution
·        The importance of designing software for change and evolution
·        Principles of loose coupling and high cohesion
·        Modular design and component-based architectures
·        Design patterns for extensibility and maintainability
·        Evolutionary design and emergent architecture
Exercise: Create an Adaptable Design for an interesting and practical application
Day 2 – 03.07.2024
Section 3: Designing with SOLID Principles
·        Overview of SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
·        Applying SOLID principles to improve software design
·        Design smells and anti-patterns to avoid
·        Case studies and examples of SOLID design principles in practice

Exercise: Applying SOLID principles in our previous exercise


Section 4: Test-Driven Development (TDD) and Refactoring
·        Fundamentals of Test-Driven Development (TDD)
·        Red-Green-Refactor Cycle
·        Test Doubles and Mocking
·        Refactoring Principles and Patterns
Discussion: What is your experience using TDD in your projects?
Day 3 – 08.07.2024
Section 5: Architectural Patterns in Agile
·        Applying architectural patterns in Agile projects
·        Hexagonal Architecture
·        Service-oriented architecture (SOA)
·        Microservices
Exercise: Applying Architectural Patterns in our previous exercise

Section 6: Domain-driven design (DDD)
·        Fundamentals of Domain-Driven Design (DDD)
·        Ubiquitous Language
·        Building Blocks of DDD
·        Tactical Design Patterns

Exercise: Applying DDD in our previous exercise
Day 4 – 10.07.2024
Section 7: Software Quality Attributes in Architecture
·        Overview of software quality attributes (e.g., performance, scalability, security, maintainability)
·        Functional vs. Non-Functional software quality attributes
·        Techniques for designing for quality attributes
·        Performance optimization strategies
·        Testing and validation of software architecture

Discussion: How do you measure Quality in your projects?

Section 8: Software Architecture, AI and Machine Learning Deployment
·        Overview of software architecture and its role in AI and Machine Learning deployment
·        Challenges and considerations in deploying Machine Learning models into production
·        Importance of architectural design for scalable and robust ML deployments
·        Introduction to common architectural patterns for ML deployment

Discussion: How do you plan to use AI and Machine Learning in your projects?
 
Software Engineers, Software Team Leaders, Software Architects
 
הרשמה מראש חובה!
ביטול השתתפות אחרי ה- 19.06.2024 בתשלום מלא.

מספר המשתתפים מכל חברה מוגבל

במידה והמשתתף או החברה בה הוא עובד יצטרפו לחברות בארגן יקוזז התשלום מדמי החברות.

הרשמה אונליין

קהל רחבחברי INCOSE_IL
מחיר (לפני מע"מ) ₪1500 ₪1100
ביטול השתתפות אחרי ה- 19.06.2024 בתשלום מלא.