
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.
Definition Phase 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:
Feasibility Report 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
- SRS Preparation
- 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:
- 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.
A Low level System Design will
include:
- 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.
Development Phase 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.
4. Security 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. |