Project management - Digital library

Download Report

Transcript Project management - Digital library

Curriculum Vitae


Name: Ana Hadiana
Education:
•
•
•
•




1993, Bachelor Degree from Fukui Univ. Japan (Info. Eng.)
1995, Master Degree from Fukui Univ. Japan (Info. Eng.)
2004 Doctoral Degree from Shinsyu Univ. Japan (Info. Eng.)
2006 Post-Doctoral from National Institut e of Informatics Japan
Work: P2I – LIPI
Sport: Pingpong
Hobby: Belajar bahasa arab
Email: [email protected]
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 1
An Introduction to Software
Engineering (SE)
Pengantar Rekayasa Perangkat
Lunak (RPL)
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 2
Materi Kuliah RPL








Pengantar RPL
Konsep Dasar RPL/SE
Tanggung jawab professional & etika
Siklus Hidup Perangkat Lunak/SDLC
Pemodelan Sistem
Teknik Pengujian Sistem
Manajemen Proyek Software
Studi Kasus
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 3
Objectives/Tujuan

To introduce SE and to explain its importance
•

To set out the answers to key questions about SE
•

Memahami apa yg dimaksud dgn RPL dan arti pentingnya
Mengetahui jawaban terhadap pertanyaan2 kunci untuk
memberikan pemahaman awal ttg RPL
To introduce ethical and professional issues and to
explain why they are of concern to software engineers
•
©Ian Sommerville
Memahami isu etika dan profesi yg penting bagi para
perekayasa perangkat lunak
Rekayasa Perangkat Lunak, Kuliah 1
Slide 4
Topics covered


FAQs about software engineering
Professional and ethical responsibility
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 5
SE

The economies of ALL developed nations are
dependent on software.
•

More and more systems are software controlled
•

Semakin banyak produk menggunakan software pengendali
SE is concerned with theories, methods and tools for
professional software development.
•

Hampir seluruh negara tergantung pada berbasis komputer
SE berkaitan dengan teori, metode dan tool utk pengembangan
software secara professional
Expenditure on software represents a
significant fraction of GNP in all developed countries.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 6
SE


SE/PL muncul sejak 1968 pada saat terjadinya
“Krisis Software”
Permasalahan Software
•
•
•
•
•
•

Proyek besar sering terlambat
Memakan biaya yg jauh lebih besar drpd estimasi
Tidak dapat diandalkan
Sulit pemeliharaannya
Kinerja buruk
Biaya hardware ▼, software ▲
Sehingga teknik dan metode baru
•
©Ian Sommerville
Mengendalikan kompleksitas sistem software yg
besar
Rekayasa Perangkat Lunak, Kuliah 1
Slide 7
FAQs about SE






What is software?
What is SE?
What is the difference between SE and
Computer Science?
What is the difference between SE and System
Engineering?
What is a Software Process?
What is a Software Process Model?
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 8
FAQs about software engineering




What are the costs of SE?
What are SE methods?
What is CASE (Computer-Aided Software
Engineering)
What are the attributes of good software?
•

Ciri-ciri software yang baik?
What are the key challenges facing SE?
•
©Ian Sommerville
Tantangan kunci apa yang ada dalam RPL?
Rekayasa Perangkat Lunak, Kuliah 1
Slide 9
What is Software?

Computer programs and associated documentation such
as requirements, design models and user manuals.
•
•
Software/Perangkat Lunak berbeda dengan program komputer
Software tidak hanya program saja, tetapi mencakup pula
• Dokumentasi dan konfigurasi data yg berhubungan , yg diperlukan
utk membuat program beroperasi dgn benar.
• Sistem software terdiri dari file-file program terpisah, file-file
konfigurasi, dokumentasi user yg menjelaskan penggunaan sistem,
tersedia situs web sbg sarana informasi produk software terbaru

Software products may be developed for a particular
customer or may be developed for a general market.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 10
What is Software?

Software products may be
•
Generic - developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
• Produk generik (terbuka utk siapapun) ≈ database, word processor, paket
utk menggambar, alat bantu manajemen proyek

•
Spek dikontrol oleh sendiri oleh Vendor Software
Bespoke (custom) - developed for a single customer according
to their specification.
• Produk pesanan (disesuaikan dgn kebutuhan pelanggan tertentu saja)


Spek dikontrol oleh pelanggan tertentu
New software can be created by developing new
programs, configuring generic software systems or
reusing existing software.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 11
Ukuran Software
Jenis software
Person
Programmer
ManHour
Baris
Modules
/Subroutines
Keterangan
Trivial Program
(sederhana)
1
Beberapa
hari/minggu
± 500
10 – 20 sub
e.g. Perhitungan biaya pulsa di
wartel
Small
1–4
1 – 6 bln
1000 - 2500
Terjadi interaksi antara
25 – 50 sub programmer & user
e.g. Aplikasi penggajian
Medium
2–7
1 – 2 thn
10 – 50 ribu
250 – 1000
e.g. Aplikasi Inventory
sub
Large
Very Large
Extremely
5 – 10
100 – 1000
©Ian Sommerville2000
– 5000
2 – 3 thn
4 – 5 thn
~100.000
~1·106
Beberapa
subsistem
Komunikasi antara programmer,
manajemen, user
e.g. Paket database
Susunan
Subsistem
utama, terdiri e.g. Software animasi film
dari beberapa
subsistem
Subsistem yang e.g. Software perhitungan di Air
Slide
12
Traffic Control atau di
reaktor
7
~10
thn Perangkat
~1·10
Rekayasa
Lunak,
Kuliah
1 besar
sangat
Role of Software
Sebagai produk
• Transformer informasi
Kendaraan yg mengantarkan produk
• Membuat/mengontrol program lainnya
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 13
Software Type
Software
Sistem
Pemrograman
Java, VB, dll
Software
Aplikasi
OS
Windows, Linux
Utility
Norton AV
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Umum
Office, Game
Khusus
Aplikasi SIM,
AutoCAD
Slide 14
Software License

Proprietary
•
•
•

Ber-license
Harus dibeli
Tidak boleh diperbanyak oleh siapa saja
Open Source
•
•
•
©Ian Sommerville
Ber-license (General Public License/GPL)
Diperoleh secara Cuma-Cuma
Bisa diperbanyak secara bebas
Rekayasa Perangkat Lunak, Kuliah 1
Slide 15
What is SE?

SE is an engineering discipline that is concerned
with all aspects of software production.
•
Disiplin ilmu yg membahas semua aspek produksi
software, dari mulai tahap awal spesifikasi sampai
pemeliharaan setelah digunakan.
• Rekayasa tidak hanya berhubungan dgn proses teknis
pengembangan software tetapi juga dgn kegiatan
manajemen proyek software, pengembangan alat bantu,
metode dan teori utk mendukung produksi software.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 16
What is SE?

Software Engineers should adopt a systematic
and organised approach to their work and use
appropriate tools and techniques depending on
the problem to be solved, the development
constraints and the resources available.
•
•
•
©Ian Sommerville
Perekayasa seharusnya memakai pendekatan yg sistematis
dan teroganisir terhadap pekerjaannya karena cara ini sering
kali efektif utk menghasilkan perangkat lunak berkualitas tinggi.
Menggunakan tool dan teknik yg cocok utk mencari solusi
masalah secara tepat.
Menyadari bekerja dalam batasan organisasi dan keuangan,
sehingga hrs mencari solusi dalam batasan ini
Rekayasa Perangkat Lunak, Kuliah 1
Slide 17
What is the difference between Software
Engineering and Computer Science?

Computer science is concerned with theory and
fundamentals; SE is concerned with the
practicalities of developing and delivering useful
software.
•
•
©Ian Sommerville
Computer science berkaitan teori dan metode yg
mendasari sistem komputer dan software.
Sedangkan SE berkaitan dgn masalah2 praktis utk
produksi software.
Pengetahuan ttg computer science penting bagi
seorang perekayasa, walaupun pada kenyataannya
teori tidak selalu elegan utk diterapkan.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 18
What is the difference between SE and
System Engineering?
System engineering is concerned with all
aspects of computer-based systems
development including hardware, software and
process engineering.

Rekayasa sistem berbasis komputer mencakup, pengembangan
hardware, software, dan proses rekayasa sistem

Sedangkan

SE is part of this process concerned with
developing the software infrastructure, control,
applications and databases in the system.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 19
What is the difference between SE and
System Engineering?

System engineers are involved in system
specification, architectural design, integration
and deployment.
•
•
©Ian Sommerville
Perekayasa Sistem terlibat dalam penentuan
speksifikasi sistem, pendefinisian arsitektur secara
menyeluruh dan pengintegrasian berbagai bagian
utk membuat sistem akhir.
Perekayasa Sistem tidak peduli dengan rekayasa
komponen sistem (hardware, software, dll).
Rekayasa Perangkat Lunak, Kuliah 1
Slide 20
What is a Software Process?

A set of activities whose goal is the development
or evolution of software.
•

