Skip to content

Characteristics of BFE Quality

epsi1on edited this page Apr 10, 2022 · 2 revisions

Based on information from levelup.gitconnected.com

Characteristics of Quality for BriefFiniteElement.NET library:

Correctness

Correctness is important for good software. There shouldn’t be faults with specification, design or implementation.

First version of BFE is designed as a very simple library. only frame element, only nodal load and only one sparse solver. Then other features are added, so the basement is designed for a simple library, but then the library got complicated.

Usability

Users should be able to learn and use a system easily.

This library can be used from other .NET programming languages. So for using this library you need a .NET IDE,

About learn there are three major resources:

Overall Score (usage simplicity): 5 out of 10

Overall Score (learn simplicity): 8 out of 10

Efficiency

The less resource a piece of software uses, the better. Processor, memory and disk space usage should be minimized.

This library is very efficient. overall size of .dll file is less than 250KB, also for most resource consuming task, which is solving linear equation system, it uses advanced and state of the art methods from CSparse.NET library. Also using other libraries, like MKL and leveraging CUDA is under development.

Overall Score: 8 out of 10

Reliability

A system that can perform the required functions stably is important. Failures should be as rare as possible.

The base system is highly reliable, but there are some features who are not fully reliable, MPC elements is one of them. Other features are reliable.

Integrity

Security should be taken into account. Our software should let attackers access unauthorized resources. Also, data validation is important so that bad data can’t be saved into the system.

There is nothing with security in this library

Adaptability

A system that can be used without modification for different situations it’s good.

It is all .NET managed code, also targets netstandard2 and dotnet 4.5 up. and only use BCL library and one external library (CSparse.NET), so it must be considered as adoptable i think

Accuracy

The accuracy of its outputs is good. This measures if the software outputs the right results for users.

The output is extensive. nodal displacements, element's internal forces etc. are easily available.

Robustness

If a system is still working after getting invalid inputs and stressful environmental conditions, then it’s good for our system.

well the library is

Maintainability

The ease in which an existing system can be changed is important. The easier that we can make changes, the better.

this is open source but you need to understand relation between classes in order to develop new sections.

Portability

A system that operates in different environments from which it’s originally designed makes it good.

Fully portable, this is only 2-3 dll files which run on dotnet framework. so anywhere that .net runs, this library can be used.

Reusability

The more reusable parts that a piece of software has, the better. Using reusable parts means that we don’t have to reuse them from scratch.

It is only usable for static and linear analysis for now

Readability

Easy to read code is easy to change code. If we understand them faster, then we can make changes faster and in a less error-prone way.

Some parts of code is complicated code (for example EulerBernoullyBeamHelper) , some parts is clean code. for more information search for code quality meter.

Testability

Making our software system testable is critical. If our code is easy to write unit tests for, then that’s good.

mmmm.

Understandability

The ability for us to understand our system in a global view or at the detailed code level is important. Easier to understand systems are more coherent.

Since it is object oriented, then user who are familiar with FEM do understand it very well. Other users should find a prior knowledge about finite element