SlideShare a Scribd company logo
1 of 8
Download to read offline
Computer Engineering and Intelligent Systems                                                              www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012




   The Critical Need for Software Architecture Practices in Software
                         Development Process
                               Ishaya Gambo1* Rhoda Ikono2 Olaronke Iroju2 Theressa Omodunbi1
             1.   Computer Science and Engineering Department, Obafemi Awolowo University, Ile-Ife, Nigeria
                   2.   Computer Science Department, Adeyemi College of Education, Ondo State, Nigeria
                                    * E-mail of the corresponding author: ipgambo@gmail.com


Abstract
Software architecture is the master plan of every reliable software system. It is the building block of any kind of
software system which greatly determines the success of the system. This paper argues that every system needs a
good architecture and that requires the use of good architecture engineering practices in a software development
process. The paper recognized software architecture practice as a discipline pervading all phases of software
development and then identifies some of the pertinent areas where architectural practice can be used based on a
framework. In addition a model showing how software architecture fits into the phases of a generic software
development process lifecycle was presented. The model is to enable software developers and acquirers to use
effective software architecture practices during software development in order to exert significantly greater control
over software product qualities.

Keywords: Software architecture, Software Development, Software, Quality, Stakeholders, Software engineering

1. Introduction
With a view to finding a lasting solution to problems emanating from software complexities so as to ensure the
delivery of high quality systems, provide strong management support, maximise available resources, enhance
stakeholders’ communication and increase productivity; a dynamic design approach is needed. For decades,
software designers have been taught to build systems based exclusively on the technical requirements. Conceptually,
the requirements document is tossed over the wall into the designer's cubicle, and the designer must come forth with
a satisfactory design. Consequently, requirements are meant to beget design, which in turn begets the system.
However, this practice still poses a lot of complexity on software systems. According to Bass et al. (2003), “modern
software development methods recognize the naïveté of this model and provide all sorts of feedback loops from
designer to analyst”. Even with this notion, they still make the implicit assumption that design is a product of the
system's technical requirements. These technical requirements can be architecturally represented where the
relationship of the various components and elements can be shown.
In practice, effective software engineering requires facility in architectural software design. Architectural practices
have emerged as a crucial part of the design process, which is critical to any software intensive system. The
architecture serves as building block of any kind of software system and determines the degree of success of a
system. Software architecture in software engineering (SE) practices was introduced to help manage complexity and
risk during development and maintenance of software systems. It guides and documents the structure of the system
as well as the role each system’s components play within the structure. It embodies the earliest software design
decisions that enables or preclude the achievement of a desired system quality, such as reliability, modifiability,
security, performance, testability and usability etc. The architecture also forms the basis for the development
approach and acts as the blueprint that guides the teams building the system. Architectural decisions are the most
critical to get right and the most difficult to change downstream in the development life cycle. It is the result of
assembling a certain number of architectural elements in some well-chosen forms to satisfy the major functionality
and performance requirements of the system as well as some other non-functional requirements such as the quality
attributes listed above and described in Chung (2000). According to Clements et al. (2002), “software architecture is

                                                            1
Computer Engineering and Intelligent Systems                                                             www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



developed as the first step toward designing a system that has a collection of desired properties”. Perry and Wolfe
(1992) put it very nicely in this formula “(Software architecture = {Elements, Forms, Rationale/Constraints})”. This
was modified by Boehm (1995) with the opinion that “software architecture deals with abstraction, with
decomposition and composition, and with style and aesthetics.”
However, the role software architecture plays in the overall system quality has been established by Clements et al.
(2002). If the architecture is not right, the system will not meet its requirements. Software architecture has been
identified as an increasingly important part of software development. With the architecture, software developers are
able to define the internal structure of any system. The requirements towards software systems usually go beyond the
correct functionality, the presence of certain quality demands are also very essential for the systems' acceptance by
the stakeholders and users. All these are the promises from architectural practices in a software development process.
Therefore, in this paper we recognized software architecture as the master plan of every reliable software system,
which greatly determines the success of the system. The paper opined that every system needs a good architecture
and that requires the use of good architecture engineering practices in a software development process. We also
recognized that software architecture practice as a discipline should be integrated into all phases of software
development in a generic software process lifecycle.

2. Software Architecture Practice
To practitioners, researchers, educationist and/or academia in industries and government, software architecture is an
area of growing importance. The April 1995 issue of IEEE Transactions on Software Engineering and the November
1995 issue of IEEE Software were all devoted to software architecture. Industry and government working groups on
software architecture are becoming more frequent. Workshops and presentations on software architecture are
beginning to populate software engineering conferences. Most science and technology based reputable journals
always welcome contributions on software architectural issues. Another example is the October 1996 ACM
Symposium on the Foundations of Software Engineering, which strictly had a focus on software architecture. Today,
software architecture practice is one sub-discipline within software engineering that is concerned with the high-level
design of the software of one or more systems. Software architecture are created, evolved, and maintained in a
complex environment. In Bass et al. (2003) we have the architecture business cycle illustrated as shown in figure 1
below. From the left we have different factors that influence a software architecture through an architect. We also
have from figure 1 the factors that are formed by requirements which are gotten from the stakeholders and
developing organization.




                             Figure1. The architecture business cycle (Source: Bass et al., 2003)
The requirements clearly states what the system is expected to achieve, and the architect need to capture this by
making sure the architecture defines how it could be achieved. From the business lifecycle, we have a feedback loop
where the perceptions of the system and architecture influences are conveyed to the stakeholders. With this, the
architecture is able to serve as a communication vehicle among stakeholders. The feedback loop is depicted in figure
1 with the arcing arrows from the system and architecture to the stakeholders’ influences. The architecture business

                                                              2
Computer Engineering and Intelligent Systems                                                                 www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



lifecycle shows that the architecture can be used;
     a)   to outlined a design for the software system
     b) to plan ahead the evolution of the software system, where it can be used as part of a technology roadmap
     c)   to communicate major decisions among stakeholders, which can influence the software system
     d) to decompose software into smaller parts, which enables developers and/or engineers to work comparably
        on the software.
     e)   to predict the quality of the system

