Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Architecture and Design Illuminated, Chapter 9: Interaction…
-
-
-
-
-
-
-
Chapter 2
Software Connectors
non-blocking connectors
allow elements to send a request to another. Then
continue its execution without waiting for a response.
-
initiator: is a element of connectors, responsible to make requests
one-initiator connectors
allow to send request 1 way, from element A to B, not B to A
two-initiator
connectors
not only allow send request bidirectional, also send and receive to others
-
-
-
-
-
Chapter 4
SOLID 5 Principles
Dependency Injection
Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.
Interface segregation
A client should never be forced to implement an interface that it doesn’t use, or clients shouldn’t be forced to depend on methods they do not use.
Liskov Substitution
Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
-
Single Responsibility
A class should have one and only one reason to change, meaning that a class should have only one job.
For example, consider an application that takes a collection of shapes—circles, and squares—and calculates the sum of the area of all the shapes in the collection.
-
4 OOP Characteristics
Abstraction
When two object interact with the same object, they will often deal with a different set of attributes.
Refers to the ability to filter out unnecessary or unimportant information. When you interact with object in the world you only to focus on that which is important for the task you are wanting to carry out.
Encapsulation
No direct access is granted to the data, instead it is hidden. To gain access to the data, you interact with the object responsible for the data.
-
-
-
Inheritance
Where classes and object can be derived from parent classes and object, inheriting all the characteristics and methods and then extending them
Polomorphism
-
Two different object respond to the same request message in their own unique way. Object can respond to messages in their own unique implementation.
Chapter 3
View model in software architecture
- show the static structure of the system.
- includes meaningful concept of the system, maybe abstraction of implementation
Physical view
-
describes installation, configuration, and deployment of the software application.
-
-
Logical view
- Based on application domain entities necessary to implement the functional requirements.
- Points out all major tasks the system must complete
- Presents the major components and their static
relationships
UML Diagram
- show the structure design at level of classes and interfaces
- associations, generalizations, dependencies
Structure diagram
-
class diagram
-
domain model diagram
- show the diagram at basic level.
- each of block (entity ,enum or interface) include 2 parts: class name and its attributes
- each block can connect with others via relationships : associations, generalizations, dependencies
Association
-
Binary association
- binary association relates two typed instances.
- rendered as a solid line connecting two classifiers
- could be a single instance connect to itself
- the relationship between 2 classifier. that could be linked or combined to each other
-
Deployment target
- Artifacts are deployed to deployment targets.
- Deployment target is the location for a deployed artifact.
Artifacts
executable files, libraries, archives, database schemas, configuration files, ...
-
Behavior diagram
-
Sequence diagram
-
-
-
-
interaction use
syntax:
-
io-arguments ::= '(' io-argument [ ',' io-argument ]* ')'
interaction-use ::= [ attribute-name '=' ] [ collaboration-use '.' ] interaction-name [ io-arguments ] [ ':' return-value ]
-
-
-
-
-
-
Usecase diagram
-
-
use cases (verb)
includes
B includes A: if do A, must execute B (mandatory)
extends
A extends B: do A, then can do B (optional)
-
-