Design - Architecture Design Flashcards

Architecture Design

1
Q

What are the 4 functions of software systems?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the different application architectures?

A
  • Client-Server Architectures
  • Server-Based Architectures
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do client-server architectures work?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the different kind of client-server architectures?

A
  • Thick clients: contain most of the application logic
  • Thin clients: contain just a small portion of the application logic
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is N-Tiered client-server architecture?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the 3 important benefits of client-server architectures?

A
  • Scalable
  • Support many different types of clients and servers
  • Simple to clearly separate the presentation logic, the application logic, and the data access logic
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Server-Based Architectures?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the other kind of Server-Based Architectures?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a zero client/Ultrathin client?

A
  • This is a server-based computing model that is often used today in a virtual desktop infrastructure (VDI)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the technology choices for mobile application architectures?

A
  • Native applications - Swift/Object C for iOS, Java mobile for Android.
  • Cross-platform frameworks - Flutter, React
  • Mobile web apps
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What clients does a mobile application architecture have?

A
  • Rich clients: The business and data access logic are included on the device along with the presentation logic
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What does MVC stand for?

A

Model View Controller

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the three patterns involved in Model View Controller?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Advantages of Strategy Pattern?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Advantages of Observer Pattern?

A
  • The model has no dependencies on any views
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Advantages of Composite Pattern?

A
  • Only need to interact with top-level component
17
Q

Give some examples of frameworks that use MVC

A
  • Ruby on rails
  • Django
  • Spring MVC
  • Flask
18
Q

What is the complete process of a Model View Controller (MVC)?

A

1) User interacts with a VIEW
2) VIEW alerts CONTROLLER
3) CONTROLLER updates MODEL
4) MODEL alerts view that it has changed
5) VIEW grabs MODEL data and updates ITSELF