Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objectives of porting A porting project has one for combination of following objective:
For example:
In case the current system under port does not have sufficient documentation, we would start
the porting activity with preparation of code flow diagram, interface diagram and hardware and
software integration documents. 3P framework for porting We follow 3P strategy (three
phases) with distinct objective at every phase:
2. Implementation phase
Understanding the source system This includes studying the original design
documentation or user documentation to know about the s/w functionality and
behavior in details. If the supporting documents are not available, knowledge transfer
from customer is expected.
Deciding Target Development Tools Deciding upon the suitable target development
tools can be a critical step for simplifying the task of porting. These are finalized with
mutual discussions with customer.
Deciding About Porting Strategies Porting strategy includes identification of portable
and non-portable code. Non-portable architectural differences include moving among 8-
, 16-, and 32-bit architectures; support for different controllers and peripherals etc
Testing strategy Before starting the port, we determine what test cases and procedures
are in place or need to be developed. Possibility to apply the test vectors and measure
the results on both the source and the destination systems for comparison are also
ensured.
Implementation phase:
The implementation strategy varies based on the porting objective. The strategy followed here
is “A step at a time” that is to get the basic main framework of the software stack, with bare
minimum functionalities, on the target platform, at the earliest. A typical work-flow for
migration to new processor architecture i
Get the OS up and running on the target hardware.
Port the Hardware and operating system abstraction layer
Port all required component driver, protocol stacks etc
Port the application software module by module
After a functional port is ready, optimize the software modules
Do a system validation against predefined system vectors
Complete the process by updating relevant documentation
Automated testing - Code coverage, memory leak detection, performance profiling and
UML tracing
Unit testing – Module level testing to validate individual units of code
Functional testing – Validation against functional requirements
System testing - Verification of total software system for all of its functional, quality
attribute and operational requirements