Information Technology Reference
In-Depth Information
Components are considered to be part of the starting platform for service orienta-
tion throughout software engineering, for example, Web services, and more recently,
service-oriented architecture (SOA), whereby a component is converted into a ser-
vice and subsequently inherits further characteristics beyond that of an ordinary
component. Components can produce events or consume events and can be used for
event-driven architecture. 36
Component software is common today in traditional applications. A large software
system often consists of multiple interacting components. These components can
perceived as large objects with a clear and well-defined task. Different definitions
of a component exist; some define objects as components, whereas others define
components as large parts of coherent code, intended to be reusable and highly
documented. However, all definitions have one thing in common: They focus on the
functional aspect of a component. The main goal of using components is the ability to
reuse them. Reuse of software currently is one of the much hyped concepts, because
it enables one to build applications relatively fast.
4.8
CONCLUSIONS
This chapter has explored the past, present, and future of software design methods.
Going back the 1960s and 1970s, software was developed in an unorganized fash-
ion, leading to many safety issues. As a result, software design methods had to be
developed to cope with this issue. In the early to mid-1990s, techniques such as
object-oriented programming became more and more popular.
The design approaches discussed were level-oriented, data-flow-oriented, data-
structure-oriented, and object-oriented. The basic software engineering principles
that should be considered when evaluating a particular software design method are
modularity, generality, anticipation of change, and consistency. When evaluating soft-
ware design methods based on these four principles, object-oriented design is the best
method available because object-oriented design is highly modular. Moreover, it can
be reused with relative ease. Object-oriented software also includes polymorphism,
which is the ability to assign different meanings to something in different contexts
and allows an entity such as a variable, a function, or an object to have more than
one form. Finally, tools such as design patterns and the UML make object-oriented
programming user friendly and easy to use. In fact, proponents of object-oriented
design argue that this type of programming is the easiest to learn and use, especially
for those who are relatively inexperienced in computer programming.
As software programming becomes more and more complicated, software archi-
tecture may become a more important aspect of software development. Software
architecture is the integration of software development methodologies and models,
and it is used to aid in managing the complex nature of software development.
System-level design is considered a way to reduce the complexities and to address
the challenges encountered in designing heterogeneous embedded systems. Three
36 http://en.wikipedia.org/wiki/Component-based software engineering.
 
Search WWH ::




Custom Search