Associate Architecture - jjin-choi/study_note GitHub Wiki
-
Object : An object represents an entity with a well-defined boundary and identity that encapsulates state and behavior.
- state : object μ μν.
- represented by attributes and relationship.
- normally changes over time
- behavior : object μ νμ.
- represented by operation, method, and state machine.
- modeled by the set of messages which it can respond to.
- Objects need to collaborate
- each object is responsible for its own behavior and status.
- No one object can carry out every responsibility on its own.
- λͺ¨λ object λ μκΈ° μμ μ behavior κ³Ό status μλ§ μ κ·Όν μ μκΈ° λλ¬Έμ object κ° μν΅νκΈ° μν΄μλ collaboration, μ¦ message passing μ΄ νμνλ€.
- state : object μ μν.
-
Class : A class is a description of a set of objects that share the same state and behavior.
- An object is an instance of a class.
- Attribute : A named property of a class that describes a range of values which instances of the property may hold.
- Operation : the implementation of a service which can be requested from any object of the class to affect behavior.
-
Relationship between class and object : A class is an abstract definition of an object.
-
Objects are grouped into classes
-
An object is an instance of a class
-
Link: Object_Oriented
-
-
-
Message : A specification of a communication between objects.
- Conveying information with the expectation that activity will ensue.
- One object asks another object to perform an operation.
-
Quiz 01. Object μ λν λ€μμ μ€λͺ μ€ μ¬λ°λ₯Έ κ²μ?
- object λ state μ behavior μ€ νλλ₯Ό κ°μ§λ€.
- object μ state λ μκ°μ΄ μ§λ¨μ λ°λΌ λ³νμ§ μλ μνλ₯Ό μλ―Ένλ€.
- object μ behavior λ μ ννκ² νλμ operation μ μν΄μ ννλλ€.
state μ λ³΄κ° λͺ¨λ κ°λλΌλ λ objects λ λ€λ₯Έ objects μ΄λ€.
-
Quiz 02. Class μ λν λ€μμ μ€λͺ μ€ μ¬λ°λ₯΄μ§ μμ κ²μ?
-
Class λ λ€μν μμ± (Properties) μ κ°λ a set of objects μ νλλ‘ λ¬Άμ΄μ£Όλ description μ΄λ€.- λ€μν μμ±μ΄ μλλΌ λμΌν μμ±μ κ°λλ€.
- Class λ object μ λν abstract definition μ΄λ€.
- Object λ class μ ν instance μ΄λ€.
- Class λ objects μ μμ± (creation) νλλ° μ¬μ©νλ μΌμ’ μ ν (template) μ΄λ€.
-
-
Abstraction
- "Any model that includes the most important, essential or distinguishing aspects of something while suppressing or ignoring less important, immaterial, or diversionary details. The result of removing distinctions emphasize commonalities." - Dictionary of Object Technology
- Emphasizes relevant characteristics, but suppresses other characteristics.
-
Encapsulation
- "Design, produce and describe software so that it can be easily used without knowing the details of how it works"
- A.k.a. information hiding
-
Inheritance
- "is a kind of", "is a" relationship
- A way of organizing classes
- Also known as generalization
- Classes with properties in common can be grouped so that their common properties are only defined once.
-
Polymorphism
- The ability to hide many different implementation behind a single interface.
- The same word or phrase can mean different things in different contexts
- Example) In English, a bank can mean side of a river or a place to put money. λ¬Έλ§₯ μ λ€λ₯Έ μλ―Έλ‘ ν΄μ
-
Composition
- Object composition : "has a" relationship between objects
- Defined dynamically at runtime by acquiring references to other objects.
- Does not break encapsulation, because objects are accessed solely through interfaces.
- Any compatible object can be replaced with another at runtime.
< μ¬μ§ μΆκ°νκΈ° >
-
Procedural Programming
- Organized with procedures (statements changing value of variables)
- Focusing on data structures, algorithm, and sequences of step
- μκ³ λ¦¬μ¦κ³Ό λ°μ΄ν° κ°μ dependency κ° μκΈ° λλ¬Έμ μκ³ λ¦¬μ¦μ μ΄λμλ μ¬μ©ν μ μμ.
- SASD (Structured Analysis & Structured Design) : ꡬ쑰μ λΆμ μ€κ³ λ°©λ²λ‘
- Top-down divide and conquer
- Data Flow Diagram (DFD) μ¬μ©
-
Object-Oriented Programming
- Organized with objects (data and operation)
- Object communications : No explicit data flow. only communication sequences among objects
- OOAD (OOA + OOD)
- Object-Oriented Analysis : discover the domain concepts/objects, identify requirements (use cases)
- Object-Oriented Design : define s/w objects (Static model), define how they collaborate to fulfill the requirements (dynamic models)
-
Software (Development) Process Model
-
Waterfall model : systematic & sequential approach
-
Iterative model
-
Agile development : rapid prototyping, development.
- iterative, incremental, actively involve users to establish requirements
-
Agile manifesto
- individual > processes and tools
- working s/w > documentation
- customer collaboration > contract negotiation
- responding to change > following a plan
-
Unified Process (UP) : iterative OOAD
- Risk driven (client, architecture)
- cycle : inception β elaboration β construction β transition
-
-
-
Quiz 01. OOAD μ λν μ€λͺ μ€ μ¬λ°λ₯΄μ§ μμ κ²μ? β λ€ λ§λ λ§μ΄κΈ΄ νμ§λ§, μ ννλ OOAD λ κ°λ° λ°©λ²λ‘ μ μλλ€.
- OOP μ μν μννΈμ¨μ΄ κ°λ° λ°©λ²λ‘ μ€ νλμ΄λ€.
- OOA λ Domain concepts/objects λ₯Ό μ°Ύλ λ¨κ³μ΄λ€.
- OOD λ¨κ³μμλ Software object λ₯Ό μ μνλ€.
- OOD μμλ object κ° μλ‘ μ΄λ»κ² collaboration νλμ§λ₯Ό μ μνλ€.
-
Quiz 02. UP κΈ°λ° OOAD λ°©λ²λ‘ μ λν μ€λͺ μ€ μ¬λ°λ₯΄μ§ μμ κ²μ?
-
Iterative, Incremental λ° Evolutionary ν μννΈμ¨μ΄ κ°λ° λ°©λ²λ‘ μ΄λ€.
-
Risk-driven νκ³ architecture-centric ν κ°λ° λ°©λ²λ‘ μ΄λ€.
-
Client 보λ€λ Architecture κ΄μ μμ λ°μν μ μλ risk λ₯Ό μ€μ΄λ κ²μ μ€μνκ² μκ°νλ€.- λ λ€ λμΌνκ² μ€μνλ€.
-
λͺ¨λ λ¨κ³μμ use cases κ° μ€μνκ² μ¬μ©λλ€.
- λͺ¨λ phase μμ iterative mini waterfall λ΄μμ λͺ¨λ use cases driven ν¨.
-
-
-