This document presents very concisely the processes involved in software development. Students and professionals intending to study software engineering can find this document useful. It is designed at basic level.
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
Software Development Process.pptx
1. Software Development Process Models
Software Engineering (SE-200)
Instructor: Abd Ullah Khan
abdullah@nbc.nust.edu.pk
2. The Software Process
• A process is a collection of activities, actions, and tasks that are
performed when some work product is to be created.
• An activity strives to achieve a broad objective (e.g.,
communication with stakeholders)
• An action (e.g., architectural design) encompasses a set of tasks
that produce a major work product (e.g., an architectural model)
• A task focuses on a small but well-defined objective (e.g.,
conducting a unit test) that produces a tangible outcome.
• A process is not a rigid prescription for how to build software.
• Rather, it is an adaptable approach that enables the software team to
pick and choose the appropriate set of work actions and tasks.
• The intent is always to deliver quality software on time to satisfy both
sponsors and users.
3. The Process Framework
• A process framework establishes the foundation for a complete software
engineering process by identifying a small number of framework activities
that apply to all software projects, regardless of their size or complexity.
• In addition, the process framework encompasses a set of umbrella activities
that are applicable across the entire software process.
• Note: Umbrella activities include software project tracking and control, risk
management, quality assurance, reusability management, etc.
4. 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.
5. 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.
6. 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.
Communication. Before any technical work can commence, 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.
Planning. Any complicated journey can be simplified if a map exists. A software project is a complicated journey, and the planning activity creates a “map” that helps guide the team as it makes the journey. The map—called a software project plan— defines the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and a work schedule.
Modeling. Whether you’re a landscaper, a bridge builder, an aeronautical engineer, a carpenter, or an architect, you work with models every day. You create a “sketch” of the thing so that you’ll understand the big picture—what it will look like architecturally, how the constituent parts fit together, and many other characteristics. If required, you refine the sketch into greater and greater detail in an effort to better understand the problem and how you’re going to solve it. A software engineer does the same thing by creating models to better understand software requirements and the design that will achieve those requirements.
Construction. What you design must be built. This activity combines code generation (either manual or automated) and the testing that is required to uncover errors in the code.
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 small, simple programs; the creation of Web applications; and for the engineering of large, complex computer-based systems. The details of the software process will be quite different in each case, but the framework activities remain the same.