Giter VIP home page Giter VIP logo

fta-fmea's People

Contributors

blcham avatar kostobog avatar matthew-kulich avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

effectsno1

fta-fmea's Issues

Make two deployments

You can copy configuration in jenkins, don't forget to configure to different repository (i believe that they are created already).

see also /etc/apache2/sites-enabled/000-kbss.felk.cvut.cz.conf that maps the url.

Afterwards notify @kostobog to update its git repo.

A/C:

  • We have two separate builds:
    • branch avic deploys to kbss.felk.cvut.cz/fta-fmea-avic
    • branch main deploys to kbss.felk.cvut.cz/fta-fmea (note main instead of master)
  • both of the deployments works and have different data obviously
  • the server for new deployment (fta-fmea) should be configured to access the triple store repository https://graphdb.onto.fel.cvut.cz/users/repositories/fta-fmea-2021-case-study-v02. The username and password for the repository are the same as for the avic deployment no need to change it in the application.yml.

Cutsets API should return ordered list

REST API should return an ordered list of cutsets, with the highest probability first.

This way:

  1. we do not need to sort in UI
  2. we can decide in the future to return only a limited number of cutsets

Add Service API to Fetch FHA and SNS Fault Events for a Specific Aircraft Type

API requirements

Fetch FHA event types:

input parameters:

  • aircraft-type - fragment of the aircraft type URI

returns - a list of FHA Events Summaries with the following fields

  • FHA event URI,
  • FHA event name,
  • SNS code and SNS label (ATA code and label)

Fetch FHA and SNS failure event types:

input parameters:

  • aircraft-type - fragment of the aircraft type URI

returns - a list of FHA and SNS failure Events Summaries with the following fields

  • FHA event URI,
  • FHA event name,
  • SNS code and SNS label (ATA code and label)

Generate Fault Tree Model based on the functional dependencies (FD) network

Generate Fault Tree Model based on the functional dependencies (FD) network defined trough the field Function.requiredFunctions.
Acceptance criteria:

  • implement the function in service package. May be it is ok to be in FaultTreeRepositoryService.
  • the method takes a function IRI (URI) and a name for the new FTA and creates a new fault tree
  • Implementaion notes:
    • make sure that each function in the FD network has a failure mode. Generate a failure mode for each function in the FD network.
    • each function in the FD network is transformed into a FaultEvent. The EventEvent should be associated with a failure mode of the function.
    • each dependency relation in the FD network is transformed to a fault tree edge, i.e. Function.requiredFunctions should be transformed to FaultEvent.children.
    • Make all gates "OR Gates". Note: The user will have to change the gate as necessary as we do not have sufficient information to decide which is the correct gate type.
    • Generated fault tree should show in the dashboard (main application page) and it should be possible to open and edit them in the UI.
  • implement REST
  • implement UI generate call the service for a selected function. For now it is sufficient to enable the generation of FTA from the Function editor.
    • The UI should ask the user about the name of the Fault Tree.

Propose Upgrade for Data Model to Support "AVA Creating FTA" use-case

Requirements:
Created FTA should be associated with:

  • Aircraft
  • FHA Fault Category (Optional)

Possible solutions:

How to represent FHA Category?
Possible solutions:

  1. FHA Fault Category is modeled as Situation Type
  2. FHA category is modeled as Event Type

How to represent relation between FTA tree and FHA Fault Category
FHA Fault category is associated with Root Event.

  • Conceptually the FHA Fault category seams more closely related to the root event than to the FTA tree. Relationship between root event and FTA tree is 1:1.

Representation of FHA Fault category is associated with Root Event:

  1. Root event brings about the Fault state
    • triple pattern - "Root Event" "brings about" "FHA Fault Situation"
    • assuming FHA Fault category is represented as Situation Type, FHA Fault Situation.
  2. Root event is of type Fault Category
    • triple pattern rdf:type
    • assuming that FHA Fault category is an event Type

Tasks

  1. kostobog
  2. kostobog

Add Full Text Search API for Entities in backend of FTA FMEA Tool

