Individual Essay On Software Architecture - Parnas Vs Shaw: Student Name: Ra'eesah Joowalay Student ID: s2852595
Individual Essay On Software Architecture - Parnas Vs Shaw: Student Name: Ra'eesah Joowalay Student ID: s2852595
Individual Essay On Software Architecture - Parnas Vs Shaw: Student Name: Ra'eesah Joowalay Student ID: s2852595
Abstract
In a progressive technology era that we
comprise of today, it is of prodigious importance
that we embrace the factual understanding of the
evolution of software architecture and its
significance in facilitating people to adjust and
adapt to the changes of everyday lives.
This essay studies two pioneer papers about
software architecture and conglomerates the
common principles and ideologies of software
architecture. This study clearly shows the evolution
of software architecture and the foundations and
discoveries that will suffice in understanding its
importance and relevance in todays world.
Introduction
Over the past 30 years the advancement of
software architecture industry has been renowned
with each design stage developed to give optimum
results and implemented within the complexity of
systems to forgo a more simple and structured
overview. Software architecture is imperative as it
puts in place provisions and guidelines that are
necessities within the technology epoch that we
adhere to. Therefore we need to have an idealistic
understanding of its history and how it has evolved
over the years by observing the overall architecture
of a system and how we can decompose of the
system but maintain, test and implement designs
patterns into it. This essays studies two historical
papers about software architecture and its
developments and findings through-out the years.
One paper is a problematic research study and
evolution of software architecture and the other
paper is a more specified piece with realistic
approaches to software architecture. This first paper
was published in December 1972 by David Parnas.
The main ideas in that paper are understanding the
mechanisms of module decomposition and
modularization. The second paper was published in
1989 by Mary Shaw, fifteen years after Parnas
paper and covers the main ideas of abstractions and
view types of software architecture.
After studying the two papers, and compared
Discussion
In the first paper Parnas discusses
modularization and defines it As a mechanism for
improving the flexibility and comprehensibility of a
system while allowing the shortening of its
development time. (Parnas, 1972, p.1). Parnas
introduces module decomposition whereby he takes
a system and breaks down the program through two
forms of modularization. These two forms of
modularization are based on design verdicts rather
than a sequence of defined stages, to find a way of
Critical Analysis
Parnas paper identifies the early findings of
Information Hiding which have evolved over the
years and become a foundation for software
elements. Shaws paper is a furtherance of Parnas
work with a more clear aspect of abstraction
techniques of large scale systems. In hindsight,
Shaw was able to express interest in a more logical
context by extending on Parnas main ideas about
modules and explaining how instead of
approaching modules at a singularly level, it should
be noted that with larger-scale systems, they ought
to be categorized according to their level of
complexity and quality attributes which provides
opportunity to maintain, test and change parts of
the system without impact on the entire system.
Shaw states: This level of system organization and
design is the software architecture level. this
enforces Shaws arguments and discussions that are
evident in section 2 of her paper where Software
Architecture Level of Design is discussed. (Shaw,
1989, p.144).
Architecture can be defined in numerous ways,
however it somewhat delineates these main points;
design decisions and principals, software elements
and relationships. Architecture is the fundamental
organization of a system embodied in
its components, their relationships to each other,
and to the environment, and the principles guiding
its design and evolution. (IEEE, 1995, p.1471).
Software architecture is represented through
different view types that serve for different
purposes such as large scale systems which inhibit
subsystems that can be dealt with according to
provisions set in place. Designing architecture can
be simple or complex depending on the system.
Design patterns and tactics are used as they are
articulated by functional and non-functional
Conclusion
Even though software architecture has
developed rapidly in the last few decades, there is
however still a number of open problems from a
software architecture perspective. As the
fundamental hardware intensifies in capacity and
intricacy the need for a more improvised level of
simplicity of systems is needed. Shaws synopsis
indicated that there is still several problem areas to
attack, however in time when the problem arises, it
is expected that software architects are able to
overcome those obstacles with the direction and
knowledge of previous groundworks formulated
References
[1] David L. Parnas. On the Criteria to be Used on
Decomposing Systems into Modules, Communications
of the ACM, 15(12):1053-1058, 1972.
[2] Mary Shaw. Larger Scale Systems Require HigherLevel Abstractions, Proceedings of the Fifth
International Workshop on Software Specifications and
Design, 143-146, published 1989.
[3] J. Garland, R. Anthony. Large-Scale Software
Architecture: A Practical Guide using UML, 2003.
[4] P.Rogers. Encapsulation is not information hiding:
JavaWorld. 2001.
[5] P.Eeles. The Process of Software Architecting.
Technical Report, 2006.
[6] IEEE Computer Society, IEEE Standard for
Information Technology -- Software Life Cycle
Processes. IEEE Std 12207-1995.
[7] E. Gamma, R. Helm, R. Johnson & J. Vlissides.
Design Patterns: Elements of Reusable Object-Oriented
Software, 1994.
[8] S.Kumar. Evolution of Software Architecture at
Facebook, Computer Science, 2012.