-
Notifications
You must be signed in to change notification settings - Fork 58
Characteristics of BFE Quality
Based on information from levelup.gitconnected.com
Characteristics of Quality for BriefFiniteElement.NET library:
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.
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:
- Documentation: available from bfenet.readthedocs.io
- Examples: Some available from here: bfenet.readthedocs.io examples, another one in codeproject.com (link) and another one
- Some examples are available in Validation Section
- Free Support: You can use Issues section in github and discussion section in github
- Payed Support: get premium support for a very small payment, contact bfePaid@gmx.com
Overall Score (usage simplicity): 5 out of 10
Overall Score (learn simplicity): 8 out of 10
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
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.
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
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
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.
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
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.
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.
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
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.
Making our software system testable is critical. If our code is easy to write unit tests for, then that’s good.
mmmm.
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