Measuring the Coherence of Software Product Line Architectures

Size: px
Start display at page:

Download "Measuring the Coherence of Software Product Line Architectures"

Transcription

1 Measuring the Coherence of Software Product Line Architectures Vojislav B. Mišić 1 technical report TR 06/03 Department of Computer Science, University of Manitoba Winnipeg, Manitoba, Canada R3T 2N2 June University of Manitoba, Winnipeg, Manitoba, Canada

2 Measuring the Coherence of Software Product Line Architectures Vojislav B. Mišić Abstract: One of the promising approaches to software development is the concept of Product Line Architectures, or PLAs: architectural frameworks for developing software applications for a series of related products. Assessment of software PLAs and their measurement is still a largely undeveloped territory, where main emphasis is put on the experience and insight of individual designers, rather than on some more objective measure. We propose the coherence measure as a vehicle to increase the designers understanding of the quality of PLAs, and to give valuable insight into the possible modifications of the PLA in order to increase its conceptual quality. Keywords: software measurement, coherence, software product line architectures Contents 1 Reuse in software development 1 2 Product Line Architectures 2 3 Coherence? Wasn t it called cohesion before? A formal definition Properties of the coherence measure Using the coherence measure: a catalog of coherence-based refactorings 6 5 Concluding remarks 9 A Proof of the fourth property of the coherence measure 9

3 TR 06/03 Measuring the Coherence 1 1 Reuse in software development In the process of software development, the development team must interact intensively with the domain experts, and thus gradually develops an in-depth knowledge and understanding of the problems and issues related to that particular domain. Traditionally, the goal of achieving the required functionality in order to deliver the (functional) product to a known or unknown customer, has always been given first priority. The problems encountered in achieving this goal manifest themselves in several ways: products are not delivered on time, within budget, and with the functionality required. Overcoming these problems has become a primary task for the software development community, both in academia and in industry, and many advances have been made over the years. Unfortunately, the focus on functionality and timeliness of delivery, however necessary and useful it is (or may have been), did not leave much time for taking care of many other product- and process-related requirements. In particular, issues like design evolution and design for reuse did not receive much attention; they were considered only if there was time left never, in most cases. As a consequence, symptoms of software crisis tend to appear every time a software product is developed, despite the apparent domain expertise attained by the software development team. Over the years, a general consensus has materialized, that substantial savings can only be obtained through reuse: using already developed software applications, or parts thereof, when developing new ones. The concept of reuse is certainly not new: after all, most engineering disciplines imply reuse of various artifacts. In software development, artifact reuse should both increase productivity and improve quality of the final product thus bringing benefits from both technical and business perspective. One might even be tempted to say that reuse of software artifacts is an essential prerequisite for software development to become an engineering discipline. Now, software reuse may be, and indeed has been, attempted and implemented at different levels. For example, we may reuse individual subroutines and modules of our own making, as mentioned above, whenever we notice some repetitive task or calculation. We may also reuse subroutines and modules from a loose collection, e.g., module libraries such as SSP, Linpack, and the like. Sometimes we must reuse subroutines and modules from an organized collection, without which the project could not be implemented, such as the Windows API. All of these, however, do not result in any significant savings in time and effort. The only type of reuse that may generate benefits, both technical and economical, is through software components software applications, or building blocks, purposefully built with reuse in mind [13], either in-house or by a third party (COTS). However, this is just one half of the story component-based development cannot be successful if reuse is not planned, designed, and implemented top-down [4, 7]. In fact, effective use of software components requires a software architecture, which may be defined as structure (or structures) of a system, which comprise software components, their externally visible properties, and the relationships and interconnections between them [1]. Architecture is important because it constrains the quality attributes of a system, both development- and operational quality-related ones, it allows for communication between stakeholders, and it may be utilized to define a common reference for a collection of related software products a product family or product line [8]. Such a collection is commonly referred to as a product line architecture, or PLA.

