![]() ![]() The SAGA (Self-Architecting using Genetic Algorithms) infrastructure has been developed to enable self-adaptive and manual run-time maintenance in Java-based applications. The algorithm takes into account the organizational information and proposes an initial work distribution plan along with the improved architecture. Moreover, the genetic algorithm has been used to evolve software architectures to be easily distributable among the teams involved in its development. It facilitates a human architect to initiate, modify, monitor and analyze the results of a genetic architectural synthesis. Tool support has been provided in the form of the Darwin environment. An empirical study has also been performed that suggests that the genetic algorithm’s proposals are comparatively better than the under-graduate level students’ designs. Once calibrated, the genetic algorithm has been able to suggest good quality architectures. Each solution has a positive or negative impact on one or more quality attributes. The algorithm uses solutions which can be design patterns, architectural styles, best practices or application specific solutions to maintain the quality attributes. The fitness functions envelop the expert knowledge needed to gauge the quality (modifiability, efficiency and complexity) of architectures. The genetic algorithm operates at the architectural level. This thesis work explores the potential of genetic architectural synthesis to introduce automation in software development and maintenance. Any level of automation can relieve the pressure on the cost. The trend will lead software industry to a situation where it will be difficult to develop software systems through traditional manual software engineering practices in a feasible budget. Some domains demand continuous operation like security or control systems, web services and communication systems etc. A complex software system requires more resources to develop and maintain. Software systems are becoming complex entities with an increasing diffusion into many new domains. Kinds enable parameterizing logical instructions like areturn with types, thus making a concise specification of related instructions (e.g., freturn, ireturn, and areturn) possible (cf. The values of kind INT LIKE are int, short, etc., just as the values of type int like are 1, 2, etc. ![]() This convention ensures their consistency and keeps the specification itself brief. The declared hierarchy of types (1) is mirrored by a hierarchy of kinds (2) for every (lower-case) type there automatically exists an (upper-case) kind. OPAL SPL's type system implicitly defines a second type hierarchy ((2) in Fig. The byte or boolean type, e.g., is required to model the baload and bastore instructions, which operate on arrays of byte or boolean alike. The hierarchy is a result of the peculiarities of the JVM's instruction set. It captures all runtime types known to the Java virtual machine, as well as those types that are used only at link-or compile-time, e.g., branchoffset, fieldref and methodref. The Java Virtual Machine Specification 's type hierarchy is shown in Fig. The only restriction is that all types have to be arranged in a single, strict hierarchy. OPAL SPL Type System language being described.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |