Software Architecture Flashcards
What is Software Architecture?
A description of how a software system is organized
What are 4 different views that can be used to document an architecture?
- Conceptual View
- Logical View
- Process View
- Development View
What kind of decisions are included in Architectural Design Decisions?
Type of Application, Distribution of system and the architectural styles to be used
What do Architectural Patterns describe? And what do they help do?
The architecture, explain when it may be used and describe its pros and cons. They help reuse knowledge about generic system architectures.
True or False: Transaction Processing Systems can be used to translate texts from one language to another and can carry out instructions specified in the input language
False, This is a Language Processing System. Transaction Processing Systems are actually interactive systems that allows info in a database to be accessed and edited.
True or False: Layered Architecture supports Incremental Development
True
List the layers in information systems architecture
UI, user communications, information retrieval and system database
List the pros and cons of Client-server architecture
Pros:
servers can be distributed
scalability across a network
general functionality is reusable
Cons:
Single point of failure
If the system crashes people can’t get access to features
Potential Management Issues
Transaction Vs Data Processing
Transaction processing processes user requests and updates the database whereas data processing processes data in batches without user intervention during processing
True or False: Box and Line diagrams should include loads of technical details
False, box and line should try to minimize technical details to allow for easier understanding for Stakeholders
Name three benefits of using architectural patterns in software development
- Provide design practices
- Promote reuse
- simplify communication by offering shared templates
Layered Vs Client-server architecture
Layered Architecture organizes components into layers with services provided between adjacent layers which supports incremental development whereas client-server architecture distributes services between servers and clients over a network which enables shared functionality.