3. Software Development Process and Architectural Design
Soriyan (2004) opined that “software development process is a transformation process executed by series of agents
(people and machine) which perform a variety of activities and whose association results in the production of a
software system. Software development process is an engineering practice that is concern with the analysis, design,
deployment/implementation and maintenance of software system using a framework and/or model with a view of
sociotechnical influences. This further support the idea by Soriyan (2004) that “the wide use of software systems has
made software engineering an integral part of human existence”. As an engineering process practice, it traditionally
focuses on the practical means of developing software (Warsta, 2002). Salo (2006) emphasizes that software
development process is aimed at providing the technological framework for applying tools and people to the
software task. The essence of systems development process include ensuring that high quality systems are delivered,
providing strong management controls over the projects, and maximizing the productivity of the development team
(Bender, 2003). However, in today’s software development process for example, quality requirements is a
fundamental issues to the stakeholders (developers, users, architect, analyst etc), and it is in our opinion that this can
be determined during architectural design and decision. For example, developers and acquirers of software systems
need their systems to be modifiable and perform predictably. They also need them to be secure, interoperable,
portable, usable and reliable. This quality attributes depend on choosing the correct software architecture. As systems
become larger and more complex, software architecture takes on an even more important role in software
development. Thus, software architecture drives software development throughout the life cycle. In literature
different development process model exists such as the Waterfall, Prototype, Agile, Incremental, Iterative, and Spiral
models etc. In the phases of each process model in the development cycle, software architecture can come in
between the requirement and design phases, and then we can also establish it roles in each phase of the development
process. This is shown in figure 3 where software architecture is integrated into all phases of the lifecycle. In the
model we note that during the requirements, an architecture may be used to identify, prioritize, and record system
concerns and desired. During design and analysis, an architecture may be used to model, visualize, and analyze
design decisions chosen to address the principal concerns and achieve the desired qualities. Decisions may be guided
by adopting one or more architectural styles. During implementation and testing, an architecture may be used to
drive testing, instantiate a product, support runtime dynamism, or enforce security policies. Rather than thrown out
an architecture at this point, as is often done, an architecture remains part of the product. During maintenance, an
architecture may be used as a basis for incorporating new features, or increasing modeling detail.
At the software development process level, the architectural design can be determined based on what the architecture
is use for. The criterion to determine this whether it is a component, or a relationship between components, or a
property (of components or relationships) that needs to be externally visible in order to reason about the ability of the
system to meet its quality requirements or to support decomposition of the system into independently implementable
pieces.

4. Utilizing Software Architecture Practice
The description of software architecture has taken different views which can be utilized for several indispensable
tasks during the development process of any system. Consequently, modern approaches to software architecture have
taken a multi-view approach. However, some literatures like Kazman et al. (2003), Kruchten (1995), and Hofmeister
et al. (1995) agree at a point that for a software architecture description, different views are necessary for describing

                                                            3
Computer Engineering and Intelligent Systems                                                               www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



the different aspects of a software system. Among these views are the description of the static organisation of the
software system and the development environment as well as the description of the hardware architecture. A view is
the representation of one or more structures present in the system. The use of multiple views allows to address
separately the concerns of the various ‘stakeholder’ of the architecture, and to handle separately the functional and
non-functional requirements, which are referred to as software quality. A typical example of this could be the
architecture of a building where various stakeholders (such as the construction engineer, the plumber, and the
electrician) all have an interest in how the building is to be constructed. Although they are interested in different
components and different relationships, each of their views is valid. Each view represents a structure that maps to
one of the architecture of the construction goals of the building, and these multiple views are necessary to represent
the architecture of the building fully. Similarly, a software architecture has a variety of stakeholders, including
developers, maintainers, testers, integrators, system administrators, project managers, analysts, certification
authorities, and end users. Each of these stakeholders has a vested interest in different system properties and goals
that are represented by different structural views of the system. The views provide the basis for reasoning about the
appropriateness and quality of the architecture for achieving system quality goals. The views also address one
specific set of concern using several concurrent views.
Furthermore, the architecture can be utilized in the aspect of defining what exactly has to be developed. This makes
it a guideline and a means of control for the system development. In terms of relating quality issues of a system, the
architecture can be used as a reference tool for evaluation. This makes it possible to use the architecture for quality
control and assurance. Further utilization of the architecture should be primarily engineered by the architects who
codify the design decisions by providing a machine-readable design artifact. The design artifact when imagined can
be used to enhance communication and understanding by providing different perspective for interaction among
stakeholders.


5. Pertinent Areas of Software Architecture Practices
In the conceptual framework shown in figure 2, we established a flow of possible areas where software architecture
practice can be used. As shown in the framework, the architect designs the architecture of the system, which has to
satisfy some quality requirements from the stakeholders’ perspective. Secondly, the architect will need to design the
system to meet the quality requirements of stakeholders for the system. Thirdly, the system need to be evaluated
using the architecture as the reference tool. On the evaluation for quality issues, the question of “what method” and
“on what model” arises. From literary source, there exists lots of architecture evaluation methods and/or tools such as;
Software Architecture Analysis Method (SAAM) by Kazman et al. (1994), Architectural Trade-off Analysis Method
(ATAM) by Kazman et al. (1998), Scenario-Based Architecture Reengineering (SBAR), Architecture Level
Prediction of Software Maintenance (ALPSM), A Software Architecture Evaluation Model (SAEM), Architecture
Level Analysis Method (ALMA), Family Architecture Assessment Method (FAAM), Cost-Benefit Analysis Method
(CBAM), Active Reviews for Intermediate Designs (ARID), PASA (Performance Assessment of Software
Architecture), QAW (Quality Attribute Workshop) and SALUTA ( Scenario-based Architecture Level UsabiliTy
Analysis), which can be used for evaluation purposes. Following the framework in figure 2, we deduced some of the
pertinent areas of software architecture practice which include:
     •    Development of software system using architecture-based development methodologies and design tools.
          This includes; the styles, patterns, and tactics.
     •    Evaluating, analyzing and/or assessing software architecture for suitability, conformance or fitness of
          purpose. To support this, the work of Jan Bosch in Bosch (2000) gave three types of architecture assessment
          methods. This includes; Scenario based assessment, Simulation and mathematical modeling. All of these
          methods can be used in practice.
     •    Predicting of quality attributes of systems to satisfy the developed system and meet the quality requirements
          of stakeholders. This can be done using software quality models by relating it at the architectural level. An
          example is the relationship between software architecture and testing. This gives an idea into the
          investigation of testability. Another example could be investigating the usability of the system from the
          architectural perspective. This is because quality attributes of a software system are to a large extent

                                                           4
