Subject: Methods and standards used in systems modelling SysML - for requirements specification, UML (component, deployment, class, sequence, state diagrams) - for architecture, data model and behavior description
In the process of designing of software systems design patterns plays important role. Please note, that these patterns might work at different abstration layers, from a low level (programming language) to a very high level (enterprice architecture). There are also various approaches to the implementation - one can start so called "bottom up approach" (writing code at first), while the other one can choose "top down approach" (starting from declaration of contracts or abstract interfaces definitions).
To prepare some bases for the labs the lecture was devoted to Spring and SpringBoot frameworks and data persistency (with some insights on entity models and JPA repositories).
The initial templates of SprinBoot projects can be generated using Spring Initializr
Just remember: the latest version of the Spring framework defines six types of scopes:
singleton, prototype, request, session, application, websocket(see: Quick Guide to Spring. Bean Scopes
dbTestJava.zip (eclipse project showing the use of DAO pattern and JDBC)
simple-jpa.zip (maven application that uses JPA, designed to work with PetShop model, includes annotated models with many-to-many relations and declares the use of H2 database)
simple-jpa-example.zip (maven application that uses JPA, includes annotated models with many-to-many relations and declares the use of MS SQL Express database)
JavaScript Syntax (tutorial about JavaScript, illustrated with examples)
PhoneCat Tutorial App (exemplary application implemented with the use og AngularJS and other js frameworks)
Plunker. Helping you build the web (nice tool to prototype, experiment, share and debug your ideas on the web platform. Offers on-line editor with JavaScript interpreter)
any changes done to the pom.xml have to be noticed by the building system. Thus please do not foget about maven update (in Sprint Tools right click on pom.xml, then: Maven -> Update project)
remember about cleaning and compilation steps:
maven clean (this is optional if thera are classes remaing from previous compialations)
maven compile (observe informations displayed on Console)
Aspect oriented programming is a paradigm allowing separation of concers. Thanks to it handling so called "cross-cutting" concerns can be done in an organized way, by simply attaching aspects to the existing sources, without modifying any line of the original code).
Declaring a Pointcut - look at the possibilities of using aspects in SprinBoot AOP (execution, within, this, target, args, @target, @args, @within, @annotation). Remember, that SpringBoot AOP works with managed objects (beans), and do not handle overriden methods calls (due to the proxy mechanizm used).
universityService04.zip - an example of web service with aspects declared with execution and @annotation pointcuts.
StudentsApp-AspectJ.zip - an old example of web service where aspects are used to monitor calls to setters and getters of Student class. In this example Load Time Weaving was applied (look into Swagger2SpringBoot.java - there are options to pass to the VM at the start up).
RDF specification consists of several documents desribing: model, semantics, entailement regimes, serialization etc. With the use of these standards one can design knowledge base (incorporating custom terminology and assertions), fill it with facts and open for exploration. For that purpose graph databases are used (sometimes called as triple stores). These topics were were discussed, along with some common use cases and tools.
OWL and its next version OWL2 are languages built with the use of RDF and RDFS vocabularies, offering richer set of terms and expressivenes. OWL/OWL2 allow to specify cardinalities of object relations and datatype properties (attributes) and to specify classes by setting restrictions and using logical operators (unions, intersections, etc.). The OWL entailment regime is much more complex that that of RDF/RDFS.
There are serious consequences of "open world assumption" and "no unique name assumption" and the use of entailment reqimes. They were discussed end highlighted using examples of classes equivalence and restrictions in OWL (min cardinality and max cardinality, see supporting materials).
Please remember about Description Logic - the mathematical bacground for semantic web models
Tools: Protégé - home page of a free, open-source ontology editor and framework for building intelligent systems (select proper binaries because "platform independent version" was reported to generate some troubles with the newest version of JDK); TopBraid Composer - download page of Standard and Free Editions of eclipse based TopBraid Composer (please note that TopBraid Composer has beee discontinued. Now TopQuadrant has in their offer another tool: TopBraid Enterprise Data Governance (EDG));
CardinalityTest.pdf (an example of using constrains and "closing the world").
Semantic web technologies allows to publish and discover data in a machine-friendly way. It is done thorough appropriate annotations and script embedding on HTML pages, supporting SPARQL endpoints, etc.
The humas can also benefit from semantic web models and understood published data.
Many ontologies has been developed so far. Among them one can distinguish: schema.org, SKOS, foaf, dublinCore (most popular vocabularies). There are plenty of others (see supporting materials). It is worth to note, that publishing LOD requires some afforts not only in data preparation, but also taking cautions in deployment and infrastructure configuration.
The topics touched during the lecture: SPARQL (query language, protocol, endpoint); embedding semantical metadata on the web pages (RDFa, microdata, microformats, JSON-LD), and principles of LOD
ISM-TK-lect13.pdf general presentation about SOA architectures, with remarks on orchestration, choreography, business processess modeling languages and example of process desing
During the lecture some short remarks on UML state diagram and UML sequence diagram were given, followed by detailed description of BPMN and related tools (Camunda)
You can find the description of assignements inside e-learning platform at: https://eportal.pwr.edu.pl/ (course Information Systems Modeling, InfSysMod). Please login in order to enroll. All outcomes must be delivered trough this platform !!!!