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
softwarearchitecture [2014/06/17 02:52] – [Overview] 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|}}