Computer Engineering and Intelligent Systems                                                                                                           www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



          determined by a system’s software architecture.




    Quality
 Requirements              Satisfy


 Meets




                                                                                                              System
                                         PC Client

                                         Functional and stylistic user interface standard
                                                                                                                                                     • What

                                                         Web browser application                                                (Not
                                                                                                                                                       Method?
                           Design                    Visual Basic application
                                                                                                                                Implemented)

                                                 Delphi application                                                                                  • On what
                                                   Basic file       Transactio         Reports        Login,
                                                   entry,
                                                   edit,
                                                                    n
                                                                    functions
                                                                                                      security,
                                                                                                      menus,
                                                                                                                                                       Model?
                                          Functional component interface


Architect/Developer                                      Java components
                                                     Visual Basic components
                                                 Pascal components
                                                     XFID                              XFID
                                                     comp.                             comp.
                                                     FM Components                                     PRC log-in

                                            M Remote Procedure Call API


                                                                           RPC Broker Client

                                                                                                                                          Evaluates
                                                TCP/IP network

                                                                                                                                               for
                                                                                RPC Broker                   Remote Proc File
                                                                                  Server
                                          M Remote Procedure Call API



                                                   Fileman              Kernel 8           XFIX 1.0           M Application
                                                      21


                                                                            FileMan database

                                          M server



                                                                 Software Architecture
                              Figure 2. Conceptual framework of software architecture practice




                                                                                   5
Computer Engineering and Intelligent Systems                                                              www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



6. How Software Architecture Practice fits into Software Development Process Lifecycle
Software architecture practice can be integrated into all the phases of software development methodologies and
models. This is used to distinguish it from particular analysis and design methodologies. Since the architecture
determines the quality of the system, it then makes a lot of sense to have architectural design built into the software
development process. As shown in figure 3 below, software architecture is integrated into all the phases in
development process. The role of software architecture in each phase of the software development process is
established. The model shows that during the requirements phase of development, an architecture may be used to
identify, prioritize, and record system concerns and desired. During design and analysis, an architecture may be used
to model, visualize, and analyze design decisions chosen to address the principal concerns and achieve the desired
qualities. Decisions may be guided by adopting one or more architectural styles. During implementation and testing,
an architecture may be used to drive testing, instantiate a product, support runtime dynamism, or enforce security
policies. Rather than thrown out an architecture at this point, as is often done, an architecture remains part of the
product. During maintenance, an architecture may be used as a basis for incorporating new features, or increasing
modeling detail.




                       Figure-3. A model integrating architecture into software development process


7. Conclusion
Just like any other complex structure, all software must be built on a solid foundation. Obviously, the failure to
consider fundamental scenarios, failure to gratify the long term consequences of key decisions can put most software
applications at risk. In this regards, software architecture should stand as the solid foundation upon which software
systems are built. Software architecture should be seen and taken as a key business asset for an organization. The
development process is well known as a contributor to software product quality, leading to application of software
process improvement as a key technique for the overall improvement of the software product. This can be said for
any form of software development. Consequently, software developers and system acquirers can use effective

                                                            6
Computer Engineering and Intelligent Systems                                                             www.iiste.org
ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online)
Vol 3, No.7, 2012



software architecture practices across the life cycle to ensure predictable product qualities, cost, and schedule. We
establish in this paper that software architecture is the bridge between mission/business goals and a software system.
Secondly, software architecture drives software development throughout the life cycle, and finally the paper
identifies some of the issues to consider in order to make software architecture useful in practical software
development process for developers, researchers, and acquirers, thereby enabling them to embrace the central role of
software.


References
Bass, L., Clements, P., and Kazman, R. (2003). “Software Architecture in Practice”, second ed. Addison-Wesley,
Reading, MA.
Chung, L. Nixon, B. Yu E. and Mylopoulos, J. (2000). “Non-functional requirements in software engineering”.
Kluwer Academic, Boston, 2000.
Clements, P., Kazman, R., and Klein, M. (2002). “Evaluating Software Architecture: Methods and Case Studies”:
Addison-Wesley, Boston, MA.
Perry, D., and Wolf, A. (1992). "Foundations for the Study of Software Architecture," ACM SIGSOFT Software
Engineering Notes, Vol. 17, No. 4, pp. 40-52.
Boehm, B. (1995): “Cost Models for Future Software Processes: COCOMO 2.0,” Annals of Software Engineering.
Soriyan (2004): Soriyan, H. (2004). “A Conceptual Framework for Information Systems Development
Methodologies for Education And Industrial Sector In Nigeria”. PhD Thesis, Obafemi Awolowo University Ile-Ife.
Warsta, J. (2002). “Agile Software Development Methods Review and Analysis”. VTT Publications.
Salo, O. (2006). “Enabling Software Process Improvement in Agile Software Development Teams and
Organizations”. VTT Publications.
Bender RBT Inc. (2003). “Systems Development Lifecycle: Objectives and Requirements”. Bender RBT Inc,
Queensbury, New York.
Kazman, R., Bass, L., Clements, P. (2003). “Software Architecture in Practice”. Addison Wesley, second edition.
Kruchten, P. (1995). “Architectural Blueprints - The .4+1. View Model of Software Architecture”. IEEE Software 12
(6), pp. 42-50.
Hofmeister, C., Soni, D., and Nord, R. (1995). “Software architecture in industrial applications”. Proceedings of the
17th international conference on Software engineering. pages 196-207, Seattle, Washington, USA.
Kazman, R., Abowd, G., and Webb, M. (1994) "SAAM: A Method for Analyzing the Properties of Software
Architectures", Proceedings of the 16th International Conference on Software Engineering, pp. 81-90.
Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., and Carriere, J. (1998) "The Architecture Tradeoff
Analysis Method", Proceedings of ICECCS'98.
Bosch, J. (2000). “Design and Use of Software Architectures: Adopting and Evolving a Product Line Approach”,
Pearson Education (Addison-Wesley and ACM Press).2000.




                                                          7
