SE Ch1
SE Ch1
❖ Framework activities:
➢ A generic process framework for software engineering encompasses five activities:
• 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.
• Modelling
➢ 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
➢ 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.
❖ Waterfall model:
➢ The waterfall model, sometimes called the classic life cycle, suggests a systematic, sequential approach
to software development that begins with customer specification of requirements and progresses through
planning, modelling, construction, and deployment, culminating in ongoing support of the completed
software.
➢ The waterfall model is the oldest paradigm for software engineering. However, over the past three
decades, criticism of this process model has caused even ardent supporters to question its efficiency.
Among the problems (Disadvantages) that are sometimes encountered when the waterfall model is
applied are:
1. Real projects rarely follow the sequential flow that the model proposes. Although the linear model can
accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the project team
proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall model requires this
and has difficulty accommodating the natural uncertainty that exists at the beginning of many projects.
3. The customer must have patience. A working version of the program(s) will not be available until late in
the project time span. A major blunder, if undetected until the working program is reviewed, can be
disastrous.
4. Linear nature leads to the “blocking” states in which some team members must wait for others to
complete dependent tasks.
❖ Incremental model:
➢ There are many situations in which initial software requirements are reasonably well defined, but the
overall scope of the development effort precludes a purely linear process. In addition, there may be a
compelling need to provide a limited set of software functionality to users quickly and then refine and
❖ Prototype model:
➢ Often, a customer defines a set of general objectives for software, but does not identify detailed
requirements for functions and features. In other cases, the developer may be unsure of the efficiency of