Lec 4 Software Development Process
Lec 4 Software Development Process
• Note: Umbrella activities include software project tracking and control, risk
management, quality assurance, reusability management, etc.
The Process Framework
• A generic process framework for software engineering encompasses five
activities:
1. Communication. Before any technical work can start, it is critically important to
communicate and collaborate with the customer (and other stakeholders).
• The intent is to understand stakeholders’ objectives for the project and to gather requirements
that help define software features and functions.
2. Planning. It defines the technical tasks to be conducted, the likely risks, the required
resources, the work products to be produced, and a work schedule.
3. Modeling. In modeling, we create a “sketch” of the thing to understand what it will look
like architecturally, how the parts fit together, etc.
• A software engineer does the same thing by creating models to better understand software
requirements and the design that will achieve those requirements.
The Process Framework
4. Construction. This activity combines code generation and the testing that is required
to uncover errors in the code.
5. Deployment. The software (as a complete entity or as a partially completed
increment) is delivered to the customer, who evaluates the delivered product and
provides feedback based on the evaluation.
• These five generic framework activities can be used during the development
of any software.
• The details of the software process will be quite different in each case, but the
framework activities remain the same.
Process Adaptation
• The software engineering process is not a rigid prescription that must be
followed strictly by a software team.
• Rather, it should be agile and adaptable (to the problem, to the project, to
the team, and to the organizational culture).
• Therefore, a process adopted for one project might be significantly different
from a process adopted for another project.
• Among the differences are:
• Overall flow of activities, actions, and tasks
• Manner in which quality assurance activities are applied
• Degree to which the customer and other stakeholders are involved with the project
• Level of autonomy given to the software team, etc.
Thanks
Let’s stop contaminating the environment and leave a better world for our generations.