Add Full Text Search (FTS) API for name Entities Aircraft, FHA event type and SNS component failure type . The solution should easily extensible with additional entity types and text attributes.

API requirements

Input

  • query string - the text used to search for entities
  • entity types - filters which entity types are searched
  • page size - maximum number of results the server should return
  • page index - the index of the page of results

Output

List of entities which match the query. Each entity has the following attributes:

  • URI - the URI of the entity
  • name - the name of the entity
  • type - the entity type

Technical requirements

The implementation should be based on text index capability GraphDB compatible with GraphDB version 10.2.0. See GraphDB Full-text Search documentation
The http request API should be:

  • GET /fulltext-search?parameters

The path above is specified from the root of the rest API.
Parameters are defined in section Input.

Redesin and implement storing aircraft model into several contexts

System context scheme

System model should be described in three contexts for each aircraft type containing structural and behavioral model of the aircraft type.

  • SNS context - containing partonomy and behavioral model of system (aircraft) from SNS import
  • FHA context - containing behavioral model of system from FHA import
  • JOPA context - containing behavioral model created by the the FTA tool, e.g. creating event types for root node of experimental fault tree, i.e. fault tree not associated with a particular FHA event

References to among contexts

This context scheme will require the following references among contexts - this is relevant for the redesign of the JOPA entity descriptor.

Each fault tree may have three types of fault events which contain references to resources from other contexts

  • root, external reference and SNS failure events have a reference to a supertype
  • root and external reference event's supertype references either
    • one event from the FHA context or
    • one event from the JOPA context
  • SNS failure events reference supertype is a reference an SNS failure event type from the SNS context
  • the behavior that is manifested as FHA failure is a part of the FHA context and references a component/system via the has-component from the SNS context
  • the event type of a experimental root or external reference node and the behavior by which it is manifested are a part of the JOPA context. The behavior references the aircraft from the SNS context.

Implement functional dependencies

Functions should have a field of list of functions on which they are dependent.
Create rest for fetching the dependency of a function

  • input a function
  • output : the network of functions on which the input function is dependent

Model Class:

  • cz.cvut.kbss.analysis.model.Function

It is not possible to create new fault tree (internal server error)

When create a fault tree (with existing event):

Request:
Image

Response:
Image

Backend:

INFO  c.c.k.a.c.FaultTreeController - > create - FaultTree <null/> 
ff-iauth-demo-fta-fmea-server  | 16-05-2024 08:23:08.706 [] [thread] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/fta-fmea] threw exception [Request processing failed: java.util.NoSuchElementException: No value present] with root cause 
ff-iauth-demo-fta-fmea-server  | java.util.NoSuchElementException: No value present
ff-iauth-demo-fta-fmea-server  | 	at java.base/java.util.Optional.orElseThrow(Optional.java:377)

Issues when trying to run project locally

I successfully built the provided Dockerfile, resulting in a functional image. However, I'm unable to identify the port at which the project would be exposed. The Dockerfile seems to export 8080 port, but localhost:8080 doesn't work. I have also tried localhost:8000 and localhost:9999, none of which does work.

When I reverse engineered the Dockerfile and built the project without the use of docker, it seems to work on port 9999. I would consider adding healthcheck page to confirm that the project is successfully running for new people - all I see now is Whitelabel Error Page. Based on my familiarity with other KBSS projects, this might be the page that users encounter when accessing a URL they shouldn't be at.

Same with the frontend setup - I don't know if this build is optimal for development. Setup guide of any kind better than Dockerfile would be appreciated.

Fault Tree is broken and impossible to fetch

It is not possible to fetch this tree:

Image

Backend Logs:

