| Software
Development methodology
AWM 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 AWM 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 ManagementAfter 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
Software
Following tools are
being used:
- Project Management - Microsoft
Projects
- UML design - Rational Rose, Clear
case
- Case tools - Visio, Developer
2000, Visual Modeler, Erwin
- Testing: Win Runner, Rational
Suite
|