4 TR 06/03 Measuring the Coherence 2 2 Product Line Architectures Product line architectures are, in fact, frameworks for developing customer-specific applications in a particular domain [8]. For example, all mobile phones or TV sets share some basic set of capabilities, yet each model may have unique features of its own. Note that this approach focuses on developing component-based application families, rather than individual applications. Technically, a product line architecture consists of a number of components. A component may be primitive, or it may contain other components; some components may have variants, while others can be optional. Each component provides some to other components, or to the external world (users and/or other components). Most components also access some from other components and/or external world. What kind of benefits we may expect from such an approach? As before, we do expect better quality and lower development costs. It is generally accepted that the excess effort needed to build software components (which will eventually be reused) makes them about three times as expensive as the components with about the same functionality that were built for a specific system. As for the Product Line Architecture approach, extra cost will not be less than for the individual components (some analyses show that the PLA investment pays off after as few as 4 to 6 systems [14]), but the savings that may be achieved in the long run are more than worth the price. This is why the PLA approach is used by companies like Nokia, Motorola, and HP, among others [1]. Among various technical and managerial challenges related to the design, development, and use of PLA, the issue of PLA assessment is not the least important. It includes the following simple questions: given two alternative PLAs, which one is better and why? and, given a PLA, how we can improve its quality? As always, assessment can be qualitative (description-based), or quantitative (measurement-based) assessment. As always, the latter approach is preferred, whenever possible. Software metrics is what comes to mind first, because software components and architectures are software too, and there exist quite a few software measure that provide concise information facilitate direct comparisons and/or ranking may provide clues on possible improvements. However, traditional software metrics usually focus on things like classes and objects; then, of course, the objects internal structure; and, ultimately, the program code that implements these objects. This orientation makes them mostly inappropriate for measuring software architectures (although, in fact, most of them are inappropriate for measuring software artifacts as well [5]). The assessment of software architectures, and PLAs in particular, should focus on features specific to those architectures and PLAs, such as structure and component interaction, partitioning of functionality, and the way this functionality is ensured. One possible way to do so is based on the measures of service utilization, PSU and RSU, proposed in [4]. The Provided Service Utilization (PSU) of a given component is the number of provided by that component that are actually used by other components in the achitecture, divided by the total number of provided by the component. PSU, in fact, measures how much of the functionality provided by the of a component, is used within the container or PLA. Ideally, a component which has all of its used by other components in the same container component or PLA, will have a value of PSU = 1. The closer PSU is to this maximum value, the more functionality of a component is used within the PLA.

5 TR 06/03 Measuring the Coherence 3 In an analogous manner, the Required Service Utilization (RSU) of the given component is the number of required by that component that are actually provided by other components in the architecture, divided by the total number of required by the component. In fact, the RSU measures the self-sufficiency of a container component or an entire PLA. In other words, just how much of the given component s needs for is satisfied within the same container component or PLA. Ideally, a component which does not require any service outside those provided by other in the same container component or PLA, will have RSU = 1. Most often, primitive components will have high values of RSU. It should be noted that the concepts underlying the measures of Required Service Utilization and Provided Service Utilization are not altogether new. Measures based on similar concepts have been known for a long time, for example: Fan-in measures number of incoming connections in this case, it would be the number of components that use one or more of the provided by the given component. Fan-out measures the number of outgoing connections in this case, it would be the number of components that provide one of more of the required by the given component. Note, however, that both fan-in and fan-out are structural measures, as they simply count incoming and outgoing (i.e., caller and callee) connections for a given component. On the other hand, RSU and PSU define rate of satisfaction and utilization, i.e., they are functional. Moreover, they take into account the context of use: the same component may have different values of RSU and PSU when used in the context of different PLAs. Both these properties make the measures of RSU and PSU remarkably similar to the concept of coherence [10]. 3 Coherence? Wasn t it called cohesion before? Since the publication of the seminal paper of Stevens et al. [12], the concepts of cohesion and coupling have been consistently taken to be valid indicators of the quality of the system design [11]. A system with lower coupling and higher cohesion is, or should be, of better quality than the one with higher coupling and lower cohesion. Consequently, the design goal is to minimize coupling and maximize cohesion and this goal holds for both traditional structured design paradigm and modern object-oriented approaches. Two contrasting views of cohesion have emerged over time. The majority of researchers have considered cohesion to be just a special case of intramodule coupling. In this approach, cohesion is measured as an internal property, a characteristic and a quantitative description of the structure of a software module. An exhaustive overview of these efforts is given in [2]. Another approach attempts to measure cohesion against the yardstick of the objective, purpose, or function of a software module [15]. As this purpose is to be found outside the module and not within it, cohesion is an external property, rather than an internal one. This approach results in a rather different measure, which has been called coherence, in order to emphasize its external and functional, rather than structural, orientation [10]. The distinction between structural and functional properties, after all, complies well with the principle of separation of concerns, which is one of the cornerstones of the object-oriented paradigm. The new approach examines the usage of an artifact its functionality, instead of its internal structure. Therefore, the new measure could be qualified as teleological, or even customer-centric, rather than the traditional, developer-oriented measures.

