Architectural Model: Kruchten deﬁnes softwarearchitecture using ﬁve concurrent views, each one addressing a speciﬁc set of concerns of interest to diﬀerent stakehold- ers . Particularly, our work is centered on the development view (a.k.a. module view), which describes the software’s static organization in its development environ- ment. It concerns low-level design decisions, patterns, and best practices. From this viewpoint, an object-oriented softwarearchitecture is deﬁned by a set of modules and their interactions, where we consider a module as a set of classes . Therefore, we model relations at the level of classes. More speciﬁcally, a dependency (A, dep, B) is established whenever a class A uses services provided by a target class B. We consider that dependencies can be established using the following types of common operations in object-oriented languages (i.e., these types are possible values of the dep ﬁeld): call- ing methods or attributes (access), declaring variables (declare), creating objects (create), extending classes (extend), implementing interfaces (implement), throwing exceptions (throw), or using annotations (useannotation). For example, the relations (A, create, B) and (A, access, B) indicate that class A creates and calls methods of an object of type B, respectively.
It has been long recognised that software architectures could be helpful regarding the evolution of systems during their life-time. On the one hand, they might be used to check whether the implementation has drifted from the reference architecture; on the other hand, the high-level synthetic view provided by an architectural description might make more apparent which parts of the system are amenable to change and which changes are desirable and possible. In recent years the need for mechanisms to express changes to architectural descriptions has been manifested in several ways: by participants in conferences [Wol97], by researchers surveying the field [SG94, Med97, Per97], by the existence of an Architecture and Generation Technology Cluster in the DARPA-sponsored Evolutionary Design of Complex Software programme [edc97], and by a growing number of papers on the subject (see Section 1.4 on the next page). This has culminated in the explicit recognition of “dynamic architectures” as a major topic within SA through a dedicated track in the last International SoftwareArchitecture Workshop [MP98].
A novel, complete softwarearchitecture has been presented, that is suited to an innovative, intelligent, multiple-UAV platform for media production applications, covering outdoor events (e.g., sports) typically distributed over large expanses. Increased multiple drone decisional autonomy, as well as robustness and safety mechanisms (e.g., communication ro- bustness/safety, embedded flight regulation compliance, en- hanced crowd avoidance and emergency landing mechanisms) are supported. They are foreseen by a design that partitions functionality into processes executed on a ground station and others (more critical) that are executed on-board each drone.
In this paper we describe a layered softwarearchitecture in the management of a manufactur- ing company that intensively uses computer technology. Application tools, new and legacy, after the updating, operate in a context of an open web oriented architecture. The softwarearchitecture enables the integration and interoperability among all tools that support busi- ness processes. Manufacturing Executive System and Text Mining tools are excellent interfac- es, the former both for internal production and management processes and the latter for ex- ternal processes coming from the market. In this way, it is possible to implement, a computer integrated factory, flexible and agile, that immediately responds to customer requirements. Keywords: ICT, Service Oriented Architecture, Web Services, Computer-Integrated Factory, Application Software
After the HSML transformation, a new softwarearchitecture can be used to replace the legacy softwarearchitecture previously used in the blood donation center. In this assessment, four Connectors have been built and deployed at the user layer. Each Connector is related to a respective HTML GUI and requests the execution of tasks from a set of microservices. Four Microservice have also been generated by the proposed tool and deployed to servers on the Internet. Each Microservice performs the task of a single functional requirement specified by the Brazilian Health Ministry. Each microservice is autonomous and independent in the execution of its tasks. It can be hosted on a specific server and made available on the Internet (i.e., any software or other microservice can interact with it) and it does not share resources. Each microservice also has its own database. Health data transmitted and processed in this softwarearchitecture is based on archetypes (specified by the OpenEHR Foundation) and the interoperability between
In , Garlan reveals the importance of software architectures by projecting its role on six different aspects: understanding, reuse, construction, evolution, analysis and management. However, for many systems, the representation of their architectures is not reliable, due to two reasons: The first is the lack of documentations. Indeed, this is partly due to the fact that current-day development environments still focus too much on writing code and too little on designing and documenting tasks. The second reason is the architectural erosion. In fact, during the different evolution phases the system deviates from its original representation, causing a gap between the current system architecture and the documented architecture. So no reliable softwarearchitecture representation is available in the both cases.
The organization of the overall system is known as softwarearchitecture  developed through integration of many components. Architecture of a data mining driven learning apprentice system for medical billing is given in Figure: 1. Billing software is the main entity of the entire system and most of the users interact with it. Billing executives use it for inserting, updating, and modifying data concerning claims. Domain experts use it for pulling various types of reports, importing data and following up claims. Billing software triggers Rule Based Engine (RBE) to perform billing compliance related checks on a claim saved at that time. Thus RBE applies its production rules on the claim (which is being saved) and tells the user his/her faults found in the claim. RBE also performs scrubbing activity as defined in Section-I as part of the production rules.
During the last decade, UML becomes a standard language for specifying, visualizing, constructing and documenting architectural description concepts  . However, UML lacks the support for some architectural concepts such as connectors, roles, etc., but it provides a suitable base to define profiles for softwarearchitecture and implementation platforms. The notion of transformation is an essential element for Model Driven Architecture (MDA)  aiming at automated model transformations. Furthermore, UML profiles can be integrated within an MDA context to define a chain of model transformations, from architectures to implementations [3,8] .
Softwarearchitecture plays a significant role in development of a dependable system. The purpose of regression testing is to make the system fault tolerant. The amalgamation of these two, results in the development of a robust system. The earlier works uses the conformance technique to instill confidence on implemented system with code, architecture and behavior but has not considered many parameters. The present work includes the concept of softwarearchitecture, system behavior and regression testing to propose a new framework which is sure to reduce gaps in the present frameworks and thus improve the system reliability.
People usually refer to the term „architecture‟ to indicate the physical construction of a building in terms of external shape, and also how the rooms are structured within that building. In software, the word „architecture‟ is a term that is in general use, with a number of different interpretations. However, as an analogy to its meaning in civil engineering, it inspires the meaning of creating a product (a software system in this case) from a number of selected components rather than building a single monolithic one. So the way components must be incorporated, the orders in which they must be placed, and the mechanism of interaction between them, are parts of what a system architecture describes. Bas et al.  defined softwarearchitecture as the structure of a system that comprises software elements, their external visible characteristics, and the relationship between them. IEEE 1471  defines softwarearchitecture as “the fundamental organization of a system embodied in its components, their relationship to each other‟s and the environment, and the principles guiding its design and evolution”. Jones  defined architecture as the structure that is composed of components and rules that establish the basis for the interaction between them. All the definitions agree that architecture is concerned with the constituting parts of a system and the relationship between them.
rhitectura unui sistem se materializeaz ă sub forma unui ansamblu de reprezen- t ări care utilizează anumite convenţii, consti- tuite ca meta-modele. Arhitecturile generice la nivel conceptual pentru diferite domenii de aplica ţie necesită instrumente cu ajutorul că- rora s ă se poată construi modele generale, re- utilizabile prin adaptare la un context dat. Utilizarea paradigmelor obiectuale permite reprezentarea viziunilor diferite ale actorilor implica ţi în procesele de dezvoltare a produ- selor software. Se remarc ă de asemenea avantajele utiliz ării limbajului unificat de modelare (UML), limbaj specializat în vizua- lizarea, construirea şi documentarea sisteme- lor software, ca şi pentru modelarea procese- lor de afaceri şi a sistemelor non-software. Pentru arhitecturile generice propuse, într-o abordare obiectual ă se pot utiliza ca instru- mente de reprezentare stereotipurile, şabloa- nele sau arhetipurile.
A new approach for the problem of Human-Robot teams was proposed. The architecture was validated in the real world, with a robust and disposable robot. Multiple users have success- fully been added to the system with no significant extra network latency nor robot’s on-board computer overload. The multi-agent based teleoperation system proposed, has been was vali- dated both in simulation and the real world, under a teleoperation scenario. The Multi-Agent System, allows the addition and removal of several entities in a seamless way. When perform- ing the experiment, this situation was tested with the addition and removal of the supervisor. This approach fosters the concept of shared reality, by having recently added entities with need of being updated with other’s state information. The field trials shown a clear trade off between sparse information and detailed information. When the operator, asked for too much detailed information, the ability for controlling the robot was clearly decreased. However results have shown that there is no need in having detailed information in short time frames, as sparse infor- mation can easily complement that gap. During the field trials, a trade off was found at the 300 ms cycle for defined previously for sparse information and with a 5 seconds cycle for detailed information. This combination provided the operator with a comfortable 100 ms reaction con- trol. Using this transfer rate the operator was able to have real time control, along with a proper situation awareness.
SA is an abstract concept and therefore only implicitly present in a system. SA models al- low us to visualize architecture although one needs a way to extract it. One must analyse systems and extract architectural information in order to build the models. This dissertation will focus on approaches that use static analysis. This is in line with the standard software evaluation procedure at Software Improvement Group (SIG). Many elements and data ob- tained from a software system could be used for static analysis. We will work exclusively with call graphs and extract architectural information from them. An advantage of using call graphs is that any system and language that features calls (as most do) can have a call graph. Another one is that call graphs contain everything needed to build SA models. This is a powerful abstraction of code that allows one to channel all resources and time into a single area, hopefully leading to more focused results.
In the Articles section in this issue four papers are presented: two of them from Argentinean researchers, and two Brazilian researchers. The first article is “Sistemas de Información: Nuevos Escenarios Basados en Ontologías” (Information Systems: New Ontology- Based Scenarios), by Graciela Elisa Barchini, Margarita María Álvarez, and Susana Herrea, from the College of Sciences and Technologies, National University at Santiago del Estero, Argentina. The article presents an overview to specify and communicate expertise over mastering in the different Information Systems scenarios from concept to modeling. The second article, “Benefícios da Arquitetura de Software Orientada a Serviços para as Empresas: Análise da Experiência do ABN AMRO Brasil” (Benefits from SoftwareArchitecture Focusing Corporate Services: An Analysis of ABN AMRO Bank Experience in Brazil) by Bernadete de Lourdes Marinho, FEA USP, Brazil, José Osvaldo De Sordi, Catholic University at Santos, Brazil, and Marcio Nagy, Department of Architecture and Infra-Structure, ABN AMRO Bank, Brazil. The article illustrates the relevance of integration among business support areas and core business when implementing Information Technology and Systems, and emphasizes the relevance of strategic alignment in the organization. “Workability of a Management Control Model in Service Organizations: a Comparative Study of Reactive, Proactive and Coactive Philosophies”, by Joshua Onome Imoniana, from the Methodist University at São Paulo, Brazil, is the third article. Its purpose is to compare three management control philosophies in decision making. The article is based on exploratory research and survey research, where results show the predominance of the reactive model over the others. “Rasgos Culturales Compartidos por Usuários de Sistemas Informáticos” (Cultural Aspects Shared by Information System Users), by Rosanna Costaguta and Marilena Maldonado is article number four. It identifies major cultural traces shared by Information Systems users at an Argentinean university.
“I think it makes sense the characterization and to characterize in a matrix format or in other multi- dimensional format, not in this case, and we could face it in a different way. For instance, when we are talking about Business Intelligence (BI), in your model you have just one layer, but we know that BI can have many dimensions/subdivisions/extensions, so we can have this model that is like a slice, thinking in the multi-dimension models, or we can have additional dimensions. So, yes, it makes sense have a characterization, but a characterization like that requires precision in the definitions, that is, it will have to be very well defined what we mean as aPaaS, iPaaS, dbPaaS, for example, and as the number of iterations is limited (5, 6 or 7), yet they will have to be defined for have any meaning, the definitions have to be complementary and mutually exclusive. That is, what is characterized in aPaaS did not overlap much with the other characteristics, because otherwise we are creating artificial divisions, so the definitions must be precise and based on literature. The definitions of information systems are based on systems already established and know and in terms of softwarearchitecture also. In case of Microservices and Serverless needs extra rigor and a strict definition, because it is an area that is changing where we have Lambda and K architectures with different characteristics. Of course, this will have to be useful for a company that is thinking about doing this transition, if we have a monolithic implementation, like a legacy CRM created 15 years ago with a monolithic architecture, how can we proceed to move to the cloud, of course, within the perspective of PaaS, because we are talking about migration and replatforming, but there are others alternatives to do it. It is important to highlight that this model is one solution of many others, because this is not the only solution and we can have other matrix (model). For example, you can take the monolithic application and put to run on IaaS, using a container or virtual machine.”
Nowadays, several studies point out that maintainability is one of the main cost factors in soft- ware development projects [34, 35, 36]. This factor made software architects, programmers and code reviewers be concerned with architectural degradation and the problems it would bring to software maintainability. Many studies [2, 5, 7] conﬁrmed how softwarearchitecture would even- tually degrade with undisciplined changes throughout software maintenance and evolution. In this context, architects need to elaborate strategies for detecting architectural degradation symptoms and thus maintaining the software architectural quality. A common strategy relies on tools (e.g. [4, 9]) that use a uniﬁed domain-speciﬁc language (DSL), which help them to specify softwarearchitecture rules. In particular, DSLs for this domain are used by software architects, program- mers and code reviewers to specify and check the adherence of the source code with respect to architecture rules.However, it is particularly challenging to design a usable DSL in this domain for several reasons [2, 5, 33], including: (1) it needs to oﬀer a concise set of abstractions in order to enable architects to express the high-level design rules, (2) it needs to be concise and expressive enough in order to support programmers and code reviewers in understanding which program elements are aﬀected by the architecture rules, and (3) it needs to be expressive enough to allow users to tailor the architecture rules as they implement, maintain and evolve modules of a program. Unfortunately, it is also often hard to identify their usability strengths and weaknesses early, as there is no guidance on how to objectively reveal them. Usability is a multi-faceted quality characteristic, which is challenging to quantify before a DSL is actually used by its stakeholders. There is even less support and experience on how to quantitatively evaluate the usability of DSLs used in software maintenance tasks. To this end in this dissertation, a usability measurement framework was developed based on the Cognitive Dimensions of Notations (CDN).
SoftwareArchitecture is an abstract entity formed by elements and its relations. Each decision taken into its elaboration will affect the final product concerned to its depend- ability. Well planned documented, informed and managed architecture enables a better software quality because it allows a better action planning about its construction or evolu- tion. When these aspects are ignored, architectural erosions arise and as its consequence, technical debt from the perspective of architecture since the software will be modified without any type of control  . The control over the corrective or evolutive code interventions on a software is not a trivial task. Not only it is hard to keep watching all the incoming modifications, but it is also difficult to read all the code in a non auto- mated way. A good awareness about the conceptual architecture and its supervision are quite sensitive to the developer team education and training. As result, forms of archi- tectural control, capable of identifying architectural problems and constraints violation are highly required and may facilitate these tasks as well as reduce drastically the costs of maintaining a software running.
During the process of detail design, decisions are made and justified but the justifications are often unrecorded and are lost over time (Perry and Wolf, 1992; Tyree and Ackerman, 2005). System and softwarearchitecture design often involves many implicit assumptions (Roeller et al., 2005) and convoluted decisions that cut across different parts of the system. A change in one part of the architecture design could affect the parts of the business objects, controller objects (by decision) and the usability pattern. A simple shift of an implicit assumption might affect seemingly disparate design objects and such change impacts could not be identified easily. This intricacy is quite different from detailed software design where usually the design or program specifications are self-explanatory. At the system and softwarearchitecture level, there are a multitude of influences that can be implicit, complex and intractable. In a survey on architecture design rationale (Tang et al., 2006), that is found 85% of architects agreed that the use of design rationale is important in justifying design and 80% of the respondents said they fail to understand the reasons of a design decision without design rationale support. Furthermore, 74% of respondents forget their own design decisions half the time or more often. These results indicate the need to capture the design rationale for system maintenance. The erosion of architecture design rationale can result in ill-informed decisions because the original design reasoning was missing. As a result, it may lead to inconsistent design and violations of design constraints. The impacts can be serious because architecture design is fundamental to a system. Consequently, the rectification of errors can be very costly.
In order to produce and develop a s oftware system, it is necessary to have a method of choosing a s uitable softwarearchitecture which satisfies the required quality attributes and maintains a trade-off between sometimes conflicting ones. Each softwarearchitecture includes a set of design decisions for each of which there are various alternatives, satisfying the quality attributes differently. At the same time various stakeholders with various quality goals participate in decision-making. In this paper a numerical method is proposed that based on the quality attributes selects the suitable softwarearchitecture for a certain software.