Serangkaian kegiatan dan hasil-hasil relevannya yg
menghasilkan software.
Generic activities in all software processes are:
•
•
•
•
©Ian Sommerville
Specification – fungsionalitas software dan batasan
kemampuan operasinya harus didefinisikan (kinerja,
antarmuka, dll).
Development – software yg memenuhi spesifikasi tersebut
harus diproduksi.
Validation – software haru divalidasi utk menjamin bahwa
software melakukan apa yg diinginkan oleh pelanggan.
Evolution – software dapat terus berkembang utk memenuhi
kebutuhan pelanggan yg berubah.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 21
Ujicoba/Testing Sistem
Development Test
Integration Test
Installation Test
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 22
What is a Software Process Model?

A simplified representation of a software process,
presented from a specific perspective.
•
•
•

Model adalah deskripsi yg disederhanakan dari proses software
Model juga dipresentasikan dgn sudut pandang tertentu.
Abstraksi dari proses sebenarnya
Beberapa jenis model proses software yg dihasilkan
•
•
•
©Ian Sommerville
Workflow perspective - sequence of activities (urutan kegiatan)
Data-flow perspective - information flow (alur data)
Role/action perspective - who does what (peran orang yg
terlibat dalam proses software).
Rekayasa Perangkat Lunak, Kuliah 1
Slide 23
What is a Software Process Model?

Generic process models
•
•
•
©Ian Sommerville
Waterfall – pengembangan melalui fase proses yg berbeda
seperti spesifikasi, persyaratan, perancangan, implementasi,
pengujian, dan seterusnya.
Iterative development – pendekatan tumpang tindih dengan
kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal
dikembangkan dgn cepat dari spesifikasi abstrak, lalu
disempurnakan dgn masukan dari pelanggan sampai sistem
memenuhi kebutuhan pelanggan tersebut.
Component-based software engineering – perakitan
(assembling) sistem dari komponen-komponen yg dapat
dipakai ulang
Rekayasa Perangkat Lunak, Kuliah 1
Slide 24
Waterfall
#Fase brktnya tdk dimulai sblm fase
sblmny selesai.
#Bukanlah model linear sedrhana.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 25
Iterative
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 26
Component Based
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 27
What are the costs of software engineering?



Roughly 60% of costs are development costs,
40% are testing costs. For custom software,
evolution costs often exceed development costs.
Costs vary depending on the type of system
being developed and the requirements of system
attributes such as performance and system
reliability.
Distribution of costs depends on the
development model that is used.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 28
Software costs

Software costs often dominate computer system
costs.
•

Software costs more to maintain than it does to
develop.
•

The costs of software on a PC are often greater than
the hardware cost.
For systems with a long life, maintenance costs may
be several times development costs.
SE is concerned with cost-effective software
development.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 29
Distribusi Biaya Pengembangan
Wat er fall mo del
0
25
Specificatio n
50
Design
100
75
Dev elo pmen t
In teg ratio n and testing
It erative develo pmen t
0
25
Specificatio n
0
25
in eerin g
50
75
Dev elo pmen t
0
10
Sy stem dev elop ment
1 00
Sy stem tes tin g
1 00
In teg ratio n and testing
Dev elo pmen t and evo lu tio n cos ts for lo ng -lifetime s ys t
©Ian Sommerville
75
Iterativ e d ev elop ment
Compo nent-b ased software en g
Specificatio n
50
ems
20 0
30
400
Sy stem evo lu tio n
Rekayasa Perangkat Lunak, Kuliah 1
Slide 30
Biaya Pengembangan Produk Generik
0
Specificatio n
©Ian Sommerville
25
Dev elo pmen t
50
75
100
Sy stem tes tin g
Rekayasa Perangkat Lunak, Kuliah 1
Slide 31
What are SE methods?
Metode RPL adalah pendekatan terstruktur terhadap
pengembangan software dgn tujuan memfasilitasi
produksi software yg berkualitas dgn cara efektif
terutama dalam hal biaya
Komponen2 metode


Model descriptions
•

Rules/Aturan
•

Batasan yg berlaku bagi model sistem
Recommendations
•

Deskripsi model sistem dan notasi untuk pendefinisian
Menghasilkan model sistem yg terorganisir dgn baik
Process guidance
•
©Ian Sommerville
Deskripsi kegiatan yang harus diikuti
Rekayasa Perangkat Lunak, Kuliah 1
Slide 32
SE Methods

Analisis Terstruktur
•
•