This academic article was published by The International Institute for Science,
Technology and Education (IISTE). The IISTE is a pioneer in the Open Access
Publishing service based in the U.S. and Europe. The aim of the institute is
Accelerating Global Knowledge Sharing.

More information about the publisher can be found in the IISTE’s homepage:
http://www.iiste.org


The IISTE is currently hosting more than 30 peer-reviewed academic journals and
collaborating with academic institutions around the world. Prospective authors of
IISTE journals can find the submission instruction on the following page:
http://www.iiste.org/Journals/

The IISTE editorial team promises to the review and publish all the qualified
submissions in a fast manner. All the journals articles are available online to the
readers all over the world without financial, legal, or technical barriers other than
those inseparable from gaining access to the internet itself. Printed version of the
journals is also available upon request of readers and authors.

IISTE Knowledge Sharing Partners

EBSCO, Index Copernicus, Ulrich's Periodicals Directory, JournalTOCS, PKP Open
Archives Harvester, Bielefeld Academic Search Engine, Elektronische
Zeitschriftenbibliothek EZB, Open J-Gate, OCLC WorldCat, Universe Digtial
Library , NewJour, Google Scholar

More Related Content

What's hot

Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
Himanshu
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance Framework
IJERA Editor
 
L1 overview of software engineering
L1  overview of software engineeringL1  overview of software engineering
L1 overview of software engineering
Rushdi Shams
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
Majong DevJfu
 

What's hot (19)

software architecture
software architecturesoftware architecture
software architecture
 
Cm24585587
Cm24585587Cm24585587
Cm24585587
 
IMPLEMENTATION OF MOSRE FRAMEWORK FOR A WEB APPLICATION - A CASE STUDY
IMPLEMENTATION OF MOSRE FRAMEWORK FOR A WEB APPLICATION - A CASE STUDYIMPLEMENTATION OF MOSRE FRAMEWORK FOR A WEB APPLICATION - A CASE STUDY
IMPLEMENTATION OF MOSRE FRAMEWORK FOR A WEB APPLICATION - A CASE STUDY
 
03 basic concepts
03 basic concepts03 basic concepts
03 basic concepts
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
International Journal of Computer Science, Engineering and Information Techn...
International Journal of Computer Science, Engineering and  Information Techn...International Journal of Computer Science, Engineering and  Information Techn...
International Journal of Computer Science, Engineering and Information Techn...
 
System engineering
System engineeringSystem engineering
System engineering
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance Framework
 
L1 overview of software engineering
L1  overview of software engineeringL1  overview of software engineering
L1 overview of software engineering
 
Importance of software architecture 1
Importance of software architecture 1Importance of software architecture 1
Importance of software architecture 1
 
Lopez
LopezLopez
Lopez
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
 
Agile programming
Agile programmingAgile programming
Agile programming
 
STUDY OF AGENT ASSISTED METHODOLOGIES FOR DEVELOPMENT OF A SYSTEM
STUDY OF AGENT ASSISTED METHODOLOGIES FOR DEVELOPMENT OF A SYSTEMSTUDY OF AGENT ASSISTED METHODOLOGIES FOR DEVELOPMENT OF A SYSTEM
STUDY OF AGENT ASSISTED METHODOLOGIES FOR DEVELOPMENT OF A SYSTEM
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
Se lec1 (1)
Se lec1 (1)Se lec1 (1)
Se lec1 (1)
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 

Similar to The critical need for software architecture practices in software development process

1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
jackiewalcutt
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Zainab Nayyar
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements Engineering
Kristen Wilson
 
David vernon software_engineering_notes
David vernon software_engineering_notesDavid vernon software_engineering_notes
David vernon software_engineering_notes
mitthudwivedi
 
Hardware Design Practices For Modern Hardware
Hardware Design Practices For Modern HardwareHardware Design Practices For Modern Hardware
Hardware Design Practices For Modern Hardware
Winstina Kennedy
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 

Similar to The critical need for software architecture practices in software development process (20)

1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
 
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...
ITERATIVE AND INCREMENTAL DEVELOPMENT ANALYSIS STUDY OF VOCATIONAL CAREER INF...
 
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
 
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
 
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_SurveyPaper_19-Software_Architecture_Reconstruction_Method_a_Survey
Paper_19-Software_Architecture_Reconstruction_Method_a_Survey
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLESA COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
A COMPARATIVE ANALYSIS ON SOFTWARE ARCHITECTURE STYLES
 
H1803044651
H1803044651H1803044651
H1803044651
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements Engineering
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
Architectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software ArchitecturesArchitectural Styles And The Design Of Network-Based Software Architectures
Architectural Styles And The Design Of Network-Based Software Architectures
 
Lecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.docLecture-_-5-_SDA_software design and architecture.doc
Lecture-_-5-_SDA_software design and architecture.doc
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
David vernon software_engineering_notes
David vernon software_engineering_notesDavid vernon software_engineering_notes
David vernon software_engineering_notes
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Hardware Design Practices For Modern Hardware
Hardware Design Practices For Modern HardwareHardware Design Practices For Modern Hardware
Hardware Design Practices For Modern Hardware
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
 
Se
SeSe
Se
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 

More from Alexander Decker

Abnormalities of hormones and inflammatory cytokines in women affected with p...
Abnormalities of hormones and inflammatory cytokines in women affected with p...Abnormalities of hormones and inflammatory cytokines in women affected with p...
Abnormalities of hormones and inflammatory cytokines in women affected with p...
Alexander Decker
 
A usability evaluation framework for b2 c e commerce websites
A usability evaluation framework for b2 c e commerce websitesA usability evaluation framework for b2 c e commerce websites
A usability evaluation framework for b2 c e commerce websites
Alexander Decker
 
A universal model for managing the marketing executives in nigerian banks
A universal model for managing the marketing executives in nigerian banksA universal model for managing the marketing executives in nigerian banks
A universal model for managing the marketing executives in nigerian banks
Alexander Decker
 
A unique common fixed point theorems in generalized d
A unique common fixed point theorems in generalized dA unique common fixed point theorems in generalized d
A unique common fixed point theorems in generalized d
Alexander Decker
 
A trends of salmonella and antibiotic resistance
A trends of salmonella and antibiotic resistanceA trends of salmonella and antibiotic resistance
A trends of salmonella and antibiotic resistance
Alexander Decker
 
