list three main software components that may fail when a diend process invokes a method failure in each case?
three main software components
- Anonymous1 decade agoFavorite Answer
Component-based software engineering (CBSE) (also known as Component-Based Development (CBD) or Software Componentry) is a branch of the software engineering discipline, with emphasis on decomposition of the engineered systems into functional or logical components with well-defined interfaces used for communication across the components.
Components are considered to be a higher level of abstraction than objects and as such they do not share state and communicate by exchanging messages carrying data.
A software component is a system element offering a predefined service or event, and able to communicate with other components. Clemens Szyperski and David Messerschmitt give the following five criteria for what a software component shall be to fulfill the definition:
* Composable with other components
* Encapsulated i.e., non-investigable through its interfaces
* A unit of independent deployment and versioning
A simpler definition can be: A component is an object written to a specification. It does not matter what the specification is: COM, Enterprise JavaBeans, etc., as long as the object adheres to the specification. It is only by adhering to the specification that the object becomes a component and gains features such as reusability.
Software components often take the form of objects or collections of objects (from object-oriented programming), in some binary or textual form, adhering to some interface description language (IDL) so that the component may exist autonomously from other components in a computer.
When a component is to be accessed or shared across execution contexts or network links, techniques such as serialization or marshalling are often employed to deliver the component to its destination.
Reusability is an important characteristic of a high quality software component. A software component should be designed and implemented so that it can be reused in many different programs.
It takes significant effort and awareness to write a software component that is effectively reusable. The component needs:
* to be fully documented;
* more thorough testing;
* robust input validity checking;
* to pass back useful error messages as appropriate;
* to be built with an awareness that it will be put to unforeseen uses;
* a mechanism for compensating developers who invest the (substantial) efforts implied above.
In the 1960s, scientific subroutine libraries were built that were reusable in a broad array of engineering and scientific applications. Though these subroutine libraries reused well-defined algorithms in an effective manner, they had a limited domain of application. Today, modern reusable components encapsulate both data structures and the algorithms that are applied to the data structures.
It builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object oriented design of all these. It claims that software components, like the idea of hardware components, used for example in telecommunications, can ultimately be made interchangeable and reliable.
- GailLv 45 years ago
Well, the focus is that from Bush on down they said America does not torture. They said that Abu Ghraib was an anomaly, a bunch of bad apple. But now we know that we did indeed torture just months before the torture memos came out. In other words, we tortured people before Bush's lawyers found a way to make torture legal. And while we did torture, we disavowed to use of it. Can you say lying sack of dog sh*t artists?