Skytechnology designs, develops and tests Firmware and Software based on multiple HW/SW platforms. We cooperate with Companies applying the workflows close to the main sector standards like EN 50128 (Transportation), ECSS (Space), RTCA/DO-178B (Avionic) IEC 62304 (Medical), ISO 26262 (Automotive). According to the sector and customer needs the applied project workflow follows the classic Water-Fall scheme or the Agile scheme if it needs to apply an iterative and incremental method of managing the design and build activities.
Software Life Cycle
The adopted SW lifecycle is organized by the following phases:
It is tailored according to the customer needs, the customer methodology and the sector standards. If the client has no internal standards, Skytechnology proposes the solution that best matches the functional, costing and timing constrains to achieve the project goals.
The company has applied in many projects the standards EN 50128 (Transportation), ECSS (Space), RTCA/DO-178B (Avionic) IEC 62304 (Medical), ISO 26262 (Automotive).
According to the sector and customer needs, the applied project workflow follows the classic Water-Fall scheme or the Agile scheme, if it needs to apply an iterative and incremental method of managing the design and build activities.
Tools for different developing phases:
- Project: DOORS
- Understand: STP
- Visual Paradigm: Bugzilla
The firmware activities involve the lower layers of embedded software systems, where real time aspects are the main hints. The hardware — both microprocessors and DSPs, — is strictly tied to our packages, including BSP, O.S. customization, middleware and specific small applications.
The operating system (VxWorks, Mqx, Psos, Linux R.T., OS20, etc.) may be present or not, sometimes a simple scheduler is supplied.
Languages ranges among C, sometimes Assembler routines, and communication protocols are very often involved like CAN/CANopen, Modbus, Profibus, Ethernet, TCP/IP, SIP and SNMP.
The software activities involve the upper layers of embedded systems, often using cross-compilationn techniques. Typically, we implements core applications, by using Graphical User Interface, Data Bases, Communication Stacks, application frameworks, etc. Typical Operating Systems, languages, framework used are summarized in the following table:
|VxWorks||C/ C++ /C#||Tornado|
Always we design our application at the first by functional architecture, followed by physical architecture, producing the related documentation. According to the project and the customer needs, we apply a structured or object approach (i.e. DeMarco/Jourdon, UML and Model Based Design). Often we need to analyze pre-existent and bad documented SW applications, in such a case we apply reverse engineering techniques and we use specialized tools like UNDERSTAND. Our projects born defining written requirements and test procedure, to be used for internal validation, and at the customer if requested analytical and formal acceptance.
Integration & testing
As a software system grows more complex, the need to test it at every stage of the development lifecycle grows equally. Static and dynamic testing techniques (unit and integration testing) has repeatedly been shown to be highly effective in finding defects early in the lifecycle, minimizing the cost implications of faults. We use a wide range of environment suites, tools and protocols, depending by the application type, rules and constraints that apply to the specific test or integration project.
We covered a wide range of experiences moving from the development and testing of industrial, safety-critical railway and airborne applications, dealing with severe standard constraints (i.e. Sil4 for Cenelec EN50128, Do178b) and tools (GCC – Linux, QAC, Cantata++, SVN, Lauterbach Trace32) to Networking (C on VxWorks) and UMTS for the Telco market sector (Omnitracker, Flexelint).