Git Product home page Git Product logo

fta-fmea-ui's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fta-fmea-ui's Issues

Implement import of component function reliability data

User should be able to load reliability data regarding component's functions.
The accepted format for the import is a csv with the following columns:

  • component iri
  • function iri
  • time to failure/probability of failure

The solution should also accept import from an ontology file

Rename form in dashboard retain old name

In the Dashboard, when a System/FTA/FMEA artifact is just renamed. When the form is visited right after the first rename the form shows the old name (the name before the first rename).

Fix form to show the current name of the renamed artifact.

FMEA table rows grow on each visit

Visiting an FMEA (navigating from dashboard, refreshing a FMEA page) causes the its rows to grow in number. It seams that the number of rows doubles on each visit.

User should be able to see behavior diagram of the system

Create a diagram component that can visualize the behavioral description of the edited system.

Diagram Element Specification

Nodes - the nodes in the diagram are behaviors, the label of the node is the name of the behavior. Complex behaviors should be rendered with a corresponding logic gate (AND or OR).

  • functions - green boxes
  • failure modes - red round corner box
  • failure mode cause - yellow round corner box,
  • mitigation - blue boxes

Edges - there are three types of edges

  • requires - label requires, has arrow on targets end, connects to target node not to its gate.
  • impairs - label impairs, has arrow on targets end, connects to target node not to its gate.
  • part of - no label, has no arrow on targets end, connects to gate of target node.

Interaction with the Diagram

The diagram is read only.
Add a layout button to allow user to layout the diagram automatically (if supported by the library).
User should be able to manipulate the position of diagram nodes by dragging them.
User should be able to export an image from the diagram.

Navigation

The diagram should be accessible trough a link in the system editor.
In the behavioral diagram user should be able to navigate back to the system editor.

Users should be able to specify failure mode type

In System editor when editing failure modes of component as well as when creating failure modes for components the user should be able to specify a Failure Mode Type with two possible options:

  • Failure Mode
  • Failure Mode Cause

Client Requirements

  • When the user selects Failure Mode option, the original form of failure modes should be shown.
  • When the user selects Failure Mode Cause option, the form should reduced by removing the behavior type and the required failure modes fields. If the edited failure mode has specified values for child and required failure modes, the user should be notified that they will be removed from the edited failure mode. If the user accepts the change the application should remove child and required failure modes from the edited failure mode and set its behavior type to basic.

The user interface should look as shown in the screenshot below.
image

Server Requirements

  • model - Implement the Failure Mode Type in Failure Mode entity similar to Behavior Type.
  • FTA generation - do not generate fault events for Failure Modes with a Failure Mode Cause value for the Failure Mode Type property.

Fix generation of partial FMEA table from FTA

Fix the generation of FMEA table from a fault tree. The procedure processes each tree path, i.e. fault events from the leaf failure event (e.g. basic failure event) to root failure event in the FT. The procedure should first select the Function and then derive Component, Failure Mode and local, final and intermediate effects.

  • select Function - select function (F) in a function failure (FF) fault event closest to the path's leaf
  • select Component - select the component (C) of the selected function F
  • select Failure Mode - select the Failure Mode (FM) of the Fault Event which is a direct child of the FF Fault Event . If there is no child fault event or if the fault event is not a manifestation of a failure mode leave the failure mode column empty.
  • select Cause - select the FailureModeCause (FMC) is either the direct required FailureModeCause of the selected FM or the direct FailureModeCause impairing the selected F. Each possible cause FMC that can be selected should be used in a new FMEA row.
  • select Local Effect - the local effect (LE) should be a direct parent of the FF fault event and it should be a failure of a function which is different from function F and is in component C. If there is no such fault event leave the column empty.
  • select Final Effect (no changes in requirements) - select the final effect EF as the root fault event in the path
  • select Intermediate Effects - all fault events in the same order as events in the path between the LE and EF excluding both LE and EF. If LE is not selected/empty start from FF instead.

Finally make sure that the each generated row in the table is unique.

Limit where failure mode causes can be used

In the component form in the system editor, user should no be able to select or see failure mode causes in:

  • failure modes field in the functions section
  • parts in failure modes section

Check if changes in branch feature/function-parts are properly merged in main.

