The Principle of Architecture First in Software Project Management Minimizes the Cost of Software Development Process
Assefa [email protected],Addis Abeba Science and Technology University, Department of Software Engineering
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: Principle of architecture first, Project management, Quality attribute, Minimizes cost.
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 CITATION Gar93 l 1033 (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 CITATION SKC05 l 1033 (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 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 CITATION Kha11 l 1033 (3).
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 CITATION Kha11 l 1033 (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 CITATION Kaz98 l 1033 (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 CITATION Kaz01 l 1033 (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 CITATION Wan12 l 1033 (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.
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.
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.
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.
Two methods we uses to analysis costs and decision making for software development in Architecture
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 CITATION Kaz04 l 1033 (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.
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 CITATION Len03 l 1033 (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 SEQ Figure * ARABIC 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 independently.
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.
BIBLIOGRAPHY 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 Applications, 2011.
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. : IEEE, 2001.
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.