Page 55 - DCAP507_SYSTEM_SOFTWARE
P. 55
Unit 3: Machine Structure and Assembler Basic Functions
disorganized, often characterized by a set of box-and-line diagrams. During the 1990s there was Notes
a concentrated effort to define and codify fundamental aspects of the discipline. Initial sets of
design patterns, styles, best practices, description languages, and formal logic were developed
during that time.
The software architecture discipline is centered on the idea of reducing difficulty through
abstraction and separation of concerns. To date there is still no agreement on the precise definition
of the term "software architecture".
Notes However, this does not mean that individuals do not have their own definition of
what software architecture is. This leads to problems because many people are using the
same language to describe differing ideas.
As a growing regulation with no clear rules on the right way to build a system, designing
software architecture is still a mix of art and science. The "art" aspect of software architecture is
because a profitable software system supports some aspect of a business or a mission. How a
system supports key business drivers is described via scenarios as non-functional requirements
of a system, also known as quality attributes, decide how a system will behave. This could be
thought of as a parallel to a mission statement and value system in business strategy. Every
system is unique due to the nature of the business drivers it supports, as such the degree of
quality attributes exhibited by a system such as fault-tolerance, backward compatibility,
extensibility, reliability, maintainability, availability, security, usability, and such other facilities
will vary with each implementation. To bring a software architecture user's perspective into the
software architecture, it can be said that software architecture gives the direction to take steps
and do the tasks involved in each such user's specialty area and interest, e.g., the stakeholders of
software systems, the software developer, the software system operational support group, the
software maintenance specialists, the deployer, the tester and also the business end user. In this
sense software architecture is really the amalgamation of the multiple perspectives a system
always embodies.
!
Caution The fact that those several different perspectives can be put together into a software
architecture stands as the vindication of the need and justification of creation of software
architecture before the software development in a project attains maturity.
The beginning of software architecture as a concept was first recognized in the research work of
Edsger Dijkstra in 1968 and David Parnas in the early 1970s. These scientists emphasized that the
structure of a software system matters and getting the structure right is critical. The study of the
field increased in popularity since the early 1990s with research work concentrating on
architectural styles (patterns), architecture description languages, architecture documentation,
and formal methods.
Research institutions have played a well-known role in furthering software architecture as a
discipline. Mary Shaw and David Garlan of Carnegie Mellon wrote a book titled Software
Architecture: Perspectives on an Emerging Discipline in 1996, which brought forward the concepts
in Software Architecture, such as components, connectors, styles and so on. The University of
California, Irvine's Institute for Software Research's efforts in software architecture research is
directed primarily in architectural styles, architecture description languages, and dynamic
architectures.
LOVELY PROFESSIONAL UNIVERSITY 49