|Software Development Process
1. Application Software Development Phases
A phased approach to implementation reduces project risk and promotes success, providing the opportunity for early success and flexibility to incorporate new technology at low risk prior to final system delivery.
Large project implementations should be delivered and tested in multiple delivery phases. System delivery is generally quicker than other project activities (data base design, application development, and user training), and phases of system delivery can be completed without extending project time lines.
2. Software Development Approach & Methodology
Our rigorous approach includes phase wise understanding, each being an independent sub-project in itself, with its own target dates, tasks and milestones.
This information-intensive phase includes a Requirements Definition Document which describes the required functionality, environment, and interfaces for the project. It is achieved by conducting interviews with management of the company, end users, technical experts etc. These documents outline exactly how to develop and deliver the project. Any suggestions during the SRS are discussed in details with technical, financial and functional implications occurring as per the requirement.
The activity can be segregated into:
A detailed feasibility report including risk analysis is arranged taking into consideration technical and financial viability of the client's requirement.
The activity involves rigorous steps to attain high quality standards such as:
- Identify customer's need.
- Evaluate feasibility report.
- Financial and technical analysis
- Resource availability and constraints
- Cost control measures and viability
- A feasibility report is submitted to client for approval
- A highly qualified team of IT professional is set up to understand the requirement.
- Mock-ups are prepared and interviews are conducted with the client to enable them to understand the basic aspect of proposal.
- Check-list is prepared on the basis of interviews conducted and further information is gathered from the client. A gap analysis
is prepared to evaluate and understand the requirement.
- Final SRS is prepared and submitted to Client for approval.
Analysis and Design Phase
Once the SRS freezes, a detailed Functional Specifications, which defines the system behavior is submitted. On acceptance of the Functional Specifications, a detailed document containing design specifications is prepared for development, describing the internal architecture of the system.
A High level System Design will include:
A Low level System Design will include:
- All the components, their purpose and relationships will be identified. These relationships will be represented graphically for enhancing clarity.
- Interfaces between components will be designed.
- Preparing a detailed DFD (Data Flow Diagram).
- Preparing a Data Structure Design and structure charts
- Review Design with SRS
- Interfaces between components will be designed.
- To reduce the gap between system's functionality and user requirements, prototyping sessions would be held.
- The group reviews would be conducted to ensure commonality in understanding amongst the development team members and thus minimize the chance of interface inconsistencies being present in the end product.
- Since the design would already have been ratified, users would not have to spend time in understanding the design. This would aid them in reviewing the document and giving feedback and help accepting the System Design Document (SDD).
- Identifying each module, its components and units
- Physical design of data structure
- Workflow of each functions in the module
- Prepare data dictionary
- Detailed algorithm for processing
- Defining naming conventions and standard compliance is also made at this phase.
- Review functionality with SRS & HLD.
Using coding standards, our programmers work exclusively from the Functional and Design Specifications. Applying state-of-the-art tools and technologies, our programmers develop applications quickly, while maintaining top-quality standards.
The coding is reviewed timely & again with functionality & requirement specification.
This is achieved through tractability matrix.
System Test Phase
Quality Assurance specialists begin work from the first day of the project: Functional specifications must be satisfactory and achievable with design specifications meeting strict reliability and user convenience standards. A detailed Test Plan is then developed and methodically followed throughout the coding phase, including independent module inspections as well as complete system tests.
Three steps of test is carried out namely, unit /module test, integrated test & Acceptance test to attain quality of the software.
3. Quality Control Processes
Software quality is conformance to explicitly state functional and performance requirements, explicitly documented development standards and implicit characteristics that are expected of all professionally developed software. Quality software is reliable, efficient and is easy to learn and operate. The software should be easy to maintain and should include tasks for correcting faults in the original design and make improvements to adapt the functionality of the software to changing environments. Software quality is also determined by whether the software product is portable, reusable and also whether it can be expanded.
Security basically means Legitimate use, Confidentiality, Data integrity and, Adaptability of data and software. Legitimate use means proper authentication of users. It also specifies which user has access over which data and can execute which programs. Confidentiality implies that a system will provide appropriate services, such as data encryption, to ensure that only authorized personnel can see sensitive data. Data Integrity defines the ways for files or databases hosted on the operating system to recover from system, application and network faults and failures
Most of the Operating Systems (OS) come with many security features. The security model of the OS allows user-level authentication however access level for the data can be specified.
Windows NT / Windows 2000 Server has a layered security model consisting of the Security subsystem and its associated components. The components are the Local Security Authority (LSA), the Security Reference Monitor (SRM), Security Accounts Manager (SAM) and the discretionary access controls. All of these help the Win NT OS to provide the necessary security features.
On the other hand Windows 95/98 operating systems do not provide the security features that are provided in Windows NT. Only application level security can be provided.
Access to system resources, such as files, directories and folders, printers, network shares, and system services, can be controlled either through GUI-based system tools or through the command line.
Application level security can be provided by user-name authentication for the whole application or for different levels of the application.
Users can be restricted to access or view even specific data layers/modules in the application.
Restricted parts of the project as specified by the user can be developed at the user site, to ensure that confidential data does not get distributed.