Selection of Software Development Lifecycle

Standard id Standard Clasification
ARM_SDLC_1 Project heads should define the SDLC model from either Waterfall, iterative or agile 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 Recommended
ARM_SDD_2 The project team must document the software design as per IEEE 1016 Recommended
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
ARM_COS_30 for coding standard, follow https://bcc.gov.bd/site/page/f64470aa-1f1d-406c-a7a9-54125efb2ed3/- Mandatory

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 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