Design - Architecture Design Flashcards
Architecture Design
What are the 4 functions of software systems?
1) Data storage: Data entities documented in ERDS (Entity Relationship Diagrams)
2) Application Logic: Documented in the Flow Diagrams
3) Data access logic: Structured Query Language (SQL)
4) Presentation Logic: Display of information to the user and the acceptance of the user’s commands
What are the different application architectures?
- Client-Server Architectures
- Server-Based Architectures
How do client-server architectures work?
- Attempt to balance the processing between client devices and one or more server devices.
- The client is responsible for the presentation and application logic. The server is responsible for the data access logic and data storage
What are the different kind of client-server architectures?
- Thick clients: contain most of the application logic
- Thin clients: contain just a small portion of the application logic
What is N-Tiered client-server architecture?
- N-tiered architecture distributes the work of the application (the middle tier) among multiple layers of more specialized server computers.
- I.e. Web Server, Application server, Database server etc.
What are the 3 important benefits of client-server architectures?
- Scalable
- Support many different types of clients and servers
- Simple to clearly separate the presentation logic, the application logic, and the data access logic
What is Server-Based Architectures?
- The clients merely captured keystrokes and sent them to the server for processing, and accepted instructions from the server on what to display.
- The server (Usually, a central mainframe computer) performs all four application functions of a software system.
What are the other kind of Server-Based Architectures?
- Zero client, or ultrathin client, is a server-based computing model that is often used today in a virtual desktop infrastructure (VDI)
- The zero-client computing model provides an efficient and secure way to deliver applications to end users
- Administration is easy and multiple virtual PCs can be run on server class hardware in VDI environments, significantly reducing the number of physical PCs that must be acquired and maintained.
What is a zero client/Ultrathin client?
- This is a server-based computing model that is often used today in a virtual desktop infrastructure (VDI)
What are the technology choices for mobile application architectures?
- Native applications - Swift/Object C for iOS, Java mobile for Android.
- Cross-platform frameworks - Flutter, React
- Mobile web apps
What clients does a mobile application architecture have?
- Rich clients: The business and data access logic are included on the device along with the presentation logic
What does MVC stand for?
Model View Controller
What are the three patterns involved in Model View Controller?
- Observer Patter (View -> Controller)
- Strategy pattern (View is informed of changes, View becomes an observer. There may be many observers) (Model will inform all observers of the change in state)
- Composite pattern (Composite of GUI top level components, windows, panels, labels etc)
Advantages of Strategy Pattern?
- The view only needs to deal with presentation
- If you decide that you need to change what happens when the user clicks a button, do you need to change the view? No, only need to modify the controller code.
Advantages of Observer Pattern?
- The model has no dependencies on any views