Topic Title: Software Engineering Specific Objectives

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

I0065

TOPIC TITLE: SOFTWARE ENGINEERING

SPECIFIC OBJECTIVES:

At the end of the topic session, the students should be able to:

1. define software engineering,


2. identify the processes, methods, and tools in software
engineering,
3. discuss the different software engineering paradigms.

MATERIALS/EQUIPMENT:

o Computer with speakers


o LCD projector
o File/s (02 Software Engineering)
• 02 LCD Slides 1
• 02 OHP Slides 1
• 02 LCD Slide Handout 1
• 02 OHP Slide Handout 1
o Software requirements
• MS PowerPoint

TOPIC PREPARATION:

o Prepare the student’s handout (3 copies) needed for the topic


presentation and have it photocopied.
o Prepare the computer unit for slide presentation.
o Prepare additional examples as supplementary materials on
discussing the Software Engineering.

PRESENTATION OVERVIEW:

A. Introduction 5 min
B. Instructional Input
Software Engineering 40 min
a. Define software engineering
b. Identify and explain software engineering layers
c. Explain software engineering paradigms
d. Discuss waterfall model
e. Explain prototyping model
f. Discuss spiral model
g. Explain Fourth Generation techniques
C. Generalization 10 min
D. Homework 5 min
Total duration 60 min

Software Engineering *Property of STI


Page 1 of 11
I0065

TOPIC PRESENTATION:

A. Introduction

1. Start off the session with a brief review of the previous topic. You
may call on students to define terms that was taught during the
lecture.

2. Distribute the student’s handouts and proceed with the lecture.

B. Instructional Input

Software Engineering

Slide 1 1. Show Slide 1 of 02 LCD Slides 1. Present the topic coverage to the
class.

Slide 2 2. Present Slide 2 and call on students to read the slide in front of the
class. Then, discuss the definitions of software engineering as
mentioned in the slide.

According to Fritz Bauer, software engineering is the


establishment and use of sound engineering principles in
order to obtain economically software that is reliable and
works efficiently on real machines.

A definition developed by IEEE states that software


engineering is the application of a systematic, disciplined,
quantifiable approach to the development, operation, and
maintenance of software – that is, the application of
engineering to software.

Slide 3 3. Show Slide 3. Explain software engineering layers.

Figure 2.1 Software Engineering Layer

Software Engineering *Property of STI


Page 2 of 11
I0065

Software engineering is a layered technology (see Figure


2.1). Any engineering approach (including software
engineering) must rest on an organizational commitment to
quality. Total quality management and similar philosophies
promote a continuous process improvement culture, and it
is this culture that ultimately leads to the development of
increasingly more mature approaches to software
engineering. The foundation that supports software
engineering is a focus on quality.

The foundation of software engineering is the process layer.


Software engineering process serves as the glue that holds
the technology layers together and enables rational and
timely development of computer software. The key process
areas form the basis for management control of software
projects and establish the context in which technical
methods are applied, work products (models, documents,
data, reports, forms, etc.) are produced, milestones are
established, quality is ensured, and change is properly
managed.

Software engineering methods provide the technical “how


to’s” for building software. Methods cover a broad array of
tasks that include requirements analysis, design, program
construction, testing, and maintenance. Software
engineering methods rely on a set of basic principles that
govern each area of the technology and include modeling
activities and other descriptive techniques.

Software engineering tools provide automated or semi-


automated support for the processes and methods. When
tools are integrated so that information created by one tool
can be used by another, a system for the support of
software development, called computer-aided software
engineering (CASE), is established.

Software Engineering Paradigm

1. To solve actual problems in an industry setting, a software engineer


or a team of engineers must incorporate a development strategy
that include the process, methods, and tools layers. This strategy is
referred to as a process model or a software engineering paradigm.

A process model for software engineering is chosen based


on the nature of the project and application, the methods
and tools to be used, and the controls and deliverables that
are required.

Software Engineering *Property of STI


Page 3 of 11
I0065

2. Ask the students if they know any software engineering paradigms,


Slide 4 or have used any of them. Then using Slides 4 -5, introduced the
first paradigm – Classic Life Cycle Model/Waterfall Model/Linear
Sequential Model as illustrated in the slide.