A transformational generative approach towards understanding al-istifham
A transformational  generative approach towards understanding al-istifhamA transformational  generative approach towards understanding al-istifham
A transformational generative approach towards understanding al-istifham
Alexander Decker
 
A time series analysis of the determinants of savings in namibia
A time series analysis of the determinants of savings in namibiaA time series analysis of the determinants of savings in namibia
A time series analysis of the determinants of savings in namibia
Alexander Decker
 
A therapy for physical and mental fitness of school children
A therapy for physical and mental fitness of school childrenA therapy for physical and mental fitness of school children
A therapy for physical and mental fitness of school children
Alexander Decker
 
A theory of efficiency for managing the marketing executives in nigerian banks
A theory of efficiency for managing the marketing executives in nigerian banksA theory of efficiency for managing the marketing executives in nigerian banks
A theory of efficiency for managing the marketing executives in nigerian banks
Alexander Decker
 
A systematic evaluation of link budget for
A systematic evaluation of link budget forA systematic evaluation of link budget for
A systematic evaluation of link budget for
Alexander Decker
 
A synthetic review of contraceptive supplies in punjab
A synthetic review of contraceptive supplies in punjabA synthetic review of contraceptive supplies in punjab
A synthetic review of contraceptive supplies in punjab
Alexander Decker
 
A synthesis of taylor’s and fayol’s management approaches for managing market...
A synthesis of taylor’s and fayol’s management approaches for managing market...A synthesis of taylor’s and fayol’s management approaches for managing market...
A synthesis of taylor’s and fayol’s management approaches for managing market...
Alexander Decker
 
A survey paper on sequence pattern mining with incremental
A survey paper on sequence pattern mining with incrementalA survey paper on sequence pattern mining with incremental
A survey paper on sequence pattern mining with incremental
Alexander Decker
 
A survey on live virtual machine migrations and its techniques
A survey on live virtual machine migrations and its techniquesA survey on live virtual machine migrations and its techniques
A survey on live virtual machine migrations and its techniques
Alexander Decker
 
A survey on data mining and analysis in hadoop and mongo db
A survey on data mining and analysis in hadoop and mongo dbA survey on data mining and analysis in hadoop and mongo db
A survey on data mining and analysis in hadoop and mongo db
Alexander Decker
 
A survey on challenges to the media cloud
A survey on challenges to the media cloudA survey on challenges to the media cloud
A survey on challenges to the media cloud
Alexander Decker
 
A survey of provenance leveraged
A survey of provenance leveragedA survey of provenance leveraged
A survey of provenance leveraged
Alexander Decker
 
A survey of private equity investments in kenya
A survey of private equity investments in kenyaA survey of private equity investments in kenya
A survey of private equity investments in kenya
Alexander Decker
 
A study to measures the financial health of
A study to measures the financial health ofA study to measures the financial health of
A study to measures the financial health of
Alexander Decker
 

More from Alexander Decker (20)

Abnormalities of hormones and inflammatory cytokines in women affected with p...
Abnormalities of hormones and inflammatory cytokines in women affected with p...Abnormalities of hormones and inflammatory cytokines in women affected with p...
Abnormalities of hormones and inflammatory cytokines in women affected with p...
 
A validation of the adverse childhood experiences scale in
A validation of the adverse childhood experiences scale inA validation of the adverse childhood experiences scale in
A validation of the adverse childhood experiences scale in
 
A usability evaluation framework for b2 c e commerce websites
A usability evaluation framework for b2 c e commerce websitesA usability evaluation framework for b2 c e commerce websites
A usability evaluation framework for b2 c e commerce websites
 
A universal model for managing the marketing executives in nigerian banks
A universal model for managing the marketing executives in nigerian banksA universal model for managing the marketing executives in nigerian banks
A universal model for managing the marketing executives in nigerian banks
 
A unique common fixed point theorems in generalized d
A unique common fixed point theorems in generalized dA unique common fixed point theorems in generalized d
A unique common fixed point theorems in generalized d
 
A trends of salmonella and antibiotic resistance
A trends of salmonella and antibiotic resistanceA trends of salmonella and antibiotic resistance
A trends of salmonella and antibiotic resistance
 
A transformational generative approach towards understanding al-istifham
A transformational  generative approach towards understanding al-istifhamA transformational  generative approach towards understanding al-istifham
A transformational generative approach towards understanding al-istifham
 
A time series analysis of the determinants of savings in namibia
A time series analysis of the determinants of savings in namibiaA time series analysis of the determinants of savings in namibia
A time series analysis of the determinants of savings in namibia
 
A therapy for physical and mental fitness of school children
A therapy for physical and mental fitness of school childrenA therapy for physical and mental fitness of school children
A therapy for physical and mental fitness of school children
 
A theory of efficiency for managing the marketing executives in nigerian banks
A theory of efficiency for managing the marketing executives in nigerian banksA theory of efficiency for managing the marketing executives in nigerian banks
A theory of efficiency for managing the marketing executives in nigerian banks
 
A systematic evaluation of link budget for
A systematic evaluation of link budget forA systematic evaluation of link budget for
A systematic evaluation of link budget for
 
A synthetic review of contraceptive supplies in punjab
A synthetic review of contraceptive supplies in punjabA synthetic review of contraceptive supplies in punjab
A synthetic review of contraceptive supplies in punjab
 
A synthesis of taylor’s and fayol’s management approaches for managing market...
A synthesis of taylor’s and fayol’s management approaches for managing market...A synthesis of taylor’s and fayol’s management approaches for managing market...
A synthesis of taylor’s and fayol’s management approaches for managing market...
 
A survey paper on sequence pattern mining with incremental
A survey paper on sequence pattern mining with incrementalA survey paper on sequence pattern mining with incremental
A survey paper on sequence pattern mining with incremental
 
A survey on live virtual machine migrations and its techniques
A survey on live virtual machine migrations and its techniquesA survey on live virtual machine migrations and its techniques
A survey on live virtual machine migrations and its techniques
 
A survey on data mining and analysis in hadoop and mongo db
A survey on data mining and analysis in hadoop and mongo dbA survey on data mining and analysis in hadoop and mongo db
A survey on data mining and analysis in hadoop and mongo db
 
