Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
REKAYASA PERANGKAT LUNAK
2
Introduction to Software Engineering
Evaluasi Software Tentang Software Karakteristik Software Komponen Software Aplikasi Software Sejarah Software Mengapa Software engineering? Apa yang dimaksud software engineering? Siapa yang melakukan software engineering?
3
Evolution of Software -beberapa tahun lalu: - Batch orientation
- Limited distribution - Custom software -era tahun ke -2: - Multiuser - Real-time - Database - Product software -era tahun ke - 3: - Distributed systems - Embedded “intelligence” - Low cost hardware - Consumer impact -era tahun ke - 4: - Powerful desk-top systems - Object-oriented technologies - Expert systems - Artificial neural networks - Parallel computing - Network computers 1950 1970 1960 1980 1990 2000 Beberapa tahun lalu Era tahun ke - 2 Era tahun ke - 3 Era tahun ke - 4
4
Karakteristik Software
Software memiliki fungsi ganda. Software dapat disebut sebagai produk, tetapi juga dapat disebut sebagai sarana yang dapat mengantarkan produk itu sendiri Software bersifat logical dibanding elemen fisik dari sistem Software memiliki beberapa karakteristik yang dapat membedakan dari hardware Software dikembangkan atau dibangun, tetapi tidak menghasilkan classical sense Banyak software yang sudah bisa digunakan secara langsung atau bersifat custom built, tetapi ada pula yang masih menggabungkan antar beberapa komponen.
5
Time Failure rate Failure curve for hardware Failure rate Time Failure curve for software (idealized) Continues at same rate until obsolescence Time Failure rate Failure curve for software Increased failure rate due to side effects actual curve idealzied curve change
6
Aplikasi Software System Software - Kumpulan dari beberapa program yang dibuat untuk memberikan servis terhadap program lainnya pada setiap level. Contohnya : compiler, operating sistem Real-time Software - Program yang dapat memonitor/menganalisa/mengontrol kejadian nyata yang terjadi di dunia ini Business Software - Program yang dapat mengakses, menganalisa dan memproses informasi bisnis. Engineering and Scientific Software - Software yang menggunakan algoritma “number crunching” untuk membedakan science dan applications. Sistem simulation, computer-aided design. Embedded Software - Software terletak pada read only memory dan digunakan untuk mengontrol produk dan sistem yang akan dikirimkan untuk konsumen dan industrial markets. Artificial Intelligence (AI) Software - program yang digunakan untuk teknik AI dan metodenya digunakan untuk memecahkan masalah yang kompleks. Contohnya : expert sistem, pengenalan pola, games. Internet Software - program yang mensupport pengaksesan internet. Contohnya : search engine, browser, e-commerce software,authoring tools. Software Tools and CASE environment - tools dan program yang dapat membantu pembuatan aplikasi software dan sistem.contohnya : test tools dan version control tools.
7
Software Crisis In the software industry, we have had a “crisis” that has been with us for close to 30 years. Meaning of the word “crisis” --> a turning point in the course of anything; decisive or crucial time, stage or event. --> the turning point in the course of a disease, when it becomes clear whether the patient will live or die. What we actually have in software industry is a “chronic affliction”. It means --> lasting a long time, recurring often, continuing indefinitely. Software crisis or software affliction --> a set of problems encountered in software production. --- Problems in developing software --- Problems in maintain a growing volume of existing software Typical examples: - Build a wrong product. - Project schedule problems - Cost estimation problems
8
Software Myths (I) Many causes of a software affliction can be traced to a mythology that arose during the early history of software development. -- Software myths propagated misinformation and confusions. They had a no. of attributes that made them insidious. -- Software managers often under pressure to maintain budgets, keep schedules from slipping, and improve quality. Myths --> misleading attitudes of people ---> serious problems in software production Management Myths: “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?” “My people do have state-of-the-art software development tools. After all, we but them the newest computers.” “If we get behind schedule, we can add more programmers and catch up.”
9
Software Myths (II) Customers dari software mungkin berasal dari :
- di luar perusahaan yang telah merequest software dibawah kontrak - seseorang yang berasal dari dalam (in house group) - marketing atau sales group. Customer Myths: “pernyataan umum adalah memulai dengan menulis program secukupnya kemudian kita dapat memberikan penjelasan dengan detail” “project requirement secara langsung berubah, tetapi perubahan dengan mudah dapat ditampung karena software bersifat fleksibel”
10
Software Myths (III) Pelaksana Software:
Planing group - System analysts, system architects Development group - Software engineers Verification group - Test engineers, quality assurance group Support group - Customer supporters, technical supports Marketing/sales - Marketing people and product sales Practitioner’s Myths: “pertama kali kita menulis program dan kemudian mendapatkan pekerjaan, sehingga pekerjaan kita selesai” “sampai pada akhirnya program dapat di running, sampai benar-benar yakin bahwa program tidak ada cara untuk meningkatkan quality” “software dapat diserahkan apabila telah berhasil (telah sukses)” Major task dari pembuatan software adalah teknik penulisan program. “Schedule dan requirement merupakan hal yang penting ketika kita menulis program”
11
What is Software Engineering?
Walaupun ratusan pengarang telah mengembangkan definisi tersendiri tentang software engineering, definisi ini diusulkan oleh Fritz Bauer[NAU 69] yang menyediakan basis : “[Software engineering adalah] prinsip yang digunakan pada sound engineering yang digunakan untuk mendapatkan software yang bersifat ekonomis dan dapat bekerja secara efisien pada real machines” The IEEE [IEE93] telah mengembangkan definisi yang lebih lengkap dengan pernyataan : “Software Engineering : (1) aplikasi yang bersifat sistematik, disipilin dengan mendekati metode pengembangan, operasi, dan maintemaintenance dari software; (2) studi dengan pendekatan pada definisi nomor (1)”
12
What is Software Engineering?
Pressman’s view: “Software engineering is a layered technology (Figure 2.1)” Software methods: Metode Software engineering menyediakan teknik “how to” untuk membangun software. Metode --> meliputi bagaimana menyelesaikan task : - requirement analisis, design, coding, testing dan maintenance Process Tools Methods A quality focus
13
What is Software Engineering?
Software process: Proses Software engineering mendekatkan dengan : - teknologi bersama - memungkinkan secara rational dan pengenbangan secara bertahap dari software komputer Proses Software engineering merupakan set framework dari area key process. Yang dibentuk dari basis untuk : - project management, budget, dan schedule control - teknik metode aplikasi - kualitas produk control Software tools: Program menyediakan sistem otomatis atau semi otomatis untuk proses dan metode. Program yang memberikan dukungan pada engineers untuk menyelesaikan masing-masing task.
14
What is Software Engineering? - A Generic View
Engineering --> analysis, design, construction, verification, and management of technical (or social) entities. Tiga phase dalam production software - phase definition - phase development - phase maintenance Phase definition : (dilakukan dalam tahap pendefinisian dan perencenaan dari software sistem) Phase definition terfokus pada apa yang terjadi dalam software sistem. - informasi apa yang harus diproses pada sistem? - fungsi apa saja yang harus disediakan oleh sistem? - performance sistem dan kriteria yang diperlukan oleh sistem? - apa yang diperlukan pada sistem behavior? - dengan cara apa requirement akan direpresentasikan? Tiga tugas utama pada phase definisi : - sistem atau informasi engineering] - software project planning - requirement analisis
15
What is Software Engineering? - A Generic View
Phase Development : (terjadi selama proses pengembangan dari software sistem) Phase development terfokus pada bagaimana. - bagaimana sistem menjadi terstruktur? - bagaimana data yang ada menjadi terstruktur? - bagaiman informasi dapat diproses? - bagaimana fungsi dapat diimplementasikan? - bagaiamana karakteristik dari interface? - bagaimana design dapat menjadi lebih spesifik? - bagaimana testing dapat ditunjukkan? Terdapat tiga tipe task dari phase development : - software design - code generation, dan - software testing
16
What is Software Engineering? - A Generic View
Phase maintenance : -> evaluasi dari produk software setelah sistem testing. Phase maintenance mengulang kembali langkah-langkah pada phase definisi dan pengembangan Phase development terfokus pada perubahan software sistem. Error correction – apabila ini terjadi maka dilakukan perubahan software sehingga software menjadi benar. Adaptation – memodifikasi software untuk mengakomodasi perubahan yang terjadi terhadap lingkungan. Enhancement – mengembangkan software dengan melakukan penambahan fungsi-fungsi yang baru untuk customer/user. -Prevention - preventive maintenance, called software reengineering. dengan membuat perubahan pada software sehingga dapat lebih mudah dikoreksi, ditangani.
17
Why Software Engineering?
Objectives: Mengidentifikasi masalah baru dan solusi dari produk software Mempelajari sistematik petode terbaru, prinsisp, pendekatan untuk sistem analisis, design, implementasi, testing, maintenance. Menyediakan teknik kontrol terbaru, manage, dan monitor proses software Membangun tools software terbaru dan environment untuk mendukung software engineering. Major Goals: Untuk meningkatkan produktivitas dan kualitas Untuk meningkatkan efektivitas dari kontrol schedule software dan planning. --- Untuk mengurangi cost dari development proses -Untuk memenuhi keinginan dan requirements dari customer. -Untuk menangani konduksi dari proses software engineering. -Untuk meningkatkan practice software engineering. -Untuk memberikan dukungan pada engineers terhadap aktivitas yang sistematik dan lebih efisien.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.