Data Flow Diagram (DFD)
Entity Relationship Diagram (ER-D)
Analisis berbasis Obyek
•
Menggunakan Unified Modelling Language(UML)
•
•
•
•
•
©Ian Sommerville
Use Case Diagram
Class Diagram
Action Diagram
State Diagram
dll
Rekayasa Perangkat Lunak, Kuliah 1
Slide 33
What is CASE (Computer-Aided Software
Engineering)


Software systems that are intended to provide automated
support for software process activities.
CASE (contoh: Power Designer)
•

Upper-CASE
•

Memeriksa model sistem, membuat dokumentasi sistem,
generator kode secara otomatis membuat source code dari
model sistem, memberi panduan proses ke perekayasa.
Tools to support the early process activities of requirements
and design;
Lower-CASE
•
©Ian Sommerville
Tools to support later activities such as programming,
debugging and testing.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 34
What are the attributes of good software?

The software should deliver the required functionality and
performance to the user and should be .
•
Maintainability (dapat dipelihara)
• Software must evolve to meet changing needs;
•
Dependability (dapat diandalkan)
• Software must be trustworthy (aman, selamat, tdk
menyebabkan keruksakan fisik);
•
Efficiency (Efisien)
• Software should not make wasteful use of system
resources;
•
Acceptability (Kemampupakaian)
• Software must accepted by the users for which it was
designed. This means it must be understandable, usable
and compatible with other systems.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 35
What are the key challenges facing SE?

Heterogeneity/Heterogenitas
•
•

Delivery/Pengiriman
•
•

Developing techniques that lead to faster delivery of software;
Mempersingkat waktu kirim sistem besar dan kompleks, tanpa
mengurangi kualitas sistem.
Trust/Terpercaya
•

Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
Fleksibel terhadap berbagai platform hardware & software
Developing techniques that demonstrate that software can be
trusted by its users.
Legacy/Warisan
•
©Ian Sommerville
Memelihara dan mengupdate software sedemikian dengan
biaya ringan dan layanan bisnis penting tetap bisa dilakukan.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 36
Professional and ethical responsibility



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.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 37
Issues of professional responsibility

Confidentiality/Konfidentialitas
•

Perekayasa umumnya harus menghormati
konfidensialitas atasan atau klien walaupun tidak
ada persetujuan konfidensialitas format yg
ditandatangai
Competence /Kompetensi
•
©Ian Sommerville
Perekayasa tidak boleh menyalahi tingkat
kompetensinya. Mereka tidak boleh dengan sadar
menerima pekerjaan yang melebihi kompetensi
mereka.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 38
Issues of professional responsibility

Intellectual property rights/Hak properti intelektual
•

Perekayasa harus menyadari hukum lokal yang mengatur
penggunaan properti intelektual seperti paten, hak cipta, dsb.
Mereka harus hati-hati untuk memastikan bahwa properti
intelektual atasan dan klien terlindungi.
Computer misuse/Penyalahgunaan komputer
•
©Ian Sommerville
Perekayasa perangkat lunak tidak boleh menggunakan
keahlian teknis mereka untuk menyalahgunakan komputer
orang lain. Penyalahgunaan komputer bisa berkisar dari hal
yang relatif ringan(mis. Memainkan game pada komputer
atasan) sampai yang sangat serius (mis. Menyebarkan virus).
Rekayasa Perangkat Lunak, Kuliah 1
Slide 39
ACM/IEEE Code of Ethics



The professional societies in the US have
cooperated to produce a code of ethical practice.
Members of these organisations sign up to the
code of practice when they join.
The Code contains eight Principles related to the
behaviour of and decisions made by professional
software engineers, including practitioners,
educators, managers, supervisors and policy
makers, as well as trainees and students of the
profession.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 40
Code of ethics - preamble

Preamble
•
•
©Ian Sommerville
The short version of the code summarizes aspirations at a high
level of the abstraction; the clauses that are included in the full
version give examples and details of how these aspirations
change the way we act as software engineering professionals.
Without the aspirations, the details can become legalistic and
tedious; without the details, the aspirations can become high
sounding but empty; together, the aspirations and the details
form a cohesive code.
Software engineers shall commit themselves to making the
analysis, specification, design, development, testing and
maintenance of software a beneficial and respected profession.
In accordance with their commitment to the health, safety and
welfare of the public, software engineers shall adhere to the
following Eight Principles:
Rekayasa Perangkat Lunak, Kuliah 1
Slide 41
Code of ethics - principles

PUBLIC
•
•

CLIENT AND EMPLOYER
•
•

