Looking for someone to write my essay
These two organizations have very different goals (exploring space vs. Examining two quite different cases, rather than only a single case, greatly strengthens the claim of applicability. Beyond this, however, it is worthwhile to examine the differences between the two case studies we carried out, because in fact they are really quite different. Although they both examine the applicability of our approach and in particular the question of whether we can successfully represent real-world evolution concerns, they have very different designs and focuses. Both aimed to evaluate the applicability of our modeling approach to a real-world architecture evolution. But a secondary goal of the first case study was to evaluate the ease of adapting our approach to modeling languages and tools already in use at JPL—namely SysML and UML. The second case study had a different secondary goal: to examine in depth how a real-world software organization currently manages architecture evolution challenges. The Costco case study thus had a significant descriptive or ethnographic component, which was not true of the JPL case study. The data collection procedures were also quite different.
In the first case study, data was collected informally during the course of a ten-week internship at JPL. In the second, there was a formal data collection procedure involving semistructured 114 5. A summary of the two case studies that together constitute the empirical valida tion of my thesis, emphasizing the differences among them. The two case studies also used very different analysis procedures. The second case study used a fairly sophisticated analytical approach involving a formal content analysis of the gathered research data followed by a modeling phase incorporating the results of looking for someone to write my essay the content analysis. The first case study was conducted opportunistically during a summer internship and was not strictly guided by a formal design (although there was some consideration of qualities such as research replicability). In the second case study, great care was taken to develop a detailed, rigorous case study design to guide the execution of the case study, and significant attention was devoted to issues of validity and reliability. A key goal of the study was to ensure that the conclusions of that case study were reliably tied to the data collected. In this chapter, I address the last remaining research claim from section 1.
I do so by reviewing three prototype tools that we have developed based on the approach to software architecture evolution described in this thesis. But together these three projects, which are very different in their focus and technical approach, reveal a great deal about the issues that arise in implementing an evolution modeling tool based on our approach. The first of the three prototypes, called TEvol, was developed as a plug-in to Acme- Studio. This was very early exploratory tool work with which I was only very distantly involved, so I will not say much about it except to provide some relevant background. In this second prototype project, we developed a plug-in to MagicDraw (the commercial UML tool used in the JPL work) implementing a subset of our approach. The final prototype was quite different in character from the first two. It was narrowly focused on evaluating the automatability of evolution path generation. This work aimed to demonstrate how existing tools based on automated-planning research could be applied to generate evolution paths leading from a given initial architectural state to a given target architectural state by intelligently composing evolution operators from a predefined library.
This early tool work provided a helpful illustration showing how our approach could be implemented in a tool, buy custom term papers but it was ultimately a proof of concept rather than a careful evaluation of the implementability of the approach.
In the rest of this chapter, I will describe two implementation efforts with which I was more closely involved. Recall that in looking for someone to write my essay that work I demonstrated how our approach could be adapted to MagicDraw, a commercial UML tool that is widely used at JPL. Together, these mechanisms served as an illustration of how our approach could be adapted to commercially prevalent languages and tools such as UML and MagicDraw.
That work, like the early tool development work I described in section 6. The prototype work I describe in looking for someone to write my essay this section, on the other hand, was a more deliberate examination of the challenges involved in developing a practical architecture evolution tool. First, developing an architecture evolution tool as a plug-in to a tool such as MagicDraw allows us to leverage the facilities that tool provides for architectural modeling. Some of the material in this section is adapted from that workshop paper. In addition, a plug-in-based approach can facilitate user adoption, because users are already likely familiar with the interface and idioms of the framework on which the plug-in is based (particularly a widely used framework such as MagicDraw).
Finally, plug-ins are significantly more powerful than other extension mechanisms, such as the macro-based approach used in the JPL case study, allowing us much more freedom in implementing our approach. Perhaps the best way to describe the main features we envisioned in a plug-in for evolution planning is to consider a sample work flow, illustrating how a software architect might use such a plug-in to define and analyze an evolution space: 1. The architect begins by defining the nodes and transitions of the evolution graph. This can be done using the architectural modeling tools already present in MagicDraw. To define the evolution graph, the architect simply creates a package for each intermediate state and draws the transitions as dependencies among the packages. Once the graph is represented in this way, the plug-in can use the MagicDraw API to inspect the evolution graph, then determine the set of candidate evolution paths. At this point, the evolution graph has been laid out, but all the evolution nodes are undefined, in the sense that all the packages representing intermediate states are empty—they do not yet contain representations of intermediate architectures. The first node that the architect fills in is the initial node, which represents the system architecture at the outset of the evolution.