Home » Software Process Models
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
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