19 research outputs found

    The History of Software Architecture - In the Eye of the Practitioner

    Get PDF
    Software architecture (SA) is celebrating 25 years. This is so if we consider the seminal papers establishing SA as a distinct discipline and scientific publications that have identified cornerstones of both research and practice, like architecture views, architecture description languages, and architecture evaluation. With the pervasive use of cloud provisioning, the dynamic integration of multi-party distributed services, and the steep increase in the digitalization of business and society, making sound design decisions encompasses an increasingly-large and complex problem space. The role of SA is essential as never before, so much so that no organization undertakes `serious' projects without the support of suitable architecture practices. But, how did SA practice evolve in the past 25 years? and What are the challenges ahead? There have been various attempts to summarize the state of research and practice of SA. Still, we miss the practitioners' view on the questions above. To fill this gap, we have first extracted the top-10 topics resulting from the analysis of 5,622 scientific papers. Then, we have used such topics to design an online survey filled out by 57 SA practitioners with 5 to 20+ years of experience. We present the results of the survey with a special focus on the SA topics that SA practitioners perceive, in the past, present and future, as the most impactful. We finally use the results to draw preliminary takeaways.Comment: 11 page

    Mining Architectural Information: A Systematic Mapping Study

    Full text link
    Context: Mining Software Repositories (MSR) has become an essential activity in software development. Mining architectural information to support architecting activities, such as architecture understanding and recovery, has received a significant attention in recent years. However, there is an absence of a comprehensive understanding of the state of research on mining architectural information. Objective: This work aims to identify, analyze, and synthesize the literature on mining architectural information in software repositories in terms of architectural information and sources mined, architecting activities supported, approaches and tools used, and challenges faced. Method: A Systematic Mapping Study (SMS) has been conducted on the literature published between January 2006 and November 2021. Results: Of the 79 primary studies finally selected, 8 categories of architectural information have been mined, among which architectural description is the most mined architectural information; 12 architecting activities can be supported by the mined architectural information, among which architecture understanding is the most supported activity; 81 approaches and 52 tools were proposed and employed in mining architectural information; and 4 types of challenges in mining architectural information were identified. Conclusions: This SMS provides researchers with promising future directions and help practitioners be aware of what approaches and tools can be used to mine what architectural information from what sources to support various architecting activities.Comment: 68 pages, 5 images, 15 tables, Manuscript submitted to a Journal (2022

    A Journey through the Land of Model-View-Design Patterns

    Full text link

    Real-Time Reflexion Modelling in architecture reconciliation: A multi case study

    Get PDF
    Context Reflexion Modelling is considered one of the more successful approaches to architecture reconciliation. Empirical studies strongly suggest that professional developers involved in real-life industrial projects find the information provided by variants of this approach useful and insightful, but the degree to which it resolves architecture conformance issues is still unclear. Objective This paper aims to assess the level of architecture conformance achieved by professional architects using Reflexion Modelling, and to determine how the approach could be extended to improve its suitability for this task. Method An in vivo, multi-case-study protocol was adopted across five software systems, from four different financial services organizations. Think-aloud, video-tape and interview data from professional architects involved in Reflexion Modelling sessions were analysed qualitatively. Results This study showed that (at least) four months after the Reflexion Modelling sessions less than 50% of the architectural violations identified were removed. The majority of participants who did remove violations favoured changes to the architectural model rather than to the code. Participants seemed to work off two specific architectural templates, and interactively explored their architectural model to focus in on the causes of violations, and to assess the ramifications of potential code changes. They expressed a desire for dependency analysis beyond static-source-code analysis and scalable visualizations. Conclusion The findings support several interesting usage-in-practice traits, previously hinted at in the literature. These include (1) the iterative analysis of systems through Reflexion models, as a precursor to possible code change or as a focusing mechanism to identify the location of architecture conformance issues, (2) the extension of the approach with respect to dependency analysis of software systems and architectural modelling templates, (3) improved visualization support and (4) the insight that identification of architectural violations in itself does not lead to their removal in the majority of instances.This work was supported, in part, by Science Foundation Ireland Grants 12/IP/1351 and 10/CE/I1855 to Lero – the Irish Software Engineering Research Centre (www.lero.ie) and by the University of Brighton under the Rising Star Scheme awarded to Nour Ali

    Implementación basada en el Middleware Orocos de controladores dinámicos para un robot paralelo

    Full text link
    [ES] El control automático de los sistemas robotizados actuales involucra cada vez más la implementación de distintas tareas a realizar por el robot con distinto grado de complejidad. En esta tesina se aborda la implementación de controladores mediante el middleware de tiempo real Orocos para controlar un robot paralelo de 3 grados de libertad.[EN] Automatic control of robotic systems involves the implementation of various tasks to be performed by the robot with different degrees of complexity. This thesis explains the implementation of differents controllers using the real-time middleware Orocos, in order to control a parallel robot with 3 degrees of freedomCazalilla Morenas, JI. (2012). Implementación basada en el Middleware Orocos de controladores dinámicos para un robot paralelo. http://hdl.handle.net/10251/27253Archivo delegad

    Analysing call graphs for software architecture quality profiling

    Get PDF
    Dissertação de mestrado em Engenharia de InformáticaRisk assessment is an important topic for financial institution nowadays, especially in the context of loan applications or loan requests and credit scoring. Some of these institutions have already implemented their own custom credit scoring systems to evaluate their clients’ risk supporting the loan application decision with this indicator. In fact, the information gathered by financial institutions constitutes a valuable source of data for the creation of information assets from which credit scoring mechanisms may be developed. Historically, most financial institutions support their decision mechanisms on regression algorithms, however, these algorithms are no longer considered the state of the art on decision algorithms. This fact has led to the interest on the research of new types of learning algorithms from machine learning able to deal with the credit scoring problem. The work presented in this dissertation has as an objective the evaluation of state of the art algorithms for credit decision proposing new optimization to improve their performance. In parallel, a suggestion system on credit scoring is also proposed in order to allow the perception of how algorithm produce decisions on clients’ loan applications, provide clients with a source of research on how to improve their chances of being granted with a loan and also develop client profiles that suit specific credit conditions and credit purposes. At last, all the components studied and developed are combined on a platform able to deal with the problem of credit scoring through an experts system implemented upon a multi-agent system. The use of multi-agent systems to solve complex problems in today’s world is not a new approach. Nevertheless, there has been a growing interest in using its properties in conjunction with machine learning and data mining techniques in order to build efficient systems. The work presented aims to demonstrate the viability and utility of this type of systems for the credit scoring problem.Hoje em dia, a análise de risco é um tópico importante para as instituições financeiras, especialmente no contexto de pedidos de empréstimo e de classificação de crédito. Algumas destas instituições têm já implementados sistemas de classificação de crédito personalizados para avaliar o risco dos seus clientes baseando a decisão do pedido de empréstimo neste indicador. De facto, a informação recolhida pelas instituições financeiras constitui uma valiosa fonte de dados para a criação de ativos de informação, de onde mecanismos de classificação de crédito podem ser desenvolvidos. Historicamente, a maioria das instituições financeiras baseia os seus mecanismos de decisão sobre algoritmos de regressão. No entanto, estes algoritmos já não são considerados o estado da arte em algoritmos de decisão. Este facto levou ao interesse na pesquisa de diferentes algoritmos de aprendizagem baseados em algoritmos de aprendizagem máquina, capaz de lidar com o problema de classificação de crédito. O trabalho apresentado nesta dissertação tem como objetivo avaliar o estado da arte em algoritmos de decisão de crédito, propondo novos conceitos de optimização que melhorem o seu desempenho. Paralelamente, um sistema de sugestão é proposto no âmbito do tema de decisão de crédito, de forma a possibilitar a perceção de como os algoritmos tomam decisões relativas a pedidos de crédito por parte de clientes, dotando-os de uma fonte de pesquisa sobre como melhorar as possibilidades de concessão de crédito e, ainda, elaborar perfis de clientes que se adequam a determinadas condições e propósitos de crédito. Por último, todos os componentes estudados e desenvolvidos são combinados numa plataforma capaz de lidar com o problema da classificação de crédito através de um sistema de especialistas, implementado como um sistema multi-agente. O uso de sistemas multi-agente para resolver problemas complexos no mundo de hoje não é uma nova abordagem. No entanto, tem havido um interesse crescente no uso das suas propriedades, em conjunto com técnicas de aprendizagem máquina e data mining para construir sistemas mais eficazes. O trabalho desenvolvido e aqui apresentado pretende demonstrar a viabilidade e utilidade do uso deste tipo de sistemas no problema de decisão de crédito

    Strategy-focused architecture investment decisions

    Get PDF
    The thesis considers how a systematic approach for evaluating architecture investments can lead to decisions that are driven by business preferences rather than by personal incentives. A decision to invest in software-architecture requires systematic evaluation of the trade-off between strategic long-term benefits of architecture on the business and short term investment. It typically is a decision that is difficult to explain and quantify. In this sense, it is not surprising that such a decision is often driven by personal incentives or strong leadership of deciders, architects and managers, leading to suboptimal decision-making process in the organization. This PhD thesis proposes a way in which to support the decision to invest in architecture by linking the architecture improvements to the business strategy and taking into consideration the human aspects. We follow the iterative study design process including several real-life case studies, multiple interviews, and an experiment. In the first case study, we investigate how practitioners make a decision on architecture investment with a focus on how the decision process can be improved in industrial practice. To support the decision process in an objective way, we propose to use arguments based on real options theory. The evaluation by practitioners disclosed that including such economics of architecture is necessary but not sufficient for decision making. To better understand the information needs for decision making we conducted field interviews on the kinds of information that architects and managers need. In a subsequent experiment we tested whether which kind of information is actually used in decision making. As expected, the professionals tend to use just a few information types for decision making. However, our results suggest that additional quantified information was used by participants with longer development experience and under time pressure. Based upon the experimental findings we propose a concept to quantify the customer value of architecture. Despite the positive evaluation, the practitioners asked for further improvements to translate the architecture changes directly to the economic value. Ultimately, based on the findings from the preceding studies we propose a comprehensive approach to support objective architecture decision making; we label it Strategy-focused Architecture (StArch). Adopting strategic management tools, strategy map and balanced scorecards, we provide step-by-step guidance to assess the economic benefits of architecture improvements aligned with the strategic business objectives

    Okvir za alokaciju softverskih komponenata na heterogenoj računalnoj platformi

    Get PDF
    A recent development of heterogeneous platforms (i.e. those containing different types of computing units such as multicore CPUs, GPUs, and FPGAs) has enabled significant improvements in performance of real-time data processing. However, due to increased development efforts for such platforms, they are not fully exploited. To use the full potential of such platforms, we need new frameworks and methods for capturing the optimal configuration of the software. Different configurations, i.e. allocations of software components to different computing unit types can be essential for getting the maximal utilization of the platform. For more complex systems it is difficult to find ad hoc, good enough or the best configuration.This research suggests the application of component based software engineering(CBSE) principles, by which it is possible to achieve the same functionality of software components across various computing units of different types, however with different extrafunctional properties (EFP). The objective of this research is to construct a framework which optimizes the allocation of software components on a heterogeneous computing platform with respect to specified extra-functional requirements.The I-IV allocation framework, proposed by this research, consist of formalisms necessary for modeling of a heterogeneous computing platform and exploring the designspace, which results with an optimal design decision. The I-IV allocation frameworkwas verified in two steps, focusing on two EFPs; the average power consumption andthe average execution time. The experimental platform was a tracked robot, developed for the purpose of this research. It contains a CPU, a GPU and an FPGA, along with 32software components deployable onto these units. Both steps resulted in a positive result confirming the claim that the I-IV framework, along with its Component allocation model M correctly represents the heterogeneous system performance, with consideration to multiple criteria.Usprkos tome da je u posljednjih nekoliko godina povećanje radnog takta središnje procesne jedinice (CPU) usporeno, ako ne i zaustavljeno, performanse suvremenih računala i dalje rastu, ali ne zbog radnog takta. To znaci da se i performanse racunalnih programa više na ovaj nacin ne mogu unaprijediti, čak što više, daljnje povečavanje radnogčtakta CPU-a pokazalo se neučinkovitim. Zbog toga, došlo je do suštinske promjene u građi procesora, odnosno to repliciranja procesnih jezgri te ugradbom dodatnih namjenskih procesnih jedinica koje su specijalizirane za određeni tip zadataka. Najcešce su to graficka procesna jedinica (GPU), programirljiva polja logickih blokova (FPGA), integrirani krugovi specificne namjene (ASIC), itd. Istovremeno, zajednica prepoznala je veliki istraživacki potencijal heterogenih racunalnih sustava, odnosno sustava sa mnoštvom procesnih jedinica razlicitog tipa, obzirom da omogućuju izuzetna poboljšanja performansi softvera.Mnogi se istraživaci već dulje vrijeme bave heterogenim racunalstvom, što znaci da to nije nova ideja, no u posljednjih nekoliko godina, zbog fizickih ogranicenja vezanih uz arhitekturu procesnih jedinica, heterogeno racunalstvo postaje sve popularnija istraživacka tema. Uz izuzetno povećanje procesne moći, heterogeno racunalstvo donosii mnogo izazova, prvenstveno za softverske inženjere. Naime, razvoj softvera za takve sustave vrlo je zahtjevan zbog primjerice, potrebe za rukovanjem sa više razlicitih tipova podataka ili programskih jezika unutar istog racunalnog programa, kompatibilnosti pojedinih procesnih jedinica i konverzije tipova podataka, potrebe za specijaliziranim bibliotekama koda, korištenja razlicitih struktura podataka kroz više arhitekturalni slojeva racunala i racunalnog programa, itd. Osim toga, obzirom na to da se heterogeni sustavi prvenstveno koriste kao elementi ugradbenih racunala u industriji, softverski inženjeri uz funkcionalne zahtjeve, dodatnu pozornost moraju dati nefunkcionalnim zahtjevima (EFP).Kako bi se upravljalo funkcionalnim i nefunkcionalnim zahtjevima softvera, u složenim heterogenim racunalnim sustavima,cesto se primjenjuju nacela komponentno orijentiranog softverskog inženjerstva (CBSE), koja su u softverskoj zajednici dobro poznata i dokazana. CBSE obuhvaća modele, metode i smjernice za softverske inženjere koji razvijaju sustave temeljene na komponentama, odnosno građevnim jedinicama koje komuniciraju putem ugovorno definiranih sucelja, koje se mogu samostalnougra divati i jednostavno zamjenjivati. Time, CBSE daje snažne temelje za prethodno spomenute vezane uz razvoj softvera namijenjenog za heterogene racunalne sustave.U tom kontekstu, CBSE omogućuje postizanje jednake funkcionalnosti komponenata softvera alociranih na (razlicite) procesne jedinice (razlicitog tipa), no sa drugacijimne-funkcionalnim svojstvima. To znaci da pojedine alokacije komponenata softveramogu biti više ili manje ucinkovite obzirom na scenarije njihove primjene, odnosnonjihove ulazne parametre, što za sobom povlaci i pitanje ukupnih performansi sustava. Prema tome, zadatak arhitekta softvera najprije je definirati svojstva najbolje alokacije obzirom na više kriterija, poput dostupnosti resurs, ne-funkcionalna svojstva i ogranicenja, a potom na konkretnoj heterogenoj racunalnoj platformi ucinkovito i pronaći takvu alokaciju.Temeljni cilj ovog istraživanja je konstruirati okvir za optimizaciju alokacije kompo- nenti softvera na heterogenoj racunalnoj platformi, koji uzimajući u obzir ogranicenja resursa dostupnih na racunalnim jedinicama (razlicitog tipa), specifikacije komponenata softvera i ogranicenja koja definira arhitekt sustava ucinkovito pronalazi najbolju alokaciju. Ova disertacija predlaže Alokacijski okvir I-IV sastavljen od formalnih elemenata koji omogućuju stvaranje modela heterogenog racunalnog sustava te pretraživanje prostora potencijalnih alokacija, te definira korake kojima se postiže optimalna arhitektura sustava. Kako u ovom slucaju prostor potencijalnih rješenja, odnosno alokacija eksponencijalno raste (uzmdostupnih racunalnih jedinica tendostupnih komponentisoftvera, prostor rješenja jemn), razvijen je i prototip alata koji automatizira Alokacijskiokvir I-IV, što je inace dugotrajan ili cak neizvediv proces. Za opis nefunkcionalnih svojstava heterogenih sustava, koristi se Model za alokaciju komponenata M. Taj model,primjenom težinske funkcije omogućuje kvantifikaciju pojedinih alokacija čime je omogućena njihova usporedba te procjena prikladnosti korištenja istih. Istovremeno,težinska funkcija daje uvid u performanse sustava u njegovoj ranoj fazi razvoja (cak prije nego su komponente razvijene).Vjerodostojnost Alokacijskog okvira I-IV provjerena je u dva koraka (eksperimenta),pri cemu je fokus bio na dva nefunkcionalna svojstva sustava: prosjecni elektricni učinak elektricne struje i prosjecno vrijeme izvođenja operacija softvera. Eksperimentalna platforma bila su robotska kolica sa heterogenim racunalnim sustavom sacinjenim odCPU-a, GPU-a te FPGA-a, zajedno sa tridesetak komponenata softvera koje je moguće alocirati na te racunalne jedinice.Prvi korak provjere odnosio se na provjeru tocnosti, odnosno procjenu prikladnosti težinske funkcije w da kvantificira performanse pojedine alokacije. Postupak je proveden primjenom šest razlicitih alokacija koje predstavljaju dva razlicita scenarija izvođenja.Odabrane alokacije, nakon što su kvantificirane težinskom funkcijom w, zapisane sutablicno i rangirane prema predviđenim performansama. Nakon toga, te iste alokacije su implementirane na stvarnom sustavu, ranije spomenutim robotskim kolicima. Iscrpnim mjerenje (u intervalu pouzdanosti od 95%), zabilježene su performanse alokacija i ponovno su rangirane u rang listu. Rezultat oba rangiranja bio je jednak,cime slijedi damodel za raspodjelu komponenata M, te njegova težinska funkcija w mogu korektno predvidjeti performanse pojedine alokacije u realnom sustavu. Ovakav ishod, doveo IV je do drugog koraka provjere koji se odnosi na scenarij(e) u kojem postoji izrazito veliki broj komponenti softvera te racunalnih jedinica,cime prostor potencijalnih rješenja postaje toliko velik pronalaženje najbolje alokacije metodom iscrpnog pretraživanja nije moguće ucinkovito provesti.Obzirom da trenutna implementacija Alokacijskog modela I-IV definira heuristicke metode za rješavanje navedenog problema, drugi korak provjere za cilj ima procijeniti sub-optimalno rješenje genetskog algoritma i metode simuliranog kaljenja. Uz heuristicke metode, generirane su i proizvoljne alokacije, jer u nekim slucajevima su takve alokacije podjednako dobre ili cak bolje od heuristickih metoda. U prvoj iteraciji, provjeravala se preciznost navedenih metoda, odnosno njihovo odstupanje od optimalne alokacije dane iscrpnim pretraživanje u prostoru do 512. Pokazalo se kako genetski algoritam daje najbolja rješenja, odnosno alokacije koje minimalno odstupaju od optimalnog rješenja. Nadalje, za prostore rješenja između 1020do3070 gdje iscrpno pretraživanje nije ucinkovito, usporedba je pokazala da obje heuristicke metode daju bolja suboptimalne alokacije od proizvoljno definiranih alokacija i to u najkraćem vremenu.Iako je statisticki vjerojatno, ni u jednom slucaju (u 55 ponavljanja, s povećavanjem prostora rješenja) nije zabilježeno da proizvoljno generirana alokacija daje bolje performanse od alokacije dobivene predloženim heuristickim metodama, cime je završila validacija predloženog okvira i svih njegovih elemenata

    Okvir za alokaciju softverskih komponenata na heterogenoj računalnoj platformi

    Get PDF
    A recent development of heterogeneous platforms (i.e. those containing different types of computing units such as multicore CPUs, GPUs, and FPGAs) has enabled significant improvements in performance of real-time data processing. However, due to increased development efforts for such platforms, they are not fully exploited. To use the full potential of such platforms, we need new frameworks and methods for capturing the optimal configuration of the software. Different configurations, i.e. allocations of software components to different computing unit types can be essential for getting the maximal utilization of the platform. For more complex systems it is difficult to find ad hoc, good enough or the best configuration.This research suggests the application of component based software engineering(CBSE) principles, by which it is possible to achieve the same functionality of software components across various computing units of different types, however with different extrafunctional properties (EFP). The objective of this research is to construct a framework which optimizes the allocation of software components on a heterogeneous computing platform with respect to specified extra-functional requirements.The I-IV allocation framework, proposed by this research, consist of formalisms necessary for modeling of a heterogeneous computing platform and exploring the designspace, which results with an optimal design decision. The I-IV allocation frameworkwas verified in two steps, focusing on two EFPs; the average power consumption andthe average execution time. The experimental platform was a tracked robot, developed for the purpose of this research. It contains a CPU, a GPU and an FPGA, along with 32software components deployable onto these units. Both steps resulted in a positive result confirming the claim that the I-IV framework, along with its Component allocation model M correctly represents the heterogeneous system performance, with consideration to multiple criteria.Usprkos tome da je u posljednjih nekoliko godina povećanje radnog takta središnje procesne jedinice (CPU) usporeno, ako ne i zaustavljeno, performanse suvremenih računala i dalje rastu, ali ne zbog radnog takta. To znaci da se i performanse racunalnih programa više na ovaj nacin ne mogu unaprijediti, čak što više, daljnje povečavanje radnogčtakta CPU-a pokazalo se neučinkovitim. Zbog toga, došlo je do suštinske promjene u građi procesora, odnosno to repliciranja procesnih jezgri te ugradbom dodatnih namjenskih procesnih jedinica koje su specijalizirane za određeni tip zadataka. Najcešce su to graficka procesna jedinica (GPU), programirljiva polja logickih blokova (FPGA), integrirani krugovi specificne namjene (ASIC), itd. Istovremeno, zajednica prepoznala je veliki istraživacki potencijal heterogenih racunalnih sustava, odnosno sustava sa mnoštvom procesnih jedinica razlicitog tipa, obzirom da omogućuju izuzetna poboljšanja performansi softvera.Mnogi se istraživaci već dulje vrijeme bave heterogenim racunalstvom, što znaci da to nije nova ideja, no u posljednjih nekoliko godina, zbog fizickih ogranicenja vezanih uz arhitekturu procesnih jedinica, heterogeno racunalstvo postaje sve popularnija istraživacka tema. Uz izuzetno povećanje procesne moći, heterogeno racunalstvo donosii mnogo izazova, prvenstveno za softverske inženjere. Naime, razvoj softvera za takve sustave vrlo je zahtjevan zbog primjerice, potrebe za rukovanjem sa više razlicitih tipova podataka ili programskih jezika unutar istog racunalnog programa, kompatibilnosti pojedinih procesnih jedinica i konverzije tipova podataka, potrebe za specijaliziranim bibliotekama koda, korištenja razlicitih struktura podataka kroz više arhitekturalni slojeva racunala i racunalnog programa, itd. Osim toga, obzirom na to da se heterogeni sustavi prvenstveno koriste kao elementi ugradbenih racunala u industriji, softverski inženjeri uz funkcionalne zahtjeve, dodatnu pozornost moraju dati nefunkcionalnim zahtjevima (EFP).Kako bi se upravljalo funkcionalnim i nefunkcionalnim zahtjevima softvera, u složenim heterogenim racunalnim sustavima,cesto se primjenjuju nacela komponentno orijentiranog softverskog inženjerstva (CBSE), koja su u softverskoj zajednici dobro poznata i dokazana. CBSE obuhvaća modele, metode i smjernice za softverske inženjere koji razvijaju sustave temeljene na komponentama, odnosno građevnim jedinicama koje komuniciraju putem ugovorno definiranih sucelja, koje se mogu samostalnougra divati i jednostavno zamjenjivati. Time, CBSE daje snažne temelje za prethodno spomenute vezane uz razvoj softvera namijenjenog za heterogene racunalne sustave.U tom kontekstu, CBSE omogućuje postizanje jednake funkcionalnosti komponenata softvera alociranih na (razlicite) procesne jedinice (razlicitog tipa), no sa drugacijimne-funkcionalnim svojstvima. To znaci da pojedine alokacije komponenata softveramogu biti više ili manje ucinkovite obzirom na scenarije njihove primjene, odnosnonjihove ulazne parametre, što za sobom povlaci i pitanje ukupnih performansi sustava. Prema tome, zadatak arhitekta softvera najprije je definirati svojstva najbolje alokacije obzirom na više kriterija, poput dostupnosti resurs, ne-funkcionalna svojstva i ogranicenja, a potom na konkretnoj heterogenoj racunalnoj platformi ucinkovito i pronaći takvu alokaciju.Temeljni cilj ovog istraživanja je konstruirati okvir za optimizaciju alokacije kompo- nenti softvera na heterogenoj racunalnoj platformi, koji uzimajući u obzir ogranicenja resursa dostupnih na racunalnim jedinicama (razlicitog tipa), specifikacije komponenata softvera i ogranicenja koja definira arhitekt sustava ucinkovito pronalazi najbolju alokaciju. Ova disertacija predlaže Alokacijski okvir I-IV sastavljen od formalnih elemenata koji omogućuju stvaranje modela heterogenog racunalnog sustava te pretraživanje prostora potencijalnih alokacija, te definira korake kojima se postiže optimalna arhitektura sustava. Kako u ovom slucaju prostor potencijalnih rješenja, odnosno alokacija eksponencijalno raste (uzmdostupnih racunalnih jedinica tendostupnih komponentisoftvera, prostor rješenja jemn), razvijen je i prototip alata koji automatizira Alokacijskiokvir I-IV, što je inace dugotrajan ili cak neizvediv proces. Za opis nefunkcionalnih svojstava heterogenih sustava, koristi se Model za alokaciju komponenata M. Taj model,primjenom težinske funkcije omogućuje kvantifikaciju pojedinih alokacija čime je omogućena njihova usporedba te procjena prikladnosti korištenja istih. Istovremeno,težinska funkcija daje uvid u performanse sustava u njegovoj ranoj fazi razvoja (cak prije nego su komponente razvijene).Vjerodostojnost Alokacijskog okvira I-IV provjerena je u dva koraka (eksperimenta),pri cemu je fokus bio na dva nefunkcionalna svojstva sustava: prosjecni elektricni učinak elektricne struje i prosjecno vrijeme izvođenja operacija softvera. Eksperimentalna platforma bila su robotska kolica sa heterogenim racunalnim sustavom sacinjenim odCPU-a, GPU-a te FPGA-a, zajedno sa tridesetak komponenata softvera koje je moguće alocirati na te racunalne jedinice.Prvi korak provjere odnosio se na provjeru tocnosti, odnosno procjenu prikladnosti težinske funkcije w da kvantificira performanse pojedine alokacije. Postupak je proveden primjenom šest razlicitih alokacija koje predstavljaju dva razlicita scenarija izvođenja.Odabrane alokacije, nakon što su kvantificirane težinskom funkcijom w, zapisane sutablicno i rangirane prema predviđenim performansama. Nakon toga, te iste alokacije su implementirane na stvarnom sustavu, ranije spomenutim robotskim kolicima. Iscrpnim mjerenje (u intervalu pouzdanosti od 95%), zabilježene su performanse alokacija i ponovno su rangirane u rang listu. Rezultat oba rangiranja bio je jednak,cime slijedi damodel za raspodjelu komponenata M, te njegova težinska funkcija w mogu korektno predvidjeti performanse pojedine alokacije u realnom sustavu. Ovakav ishod, doveo IV je do drugog koraka provjere koji se odnosi na scenarij(e) u kojem postoji izrazito veliki broj komponenti softvera te racunalnih jedinica,cime prostor potencijalnih rješenja postaje toliko velik pronalaženje najbolje alokacije metodom iscrpnog pretraživanja nije moguće ucinkovito provesti.Obzirom da trenutna implementacija Alokacijskog modela I-IV definira heuristicke metode za rješavanje navedenog problema, drugi korak provjere za cilj ima procijeniti sub-optimalno rješenje genetskog algoritma i metode simuliranog kaljenja. Uz heuristicke metode, generirane su i proizvoljne alokacije, jer u nekim slucajevima su takve alokacije podjednako dobre ili cak bolje od heuristickih metoda. U prvoj iteraciji, provjeravala se preciznost navedenih metoda, odnosno njihovo odstupanje od optimalne alokacije dane iscrpnim pretraživanje u prostoru do 512. Pokazalo se kako genetski algoritam daje najbolja rješenja, odnosno alokacije koje minimalno odstupaju od optimalnog rješenja. Nadalje, za prostore rješenja između 1020do3070 gdje iscrpno pretraživanje nije ucinkovito, usporedba je pokazala da obje heuristicke metode daju bolja suboptimalne alokacije od proizvoljno definiranih alokacija i to u najkraćem vremenu.Iako je statisticki vjerojatno, ni u jednom slucaju (u 55 ponavljanja, s povećavanjem prostora rješenja) nije zabilježeno da proizvoljno generirana alokacija daje bolje performanse od alokacije dobivene predloženim heuristickim metodama, cime je završila validacija predloženog okvira i svih njegovih elemenata
    corecore