Gravity Vector can work on any project methodology with experience in agile and waterfall methodologies.
Project Phases


Software Development
Software Development Facts
Unfortunately, the software can be very fragile, and from that point of view, it is necessary to monitor all changes, updates, bugs, requirements, test cases, branches, etc. Automated tests are very important to catch tricky bugs.

Our goal is to mitigate all three requirements: cost, quality, and time.
Mistakes Are Expensive
Bug fix price
Graphs show costs vs bug date discovery. We can clearly see that discovering bugs in the project late or release can have a huge impact on the costs.
How Can We Help You?
SOFTWARE (Fixing Bugs Earlier Is Cheaper)
- Writing software to meet SIL – safety integration levels
- Improving bug handling and refining unit tests
- Proposing component selection to the satisfaction of hardware and software engineers
- By bridging your hardware and software teams, a lack of missing hardware details can have a big impact on a software engineer
- Software Design Assessment
- Designing a firmware architecture with UML and an automatically generated skeleton
- Suggesting technological solutions or techniques improve and automate your design process
- Defining and refining software architecture
- Accelerate the development of your product to get to market on time
- Introducing agile methodologies
- Make sure your software has no adverse effects on your hardware
HARDWARE (Minimize your hardware iterations)
- Modelling system components and documents
- Careful design of critical details
- Taking into account all physical aspects (temperature, currents, voltage, humidity, vibration, etc.)
- Using ESD safe environment
- Developing HIL Unit Tests for highly reliable products
- Simulating details specific to your hardware
- Writing test plans
- BUG tracking
- Minimize harmonics and EMC noise levels
- Improving power supply stability
- Make sure that your hardware does not have any adverse effects on the software
Quality Assurance
Stop Fragile
We guarantee to deliver you high-quality software which is not fragile. Strongly decoupled and modular.
Test-Driven Development
TDD, which is essential for developing robust software.
Requirements
Clear requirements are the definition of everything. We will define every piece of the project and help you if there are any doubts about it.
Our Services
- GREEN FIELD PROJECT. We have the capability to design and develop a product from an idea to realization
- Taking care of the old legacy software
- Implementing a specific middle layer software
How We Work
Our Target
- Customer satisfaction (we want to hear from you more than once)
- Finishing projects on time
- Delivering high quality “bug-less” products
How We Achieve It
- Paying attention to details
- Hard-working
- Innovative ideas
Why us?
- Clear communication at each stage
- Real estimation
- High availability
- We work agile and incremental, the progress of your product will be demonstrated
ELECTRONICS DESIGN Considerations
Some products are sharing a common interest and nonfunctional requirements to be handled with care during the whole implementation: meeting cost, quality, and time.
Designing electronics will pull attention to the following details no matter how complex the device is:
- Low power requirement (component selection)
We always think about quiescent current, leakage current - Power dissipation
We like to think about conversion efficiency, temperature ratings - EMC Environment
Parasite capacitance, Parasite inductance, Frequency response, Smart layout routing - U/I Maximum ratings
We always think about breakdown voltage, breakdown current (maximum and minimum U/I ratings) - Timings
We like to think about: Impulse response, RLC delays, input/output capacitance, safe operating area, clamping time, input and output resistance
SOFTWARE DESIGN Considerations
Designing software for embedded applications is always a challenge. Bad software will cause headaches sooner or later. But paying attention to modularity and testability will increase chances for high-quality design outputs.
- Modularity
Each software module is a unique ecosystem - Reusability
Perfect independent “cell”, each software module is unique and reusable - Testability
Each software module needs to have a unit test - Fault tolerance
Forcing fault through the unit test will force it to discover unique bugs - Performance
Software execution and optimization for critical tasks - Timing
A crucial factor for the low-level driver