|
Software Development Methodology
IndiaWebMdiaPro is a process centric Software programming
company from , INDIA. Our software engineering team follows a
standard Software Development Life Cycle (SDLC) process with 6
distinct phases during the execution of a project.
Project Management & Review Activities forms the outer layer for the
whole process for effective management control and successful
execution of the project.
Schematic of the proposed Process Flow for the System Design,
Development & Deployment of an enterprise grade software project is
given below. A modified version of Waterfall Model is followed for
the project.
On and Offshore software delivery model
IndiaWebMdiaPro employs an on and offshore development model
that focuses on seamless integration between on-site and offshore
development teams in order to achieve high quality deliverables on
time at cheaper rates taking advantage of our geographic location.
Projects are typically delivered by a global team with about 10 - 20
percent of the team members located onsite and the balance at our
offshore development center. The onsite team defines requirements,
reviews prototypes and manages scope changes. The offshore team
ensures quality execution at a low cost. This is a tightly coupled
model that allows our team members to closely participate with you
during the working day and provide inputs to the offshore center for
an overnight delivery.
The objective is to fully obtain the benefits of offshore
development such as :
●
High quality work at lower development cost,
●
24/7 development cycle leveraging the U.S.A - India time difference,
●
A flexible resource base that can be further strengthened anytime
Software Process Models
To solve real time complex business problems, a software engineer or
a team of engineers must incorporate a development strategy that
encompasses the process, methods, and tools layers. This strategy is
often referred to as a Software Process model.
A software Process model is chosen based on the nature of project
and application, the methods, and tools to be used, and the controls
and deliverables that required.
In following section, a variety of Software process models for
software engineering are listed. Each represents an attempt to bring
order to an inherently chaotic activity.
● Linear Sequential Model (old fashioned but
reasonable approach when
requirements are well understood)
● Prototyping Model (good first step when
customer has a legitimate need, but is
clueless about the details, developer needs to resist pressure to
extend a rough prototype into a production product)
● Rapid Application and Development (RAD) Model
(makes heavy use of reusable
software components with an extremely short development cycle)
● Incremental Model (delivers software in small
but usable pieces, each piece builds
on pieces already delivered)
Spiral Model (couples iterative nature of prototyping with the
controlled and
systematic aspects of the linear sequential model)
● Win-Win Spiral Model (eliciting software
requirements defined through negotiation
between customer and developer, where each party attempts to balance
technical and business constraints)
● Concurrent Development Model (similar to spiral
model often used in development
of client/server applications)
Component-Based Development (spiral model variation in which
applications are
built from prepackaged software components called classes)
● Formal Methods Model (rigorous mathematical
notation used to specify, design,
and verify computer-based systems)
Fourth Generation (4GT) Techniques (software tool is used to
generate the source code for a software system from a high level
specification representation)
Software development process
1. Software Requirements Analysis and Management
After the initial
step of team formation, we do a thorough needs analysis of customer
requirements including determining needs (elicitation), addressing
how those needs need to be addressed (triage) and documenting the
desired external behavior of the systems (specification)
●
Allocated Requirements Review
●
Managing Systems Requirements Allocated to Software Policy
2. Software Project Planning
Planning is a critical phase which involves creating high-level
architecture, delivery and deployment schedules for software
development, information and capacity architecture, and third-party
integration.
●
Software Development Plan
●
Software Estimates Procedures
●
Project Schedule
●
Software Life Cycle Definition
●
Software Planning Data
●
Software Project Activities and Commitments
●
Software Engineering Facilities and Support Tools Plan
●
Managing Systems Requirements
3. Software Project Tracking and Oversight
●
Revision of Software Development
●
Plan Peer Review Plans
●
Change Requests and Problem Reports Procedure
●
Formal Reviews of Selected Milestones
●
Project Tracking and Recording Procedures
4. Software Quality Assurance
●
Software Quality Assurance Plan
●
Policy for Implementation of SQA
●
Deviations in Software Activities and Software Work Products
Procedure
●
SQA Participation Procedure
●
SQA Reports
●
SQA Reviews Procedure
5. Software Configuration Management
●
SCM Activities Plan
●
SCM Policy
●
Changes to Baselines Procedure
●
Software Baseline Library Product Creation and Release Control
Procedure
●
Configuration Items/Units Status Review Procedure
●
Standard Software Configuration Management Reports
●
Baseline Audits Procedure
6. Testing
After the various components are developed, they are integrated and
rigorously tested as a complete solution. Application behavior is
compared with the initial specifications and any deviations are
identified and corrected.
●
Specification Testing
●
Functionality Testing
●
Integration Testing
●
Stress/Real-world Testing
7. Implementation
After the project is completed, it is deployed across an enterprise
by working closely with its internal IT team and training is
imparted to the end-users of the system.
●
Enterprise-wide Deployment
●
End-user Training
●
System/Helpdesk Training
●
Documentation Handover
8. Maintenance
Our maintenance phase covers system health maintenance including
database, application and network maintenance. Required application
feature enhancements are planned at this stage, and are developed
and executed as and when appropriate.
●
System Health Maintenance
●
Feature/Application Enhancements
|