Seokha Koh*․Kyoung-Sook Ji**
Abstract
Software architecture is the blueprint for a software system and should provide consistent guidelines for design, implementation, and maintenance throughout the entire lifecycle of the system. Components, interactions between the components, well-formed structure, reasons, and various perspectives reflecting various stakeholders’ concerns changing through the phases of software lifecycle are the key elements of software architecture. The architect identifies and engages the stakeholders, understands and captures stakeholder’s concerns including those regarding life cycle, and lets the concerns reflected in the architecture.
To do so, architect should take into consideration various contextual elements regarding the system too.
We make an extended list of the elements, especially those of business application software architecture, that the architect should take into consideration and construct a model of the relationships between the elements.
Keywords:Software Architecture, Software Life Cycle, Software Evolution, Software Architecture Degeneration, Software Project
1)
Received:2013. 07. 13. Revised : 2013. 09. 23. Final Acceptance:2013. 09. 25.
※ This work was supported by the research grant of Chungbuk National University in 2012.
* Corresponding Author, Department of Management Information Systems, Chungbuk National University, e-mail : [email protected]
** Department of Management Information Systems, e-mail : [email protected]
1. Introduction
Architecture is indispensible for a success- ful software project, from the start of the project [Abrahamsson et al., 2010; Blair and Watt, 2010]. According to Abrahamsson et al.
[2010], however, the extent of architectural activity that a project will need usually fluc- tuates depending on the project’s context. By context, they mean the project’s en vironment such as : the organization, the domain, and so on as well as specific factors such as age of system, size, criticality, business model, stable architecture, team distribution, governance, rate of change.
Various stakeholders are engaged in a soft- ware project and, according to Boehm et al.
[1998], each stage of software project should begin by identifying key stakeholders engaged in the stage and their win conditions for the system.
2. Literature Survey
2.1 Definitions of Software Architecture Various definitions of software architecture exist. For an example, on May 1, 2012, 257 de- finitions of software were listed in the web- site of SEI/CMU. There is no universally ac- cepted definition, however, and this often leads to confusion [Hochstein and Lindvall, 2005].
Koh [2012] classified the keywords of 27 ‘for- mal’ definitions listed in the web-site of SEI/
CMU as follows :
∙Component : components, elements, mod- ules, parts,
∙Interaction : interaction, relation, relation- ship, inter-relationships, connectors, con- necting elements, inter-connection, inter- face, collaboration, shared data, shared in- formation,
∙Well-formed Structure : structure, organi- zation, well-chosen forms, well-formedness constraints, particular forms, architectural style, layer,
∙Reason
- Knowledge : knowledge, strategies, prin- ciples, guidelines, rules, methods, protocols, patterns, best practice,
- Constraint : constraints, requirements, stake- holders needs, properties, performance, pa- rameters,
- Rationale : rationale,
∙Various Perspectives : life-cycle, evolution, (requirements, design, implementation), (tech- nical architecture, operational architecture, systems architecture), (abstract architecture, concrete architecture), (structural model, frame- work model, dynamic model, process model), (conceptual architecture, module intercon- nection architecture, execution architecture, code architecture).
Software literature about software aging, ar- chitecture erosion, architecture degeneration, ar- chitecture drift, architecture decay and so on ad- dresses the issue of lifecycle of software. From the perspective of architecture erosion, there are two types of architecture [Hochstein and Lindvall, 2005; de Silva and Balasubramaniam, 2012] :
Legend : arrow denotes the direction of reading, not that of navigation.
<Figure 1> Elements of Software Architecture by Types
∙Intended Architecture : the outcome of the architecture design process. It is also called planned, as-designed, ideal, or conceptual ar- chitecture.
∙Implemented Architecture : the model that has been realized or built-in within low level design construct and the source code. It is also called actual, as-is, as-built, or con- crete architecture.
∙Eroded Architecture : the implemented ar- chitecture which diverged from its intended architecture.
Rozanski and Woods [2012] argue “Every sys- tem has an architecture, whether or not it is docu- mented and understood.” By architecture, they
actually mean the implemented architecture.
More precisely speaking, every system composed of mutually interacting components has an im- plemented architecture. In this respect, the mini- mal element of architecture is mutually interact- ing components (refer to <Figure 1>). A struc- ture, whether it is well-formed or not, will emerge among the components and interactions anyway.
On the other hand, every system does not have an intended architecture. Advocates of agile approaches, for example, believe that ar- chitectural design has little value and that the architecture should emerge gradually iteration after iteration [Abrahamsson et al., 2010]. The system developed so may not have an intended architecture.
<Figure 2> Expanded Spiral Model : An entire life-cycle architectural process model.1)
The process of extracting the description of the implemented architecture from an existing system is known as architecture recovery, which is a subset of reverse engineering [Hochstein and Lindvall, 2005]. Architecture recovery seeks to recover information through static and dyna- mic analysis of a legacy system and some archi- tecture recovery tools can identify components, function call dependencies, and even design structures which commonly occur in source code [Hochstein and Lindvall, 2005]. Architec- ture recovery is a step of life-long architecture process (refer to <Figure 2>).
The reasons behind the architectural deci- sions, however, cannot be identified by such tools. The reason behind an architectural deci- sion can be elicited from and explained by only the one who made the decision. The reasons can be documented only for the intended archi-
1) This figure modifies the corresponding figure in Koh [2013]. This figure adopts the notation of OMGʼs [2111] BPMN and the symbol ∽ denotes that included activities are performed randomly, not in a predeter- mined sequence.
tecture. A good description of intended archi- tecture includes the architectural knowledge applied to the intended architecture, constraints applied to and rationales of architectural deci- sions made. A good architecture has well-for- med structure and reflects various perspectives.
2.2. Architectural Context : Rozanski and Woods [2012]
Rozanski and Woods [2012] define the fol- lowing terms as :
∙Computer System : the software elements that you need to specify and/or design in or- der to meet a particular set of requirements and the hardware that you need to run those software elements on.
∙Architecture : the set of fundamental con- cepts or properties of a system in its environ- ment, embodied in its elements, relationships, and the principles of its design and evolution.
∙Architectural Elements : a fundamental piece from which a system can be considered to be constructed.
∙Concern : a requirement, an objective, a con- straint, an intention, or an aspiration of a stakeholder has for that architecture.
∙Architectural Description : a set of products that documents an architecture in a way its stakeholders can understand and demonstrates that the architecture has met their concerns.
∙Architectural Style : a fundamental struc- tural organization schema for software sys- tems. It provides a set of predefined element type, specifies their responsibilities, and in- cludes rules and guidelines for organizing the
relationships between them.
They also identify three key architectural con- cepts : stakeholders, viewpoints (views, along with), and perspectives. Their definitions of the concepts and the components of the concepts are as follows :
∙Stakeholders : individuals, group, organiza- tions, or entity with an interest in or concerns about the realization of the system.2)
- Acquirers : oversee the procurement of the system or product.
- Assessors : oversee the system’s con- formance to standards and legal regulation.
- Communicators : explain the system to other stakeholders via its documentation and training materials.
- Architect : responsible for designing, doc- umenting, and leading the construction of a system that meets the needs of all its stakeholders.3)
∘Product Architect : responsible for the delivery of one ore releases of a soft- ware product to external customers (and typically would stay associated with the product over a number of release cy- cles).
∘Domain Architect : a specialization of the general architectural function, fo- cusing on a particular domain of interest, such as the business architecture, data architecture, network architecture, and so on.
2) Rozanski and Woods[2012], pp.73-75, 131-138.
3) Rozanski and Woods[2012], pp.68-73.
∘Infrastructure Architect : owns the provision of hardware and software in- frastructure to systems and often per- forms this activity at a company-wide level.
∘Solution Architect : specifically takes a broad, high-level view of the entire solution, focusing on wider issues than just technology, such as business pro- cess change, procurement, staffing, and so forth.
∘Enterprise Architect : has responsi- bility for the cross-system information systems architecture of the whole enter- prise, including sales and marketing, cli- ent-facing systems, product and ser- vices, purchasing and accounts, the sup- ply chain, human resources, and so forth.
- Business Analysts : responsible for cap- turing and documenting detailed business requirements, typically focusing on stake- holders from the user community, and en- suring that these are correct, complete, and consistent.
- Project Managers : responsible for ensur- ing delivery of the product or system and meeting commercial priorities for resources, costs, and time-scales.
- Design Authorities/Technical Design Au- thority/Technical Lead : take overall re- sponsibility for quality of the internal ele- ment designs for the system. The design authority takes the architectural views as her input and acts as guide and leader to the software developers who design, build, test, and integrate the product or system.
- Technology Specialists : provide detailed expertise in one specific area.
- Developers : construct and deploy the sys- tem from specifications (or lead the teams that do this).
- Maintainers : manage the evolution of the system once it is operational.
- Production Engineers : design, deploy, and manage the hardware and software envi- ronments in which the system will be built, tested, and run.
- Suppliers : build and/or supply the hard- ware, software, or infrastructure on which the system will run.
- Support staff : provide support to users for the product or system when it is running.
- System Administrators : run the system once it has been deployed.
- Testers : test the system to ensure that it is suitable for use.
- Users : define the system’s functionality and ultimately make use of it.
∙Views : the representations of one or more structural aspects of an architecture that il- lustrates how the architecture addresses one or more concerns held by one or more of its stakeholders.
∙Viewpoints : the collections of patterns, tem- plates, and conventions for constructing one type of view. It defines the stakeholders whose concerns are reflected in the viewpoint and the guidelines, principles, and template mo- dels for constructing its views.
- Context : describes the relationships, de- pendencies, and interactions between the system and its environment (the people,
systems, and external entities with which it interacts). Many architecture descrip- tions focus on views that model the sys- tem’s internal structures, data elements, in- teractions, and operation. Architects tend to assume that the “outward-facing” in- formation-the system’s runtime context, its scope and requirements, and so forth-is clearly and unambiguously defined else- where. However, you often need to include a definition of the system’s context as part of your architectural description.
- Functional : describes the system’s func- tional elements, their responsibilities, inter- faces, and primary interactions. A func- tional view is the cornerstone of most archi- tectural descriptions and is often the first part of the description that stakeholders try to read. It drives the shape of other system structures such as the information structure, concurrency structure, deploy- ment structure, and so on. It also has a significant impact on the system’s quality properties such as its ability to change, its ability to be secured, and its runtime per- formance.
- Information : describes the way that the architecture stores, manipulates, manages, and distributes information. The ultimate purpose of virtually any computer system is to manipulate information in some form, and this viewpoint develops a complete but high-level view of static data structure and information flow. The objective of this analysis is to answer the big questions around content, structure, ownership, la-
tency, references, and data migration.
- Concurrency : describes the concurrency structure of the system and maps functional elements to concurrency units to clearly identify the parts of the system that can execute concurrently and how this is coor- dinated and controlled. This entails the cre- ation of models that show the process and thread structures that the system will use and the inter-process communication me- chanisms used to coordinate their ope- ration.
- Development : describes the architecture that supports the software development process. Development views communicate the aspects of the architecture of interest to those stakeholders involved in building, testing, maintaining, and enhancing the system.
- Deployment : describes the environment into which the system will be deployed, including capturing the dependencies the system has on its runtime environment.
This view captures the hardware environ- ment that your system needs (primarily the processing nodes, network inter- connections, and disk storage facilities re- quired), the technical environment require- ments for each element, and the mapping of the software elements to the runtime environment that will execute them.
- Operational : describes how the system will be operated, administered, and sup- ported when it is running in its production environment. For all but the simplest sys- tems, installing, managing, and operating
the system is a significant task that must be considered and planned at design time.
The aim of the operational viewpoint is to identify system-wide strategies for ad- dressing the operational concerns of the system’s stakeholders and to identify solu- tions that address these.
∙Architectural Perspectives : the collections of activities, tactics, and guidelines that are used to ensure that a system exhibits a partic- ular set of related quality properties that re- quire consideration across a number of the system’s architectural views.
- Accessibility : the ability of the system to be used by people with disabilities.
- Availability and Resilience : the ability of the system to be fully or partly operational as and when required and to effectively handle failures that could affect system availability.
- Development Resource : the ability of the system to be designed, built, deployed, and operated within known constraints around people, budget, time, and materials.
- Evolution : the ability of the system to be flexible in the face of the inevitable change that all systems experience after deployment, balanced against the costs of providing such flexibility.
- Internationalization : the ability of the system to be independent from any partic- ular language, country, or cultural group.
- Location : the ability of the system to over- come problems brought about by the abso- lute location of its elements and the dis- tances between them.
- Performance and Scalability : the ability of the system to predictably execute within its mandated performance profile and to handle increased processing volumes.
- Regulation : the ability of the system to conform to local and international laws, quasi-legal regulations, company policies, and other rules and standards.
- Security : the ability of the system to reli- ably control, monitor, and audit who can perform what actions on what resources and to detect and recover from failures in security mechanisms.
2.3 Project and Program Management : PMI Software is usually produced and maintained by projects. PMI [2008a, 2008b] defines proj- ects, programs, and portfolios as follows:
∙Project : a temporary endeavor undertaken to create a unique product, service, or result.
∙Program : a group of related projects man- aged in a coordinated way to obtain benefits and control not available from managing them individually.
∙Portfolio : a collection of projects or pro- grams and other work that are grouped to- gether to facilitate effective management of that work to meet strategic business ob- jectives.
The success of a project is influenced by the enterprise environmental factors that sur- round the project. These factors may come from any or all of the enterprises involved in the project and include existing human re-
sources, enterprise knowledge-base, and or- ganizational culture as well as physical infra- structure [PMI 2008, p.14].
The project team performs the project pro- cesses, which generally fall into one of two major categories [PMI 2008, pp.37-38] :
∙Project Management Processes : ensure the effective flow of the project throughout its existence. They apply globally and across in- dustry groups and good practice means there is general agreement that the application of them has been shown to enhance the chances of success over wide range of projects.
∙Product-Oriented Process : specify and create the project’s product. They are typically defined by the product life cycle and vary by application area.
Project management addresses the various needs, concerns, and expectations of the stake- holders, identifies requirements, and applies knowledge, skills, tools, and techniques to project activities to meet the project require- ments [PMI 2008, p.6]. Every project has com- peting project constraints such as scope, qual- ity, schedule, budget, resources, and risk, and project management should balance the com- peting project constraints [PMI 2008, p.6].
Project management is an integrative under- taking requiring each project and product pro- cess to be appropriately aligned and connected with other processes to facilitate coordination [PMI 2008, p.38].
Stakeholders of a project are persons or or- ganizations who are actively involved in the
projects or whose interests may be positively or negatively affected by the performance or completion of the project, and have subcate- gories such as [PMI 2008, pp.23-27] :
∙Users : persons who directly use the pro- ject’s product or service or result.
∙Customers : the entity acquiring the pro- ject’s product or service or result.
∙Sponsor : a person or group that provides the financial resources, in cash or in kind, for the projects. He/She champions the project.
∙Portfolio Managers : persons who are re- sponsible for the high level governance of a collection of projects or programs, which may or may not be independent.
∙Portfolio Review Board : committees (usu- ally made up of the organization’s executives) that act as a project selection panel. They re- view each project for its return on invest- ment, the value of the project, risks asso- ciated with taking on the project, and other attributes of the project.
∙Program Managers : persons who are re- sponsible for managing related projects in a coordinated way to obtain benefits and con- trol not available from managing them in- dividually. They interact with each project manager to provide support and guidance on individual project.
∙Project Management Office : an organiza- tional body or entity assigned various respon- sibilities related to the centralized and coordi- nated management of those projects under its domain. It provides project management support functions and/or directly manages a project.
∙Project Managers : persons who are assigned by the performing organization to achieve the project objectives. They are the lead persons responsible for communicating with all stake- holders, particularly the project sponsor, pro- ject team, and other key stakeholders.
∙Project Team : the team comprised of the project managers, project management team, and other team members who carry out the work but who are not necessarily involved with management of the project. They carry out of the work of the project.
∙Functional Managers : key individuals who play a management role within an admini- strative or functional area of the business, such as human resources, finance, account- ing, or procurement. They provide subject matter expertise or their function provides services to the project.
∙Operations Managers : individuals who have a management role in a core business area, such as research and development, design, manufacturing, provisioning, testing, or main- tenance. They incorporate the handed off proj- ect into normal operations and provide the long term support.
∙Sellers/Vendors/Suppliers/Contractors : external companies that enter into a con- tractual agreement to provide components or services necessary for the project.
∙Business Partners : external companies that have special relationship with the enterprise, sometimes attained through a certain process.
They provide specialized expertise or fill a specified role such as installation, customi- zation, training, or support.
2.4 OMG’s Business Motivation Model The motivations of the organizations partic- ipating in a software project are the major ele- ments of architectural concerns. OMG [2010]
published the BMM (business motivation model) whose ingredients are as follows :
∙Ends : about what an enterprise wants to be, about changing what the enterprise is (e.g., developing new lines of business, moving in- to new markets), or about maintaining its current position relative its market and com- petition.
- Vision : an overall image of what the Or- ganization wants to be or become.
- Desired Results : a state or target that the enterprise intends to maintain or sustain
∘Goal : a statement about a state or con- dition of the enterprise to be brought about or sustained through appropriate means.
∘Objective : a statement of an attainable, time-targeted, and measurable target that the enterprise seeks to meet in order to achieve its goals.
∙Means : any device, capability, regime, tech- nique, restriction, agency, instrument, or me- thod that may be called upon, activated, or enforced to achieve ends.
- Mission : the ongoing operational activity of the enterprise.
- Course of Action : an approach or plan for configuring some aspect of the enter- prise involving things, processes, loca- tions, people, timing, or motivation under- taken to achieve desired results.
∘Strategies : the essential Course of Ac- tion to achieve ends (goals in particular).
∘Tactics : course of action that represents part of the detailing of Strategies.
- Directives : indicate how the courses of action should, or should not, be carried out (in other words, they govern courses of action).
∘Business Policies : define what can be done and what must not be done, and may indicate how, or set limits on how, it should be done.
∘Business Rules : actionable directives defined as such, and managed for con- sistency and completeness.
∙Influencer : something that can cause changes that affect the enterprise in its employment of its means or achievement of its ends.
∘Internal (from within the enterprise) : as- sumption, corporate value (explicit value, implicit value), aabit, infrastructure, issue (a point in question or a matter that is in dispute as between contending part- ners), management prerogative, resource.
∘External (from outside the enterprise boundary) : competitor, customer, envi- ronment, partner, regulation, supplier, technology.
∙Assessment : the judgment about the influ- ence on the enterprise’s ability to employ its means or achieve its ends.
The software, the result of the software proj- ects supports business processes, which realize the courses of action and, ultimately, the ends of customer organization. The architect should
Source : Rozanski and Woods [2012] p.71(Figure 5-3).
<Figure 3> Architect in Context
capture and assess those concerns associated with the business processes the resulting soft- ware will support.
For an enterprise-level software project, for example, such as ERP system, the whole busi- ness motivation system of customer corpo- ration should come into the picture.
The word stakeholder is typically used to de- note a person or group of persons. Influencer expands the concept of stakeholder, denoting anything that can cause changes that affect the enterprise in its employment of its means or achievement of its ends [OMG, 2010]. In con- text of software project of program, an influ- encer can be defined to be something that can cause changes that affect the project or pro- gram in its employment of its means or achi-
evement of its ends. At the beginning of each stage of life cycle of a system, key influencers of that stage should be identified. The architect should assess their influences to the project, as well as the influences of the project to them.
3. Contextual Model of Application Software Architecture
<Figure 4> shows the software architecture model in the context of project, summarizing dis- cussions above. The project manager takes charge of management processes and, ultimately, the project. He identifies influencers, communicate with stakeholders, and elicit constraints, such as scope, time, cost, and quality, of the project. He manages the process to update enterprise know-
<Figure 4> Contextual Model of Software Architecture : The Basic Model
ledge-base, including architectural knowledge too.
With assistance of the project management, the architect evaluates constraints of the pro- ject, capture stakeholders’ concern, identifies ASRs (architectural significant requirements). He takes charge of architectural process to design and im- plement the architecture. He may choose an ar- chitectural style to serve as a model for the archi- tecture from the enterprise knowledge-base.
4. Conflicts between Long-Term Interests and Short-Term Interests
The quality attributes of software such as dependability, usability, reusability, adaptability, and performance typically conflict with the pro- ject constraints such as budget and/or schedule [In et al., 2001]. Users or operators may easily access some quality attributes by using the
<Figure 5> Life Cycle Issues in Context of Software Project
software, for example, performance or usability.
Some attributes, however, may be harder to as- sess exactly. For example, the value of archi- tecture is hard to grasp, because it remains in- visible [Abrahamsson et al., 2010]. Then, the pressure on the project team to sacrifice the quality attributes hard to assess to meet budget/
schedule constraint of the project may come in- to the situation. <Figure 5> depicts such a situation.
The architectural process increases the cost of the current project. The cost of architectural process is obvious and developers do not want to write extensive and comprehensive docu- mentation [In et al., 2001]. The result of the ar- chitectural process, however, well-formed ar- chitecture and its documentation reduces the cost of the current project and, especially, that of future projects.
Jones [2000] classifies software or software projects into system software, commercial soft- ware, information systems software, outsourced software, military software, and end-user soft- ware, and defines as :
∙Management Information Systems : the type of applications that enterprises produce in support of their own business and admini- strative operations,
∙Outsourced Software : software projects that are built under contract by an external company for a client organization.
In the MIS environment the whole life cycle of an application software occur in the boun- dary of an enterprise and the feedback infor- mation from the projects is accumulated in the architectural knowledge-base of the enterprise.
<Figure 6> Program Management in Mis Environment : The Organization Prevents Each Project Team from Sub-Optimizing by Controlling a Series of Projects Indirectly by The Architecture Produced and Maintained by The Architectural Process Process Coordinated at The Enterprise Level
So, the capability of the organization to govern the architectural process properly throughout the whole life cycle of an application software can be fostered. Then, it becomes possible to manage a series of projects as a program and to minimize the life cycle cost of the software.
<Figure 6> illustrates such a situation.
In such a context, each project team partici- pates in the architectural process for the soft- ware. But the whole architectural process is governed by the organization or the program management office of the organization. The part of the architectural process that each project team performs can be regarded as a part of the corresponding project too. Non-architectural processes of the project uses the architecture, and are governed by architectural process and, ultimately, by the organization. Then, it be- comes possible to keep each project team from sub-optimizing the corresponding project to
minimize the total life cycle cost of the soft- ware.
In the outsourcing environment, however, the phenomena occur dispersed in the boundaries of many organizations, and the architectural pro- cess is partitioned into pieces which various or- ganizations perform separately. So, the benefit of coordinated architectural process is never fully realized. Moreover, the long-term benefit of good architecture does not accrue to the de- veloper organization. Users, however, will eva- luate the performance and usability of the appli- cation software exactly sooner or later. So, the developer organization who wants to minimize the cost of the project focuses on performance and usability and restrains the architectural process. As the result, the low engineering qual- ity increases the cost of succeeding maintenance projects. The increased cost of succeeding main- tenance projects, however, passes to the cus-
<Figure 7> The Pressure on Project Team to Restrain the Architectural Process in Outsourcing Environment
tomer organization ultimately, not to the main- tenance organizations, increasing the life cycle cost. The customer organization cannot break this vicious cycle because of lack of architectural knowledge. <Figure 7> depicts this situation.
<Figure 8> shows a contextual model illus- trating the relationships between the elements listed above in the environment of outsourcing.
The contextual model places the system clearly in its environment and relates it to the external entities with it interacts, via explicit relationships that represent the interfaces to and from it, and summarize the roles and responsibilities of the participants in these interactions [Rozanski and Woods, 2012; p.255]. The architect identifies and engages the stakeholders, understands and cap- tures the stakeholder’s concerns including those regarding life cycle, creates and takes ownership of the definition of an architecture that addresses these concerns, takes a leading role in the real- ization of the architecture into a physical product
or system, and often fills the design authority’s role as the project move into the design phase [Rozanski and Woods, 2012, p.68].
5. Conclusions
The basic contextual model in this paper (<Figure 4>) expands that of Rozanski and Woods [2012] (see <Figure 3>). In the context of project, the architect get assistance form the project management in communicating with stakeholders and identifying constraints and re- quirements that he should takes into considera- tion. It is the responsibility of the project manage- ment to update the enterprise knowledge-base which the architect may rely on.
The software architecture should address the life cycle issues. The core of life cycle issues is balancing long-term life cycle cost and short-term cost of each project. To do so, the architecture should are anticipated the issues to
<Figure 8> Extended Contextual Model in Outsourcing Environment : Customer Organization Should Manage a Series of Projects as a Program, but do not Have the Capacity to do so
be important in the future as well as the current issues, which is a formidable endeavor.
In the MIS environment, the whole life cycle of a application software occur in the boundary of an enterprise. So it is rather easy to antici- pated the future issues and to balance the long-term life cycle cost and the short-term cost of each project.
In the outsourcing environment, however, there are much more organizations involved in the life cycle of an application software, it is very difficult for the customer organization to
anticipated the future issues properly and to balance the long-term life cycle cost and the short-term cost of each project. In the context, it is very difficult for the customer organization to accumulate architectural knowledge also. As the natural result, the architectural process is not performed properly and the long-term in- terests of the customer organization is sacri- ficed in favor of short-term interests of the performing organization. It is very important to find out how to protect the long-term interests of the customer organization.
References
[1] Abrahamsson, P., Babar, M. A., and Kruchen, P., “Agility and Architecture : Can They Coexist?”, IEEE Software, March/April 2010, pp. 16-22.
[2] Blair, S. and Watt, R., “Responsibility- Driven Architecture”, IEEE Software, March/
April, 2010, pp. 26-32.
[3] Boehm, B., Egyed, A., Kwan, J., Port, D., Shah, A., and Madachy, R., “Using the Win- Win Spiral Model : A Case Study”, IEEE Computer, Vol. 31, No. 7, July 1998, pp. 33- 44.
[4] de Silva, L., and Balasubramaniam, D., “Con- trolling Software Architecture Erosion : A Survey”, J. of Systems and Software, Vol.
85, 2012, pp. 132-152.
[5] Hochstein, S. and Lindvall, M., “Combating Architectural Degeneration : A Survey”, In- formation and Software Technology, Vol.
47, 2005, pp. 643-646.
[6] In, H., Boehm, B., Rodgers, T., and Deutsch, M., “Applying WinWin to Quality Require- ments : A Case Study”, IEEE, 2001, pp.
555-564.
[7] Jones, C., Software, Assessments, Bench- marks, and Best Practices, Addison Wesley Longman, Inc., 2000.
[8] Koh, S. H., “A Software Architecture Life Cycle Model Based on the Program Mana- gement Perspective : The Expanded Spiral Model”, J. of Information Technology Appli- cations and Management, Vol. 20, No. 2, 2013, pp. 69-87.
[9] Koh, S. H., “An Extensive Model on Es- sential Elements of Software”, J. of Infor- mation Technology Applications and Mana- gement, Vol. 19, No. 2, 2012, pp. 135-147.
[10] OMG(Object Management Group), Busi- ness Motivation Model, ver. 1.1, OMG, 2010.
[11] OMG, Business Process Model and No- tation (BPMN), ver. 2.0, OMG, 2011.
[12] PMI(Project Management Institute), A Guide to the Project Management Body of Know- ledge (4th edition), PMI, 2008a.
[13] PMI, The Standard for Program Mana- gement (2nd edition), PMI, 2008b.
[14] Rozanski, N. and E. Woods, Software Sys- tems Architecture (2nd ed.), Pearson Edu- cation, Inc., 2012.
Author Profile
Koh, Seokha
Seokha Koh is the professor of the Department of MIS, Chungbuk National University.
His current primary research areas include Software Quality Management, Business Process Modeling, Soft- ware Architecture, Project Management, and Software Engineering.
Ji, Kyoungsook
Kyoungsook is the student of the doctoral program of the Department of MIS, Chungbuk National University. Her cur- rent primary research areas include Information System Audit, Software Quality Management, Business Process Modeling, and Project Mana- gement.