Software process means a structured set of activities required to develop a software system.
There are many different software processes but all involves following 4 steps.
A software process model is an abstract representation of a process.
It presents a description of a process from some particular perspective.
In practice, most practical processes include elements of both plan-driven and agile approaches.
There are no right or wrong software processes.
Real software processes are inter-leaved sequences of technical, collaborative and managerial activities with the overall goals of specifying, designing, implementing and testing a software system.
The four basic process activities of specifiation, design and implementation, validation and evolution are organized differently in different development processes.
For example, in the waterfall model, they are organized in sequence, whereas in incremental development, they are interleaved.
The process of establishing what services are required and the constraints on the system's operation and development.
The process of converting the system specification into an executable system.
The activities of design and implementation are closely related and may be inter-leaved.
Design a software structure that realies the specification.
Translate this structure into an executable system.
This process involves checking and reviewing processes and system testing.
System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.
Software testing is the most commonly used V&V(verification and validation) activity.
Verification and validation is intended to show that a system conforms to its specification and meets the requirements of the system customer.
Software is inherently flexible and can change.
As requirements change through changing business circumstances, the software that supports the bussiness must also evolve and change.
Although there has been a demarcation between development and evolution, this is increasingly irrelevant as fewer and fewer systems are completely new.
In waterfall model, in principle, a phase has to be complete before moving onto the next phase.
Each phase produces outputs such as documents which will be used as inputs for next phase.
But there is problem of waterfall model.
In first, Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.
Therefore, this model is only appropriate when the requirements are well-understood and changes wil be fairly limited during the design process.
But few bussiness systems have stable requirements.
So the waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work.
Based on software reuse where systems are integrated from existing components or applicaiton systems.
Hey Kang! Your breakdown of SE Software Process Models is spot-on. Understanding these models is like having a roadmap for success in software development. If you're delving deeper into the process, Cleveroad's Discovery Phase (https://www.cleveroad.com/services/discovery-phase-process/) could be a game-changer for refining and customizing your approach.