6 TR 06/03 Measuring the Coherence 4 w 1 w 2 w n w i are client components that use (require) some of the provided by c c provides,... s n c Figure 1: PLAs consist of client and server components. level. Coherence can be applied to software designs at different levels [10], including the Product Line Architecture 3.1 A formal definition Before we define coherence in a formal manner, let us define a few concepts first. Let C denote the set of components in a particular PLA. Let c C be one of those components, and let P (c) = {,... } denote the set of provided by the component c. Let W (c) = {w 1, w 2,... } denote the set of components w i C which use/require provided by the component c. In other words, W (c) is the set of clients of c. Finally, let S(c, w) denote the set of provided by c that is actually used by the client w. This is schematically shown in Fig. 1. Then, the coherence of the component c may be defined as: (#S(c, w) 1) ψ(c) = w W (c) (1) (#P (c) 1) w W (c) where #X stands for the number of elements in the sets X. In fact, each of the summands in the denominator is the same, therefore the denominator sum may be simplified, and the coherence is (#S(c, w) 1) w W (c) ψ(c) = (2) #W (c) (#P (c) 1) Note that coherence is the ratio of two positive numbers. A more formal definition applied to generic objects may be found in [10]. The following boundary values can be shown to hold: Coherence attains its lowest value of zero when each client uses/requires only one of the provided by c.

7 TR 06/03 Measuring the Coherence 5 Coherence attains its maximum value of one when each client uses/requires all of the provided by c. Coherence is undefined when the component c provides a single service only. (In fact, in such cases it would not make much sense to calculate coherence at all.) Thus, the coherence measure is defined on a ratio scale, which renders it fit for algebraic manipulations. (This feature is desirable for any measure [3, 15].) Moreover, the range from zero to one makes a measure quite convenient from a cognitive point of view. In words: number of available that a client uses, averaged over all clients. 3.2 Properties of the coherence measure The coherence measure obviously has two among the most desirable properties for a measure [2]: it is independent of the description language or development paradigm used; and it is easy to automate, since the measure is obtained by simple token counts. More formally, the coherence measure ψ can be shown to satisfy all four properties for a cohesion measure [3], as will be shown in the following. Note that the statements of the properties have been slightly rephrased from their original form, in order to conform to the terminology of architecture-based development. 1. (Nonnegativity and normalization) The value of coherence belongs to the range [0, 1]. This property was informally proven in the previous Subsection. 2. (Null value) The coherence of a component is null if the rest of the system is empty. The rest of the system is empty means that no service of the given components is used by other components; there may be more than one such component in an architecture. In such cases, the sum in the numerator of (2) will have no elements, which results in zero coherence. (Of course, a given component may provide to the user, or to some component outside the PLA itself; but such components should be fairly easy to identify.) 3. (Monotonicity) Adding new uses relationships does not decrease coherence. Adding a new relationship means that one of the clients of c say, w i (c) is altered to use/require a service from the given set, z S(c), which it did not use previously. In that case, one of the elements in the numerator sum the one corresponding to the client w i (c) will increase by 1, while the denominator will stay the same. Consequently, the new value of coherence will be greater than the old one which is exactly the desired property. 4. (Merging of components) The coherence of the component obtained by merging two unrelated components is not greater than the maximum coherence of the original components. Traditionally, unrelated means that the components to be merged are not clients of each other, but with coherence being an external and functional measure, we take it to mean that the components to be merged have no common clients. The proof is somewhat involved, and it is shown in the Appendix. The main consequence of this property is that coherence of unrelated components cannot be improved by simply merging them; however, if we split a component into two others, at least one of them will have higher coherence than the original one. The question, of course, is how to perform the split so that both resulting components have higher coherence. Some situations in which this might be the case will be shown in the next Section.

8 TR 06/03 Measuring the Coherence 6 C2 C2 uses C2 uses s 4, s 5 uses C2 uses s 4, s 5 Cy (a) If the coherence of a component is low because two clients use two (nearly) distinct sets of its... (b)... perhaps that component can be split into two, each of which will be more coherent than the original one. Figure 2: Use of coherence: example 1. As mentioned before, the coherence of a given component depends on its context of use: a single component could be fully coherent when used in one PLA, and less than fully coherent when used in another one. But such behavior is to be expected from a functional measure anyway [15]: a spoon may be a perfect tool to eat soup, but is not quite appropriate for cutting meat. 4 Using the coherence measure: a catalog of coherence-based refactorings After all the definitions and properties, one might still ask the question: what is it that we really measure? To put it in words: the coherence measures how well the provided by a component help it achieve the common objective of that component. Ideally, each client of a component will use all of the provided by that component. In less than ideal cases, there will be clients that do not use all, or different clients may use disjoint subsets of, or the like. The coherence measure helps pinpoint such cases, so that the architect may examine the client-server relationships in more detail and take appropriate actions. The range of available actions includes the following: modifying the component, be it the server or (in some cases) even the client; re-arranging the of the components into different components the practice commonly referred to as refactoring [6]; finally, doing nothing, because it may be too expensive, or other design objectives dictate such behavior. Either way, the additional scrutiny will most certainly result in better understanding of the architecture, and ultimately lead to quality improvement. A few examples of coherence-based refactoring are given in Figs. 2 to 7. The common thread of all these cases is that an increase in coherence might be obtained by (a) splitting the server components, and/or (b) merging or rearranging the client components. (This is the consequence of Property 4 above.) But the most important point is the fact that coherence may give us an additional insight

9 TR 06/03 Measuring the Coherence 7 a b b a uses b uses, s 2, s 4 a uses b uses, s 2, s 4 a b (a) If the coherence of a component is low because one variant of a client uses some of the of that component, while the other does not... (b)... perhaps the component itself should be split into two variants, each of which will be more coherent than the original one. Figure 3: Use of coherence: example 2. a b b a uses b uses, s 2, s 4 a, b use b uses service s 4 Cy (a) If the coherence of a component is low because a variant of a client uses some of the component, while the other does not... (b)... perhaps the component should be split into a common and an optional part and each of the two will be more coherent than the original component. Figure 4: Use of coherence: example 3.

10 TR 06/03 Measuring the Coherence 8 uses from uses s 5, s 6 from Cy also uses s 3, s 4 from Cy uses, s 4 from y Cy s 5, s 6 become internal in y y (a) If a client component uses from two other components, and one of them also uses the of the other... (b)... perhaps the two server components can be merged into a single, more coherent component. Figure 5: Use of coherence: example 4. C2 C3, C2 use C3 uses service s 3 Figure 6: Use of coherence: example 5. If a client uses fewer of a components than its other clients, examine it closely maybe it should be merged with another client. C2 uses C2 uses s 4, s 5 provides, s 2, s 4, s 5, s 6, s 7 Figure 7: Use of coherence: example 6. If the coherence is very low because some are never used, maybe those should not have been provided in the first place therefore, hide them or perhaps even remove them.

11 TR 06/03 Measuring the Coherence 9 into the structural quality of the PLA. In particular, it can highlight weaknesses in the PLAS structure, and thus facilitate restructuring that will improve this quality and bring benefits in the long term. 5 Concluding remarks Traditionally, measurement and overall assessment of software products focuses on their internal structure, but Product Line Architecture approach requires a different viewpoint. This approach is based on the concept of coherence. The concept is generic enough to enable the coherence measure to be used at various abstraction levels, and in different phases of the development life cycle. In this work we have shown that coherence can be used to improve the structural quality of product line software architectures, or PLAs. Work is under way to integrate the coherence measure with one of the well known Architecture Description Languages (ADLs) [9], and to integrate it into an architecture design tool. Further work is under way to validate the coherence measure in practice, and devise the best way to use the insight it offers to improve the quality of software designs. A Proof of the fourth property of the coherence measure As mentioned above, the fourth property from [3] states that the coherence of the component obtained by merging two unrelated components is not greater than the maximum coherence of the original components. If we denote the components to be merged as c 1 and c 2, their coherence values will be, respectively, (#S(c 1, w) 1) ψ(c 1 ) = ψ(c 2 ) = w W (c 1 ) #W (c 1 ) (#P (c 1 ) 1) (#S(c 2, w) 1) w W (c 2 ) #W (c 2 ) (#P (c 2 ) 1) where, as before, #X stands for the number of elements in the set X. In general, unrelated means that the components to be merged are not clients of each other, which can be written as c 1 W (c 2 ) and c 2 W (c 1 ), respectively. But since coherence is a functional measure, unrelated should be extended to the individual components clients as well, in which case W (c 1 ) W (c 2 ) =. Then, the coherence of the merged component x may be written as (#S(x, w) 1) w W (x) ψ(x) = (5) #W (x) (#P (x) 1) Now, the set of provided by the merged component x and the set of its clients may be obtained as unions of the corresponding sets of and clients of c 1 and c 2, respectively: (3) (4) P (x) = P (c 1 ) P (c 2 ) W (x) = W (c 1 ) W (c 2 ) (6)

12 TR 06/03 Measuring the Coherence 10 However, the two sets of, as well as the two sets of clients, are disjoint: #P (x) = #P (c 1 ) + #P (c 2 ) #W (x) = #W (c 1 ) + #W (c 2 ) (7) The sum in the numerator of (5) may be split into two sums, each of this corresponds to the clients of one of the original components: N (ψ(x)) = (#S(x, w) 1) + (#S(x, w) 1) (8) w W 1 w W 2 For simplicity, we use the notation N (F ) and D(F ) for the numerator and denominator of the fraction F, respectively. Now, the summands of the numerator sums may be simplified to: N (ψ(x)) = (#S(c 1, w) 1) + (#S(c 2, w) 1) (9) w W 1 w W 2 The denominator may be simplified as well, using equalities from (7): D(ψ(x)) = #W (x) (#P (x) 1) = (#W (c 1 ) + #W (c 2 )) (#P (c 1 ) + #P (c 2 ) 1) (10) After some simple algebraic manipulation, the coherence of the merged component may be written as ψ(x) = N (ψ(c 2)) D(ψ(c 2 )) 1 + N (ψ(c 1)) N (ψ(c 2 )) 1 + D(ψ(c 1)) D(ψ(c 2 )) + (#W 1)(#P (c 2 )) + (#W 2 )(#P (c 1 )) D(ψ(c 2 )) (11) We may arbitrarily assume that the component c 2 has higher coherence, ψ(c 1 ) ψ(c 2 ), which means that N (ψ(c 1 )) D(ψ(c 1 )) N (ψ(c 2)) D(ψ(c 2 )) (12) Since coherence is a ratio of two positive numbers, the last expression may be written as N (ψ(c 1 )) N (ψ(c 2 )) D(ψ(c 1)) D(ψ(c 2 )) (13)

13 TR 06/03 Measuring the Coherence 11 Now, the coherence becomes ψ(x) = N (ψ(c 2)) D(ψ(c 2 )) 1 + N (ψ(c 1)) N (ψ(c 2 )) 1 + D(ψ(c 1)) D(ψ(c 2 )) + (#W 1)(#P (c 2 )) + (#W 2 )(#P (c 1 )) D(ψ(c 2 )) (14) Since the member counts of sets W (c 1 ), W (c 2 ), P (c 1 ), and P (c 2 ) are non-zero, the second fraction may be simplified, so that the overall expression becomes ψ(x) N (ψ(c 1 + N (ψ(c 1)) 2)) D(ψ(c 2 )) N (ψ(c 2 )) 1 + D(ψ(c 1)) D(ψ(c 2 )) (15) Using (13), it follows that ψ(x) N (ψ(c 1 + D(ψ(c 1)) 2)) D(ψ(c 2 )) D(ψ(c 2 )) 1 + D(ψ(c 1)) D(ψ(c 2 )) N (ψ(c 2)) D(ψ(c 2 )) (16) which concludes the proof.

14 TR 06/03 Measuring the Coherence 12 References [1] L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. The SEI Series in Software Engineering. Addison-Wesley, Reading, MA, [2] L. C. Briand, J. W. Daly, and J. Wüst. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering, 3:65 117, [3] L. C. Briand, S. Morasca, and V. R. Basili. Property-based software engineering measurement. IEEE Transactions on Software Engineering, 22(1):68 86, Jan [4] E. Dincel, N. Medvidovic, and A. van der Hoek. Measuring product line architectures. In 4th International Workshop on Software Product-Family Engineering PFE 2001, volume 2290 of LNCS, pages Berlin, Germany: Springer-Verlag, [5] N. E. Fenton and S. L. Pfleeger. Software Metrics: a Rigorous and Practical Approach. PWS Publishing Company, London, 2nd edition, [6] M. Fowler. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, [7] D. Garlan, R. Allen, and J. Ockerbloom. Architectural mismatch: why reuse is so hard. IEEE Software, 12(6):17 26, Nov [8] M. Jazayeri, A. Ran, and F. van der Linden. Software Architecture for Product Families. Addison-Wesley, Boston, MA, [9] N. Medvidovic and R. N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70 93, Jan [10] V. B. Mišić. Cohesion is structural, coherence is functional: Different views, different measures. In 7th International Software Metrics Symposium, page35 144, London, England, Apr [11] M. Page-Jones. The Practical Guide to Structured Systems Design. Yourdon Press, Englewood Cliffs, NJ, second edition, [12] W. P. Stevens, G. J. Myers, and L. L. Constantine. Structured design. IBM Systems Journal, 13(2): , [13] C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Harlow, UK, [14] D. M. Weiss and C. T. R. Lai. Software Product-Line Engineering A Family-Based Software Development Process. Addison-Wesley, Reading, MA, [15] S. A. Whitmire. Object-Oriented Design Measurement. John Wiley and Sons, New York, NY, 1997.

Structuring Product-lines: A Layered Architectural Style

Structuring Product-lines: A Layered Architectural Style Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland

More information

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,

More information

C. Wohlin, "Is Prior Knowledge of a Programming Language Important for Software Quality?", Proceedings 1st International Symposium on Empirical

C. Wohlin, Is Prior Knowledge of a Programming Language Important for Software Quality?, Proceedings 1st International Symposium on Empirical C. Wohlin, "Is Prior Knowledge of a Programming Language Important for Software Quality?", Proceedings 1st International Symposium on Empirical Software Engineering, pp. 27-36, Nara, Japan, October 2002.

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

An Integrated Quality Assurance Framework for Specifying Business Information Systems

An Integrated Quality Assurance Framework for Specifying Business Information Systems An Integrated Quality Assurance Framework for Specifying Business Information Systems Frank Salger 1, Stefan Sauer 2, Gregor Engels 1,2 1 Capgemini sd&m AG, Carl-Wery-Str. 42, D-81739 München, Germany

More information

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE Zahra Askarinejad Amiri 1 1 Department of Computer Engineering, Staffordshire University ABSTRACT [email protected] As Information

More information

The Role of Controlled Experiments in Software Engineering Research

The Role of Controlled Experiments in Software Engineering Research The Role of Controlled Experiments in Software Engineering Research Victor R. Basili 1 The Experimental Discipline in Software Engineering Empirical studies play an important role in the evolution of the

More information

Process-Family-Points

Process-Family-Points Process-Family-Points Sebastian Kiebusch 1, Bogdan Franczyk 1, and Andreas Speck 2 1 University of Leipzig, Faculty of Economics and Management, Information Systems Institute, Germany [email protected],

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

SOFTWARE MEASUREMENT

SOFTWARE MEASUREMENT SOFTWARE MEASUREMENT SANDRO MORASCA Università dell'insubria Dipartimento di Scienze Chimiche, Fisiche e Matematiche Sede di Como Via Valleggio Como, I-00, Italy Email: [email protected] This article

More information

Software Project Management Matrics. Complied by Heng Sovannarith [email protected]

Software Project Management Matrics. Complied by Heng Sovannarith heng_sovannarith@yahoo.com Software Project Management Matrics Complied by Heng Sovannarith [email protected] Introduction Hardware is declining while software is increasing. Software Crisis: Schedule and cost estimates

More information

AN EMPIRICAL REVIEW ON FACTORS AFFECTING REUSABILITY OF PROGRAMS IN SOFTWARE ENGINEERING

AN EMPIRICAL REVIEW ON FACTORS AFFECTING REUSABILITY OF PROGRAMS IN SOFTWARE ENGINEERING AN EMPIRICAL REVIEW ON FACTORS AFFECTING REUSABILITY OF PROGRAMS IN SOFTWARE ENGINEERING Neha Sadana, Surender Dhaiya, Manjot Singh Ahuja Computer Science and Engineering Department Shivalik Institute

More information

SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007

SOFTWARE ESTIMATING RULES OF THUMB. Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 SOFTWARE ESTIMATING RULES OF THUMB Version 1 - April 6, 1997 Version 2 June 13, 2003 Version 3 March 20, 2007 Abstract Accurate software estimating is too difficult for simple rules of thumb. Yet in spite

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.

More information

SOPLE-DE: An Approach to Design Service-Oriented Product Line Architectures

SOPLE-DE: An Approach to Design Service-Oriented Product Line Architectures SOPLE-DE: An Approach to Design -Oriented Product Line Architectures Flávio M. Medeiros, Eduardo S. de Almeida 2, and Silvio R.L. Meira Federal University of Pernambuco (UFPE) 2 Federal University of Bahia

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Introduction to software architecture

Introduction to software architecture Open Learning Universiteit Unit 1 Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is softwarearchitecture?.................................

More information

Different Approaches used in Software Product Families

Different Approaches used in Software Product Families Different Approaches used in Software Product Families Rafia Inam Mälardalens University. [email protected] Abstract The use of software in consumer products is growing tremendously in current era. Further

More information

Family Evaluation Framework overview & introduction

Family Evaluation Framework overview & introduction A Family Evaluation Framework overview & introduction P B Frank van der Linden O Partner: Philips Medical Systems Veenpluis 4-6 5684 PC Best, the Netherlands Date: 29 August, 2005 Number: PH-0503-01 Version:

More information

Requirements for Software Deployment Languages and Schema

Requirements for Software Deployment Languages and Schema Requirements for Software Deployment Languages and Schema Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Software Engineering Research Laboratory Department of Computer Science University of Colorado

More information

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

A Variability Viewpoint for Enterprise Software Systems

A Variability Viewpoint for Enterprise Software Systems 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,

More information

A Comparison of SOA Methodologies Analysis & Design Phases

A Comparison of SOA Methodologies Analysis & Design Phases 202 A Comparison of SOA Methodologies Analysis & Design Phases Sandra SVANIDZAITĖ Institute of Mathematics and Informatics, Vilnius University Abstract. Service oriented computing is a new software engineering

More information

Simulating the Structural Evolution of Software

Simulating the Structural Evolution of Software Simulating the Structural Evolution of Software Benjamin Stopford 1, Steve Counsell 2 1 School of Computer Science and Information Systems, Birkbeck, University of London 2 School of Information Systems,

More information

II. TYPES OF LEVEL A.

II. TYPES OF LEVEL A. Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.

More information

Architecture Centric Development in Software Product Lines

Architecture Centric Development in Software Product Lines Architecture Centric Development in Software Product Lines Aurangzeb Khan DCE, College of E & ME National University of Science and Technology (NUST), Pakistan Farooque Azam DCE, College of E & ME National

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

3 Extending the Refinement Calculus

3 Extending the Refinement Calculus Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada [email protected] Abstract. We extend the

More information

A Pattern-based Framework of Change Operators for Ontology Evolution

A Pattern-based Framework of Change Operators for Ontology Evolution A Pattern-based Framework of Change Operators for Ontology Evolution Muhammad Javed 1, Yalemisew M. Abgaz 2, Claus Pahl 3 Centre for Next Generation Localization (CNGL), School of Computing, Dublin City

More information

Core Issues Affecting Software Architecture in Enterprise Projects

Core Issues Affecting Software Architecture in Enterprise Projects Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large

More information

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects. Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez [email protected] Hector Florez [email protected] ABSTRACT The linguistic conformance and the ontological

More information

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds

Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds M. Ali Babar Lancaster University, UK & IT University of Copenhagen Talk @ MESOCA, Eindhoven, the Netherlands September,

More information

On the Relation between Design Contracts and Errors: A Software Development Strategy

On the Relation between Design Contracts and Errors: A Software Development Strategy On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

INCORPORATING CFD INTO THE UNDERGRADUATE MECHANICAL ENGINEERING PROGRAMME AT THE UNIVERSITY OF MANITOBA

INCORPORATING CFD INTO THE UNDERGRADUATE MECHANICAL ENGINEERING PROGRAMME AT THE UNIVERSITY OF MANITOBA INCORPORATING CFD INTO THE UNDERGRADUATE MECHANICAL ENGINEERING PROGRAMME AT THE UNIVERSITY OF MANITOBA Scott J. Ormiston SJ [email protected] Associate Professor, Dept. of Mechanical and Industrial

More information

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE AGILE SOFTWARE DEVELOPMENT A TECHNIQUE Saurav Tiwari 1,Aasheesh Goel 2,Rajeev Sharma 3 1,2 Research Scholar,MCADept.,SRM University,NCRCampus,Modinagar 3 Asst. Prof.,MCADept.,SRM University,NCR Campus

More information

How To Calculate Class Cohesion

How To Calculate Class Cohesion Improving Applicability of Cohesion Metrics Including Inheritance Jaspreet Kaur 1, Rupinder Kaur 2 1 Department of Computer Science and Engineering, LPU, Phagwara, INDIA 1 Assistant Professor Department

More information

Use software to define silicon p. 15

Use software to define silicon p. 15 April 2008 Use software to define silicon p. 15 >> Domain-specific modeling p.20 >> Efficient CRC calculation p.24 >> Linux development tools p.28 >> Verification enters the atomic age p.33 >> Advantages

More information

A Symptom Extraction and Classification Method for Self-Management

A Symptom Extraction and Classification Method for Self-Management LANOMS 2005-4th Latin American Network Operations and Management Symposium 201 A Symptom Extraction and Classification Method for Self-Management Marcelo Perazolo Autonomic Computing Architecture IBM Corporation

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

Soft Skills Requirements in Software Architecture s Job: An Exploratory Study

Soft Skills Requirements in Software Architecture s Job: An Exploratory Study Soft Skills Requirements in Software Architecture s Job: An Exploratory Study 1 Faheem Ahmed, 1 Piers Campbell, 1 Azam Beg, 2 Luiz Fernando Capretz 1 Faculty of Information Technology, United Arab Emirates

More information

Domain-Driven Design

Domain-Driven Design SWE577 2011S 1 Domain-Driven Design Ali Fındık Abstract Domain Driven Design (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of

More information

An Architecture-Based Approach for Component-Oriented Development

An Architecture-Based Approach for Component-Oriented Development An Architecture-Based Approach for Component-Oriented Development Feng Chen, Qianxiang Wang, Hong Mei, Fuqing Yang Department of Computer Science and Technology, Peking University, Beijing 100871, P.R.China

More information

ISO/IEC 9126 in practice: what do we need to know?

ISO/IEC 9126 in practice: what do we need to know? ISO/IEC 9126 in practice: what do we need to know? P. Botella, X. Burgués, J.P. Carvallo, X. Franch, G. Grau, J. Marco, C. Quer Abstract ISO/IEC 9126 is currently one of the most widespread quality standards.

More information

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4 International Conference 20th EURO Mini Conference Continuous Optimization and Knowledge-Based Technologies (EurOPT-2008) May 20 23, 2008, Neringa, LITHUANIA ISBN 978-9955-28-283-9 L. Sakalauskas, G.W.

More information

Realizing business flexibility through integrated SOA policy management.

Realizing business flexibility through integrated SOA policy management. SOA policy management White paper April 2009 Realizing business flexibility through integrated How integrated management supports business flexibility, consistency and accountability John Falkl, distinguished

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

2 Associating Facts with Time

2 Associating Facts with Time TEMPORAL DATABASES Richard Thomas Snodgrass A temporal database (see Temporal Database) contains time-varying data. Time is an important aspect of all real-world phenomena. Events occur at specific points

More information

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Life Cycle Activity Areas for Component-Based Software Engineering Processes Life Cycle Activity Areas for Component-Based Software Engineering Processes Robert C. Seacord Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 USA +1 412-268-3265 Kingsley

More information

COMPARATIVE STUDY OF SOFTWARE TESTING TOOLS ON THE BASIS OF SOFTWARE TESTING METHODOLOGIES

COMPARATIVE STUDY OF SOFTWARE TESTING TOOLS ON THE BASIS OF SOFTWARE TESTING METHODOLOGIES International Journal of Advance Research In Science And Engineering http://www.ijarse.com COMPARATIVE STUDY OF SOFTWARE TESTING TOOLS ON THE BASIS OF SOFTWARE TESTING METHODOLOGIES 1 Lav Kumar Dixit,

More information

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management International Journal of Soft Computing and Engineering (IJSCE) A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management Jayanthi.R, M Lilly Florence Abstract:

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

An Exploratory Study on SAP Maintenance Process Management

An Exploratory Study on SAP Maintenance Process Management An Exploratory Study on SAP Maintenance Process Management Celeste See-Pui Ng Department of Information Management Yuan Ze University, Taiwan R.O.C. Email: [email protected] Abstract This research-in-progress

More information

Introduction to software architecture

Introduction to software architecture Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is software architecture?................................. 7 1.1.1

More information

Component Based Development Methods - comparison

Component Based Development Methods - comparison Component Based Development Methods - comparison Dan Laurenţiu Jişa Abstract: This paper realizes a comparison among three of the best known component based development methods, emphazing on the earlier

More information

Notes on Factoring. MA 206 Kurt Bryan

Notes on Factoring. MA 206 Kurt Bryan The General Approach Notes on Factoring MA 26 Kurt Bryan Suppose I hand you n, a 2 digit integer and tell you that n is composite, with smallest prime factor around 5 digits. Finding a nontrivial factor

More information

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,

More information

Usability metrics for software components

Usability metrics for software components Usability metrics for software components Manuel F. Bertoa and Antonio Vallecillo Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga. {bertoa,av}@lcc.uma.es Abstract. The need to select

More information

The Role of the Software Architect

The Role of the Software Architect IBM Software Group The Role of the Software Architect Peter Eeles [email protected] 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

3 Guidance for Successful Evaluations

3 Guidance for Successful Evaluations 3 Guidance for Successful Evaluations In developing STEP, project leads identified several key challenges in conducting technology evaluations. The following subsections address the four challenges identified

More information

The Perusal and Review of Different Aspects of the Architecture of Information Security

The Perusal and Review of Different Aspects of the Architecture of Information Security The Perusal and Review of Different Aspects of the Architecture of Information Security Vipin Kumar Research Scholar, CMJ University, Shillong, Meghalaya (India) Abstract The purpose of the security architecture

More information

Application of software product quality international standards through software development life cycle

Application of software product quality international standards through software development life cycle Central Page 284 of 296 Application of software product quality international standards through software development life cycle Mladen Hosni, Valentina Kirinić Faculty of Organization and Informatics University

More information

Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework

Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework Thorsten Arendt a, Matthias Burhenne a, Gabriele Taentzer a a Philipps-Universität Marburg,

More information

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice Life-Cycle Model Software Life-Cycle Models Xiaojun Qi It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and

More information

The use of Trade-offs in the development of Web Applications

The use of Trade-offs in the development of Web Applications The use of Trade-offs in the development of Web Applications Sven Ziemer and Tor Stålhane Department of Computer and Information Science Norwegian University of Technology and Science {svenz, stalhane}@idi.ntnu.no

More information

Benefits of Test Automation for Agile Testing

Benefits of Test Automation for Agile Testing Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,

More information

Configuration Management

Configuration Management 83 Chapter 6 Configuration Management Published as: Configuration Management in Component Based Product Populations, Rob van Ommering, 10th International Workshop on Software Configuration Management,

More information

IS YOUR DATA WAREHOUSE SUCCESSFUL? Developing a Data Warehouse Process that responds to the needs of the Enterprise.

IS YOUR DATA WAREHOUSE SUCCESSFUL? Developing a Data Warehouse Process that responds to the needs of the Enterprise. IS YOUR DATA WAREHOUSE SUCCESSFUL? Developing a Data Warehouse Process that responds to the needs of the Enterprise. Peter R. Welbrock Smith-Hanley Consulting Group Philadelphia, PA ABSTRACT Developing

More information

Integration of Usability Techniques into the Software Development Process

Integration of Usability Techniques into the Software Development Process Integration of Usability Techniques into the Software Development Process Xavier Ferre Universidad Politecnica de Madrid [email protected] Abstract Software development organisations are paying more and

More information

A Review of Database Schemas

A Review of Database Schemas A Review of Database Schemas Introduction The purpose of this note is to review the traditional set of schemas used in databases, particularly as regards how the conceptual schemas affect the design of

More information

1. Introduction to ehealth:

1. Introduction to ehealth: 1. Introduction to ehealth: E-Health is one of the fastest growing areas within the health sector. The scope of e- Health involves application of the knowledge, skills and tools, which enable information

More information

Advancements in the V-Model

Advancements in the V-Model Advancements in the V-Model Sonali Mathur Asst. Professor, CSE Dept. ABES Institute of Technology Ghaziabad, U.P-201009 Shaily Malik Lecturer, CSE Dept. Maharaja Surajmal Institute of Tech. Janakpuri,

More information

EFFORT ESTIMATION IN QUOTATION PHASE OF COMPLEX PROJECTS DEVELOPMENT

EFFORT ESTIMATION IN QUOTATION PHASE OF COMPLEX PROJECTS DEVELOPMENT EFFORT ESTIMATION IN QUOTATION PHASE OF COMPLEX PROJECTS DEVELOPMENT Daniel TIUC 1,2, George DRAGHICI 1 1 Polytechnic University Timisoara, Integrated Engineering Research Center, [email protected]

More information

C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering

C. Wohlin and B. Regnell, Achieving Industrial Relevance in Software Engineering Education, Proceedings Conference on Software Engineering C. Wohlin and B. Regnell, "Achieving Industrial Relevance in Software Engineering Education", Proceedings Conference on Software Engineering Education & Training, pp. 16-25, New Orleans, Lousiana, USA,

More information

A process-driven methodological approach for the design of telecommunications management systems

A process-driven methodological approach for the design of telecommunications management systems A process-driven methodological approach for the design of telecommunications management systems Thierry FRAIZE, Julio VILLENA, Jean-Daniel GUEDJ TELECOM ARGENTINA Av Dorrego 2520 (1425) Buenos Aires Argentina

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2 EXAMINERS REPORT Friday 2 nd October 2015 Answer any THREE

More information