UML Notation vs Software Process
UML is not a method, methodology or software development process. Thus, UML is simply a language, a notation that does not tell you how to develop software. When the UML was developed, the team made a clear decision to remove any process based issues from the language. This was because processes are largely based in the context or nature of the project. What works for company A, might be a disaster for company B. For example, A defence company requires much more documentation, quality and testing than an e-commerce company. So the UML is a generic, broad language enabling the key aspects of a software development to be captured on specification.
What is Software Process?
Software proess is a structured set of activities required to develop a software system. There are many different software processes but all involve:
- Specification – defining what the system should do;
- Design and implementation – defining the organization of the system and implementing the system;
- Validation – checking that it does what the customer wants;
- Evolution – changing the system in response to changing customer needs.
In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle. Some development process may include the predefined of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Most modern development processes can be vaguely described as agile approach such as Scrum. The most popular development processes include waterfall, and spiral development which will be elaborated in the following:
The Waterfall Model
The waterfall model is believed to have been the first process model which was introduced and widely followed in software engineering. The innovation was that the first time software engineering was divided into separate phases. In the early 1970's there was no awareness of splitting up software development into different phases. Programs were very small, the requirements only a few.
The Spiral Model
The Spiral Model is the most flexible and agile of all traditional software process models. The process begins at the centre position. From there it moves clockwise in traversals. Each traversal of the spiral usually results in a deliverable. It is not clearly defined what this deliverable is. This changes from traversal to traversal.