User Tools

Site Tools


softwarearchitecture

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
softwarearchitecture [2014/06/17 02:42] – [Midleware] adminsoftwarearchitecture [2022/10/29 16:15] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Software Architecture ======
 +===== Software Component =====
 +===== Overview about software component ====
 +{{:other:componentbased.gif|}}
 +=== Overview ===
 +Sometimes called componentware, software designed to work **as a component of a larger application**. A good analogy is **the way personal computers are built up from a collection of standard components**: memory chips, CPUs, buses, keyboards, mice, disk drives, monitors, etc. Because** all of the interfaces between components are standardized**, it is possible to **mix components from different manufacturers in a single system**.
  
 +Similarly, the goal of component software is **to standardize the interfaces between software components** so that they too can work together seamlessly. Two standards -- OLE and OpenDoc -- are designed to help programmers develop components that can work together. Many analysts believe that **component software is the natural extension of object-oriented programming** and that it will become the standard programming paradigm for years to come.
 +=== Communicate between software components ===
 +components communicate with each other via **interfaces**. **Objects which implement an interface** for another object type are called **adapters**.\\
 +**adapters** can use to say **"I implement this interface”** . Other objects may then **make requests** like **“Please give me an object which implements interface X for object type Y”** . 
 +==== Software component in OOP ====
 +Understand about Components in OOP with **Interfaces and Adapters**:
 +  * Object oriented programming languages allow programmers to **reuse portions of existing code** by **creating new “classes” of objects which subclass another class**. When a class subclasses another, it is said to inherit all of its behaviour. The subclass can then “override” and “extend” the behavior provided to it by the superclass. 
 +  * **Inheritance** is very useful in many situations, but because it is so convenient to use, **often becomes abused in large software systems, especially when multiple inheritance is involved**. One solution is to use **delegation instead of “inheritance” where appropriate**. Delegation is simply **the act of asking another object to perform a task for an object**. To support this design pattern, which is often referred to as the components pattern because it involves many small interacting components, **interfaces and adapters were created**
 +===== Midleware =====
 +Middleware is a piece of software lying **between the operating system and the application**. Middleware makes it **easier** for software developers to **perform communication and input/output**, so they can focus on the specific purpose of their application\\
 +refer: {{:other:middleware.pdf|}}
 +{{:other:input-output_latency.svg.png|}}