1 | P a g e
The Principle of Architecture First in Software Project
Management Minimizes the Cost of Software Development Process
[email protected],Addis Abeba Science and Technology University, Department of Software
In current software development process, the principle of architecture first in software project
management is become most important trend that software development organization paid
attention in order to meets all of technical and operational requirements, while optimizing
common quality attributes such as performance, security and manageability. This principle were
identified the structure of system, realize all of the use cases and scenarios, try to address the
requirements of various stakeholders, handle both functional and quality requirements, and
deployment process before beginning to develop software to simplify software project management
and to make a system flexible with new requirements. Once developed and reviewed architecture
may uses for new system with relates components instead of developing system from scratch to
save our resources. In this approach, project manager can be provide decision for each activities
based on the architecture styles rather than depending on whole phase of software development
life cycle (SDLC). This can be helps to reduce cost, risk and time consumes. In this paper I have
presents the concepts of minimizes the cost of software development using principle of architecture
first with Cost Benefit Analysis Method (CBAM) and Architecture Tradeoff Method Analysis
(ATMA) to architectural decision making and analysis architectures.
Keywords: Software architecture, Project management, Quality attribute.
Today, as size of software increase its complexity of design process, management, meets quality
attributes and accomplish project with desired budget of system are become severe issues in
development process. Its challenge is to develop software with the right quality levels. The
problem is not so much to know if a project is technically feasible concerning functions required,
but instead if a solution exists that meets the software quality requirements, such as throughput
and maintainability (1) .To address these challenges, software development organization prefer the
principle of architecture first as solution because software architecture encompasses the set of
significant decision about the organization of a software system including the selection of the
structural elements and their interfaces by which the system is composed; behavior as specified in
collaboration among those elements; composition of these structural and behavioral elements into
larger subsystems; and an architectural style that guides this organization (2).
In architecture first principle, once developed architectures contains whole phase that we can
perform during software development process unlike to traditional way of SDLC in order to
improve reliability, cost-effectiveness, schedule and quality attributes of system. This approach
already have well organization structure of system and interaction between the components with
its concern function (architecture styles). So, we will reuse developed applications components for
developing new software instead of developing these software from scratch that are very time
2 | P a g e
consuming and unreliable. To minimize the development time we will reuse components from
each phase of development to minimize of development time and provide better quality (3).
2. Related work
To understand existing knowledge, there is no previous work that rigorously relates with given
title to date. But, I tried to found some relates article and reviewed them with topics. Architecture
centric development (3): Smart approach for the component reuse in the software products where
working in the same domain, it reduces the cost and time for developing the software in the same
domain rather than start from scratch. The Architecture Tradeoff Analysis Method (4): This paper
was discussed a principled way to evaluate a software architecture’s fitness with respect to multiple
competing quality attributes: modifiability, security, performance, availability, and so forth. Rick
Kazmanl, Jai Asundi and Mark Klein (5): proposed a method that causes the stakeholders to
quantify the benefits as well as the costs, dependencies, and schedule implications of architectural
decisions. Qiushi Wang and Zhao Yang (6) were proposed the method of selection appropriate
architecture based on quality attribute and analytic hierarchy process. This can be useful to reuse
architecture and to save resources. Most of work done to realize using architectural concepts first
in software development process is effective with resources and quality of software. In this paper
we are going to realize how the principle of architecture first in software project management
minimize cost in software development process.
3. Principle of Architecture First in Software Development Process
When we are planning to build a house we want to have a good architect to be sure we will get a
house with solid foundation. It’s the same with software architecture, it creates a solid foundation
for the software project to ensure that our project will be scalable and powerful. An architecture
enable us to defines the work assignments that must be carried out by design and implementation
team and also specifies primary carrier of system quality such as scalability, performance,
modifiability, security and cost reduction. By building effective architecture, we can identify
design risks and mitigate them early in development process. Having architecture first can
improves our resources development by realizing at the beginning all necessary activities that team
have to follow up to deal with project and identifying the structure of system, component
interaction, realize all of the use cases and scenarios, try to address the requirements of various
stakeholders, handle both functional and quality requirements, and deployment process before
beginning to develop software to simplify software project management and to make a system
flexible with new requirements.
3.1.Importance of Architecture first in Software Development Process
In principle architecture first, they organization of software development have opportunity to
success by providing a product that meets user requirements and quality attributes of system with
effective resources. The development team in organization overcome the challenges of system at
initial by having one common architecture that drives them in all process with clear behavior of
system. Some advantages of Architecture first in software project:
? It creates a solid foundation for the software project.
? Increase performance and quality of the platform.
? Reduce costs, avoids codes duplicity.
? Identifies areas for potential cost saving.
? Better code maintainability and manage complexity.
3 | P a g e
3.2.How the principle of architecture first is effective in software project Management?
In principle of architecture first, the role of software project management is more effective when
compare with traditionally way of SDLC because architecture contains a picture of our system that
we are going to develop with detail scope and effective resource estimation. In addition, we will
reuse our architecture for the same domain of application to save development time and cost. In
this approach, management in each phase of SDLC is not necessary, we only performs any
activities based our architectures. This can be contribute great role for completion of project with
desired schedule and resources.
4. Two methods we uses to analysis costs and decision making for software
development in Architecture
4.1.Architecture Tradeoff Method Analysis (ATMA)
This methods can helps a system’s stakeholders understand the consequences of architectural
decisions with respect to the system’s quality-attribute requirements and evaluates software
architectures with respect to quality attributes (7).
This method helps to enable architecture with following core point:
? Minimize the risks software architecture decisions that might create future problems in
some quality attribute
? Properties of one or more components (and/or component relationships) that are critical for
achieving a particular quality attribute response.
? Tradeoffs – decisions affecting more than one quality attribute and
? Analysis decision making of architecture and match it’s with quality attributes.
4.2.Cost Benefit Analysis Method (CBAM)
CBAM helps architects select Architectural Strategies (ASs) that are optimal for a given system
during its evolution by calculating economical tradeoffs based on the benefits, costs, schedule, and
inherent risks for each candidate AS (8).
CBAM helps to maximize the difference between the benefit derived from the system and the cost
of implementing the design as we can understand from below diagram.
Figure 1: Contexts for the CBAM
The integration of these method improves the quality of the results, resources effectiveness and
more capable to makes better use of the stakeholders’ time than either method applied
4 | P a g e
Principle of architecture first is used to specify behavior and interaction of component of software
at the initial to have picture of system that we are going to develop. It can be overcome the problem
relates with complexity of management by providing architecture that contains concepts of whole
phase of software development with appropriate quality attribute, resource effectiveness and make
flexible way of handle new requirements.
Generally, the concepts of architecture first in software project management can minimize cost of
software development process and improve quality of software. Once developed and reviewed
architecture we will uses for new system with relates components instead of developing system
from scratch to save our resources and to minimize the costs of maintenance. Software project
management can be provide decision for each activities based on the architecture styles rather
than depending on whole phase of software development life cycle (SDLC). This can be helps to
reduce cost, risk and time consumes. Combination of Cost Benefit Analysis Method (CBAM) and
Architecture Tradeoff Method Analysis (ATMA) in architecture can improves quality decision
making, resource effectiveness and analysis. Most software development organization prefer today
architecture first principle because this can meets requirements of user with quality attribute and
increase opportunity of project success in desired time. However, the challenges with architecture
concept is, there is no a framework or simulation system that handle activities architecture
automatically still. This may future work for researchers.
1. An introduction to software architecture. Garlan, David and Shaw, Mary. USA : World Scientific, 1993.
2. Chang, S. K. Handbook of Software Engineering and Knowledge Engineering. USA : World Scientific Publishing
Company, 2005. ISBN.
3. Khan, Aurangzeb, Azam, Farooque and Khan, Jahanzaib. Architecture Centric Development in Software
Product Lines. 244 5 th Avenue,# 1526, New York, NY 10001, USA India : International Journal of Computer
4. The architecture tradeoff analysis method. Kazman, Rick, et al. s.l. : IEEE, 1998.
5. Quantifying the costs and benefits of architectural decisions. Kazman, Rick, Asundi, Jai and Klein, Mark. s.l. :
6. A method of selecting appropriate software architecture styles: quality Attributes and analytic hierarchy process.
Wang, Qiushi and Yang, Zhao. Sweden : Chalmers University of Technology, 2012.
7. Integrating Architecture Methods: The Case of the ATAM and the CBAM. Kazman, Rick and Nord, Robert L.
s.l. : Carnegie Mellon University, Pittsburgh, PA, 2004.
8. Bass, Len, Clements, Paul and Kazman, Rick. Software Architecture in Practice, Second Edition. s.l. : Addison-
Wesley Professional, 2003. ISBN.