Pengantar Rekayasa Perangkat Lunak

download Pengantar Rekayasa Perangkat Lunak

of 23

description

Pengantar Rekayasa Perangkat Lunak

Transcript of Pengantar Rekayasa Perangkat Lunak

  • Software EngineeringLecture 1Introduction to Software Engineering*

  • Software DefinitionSoftware is:A productA vehicle for delivering another productSoftware is collection of:ProgramDocumentationDataProcedure*

  • Software CharacteristicsSoftware is engineered, not manufacturedSoftware does not wear outMost software continues to be custom built*

  • Failure Curves for software*

  • Software MythsMyth: If we get behind schedule, add more programmers.Reality: Adding people to a late software project makes it later.

    Myth: Software Engineering will make us create many and unnecessary documentation.Reality: Software engineering is not about creating documents. It is about creating quality. Better quality leads to reduced rework. Reduced rework results in faster delivery times.*

  • Software CrisisDuring 1960-1970, most software development faced the following problems:Overdue scheduleExceeding initial budgetInadequate software qualityHigh software maintenance cost*

  • Software EngineeringSoftware engineering is first coined in 1968 at a software conference organized by NATO at Garmisch, Germany as a solution to the software crisis.Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.*

  • Engineering PrinciplesThe engineering principles used in software engineering comprises:AnalysisDesignImplementationTesting*

  • Software Engineering Layers*Software EngineeringSoftware Engineeringa quality focusprocess modelmethodstools

  • Software Engineering Layers (cont.)Tools: Software Tools (Word Processors, Diagramming Tools, Project Tools, Compilers, etc.)Methods: Modeling methods (DFD, ERD, Gantt Chart,etc.)Process: Waterfall, Spiral, Incremental, etc.*

  • Software Engineering PhasesDefinition Phase (What)Systems Engineering, Project Planning, Requirements AnalysisDevelopment Phase (How)Software Design, Code Generation, Software TestingSupport Phase (Change)Correction, Adaptation, Enhancement, Prevention*

  • Umbrella ActivitiesUmbrella activities are activities that are applied throughout the software process:Project tracking and controlSoftware Quality AssuranceSoftware Configuration ManagementDocument Preparation and Management*

  • Capability Maturity ModelCMM is used to determine an organizations current state of process maturityFive levels of CMM:Level 1: Initial (Ad Hoc)Level 2: Repeatable (Basic project management)Level 3: Defined (Process standardization)Level 4: Managed (Quantitative Management)Level 5: Optimized (Continuous process improvement)*

  • CMM Level 1: InitialThe software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends on individual effort.*

  • CMM Level 2: RepeatableBasic Project Management processes are established to track cost, schedule, and functionality.*

  • CMM Level 3: DefinedThe process is tailored from the organizations set of standard processes according to the organizations tailoring guidelines, and contributes work products, measures, and other process-improvement information to the organizational process assets.*

  • CMM Level 4: ManagedDetailed measures of the software process and product quality are collected.*

  • CMM Level 5: OptimizedThe process area is adapted and optimized using quantitative means to meet changing customer needs and to continually improve the efficacy of the process area under consideration.*

  • Personal Software ProcessThe Personal Software Process (PSP) emphasizes personal measurement of both the work product that is produced and the resultant quality of work product (Humphrey 1997).The PSP process model defined five framework activities:PlanningHigh-Level DesignHigh-Level Design ReviewDevelopmentPostmortem*

  • Personal Software Process (cont.)PSP stresses the need for each software engineer to identify errors early and, as important, to understand the types of errors that he/she is likely to make.This is accomplished through a rigorous assessment activity performed on all work products produced by the software engineer.PSP can improve the productivity and software quality. However, PSP has not been widely adopted throughout the industry due to human nature and organizational inertia.*

  • Team Software Process (TSP)TSP is an extension of PSP.The goal of TSP is to build a self-directed project team that organizes itself to produce high-quality software:Build self-directed teams that plan and track their work, establish goals, and own their processes and plans.Show managers how to coach and motivate their teams.Accelerate software process improvement.Provide improvement guidance to high-maturity organizations.Facilitate university teaching of industrial-grade team skills.*

  • SummarySoftware Engineering is a discipline that integrates process, methods, and tools for the development of computer software.The Capability Maturity Model Integration (CMMI) is a comprehensive process meta-model that describes the specific goals, practices, and capabilities that should be present in a mature software process.Personal and Team Software process emphasize measurement, planning, and self-direction as key ingredients for a successful software process.*

  • ReferencesPressman, Chapter 1, 2*

    Definisi SoftwareA Product software merupakan hasil dari suatu runtutan proses (design&build), digunakan oleh konsumen, diciptakan sesuai kebutuhan konsumen.A vehicle bahwa sebenarnya software bertindak sebagai alat kontrol dasar dari komputer (OS), network(komunikasi informasi), dan software tools & environments (pembuat program lain).*Software Characteristics : Software is engineered/developed, not manufactured. Software diciptakan khusus, berbeda dengan hardware yg dibuat dlm partai besar. Does not wear out tidak pernah usang. Custom built dibuat sesuai dengan apa yang diinginkan konsumen/kebutuhan konsumen.*What is software engineering ?Ilmu untuk membuat software dengan menggunakan prinsip engineering untuk menghasilkan software yang berkualitas tinggi dengan biaya minimal.

    Tujuan : software berkualitas, biaya minimal.*Akan kita pelajari dipertemuan ke II minggu depan.

    Tools harus tahu alat apa yang tepat dalam melakukan/membuat sesuatuMethod cara dalam pembuatan desain sistem(proses dan database)Process langkah-langkah/metodologi dalam pembuatan/membangun software*3 Fase/Tahapan dalam Software Engineering :Tahap Definition/Definisi/What Penentuan sistem seperti apa yang akan dibuat, Pembuatan perencanaan project, melakukan analisa untuk menentukan kebutuhan sistem2. Tahap Development/Implementasi/How Tahap Desain sistem, Code Generation/Coding/Pembuatan Program, Pengujian software.3. Tahap Support/Change Koreksi terhadap software, adaptation terhadap kebutuhan dari user saat ini, peningkatan/enhancement, prevention/pencegahan.*Umbrella Activities aktivitas yang diterapkan selama proses pembuatan software : Mampu melakukan pelacakan dan kontrol dari project software Pengukuran kualitas sebuah software Pengaturan bentuk software Pengaturan dan pengolahan dokumen software*CMM adalah sebuah standarisasi dalam menilai kematangan/kedewasaan dari proses pembuatan software pada suatu perusahaan.Level 1 blm menggunakan SE.Level 2 sudah menggunakan SE (Umbrella activities).Level 3 harus sudah menggunakan SE (Gane & Searson, Yourdan).Level 4 membuat pengukuran dalam pembuatan software (LOC).Level 5 continuous improvement, perbaikan secara terus menerus.*Postmortem kegiatan untuk mengevaluasi project yang baru selesai.