Figure 2.2 Classic Life Cycle/Waterfall Model

Slide 5
Figure 2.2 illustrates the linear sequential model for
software engineering, which is commonly referred to as the
“classic life cycle” or the “waterfall model”. This model
suggests a systematic, sequential approach to software
development that begins at the system level and progresses
through analysis, design, coding, testing, and maintenance.
It includes the following activities:

• System/information engineering and modeling –


Work begins by establishing requirements for all
system elements and then allocating some subset
of these requirements to software. System
engineering and analysis includes requirements
gathering at the system level with a small amount
of top-level analysis and design.

• Software requirements analysis – To understand the


nature of the program(s) to be built, the software
engineer must understand the information domain
for the software, as well as required function,
behavior, performance, and interfacing.

• Design – This activity focuses on the four distinct


attributes of a program: data structure, software
architecture, interface representations, and
procedural detail. The design process translates
requirements into a representation of the software

Software Engineering *Property of STI


Page 4 of 11
I0065

that can be assessed for quality before coding


begins.

• Code generation – This activity translates the design


into a machine readable form.

• Testing – This process focuses on the logical


internals of the software, assuring that all
statements have been tested, and on the functional
externals – conducting tests to discover errors and
ensure that defined input will produce actual results
that agree with required results.

• Maintenance – Changes will occur because errors


have been encountered, because the software must
be adapted to accommodate changes in its external
environment or because the customer requires
functional or performance enhancements.

The following are the problems encountered when linear


sequential model is applied:

1. Real projects rarely follow the sequential flow that


the model proposes.

2. It is often difficult for the customer to state all


requirements explicitly.

3. The customer must have patience.

4. Developers are often delayed unnecessarily.

Slide 6 3. Show Slides 6-7. Explain Prototyping Model.

Figure 2.3 Prototyping Model

A customer often defines a set of general objectives for


software, but does not identify detailed input, processing,
or output requirements. In other cases, the developer may

Software Engineering *Property of STI


Page 5 of 11
I0065

be unsure of the efficiency of an algorithm, the adaptability


of an operating system, or the form that human-machine
interaction should take.

Figure 2.3 the prototyping paradigm begins with


requirements gathering. The developer and customer meet
and define the overall objectives for the software, identify
whatever requirements are known, and outline areas where
further definition is mandatory. Then, a “quick design”
occurs, which focuses on representation of those aspects of
the software that will be visible to the customer/user (e.g.,
input approaches and output formats). This phase leads to
the construction of a prototype. The prototype is evaluated
by the customer/user and is used to refine requirements for
the software to be developed. Iteration occurs as the
prototype is tuned to satisfy the needs of the customer, at
the same time enabling the developer to better understand
what needs to be done.

Ideally, the prototype serves as a mechanism for identifying


software requirements. If a working prototype is build, the
developer attempts to make use of existing program
fragments or applies tools (e.g., report generators, window
managers, etc.) enabling working programs to be generated
quickly.

Slide 7 On the other hand, prototyping can also be difficult for the
following reasons:

1. The customer sees what appears to be a working


version of the software, unaware that the prototype
is held together “with chewing gum and baling
wire,” unaware that in the rush to get it working
overall software quality is not considered or long-
term maintainability. When informed that the
product must be rebuilt so that high levels of quality
can be maintained, the customer cries foul and
demands modifications or changes be applied to
make the prototype a working product.

2. The developer often makes implementation


compromises in order to get prototype working
quickly. An inappropriate operating system or
programming language may be used simply because
it is available and known; an inefficient algorithm
may be implemented simply to demonstrate
capability. After a time, the developer may become
familiar with these choices and forget all the
reasons why they were inappropriate.

Software Engineering *Property of STI


Page 6 of 11
I0065

4. Show Slides 8-10. Discuss Spiral Model.


Slide 8
The spiral model, originally proposed by Boehm, is an
evolutionary software process model that combines the
iterative nature of prototyping with the controlled and
systematic aspects of the waterfall model. In the spiral
model, software is developed in a series of incremental
releases.

The spiral model is divided into a number of framework


activities, also called task regions. Figure 2.4 illustrates a
spiral model containing six task regions:

Figure 2.4 Spiral Model

Slide 9 • customer communication — tasks required to


