1 |
Ambiente de apoio ao ensino de modelagem de software com máquina de estados: uma extensão para o editor de programação BluejGaspar, Luciano 10 May 2012 (has links)
Made available in DSpace on 2016-04-29T14:23:06Z (GMT). No. of bitstreams: 1
Luciano Gaspar.pdf: 1342989 bytes, checksum: 2adb8081f31a71914dc0e2627497482b (MD5)
Previous issue date: 2012-05-10 / The aspects that affect the complexity in the development of systems are, also, barriers to the teaching and learning process of software modeling. Many techniques, tools and processes are adopted in this specific kind of teaching, although, one of the greatest issues found in this task is to create conditions in order to make the student experiment such a complexity in the classroom. The adoption of criteria for software quality analysis is an option that, into the architectural prospect, can reveal that, even the algorithm with few code lines are fragile and, along their life cycle, may present problems of scalability, maintenance and reuse. In this aspect, the purpose of this research is to evaluate if the codes produced by the student, supported by the concepts and techniques of the State Model, will express the initial characteristics of a modularized structure. A tool which extends the functions of the BlueJ teaching environment was developed and it is presented in this paper. That tool, associated with the BlueJ native resources and the State Machines learning make it possible for the student to accomplish software model descriptions according to the structural and environmental code prospects / Os aspectos que afetam a complexidade no desenvolvimento de sistemas também são barreiras para o processo de ensino-aprendizagem de modelagem de software. Muitas técnicas, ferramentas e processos são adotados nesse tipo específico de ensino, porém, uma das dificuldades encontradas é criar condições para que o aluno vivencie tal complexidade em sala de aula. Como alternativa, a adoção de critérios de análise da qualidade de software, sob a perspectiva arquitetural, pode revelar que mesmo os algorítmos com poucas linhas de código são frágeis e ao longo do seu ciclo de vida apresentam problemas de escalabilidade, manutenção e reuso. Nesse sentido, o propósito desta pesquisa é avaliar se o código produzido pelo aluno, apoiado nos conceitos e técnicas do Modelo de Estados, manifestará características iniciais de uma estrutura modularizada. Uma ferramenta que estende as funcionalidades do ambiente de ensino BlueJ foi desenvolvida e é apresentada neste trabalho. Esta ferramenta, associada aos recursos nativos do BlueJ e aos conhecimentos de Máquina de Estados, permite que o aluno elabore descrições de modelos de software dentro das perspectivas estrutural e comportamental do código
|
2 |
Recommender systems for UML class diagrams.TOLEDO, Saulo Soares de. 14 September 2017 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2017-09-14T18:41:16Z
No. of bitstreams: 1
dissertacao_saulo_toledo_recsys_uml.pdf: 2345909 bytes, checksum: dcaa7238380f7791f922778432a5b9ea (MD5) / Made available in DSpace on 2017-09-14T18:41:16Z (GMT). No. of bitstreams: 1
dissertacao_saulo_toledo_recsys_uml.pdf: 2345909 bytes, checksum: dcaa7238380f7791f922778432a5b9ea (MD5)
Previous issue date: 2016-09-05 / Modelos UML são usados de várias formas na engenharia de software. Eles podem modelar desde requisitos até todo o software, e compreendem vários diagramas. O diagrama de classes, o mais popular dentre os diagramas da UML, faz uso de vários elementos UML e adornos, tais como abstração, interfaces, atributos derivados, conjuntos de generalização, composições e agregações. Atualmente, não há maneira fácil de encontrar este tipo de diagrama com base nestas características para a reutilização ou a aprendizagem por tarefas de exemplo. Por outro lado, Sistemas de Recomendação são ferramentas e técnicas que são capazes de descobrir os elementos mais adequados para um usuário, dentre muitos outros. Existem várias técnicas de recomendação, que usam informações dos elementos de várias maneiras, ao uso da opinião de outros usuários. Sistemas de recomendação já foram utilizados com sucesso em vários problemas de engenharia de software. Este trabalho tem como objetivo propor e avaliar (i) uma representação baseada em conteúdo para diagramas
de classe e as preferências do usuário,(ii) um novo algoritmo de recomendação baseado no conhecimento, (iii) a aplicação deste algoritmo e outros dois outros do estado da arte para a recomendação de diagramas de classe UML e (iv) uma avaliação destas abordagens contra uma sugestão aleatória. Para atingir este objetivo, foi realizado um estudo de caso com estudantes de ciência da computação e egressos. Depois de comparar os algoritmos, os nossos resultados mostram que, para o nosso conjunto de dados, todos eles são melhores do que uma recomendação aleatória. / UML models are used in several ways in the software engineering. They can model from requirements to the entire software, and comprise several diagrams. The Class diagram, the most popular among the UML diagrams, makes use of several UML elements and adornments, such as abstraction, interfaces, derived attributes, generalization sets, compositions and aggregations. Currently, there is no easy way to find this kind of diagram based on these features for reuse or learning by example’s tasks, for instance. On the other hand, Recommender Systems are powerful tools and techniques that are able to discover the most appropriate elements to an user among many others. There are several recommender techniques, from using the elements’ information in several ways, to using other users’ opinions. Recommender systems were already used successfully in several software engineering problems, as discovering pieces of code to recommend (as methods, for example) and finding the best developer to work in certain software problems. This work aims to propose and evaluate (i) a content-based Recommender System’s representation for class diagrams’ features and user’s preferences, (ii) a new knowledge-based recommender algorithm, (iii) the application this algorithm and two other state of the art content-based ones to the recommendation of UML class diagrams and (iv) an evaluation of these approaches against a random suggestion. To achieve this goal, we conducted a case study with computer science students and egresses. After comparing the algorithms, our results show that, for our dataset, all of
them are better than a random recommendation.
|
3 |
Návrh a implementace programu pro převod UML struktur do programovacího jazyka / Design and implementation of program for transformation of UML structures to programming languageMinářová, Alice January 2017 (has links)
This work deals with the problematics of conversion of UML diagrams to code. Initially, existing solutions in this field are analyzed. Based on the gained findings, a new tool is designed and implemened. It accepts UML class diagrams and database models from the free diagramming environment Dia and for each of these offers three target languages. The key feature of this tool is its modular design allowing new target languages to be added easily.
|
4 |
Software test case generation from system models and specification : use of the UML diagrams and high level Petri nets models for developing software test casesAlhroob, Aysh Menoer January 2010 (has links)
The main part in the testing of the software is in the generation of test cases suitable for software system testing. The quality of the test cases plays a major role in reducing the time of software system testing and subsequently reduces the cost. The test cases, in model de- sign stages, are used to detect the faults before implementing it. This early detection offers more flexibility to correct the faults in early stages rather than latter ones. The best of these tests, that covers both static and dynamic software system model specifications, is one of the chal- lenges in the software testing. The static and dynamic specifications could be represented efficiently by Unified Modelling Language (UML) class diagram and sequence diagram. The work in this thesis shows that High Level Petri Nets (HLPN) can represent both of them in one model. Using a proper model in the representation of the software specifications is essential to generate proper test cases. The research presented in this thesis introduces novel and automated test cases generation techniques that can be used within a software sys- tem design testing. Furthermore, this research introduces e cient au- tomated technique to generate a formal software system model (HLPN) from semi-formal models (UML diagrams). The work in this thesis con- sists of four stages: (1) generating test cases from class diagram and Object Constraint Language (OCL) that can be used for testing the software system static specifications (the structure) (2) combining class diagram, sequence diagram and OCL to generate test cases able to cover both static and dynamic specifications (3) generating HLPN automat- ically from single or multi sequence diagrams (4) generating test cases from HLPN. The test cases that are generated in this work covered the structural and behavioural of the software system model. In first two phases of this work, the class diagram and sequence diagram are decomposed to nodes (edges) which are linked by Classes Hierarchy Table (CHu) and Edges Relationships Table (ERT) as well. The linking process based on the classes and edges relationships. The relationships of the software system components have been controlled by consistency checking technique, and the detection of these relationships has been automated. The test cases were generated based on these interrelationships. These test cases have been reduced to a minimum number and the best test case has been selected in every stage. The degree of similarity between test cases is used to ignore the similar test cases in order to avoid the redundancy. The transformation from UML sequence diagram (s) to HLPN facilitates the simpli cation of software system model and introduces formal model rather than semi-formal one. After decomposing the sequence diagram to Combined Fragments, the proposed technique converts each Combined Fragment to the corresponding block in HLPN. These blocks are con- nected together in Combined Fragments Net (CFN) to construct the the HLPN model. The experimentations with the proposed techniques show the effectiveness of these techniques in covering most of the software system specifications.
|
5 |
Characterizing Student Proficiency In Software Modeling In Terms of Functions, Structures, and BehaviorsPaul JoseKutty Thomas (10711266) 06 May 2021 (has links)
<p>Software modeling is an integral
practice for software engineers especially as the complexity of software
solutions increase. There is precedent in industry to model information systems
in terms of functions, structures, and behaviors. While constructing these
models, abstraction and systems thinking are employed to determine elements
essential to the solution and how they are connected. However, both abstraction
and systems thinking are difficult to put in practice and difficult to teach
due to the, often, ill-structured nature of real-world IT problems. Unified
Modeling Language (UML) is the industry standard for software modeling but
unfortunately it is often used incorrectly and misunderstood by novices. This
has also been observed in educational contexts where students encounter
difficulty in employing the appropriate level of abstraction in modeling and
programming contexts and not necessarily being able to view or treat software
systems as being interconnected. </p>
<p>The researcher detailed a
multi-methods approach, through the lens of pragmatism, towards understanding
patterns of student proficiency with abstraction and software modeling in terms
capturing the functional, structural, and behavioral aspects of an information
system, as given by the Structures-Behaviors-Function framework. The
quantitative strand involved the development of rubrics to analyze functional,
structural, and behavioral models given by UML activity diagrams, class
diagrams, and sequence diagrams, respectively. The subjects of this study were
students enrolled in a sophomore-level systems analysis and design class. Descriptive
analysis revealed patterns of modeling proficiency. Students were generally
proficient in modeling the system in terms of functions but there was an
overall drop-off in proficiency when modeling the system in terms of structures
and behaviors. The results of the clustering analysis revealed underlying profiles
of students based on abstract thinking and systems thinking ability. Two
distinct clusters – high performing students and moderate performing students –
were revealed with statistically significant differences between the groups in
terms of abstract thinking and systems thinking ability. Further correlational
analysis was performed on each cluster. The results of the correlational
analyses pointed to significant positive associations between software modeling
proficiency and the constructs of abstract thinking and systems thinking. Logistic
regression analysis was then performed, and it could be inferred from the
regression model that abstract thinking in terms of behaviors and systems
thinking in terms of aligning sequence diagrams with activity diagrams were the
most important predictors of high performance. </p>
The qualitative strand of this study involved a
case study approach using the think-aloud protocol centered around exploring
how students utilized abstract thinking and systems thinking while constructing
software models. The participants of this study were students who had completed
the sophomore-level systems analysis and design course. Thematic analysis was
utilized to identify themes of abstract thinking and systems thinking within
the epistemic games of structural, functional, and process analyses. Two
different approaches towards modeling information systems were identified and
chronological visualizations for each approach were presented. Overall, it
could be inferred from the results and findings of the study that the learning
design of the sophomore-level course was successful in equipping students with
the skills to proficiently model information systems in terms of functions.
However, the students were not as proficient in modeling information systems in
terms of structures and behaviors. The theoretical contribution of this study was
centered around the application of the SBF framework and epistemic forms and
games in the context of information systems. The methodological contributions
pertain to the rubrics that were developed which can be used to evaluate
software modeling proficiency as well as abstract thinking and systems
thinking. Abstract thinking and systems thinking were successfully
characterized in the context of information systems modeling. The results of
this study have implications in computing education. The suggested
instructional approaches and scaffolds can be utilized to improve outcomes in
terms of structural and behavioral modeling proficiency.
|
6 |
Software test case generation from system models and specification. Use of the UML diagrams and High Level Petri Nets models for developing software test cases.Alhroob, Aysh M. January 2010 (has links)
The main part in the testing of the software is in the generation
of test cases suitable for software system testing. The quality of the
test cases plays a major role in reducing the time of software system
testing and subsequently reduces the cost. The test cases, in model de-
sign stages, are used to detect the faults before implementing it. This
early detection offers more
flexibility to correct the faults in early stages
rather than latter ones. The best of these tests, that covers both static
and dynamic software system model specifications, is one of the chal-
lenges in the software testing. The static and dynamic specifications
could be represented efficiently by Unified Modelling Language (UML)
class diagram and sequence diagram. The work in this thesis shows that
High Level Petri Nets (HLPN) can represent both of them in one model.
Using a proper model in the representation of the software specifications
is essential to generate proper test cases.
The research presented in this thesis introduces novel and automated
test cases generation techniques that can be used within a software sys-
tem design testing. Furthermore, this research introduces e cient au-
tomated technique to generate a formal software system model (HLPN)
from semi-formal models (UML diagrams). The work in this thesis con-
sists of four stages: (1) generating test cases from class diagram and
Object Constraint Language (OCL) that can be used for testing the
software system static specifications (the structure) (2) combining class
diagram, sequence diagram and OCL to generate test cases able to cover
both static and dynamic specifications (3) generating HLPN automat-
ically from single or multi sequence diagrams (4) generating test cases
from HLPN.
The test cases that are generated in this work covered the structural
and behavioural of the software system model. In first two phases of this
work, the class diagram and sequence diagram are decomposed to nodes
(edges) which are linked by Classes Hierarchy Table (CHu) and Edges
Relationships Table (ERT) as well. The linking process based on the
classes and edges relationships. The relationships of the software system
components have been controlled by consistency checking technique, and
the detection of these relationships has been automated. The test cases
were generated based on these interrelationships. These test cases have
been reduced to a minimum number and the best test case has been
selected in every stage. The degree of similarity between test cases is
used to ignore the similar test cases in order to avoid the redundancy.
The transformation from UML sequence diagram (s) to HLPN facilitates
the simpli cation of software system model and introduces formal model
rather than semi-formal one. After decomposing the sequence diagram
to Combined Fragments, the proposed technique converts each Combined
Fragment to the corresponding block in HLPN. These blocks are con-
nected together in Combined Fragments Net (CFN) to construct the the
HLPN model. The experimentations with the proposed techniques show
the effectiveness of these techniques in covering most of the software
system specifications.
|
7 |
Extending Artemis With a Rule-Based Approach for Automatically Assessing Modeling TasksRodestock, Franz 27 September 2022 (has links)
The Technische Universität Dresden has multiple e-learning projects in use. The Chair of Software Technology uses Inloop to teach students object-oriented programming through automatic feedback. In the last years, interest has grown in giving students automated feedback on modeling tasks. This is why there was an extension developed by Hamann to automate the assessment of modeling tasks in 2020. The TU Dresden currently has plans to replace Inloop with Artemis, a comparable system. Artemis currently supports the semi-automatic assessment of modeling exercises. In contrast, the system proposed by Hamann, called Inloom, is based on a rule-based approach and provides instant feedback. A rule-based system has certain advantages over a similarity-based system. One advantage is the mostly better feedback that these systems generate.
To give instructors more flexibility and choice, this work tries to identify possible ways of extending Artemis with the rule-based approach Inloom. In the second step, this thesis will provide a proof of concept implementation. Furthermore, a comparison between different systems is developed to help instructors choose the best suitable system for their usecase.:Introduction,
Background,
Related Work,
Analysis,
System Design,
Implementation,
Evaluation,
Conclusion and Future Work,
Bibliography,
Appendix
|
Page generated in 0.0557 seconds