1.1 Introduction To Software Engineering
1.1 Introduction To Software Engineering
Introduction to Software
Engineering
Mutia Fadhila Putri M.Kom
Slides based on the book of Pressman, Roger S., Software Engineering: A
Practitioner’s Approach, 7th Edition, Mc. Graw Hill International, USA, 2010.
References
• [Pressman] Pressman, Roger S., Software
Engineering: A Practitioner’s Approach, 8th
Edition, Mc. Graw Hill International, USA,
2015.
• [Sommerville] Sommerville, Ian, Software
Engineering, 10th Edition, Pearson-Addison
Wesley, England, 2015.
2
Outline
• What is Software?
• What is Software Engineering?
• The Essence of Software Engineering Practice
3
What is Software?
http://www.csiteks.com/software-services/
4
What is Software?
• Software is:
(1) Instructions (computer programs) that when
executed provide desired features, function, and
performance;
(2) Data structures that enable the programs to
adequately manipulate information and
(3) Documentation that describes the operation and
use of the programs.
5
Characteristics of Software
1. Software is developed or engineered, it is not
manufactured in the classical sense.
2. Although the industry is moving toward
component-based construction, most software
continues to be custom-built.
3. Software doesn't "wear out" - it’s deteriorate.
• Hardware failure rate depicted in a form of the
“bathtub curve”
• Software failure rate depicted in a form of the
“idealized curve”.
6
Failure Curve for Hardware:
Bathtub Curve
Time
(Source: Pressman)
Failure Curve for Software
(Source: Pressman)
8
Software Application
• System software
• Application software
• Engineering/scientific software
• Embedded software
• Product-line software
• WebApps (Web applications)
• AI software
9
Information System?
1. Information system is a software
• Consists of instructions, data structures, and
documentations that provide values to its user
2. But not all software are information
systems!
• Anti-virus? BIOS?
• Medical records system? Tax filing system?
3. An IS for different organization has
different features
10
Relationship Between Software Engineering and
Computer Science
COMPUTER
CUSTOMER
SCIENCE
Computer Problem
Theories
Functions
SOFTWARE
ENGINEERING
12
Solving Problem with Software
Engineering
▪ Software engineers often encounter problems
related to a computer or existing computer
system but sometimes the underlying problem
have nothing to do with computers
▪ Therefore, we must understand the nature
of the problem first:
• Do not impose computing machinery or
techniques on every problems.
• Solve the problem first and if needed we can use
technology as a tool to implement our solution.
13
Solving Problem with Software
Engineering
•1. Begin investigating a problem by analyzing it.
•Break the problem in pieces that we understand
and try to deal with.
•Understand the relationship between pieces that
hold the problem.
•2. Once analyzed, construct the solution from
the components that address the problem’s
various aspects.
•This reverse process is called synthesis: putting
together of a large structure from small building
blocks.
14
A Layered Technology
Software Engineering
15
Process
• Process layer is the foundation.
• the glue that holds the technology layers together
• enables rational and timely development
• defines framework
• forms the basis for management control of
software project
• establishes the context in which technical
methods are applied, work products are produced,
milestone are established, quality is ensured, and
change is properly managed.
16
Method and Tools
1. Method layer
• provide the technical how-to’s for building
software
• encompass a broad array of tasks (include
communication, requirement analysis, design
modeling, program construction, testing, and
support)
• rely on a set of basic principles that govern each
area of the technology and include modeling
activities and other descriptive techniques.
2. Tools layer
• provide automated or semiautomated support for
the process and the methods
17
Why do we need SE?
1. Can’t we just go straight into coding?
2. You can, but...
• Many professional environments do not endorse
ad-hoc activities such as ‘brute force, trial-and-
error’ coding
• Even if it does succeed, can it be repeated in the
next project?
3. It seems a lot of work initially, but the
benefits will be worth it in the long run
18
The Essence of Practice
• Polya suggests:
1.Understand the problem (communication and
analysis).
2.Plan a solution (modeling and software design).
3.Carry out the plan (code generation).
4.Examine the result for accuracy (testing and quality
assurance).
19
Understand the Problem
• Who has a stake in the solution to the problem? That
is, who are the stakeholders?
• What are the unknowns? What data, functions, and
features are required to properly solve the
problem?
• Can the problem be compartmentalized? Is it
possible to represent smaller problems that may
be easier to understand?
• Can the problem be represented graphically? Can an
analysis model be created?
20
Plan the Solution
• Have you seen similar problems before? Are there
patterns that are recognizable in a potential
solution? Is there existing software that implements
the data, functions, and features that are required?
• Has a similar problem been solved? If so, are
elements of the solution reusable?
• Can subproblems be defined? If so, are solutions
readily apparent for the subproblems?
• Can you represent a solution in a manner that leads to
effective implementation? Can a design model be
created?
21
Carry Out the Plan
• Does the solution conform to the plan? Is
source code traceable to the design model?
• Is each component part of the solution provably
correct? Has the design and code been
reviewed, or better, have correctness proofs
been applied to algorithm?
22
Examine the Result
• Is it possible to test each component part of the
solution? Has a reasonable testing strategy
been implemented?
• Does the solution produce results that conform
to the data, functions, and features that are
required? Has the software been validated
against all stakeholder requirements?
23
Focus
24
Terima Kasih