establish effective communication between
developer and customer

• planning — tasks required to define resources,


timelines, and other project related information

• risk analysis — tasks required to assess both


technical and management risks

• engineering — tasks required to build one or more


representation of the application

• construction and release — tasks required to


construct, test, install and provide user support
(e.g., documentation and training)

• customer evaluation — tasks required to obtain


customer feedback based on evaluation of the
software representation created during the
engineering stage and implemented during the
installation stage.

Software Engineering *Property of STI


Page 7 of 11
I0065

The spiral model can be adapted to apply throughout the


life of the computer software. A project entry point axis is
defined in the figure 2.5. Each cube placed along the axis
represents the starting point for a different type of project.
A concept development project starts at the core of the
spiral and will continue until concept development is
complete. If the concept is to be developed into an actual
product, the process proceeds through the next cube (new
product development project entry point) and a new
development project is initiated.

Slide 10

Figure 2.5 Spiral Model (Project Entry Point Axis)

There are times when the process is dormant, but


whenever a change is initiated, the process starts at the
appropriate entry point (e.g., product enhancement).

The spiral model is a realistic approach to the development


of large scale systems and software. Because software
evolves as the process progresses, the developer and
customer better understand and react to risks at each
evolutionary level. The spiral model uses prototyping as a
risk reduction mechanism, but more important, enables the
developer to apply the prototyping approach at any stage in
the evolution of the product. The spiral model demands a
direct consideration of technical risks at all stages of the
project, and if properly applied, should reduce risks before
they become problematic.

Software Engineering *Property of STI


Page 8 of 11
I0065

5. Discuss the concept of Fourth Generation Technique using Slides 11-


Slide 11 12.

The term “fourth generation techniques” (4GT) includes a


broad array of software tools that have one thing in
common: each enables the software engineer to specify
some characteristic of software at a high level. The tool
then automatically generates source code based on the
developer’s specification. The 4GT paradigm for software
engineering focuses on the ability to specify software using
specialized language forms or a graphic notation describing
the problem to be solved in terms the customer can
understand.

Figure 2.6 Fourth Generation Techniques Model

Slide 12 A software development environment that supports the


4GT paradigm includes some or all of the following tools:
nonprocedural languages for database query, report
generation, data manipulation, screen interaction and
definition, and code generation; high-level graphics
capability; and spreadsheet capability.

For small applications, it may be possible to move directly


from the requirements gathering step to implementation
using a nonprocedural fourth generation language (4GL).
On the other hand, it is necessary to develop a design
strategy for the system, even if a 4GL is to be used.

The following is a summary of the current state of 4GT


approaches:

1. The use of 4GT has broadened considerably over


the past decade and is now a viable approach for
many different application areas.

Software Engineering *Property of STI


Page 9 of 11
I0065

2. Data collected from companies who are using 4GT


indicates that the time required to produce
software is greatly reduced for small and
intermediate applications and that the amount of
design and analysis for small applications is also
reduced.

3. However, the use of 4GT for large software


development efforts demands as much or more
analysis, design, and testing to obtain the
substantial time saving that can be achieved
through the elimination of coding.

C. Generalization

1. Have a recap and summary of the previous sub-topic discuss during


the session.

D. Homework

1. Tell your students to research on the following:

a. Software metrics

b. Software project estimation

c. Software Engineering Metrics basic measurement

Software Engineering *Property of STI


Page 10 of 11
I0065

GRADUATE ATTRIBUTES CHECKLIST

Creative Conscientious Emotionally Mature


Fluency Orderly Self-awareness

Flexibility Dutiful Self-management

Originality Self-disciplined Social Awareness

Elaboration Relationship Management

Effective Team Player Critical Thinker


Communicator Networking Challenged Thinker
Speaking
Coordinating Beginning Thinker
Listening
Cooperating Practicing Thinker
Body Language
Collaborating
Reading
Writing

Proactive Lifelong Learner


Anticipatory Self-motivated
Plan-oriented Self-regulated
Action-directed Self-directed

REFERENCES:

Pressman, R S. (2010). Software engineering: a practitioner's approach


(7th ed.). McGraw-Hill/Higher Education

Software Engineering *Property of STI


Page 11 of 11

You might also like