• No se han encontrado resultados

2. JUSTIFICACION

5.3.3 Gestión de riesgos Metodologías

5.3.3.5 MAGERIT

5.3.3.5.1 Paso 1: inventario y valoración de activos

Gray–Box is a compromise between white and Black–Box techniques. It takes analysis the migrated system on both code and system level. The approach presented in this section derives from clustering analysis. The clustering analysis is applied in order to allocate fully functionally and reusable services. Clustering analysis is a sequence of following processes 2.1.4:

Service Identification –Service Identification underlines all the processes as- sociated with migration toward Service Oriented Architecture. In context of the presented approach, the identification is based on analysis of documentation, es- pecially requirement documentation. The identification consists of two steps [84]: 1. Sub domain identification –includes analysis of selected sub–domains in

order to define boundaries of the whole legacy system.

2. Further analysis –carries the burden from strict analysis to modelling, espe- cially on modelling of the whole system as UML diagram that is afterwards transferred to third party software. The diagrams are expressed in XML [84]. The model serves as an input for identification of potentially reusable components that latterly may be provided as services. Those services are calledlogical services and they are spanned between concept of service itself and the technical realisation separated from legacy code.

Legacy System Understanding –The second process is intended to esti- mate potential migration chances and model the system. According to Zhuopeng Zhang[84],a system is suitable to migrate toward SOA when the system contains reusable business functionality that in comparison to the whole system is rea- sonably maintainable. Moreover, the functionality should bring additional value after exposing it as a service. Having estimation done, a model of the system should be elaborated. Elaboration of the model is based on a re–engineering process and analysis of existing documentation including technical documenta- tion, graphs, interfaces and other existing models. Approach description includes different treatment of procedural software and object–oriented (OO) software. Re–engineering of procedural–application in opposite to OO applications involves usage of additional tools in order to obtain candidate classes and intermediate object–oriented model. In turn, Intermediate Model incorporates UML repre- sentation, event driving programming models and object oriented programming language [84]. Object–Oriented approach tries to define system on different levels of abstraction by creation of UML class diagram and control flow graph.

Agglomerative Clustering Analysis – Agglomerative Clustering requires a set of data for reorganization purpose. This set of data in case of migra- tion involves functions, procedures and classes that are further clustered ac- cording to feature similarity. The similarity is a key concept in legacy system restructuring[84]. The technique defines features that are used to measure the similarity and determinate whether two entities belong to the same cluster. A feature reflects found identifiers–name. A name can identify any non local entity or a property of the entity including property, name or method name [84].

Then, the algorithm is executed (see [84] for more information about the algorithm).The algorithm produces a dendrogram that describes dependencies

between all the provided data. In order to allocate services, architects have to set cutting points manually and divide the diagram into sub–trees. The sub–tree become services. During service selection, architects have to take into consider- ation other information retrieved during previous steps as well as the amount of dependencies in order to receive coarse grained and loosely coupled services (see 4.3.1).

Service Packaging and Integration This is the last step of presented Gray–Box technique. The step accomplishes the process of migration from legacy system to- wards Service–Oriented Architecture. The last step is composed from a sequence of three sub–steps [84]:

1. Refinement –the services obtained as a result of all the previous steps are loosely coupled, but they still contain some dependencies. Refinement in- creases independence of those services and improve their quality by removal of all the“dead” code and unrelated interactions of interfaces. During this process also an interface for service communication is established [84]. 2. Component integration and packaging –component integration takes previ-

ously refined services and connects them with a “glue code” that serves as an adapter in order to transform ingoing and outgoing invocation. Addi- tionally, some differences between domain and retrieved model may appear. The differences should be filled up with new services.

3. Interface design –this step is meant to create interfaces[84],but in fact the output is a contract that specifies exact input and output for each operation of the service. Also an interface –a representation of the contract–is created. Application of clustering seems to be very promising solution because it base on very basic human activity–classification [4]. Generally, clustering is meant to re- organize groups of entities by taking into consideration their similarity and based on that divide them into more homogenous groups[4]. The similarity can vary as a domain of analysis and can be understood as for instance similarity of proper- ties which is measured with metrics. Method applied in this approach bases on an improved agglomerative hierarchical clustering [4],This technique emphasizes functional aspects [4]that are essential in SOA. The technique is presented as a set of processes and an algorithm.