Software process models
A structured set of activities required to develop a software system,
• Specification: what the system should do and its developments constraints.
• Design: production of software systems.
• Validation: checking the software to make sure it is what the customer wants.
• Evolution: changing the system in response to changing demand.
A software process model is an abstract representation of process. It presents a description of a process from some particular perspective. [Source: (Slidesharenet, 2016)]
Waterfall model
• It is the classical model of software engineering.
• This model emphasize planning in early stages, it ensures design flaws before they develop.
• Consist of several non-overlapping stages.
• Begins with
…show more content…
Customers, developers and testers constantly interact with each other.
• Working software is delivered frequently (weeks rather than months).
• Face-to-face conversation is the best form of communication.
• Close, daily cooperation between business people and developers.
• Continuous attention to technical excellence and good design.
Disadvantages of Agile model:
• In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
• There is lack of emphasis on necessary designing and documentation.
• The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
• Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.
When to use Agile model:
• When new changes are needed to be implemented. The freedom agile gives to change is very important. New changes can be implemented at very little cost because of the frequency of new increments that are
…show more content…
• Audit trail for every update on the database. This is where error monitoring and logging tools can be useful. [Source: (Airbrakeio, 2013)]
Non-Functional Specifications
• Extensibility of the system – will current system easily allow new enhancements or features with the next rollout? This is critical for any application that you’ll be adding new features and updating often.
• Has the current or future capacity been analyzed for database requirements? Will the current build plan result in capacity issues shortly after you finish building?
• Performance and response time – Has the expected response time been determined?
• Resource Constraints – Are there constraints that need to be taken into consideration in this phase? Common ones include disk space, bandwidth, etc. [Source: (Airbrakeio, 2013)]
Coding
This phase is the actual coding and unit testing of the process by the development team. After each stage, the developer may demonstrate the work accomplished to the Business Analysts and tweaks and enhancements may be required. It’s important in this phase for developers to be open-minded and flexible if any changes are introduced. This is normally the longest phase of the SDLC. The finished product here is input to the Testing phase. [Source: (Airbrakeio,