Post on 22-Nov-2015
description
CHAPTER 1
INTRODUCTION
Lecture 1
By: Ir. Neni Sahara Noerdin,M.Si
Neni S. Noerdin ch1 introductions 1
Topics covered
Professional software development
Apa yang dimaksud dengan software engineering (rekayasa
perangkat lunak).
Software engineering ethics
Sebuah pengantar singkat untuk masalah etika yang
mempengaruhi software engineering.
Case studies
Pengantar untuk tiga contoh yang digunakan dalam topik
selanjutnya.
ch1 introductions 2 Neni S. Noerdin
What is Software Engineering
Software Engineers membangun software systems
Membangun software system memerlukan
(1) Planning,
(2) Understand what needed to be built,
(3) Designing the system,
(4) Writing the programs,
(5) Testing, and
(6) Maintaining the system.
Neni S. Noerdin ch1 introductions 3
Software Engineers use knowledge of Computer
Science to Solve problems
COMPUTER SCIENCE
SOFTWARE
ENGINEERING
CUSTOMER
Theories
Tools and
Techniques to
Solve Problem
Problem Computer
Functions
Neni S. Noerdin ch1 introductions 4
Problem Solving: Analysis
PROBLEM
Subproblem 1 Subproblem3
Subproblem 2 Subproblem 4
Neni S. Noerdin ch1 introductions 5
Problem Solving: Synthesis
SOLUTION
Solution 1 Solution 3
Solution 2 Solution 4
Neni S. Noerdin ch1 introductions 6
How successful have we been?
Menulis software adalah seni dan ilmu.
Software engineering adalah tentang mendesain high-
quality software.
System Crash!!!
Seeking wrong target!!!
Neni S. Noerdin ch1 introductions 7
What is Good software?
Context membantu menemukan jawaban
Games and Safety-critical systems mempunyai standard yang
berbeda
Evaluate software by evaluating
quality of the product
quality of the process
quality pada context lingkungan business
Neni S. Noerdin ch1 introductions 8
Quality of the product
Correctness
Reliability
Usability
Testability
Maintainability
Neni S. Noerdin ch1 introductions 9
Quality of the Process
Beberapa kegiatan pengembangan akan mempengaruhi
kualitas hasil akhir
Memahami apa yang diinginkan customers dan users
Code reviews
Kapan melakukan testing
Neni S. Noerdin ch1 introductions 10
Quality in Context of the Business Environment
Return on investment
Ditunjukkan dalam dollars
Ditunjukkan dengan upaya:
schedule
productivity
customer
Neni S. Noerdin ch1 introductions 11
Who does software engineering?
CUSTOMER Sponsors system
development
USER
Uses
system
DEVELOPER
Builds
system
Contractual
obligation
$$$,
needs
Software system
Needs
Neni S. Noerdin ch1 introductions 12
Understanding software systems:
A Systems Approach
System adalah kumpulan entities dan activities, ditambah
penjelasan hubungan keduanya.
Activity adalah sesuatu yang terjadi didalam system.
Elements yang terlibat didalam activity disebut entity.
Sekali entity dan activity didefinisikan, berarti mencocokkan entity
dengan activity.
Neni S. Noerdin ch1 introductions 13
System Boundary: Input and Output
System boundary
Mail room
Date
validation
Calculation
Pay information Pay checks
Printing
Neni S. Noerdin ch1 introductions 14
Building software systems:
An Engineering Approach
Perkembangan software projects mempunyai cara yang
sama dengan proses membangun rumah.
Tanyakan customers bagimana rumah yang diinginkan untuk
dibangun
Gambarkan perencanaan lantai (kamar) ((Model rumah))
Mendesain interior (e.g. dimana switch lampu akan diletakkan)
Testing setiap subsystem (e.g. testing setiap switch lampu,
electrical subsystem)
Testing semua pekerjaan secara bersamaan
Pemeliharaan rumah
Neni S. Noerdin ch1 introductions 15
Software development process
requirements analysis and definition
system design
program design
writing the programs (program implementation)
unit testing
integration testing
system testing
system delivery
maintenance
Neni S. Noerdin ch1 introductions 16
Members of the development team
MAINTENANCE
SYSTEM DESIGN
REQUIREMENTS
ANALYSIS AND DEFINITION
PROGRAM DESIGN
PROGRAM
IMPLEMENTATION
UNIT TESTING
INTEGRATION TESTING
SYSTEM TESTING
SYSTEM DELIVERY
SO
FT
WA
RE
DE
VE
LO
PM
EN
T S
TE
PS
D
EV
EL
OP
ER
RO
LE
S
ANALYST
DESIGNER
PROGRAMMER
TESTER
TRAINER
Neni S. Noerdin ch1 introductions 17
How has software engineering changed?
Time to market
Shifts in economics
Desktop computing
Networking
Object technology Problems with waterfall
User interfaces
CHANGES IN
SOFTWARE
ENGINEERING
Neni S. Noerdin ch1 introductions 18
Fundamental notions in software engineering
Abstraction
Analysis and design methods and notations
User interface prototyping
Software Architecture
Software Process
Reuse
Measurement
Tools and Integrated Environments
Neni S. Noerdin ch1 introductions 19
Abstraction
Adalah penjelasan masalah pada beberapa tingkat
generalization yang mengizinkan untuk berkonsentrasi
pada aspek kunci masalah tanpa memperoleh detailnya.
Mengidentifikasi classes of objects yang memungkinkan
untuk mengelompokkan item.
Membentuk hierarchy
Neni S. Noerdin ch1 introductions 20
Abstraction
Electrical device
Sensor
Water sensor Air sensor
Neni S. Noerdin ch1 introductions 21
Analysis and Design Methods and Notations
Membangun model dan memeriksanya untuk
kelengkapan dan consistency
Menggunakan notasi standard untuk membantu
berkomunikasi dan mendokumentasi keputusan
Neni S. Noerdin ch1 introductions 22
User interface prototyping
Prototyping berarti membangun versi kecil dari sebuah
system untuk
Membantu user dan customer mengidentifikasi persyaratan kunci
system
Mendemonstrasikan kelayakan design atau pendekatan
Apakah user menyukai looks and feels?
Neni S. Noerdin ch1 introductions 23
Software Architecture
A systems architecture menggambarkan system dalam definisi sekumpulan architectural units, dan map (peta)
bagaimana units terhubung satu sama lain.
Neni S. Noerdin ch1 introductions 24
Software Architecture: Units
Cara membagi system kedalam units:
modular decomposition: berdasarkan pada menugaskan fungsi
untuk modul
data-oriented decomposition: berdasarkan pada struktur data
external
event-oriented decomposition: berdasarkan pada events (kejadian)
system yang harus ditangani
outside-in design: berdasarkan pada user inputs ke system
object-oriented design: berdasarkan pada mengidentifikasi class
objects dan hubungannya
Neni S. Noerdin ch1 introductions 25
Software Process
Process mengembangkan software (organisasi dan
disiplin pada activity)
Berkontribusi untuk quality software dan speed
(kecepatan waktu) dengan yang dikembangkan
Neni S. Noerdin ch1 introductions 26
Reuse
Mengambil keuntungan dari kesamaan diantara aplikasi
dengan menggunakan kembali (reusing) items dari
pengembangan sebelumnya
Reusable components sebagai business asset
Neni S. Noerdin ch1 introductions 27
Measurement
Dengan mengukur where we can and what we can
(dimana kita bisa dan apa kita bisa), menjelaskan
tindakan dan hasilnya dalam bahasa matematik yang
umum yang memungkinkan untuk dievaluasi
perkembangannya.
Neni S. Noerdin ch1 introductions 28
Tools and Integrated Environments
Menggunakan tools untuk memperbaiki pengembangan
software
tools untuk membantu tracking perkembangan software yang
dikembangkan
tools untuk membantu debugging programs
tools untuk membantu testing programs
Neni S. Noerdin ch1 introductions 29
Any Question ???
ch1 introductions 30 Neni S. Noerdin
Software engineering
Perekonomian SEMUA negara maju tergantung pada
software.
Semakin banyak software system yang dikendalikan.
Software engineering berkaitan dengan teori, metode dan
alat untuk pengembangan perangkat lunak profesional.
Pengeluaran pada software merupakan fraksi signifikan
GNP di semua negara berkembang?
Neni S. Noerdin ch1 introductions 31
Software costs
Biaya software sering di dominasi biaya computer system.
Biaya software pada PC sering lebih besar dari biaya
hardware.
Biaya software lebih banyak untuk pemeliharaan daripada
untuk pengembangan. Untuk sistem dengan umur
panjang, biaya pemeliharaan mungkin beberapa kali
biaya pengembangan.
Software engineering berkaitan dengan pengembangan
software hemat biaya (cost-effective).
Neni S. Noerdin ch1 introductions 32
Software products
Generic products
Stand-alone systems yang dipasarkan dan dijual kepada customer
yang ingin membelinya.
Examples PC software seperti graphics programs, project management tools; CAD software; software untuk pasar khusus
seperti sistem janji untuk dokter gigi.
Customized products
Software yang ditugaskan oleh customer yang spesifik untuk
memenuhi kebutuhan mereka sendiri.
Examples embedded control systems, air traffic control software, traffic monitoring systems.
ch1 introductions 33 Neni S. Noerdin
Product specification
Generic products
Spesifikasi apa yang harus dilakukan software adalah dimiliki oleh
pengembang software dan keputusan tentang perubahan software
yang dibuat oleh pengembang.
Customized products
Spesifikasi apa yang harus dilakukan software adalah dimiliki oleh
customer untuk software dan customer membuat keputusan pada
perubahan software yang diperlukan.
ch1 introductions 34 Neni S. Noerdin
Frequently asked questions about software engineering
ch1 introductions 35
Question Answer
Apakah software? Computer programs dan dokumentasi terkait. Produk
software dapat dikembangkan untuk customer tertentu
atau dapat dikembangkan untuk pasar umum.
Apakah attributes dari software yang
baik?
Software yang baik harus memberikan fungsi yang
diperlukan dan kinerja untuk pengguna dan harus
dipertahankan, dapat diandalkan dan bermanfaat.
Apakah software engineering? Software engineering adalah disiplin teknik yang
berkaitan dengan semua aspek produksi software.
Apa kegiatan software engineering
mendasar?
Software specification, software development, software
validation and software evolution.
Apa perbedaan antara software
engineering and computer science?
Computer science berfokus pada teori dan fundamental,
software engineering berkaitan dengan kepraktisan
mengembangkan dan memberikan software yang
berguna.
Apa perbedaan antara software
engineering and system engineering?
System engineering (Sistem rekayasa) berkaitan dengan
semua aspek pengembangan sistem berbasis komputer
termasuk hardware, software and process engineering.
Software engineering adalah bagian dari proses ini lebih
umum.
Neni S. Noerdin
Frequently asked questions about software engineering
Question Answer
Apa saja tantangan utama yang dihadapi
software engineering?
Mengatasi dengan meningkatnya keragaman, tuntutan
untuk mengurangi waktu pengiriman dan
mengembangkan software yang dapat dipercaya.
Berapa biaya software engineering? Kira-kira 60% dari biaya perangkat lunak adalah biaya
pengembangan, 40% sedang menguji biaya. Untuk
custom software, biaya evolusi sering melebihi biaya
pengembangan..
Apa saja teknik software engineering dan
metode terbaik?
Sementara semua proyek software harus dikelola secara
profesional dan dikembangkan, teknik yang berbeda
sesuai untuk berbagai jenis sistem. Misalnya, game harus
selalu dikembangkan dengan menggunakan serangkaian
prototype sedangkan keamanan sistem kontrol kritis
memerlukan spesifikasi lengkap dan dianalisis untuk
dikembangkan. Anda tidak bisa, karena itu, mengatakan
bahwa satu metode lebih baik daripada yang lain.
Perbedaan apa yang telah dibuat web
untuk software engineering?
Web telah menyebabkan ketersediaan layanan software
dan kemungkinan pengembangan sangat didistribusikan
sistem berbasis pelayanan. Pengembangan sistem
berbasis web telah menyebabkan kemajuan penting
dalam bahasa pemrograman dan penggunaan kembali
software.
ch1 introductions 36 Neni S. Noerdin
Essential attributes of good software
ch1 introductions 37
Product characteristic Description
Maintainability Software harus ditulis sedemikian rupa sehingga dapat berevolusi
untuk memenuhi perubahan kebutuhan pelanggan. Ini merupakan
atribut yang penting karena perubahan perangkat lunak adalah
kebutuhan yang tak terelakkan dari perubahan lingkungan bisnis..
Dependability and
security
Software dependability mencakup berbagai karakteristik termasuk
keandalan, keamanan dan keselamatan. Dependable software
(Software yang bisa diandalkan) seharusnya tidak menyebabkan
kerusakan fisik atau ekonomi jika terjadi kegagalan sistem.
Pengguna yang jahat seharusnya tidak dapat mengakses atau
merusak sistem.
Efficiency Software tidak harus membuat pemborosan sumber daya sistem
seperti memori dan siklus prosesor. Efisiensi karena itu termasuk
respon, waktu pemrosesan, penggunaan memori, dll
Acceptability Software harus diterima oleh jenis pengguna untuk yang
dirancang. Ini berarti bahwa itu harus dipahami, digunakan dan
kompatibel dengan sistem lain yang mereka gunakan.
Neni S. Noerdin
Software engineering
Software engineering adalah disiplin teknik yang
berkaitan dengan semua aspek produksi software dari
tahap awal spesifikasi sistem sampai pemeliharaan
sistem setelah digunakan.
Engineering discipline
Menggunakan teori dan metode yang tepat untuk memecahkan
masalah mengingat kendala organisasi dan keuangan.
All aspects of software production
Bukan hanya proses teknis pembangunan. Juga manajemen
proyek dan pengembangan alat, metode dll untuk mendukung
produksi software.
ch1 introductions 38 Neni S. Noerdin
Importance of software engineering
Semakin banyak individu dan masyarakat bergantung
pada sistem software canggih. Engineers harus mampu
menghasilkan sistem yang dapat diandalkan dan dapat
dipercaya ekonomis dan cepat.
Biasanya lebih murah, dalam jangka panjang, untuk
menggunakan metode dan teknik software engineeering
untuk software system daripada hanya menulis program
seolah-olah itu adalah proyek pemrograman pribadi.
Untuk sebagian besar jenis sistem, sebagian besar biaya
adalah biaya untuk mengubah perangkat lunak setelah
mulai digunakan.
ch1 introductions 39 Neni S. Noerdin
Software process activities
Software specification, di mana pelanggan dan engineer
menentukan software yang akan diproduksi dan kendala
pada operasi.
Software development, di mana software ini dirancang
dan diprogram.
Software validation, di mana software akan diperiksa
untuk memastikan apa yang dibutuhkan customer.
Software evolution, di mana software dimodifikasi untuk
mencerminkan perubahan customer dan kebutuhan
pasar.
ch1 introductions 40 Neni S. Noerdin
General issues that affect most software
Heterogeneity
Semakin banyak, sistem yang diperlukan untuk beroperasi sebagai
sistem terdistribusi melalui jaringan yang mencakup berbagai jenis
komputer dan perangkat mobile.
Business and social change
Bisnis dan masyarakat berubah sangat cepat sebagai munculnya
perkembangan ekonomi dan teknolog baru menjadi tersedia. Ini
harus bisa mengubah software yang ada dan dengan cepat
mengembangkan software baru.
Security and trust
Seperti software yang terkait dengan semua aspek kehidupan,
adalah penting bahwa software harus bisa dipercaya.
ch1 introductions 41 Neni S. Noerdin
Software engineering diversity
Ada berbagai jenis software system dan tidak ada aturan
universal teknik software yang berlaku untuk semuanya.
Metode dan peralatan software engineering yang
digunakan tergantung pada jenis aplikasi yang sedang
dikembangkan, persyaratan dari customer dan latar
belakang dari tim pengembang.
ch1 introductions 42 Neni S. Noerdin
Application types
Stand-alone applications
Ini adalah sistem aplikasi yang dijalankan pada komputer lokal,
seperti PC. Ini mencakup semua fungsi yang diperlukan dan tidak
perlu terhubung ke jaringan.
Interactive transaction-based applications
Aplikasi yang dijalankan pada komputer remote dan diakses oleh
pengguna PC atau terminal. Ini termasuk aplikasi web seperti
aplikasi e-commerce.
Embedded control systems
Ini adalah sistem kontrol software yang mengendalikan dan
mengelola hardware. Secara jumlah, mungkin ada lebih banyak
embedded systems daripada jenis system lainnya.
ch1 introductions 43 Neni S. Noerdin
Application types
Batch processing systems
These are business systems that are designed to process data in
large batches. Memroses sejumlah individual inputs untuk
membuat hubungan outputs.
Entertainment systems
Ini adalah systems yang terutama untuk penggunaan personal dan
yang dimaksudkan untuk menghibur user.
Systems for modeling and simulation
Ini adalah systems yang dikembangkan oleh scientists dan
engineers untuk memodelkan proses beberapa interaksi object
yang terpisah.
ch1 introductions 44 Neni S. Noerdin
Application types
Data collection systems
Ini adalah systems yang mengumpulkan data dari lingkungannya
menggunakan sekumpulan sensors dan mengirim data tersebut ke
systems lain untuk processing.
Systems of systems
Ini adalah systems yang terdiri dari sejumlah software systems
lainnya.
ch1 introductions 45 Neni S. Noerdin
Software engineering fundamentals
Beberapa prinsip dasar berlaku untuk semua jenis sistem
software, terlepas dari teknik pengembagan yang
digunakan:
Sistem harus dikembangkan dengan menggunakan proses
pegembangan dikelola dan dipahami. Tentu saja, proses yang
berbeda digunakan untuk berbagai jenis software.
Ketergantungan dan kinerja penting untuk semua jenis sistem.
Memahami dan mengelola spesifikasi software dan persyaratan
(apa yang harus dilakukan software) adalah penting.
Apabila diperlukan, gunakan kembali software yang telah
dikembangkan daripada menulis software baru.
ch1 introductions 46 Neni S. Noerdin
Software engineering and the web
Web sekarang menjadi platform untuk menjalankan
aplikasi dan organisasi semakin mengembangkan sistem
berbasis web daripada sistem lokal.
Layanan web memungkinkan fungsionalitas aplikasi
dapat diakses melalui web.
Cloud computing adalah suatu pendekatan terhadap
penyediaan layanan komputer di mana aplikasi dijalankan
dari jarak jauh pada cloud'.
Users tidak membeli software, tapi membayar sesuai yang
digunakan.
ch1 introductions 47 Neni S. Noerdin
Web software engineering
Software reuse adalah pendekatan dominan untuk
membangun web-based systems.
Ketika membangun system ini, pikirkan tentang bagaimana merakitnya
dari komponen software dan system yang ada sebelumnya.
Web-based systems harus dikembangkan dan serahkan
secara bertahap.
Sekarang secara umum diakui bahwa itu tidak praktis untuk
menentukan semua persyaratan untuk sistem seperti ini diawal.
User interfaces dibatasi oleh kemampuan web browsers.
Teknologi seperti AJAX memungkinkan interface yang kaya yang akan
dibuat dalam web browser, tetapi masih sulit untuk digunakan. Formulir
web dengan scripting lokal yang lebih umum digunakan.
ch1 introductions 48 Neni S. Noerdin
Web-based software engineering
Web-based systems adalah system terdistribusi yang
rumit tapi prinsip-prinsip dasar software engineering yang
dibahas sebelumnya dapat diaplikasikan untuk berbagai
type system.
Ide-ide dasar software engineering, didiskusikan dibagian
sebelumnya, diaplikasikan ke web-based software
dengan cara yang sama yang diaplikasikan ke type
lainnya software system.
ch1 introductions 49 Neni S. Noerdin
Key points
Software engineering adalah disiplin teknik yang
berkaitan dengan semua aspek produksi software.
Atribut produk software penting adalah maintainability,
dependability and security, efficiency and acceptability.
Kegiatan tingkat tinggi spesifikasi, pengembangan,
validasi dan evolusi adalah bagian dari semua proses
perangkat lunak.
Pengertian dasar software engineering yang universal
berlaku untuk semua jenis pengembangan sistem.
ch1 introductions 50 Neni S. Noerdin
Key points
Ada berbagai jenis sistem dan masing-masing
membutuhkan alat dan teknik software engineering yang
tepat dan teknik untuk mengembangkannya.
Ide-ide dasar software engineering yang berlaku untuk
semua jenis software system.
ch1 introductions 51 Neni S. Noerdin
Any Question ???
ch1 introductions 52 Neni S. Noerdin
CHAPTER 1
INTRODUCTION
Lecture 2
Neni S. Noerdin ch1 introductions 53
Software engineering ethics
Software engineering melibatkan tanggung jawab yang
lebih luas dari sekedar penerapan keterampilan teknis.
Software engineers harus bertindak dengan cara yang
jujur dan bertanggung jawab secara etis jika mereka harus dihormati sebagai profesional.
Perilaku etis lebih dari sekedar penegakan hukum tetapi
melibatkan mengikuti seperangkat prinsip-prinsip yang
benar secara moral.
Neni S. Noerdin ch1 introductions 54
Issues of professional responsibility
Confidentiality Engineers biasanya harus menghormati kerahasiaan
employers atau clients-nya terlepas dari apakah ada atau tidak perjanjian kerahasiaan resmi yang ditandatangani.
Competence Engineers tidak harus menggambarkan tingkat
kompetensi. Seharusnya tidak menerima pekerjaan yang diluar kompetensi-nya.
Neni S. Noerdin ch1 introductions 55
Issues of professional responsibility
Intellectual property rights
Engineers harus menyadari hukum yang mengatur penggunaan
intellectual property (kekayaan intelektual) seperti patents,
copyright, etc. Harus secara hati-hati memastikan bahwa
intellectual property dari employers and clients dilindungi.
Computer misuse
Software engineers tidak harus menggunakan technical skills-nya
untuk menyalahgunakan computer orang lain. Berkisar
penyalahgunaan komputer dari yang relatif sepele (bermain game
pada employers machine, misalnya) untuk yang sangat serius (menyebarkan virus).
Neni S. Noerdin ch1 introductions 56
ACM/IEEE Code of Ethics
Masyarakat profesional di US telah bekerja sama untuk menghasilkan kode praktek etis.
Anggota organisasi ini mendaftar untuk kode praktek ketika bergabung.
Kode berisi delapan Prinsip yang berkaitan dengan perilaku dan keputusan dibuat oleh para software engineers profesional, termasuk praktisi, pendidik, manajer, supervisor dan pembuat kebijakan, serta trainee dan mahasiswa profesi.
Neni S. Noerdin ch1 introductions 57
Rationale for the code of ethics
Komputer memiliki peran sentral dan berkembang dalam perdagangan,
industri, pemerintah, kedokteran, pendidikan, hiburan dan masyarakat
pada umumnya. Software engineers adalah mereka yang berkontribusi
dengan partisipasi langsung atau dengan mengajar, untuk analisis,
spesifikasi, desain, pengembangan, sertifikasi, pemeliharaan dan
pengujian software systems.
Karena peran mereka dalam mengembangkan software systems,
software engineers memiliki kesempatan signifikan untuk berbuat baik
atau menyebabkan membahayakan, atau untuk mempengaruhi orang
lain untuk berbuat baik atau menyebabkan membahayakan. Untuk
memastikan, sebanyak mungkin, bahwa upaya mereka akan
digunakan untuk kebaikan, software engineers harus komitmen untuk
membuat software engineering profesi yang menguntungkan dan
dihormati.
ch1 introductions 58 Neni S. Noerdin
The ACM/IEEE Code of Ethics
ch1 introductions 59
Software Engineering Code of Ethics and Professional Practice
ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices
PEMBUKAAN
Versi pendek dari kode merangkum aspirasi pada tingkat tinggi abstraksi, sedangkan klausa
yang disertakan dalam versi lengkap memberikan contoh-contoh dan rincian tentang
bagaimana aspirasi ini mengubah cara kita bertindak sebagai software engineering
professionals. Tanpa aspirasi, rincian bisa menjadi legalistic dan membosankan, tanpa
rincian, aspirasi dapat menjadi tinggi terdengar tapi kosong, bersama-sama, aspirasi dan
rincian bentuk kode kohesif. Software engineers harus berkomitmen untuk membuat
analisis, spesifikasi, desain, pengembangan, pengujian dan pemeliharaan software suatu
keuntungan dan profesi yang dihormati. Sesuai dengan komitmen mereka untuk kesehatan,
keselamatan dan kesejahteraan masyarakat, software engeener harus mematuhi Delapan
Prinsip berikut:
Neni S. Noerdin
Ethical principles
ch1 introductions 60
1. PUBLIC - Software engineers harus bertindak secara konsisten dengan
kepentingan publik.
2. CLIENT AND EMPLOYER - Software engineers harus bertindak dengan cara
kepentingan terbaik dari client and employer-nya yang konsisten dengan
kepentingan publik.
3. PRODUCT - Software engineers harus memastikan bahwa produk dan modifikasi
yang terkait dengan memenuhi standar profesional setinggi mungkin.
4. JUDGMENT - Software engineers harus mempertahankan integritas dan
kemandirian dalam penilaian profesionalnya.
5. MANAGEMENT - Software engineering managers dan leaders harus menyetujui
dan mempromosikan pendekatan etis kepada management pengembangan dan
pemeliharaan software.
6. PROFESSION - Software engineers harus mendahulukan integrity dan reputasi
profesi yang consistent dengan kepentingan public.
7. COLLEAGUES - Software engineers harus bersikap adil dan mendukung rekan-
rekannya.
8. SELF - Software engineers harus berpartisipasi dalam belajar seumur hidup
tentang praktek profesi-nya dan akan mempromosikan pendekatan etis untuk
praktek profesi.
Neni S. Noerdin
Ethical dilemmas
Ketidaksepakatan pada prinsip dengan kebijakan senior
management.
Pekerja bertindak dengan cara yang tidak etis dan
melepaskan sistem keamanan kritis tanpa menyelesaikan
pengujian sistem.
Partisipasi dalam pengembangan sistem senjata militer
atau sistem nuklir.
Neni S. Noerdin ch1 introductions 61
Case studies
Pompa insulin pribadi (A personal insulin pump)
An embedded system pada sebuah pompa insulin digunakan oleh penderit diabetes untuk menjaga kontrol gula darah.
Sistem manajemen pasien perawatan kesehatan mental (A mental health care patient management system)
Sebuah system yang digunakan untuk memelihara records orang-orang yang menerima perawatan untuk masalah kesehatan mental.
Stasiun cuaca hutan rimba (A wilderness weather station)
Suatu sistem pengumpulan data tentang kondisi cuaca di remote areas.
ch1 introductions 62 Neni S. Noerdin
Insulin pump control system
Mengumpulkan data dari sensor gula darah dan menghitung jumlah insulin yang diperlukan untuk disuntikkan.
Perhitungan berdasarkan pada laju perubahan kadar gula darah.
Mengirimkan sinyal ke micro-pump untuk memberikan dosis insulin yang tepat.
Safety-critical system sebagai gula darah rendah dapat menyebabkan kerusakan otak, koma dan kematian; kadar gula darah tinggi mempunyai konsekuensi jangka panjang seperti kerusakan mata dan ginjal.
ch1 introductions 63 Neni S. Noerdin
Insulin pump hardware architecture
ch1 introductions 64 Neni S. Noerdin
Activity model of the insulin pump
ch1 introductions 65 Neni S. Noerdin
Essential high-level requirements
Sistem ini harus tersedia untuk memberikan insulin saat
diperlukan.
Sistem ini akan melakukannya dengan andal dan
memberikan jumlah insulin yang benar untuk mengatasi
gula darah.
Oleh karena itu sistem ini harus dirancang dan
dilaksanakan untuk memastikan bahwa sistem selalu
memenuhi persyaratan.
ch1 introductions 66 Neni S. Noerdin
A patient information system for mental
health care Sistem informasi pasien untuk mendukung perawatan
kesehatan mental adalah sistem informasi medis yang menangani informasi tentang pasien yang menderita masalah kesehatan mental dan perawatan yang mereka terima.
Kebanyakan pasien kesehatan jiwa paling tidak memerlukan perawatan rumah sakit yang didedikasikan, tetapi mereka juga perlu menghadiri klinik spesialis secara teratur di mana mereka dapat bertemu dokter yang mempunyai pengetahuan rinci tentang masalah mereka.
Untuk memudahkan pasien hadir, klinik ini tidak hanya berjalan di rumah sakit. Pasien juga dapat ditangani di praktek medis lokal atau pusat-pusat komunitas.
ch1 introductions 67 Neni S. Noerdin
MHC-PMS
The MHC-PMS (Mental Health Care-Pasien Management System) adalah sistem informasi yang dimaksudkan untuk digunakan pada klinik.
Ini membuat penggunaan database terpusat dari informasi pasien tapi juga didesain untuk berjalan pada PC, sehingga dapat diakses dan digunakan dari tempat yang tidak mempunyai konektivitas jaringan yang aman.
Ketika sistem lokal memiliki akses jaringan yang aman, petugas menggunakan informasi pasien dalam database tetapi petugas dapat men-download dan menggunakan salinan lokal catatan pasien ketika mereka disconnected.
ch1 introductions 68 Neni S. Noerdin
MHC-PMS goals
Untuk menghasilkan informasi manajemen yang
memungkinkan manajer pelayanan kesehatan untuk
menilai kinerja terhadap target dan pemerintah setempat.
Untuk menyediakan staf medis dengan informasi yang
tepat waktu untuk mendukung pengobatan pasien.
ch1 introductions 69 Neni S. Noerdin
The organization of the MHC-PMS
ch1 introductions 70 Neni S. Noerdin
MHC-PMS key features
Individual care management Dokter dapat membuat catatan untuk pasien, mengedit informasi
dalam sistem, melihat riwayat pasien, dll Sistem ini mendukung ringkasan data sehingga dokter dapat dengan cepat belajar tentang masalah utama dan perawatan yang telah ditentukan.
Patient monitoring Sistem ini memonitor catatan pasien yang terlibat dalam peringatan
pengobatan dan masalah jika kemungkinan masalah terdeteksi.
Administrative reporting Sistem ini menghasilkan laporan manajemen bulanan yang
menunjukkan jumlah pasien yang dirawat di setiap klinik, jumlah pasien yang telah masuk dan meninggalkan sistem perawatan, jumlah pasien yang dioperasi, obat yang diresepkan serta biaya, dll
ch1 introductions 71 Neni S. Noerdin
MHC-PMS concerns
Privacy
Sangat penting bahwa informasi pasien bersifat rahasia dan tidak
pernah diungkapkan kepada siapa pun selain dari staf medis yang
berwenang dan pasien sendiri.
Safety
Beberapa penyakit mental menyebabkan pasien bunuh diri atau
membahayakan orang lain. Sedapat mungkin, sistem harus
memperingatkan staf medis tentang pasien yang berpotensi bunuh
diri atau berbahaya.
Sistem ini harus tersedia saat dibutuhkan jika tidak keselamatan
dapat dikompromikan dan mungkin mustahil untuk meresepkan
obat yang tepat untuk pasien.
ch1 introductions 72 Neni S. Noerdin
Wilderness weather station
Pemerintah suatu negara dengan area hutan yang luas
memutuskan untuk menyebar beberapa ratus stasiun
cuaca di daerah terpencil.
Stasiun cuaca mengumpulkan data dari seperangkat
instrumen yang mengukur suhu dan tekanan, sinar
matahari, hujan, kecepatan angin dan arah angin.
Stasiun cuaca mencakup sejumlah instrumen yang mengukur
parameter cuaca seperti kecepatan dan arah angin, tanah dan
suhu udara, tekanan udara dan curah hujan selama periode 24-
jam. Masing-masing instrumen ini dikendalikan oleh sebuah sistem
perangkat lunak yang mengambil parameter pembacaan berkala
dan mengelola data yang dikumpulkan dari instrumen.
ch1 introductions 73 Neni S. Noerdin
The weather stations environment
ch1 introductions 74 Neni S. Noerdin
Weather information system
The weather station system Bertanggung jawab untuk mengumpulkan data cuaca, melakukan
beberapa pengolahan data awal dan mengirimkannya ke sistem manajemen data.
The data management and archiving system Sistem ini mengumpulkan data dari semua stasiun cuaca hutan rimba,
melakukan pengolahan data dan meng-analisis dan meng-arsip data.
The station maintenance system Sistem ini dapat berkomunikasi dengan satelit dengan semua stasiun
cuaca hutan rimba untuk memantau kesehatan sistem ini dan memberikan laporan masalah.
ch1 introductions 75 Neni S. Noerdin
Additional software functionality
Memonitor instrument, daya, dan komunikasi hardware
dan melaporkan kesalahan sistem manajemen.
Mengelola daya sistem, memastikan bahwa battery diisi
ketika kondisi lingkungan memungkinkan tetapi juga
generator dimatikan dalam kondisi cuaca yang
berpotensi merusak, seperti angin tinggi.
Mendukung rekonfigurasi dinamis di mana bagian
software diganti dengan versi baru dan di mana instrumen
backup di-alihkan ke sistem pada saat sistem gagal.
ch1 introductions 76 Neni S. Noerdin
Key points
Software engineers memiliki tanggung jawab terhadap
profesi engineering dan masyarakat. Mereka seharusnya
tidak hanya menjadi peduli dengan masalah teknis.
Masyarakat profesional mempublikasikan kode etik yang
menetapkan standar perilaku yang diharapkan dari
anggota mereka.
Tiga study kasus yang digunakan:
An embedded insulin pump control system
A system for mental health care patient management
A wilderness weather station
Neni S. Noerdin ch1 introductions 77
Any Question ???
ch1 introductions 78 Neni S. Noerdin