- Видео 100
- Просмотров 46 477
Jan Oliver Ringert
Германия
Добавлен 31 окт 2011
Model-Based Software Engineering, Formal Methods for Software Engineering with applications to autonomous systems.
Digital Engineering Welcome 2024/25
Welcome session for Digital Engineering students starting at Bauhaus-Universität Weimar in winter semester 2024/25
Просмотров: 57
Видео
Satisfiability Checking Example (Formal Mehods Playground)
Просмотров 162 месяца назад
The code is available from: play.formal-methods.net/?check=SAT&p=sloped-chair-yeast-vowed
Validity Checking Example (Formal Methods Playground)
Просмотров 112 месяца назад
Validity Checking Example (Formal Methods Playground)
Alloy Analyzer Traffic Light Example (Formal Methods Playground)
Просмотров 322 месяца назад
The code is available from play.formal-methods.net/?check=ALS&p=bobble-payday-oboe-banana
SMT Linear Arithmentic Example Cat, Dog, Mouse (Formal Methods Playground)
Просмотров 192 месяца назад
The code is available from play.formal-methods.net/?check=SMT&p=relock-clever-parcel-envy
SMT Drinker's Paradox Example (Formal Methods Playground)
Просмотров 322 месяца назад
The code is available from play.formal-methods.net/?check=SMT&p=unrest-viable-math-tall
Formal Methods Playground Overview
Просмотров 502 месяца назад
An overview of the Formal Methods Playground tool hosted at play.formal-methods.net
Installing VSCode on Ubuntu for a Java and Gradle project
Просмотров 2046 месяцев назад
This video shows a fresh install of VSCode, Git, a Java JDK, and necessary VSCode extensions to work on Java projects with Gradle in VSCode. The example project used is the following template with JavaFX, CSV files, and SQL Database support: github.com/se-buw/javafx-gradle-template This video shows the code and how to run it in Eclipse: ruclips.net/video/9bqYSYh-G1A/видео.html
JavaFX and CLI template projects with SQL and CSV
Просмотров 4026 месяцев назад
This videos demonstrates how to clone and run a simple JavaFX demo project in Eclipse and on the command line with Gradle. github.com/se-buw/javafx-gradle-template The project comes with a JavaFX GUI and alternatively a command line interface. The demo uses a simple SQL database and alternative even simpler CSV file to store data.
Digital Engineering Welcome Summer 2024
Просмотров 1527 месяцев назад
This is a recording of the welcome session for the Summer 2024 intake of the MSc program Digital Engineering at Bauhaus-University Weimar. The main purpose of this recording is to serve as a reference/reminder for those who attended and for those who could not make it to the welcome meeting.
Applications of LTL Model Checking
Просмотров 1309 месяцев назад
0:00 LTL Specification Patterns 31:50 Applications of LTL model checking and NuSMV/nuXmv 56:19 Formal Methods: Practice and Experience
LTL Model Checking
Просмотров 1249 месяцев назад
This is a continuation of the lecture on LTL model checking: 0:00 Non-determinism and ASSIGN vs. TRANS in SMV 20:40 Solving the Collatz Conjecture? play.formal-methods.net/?check=XMV&p=next-pesky-player-comfy 40:20 LTL equivalence checking by model checking
LTL & Model Checking
Просмотров 2299 месяцев назад
0:00 Equivalences of LTL formulas 14:57 Weak Until and Release Operators 17:30 Past time LTL 24:44 LTL equivalences quiz 35:53 LTL Model Checking 37:20 NuSMV and nuXmv model checkers play.formal-methods.net/?check=XMV 43:10 SMV language play.formal-methods.net?check=XMV&p=relock-hug-entail-drool 52:56 Integers and overflows play.formal-methods.net/?check=XMV&p=swipe-napped-swivel-hybrid 1:01:05...
Linear Temporal Logic
Просмотров 3199 месяцев назад
0:00 Reflection and motivation of additional specification languages 15:40 Introduction of Linear Temporal Logic 32:32 LTL syntax 33:51 LTL semantics 35:55 Transition systems 45:45 Paths 51:06 Path satisfaction
Relations & Multiplicities
Просмотров 859 месяцев назад
0:00 Finite scenario finding with Alloy 8:07 Run commands 13:20 Scope for signatures in Alloy 18:06 Elements of Alloy models 32:38 Inheritance between signatures 42:25 Multiplicities for fields 59:39 Constraints over relations, predicates and functions
Introduction to Relational First-Order Logic
Просмотров 1179 месяцев назад
Introduction to Relational First-Order Logic
Role-based Access Control analysis (pt. 2)
Просмотров 1579 месяцев назад
Role-based Access Control analysis (pt. 2)
Limboole and Role-Based Access Control
Просмотров 2909 месяцев назад
Limboole and Role-Based Access Control
Declarative thinking & propositional logic
Просмотров 3479 месяцев назад
Declarative thinking & propositional logic
Importing JavaFX Gradle Template to Eclipse
Просмотров 364Год назад
Importing JavaFX Gradle Template to Eclipse
1. What books are considered right now as of 2024 as the modern gold standard HOW TOs of formal methods based software engineering in your opinion based on what you know and what you heard from colleagues that specialize in this? A "must read" list would be amazing. There are way to many podcasts focused on software engineering that recommend endlessly the same books that have nothing to do with formal methods based software engineering. 2. Are there no blogs and podcasts that focus on this sub niche of software engineering that you can list? An exhaustive list would be in itself an incredible resource since hardly anyone is popularizing this approach to software engineering. Thank you!
Thank you very much professor. I finished watching all your videos on this course. They were highly informative.
Thank you very much Professor for this great video. may i have a small exchange with you to discuss about some question??
Sure, either here or feel free to send an email. My email address is at the bottom of this page: ringert.blogspot.com/p/about.html
Here is an updated (and longer) version with a more recent JavaFX and Gradle. It also shows how to use an SQL database, a command line interface, and CSV files: ruclips.net/video/9bqYSYh-G1A/видео.html
The confusion clash of Software Engineering and Algorithms and Data Structures has been resolved. The exerciese schedule of Algorithms and Data Structures was tentative and will likely be moved (check the lecture for updates).
Excellent and clear explanation. Greetings from Argentina!
'Promo sm' 😃
I wanted to apply for more than three years, but I dont know how to. help me out sir !
Thank you so much! Straightforward and simple, saved me lots of time! :)
@JanOliverRingert you save my life. Thx a lot for your awesome tutorial. 😁😁😁
You are welcome. Just out of curiosity: is it for an assignment and if so, where?
@@JanOliverRingert No, no order? My professor uses your tutorial for his advanced software engineering classes. And it helped me a lot. Since I already have experience with Spring Boot and am therefore familiar with the concepts of the Gang of Four, it was easy. Although I do have one or two questions. But I don't know if this is the correct format?
Feel free to ask. In case you need it, my email is listed here ringert.blogspot.com/p/about.html (in an image at the bottom) but I am afraid I might not be able to answer unless it is specific to one of the videos or steps.
Is it possible to run this validation through code, as you have shown it is possible to instantiate classes?
Yes, you can run it. It might be a bit tricky to set up (similarly to creating instances it needs some dependencies and some setup). I have an example project from a homework in my class where I added a JUnit test that checks validity of instances programmatically (including OCL) here: github.com/se-buw/gendev.lab1 The JUnit test CodeGenAndOclTest checks an instance with the Diagnostician: github.com/se-buw/gendev.lab1/blob/a6e17851c26f0bf94df4130958df346d83589d40/de.buw.se.gendev.lab1/test/de/buw/se/gendev/lab1/CodeGenAndOclTest.java#L57 Failing OCL constraints will be reported (not implemented as part of this JUnit test, but you may debug the output of the Diagnostician to find out more details).
@@JanOliverRingert I will try this. Thank you so much. :)
ty <3
You saved my ass
Glad that I could help :-)
I love you!!
thanks a lot, amazing work
In the most recent tutorial code we have replaced the library DwyerPatterns.spectra with a version that uses systematic naming rules. Patterns still work the same way, but names are different from those in the video, e.g. the pattern instance pRespondsToS(carA, greenA); now becomes S_responds_to_P_globally(greenA, carA);. The names of auxiliary variables in the Rich Controller Walker changed accordingly.
In the most recent tutorial code we have replaced the library DwyerPatterns.spectra with a version that uses systematic naming rules. Patterns still work the same way, but names are different from those in the video, e.g. the pattern instance pRespondsToS(carA, greenA); now becomes S_responds_to_P_globally(greenA, carA);. Note that the parameter order of trigger/response now changed to response/trigger.
In the most recent tutorial code we have replaced the library DwyerPatterns.spectra with a version that uses systematic naming rules. Patterns still work the same way, but names are different from those in the video, e.g. the pattern instance pRespondsToS(carA, greenA); now becomes S_responds_to_P_globally(greenA, carA);. Note that the parameter order of trigger/response now changed to response/trigger.
For versions Spectra Tools after v1.0.0.202210... loading the controller now requires to also provide the name of the specification and the subfolder indicating the type of controller, e.g., ControllerExecutor executor = new ControllerExecutor(new BasicJitController(), "out/jit", "TrafficE2"); for this example using the just-in-time symbolic controller.
Beachte, dass auf Betriebssystemen mit Deutsch als Standardsprache der Scanner als Dezimalzweichen ein Komma verwendet während Zahlen im Code und in Strings mit Integer.parseInt(...) einen Punkt als Dezimaltrenner verwenden müssen.
Very helpful.
The recent versions of Eclipse, e.g., 2022-03 and 2022-06, have an incompatibility between GEF and Xtext preventing Spectra Tools, which depends on both, from loading. The version indicated on the SYNTECH website (currently Eclipse 2021-03) still works. We will update soon to remove the dependency on GEF.
Hello Jan. The incompatibility issue still seems to be present. Are you aware of any way to work around it? How soon can we expect the update to remove the dependency? Thank you!
@@tiberiugeorgescu4459 Sorry for the delay. The workaround is using the version Eclipse 2021-03. By Monday the new version should be out and working with the latest Eclipse.
Hello @JanOliverRingert , there seems to be a compatibility issue with eclipse 2023-12, has this been noted? Is there a version which is guaranteed to work? I tried using 2021-03, but it seems that no matter what the specification is always unrealizable (even when using the provided tutorial code). Thanks!
@@marm2185 Sorry about the inconvenience. Right now version 2023-06 should work (newer ones fail for some incompatibility, likely with Xtext). If you are using a Mac M2 or some other not so common system/CPU use "Eclipse/Window/Preferences/Spectra" to change the BDD engine to "JTLV package".
I have 2 questions (for the robot task): 1. I came up with (e.g.) "gar alw robX=4 & move!=RIGHT -> robX=4", do you think it would behave the same? 2. Could you split the conjunction of implications into 4 separate guarantees? TIA, been using Spectra for my individual project :)
Great to hear that; I am sorry for the late reply: 1. your guarantee has robX=4 on both sides of the implication and turns out to be a tautology (if robX!=4 then the implication is always true (because the left side is false); if robX=4 then the right side is always true and thus also the whole implication) 2. Yes, you can split the conjunction like that into 4 guarantees starting with "gar alw ..." Let me know if you have any more questions.
Please upload all videos
I am sorry, for data protection reasons (mainly that of students participating in the lecture) the lecture recordings can only be made available to active University of Leicester students.