Want to know about the commonality between a Football Stadium and Software Architecture?
Ever wondered about the difference between Software- and System Architecture?
Listen to our talk @LMI Karlsruhe, Nov 13!
+ Bonus: Ready for a Code-Reading challenge? Same place, same time!
The term SPARKS- Professional Software Development for Students is understood to mean free talks for students who are interested in computer science, software engineering or how we work at LMI. This is an opportunity for students talking to professional software engineers to get further information about the topics of the talks.
17. 17
God Class
Antipattern: God Class
“A God Class is an object that controls way too many other objects in the
system and has grown beyond all logic to become The Class That Does
Everything.” - http://wiki.c2.com/?GodClass
18. 18
Taking a step back
• How to understand what a complex software system does?
19. 19
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
20. 20
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
21. 21
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
• How to enable development teams to participate in coding?
22. 22
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
• How to enable development teams to participate in coding?
• How to produce a new and solid piece of software?
24. Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
25. Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
26. Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
• What should the Car Rental System do?
• Collect functional requirements
27. Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
• What should the Car Rental System do?
• Collect functional requirements
• How should the Car Rental System do it?
• Collect non-functional requirements
28. 28
Persistence Layer
Business Layer
Presentation Layer
High Level Software Architecture
Car Rental Portal
Application Database
Customer
Directory Service
Vehicle Management
Service
Credit Card
Verifier
Booking Service
29. 29
Software Architecture vs. System Architecture
Software architecture
… design of software applications by breaking
software into its various software components
and defining the component interfaces and
methods of communication.
30. 30
Software Architecture vs. System Architecture
Software architecture
… design of software applications by breaking
software into its various software components
and defining the component interfaces and
methods of communication.
System architecture
… describes more broadly how systems are
designed, which may have components that
include multiple software applications, network
devices, hardware, and even other machinery.
32. 32
High Level System Architecture
Car Rental
PortalCustomer
Queries
Customer
Relationship
Management
33. 33
High Level System Architecture
Car Rental
Portal
Credit Card
Verification
System
CC
Information
Verification
Customer
Queries
Customer
Relationship
Management
34. 34
High Level System Architecture
Car Rental
Portal
Vehicle Fleet
Management
Credit Card
Verification
System
CC
Information
Verification
Garage
Management
Customer
Queries
Customer
Relationship
Management
35. 35
High Level System Architecture
Car Rental
Portal
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Customer
Queries
Vehicle Fleet
Management
Customer
Relationship
Management
36. 36
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
37. 37
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
38. 38
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
39. 39
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
• Identify potential bottlenecks on high load
40. 40
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
!
!
41. 41
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
• Identify potential bottlenecks on high load
• Identify availability hot spots
42. 42
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
43. 43
C4 Model – Levels of Abstraction
(System) Context
Containers
Components
Classes
44. 44
C4 Model – System Context Level
(System) Context
Containers
Components
Classes
45. 45
C4 Model – System Context Level
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
47. 47
C4 Model – System Context Level
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
System Context Level
54. 54
C4 Model – Class Level
Booking Management
Class BookingReader
1
Class BookingWriter
Class BookingLogger
Class BookingService
1
1
1
Class BookingArchiver
1