Software engineers shall act consistently with the public
interest.\
Konsisten dan sesuai dgn kepentingan masyarakat
Software engineers shall act in a manner that is in the best
interests of their client and employer consistent with the public
interest.
Melakukan terbaik bag klien dan atasan mereka, konsis dgn
kepentingan masyarakat
PRODUCT
•
•
©Ian Sommerville
Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
Memenuhi standar intenational yg tinggi
Rekayasa Perangkat Lunak, Kuliah 1
Slide 42
Code of ethics - principles

JUDGMENT
•
•

MANAGEMENT
•
•

Software engineers shall maintain integrity and independence
in their professional judgment.
Perekayasa akan mempertahankan integritas dan
independensi penilaian profesional mereka
Software engineering managers and leaders shall subscribe to
and promote an ethical approach to the management of
software development and maintenance.
Manajer dan pemimpin rekayasa akan mengikuti dan
mempromosikan pendekatan etis terhadap manajemen
pengembangan dan pemeliharaan software
PROFESSION
•
©Ian Sommerville
Software engineers shall advance the integrity and reputation of
the profession consistent with the public interest.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 43
Code of ethics - principles


COLLEAGUES
•
Software engineers shall be fair to and supportive of
their colleagues.
•
Perekayasa akan bersifat adil dan mendukung terhadap
koleganya
SELF
•
Software engineers shall participate in lifelong
learning regarding the practice of their profession
and shall promote an ethical approach to the practice
of the profession.
•
Perekayasa akan berpartisipasi dalam pembelajaran seumur
hidup ttg prakter profesi mereka dan akan mempromosikan
pendekatan etis terhadap praktek profesi tsb.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 44
Ethical Dilemmas



Disagreement in principle with the policies of
senior management.
Your employer acts in an unethical way and
releases a safety-critical system without finishing
the testing of the system.
Participation in the development of military
weapons systems or nuclear systems.
©Ian Sommerville
Rekayasa Perangkat Lunak, Kuliah 1
Slide 45
Key Points

Software engineering is an engineering discipline that is
concerned with all aspects of software production.
•

Rekayasa perangkat lunak adalah disiplin ilmu yg berkaitan dgn
semua aspek produksi perangkat lunak
Software products consist of developed programs and
associated documentation. Essential product attributes
are maintainability, dependability, efficiency and usability.
•
©Ian Sommerville
Produk perangkat lunak terdiri dari program yg dikembangkan
dandokumentasi yg relevan. Atribut produk yg penting adalah
dapat dipelihara, dapat diandalkan, efisien,dan
kempupakaian(usability).
Rekayasa Perangkat Lunak, Kuliah 1
Slide 46
Key Points

The software process consists of activities that are
involved in developing software products. Basic activities
are software specification, development, validation and
evolution.
•

Proses perangkat lunak terdiri dari kegiatan2 yg dialkukan
dalam pengembangan produk perangkat lunak. Kegiatan
dasarnya adalah spesifikasi, pengembangan, validasi, dan
evolusi perangkat lunak.
Methods are organised ways of producing software. They
include suggestions for the process to be followed, the
notations to be used, rules governing the system
descriptions which are produced and design guidelines.
•
©Ian Sommerville
Metode adalah cara yg teratur utk memproduksi perangkat
lunak. Metode mencakupusulan proses g akan diikuti, notasi yg
digunakan, aturan utk deskripsi sistem yg dihasilkan, dan
panduan perancangan.
Rekayasa Perangkat Lunak, Kuliah 1
Slide 47
Key Points

CASE tools are software systems which are designed to
support routine activities in the software process such as
editing design diagrams, checking diagram consistency
and keeping track of program tests which have been run.
•
©Ian Sommerville
CASE tool adalah sistem perangkat lunak yg dirancang utuk
mendukung kegiatan rutin pada proses perangkat lunak spt
pengeditan diagram perancangan, pemeriksaan konsistensi
diagram, dan menurut pengujian program yg telah dijalankan
Rekayasa Perangkat Lunak, Kuliah 1
Slide 48
Key Points

Software engineers have responsibilities to the
engineering profession and society. They should not
simply be concerned with technical issues.
•

Perekayasa perangkat lunak mempunyai tanggung jawab
terhadap profesi rekayasa dan masyarakat. Mereka tidak boleh
hanya memikirkan isu etika
Professional societies publish codes of conduct which set
out the standards of behaviour expected of their
members.
•
©Ian Sommerville
Masyarakat professional menerbitkan kode perilaku yg
menentukan standar perilaku yg diharapkan dari anggotanya
Rekayasa Perangkat Lunak, Kuliah 1
Slide 49