[thread] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/fta-fmea] threw exception [Request processing failed: cz.cvut.kbss.jopa.exceptions.CardinalityConstraintViolatedException: Expected single value of attribute lastEditor of instance http://onto.fel.cvut.cz/ontologies/fta-fmea-application/fault-tree/instance1443295929, but got multiple.] with root cause 
ff-kauth-demo-fta-fmea-server  | cz.cvut.kbss.jopa.exceptions.CardinalityConstraintViolatedException: Expected single value of attribute lastEditor of instance http://onto.fel.cvut.cz/ontologies/fta-fmea-application/fault-tree/instance1443295929, but got multiple.
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.oom.SingularObjectPropertyStrategy.verifyCardinality(SingularObjectPropertyStrategy.java:75)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.oom.SingularObjectPropertyStrategy.addAxiomValue(SingularObjectPropertyStrategy.java:68)
ff-kauth-demo-fta-fmea-server  | 	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.oom.EntityConstructor.setFieldValue(EntityConstructor.java:319)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.oom.ObjectOntologyMapperImpl.loadFieldValue(ObjectOntologyMapperImpl.java:191)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.sessions.ConnectionWrapper.loadFieldValue(ConnectionWrapper.java:87)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.sessions.AbstractUnitOfWork.loadEntityField(AbstractUnitOfWork.java:792)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.proxy.lazy.gen.LazyLoadingEntityProxy.triggerLazyLoading(LazyLoadingEntityProxy.java:25)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.jopa.proxy.lazy.gen.LazyLoadingEntityProxyGenerator$GetterInterceptor.get(LazyLoadingEntityProxyGenerator.java:77)
ff-kauth-demo-fta-fmea-server  | 	at UserReference_LazyLoadingProxy.getUri(Unknown Source)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.ComplexManagedEntityRepositoryService.setUserName(ComplexManagedEntityRepositoryService.java:66)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.ComplexManagedEntityRepositoryService.postLoad(ComplexManagedEntityRepositoryService.java:60)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.ComplexManagedEntityRepositoryService.postLoad(ComplexManagedEntityRepositoryService.java:22)
ff-kauth-demo-fta-fmea-server  | 	at java.base/java.util.Optional.map(Optional.java:260)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.BaseRepositoryService.find(BaseRepositoryService.java:73)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.BaseRepositoryService.findRequired(BaseRepositoryService.java:88)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.FaultTreeRepositoryService.findRequired(FaultTreeRepositoryService.java:85)
ff-kauth-demo-fta-fmea-server  | 	at jdk.internal.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
ff-kauth-demo-fta-fmea-server  | 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ff-kauth-demo-fta-fmea-server  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.service.FaultTreeRepositoryService$$SpringCGLIB$$0.findRequired(<generated>)
ff-kauth-demo-fta-fmea-server  | 	at cz.cvut.kbss.analysis.controller.FaultTreeController.find(FaultTreeController.java:42)
ff-kauth-demo-fta-fmea-server  | 	at jdk.internal.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
ff-kauth-demo-fta-fmea-server  | 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
ff-kauth-demo-fta-fmea-server  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:261)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:189)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
ff-kauth-demo-fta-fmea-server  | 	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
ff-kauth-demo-fta-fmea-server  | 	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:145)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:225)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
ff-kauth-demo-fta-fmea-server  | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
ff-kauth-demo-fta-fmea-server  | 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
ff-kauth-demo-fta-fmea-server  | 	at java.base/java.lang.Thread.run(Thread.java:840)

Fix warning when project is build

The build outputs a warning. Cannot find usage in our codebase or in dependencies.
[warning] Found @DeclareAnnotation while current release does not support it (see 'org.aspectj.weaver.bcel.AtAjAttributes')

