Se 01 Introduction
Se 01 Introduction
1
Kontrak Perkulianhan
20% Kehadiran
25% Uts
25% Tugas
30% Uas
2
Learning Design
Criterion Referenced
Educational Objectives Minimalism
Instruction
(Benjamin Bloom) (John Carroll)
(Robert Mager)
Start Immediately
Cognitive Competencies
Psychomotor Evaluation
Self-Contained
3
Textbooks
4
Course Outline
1. Introduction
2. Process
3. Methodology
4. Quality
5. Research
5
1. Introduction
1.1 What is Software
1.2 What is Software Engineering
1.3 Software Myths
1.4 Software Engineering Discipline
1.1 What is Software
7
Software Di Sekitar Kita
• Hampir semua peralatan elektronik digerakkan oleh software!
• Mobil, pesawat terbang, kapal laut, …
• Telepon, bangunan, kota, …
• Semua disiplin ilmu menggunakan software!
• Teknik dan sains (teknik sipil, teknik mesin, teknik geologi, …)
• Kedokteran, farmasi, …
• Hardware tidak berfungsi tanpa software di dalamnya
8
The Definition of Software
• Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a
computer system
(IEEE, 1991) (ISO, 1997) (ISO/IEC 9000-3)
Market
Lisensi Domain
10
Jenis Software (Market)
• Software Generik
Perangkat lunak standar yang
diproduksi oleh perusahaan
pengembang dan dijual pada pasar
terbuka ke siapapun yang bisa
membelinya (Shrink-wrapped)
• Software Pesanan
Perangkat lunak yang
dikembangkan khusus dan
disesuaikan dengan kebutuhan
pelanggan
(Sommerville, 2015)
11
12
13
Jenis Software (Domain)
1. System software
2. Application software
3. Engineering/scientific software
4. Embedded software
5. Product line software
6. Web applications
7. Artificial intelligence software
(Pressman, 2014)
14
System Software
• System software is a collection of programs written
to service other programs
• It is characterized by heavy interaction with
computer hardware; heavy usage by multiple users;
concurrent operation that requires scheduling,
resource sharing, and sophisticated process
management; complex data structures; and
multiple external interfaces
15
Application Software
• Application software consists of standalone
programs that solve a specific business need
• Application software is used to control the business
function in real-time.
16
Engineering /Scientific software
• Characterized by "number crunching" algorithms
• Applications range from astronomy to volcano logy, from
automotive stress analysis to space shuttle orbital dynamics,
and from molecular biology to automated manufacturing
17
Embedded Software
• It resides in read-only memory and is used to
control products and systems
• Embedded software can perform limited and
esoteric functions
18
Product Line Software
• Designed to provide a specific capability for use by
many different customers, product line software
can focus on a limited and esoteric marketplace
19
Web Applications
• Web apps can be little more than a set of linked
hypertext files
• It evolving into sophisticated computing
environments that not only provide standalone
features, functions but also integrated with
corporate database and business applications
20
Artificial Intelligence Software
• AI software makes use of non-numerical algorithms
to solve complex problems that are not amenable
to computation or straightforward analysis
21
Jenis Software (Lisensi)
Open Source Software Proprietary Software
Linux, OpenOffice, GIMP MS Windows, MS Office 2013,
Adobe Photoshop
Purchased with its source code Purchased without its source code
Users can get for free of charge Users must pay to get
Users can modify the software Users cannot modify the software
Users can install software freely Users must have a license from
into any computer vendor before install into computer
No one is responsible to the Fully support from vendor if
software anything happened to the software
22
Open Source Software
• Software yang source codenya terbuka dan
didistribusikan dalam suatu format lisensi yang
memungkinkan pihak lain secara bebas memperbanyak
dan memodifikasi source code didalamnya
• Hak cipta tetap ada, tapi lisensi memungkinkan orang
lain bebas untuk menggunakan dan memodifikasi
software tersebut
• Jenis lisensi open source software:
• GNU General Public License (GPL)
• Apache License
• BSD license
• MIT License
• Mozilla Public License
23
Proprietary Software
• Software yang source codenya tertutup dan
didistribusikan dengan suatu format lisensi yang
membatasi pihak lain untuk menggunakan,
memperbanyak dan memodifikasi
• Lisensi proprietary software memungkinkan orang
lain menggunakan software yang kita buat dengan
diikuti penyerahan royalti (uang) ke pemilik hak
ciptanya
• Shareware dan Freeware adalah proprietary
software. Free for use belum tentu free for
(redistribute) atau free for modify!
24
Peranan Software
1. Menggantikan peran manusia:
Dengan otomasi terhadap suatu tugas
atau proses
2. Memperkuat peran manusia: Dengan
membantu manusia mengerjakan
suatu tugas atau proses dengan lebih
baik dan tertata
3. Restrukturisasi Peran Manusia:
Dengan melakukan perubahan-
perubahan thd sekumpulan tugas
atau proses
4. Hiburan dan Permainan:
Dengan menyajikan aplikasi interaktif
hiburan yang semakin dekat dengan
kenyataan
25
Hardware vs. Software
Hardware Software
Manufactured Developed/Engineered
Wear out Deteriorate
Built using components Custom built
Relatively simple Complex
Visible Defect Invisible Defect
26
Keunikan dari Software
Karakteristik Software Hardware
27
Manufacturing vs. Development
• Once a hardware product has been manufactured,
it is difficult or impossible to modify
• In contrast, software products are routinely modified
and upgraded.
• In hardware, hiring more people allows you to
accomplish more work,
• but the same does not necessarily hold true in software
engineering
• Unlike hardware, software costs are concentrated
in design rather than production
28
Failure Curve for Hardware
29
Failure Curve for Software
31
Visibility of Product
• Produk software tidak terlihat dengan kasat mata,
termasuk bila ada cacat (defect) dari produk
32
Warranty Lawsuits
• Mortenson vs. Timeberline Software (TS) (≈1993)
• Mortenson menggunakan software yang diproduksi TS untuk
membuka tender pembangunan rumah sakit
• Software memiliki bug sehingga memenangkan perusahaan yang
mengajukan proposal paling mahal (kerugian 2 miliar USD)
• TS tahu tentang bug itu, tapi tidak mengirimkan update ke
Mortenson
• Pengadilan di Amerika Serikat memenangkan perusahaan TS
35
The Term “Software
Engineering”
• Margaret Hamilton (NASA engineer),
coined the term “software
engineering” in 1960’s
• Standing with the “code” (on punch
cards) she developed for the Apollo 11
Mengapa Software Engineering?
• Terminologi software engineering
secara resmi pertama kali digunakan
pada conference tentang software
crisis tahun 1968
39
What is Software Engineering?
• Definition (IEEE, 1993):
• (1) The application of 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) above
• Its a discipline that is concerned with all aspects of
software production
Will use
Software Programming
Program Provide the
knowledge for
Developers /
programmers
ONLY
41
What is Software Engineering?
• Software engineering is NOT (just) programming
• But, of course, to be a good software engineer, one should
be good at programming
• Software engineering is the study and application of
engineering to the design, development, testing, and
maintenance of software systems
• Software engineering deal with issues such as:
• How can we develop a software in shortest time, lowest cost and
with highest quality?
• How can we test a software in shortest time, lowest cost and
with highest quality?
• When we have a large team of programmers, how can we assign
the best people to development and testing tasks?
• How can we ensure we have inquired the software requirements
from the client in the most efficient and effective way?
42
Software Engineering Problem
(Sommerville, 2012)
45
Software Quality Metrics
Software
Quality
Product
(mengukur software dari kualitas produk jadinya)
McCall
ISO 9126
Process
(mengukur software dari kematangan proses
pengembangannya)
CMMI
SPICE
ISO 9001
Latihan Kognitif
• Jelaskan latar belakang munculnya disiplin
software engineering!
48
Software Myths
• Definition:
• Beliefs about software and the process used to build it. Myths
have number of attributes that have made them insidious (i.e.
dangerous).
• Misleading Attitudes - caused serious problem for managers
and technical people
• Software Myths:
• Management myths: Managers in most disciplines, are often
under pressure to maintain budgets, keep schedules on time,
and improve quality
• Customer Myths: Customer may be a person from inside or
outside the company that has requested software under
contract
• Practitioner's myths
49
Management Myths
• Myth1:
• 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?
• Reality:
• Are software practitioners aware of existence standards?
• Does it reflect modern software engineering practice?
• Is it complete? Is it streamlined to improve time to
delivery while still maintaining a focus on quality?
50
Management Myths
• Myth2:
• If we get behind schedule, we can add more programmers and catch
up
• Reality:
• Software development is not a mechanistic process like
manufacturing. Adding people to a late software project makes it
later (Brook, 1975)
• People can be added but only in a planned and well-coordinated
manner
• Myth3:
• If I decide to outsource the software project to a third party, I can
just relax and let that firm build it
• Reality:
• If an organization does not understand how to manage and control
software projects internally, it will
51
invariably struggle when it
Customer Myths
• Myth1:
• A general statement of objectives is sufficient to begin writing programs
— we can fill in the details later
• Reality:
• A poor up-front definition is the major cause of failed software efforts. A
formal and detailed description of the information domain, function,
behavior, performance, interfaces, design constraints, and validation
criteria is essential. These characteristics can be determined only after
thorough communication between customer and developer.
• Myth2:
• Project requirements continually change, but change can be easily
accommodated because software is flexible
• Reality:
• Customer can review requirements and recommend modifications with
relatively little impact on cost. When changes are requested during
software design, the cost impact grows rapidly. Below mentioned figure
for reference. 52
Practitioner's myths
• Myth1:
• Once we write the program and get it to work, our job is done
• Reality:
• 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
• Myth2:
• Until I get the program "running" I have no way of assessing its
quality
• Reality:
• One of the most effective software quality assurance
mechanisms can be applied from the inception of a project—
the formal technical review 54
Practitioner's myths
• Myth3:
• The only deliverable work product for a successful project is the
working program
• Reality:
• A working program is only one part of a software configuration that
includes many elements. Documentation provides a foundation for
successful engineering and, more important, guidance for software
support
• Myth4:
• Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down
• Reality:
• Software engineering is not about creating documents. It is about
creating quality. Better quality leads to reduced rework. And
reduced rework results in faster delivery times
55
Latihan Kognitif
• Jelaskan dengan bahasa sendiri apa yang
dimaksud dengan software!
56
Latihan Analisis Kasus
• PT ABC meminta jasa anda untuk membangun sebuah
situs portal untuk perusahaan PT ABC tersebut
• Anda menggunakan CMS opensource bernama
Wordpress untuk engine dari situs portal yang dibuat
• Kemudian anda mengembangkan beberapa plugin
yang sesuai dengan business process yang diinginkan
oleh perusahaan tersebut. Sehingga akhirnya berhasil
dibangun sebuah situs portal perusahaan yang lengkap
dan sesuai dengan keinginan perusahan tersebut
• Anda mengirimkan invoice tagihan untuk perusahaan
PT ABC sebesar Rp. 100 juta untuk biaya
pembangunan situs portal tersebut
• Apakah yang saya lakukan ini sah dan diperbolehkan?
57
1.4 Software Engineering Discipline
Disiplin Ilmu Software Engineering
1. Peter J Dennings yang memimpin task force
disiplin ilmu computing memasukkan software
engineering sebagai satu disiplin ilmu (Dennings,
1999)
2. IEEE Computer Society membentuk tim khusus
untuk menyusun pohon ilmu Software
Engineering (Software Engineering Body of
Knowledge, SWEBOK) http://swebok.org
3. Software Engineering termasuk nama jurusan
atau fakultas yang diakui menurut IEEE
Computing Curricula 2005
59
Matriks Dennings 1999
1. Algoritma dan Struktur Data
2. Bahasa Pemrograman
3. Arsitektur Komputer
4. Sistem Operasi dan Jaringan
5. Software Engineering
6. Database dan Sistim Retrieval Informasi
7. Artificial Intelligence dan Robotik
8. Grafik
9. Human Computer Interaction
10.Ilmu Komputasi
11.Organizational Informatics
12.BioInformatik
( Peter J. Dennings, 1999 )
Software Engineering Body of
Knowledge (SWEBOK)
1. Software Requirements
2. Software Design
3. Software Construction
4. Software Testing
5. Software Maintenance
6. Software Configuration Management
7. Software Engineering Management
8. Software Engineering Process
9. Software Engineering Models and Methods
10. Software Quality
11. Software Engineering Professional Practice
12. Software Engineering Economics
13. Computing Foundations
14. Mathematical Foundations
15. Engineering Foundations
61
IEEE/ACM Computing Curricula
2005
Computer Information Computer
Engineering (CE) System (IS) Science (CS)
pengembangan sistem analisa kebutuhan dan
konsep computing dan
terintegrasi(software dan proses bisnis
pengembangan software
hardware) serta desain sistem
Computer Scientist
Computer Engineer System Analyst
Software
Information
Engineering (SE)
Technology (IT)
pengembangan software
pengembangan
dan pengelolaan tahapan
dan maintenance
SDLC
infrastruktur IT
Software Engineer
IT Engineer
Why Become a Software Engineer?
5 Best Jobs in the World:
1. Software Engineer:
• $80,500 Average Pay and 46% 10 Year Growth
2. College Professor:
• $81,500 Average Pay and 31% 10 Year Growth
3. Financial Adviser:
• $122,500 Average Pay and 26% 10 Year Growth
4. Human Resources Manager:
• $73,500 Average Pay and 23% 10 Year Growth
5. Physician Assistant:
• $75,000 Average Pay and 50% 10 Year Growth
63
The World's Billionaires
64
Reference (Foundation)
• Ian Sommerville, Software Engineering 10th Edition,
Addison-Wesley, 2015
• Roger S. Pressman, Software Engineering: A Practitioner’s
Approach 8th Edition, McGraw-Hill, 2014
• P. Bourque and R.E. Fairley, eds., Guide to the Software
Engineering Body of Knowledge Version 3.0, IEEE Computer
Society, 2014
• Albert Endres dan Dieter Rombach, A Handbook of Software
and Systems Engineering, Pearson Education Limited, 2003
• Yingxu Wang, Software Engineering Foundations: A
Software Science Perspective, Auerbach Publications, Taylor
& Francis Group, 2008
Reference (Process)
• Alan Dennis et al, Systems Analysis and Design with UML –
4th Edition, John Wiley and Sons, 2012
• Dan Pilone and Russ Miles, Head First Software
Development, O’Reilly Media, 2008
• Barclay and Savage, Object-Oriented Design with UML and
Java, Elsevier, 2004
• Kenneth E. Kendall and Julie E Kendall, Systems Analysis and
Design 8th Edition, Prentice Hall, 2010
• Hassan Gomaa, Software Modeling and Design: UML, Use
Cases, Patterns, and Software Architectures, Cambridge
University Press, 2011
• Layna Fischer (edt.), BPMN 2.0 Handbook Second Edition,
Future Strategies, 2012
Reference (Quality)
• Daniel Galin, Software Quality Assurance, Addison-
Wesley, 2004
• Kshirasagar Naik and Priyadarshi Tripathy, Software
Testing and Quality Assurance, John Wiley & Sons,
Inc., 2008
• Jeff Tian, Software Quality Engineering, John Wiley
& Sons, Inc., 2005
• G. Gordon Schulmeyer, Handbook of Software
Quality Assurance Fourth Edition, Artech House,
2008
Reference (Research)
• Christian W. Dawson, Project in Computing and Information
System a Student Guide 2nd Edition, Addison-Wesley, 2009
• Mikael Berndtsson, Jörgen Hansson, Björn Olsson, Björn
Lundell, Thesis Projects - A Guide for Students in Computer
Science and Information System 2nd Edition, Springer-Verlag
London Limited, 2008
• Mary Shaw, Writing Good Software Engineering Research
Papers, Proceedings of the 25th International Conference on
Software Engineering, 2003
• C. Wohlin, P. Runeson, M. Host, M. C. Ohlsson, B. Regnell, and
A. Wesslen, Experimentation in Software Engineering, Springer,
2012
• P. Runeson, M. Host, A. Rainer, and B. Regnell, Case Study
Research in Software Engineering: Guiidelines and Examples,
John Wiley & Sons, Inc., 2012
68