SlideShare uma empresa Scribd logo
1 de 31
Introduction to
Software Engineering
Matakuliah Rekayasa Perangkat Lunak (CS215) – Gasal 2015/2016
Magister Ilmu Komputer - Universitas Budi Luhur
Achmad Solichin, S.Kom, M.T.I (achmatim@gmail.com)
Overview
• What is Software?
• Software ApplicationTypes
• Software Engineering Definition
• FAQ about Software Engineering
• Software Myths
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.
[Pressman, 2010]
What is Software?
• Software is developed or engineered, it is not manufactured in the classical
sense.
• Software doesn't wear out, but deterioration.
• Although the industry is moving toward component-based construction,
most software continues to be custom-built.
[Pressman, 2010]
Wear-out vs. Deterioration
[Pressman, 2010]
Hardware Software
7 Software Applications
• System software: such as compilers, editors, file management utilities
• Application software: stand-alone programs for specific needs.
• Engineering/scientific software: Characterized by “number crunching”
algorithms, such as automotive stress analysis, molecular biology, orbital
dynamics etc
• Embedded software: resides within a product or system, such as key pad
control of a microwave oven, digital function of dashboard display in a car
[Pressman, 2010]
7 Software Applications
• Product-line software: focus on a limited marketplace to address mass
consumer market. Ex. word processing, graphics, database management
• WebApps (Web applications): network centric software. As web 2.0
emerges, more sophisticated computing environments is supported
integrated with remote database and business applications.
• AI software uses non-numerical algorithm to solve complex problem.
Robotics, expert system, pattern recognition game playing
[Pressman, 2010]
Software Applications – New
• Open world computing—pervasive, distributed computing
• Ubiquitous computing—wireless networks
• Netsourcing—theWeb as a computing engine
• Open source—”free” source code open to the computing community (a blessing, but also a
potential curse!)
• And also …
• Data mining
• Grid computing
• Cognitive machines
• Software for nanotechnologies
[Pressman, 2010]
ApplicationType
• Stand-alone applications
• Interactive transaction-based applications
• Embedded control systems
• Batch processing systems
• Entertainment systems
• Systems for modeling and simulation
• Data collection systems
• Systems of systems
[Sommerville, 2011]
Legacy Software
• software must be adapted to meet the needs of new computing
environments or technology.
• software must be enhanced to implement new business requirements.
• software must be extended to make it interoperable with other more
modern systems or databases.
• software must be re-architected to make it viable within a network
environment.
Why must it change?
[Pressman, 2010]
Web Applications
• Network intensiveness. AWebApp resides on a network and must serve the needs
of a diverse community of clients.
• Concurrency. A large number of users may access the WebApp at one time.
• Unpredictable load.The number of users of the WebApp may vary by orders of
magnitude from day to day.
• Performance. If aWebApp user must wait too long (for access, for server-side
processing, for client-side formatting and display), he or she may decide to go
elsewhere.
• Availability. Although expectation of 100 percent availability is unreasonable, users
of popularWebApps often demand access on a “24/7/365” basis.
[Pressman, 2010]
Web Applications
• Data driven. The primary function of manyWebApps is to use hypermedia to present text,
graphics, audio, and video content to the end-user.
• Content sensitive. The quality and aesthetic nature of content remains an important
determinant of the quality of aWebApp.
• Continuous evolution. Unlike conventional application software that evolves over a series of
planned, chronologically-spaced releases,Web applications evolve continuously.
• Immediacy. Although immediacy—the compelling need to get software to market quickly—
is a characteristic of many application domains,WebApps often exhibit a time to market
that can be a matter of a few days or weeks.
• Security. BecauseWebApps are available via network access, it is difficult, if not
impossible, to limit the population of end-users who may access the application.
• Aesthetics. An undeniable part of the appeal of aWebApp is its look and feel.
[Pressman, 2010]
Software Engineering
[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.
Software Engineering: (1)The
application of a systematic,
disciplined, quantifiable approach to
the development, operation, and
maintenance of software; that is, the
application of engineering to
software. (2)The study of
approaches as in (1).
Fritz Bauer Definition IEEE Definition
[Pressman, 2010]
FAQ about Software Engineering
Question Answer
What is software? Computer programs and associated documentation.
Software products may be developed for a particular
customer or may be developed for a general market.
What are the attributes of good
software?
Good software should deliver the required functionality
and performance to the user and should be maintainable,
dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
[Sommerville, 2011]
FAQ about Software Engineering
Question Answer
What are the fundamental
software engineering activities?
Software specification, software development, software
validation and software evolution.
What is the difference between
software engineering and
computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between
software engineering and system
engineering?
System engineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.
[Sommerville, 2011]
FAQ about Software Engineering
Question Answer
What are the key challenges
facing software engineering?
Coping with increasing diversity, demands for reduced delivery times and
developing trustworthy software.
What are the costs of software
engineering?
Roughly 60% of software costs are development costs, 40% are testing costs. For
custom software, evolution costs often exceed development costs.
What are the best software
engineering techniques and
methods?
While all software projects have to be professionally managed and developed,
different techniques are appropriate for different types of system. For example,
games should always be developed using a series of prototypes whereas safety
critical control systems require a complete and analyzable specification to be
developed.You can’t, therefore, say that one method is better than another.
What differences has the web
made to software engineering?
The web has led to the availability of software services and the possibility of
developing highly distributed service-based systems. Web-based systems
development has led to important advances in programming languages and
software reuse.
[Sommerville, 2011]
Essensial Atributes of Good Software
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.
Dependability and security Software dependability includes a range of characteristics including
reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious users
should not be able to access or damage the system.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes responsiveness,
processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
[Sommerville, 2011]
Software Myths (Management)
We already have a book that’s full of
standards and procedures for building
software.Won’t that provide my people
with everything they need to know?
The book of standards may very well
exist, but is it used? Are software
practitioners aware of its existence?
Does it reflect modern software
engineering practice? Is it complete? Is it
adaptable? Is it streamlined to improve
time-to-delivery while still maintaining a
focus on quality? In many cases, the
answer to all of these questions is “no.”
Myth Reality
[Pressman, 2010]
Software Myths (Management)
If we get behind schedule, we can add more
programmers and catch up (sometimes
called the “Mongolian horde” concept).
Software development is not a mechanistic
process like manufacturing. In the words of
Brooks: “adding people to a late software
project makes it later.”At first, this
statement may seem counterintuitive.
However, as new people are added, people
who were working must spend time
educating the newcomers, thereby reducing
the amount of time spent on productive
development effort. People can be added
but only in a planned and well coordinated
manner.
Myth Reality
[Pressman, 2010]
Software Myths (Management)
If I decide to outsource the software
project to a third party, I can just
relax and let that firm build it.
If an organization does not
understand how to manage and
control software projects internally, it
will invariably struggle when it
outsources software projects.
Myth Reality
[Pressman, 2010]
Software Myths (Customer)
A general statement of objectives is
sufficient to begin writing programs —
we can fill in the details later
Although a comprehensive and stable
statement of requirements is not always
possible, an ambiguous “statement of
objectives” is a recipe for disaster.
Unambiguous requirements (usually
derived iteratively) are developed only
through effective and continuous
communication between customer and
developer
Myth Reality
[Pressman, 2010]
Software Myths (Customer)
Software requirements continually change,
but change can be easily accommodated
because software is flexible.
It is true that software requirements change,
but the impact of change varies with the
time at which it is introduced. When
requirements changes are requested early
(before design or code has been started), the
cost impact is relatively small.16 However, as
time passes, the cost impact grows rapidly —
resources have been committed, a design
framework has been established, and
change can cause upheaval that requires
additional resources and major design
modification.
Myth Reality
[Pressman, 2010]
Software Myths (Practitioners)
Once we write the program and get it
to work, our job is done.
Someone once said that “the sooner
you begin ‘writing code,’ the longer
it’ll take you to get done.”Industry
data indicate that between 60 and 80
percent of all effort expended on
software will be expended after it is
delivered to the customer for the first
time.
Myth Reality
[Pressman, 2010]
Software Myths (Practitioners)
Until I get the program “running” I
have no way of assessing its quality.
One of the most effective software
quality assurance mechanisms can be
applied from the inception of a
project—the technical review.
Software reviews are a “quality filter”
that have been found to be more
effective than testing for finding
certain classes of software defects.
Myth Reality
[Pressman, 2010]
Software Myths (Practitioners)
The only deliverable work product for
a successful project is the working
program.
A working program is only one part
of a software configuration that
includes many elements. A variety of
work products (e.g., models,
documents, plans) provide a
foundation for successful engineering
and, more important, guidance for
software support
Myth Reality
[Pressman, 2010]
Software Myths (Practitioners)
Software engineering will make us
create voluminous and unnecessary
documentation and will invariably
slow us down.
Software engineering is not about
creating documents. It is about
creating a quality product. Better
quality leads to reduced rework. And
reduced rework results in faster
delivery times.
Myth Reality
[Pressman, 2010]
Software Engineering Ethics
• Software engineering involves wider responsibilities than simply the
application of technical skills.
• Software engineers must behave in an honest and ethically responsible way
if they are to be respected as professionals.
• Ethical behaviour is more than simply upholding the law but involves
following a set of principles that are morally correct.
[Sommerville, 2011]
Issues of Professional Responsibility
• Confidentiality
• Engineers should normally respect the confidentiality of their employers or clients
irrespective of whether or not a formal confidentiality agreement has been signed.
• Competence
• Engineers should not misrepresent their level of competence.They should not
knowingly accept work which is outwith their competence.
[Sommerville, 2011]
Issues of Professional Responsibility
• Intellectual property rights
• Engineers should be aware of local laws governing the use of intellectual property such
as patents, copyright, etc.They should be careful to ensure that the intellectual
property of employers and clients is protected.
• Computer misuse
• Software engineers should not use their technical skills to misuse other people’s
computers. Computer misuse ranges from relatively trivial (game playing on an
employer’s machine, say) to extremely serious (dissemination of viruses).
[Sommerville, 2011]
References
• Roger S. Pressman, 2010, Software Engineering: A Practitioner’s Approach
7th edition, McGraw-Hill.
• Ian Sommerville, 2011, Software Engineering 9th edition, Addison-Wesley.
Thanks
• Achmad Solichin, S.Kom, M.T.I
• achmatim@gmail.com
• Twitter: @achmatim
• Facebook: facebook.com/achmatim
• Web: http://achmatim.net

Mais conteúdo relacionado

Mais procurados

Ch 4 components of the sqa system
Ch 4 components of the sqa systemCh 4 components of the sqa system
Ch 4 components of the sqa system
Kittitouch Suteeca
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
Abdul Basit
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
Swarnima Tiwari
 

Mais procurados (20)

Software Development Life Cycle-SDLC
Software Development Life Cycle-SDLCSoftware Development Life Cycle-SDLC
Software Development Life Cycle-SDLC
 
Ch 4 components of the sqa system
Ch 4 components of the sqa systemCh 4 components of the sqa system
Ch 4 components of the sqa system
 
Basics in software testing
Basics in software testingBasics in software testing
Basics in software testing
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
Extreme Programming ppt
Extreme Programming pptExtreme Programming ppt
Extreme Programming ppt
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Advanced topics in software engineering
Advanced topics in software engineeringAdvanced topics in software engineering
Advanced topics in software engineering
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Software Testing Basics
Software Testing BasicsSoftware Testing Basics
Software Testing Basics
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
Software engineering
Software engineering Software engineering
Software engineering
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance
 

Destaque

Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Marco Brambilla
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentation
MJ Ferdous
 
Software Engineering - Ch1
Software Engineering - Ch1Software Engineering - Ch1
Software Engineering - Ch1
Siddharth Ayer
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
Ian Sommerville
 

Destaque (17)

An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Introduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information TechnologyIntroduction to Software Engineering & Information Technology
Introduction to Software Engineering & Information Technology
 
software engineering
software engineeringsoftware engineering
software engineering
 
Introduction to Human Resource Management - HRM Dessler 12e Chapter 01
Introduction to Human Resource Management - HRM Dessler 12e Chapter 01Introduction to Human Resource Management - HRM Dessler 12e Chapter 01
Introduction to Human Resource Management - HRM Dessler 12e Chapter 01
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
 
Introduction to H.R.M - Chapter#01 - Presentation
Introduction to H.R.M - Chapter#01 - PresentationIntroduction to H.R.M - Chapter#01 - Presentation
Introduction to H.R.M - Chapter#01 - Presentation
 
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionModel-Driven Software Engineering in Practice - Chapter 1 - Introduction
Model-Driven Software Engineering in Practice - Chapter 1 - Introduction
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentation
 
Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Chapter 1: Introduction to HRM
Chapter 1: Introduction to HRMChapter 1: Introduction to HRM
Chapter 1: Introduction to HRM
 
1. introduction to hrm
1. introduction to hrm1. introduction to hrm
1. introduction to hrm
 
Web engineering lecture 1
Web engineering lecture 1Web engineering lecture 1
Web engineering lecture 1
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering - Ch1
Software Engineering - Ch1Software Engineering - Ch1
Software Engineering - Ch1
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
 

Semelhante a Lecture 01 Introduction to Software Engineering

香港六合彩
香港六合彩香港六合彩
香港六合彩
pchgmf
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
eqhnwl
 

Semelhante a Lecture 01 Introduction to Software Engineering (20)

SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
SE Lecture 1.ppt
SE Lecture 1.pptSE Lecture 1.ppt
SE Lecture 1.ppt
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Introduction to Software Engineering.ppt
Introduction to Software Engineering.pptIntroduction to Software Engineering.ppt
Introduction to Software Engineering.ppt
 
SE
SESE
SE
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
Intro
IntroIntro
Intro
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
software
softwaresoftware
software
 
Oose unit 1 ppt
Oose unit 1 pptOose unit 1 ppt
Oose unit 1 ppt
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 

Mais de Achmad Solichin

Mais de Achmad Solichin (20)

Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
Kuliah Umum - Tips Publikasi Jurnal SINTA untuk Mahasiswa Galau (6 Agustus 2022)
 
Materi Webinar Web 3.0 (16 Juli 2022)
Materi Webinar Web 3.0 (16 Juli 2022)Materi Webinar Web 3.0 (16 Juli 2022)
Materi Webinar Web 3.0 (16 Juli 2022)
 
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
Webinar: Kesadaran Keamanan Informasi (3 Desember 2021)
 
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
 
Webinar PHP-ID: Machine Learning dengan PHP
Webinar PHP-ID: Machine Learning dengan PHPWebinar PHP-ID: Machine Learning dengan PHP
Webinar PHP-ID: Machine Learning dengan PHP
 
Webinar Data Mining dengan Rapidminer | Universitas Budi Luhur
Webinar Data Mining dengan Rapidminer | Universitas Budi LuhurWebinar Data Mining dengan Rapidminer | Universitas Budi Luhur
Webinar Data Mining dengan Rapidminer | Universitas Budi Luhur
 
TREN DAN IDE RISET BIDANG DATA MINING TERBARU
TREN DAN IDE RISET BIDANG DATA MINING TERBARUTREN DAN IDE RISET BIDANG DATA MINING TERBARU
TREN DAN IDE RISET BIDANG DATA MINING TERBARU
 
Metodologi Riset: Literature Review
Metodologi Riset: Literature ReviewMetodologi Riset: Literature Review
Metodologi Riset: Literature Review
 
Materi Seminar: Artificial Intelligence dengan PHP
Materi Seminar: Artificial Intelligence dengan PHPMateri Seminar: Artificial Intelligence dengan PHP
Materi Seminar: Artificial Intelligence dengan PHP
 
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan RadiasiPercobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
Percobaan Perpindahan Kalor melalui Konduksi, Konveksi dan Radiasi
 
Metodologi Riset: Literature Review
Metodologi Riset: Literature ReviewMetodologi Riset: Literature Review
Metodologi Riset: Literature Review
 
Depth First Search (DFS) pada Graph
Depth First Search (DFS) pada GraphDepth First Search (DFS) pada Graph
Depth First Search (DFS) pada Graph
 
Breadth First Search (BFS) pada Graph
Breadth First Search (BFS) pada GraphBreadth First Search (BFS) pada Graph
Breadth First Search (BFS) pada Graph
 
Binary Search Tree (BST) - Algoritma dan Struktur Data
Binary Search Tree (BST) - Algoritma dan Struktur DataBinary Search Tree (BST) - Algoritma dan Struktur Data
Binary Search Tree (BST) - Algoritma dan Struktur Data
 
Computer Vision di Era Industri 4.0
Computer Vision di Era Industri 4.0Computer Vision di Era Industri 4.0
Computer Vision di Era Industri 4.0
 
Seminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web ProgrammerSeminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web Programmer
 
The Big 5: Future IT Trends
The Big 5: Future IT TrendsThe Big 5: Future IT Trends
The Big 5: Future IT Trends
 
Modern PHP Developer
Modern PHP DeveloperModern PHP Developer
Modern PHP Developer
 
Seminar: PHP Developer for Dummies
Seminar: PHP Developer for DummiesSeminar: PHP Developer for Dummies
Seminar: PHP Developer for Dummies
 
Pertemuan 1 - Algoritma dan Struktur Data 1
Pertemuan 1 - Algoritma dan Struktur Data 1Pertemuan 1 - Algoritma dan Struktur Data 1
Pertemuan 1 - Algoritma dan Struktur Data 1
 

Último

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 

Último (20)

TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 

Lecture 01 Introduction to Software Engineering

  • 1. Introduction to Software Engineering Matakuliah Rekayasa Perangkat Lunak (CS215) – Gasal 2015/2016 Magister Ilmu Komputer - Universitas Budi Luhur Achmad Solichin, S.Kom, M.T.I (achmatim@gmail.com)
  • 2. Overview • What is Software? • Software ApplicationTypes • Software Engineering Definition • FAQ about Software Engineering • Software Myths
  • 3. 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. [Pressman, 2010]
  • 4. What is Software? • Software is developed or engineered, it is not manufactured in the classical sense. • Software doesn't wear out, but deterioration. • Although the industry is moving toward component-based construction, most software continues to be custom-built. [Pressman, 2010]
  • 5. Wear-out vs. Deterioration [Pressman, 2010] Hardware Software
  • 6. 7 Software Applications • System software: such as compilers, editors, file management utilities • Application software: stand-alone programs for specific needs. • Engineering/scientific software: Characterized by “number crunching” algorithms, such as automotive stress analysis, molecular biology, orbital dynamics etc • Embedded software: resides within a product or system, such as key pad control of a microwave oven, digital function of dashboard display in a car [Pressman, 2010]
  • 7. 7 Software Applications • Product-line software: focus on a limited marketplace to address mass consumer market. Ex. word processing, graphics, database management • WebApps (Web applications): network centric software. As web 2.0 emerges, more sophisticated computing environments is supported integrated with remote database and business applications. • AI software uses non-numerical algorithm to solve complex problem. Robotics, expert system, pattern recognition game playing [Pressman, 2010]
  • 8. Software Applications – New • Open world computing—pervasive, distributed computing • Ubiquitous computing—wireless networks • Netsourcing—theWeb as a computing engine • Open source—”free” source code open to the computing community (a blessing, but also a potential curse!) • And also … • Data mining • Grid computing • Cognitive machines • Software for nanotechnologies [Pressman, 2010]
  • 9. ApplicationType • Stand-alone applications • Interactive transaction-based applications • Embedded control systems • Batch processing systems • Entertainment systems • Systems for modeling and simulation • Data collection systems • Systems of systems [Sommerville, 2011]
  • 10. Legacy Software • software must be adapted to meet the needs of new computing environments or technology. • software must be enhanced to implement new business requirements. • software must be extended to make it interoperable with other more modern systems or databases. • software must be re-architected to make it viable within a network environment. Why must it change? [Pressman, 2010]
  • 11. Web Applications • Network intensiveness. AWebApp resides on a network and must serve the needs of a diverse community of clients. • Concurrency. A large number of users may access the WebApp at one time. • Unpredictable load.The number of users of the WebApp may vary by orders of magnitude from day to day. • Performance. If aWebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere. • Availability. Although expectation of 100 percent availability is unreasonable, users of popularWebApps often demand access on a “24/7/365” basis. [Pressman, 2010]
  • 12. Web Applications • Data driven. The primary function of manyWebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user. • Content sensitive. The quality and aesthetic nature of content remains an important determinant of the quality of aWebApp. • Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases,Web applications evolve continuously. • Immediacy. Although immediacy—the compelling need to get software to market quickly— is a characteristic of many application domains,WebApps often exhibit a time to market that can be a matter of a few days or weeks. • Security. BecauseWebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application. • Aesthetics. An undeniable part of the appeal of aWebApp is its look and feel. [Pressman, 2010]
  • 13. Software Engineering [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. Software Engineering: (1)The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2)The study of approaches as in (1). Fritz Bauer Definition IEEE Definition [Pressman, 2010]
  • 14. FAQ about Software Engineering Question Answer What is software? Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. What are the attributes of good software? Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. [Sommerville, 2011]
  • 15. FAQ about Software Engineering Question Answer What are the fundamental software engineering activities? Software specification, software development, software validation and software evolution. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process. [Sommerville, 2011]
  • 16. FAQ about Software Engineering Question Answer What are the key challenges facing software engineering? Coping with increasing diversity, demands for reduced delivery times and developing trustworthy software. What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs. What are the best software engineering techniques and methods? While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system. For example, games should always be developed using a series of prototypes whereas safety critical control systems require a complete and analyzable specification to be developed.You can’t, therefore, say that one method is better than another. What differences has the web made to software engineering? The web has led to the availability of software services and the possibility of developing highly distributed service-based systems. Web-based systems development has led to important advances in programming languages and software reuse. [Sommerville, 2011]
  • 17. Essensial Atributes of Good Software Product characteristic Description Maintainability Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment. Dependability and security Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system. Efficiency Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc. Acceptability Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use. [Sommerville, 2011]
  • 18. Software Myths (Management) We already have a book that’s full of standards and procedures for building software.Won’t that provide my people with everything they need to know? The book of standards may very well exist, but is it used? Are software practitioners aware of its existence? Does it reflect modern software engineering practice? Is it complete? Is it adaptable? Is it streamlined to improve time-to-delivery while still maintaining a focus on quality? In many cases, the answer to all of these questions is “no.” Myth Reality [Pressman, 2010]
  • 19. Software Myths (Management) If we get behind schedule, we can add more programmers and catch up (sometimes called the “Mongolian horde” concept). Software development is not a mechanistic process like manufacturing. In the words of Brooks: “adding people to a late software project makes it later.”At first, this statement may seem counterintuitive. However, as new people are added, people who were working must spend time educating the newcomers, thereby reducing the amount of time spent on productive development effort. People can be added but only in a planned and well coordinated manner. Myth Reality [Pressman, 2010]
  • 20. Software Myths (Management) If I decide to outsource the software project to a third party, I can just relax and let that firm build it. If an organization does not understand how to manage and control software projects internally, it will invariably struggle when it outsources software projects. Myth Reality [Pressman, 2010]
  • 21. Software Myths (Customer) A general statement of objectives is sufficient to begin writing programs — we can fill in the details later Although a comprehensive and stable statement of requirements is not always possible, an ambiguous “statement of objectives” is a recipe for disaster. Unambiguous requirements (usually derived iteratively) are developed only through effective and continuous communication between customer and developer Myth Reality [Pressman, 2010]
  • 22. Software Myths (Customer) Software requirements continually change, but change can be easily accommodated because software is flexible. It is true that software requirements change, but the impact of change varies with the time at which it is introduced. When requirements changes are requested early (before design or code has been started), the cost impact is relatively small.16 However, as time passes, the cost impact grows rapidly — resources have been committed, a design framework has been established, and change can cause upheaval that requires additional resources and major design modification. Myth Reality [Pressman, 2010]
  • 23. Software Myths (Practitioners) Once we write the program and get it to work, our job is done. Someone once said that “the sooner you begin ‘writing code,’ the longer it’ll take you to get done.”Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer for the first time. Myth Reality [Pressman, 2010]
  • 24. Software Myths (Practitioners) Until I get the program “running” I have no way of assessing its quality. One of the most effective software quality assurance mechanisms can be applied from the inception of a project—the technical review. Software reviews are a “quality filter” that have been found to be more effective than testing for finding certain classes of software defects. Myth Reality [Pressman, 2010]
  • 25. Software Myths (Practitioners) The only deliverable work product for a successful project is the working program. A working program is only one part of a software configuration that includes many elements. A variety of work products (e.g., models, documents, plans) provide a foundation for successful engineering and, more important, guidance for software support Myth Reality [Pressman, 2010]
  • 26. Software Myths (Practitioners) Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down. Software engineering is not about creating documents. It is about creating a quality product. Better quality leads to reduced rework. And reduced rework results in faster delivery times. Myth Reality [Pressman, 2010]
  • 27. Software Engineering Ethics • Software engineering involves wider responsibilities than simply the application of technical skills. • Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals. • Ethical behaviour is more than simply upholding the law but involves following a set of principles that are morally correct. [Sommerville, 2011]
  • 28. Issues of Professional Responsibility • Confidentiality • Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed. • Competence • Engineers should not misrepresent their level of competence.They should not knowingly accept work which is outwith their competence. [Sommerville, 2011]
  • 29. Issues of Professional Responsibility • Intellectual property rights • Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc.They should be careful to ensure that the intellectual property of employers and clients is protected. • Computer misuse • Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses). [Sommerville, 2011]
  • 30. References • Roger S. Pressman, 2010, Software Engineering: A Practitioner’s Approach 7th edition, McGraw-Hill. • Ian Sommerville, 2011, Software Engineering 9th edition, Addison-Wesley.
  • 31. Thanks • Achmad Solichin, S.Kom, M.T.I • achmatim@gmail.com • Twitter: @achmatim • Facebook: facebook.com/achmatim • Web: http://achmatim.net