SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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 STUDYijwscjournal
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
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...ijcseit
 
System engineering
System engineeringSystem engineering
System engineeringLisa Elisa
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
DESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkDESQA a Software Quality Assurance Framework
DESQA a Software Quality Assurance FrameworkIJERA Editor
 
L1 overview of software engineering
L1  overview of software engineeringL1  overview of software engineering
L1 overview of software engineeringRushdi Shams
 
Importance of software architecture 1
Importance of software architecture 1Importance of software architecture 1
Importance of software architecture 1Dr Reeja S R
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 

La actualidad más candente (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 a 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.docxjackiewalcutt
 
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...ijseajournal
 
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...IJCSEA Journal
 
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...IJCSEA Journal
 
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_SurveyZainab Nayyar
 
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 STYLESijfcstjournal
 
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 STYLESADEIJ Journal
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements EngineeringKristen Wilson
 
Research Paper On Software Engineering
Research Paper On Software EngineeringResearch Paper On Software Engineering
Research Paper On Software EngineeringPamela Watkins
 
Questions On Advance Software Engineering
Questions On Advance Software EngineeringQuestions On Advance Software Engineering
Questions On Advance Software EngineeringErin Adams
 
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 ReviewEditor IJCATR
 
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 ArchitecturesAndrea Porter
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 
David vernon software_engineering_notes
David vernon software_engineering_notesDavid vernon software_engineering_notes
David vernon software_engineering_notesmitthudwivedi
 
Hardware Design Practices For Modern Hardware
Hardware Design Practices For Modern HardwareHardware Design Practices For Modern Hardware
Hardware Design Practices For Modern HardwareWinstina 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 a 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
 
H1803044651
H1803044651H1803044651
H1803044651
 
Software Systems Requirements Engineering
Software Systems Requirements EngineeringSoftware Systems Requirements Engineering
Software Systems Requirements Engineering
 
Research Paper On Software Engineering
Research Paper On Software EngineeringResearch Paper On Software Engineering
Research Paper On Software Engineering
 
Questions On Advance Software Engineering
Questions On Advance Software EngineeringQuestions On Advance Software Engineering
Questions On Advance Software 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
 
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
 
System Software &Amp; Application Software
System Software &Amp; Application SoftwareSystem Software &Amp; Application Software
System Software &Amp; Application Software
 
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
 

Más de 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 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 inAlexander 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 websitesAlexander 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 banksAlexander 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 dAlexander 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 resistanceAlexander 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-istifhamAlexander 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 namibiaAlexander 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 childrenAlexander 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 banksAlexander 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 forAlexander 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 punjabAlexander 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 incrementalAlexander 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 techniquesAlexander 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 dbAlexander 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 cloudAlexander Decker
 
A survey of provenance leveraged
A survey of provenance leveragedA survey of provenance leveraged
A survey of provenance leveragedAlexander 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 kenyaAlexander 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 ofAlexander Decker
 

Más de 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
 

Último

UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 

Último (20)

UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 

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