Purpose and Scope
The ANM Software Development Methodology is used to set standards for programming and naming conventions and to convey to the programmer the objectives and purpose of the products.
The methodology is not intended to limit or restrict creativity, but to ensure readability and standardization of variables and notations.
Developments on other systems are not bound by these standards but they should be used as a base and should maintain the spirit of the development methodology.
The objectives of development at ANM are;
1 To ensure that the software products are platform independent unless a decision has been made by management to use a specific platform for a product or portion of a product.
2 To ensure that the software modules are application independent
3 To ensure that the software modules are customer, site independent
4 To ensure that the software modules and products are of high quality, easy to read, easy to understand and easy to maintain.
5 Reuse software modules or procedures whenever possible.
The software products are to be designed and developed so that they are platform independent. This means that all modules, if possible, can run on any operating system. Programmers will not, unless there is no other choice:
Programmers will develop software modules that are independent of other software modules. The software products are sold as a base unit plus modules. A module must be able to run by itself without having any links to other modules. Communications modules should be stand-alone and not contain any reference to other modules. A communication module should only address layer 3 of the OSI model and not contain any functionality of layers 4,5,6 or 7.
Customer, Project and Site Independence
No base source code should contain customer specific programming unless it has been determined that this customer will have a customized module. If the code requires execution control, the execution control will be handled by environment variables, table fields or configuration table's entries.
No hard-coded values are to be used in any module. If the code requires customer, project or site specific variables, these will be handled by environment variables, table fields or configuration tables entries.
Software Quality and Reusability
Programmers will write quality software. Code that is difficult to read, or that is not easy to change and maintain is highly discouraged. Programmers will check existing software to determine if a module or function exists for the processing they are implementing, and they will use these existing procedures if possible.
All executable modules, object modules, function/variable names and libraries will follow the naming conventions of the Development Standards. The project manager must approve an exception to this. Code style checker eclipse plugin will be used wherever possible.
All functions will be prototyped in order to determine incorrect function usage at compile time.
Function prototyping refers to a method of defining the number of arguments and the types of arguments for a function before the functions is called. This allows the compiler to know if the number of parameters and the type of parameters in the function call match the function.
A development team will consist of one or more team members. One of the team members will be appointed the team leader.
The development team is responsible for assuring that the project gets completed on time and within budget and satisfies all the requirements of the customer.
The team leader is responsible for maintaining the development binder (refer to the Design Methodology for a description of the development binder).
The team leader is responsible for find out the information and filling in the Customer Product and Module Cross-Reference List.
The team leader is responsible for making sure following the Post Installation Guidelines.
The team leader will be responsible for providing status reports to the project manager.