Software Architecture Flashcards
What are the steps to design a system architecture?
Understand system-environment interactions, identify major components, and organize using an architectural pattern.
What do design patterns provide?
Best practices, good designs, and reusable solutions for common problems.
How are design patterns typically structured?
They include a name, problem description, abstract solution, and consequences.
Why are design patterns abstract?
They offer templates for solutions that can be adapted to different settings.
How do design patterns help in development?
They speed up development by providing well-documented solutions to common problems.
What is the ACID principle in databases?
Atomicity, Consistency, Isolation, and Durability for reliable transactions.
How is atomicity applied in use cases?
A complete transaction between user and system must provide measurable value.
What is data consistency in use cases?
Use case interactions should involve consistent object instances from class diagrams.
Why is isolation important in use cases?
It ensures use cases operate independently of each other.
What does data durability imply for use cases?
Measurable value persists outside the system after the transaction completes.
What are the two main data exchange approaches in subsystems?
Central database repository and subsystem-specific databases with data passing.
How is data validated in a system?
Check validity, return an error if invalid, or provide a list of valid options.
What are the CRUD operations?
Create, Read, Update, and Delete for managing data in use cases.
Why is flagging data as deleted better than deletion?
It avoids reference issues and retains important data in records.
What is essential for transaction history records?
Unique transaction ID, entity IDs, valid codes, description, and audit details (user, timestamp).