Fig 11 - uploaded by Danny Weyns
Content may be subject to copyright.
Summary of pros and cons of MV* pattern families

Summary of pros and cons of MV* pattern families

Source publication
Conference Paper
Full-text available
Every software program that interacts with a user requires a user interface. Model-View-Controller (MVC) is a common design pattern to integrate a user interface with the application domain logic. MVC separates the representation of the application domain (Model) from the display of the application's state (View) and user interaction control (Contr...

Similar publications

Preprint
We present a simple and novel way to do the task of text-to-SQL problem with weak supervision. We call it Rule-SQL. Given the question and the answer from the database table without the SQL logic form, Rule-SQL use the database rules for the SQL exploration first and then use the explored SQL for supervised training. We design several rules for red...

Citations

... As it is shown in the figure, the design follows a model-view-controller (MVC) pattern. This pattern is based on the separation of the application domain model and the user interface in two layers, having the domain model being unaware of the user interface [35]. ...
Article
Full-text available
The next generation of network capabilities coupled with artificial intelligence (AI) can provide innovative solutions for network control and self-optimisation. Network control demands a detailed knowledge of the network components to enforce the correct control rules. To this end, an immense number of metrics related to devices, flows, network rules, etc. can be used to describe the state of the network and to gain insights about which rule to enforce depending on the context. However, selection of the most relevant metrics often proves challenging and there is no readily available tool that can facilitate the dataset extraction and labelling for AI model training. This research work therefore first develops an analysis of the most relevant metrics in terms of network control to create a training dataset for future AI development purposes. It then presents a new architecture to allow the extraction of these metrics from a 5G network with a novel dataset visualisation and labelling tool to help perform the exploratory analysis and the labelling process of the resultant dataset. It is expected that the proposed architecture and its associated tools would significantly speed up the training process, which is crucial for the data-driven approach in developing AI-based network control capabilities.
... Approaches suitable for individuals may not be suitable when development is split amongst a team on a large, complex project 20 . The separation principle of the MVC design pattern addresses this and allows work to be more easily distributed 21 . ...
Preprint
Full-text available
The Model-View-Controller (MVC) design pattern is very useful and widely used for implementing systems with user interfaces in object-oriented programming languages. However, implementation of an MVC system in state-based languages (including object-oriented languages) limits the ability to naturally achieve some important aspects of software engineering, such as unit testing, debugging, expressiveness, concurrency, machine assisted proofs and optimizations. The Functional Reactive Programming (FRP) framework elegantly implements reactive systems (including those with user interfaces) in a purely functional manner. We demonstrate how the MVC design pattern closely matches the FRP framework. We show how it is possible to straightforwardly implement the MVC in a purely functional way in the FRP framework, thus gaining the advantages of both the MVC design pattern and FRP.
... Approaches suitable for individuals may not be suitable when development is split amongst a team on a large, complex project 20 . The separation principle of the MVC design pattern addresses this and allows work to be more easily distributed 21 . ...
Preprint
Full-text available
The Model-View-Controller (MVC) design pattern is very useful and widely used for implementing systems with user interfaces in object-oriented programming languages. However, implementation of an MVC system in state-based languages (including object-oriented languages) limits the ability to naturally achieve some important aspects of software engineering, such as unit testing, debugging, expressiveness, concurrency, machine assisted proofs and optimizations. The Functional Reactive Programming (FRP) framework elegantly implements reactive systems (including those with user interfaces) in a purely functional manner. We demonstrate how the MVC design pattern closely matches the FRP framework. We show how it is possible to straightforwardly implement the MVC in a purely functional way in the FRP framework, thus gaining the advantages of both the MVC design pattern and FRP.
... Martin Fowler [9] presented MVP and the Presentation Model, which served as its primary motivations. There are currently MVVM variants with minor modifications, such as Application Model and Presentation Model, that have different principles [10]. However, there are numerous MVVM implementation variants as well. ...
... Koirala [20] provided a thorough comparison of four distinct MVW design patterns in a Microsoft environment by addressing the key issues and proposed solutions. Based on his study, Syromiatnikov and Weyns compiled an inventory of well-documented MVW design patterns utilized in UI architectures [10]. There are similarities between specific design patterns, but new technologies are constantly modifying them and creating new alternatives. ...
Article
Full-text available
Architectural design patterns are essential in software development because they offer proven solutions to large-scale structural problems in software systems and enable developers to create software that is more maintainable, scalable, and comprehensible. Model-View-Whatever (MVW) design patterns are prevalent in many areas of software development, but their use in Web development is on the rise. There are numerous subtypes of MVW design patterns applicable to Web systems, but there is no exhaustive listing of them. Additionally, it is unclear how these subtypes can be utilized in contemporary Web development, as their usage is typically unconscious. Here, we discuss and define the most prevalent MVW design patterns used in Web development, as well as provide Angular framework examples and guidance on when to employ a particular design pattern. On the premise of the primary characteristics of design patterns, we created a rule system that large language models (LLMs) can comprehend without doubt. Here, we demonstrate how effectively Generative Pre-trained Transformer (GPT) models can identify various design patterns based on our principles and verify the quality of our recommendations. Together, our solution and GPT models constitute an effective natural language processing (NLP) solution capable of detecting MVW design patterns in Angular projects with an average accuracy of 90%.
... In some cases, this informant object may even be the caller itself, such that the command depends on the caller, but not vice versa. For example, a financial report may require negative numbers to be red, but the Model should not be aware of colors while the View should not contain finance-specific logic [53]. ...
... It is referenced by the viewmodel, which processes the raw data from the Model into a form which is useful for the View. The Viewmodel, then, is observed (again using the observer pattern) by the View, whose sole responsibility is the display of its data to the user -it should contain no logic other than the binding to the Viewmodel, such that a change in a Viewmodel property is reflected in the View and viceversa [53]. ...
... The Presenter reads from and modifies the Model, and it updates the View. In other variations, the exact interactions between the three classes differ, but central to all MVP patterns is the idea that the Presenter directly accesses both the View and the Model [53]. ...
Thesis
Full-text available
Serious games are a promising tool in the field of landscape planning. Instead of presenting finished plans to the population, they allow citizens to get involved in the planning process in an approachable way. However, although their usefulness is backed by strong scientific evidence, serious games are still not seeing much usage in the field. It has been argued that this is due to the high complexity and cost that comes with developing them. This is the primary motivation behind this thesis: it attempts to generalize the existing knowledge on serious planning games and connect them to the underlying GIS data, the geographical datasets which represent the real-world foundation behind them. Using this model, a technical toolkit is developed as part of an existing open source landscape visualization, the LandscapeLab. This toolkit uses existing software design patterns in order to reach the desired level of generalization. It allows users to define various serious games based on GIS datasets in less than 200 lines of code. In addition to being used in a case study which involves the creation of a serious game together with a group of experts, four serious games described by previous literature are recreated using the toolkit. Evaluating its capabilities using workshops as well as theoretical serious game frameworks points towards a strong ability to communicate geographic concepts and knowledge as well as to promote productive discussions. However, it has limited usefulness in creating more narrative-focused, fantastical games. The developed toolkit may serve as a starting point for future work further developing and evaluating the generic creation of GIS-based serious games.
... The view is derived from the data. A controller adds interactivity by providing methods through which the model can be modified (Syromiatnikov and Weyns 2014). Many user interface libraries for desktop applications, such as Apple's UIKit, adopted the pattern, focusing on making the view and model objects reusable (Apple Developer 2018) to, in turn, facilitate library-side widget reuse. ...
Thesis
Full-text available
Text-based typesetting systems like LATEX compile source files into PDF and other formats. This process is computationally expensive. Unlike “What You See Is What You Get” (WYSIWYG) systems, most text-based typesetting systems recompile the document from scratch, even after minor changes. Constant expensive recomputations prevent instant preview of changes, as in WYSIWYG software. This thesis explores how to speed up the text-based typesetting software Typst by reusing artifacts from past compilations while parsing and layouting. We propose an incremental parsing algorithm that accommodates context-sensitive properties of markup languages such as the “off-side rule” and is suited for handwritten recursive descent parsers. Furthermore, we also present a constrained layout caching scheme that allows reusing previous layout elements even if the dimensions of their parent containers changed. In an evaluation based on a set of typical documents and edits, we determined that this thesis’ contributions increase the speed of Typst by a factor between 4.5 and 91. Compared with LATEX, Typst can compile an edit between 3.4 and 9895 times as fast.
... In this kind of applications [83], the users' requests are events of the Java Swing/AWT elements [84]. As a result, the component View receives the user interactions through the graphical elements generating events that are processed by the Controller [85]. The Controller processes the events calling the methods of the view or the model. ...
... Web applications can be implemented with several variations from the common pattern (see Fig. 3) [85]. The User Interface Components may vary depending on the development framework and use combinations of them: JSP, HTML, CSS, JQuery, etc. ...
Article
Full-text available
The new era of information and the needs of our society require continuous change in software and technology. Changes are produced very quickly and software systems require evolving at the same velocity, which implies that the decision-making process of software architectures should be (semi-)automated to satisfy changing needs and to avoid wrong decisions. This issue is critical since suboptimal architecture design decisions may lead to high cost and poor software quality. Therefore, systematic and (semi-)automated mechanisms that help software architects during the decision-making process are required. Architectural patterns are one of the most important features of software applications, but the same pattern can be implemented in different ways, leaving to results of different quality. When an application requires to evolve, knowledge extracted from similar applications is useful for driving decisions, since quality pattern implementations can be reproduced in similar applications to improve specific quality attributes. Therefore, clustering methods are especially suitable for classifying similar pattern implementations. In this paper, we apply a novel unsupervised clustering technique, based on the well-known artificial neural network model Self-Organizing Maps, to classify Model-View-Controller (MVC) pattern from a quality point of view. Software quality is analyzed by 24 metrics organized into the categories of Count/Size, Maintainability, Duplications, Complexity, and Design Quality. The main goal of this work is twofold: to identify the quality features that establish the similarity of MVC applications without software architect bias, and to classify MVC applications by means of Self-Organizing Maps based on quality metrics. To that end, this work performs an exploratory study by conducting two analyses with a dataset of 87 Java MVC applications characterized by the 24 metrics and two attributes that describe the technology dimension of the application. The stated findings provide a knowledge base that can help in the decision-making process for the architecture of Java MVC applications.
... In general, the design pattern provides best practices in a framework of solutions for common problems in the context of designing software. The MVC is a pattern used to build interfaces in three separated logic layers: the Model manages the data and rules of the application; the View is the representation and appearance of the data on the screen such as text, tables, charts; the Controller handles the requests from View or Model layers validating and processing these data, and sending commands to execute the appropriate action (e.g., store data, retrieve data, show some information in a table) (Jailia et al., 2016;Sommerville, 2010;Syromiatnikov & Weyns, 2014). ...
... The Presenter layer is responsible for supervising the View and Model layers, handling user events, listening to the View layer, making changes to the View layer, and maintaining the application synchronized. In general, the Model and View layers in MVVM and MVP follow the principles of the MVC pattern (Syromiatnikov & Weyns, 2014). ...
... Despite some improvements in MVVM and MVP, the MVC design pattern was used to construct the proposed web system because it is the most acceptable standard used to develop custom applications on the Web in different programing languages (Jailia et al., 2016;Sommerville, 2010). Additionally, MVC gives more focus on the Controller layer (Syromiatnikov & Weyns, 2014) that is suitable for this study once the main idea is based on controlling requests made by the software user and verifying its permissions of access in a module, page and data manipulation. These verifications can slow the response of requests in some milliseconds, MVC can result in additional classes and objects, and in more complex file organization, however, the MVC pattern also allows reliable access to the database, providing a clean, organized, reusable, scalable, and efficient code (Jailia et al., 2016;Sommerville, 2010). ...
Article
Full-text available
Background Parkinson’s disease (PD) is a neurodegenerative condition of the central nervous system that causes motor and non-motor dysfunctions. The disease affects 1% of the world population over 60 years and remains cureless. Knowledge and monitoring of PD are essential to provide better living conditions for patients. Thus, diagnostic exams and monitoring of the disease can generate a large amount of data from a given patient. This study proposes the development and usability evaluation of an integrated system, which can be used in clinical and research settings to manage biomedical data collected from PD patients. Methods A system, so-called Sistema Integrado de Dados Biomédicos (SIDABI) (Integrated Biomedical Data System), was designed following the model-view-controller (MVC) standard. A modularized architecture was created in which all the other modules are connected to a central security module. Thirty-six examiners evaluated the system usability through the System Usability Scale (SUS). The agreement between examiners was measured by Kendall’s coefficient with a significance level of 1%. Results The free and open-source web-based system was implemented using modularized and responsive methods to adapt the system features on multiple platforms. The mean SUS score was 82.99 ± 13.97 points. The overall agreement was 70.2%, as measured by Kendall’s coefficient ( p < 0.001). Conclusion According to the SUS scores, the developed system has good usability. The system proposed here can help researchers to organize and share information, avoiding data loss and fragmentation. Furthermore, it can help in the follow-up of PD patients, in the training of professionals involved in the treatment of the disorder, and in studies that aim to find hidden correlations in data.
... The above mentioned concepts of semantic adapter and controller and the underlying self-description are based on an architecture developed exclusively for semantic plug-andplay, the Model-Domain-DomainModel (MDDM) architecture which was derived from the MVVM pattern used for GUI development [19]. Analogous to the MVVM-pattern, this pattern uses data-bindings (see fig. 3) to link information from self-descriptions to the functionality required in the domain, in which the application logic is situated. ...
... This request is the final output of the Data Manager. The tool is based on the Model-View-ViewModel (MVVM) architecture pattern, originated from Microsoft, which is specialized in the Presentation Model design pattern [62,63]. It is a managed Windows Presentation Foundation (WPF) subsystem, the front-end of which is written in XAML, while its back-end is written in C#.The system has been supplemented by a Message Bus System (MBS) to synchronize GUI threads and to route the traffic of the registered subroutines. ...
Thesis
Full-text available
Big data will be a source of new economic value and innovation. But even more, is at stake. Big data’s ascendancy represents [. . . ] shifts in the way we analyze information that transforms how we understand and organize society” [1]. This important statement by Mayer-Schönberger and Cukier highlights the crucial benefit this field offers to the research and business communities. It is opening up an entirely new horizon for economic and innovative solutions. It also sheds light on the main challenge researchers and business analytics across the world have been facing during the recent years, namely big data handling, extraction, and employing. Digitization enabling the real-time data visualization for further analysis is now a vital prerequisite for a successful and innovative scientific community. This work aims to contribute to the transformation of the crystallography community, dealing with an enormous volume of the measured data obtained due to technological advancement in radiation and detection, into a smarter scientific environment. Specifically, this dissertation has a twofold aim. First, it is intended to provide an introduction and implementation guideline to scientists in the crystallography community and across the fields demonstrating how trend technologies might be applied to design cutting-edge research projects. Second, considering the Energy Dispersive Laue Diffraction (EDLD) as a case study, it introduces an innovative approach to exploit high-performance computing to develop a novel framework for data processing within the time frame of a few seconds compared to the traditional analytic systems requiring a few hours to process the same amount of data. The framework developed is based on multiple artificial intelligence algorithms, designed to perform tasks that cannot be processed by basic programming techniques. Extending this approach, data clouding has been employed to establish the communication channels between scientists and the collected data. This computing solution helps to achieve commoditization of computational resources, implementation of open-source software, data virtualization, globalization of the workforce, establishing a data-sharing point. On the whole, due to these technological improvements, the crystallography community might gain maximum benefit from the collected data. As a proof of concept, the reliability, efficiency, and performance of the entire work has been verified by involving the system in a challenging task, namely: the one-shot analysis of the micro-texture in polycrystalline materials.