It seems that some commits in branch feature/function-parts are not merged in main.
Commits:
[Feature #17] Allow to add existing function to a component Matej Kulich 2/9/2022 4:25 PM d36b9de
[Feature #15 and #17] Add existing function to a component, fix bug with bad assign Matej Kulich 2/3/2022 1:31 PM 14d0f02
[Feature #11] Add required functions highlighting Matej Kulich 1/27/2022 7:01 PM df2b1ca
[ Feature #12 ] Add managing function parts Matej Kulich 1/25/2022 9:30 PM 4745802

Check if the changes in those commits are implemented in main.
If changes are not found in main, merge and resolve conflicts for the changes from those commits into main.
If changes are found in main: specify the commits in main where the changes are implemented.

Update the fault tree generation from required and impaired behaviors

Update the algorithm from issue #5. Given a function the algorithm transforms the tree of its required functions (Function.requiredFunctions) into a fault tree. The algorithm should be updated to handle changes in the behavioral model introduced in ticket fta-fmea/Normalize the Behavior Model #8

Implementation Notes:
Compared to the previous version of the algorithm functions can fail because of their parts. Here is a summary of all sources of fault events:

  • Function.failureModes - fault events which are manifestations of failure modes impairing the function
    • Label pattern for new fault events of this type - "$Function fails b/c of $FailureMode"
  • Function.requiredFunctions - fault events of the function's required functions
    • Label pattern for new fault events of this type - "$RequiredFunction fails"
  • Function.parts - fault events of the function's parts (different from required functions). When generating these type of fault events the Function.behaviorType should be taken into account, see below:
    • for OR functions generate AND fault events where the child fault events are the fault events of the child functions.
    • for AND functions generate OR fault events where the child fault events are the fault events of the child functions.
    • Label pattern for new fault events of this type - "$Function fails b/c its parts fail"

Compared to the previous version the new version of the algorithm should process failure mode parts. Generate fault events as follows:

  • OR failure modes into OR fault events where the child fault events are manifestations of the child failure modes
  • AND failure modes into AND fault events where the child fault events are manifestations of the child failure modes

The diagram below shows an example of the transformation. Note that the fault event labels follow the label patterns defined above.

convert-require-imapair-behavior-model-to-fault-tree

Refactor fta-fmea data - refactor 'hasComponent' relationship between system and component

Refactor the 'hasComponent 'relationship between System and component from
http://onto.fel.cvut.cz/ontologies/fta-fmea-application/hasComponent
to
http://onto.fel.cvut.cz/ontologies/fta-fmea-application/hasPartComponent

Provide update query to do this refactoring.
Apply refactoring to fta-fmea-demo repository after issue #53 is merged into main.
Apply refactoring to fta-fmea-cape repository after issue #53 is merged into avic.

User should be able to edit the Mitigation column in the FMEA table

Make the Mitigation column in the FMEA table editable.
User should be able to create, edit and delete mitigations on each row.
One table row has at most one mitigation and one mitigation is associated with at most one row.

The mitigation form should include the following fields:

  • title - one line text (use model Mitigation.name)
  • description - multiline text (use model Mitigation.description)
  • (C) failure mode: user can select the cause or failure mode of the same row as the edited mitigation (use model Mitigation.impairedBehaviors)

Support configuration to disable registration of new user

In some cases data of an organization cannot be public and thus we should disable registration of users in such case.

A/C:

  • there is a configuration for deployment with appopriate flag (e.g. disableRegister)
  • If enabled:
    • UI does not show link to register
    • backend does not have the REST endpoint to register
    • the register endpoint is allowed only for registered users with the ADMIN role.

In dashboard, systems with long names with no spaces will hide the controls of the system widget

To reproduce the issue:

  1. Open the dashboard page
  2. Create a system with a long name with no spaces, e.g. "POWER_SYSTEM_KM_Main AC power supply _supply AC from ENG's".
  3. If the problem does not occur refresh the page

Issue description:
The created system label moves the controls of the system widget. The user cannot access system widget actoins available under the three dots, i.e. delete and rename

Acceptance criteria

  • long names with no spaces won't hide the system widget controls
  • the name of the system is partially hidden the full label should be visible on mouse hover

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.

Users should be able to manage function parts while editing component functions in the system editor

Extend the form ComponentFunctionEdit (system-editor/component-form/function-form) to allow the user to specify whether the function is atomic or has parts (ATOMIC, or AND or OR) and if the function has parts to select function parts from a list of functions.

  • add a single choice component which will allow the user to specify whether the function is an "AND", "OR" or "ATOMIC" one.
    • label of field is "Function complexity"
    • default value is ATOMIC
    • if there are selected function parts and the user selects ATOMIC and submits the form open a dialog asking the user if they want to unselect all functions selected as parts or to abort the submit and change ATOMIC to AND or OR.
  • add a multi-select component which will allow the user to select one or more functions that represent the edited functions' parts.
    • component should be conditionally visible if the "Function complexity" field has the value "AND" or "OR"
    • Functions in the list should be rendered the same way as in the required function list, e.g. label of function (label of its component). Function entries shold be color coded, the same way as in the list for selecting required functions. Render function with gray color in the list if they contain the edited function in the transitive closure of the part-of relation.
    • The list should exclude the currently edited function

Bug adding required function in component form in system editor.

Some functions cannot be added as required function in the system editor. The server cannot parse the JsonLd sent by the client.

ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is cz.cvut.kbss.jsonld.exception.JsonLdDeserializationException: Encountered multiple values of property http://onto.fel.cvut.cz/ontologies/fta-fmea-application/hasComponent, which is mapped to a singular attribute private cz.cvut.kbss.analysis.model.Component cz.cvut.kbss.analysis.model.Behavior.component]

The bug can be reproduced in system "test 1" in fta-fmea-demo add function 4 as required to function 1 in component 1.

Users should be able to create failure modes when editing components in the system editor

Extend the form to edit components in the system editor. The form should allow to create one or more failure modes for the edited component. The user should be able to edit each failure mode by changing its name and specifying whether it is "atomic", "and or "or" behavior type and then allow to specify its parts. The user should be able to delete the failure mode from the list.

When editing a behavior's relation to other behaviors users should see if listed behaviors are indirectly related or not.

Description

In the component's behavior forms, in the system component form, the user can edit:

  1. required functions of a function
  2. parts of a function
  3. failure modes which impair a function
  4. required failure modes of a failure mode
  5. parts of a failure mode

In each of the mentioned edit use-case the user is presented a list with behaviors from which to choose. The user should be able to distinguish behaviors which are transitively related to the edited one and other behaviors in the list.

Acceptance Criteria:

Distinguish the following behaviors from other behaviors in the lists specified above

  1. the indirectly required functions of the edited function
  2. the indirect function parts of the edited function
  3. the failure modes which indirectly impair the edited function
  4. the indirectly required failure modes of the edited failure mode
  5. the indirect failure mode parts of the edited failure mode

Implementation Notes

  • in the backend implement a rest api method which for a given function retrieves all functions that transitively require the input function.
  • use the new backend rest api method to color code the list of functions. Functions which require the edited function transitively should be gray. Other functions remain black.

Update behavior lists on behavior update in the component editor form.

Behavior lists are not updated when a behavior is changed in the component editor. This is true for all lists:

  • functions' required functions

  • functions' parts - not sure but it is possible that it has the same error.

  • functions' failure modes

  • failure modes' parts

  • failure modes' required failure modes

Refactor Relationship Between System and its Components

  • Create a new property in the ontology representing relationship between system and its components: http://onto.fel.cvut.cz/ontologies/fta-fmea-application/hasPartComponent

  • Use the new property in the System model objects both on client and server side.

Refactor function model and its usage

Refactor function model on the client side so that it can be used to access components similar to the failure mode model.
Consider creating common behavior model containing common properties and relation which is then extended by the function and failure mode models, see also discussion at pullrequest#51.

Component's Failure Modes not listed in Component form in System Editor.

To reproduce the issue login in https://kbss.felk.cvut.cz/fta-fmea-avic/ and open system MAIN AC SUPPLY (https://kbss.felk.cvut.cz/fta-fmea-avic/system/instance881277938).

The issue can be observed for example in component ZDE1. The component is associated with failure mode F1_-fm but the failure mode is not visible in the component editor form. Here some more examples of the same issue ZDE2 and F3_-fm; AC_R_BUS and F4_2-fm; and AC_L_BUS and F2_2-fm.

Add CRUD on functions and its requirements

As a user, I want to add functions and its required functions.

Acceptance criteria:

  • CRUD for functions and their required functions is implemented
  • To search function, the user should see with function name its component name

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.