Selection of Software Development Lifecycle

Standard id Standard Clasification
ARM_SDLC_1 Project heads should define the SDLC model from either Waterfall or iterative Mandatory
ARM_SDLC_2 Selection and use of one application development methodology for the entire duration of the project Mandatory
ARM_SDLC_3 To change the selected methodology, a proper change request procedure should be followed Mandatory
ARM_SDLC_4 Follow ISO/IEC/IEEE 24765 standard for systems and software engineering Recommended
ARM_SDLC_5 Follow IEEE standard 12207 for software life cycle processes Recommended
ARM_SDLC_6 Follow IEEE standard 1517 to reuse processes Recommended

Requirement elicitation

Standard id Standard Clasification
ARM_REQ_1 The project team must gather business and system requirements Mandatory
ARM_REQ_2 The project team must establish and document business requirements Mandatory
ARM_REQ_3 A requirement should be traceable back-ward to requirements and the stakeholders that motivated it Mandatory
ARM_REQ_4 On successful completion a sign-off must be obtained for requirements and design document Mandatory

Software design

Standard id Standard Clasification
ARM_SDD_1 Project team must follow IEEE standard 1069 for Information technology - system design Mandatory
ARM_SDD_2 The project team must document the software design as per IEEE 1016 Mandatory
ARM_SDD_3 Follow ISO/IEC 42010 for architecture description Recommended
ARM_SDD_4 Project team should use notations for static and dynamic views Recommended
ARM_SDD_5 On successful completion a sign-off must be obtained for requirements and design document Mandatory

Coding standards

Standard id Standard Clasification
ARM_COS_1 Select the programming language appropriately to meet the documented requirements of the system Mandatory
ARM_COS_2 Indent code for better readability Mandatory
ARM_COS_3 Establish a maximum line length for comments and code to avoid horizontal scrolling of editor window Mandatory
ARM_COS_4 Use space after each comma, operators, values and arguments Mandatory
ARM_COS_5 Break large, complex sections of code into smaller comprehensible modules/ functions Recommended
ARM_COS_6 Arrange and separate source code between files Recommended
ARM_COS_7 Choose and stick to naming convention Recommended
ARM_COS_8 Avoid elusive names that are open to subjective interpretation Recommended
ARM_COS_9 Do not include class names in the name of class properties Recommended
ARM_COS_10 Use the verb-noun method for naming routines Recommended
ARM_COS_11 Append computation qualifiers (Avg, Sum, Min, Max, Index) to the end of a variable name where appropriate Recommended
ARM_COS_12 Use customary opposite pairs in variable names Recommended
ARM_COS_13 use mixed-case formatting to simplify reading Recommended
ARM_COS_14 Boolean variable names should contain Is which implies Yes/No or True/False values Recommended
ARM_COS_15 Avoid using terms such as Flag when naming status variables, which differ from Boolean variables in that they may have more than two possible values Recommended
ARM_COS_16 Even for a short-lived variable that may appear in only a few lines of code, still use a meaningful name. Use single-letter variable names, such as i, or j, for short-loop indexes only. Recommended
ARM_COS_17 Develop a list of standard prefixes for the project to help developers consistently name variables Recommended
ARM_COS_18 For variable names, include notation that indicates the scope of the variable Recommended
ARM_COS_19 Constants should be all uppercase with underscores between words Recommended
ARM_COS_20 Wrap built-in functions and third-party library functions with your own wrapper functions Recommended
ARM_COS_21 Report error message and recover or fail gracefully Recommended
ARM_COS_22 Provide useful error messages Recommended
ARM_COS_23 When modifying code, always keep the commenting around it up to date Recommended
ARM_COS_24 At the beginning of every routine, it is helpful to provide standard, boilerplate comments, indicating the routine's purpose, assumptions, and limitations Recommended
ARM_COS_25 Avoid adding comments at the end of a line of code Recommended
ARM_COS_26 To conserve resources, be selective in the choice of data type to ensure the size of a variable is not excessively large. Recommended
ARM_COS_27 Keep the scope of variables as small as possible to avoid confusion and to ensure maintainability Recommended
ARM_COS_28 When writing classes, avoid the use of public variables. Instead, use procedures to provide a layer of encapsulation and also to allow an opportunity to validate value changes. Recommended
ARM_COS_29 Do not open data connections using a specific user's credentials. Connections that have been opened using such credentials cannot be pooled and reused, thus losing the benefits of connection pooling. Recommended

Testing standards

Standard id Standard Clasification
ARM_TST_1 Follow ISO/IEC/IEEE standard 29119 for software testing Mandatory
ARM_TST_2 Follow ISO/IEC standard 15288 and 12207 for system engineering standards include process for verification and validation Recommended
ARM_TST_3 Follow IEEE 1008, BS 7925 standard for testing Recommended
ARM_TST_4 Follow IEEE 829, 1028 for software review techniques Recommended

Software maintenance

Standard id Standard Clasification
ARM_SOM_1 Follow ISO/IEC standard 14764 for software maintenance Mandatory
ARM_SOM_2 Follow IEEE standard 1219 and 14764 for process of software maintenance Mandatory

Website guidelines

Standard id Standard Clasification
WEB.DES.001 Website should be registered under 'gov.bd' domain Mandatory
WEB.DES.002 The link to other websites and portal should open in a new tab or a new window Mandatory
WEB.DES.003 Content should be free from spelling and grammatical errors Mandatory
WEB.DES.004 The content should not be discriminative/ offensive Mandatory
WEB.DES.005 A policy should be prevalent in department for review of content to be published on website Mandatory
WEB.DES.006 The website should provide option for content translated in atleast English language Mandatory