SENG 401 - Software Architecture: Architecture Styles - PDF

Document Details

CleanestJasper9407

Uploaded by CleanestJasper9407

University of Calgary

Dr. Ronnie de Souza Santos

Tags

software architecture architecture styles monolithic pipeline

Summary

These slides from a SENG 401 lecture at the University of Calgary cover Software Architecture and different architectural styles. The presentation features topics like Monolithic Architecture, Layered Architecture, and Pipeline Architecture. The slides are created by Dr. Ronnie de Souza Santos.

Full Transcript

Lecture 5 SENG 401 – SOFTWARE ARCHITECTURE ARCHITECTURE STYLES – Part 1 Dr. Ronnie de Souza Santos https://www.drdesouzasantos.ca/ ARCHITECTURE STYLES &...

Lecture 5 SENG 401 – SOFTWARE ARCHITECTURE ARCHITECTURE STYLES – Part 1 Dr. Ronnie de Souza Santos https://www.drdesouzasantos.ca/ ARCHITECTURE STYLES & ⑤ BROAD, OVERARCHING DESIGN PRINCIPLES THAT GUIDE THE OVERALL STRUCTURE OF A SOFTWARE SYSTEM DESIGN IMPLEMENTATION MOTIVATION Choosing the right architecture style is a critical decision that influences various aspects of software development. COSTS SCHEDULE ARCHITECTURE CHARACTERISTCIS SCALABILITY ELASTICITY MAINTAINABILITY CONSISTENCY TEAMWORK PORTABILITY ARCHITECTURE CHARACTERISTCIS MODULARITY FLEXIBILITY REUSABILITY INTEROPERABILITY SIMPLICITY DEPLOYABILITY ARCHITECTURE CHARACTERISTCIS PERFORMANCE SECUTIRY RELIABILITY TESTABILITY FAULT TOLERANCE UPDATE MONOLITHIC ARCHITECTURE is 9.. A TRADITIONAL SOFTWARE DEVELOPMENT MODEL THAT USES ONE CODE - BASE TO PERFORM - MULTIPLE BUSINESS FUNCTIONS. KEY CHARACTERISTICS DESIGNED TO WORK AS A SINGLE, Single Application Block SELF-CONTAINED UNIT. SIMPLE TO Unified Deployment No Component Isolation DEVELOP AND DEPLOY, BUT Interconnection DIFFICULT TO MODIFY WITHOUT Interdependence IMPACTING THE ENTIRE SYSTEM. Tight Coupling MONOLITHIC ARCHITECTURE LAYERED ARCHITECTURE EACH LAYER PROVIDES SPECIFIC FUNCTIONALITIES AND SERVICES TO THE LAYERS ABOVE IT KEY CHARACTERISTICS Simplicity Modularity Maintainability Separation of Concerns Scalability Reusability Testability Interoperability Flexibility LAYERED ARCHITECTURE PERSISTENCE IMPORTANT: 1 – THE DATA BASE IS ANOTHER LAYER 2 – A MAIN CLASS THAT INSTANTIATE PRESENTATION EVERYTHING IS BUSINESS REQUIRED LAYERED – GOOD FOR? DEMAND BUDGET MAINTAINABILITY CONSTRAINS WHAT SYSTEMS CANNOT BE BUILT USING LAYERED ARCHITECTURE? SMALL AND SIMPLE APPLICATIONS REAL TIME MAX PERFORMANCE DID YOU KNOW? LAYERED ARCHITECTURES EDSGER DIJKSTRA, A PIONEERING SCIENTIST, POPULARIZED THE CONCEPT OF LAYERED ARCHITECTURE IN THE 1960S WHILE WORKING ON THE THEORETICAL BASIS FOR OPERATING SYSTEMS. HIS WORK ON STRUCTURED PROGRAMMING AND THE "ABSTRACTION LAYER" CONCEPT MADE SOFTWARE EASIER TO UNDERSTAND, DEBUG, AND MAINTAIN. THESE IDEAS ARE FOUNDATIONAL TO HOW WE DESIGN SYSTEMS TODAY. PIPELINE ARCHITECTURE.... STRUCTURES THE PROCESSING OF DATA OR TASKS AS A SERIES OF CONNECTED PROCESSING STAGES KEY CHARACTERISTICS Sequential Modularity Parallelism Isolation Scalability Reusability Flexibility BIG DATA IMAGE CI/CD Simplicity PROCESSING Testability PIPELINE ARCHITECTURE Pipes Filters Pipes in this architecture form the Self-contained, independent from communication channel between other filters and generally filters. Each pipe is typical stateless. unidirectional and point-to-point between filters. Filters should perform one task The payload in the pipes may only contain any data structure Composite task should be But normally architects favor small handled by a sequence of filters amounts of data. rather than a single one. PIPELINE ARCHITECTURE Producer The starting point of a process, outbound only, sometimes called the source Transformer Accepts input, optionally performs transformation on some or all of the data, then forwards it to the outbound pipe. Functional advocates will recognize this feature as map. Tester Accepts input, tests one or more criteria, then optionally produces output, based on the test. Functional programmers will recognize this as similar to reduce Consumer The termination point for the pipeline flow. Consumers sometimes persist the final result of the pipeline process to a database, or they may display the final results on a user interface screen. PIPELINE ARCHITECTURE 2 1 3 4 5 7 6 Image Image Image Image Pipe Pipe Pipe Pipe Gray Water Scale Resize mark PIPELINE ARCHITECTURE 1 2 6 3 7 4 8 5 QUESTIONS?

Use Quizgecko on...
Browser
Browser