78
CHAPTER 1 INTRODUCTION Lecture 1 By: Ir. Neni Sahara Noerdin,M.Si Neni S. Noerdin ch1 introductions 1

Ch1 Introduction

Embed Size (px)

DESCRIPTION

name

Citation preview

  • 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