S5 Flashcards

(28 cards)

1
Q

What is System Decomposition and what are its 3 key principles

A

Breaking down a complex system into smaller more manageable components

the key principles are :
Modularity, abstraction and encapsulation

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

Explain Modularity, Abstraction and Encapsulation

A

Modularity : divide and conquer - Little problems are easier to solve than big ones

Abstraction : Don’t re-invent the wheel
Focus on creative parts, if something already exits reuse it

Encapsulation : Separation of concerns
Support flexibility and future evolution by decoupling unrelated parts so each and grow separately

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

What is software architecture

A

Software architecture refers to the set of high level decisions that determine the structure of the software solution

parts of the system and relationships between parts

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

Why is Software Architecture important to get right early

A

It affects large parts of the system and it is a decision that is made early in the design process

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

what are some key architectural decisions

A

System decomposition :
how do you break this bitch up and how does shit interact and what dalas what

Cross-cutting concerns:
Non-functional requirements that my affects multiple thing s

Conceptual integrity:
Does the system make sense?

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

Architecture vs Design

A

Architecture focuses on non functional requirements and on the
decomposition of a system

Design focuses on implementing functional requirements

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

What is an architectural style :

A

AKA Architectural pattern is a general reusable solution to a commonly occurring problem in software architecture within a given context, related to design patterns

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

What are some Architectural styles

A
  • Monolithic
  • Client-Server
  • Peer-to-Peer
  • Multi-Tier
  • Pipe and Filter
  • Database-Centric
  • Event-Driven
  • Microservices
  • Microkernel
  • Representational State Transfer (REST)
  • Service-Oriented
  • Space-Based
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How do we describe the components of a system and how
they interact?

A

Each component must be identified, and its interface described.
Interfaces must be:

  • Fully documented
  • Semantics, not just syntax
  • Understandable
  • Unambiguous
  • Precise
    Adding semantics:
  • Informal description
  • Design models (UML diagrams)
  • Pre/Post conditions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are architectural views

A

Views are different kinds of “blueprints” created for the system-to-be
Like how the plumbing is done in a building

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

What makes up the 4 + 1 View Model

A

Logical View :
State and Class Diagram

Development View:
Component Diagram

Process View:
Activity and Sequence Diagram

Physical View:
Deployment Diagram

Scenario View:
Use Case Diagram

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

What is the logical view and what does it do and so on

A

This is concerned with the functionality provided to users
Decompose into classes and objects
UML : Class and State Diagrams

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

What is the development view and what does it do

A

The development view is concerned with software administration from the point of view of the programmer
This focuses on components, modules of classes that represent independent systems with the ability to interface with the rest of the system
UML : component diagrams

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

what do component diagrams show

A

Component diagrams show how different components in a system
interact.

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

Ball

A

provided interface

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

Socket

A

required interface

17
Q

format of the development view

A
  • Rectangles = components
  • Symbol in top right corner
  • Type and name at the top Squares = ports
  • Squares = ports
  • Sometimes used to mark interfaces
  • Ball = provided interface
  • Socket = required interface
18
Q

What is the process view

A

This view is concerned with the dynamic aspects of the system, explaining the system processes and how they communicate , they focus on the runtime behaviour of the system
UML : sequence / activity diagrams

19
Q

what do activity diagrams show

A

They show the workflow of a system

20
Q

structure of the activity diagram

A

Activity diagrams show the workflow of a system

Blocks represent actions
Diamonds represent decisions
Bars represent forks/joins of concurrent
activities
Circle represents start
Outlined circle represents end of process

Similar to state diagrams, but show system activities
rather than object states

21
Q

What do sequence diagrams show

A

Sequence diagrams show how components/objects in a system
interact over time , associated with the logical view

22
Q

how are sequence diagrams made

A
  • Box on top represents an object/component
  • Stick figure on top represents an external actor
  • Dotted vertical line represents lifeline of system
  • Blocks along lifeline represent processes
  • Solid arrows represent communications
    (method calls)
  • Dotted arrows represent returns
  • Large box represents loops
  • Loop conditions in top left corner
  • Text above/below lines indicates methods and
    parameters
23
Q

What is the physical view and how does it work

A

The physical view is concerned with the physical distribution of the system , as well as the physical connections between distributed parts
This depicts the system from a systems engineers point of view
UML : deployment diagrams

24
Q

what are deployment diagrams

A

model the physical deployment of artifacts (software components) on nodes (hardware components)

25
how is the deployment diagrams built
* Artifacts modeled by rectangles * Sometimes a symbol in top right * Nodes modeled by 3D boxes * Communication modeled by lines
26
what are the 2 types of nodes in deployment diagrams
Two types of nodes * Device nodes – physical devices that run software (computer, phone) * Execution Environment Node (EEN) – software resource that runs on a device and can execute other software (server, browser) * Distributed nodes can be conceptually represented as one
27
Explain the scenario view
Scenarios, sometimes known as the use case view, describe the system’s architecture through use cases – the list defining interactions between a role and a system to achieve some goal UML : case diagrams
28