A survey on challenges to the media cloud
A survey on challenges to the media cloudA survey on challenges to the media cloud
A survey on challenges to the media cloud
 
A survey of provenance leveraged
A survey of provenance leveragedA survey of provenance leveraged
A survey of provenance leveraged
 
A survey of private equity investments in kenya
A survey of private equity investments in kenyaA survey of private equity investments in kenya
A survey of private equity investments in kenya
 
A study to measures the financial health of
A study to measures the financial health ofA study to measures the financial health of
A study to measures the financial health of
 

Recently uploaded

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 

The critical need for software architecture practices in software development process

  • 1. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 The Critical Need for Software Architecture Practices in Software Development Process Ishaya Gambo1* Rhoda Ikono2 Olaronke Iroju2 Theressa Omodunbi1 1. Computer Science and Engineering Department, Obafemi Awolowo University, Ile-Ife, Nigeria 2. Computer Science Department, Adeyemi College of Education, Ondo State, Nigeria * E-mail of the corresponding author: ipgambo@gmail.com Abstract Software architecture is the master plan of every reliable software system. It is the building block of any kind of software system which greatly determines the success of the system. This paper argues that every system needs a good architecture and that requires the use of good architecture engineering practices in a software development process. The paper recognized software architecture practice as a discipline pervading all phases of software development and then identifies some of the pertinent areas where architectural practice can be used based on a framework. In addition a model showing how software architecture fits into the phases of a generic software development process lifecycle was presented. The model is to enable software developers and acquirers to use effective software architecture practices during software development in order to exert significantly greater control over software product qualities. Keywords: Software architecture, Software Development, Software, Quality, Stakeholders, Software engineering 1. Introduction With a view to finding a lasting solution to problems emanating from software complexities so as to ensure the delivery of high quality systems, provide strong management support, maximise available resources, enhance stakeholders’ communication and increase productivity; a dynamic design approach is needed. For decades, software designers have been taught to build systems based exclusively on the technical requirements. Conceptually, the requirements document is tossed over the wall into the designer's cubicle, and the designer must come forth with a satisfactory design. Consequently, requirements are meant to beget design, which in turn begets the system. However, this practice still poses a lot of complexity on software systems. According to Bass et al. (2003), “modern software development methods recognize the naïveté of this model and provide all sorts of feedback loops from designer to analyst”. Even with this notion, they still make the implicit assumption that design is a product of the system's technical requirements. These technical requirements can be architecturally represented where the relationship of the various components and elements can be shown. In practice, effective software engineering requires facility in architectural software design. Architectural practices have emerged as a crucial part of the design process, which is critical to any software intensive system. The architecture serves as building block of any kind of software system and determines the degree of success of a system. Software architecture in software engineering (SE) practices was introduced to help manage complexity and risk during development and maintenance of software systems. It guides and documents the structure of the system as well as the role each system’s components play within the structure. It embodies the earliest software design decisions that enables or preclude the achievement of a desired system quality, such as reliability, modifiability, security, performance, testability and usability etc. The architecture also forms the basis for the development approach and acts as the blueprint that guides the teams building the system. Architectural decisions are the most critical to get right and the most difficult to change downstream in the development life cycle. It is the result of assembling a certain number of architectural elements in some well-chosen forms to satisfy the major functionality and performance requirements of the system as well as some other non-functional requirements such as the quality attributes listed above and described in Chung (2000). According to Clements et al. (2002), “software architecture is 1
  • 2. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 developed as the first step toward designing a system that has a collection of desired properties”. Perry and Wolfe (1992) put it very nicely in this formula “(Software architecture = {Elements, Forms, Rationale/Constraints})”. This was modified by Boehm (1995) with the opinion that “software architecture deals with abstraction, with decomposition and composition, and with style and aesthetics.” However, the role software architecture plays in the overall system quality has been established by Clements et al. (2002). If the architecture is not right, the system will not meet its requirements. Software architecture has been identified as an increasingly important part of software development. With the architecture, software developers are able to define the internal structure of any system. The requirements towards software systems usually go beyond the correct functionality, the presence of certain quality demands are also very essential for the systems' acceptance by the stakeholders and users. All these are the promises from architectural practices in a software development process. Therefore, in this paper we recognized software architecture as the master plan of every reliable software system, which greatly determines the success of the system. The paper opined that every system needs a good architecture and that requires the use of good architecture engineering practices in a software development process. We also recognized that software architecture practice as a discipline should be integrated into all phases of software development in a generic software process lifecycle. 2. Software Architecture Practice To practitioners, researchers, educationist and/or academia in industries and government, software architecture is an area of growing importance. The April 1995 issue of IEEE Transactions on Software Engineering and the November 1995 issue of IEEE Software were all devoted to software architecture. Industry and government working groups on software architecture are becoming more frequent. Workshops and presentations on software architecture are beginning to populate software engineering conferences. Most science and technology based reputable journals always welcome contributions on software architectural issues. Another example is the October 1996 ACM Symposium on the Foundations of Software Engineering, which strictly had a focus on software architecture. Today, software architecture practice is one sub-discipline within software engineering that is concerned with the high-level design of the software of one or more systems. Software architecture are created, evolved, and maintained in a complex environment. In Bass et al. (2003) we have the architecture business cycle illustrated as shown in figure 1 below. From the left we have different factors that influence a software architecture through an architect. We also have from figure 1 the factors that are formed by requirements which are gotten from the stakeholders and developing organization. Figure1. The architecture business cycle (Source: Bass et al., 2003) The requirements clearly states what the system is expected to achieve, and the architect need to capture this by making sure the architecture defines how it could be achieved. From the business lifecycle, we have a feedback loop where the perceptions of the system and architecture influences are conveyed to the stakeholders. With this, the architecture is able to serve as a communication vehicle among stakeholders. The feedback loop is depicted in figure 1 with the arcing arrows from the system and architecture to the stakeholders’ influences. The architecture business 2
  • 3. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 lifecycle shows that the architecture can be used; a) to outlined a design for the software system b) to plan ahead the evolution of the software system, where it can be used as part of a technology roadmap c) to communicate major decisions among stakeholders, which can influence the software system d) to decompose software into smaller parts, which enables developers and/or engineers to work comparably on the software. e) to predict the quality of the system 3. Software Development Process and Architectural Design Soriyan (2004) opined that “software development process is a transformation process executed by series of agents (people and machine) which perform a variety of activities and whose association results in the production of a software system. Software development process is an engineering practice that is concern with the analysis, design, deployment/implementation and maintenance of software system using a framework and/or model with a view of sociotechnical influences. This further support the idea by Soriyan (2004) that “the wide use of software systems has made software engineering an integral part of human existence”. As an engineering process practice, it traditionally focuses on the practical means of developing software (Warsta, 2002). Salo (2006) emphasizes that software development process is aimed at providing the technological framework for applying tools and people to the software task. The essence of systems development process include ensuring that high quality systems are delivered, providing strong management controls over the projects, and maximizing the productivity of the development team (Bender, 2003). However, in today’s software development process for example, quality requirements is a fundamental issues to the stakeholders (developers, users, architect, analyst etc), and it is in our opinion that this can be determined during architectural design and decision. For example, developers and acquirers of software systems need their systems to be modifiable and perform predictably. They also need them to be secure, interoperable, portable, usable and reliable. This quality attributes depend on choosing the correct software architecture. As systems become larger and more complex, software architecture takes on an even more important role in software development. Thus, software architecture drives software development throughout the life cycle. In literature different development process model exists such as the Waterfall, Prototype, Agile, Incremental, Iterative, and Spiral models etc. In the phases of each process model in the development cycle, software architecture can come in between the requirement and design phases, and then we can also establish it roles in each phase of the development process. This is shown in figure 3 where software architecture is integrated into all phases of the lifecycle. In the model we note that during the requirements, an architecture may be used to identify, prioritize, and record system concerns and desired. During design and analysis, an architecture may be used to model, visualize, and analyze design decisions chosen to address the principal concerns and achieve the desired qualities. Decisions may be guided by adopting one or more architectural styles. During implementation and testing, an architecture may be used to drive testing, instantiate a product, support runtime dynamism, or enforce security policies. Rather than thrown out an architecture at this point, as is often done, an architecture remains part of the product. During maintenance, an architecture may be used as a basis for incorporating new features, or increasing modeling detail. At the software development process level, the architectural design can be determined based on what the architecture is use for. The criterion to determine this whether it is a component, or a relationship between components, or a property (of components or relationships) that needs to be externally visible in order to reason about the ability of the system to meet its quality requirements or to support decomposition of the system into independently implementable pieces. 4. Utilizing Software Architecture Practice The description of software architecture has taken different views which can be utilized for several indispensable tasks during the development process of any system. Consequently, modern approaches to software architecture have taken a multi-view approach. However, some literatures like Kazman et al. (2003), Kruchten (1995), and Hofmeister et al. (1995) agree at a point that for a software architecture description, different views are necessary for describing 3
  • 4. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 the different aspects of a software system. Among these views are the description of the static organisation of the software system and the development environment as well as the description of the hardware architecture. A view is the representation of one or more structures present in the system. The use of multiple views allows to address separately the concerns of the various ‘stakeholder’ of the architecture, and to handle separately the functional and non-functional requirements, which are referred to as software quality. A typical example of this could be the architecture of a building where various stakeholders (such as the construction engineer, the plumber, and the electrician) all have an interest in how the building is to be constructed. Although they are interested in different components and different relationships, each of their views is valid. Each view represents a structure that maps to one of the architecture of the construction goals of the building, and these multiple views are necessary to represent the architecture of the building fully. Similarly, a software architecture has a variety of stakeholders, including developers, maintainers, testers, integrators, system administrators, project managers, analysts, certification authorities, and end users. Each of these stakeholders has a vested interest in different system properties and goals that are represented by different structural views of the system. The views provide the basis for reasoning about the appropriateness and quality of the architecture for achieving system quality goals. The views also address one specific set of concern using several concurrent views. Furthermore, the architecture can be utilized in the aspect of defining what exactly has to be developed. This makes it a guideline and a means of control for the system development. In terms of relating quality issues of a system, the architecture can be used as a reference tool for evaluation. This makes it possible to use the architecture for quality control and assurance. Further utilization of the architecture should be primarily engineered by the architects who codify the design decisions by providing a machine-readable design artifact. The design artifact when imagined can be used to enhance communication and understanding by providing different perspective for interaction among stakeholders. 5. Pertinent Areas of Software Architecture Practices In the conceptual framework shown in figure 2, we established a flow of possible areas where software architecture practice can be used. As shown in the framework, the architect designs the architecture of the system, which has to satisfy some quality requirements from the stakeholders’ perspective. Secondly, the architect will need to design the system to meet the quality requirements of stakeholders for the system. Thirdly, the system need to be evaluated using the architecture as the reference tool. On the evaluation for quality issues, the question of “what method” and “on what model” arises. From literary source, there exists lots of architecture evaluation methods and/or tools such as; Software Architecture Analysis Method (SAAM) by Kazman et al. (1994), Architectural Trade-off Analysis Method (ATAM) by Kazman et al. (1998), Scenario-Based Architecture Reengineering (SBAR), Architecture Level Prediction of Software Maintenance (ALPSM), A Software Architecture Evaluation Model (SAEM), Architecture Level Analysis Method (ALMA), Family Architecture Assessment Method (FAAM), Cost-Benefit Analysis Method (CBAM), Active Reviews for Intermediate Designs (ARID), PASA (Performance Assessment of Software Architecture), QAW (Quality Attribute Workshop) and SALUTA ( Scenario-based Architecture Level UsabiliTy Analysis), which can be used for evaluation purposes. Following the framework in figure 2, we deduced some of the pertinent areas of software architecture practice which include: • Development of software system using architecture-based development methodologies and design tools. This includes; the styles, patterns, and tactics. • Evaluating, analyzing and/or assessing software architecture for suitability, conformance or fitness of purpose. To support this, the work of Jan Bosch in Bosch (2000) gave three types of architecture assessment methods. This includes; Scenario based assessment, Simulation and mathematical modeling. All of these methods can be used in practice. • Predicting of quality attributes of systems to satisfy the developed system and meet the quality requirements of stakeholders. This can be done using software quality models by relating it at the architectural level. An example is the relationship between software architecture and testing. This gives an idea into the investigation of testability. Another example could be investigating the usability of the system from the architectural perspective. This is because quality attributes of a software system are to a large extent 4
  • 5. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 determined by a system’s software architecture. Quality Requirements Satisfy Meets System PC Client Functional and stylistic user interface standard • What Web browser application (Not Method? Design Visual Basic application Implemented) Delphi application • On what Basic file Transactio Reports Login, entry, edit, n functions security, menus, Model? Functional component interface Architect/Developer Java components Visual Basic components Pascal components XFID XFID comp. comp. FM Components PRC log-in M Remote Procedure Call API RPC Broker Client Evaluates TCP/IP network for RPC Broker Remote Proc File Server M Remote Procedure Call API Fileman Kernel 8 XFIX 1.0 M Application 21 FileMan database M server Software Architecture Figure 2. Conceptual framework of software architecture practice 5
  • 6. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 6. How Software Architecture Practice fits into Software Development Process Lifecycle Software architecture practice can be integrated into all the phases of software development methodologies and models. This is used to distinguish it from particular analysis and design methodologies. Since the architecture determines the quality of the system, it then makes a lot of sense to have architectural design built into the software development process. As shown in figure 3 below, software architecture is integrated into all the phases in development process. The role of software architecture in each phase of the software development process is established. The model shows that during the requirements phase of development, an architecture may be used to identify, prioritize, and record system concerns and desired. During design and analysis, an architecture may be used to model, visualize, and analyze design decisions chosen to address the principal concerns and achieve the desired qualities. Decisions may be guided by adopting one or more architectural styles. During implementation and testing, an architecture may be used to drive testing, instantiate a product, support runtime dynamism, or enforce security policies. Rather than thrown out an architecture at this point, as is often done, an architecture remains part of the product. During maintenance, an architecture may be used as a basis for incorporating new features, or increasing modeling detail. Figure-3. A model integrating architecture into software development process 7. Conclusion Just like any other complex structure, all software must be built on a solid foundation. Obviously, the failure to consider fundamental scenarios, failure to gratify the long term consequences of key decisions can put most software applications at risk. In this regards, software architecture should stand as the solid foundation upon which software systems are built. Software architecture should be seen and taken as a key business asset for an organization. The development process is well known as a contributor to software product quality, leading to application of software process improvement as a key technique for the overall improvement of the software product. This can be said for any form of software development. Consequently, software developers and system acquirers can use effective 6
  • 7. Computer Engineering and Intelligent Systems www.iiste.org ISSN 2222-1719 (Paper) ISSN 2222-2863 (Online) Vol 3, No.7, 2012 software architecture practices across the life cycle to ensure predictable product qualities, cost, and schedule. We establish in this paper that software architecture is the bridge between mission/business goals and a software system. Secondly, software architecture drives software development throughout the life cycle, and finally the paper identifies some of the issues to consider in order to make software architecture useful in practical software development process for developers, researchers, and acquirers, thereby enabling them to embrace the central role of software. References Bass, L., Clements, P., and Kazman, R. (2003). “Software Architecture in Practice”, second ed. Addison-Wesley, Reading, MA. Chung, L. Nixon, B. Yu E. and Mylopoulos, J. (2000). “Non-functional requirements in software engineering”. Kluwer Academic, Boston, 2000. Clements, P., Kazman, R., and Klein, M. (2002). “Evaluating Software Architecture: Methods and Case Studies”: Addison-Wesley, Boston, MA. Perry, D., and Wolf, A. (1992). "Foundations for the Study of Software Architecture," ACM SIGSOFT Software Engineering Notes, Vol. 17, No. 4, pp. 40-52. Boehm, B. (1995): “Cost Models for Future Software Processes: COCOMO 2.0,” Annals of Software Engineering. Soriyan (2004): Soriyan, H. (2004). “A Conceptual Framework for Information Systems Development Methodologies for Education And Industrial Sector In Nigeria”. PhD Thesis, Obafemi Awolowo University Ile-Ife. Warsta, J. (2002). “Agile Software Development Methods Review and Analysis”. VTT Publications. Salo, O. (2006). “Enabling Software Process Improvement in Agile Software Development Teams and Organizations”. VTT Publications. Bender RBT Inc. (2003). “Systems Development Lifecycle: Objectives and Requirements”. Bender RBT Inc, Queensbury, New York. Kazman, R., Bass, L., Clements, P. (2003). “Software Architecture in Practice”. Addison Wesley, second edition. Kruchten, P. (1995). “Architectural Blueprints - The .4+1. View Model of Software Architecture”. IEEE Software 12 (6), pp. 42-50. Hofmeister, C., Soni, D., and Nord, R. (1995). “Software architecture in industrial applications”. Proceedings of the 17th international conference on Software engineering. pages 196-207, Seattle, Washington, USA. Kazman, R., Abowd, G., and Webb, M. (1994) "SAAM: A Method for Analyzing the Properties of Software Architectures", Proceedings of the 16th International Conference on Software Engineering, pp. 81-90. Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., and Carriere, J. (1998) "The Architecture Tradeoff Analysis Method", Proceedings of ICECCS'98. Bosch, J. (2000). “Design and Use of Software Architectures: Adopting and Evolving a Product Line Approach”, Pearson Education (Addison-Wesley and ACM Press).2000. 7
  • 8. This academic article was published by The International Institute for Science, Technology and Education (IISTE). The IISTE is a pioneer in the Open Access Publishing service based in the U.S. and Europe. The aim of the institute is Accelerating Global Knowledge Sharing. More information about the publisher can be found in the IISTE’s homepage: http://www.iiste.org The IISTE is currently hosting more than 30 peer-reviewed academic journals and collaborating with academic institutions around the world. Prospective authors of IISTE journals can find the submission instruction on the following page: http://www.iiste.org/Journals/ The IISTE editorial team promises to the review and publish all the qualified submissions in a fast manner. All the journals articles are available online to the readers all over the world without financial, legal, or technical barriers other than those inseparable from gaining access to the internet itself. Printed version of the journals is also available upon request of readers and authors. IISTE Knowledge Sharing Partners EBSCO, Index Copernicus, Ulrich's Periodicals Directory, JournalTOCS, PKP Open Archives Harvester, Bielefeld Academic Search Engine, Elektronische Zeitschriftenbibliothek EZB, Open J-Gate, OCLC WorldCat, Universe Digtial Library , NewJour, Google Scholar