This issue occurred as a result of upgrading JOPA to newest version in [#44] Upgrading project build

Extend the JOPA model: Add situations and other necessary classes and relations

Implement the model in the diagram in Figure 1.

Figure 1. Diagram of the extension of the JOPA model
fta-fmea-situations

Guidelines:

  • implement the green classes and relationships in the diagram
  • extend the fta-fmea-model.tll adding new classes and properties according to the diagram. Use the same IRI prefix. For example, adding the class "Event" can be done as fta-fmea:Event rdf:type owl:Class...
  • implement the relationships using the directions in the diagram, e.g. add "activated by" in Function not in Situation. If you need the inverse relation add it using the second label.
    • Note that relationship labels in the diagram are specified in both directions separated by '/'. The first label corresponds to the relationship direction in the diagram.
    • implement relationships according to cardinalities in the diagram

Extend fault tree summary to support list view and global system selection

Extend fault tree summary to support

Add the following properties to fault tree summary:

  • to system type
  • sub-system
  • calculated failure rate
  • FHA based failure rate
  • required failure rate
  • last modified
  • last editor
  • status
    • valid - if tree is evaluated and there is no edits after evaluation
    • invalid - if evaluated fault tree is edited
    • edited - if not evaluated tree is edited

Check if imported SNS is usable for editing fault trees

Check if imported SNS can be used to edit fault trees. This includes:

  • all the necessary fields shown in fault event editor are present
    • predicted failure rate, ATA code, part number, stock, schematic description, quantity
  • FaultEventDao.getAllFaultEvents fetches SNS failures (if not in main see PR #91)

Normalize the Behavior Model

The goal of this task is to normalize the model of behaviors.

  • super class - Behavior

  • specializations - Function, FailureMode and Mitigation

  • Behavior class properties (that includes both their fields and methods) from behavior sub-classes to behavior.

    • name
    • description - this property is not in all of the classes
    • add new property BehaviorType behaviorType,
      • Create Enum BehaviorType with elements OrBehavior, AndBehavior and AtomicBehavior (
      • the behavior type specifies how the occurrence of child behaviors is associated with the occurrence of the parent behavior
        • Atomic behavior assumes there are no child behaviors
        • AndBehavior assumes there are child behaviors and that an occurrence of all child behaviors is equivalent to the occurrence of the parent behavior.
        • OrBehavior assumes there are child behaviors and that an occurrence of one of the child behaviors is equivalent to the occurrence of the parent behavior.
      • implement similar to the implementation of FaultEvent.gateType
  • Behavior relationships - add the following relationship fields

    • Set requiredBehaviors
    • Set impairedBehaviors
      • create (if it does not exist) fta-fmea:impairs and fta-fmea:impaired-by IRIs in fta-fmea-model.ttl
      • use the fta-fmea:impairs for the IRI of the field
    • Set childBehaviors
      • create the fta-fmea:hasChildBehavior and fta-fmea:isChildBehaviorOf in fta-fmea-mode.ttl
      • use the fta-fmea:hasChildBehavior for the IRI of the field
    • Set manifestations
      • create (if it does not exist) fta-fmea:manifested-by fta-fmea:manifestation-of IRIs in fta-fmea-model.ttl
      • use the fta-fmea:manifested-by for the IRI of the field
    • Component component - implement this field as the field FailureMode.component

Replace the following relations with relations in the Behavior class:
- Function
- Set requiredFunctions -> this field should be replaced by Behavior.requiredBehaviors
- remove the field from the Function class
- move and refactor accessor methods to Behavior class using the requiredBehaviors field instead of requiredFunctions
- find other usage of the removed field and rewrite the code to use the field Behavior.requiredBehaviors
- Failure Mode
- Set effects -> this field should be replaced by Behavior.manifestations
- remove the field from the FailureMode class
- move and refactor accessor methods to Behavior calss using the manifestations field instead of effects
- find other usage of the removed field and rewrite the code to use the field Behavior.manifestations
- Component component -> this fied should be replaced by Behavior.component
- find usage of the refactored field and rewrite the code to use the field Behavior.component instead
- Set functions
- remove field from Function class
- move and refactor accessor methods to Behavior class and use the field impairedBehaviors instead
- find usage of the removed field and rewrite the code to use the field Behavior.impairedBehaviors
- Mitigation mitigation
- remove field from class
- move and refactor accessor methods to Behavior class using the impairedBehaviors field instead
- revise code using this relationship and change to use move to Behavior.impairs (s_p_impaired_by).

Collection fields should have "add" and "remove" methods.

The diagram below shows the schema of the new diagram
behavior-model-normalization

The diagram below shows an example specification of dependencies of functions and their impairment of failure modes according to the new model.
behaviors-requirement-and-impairment-example

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.