Rekayasa Perangkat Lunak Part-6

Slides:



Advertisements
Similar presentations
Chapter 8 Software Prototyping.
Advertisements

Prescriptive Process models
SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
Rekayasa Perangkat Lunak
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Software Engineering 6/e, Chapter 8
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Lecture 4 Prototyping CS 540 – Quantitative Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
7M822 Information Technology in Design and Construction 7M822 Joran Jessurun and Jan Dijkstra Quartile 2, Week 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
CSI315 Web Technology and Applications
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE PROTOTYPING Anil Kumar.Arikepudi.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory1 Requirements Validation Section Four Version: 1.0 Mehr.
Slide 1 Software Prototyping Class Notes for ReqEng.
S OFTWARE P ROTOTYPING C HAPTER 4. SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult to express their real requirements.
Software Prototyping Rapid software development to validate requirements.
© Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 軟體雛形 l 快速的軟體開發以確認需求.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software engineering Software Processes.
Chapter 2 – Software Processes
Chapter3:Software Processes
Prototyping in the software process
Software Prototyping.
Chapter 2 – Software Processes
Lecture 4 Prototyping.
Chapter 2: Software Processes
Chapter 2 – Software Processes
WXGE6103 Software Engineering Process and Practice
Software Processes (a)
Chapter 2 Software Processes
CHAPTER 8: RAPID SOFTWARE DEVELOPMENT
Prototyping.
Chapter 2 – Software Processes
Software Prototyping.
SOFTWARE ENGINEERING PRESENTATION
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
Chapter 2 – Software Processes
Chapter 2 Software Processes
Chapter 2 – Software Processes
An Overview of Software Processes
Software Engineering Software Engineering is the science and art of
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Software Engineering Software Engineering is the science and art of
Chapter 2 – Software Processes
Chapter 2 – Software Processes
Rapid software development
Chapter 2 Software Processes
Chapter 2 – Software Processes
Presentation transcript:

Rekayasa Perangkat Lunak Part-6 Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Outline of this presentation The Generic Software Process Model Prototyping Model Incremental Model Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Prototyping is the rapid development of a system Use if Only general objectives available Being unsure about Software requirement Efficiency of an algorithm Human-computer interaction Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Uses of system prototypes to help customers and developers understand the requirements for the system Requirements elicitation. Users can experiment with a prototype to see how the system supports their work Continue … Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Uses of system prototypes to help customers … Requirements validation. The prototype can reveal errors and omissions in the Requirements Prototyping can be considered as a risk reduction activity which reduces requirements risks Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Prototyping benefits Misunderstandings between software users and developers are exposed Missing services may be detected and confusing services may be identified Continue … Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Prototyping benefits A working system is available early in the process The prototype may serve as a basis for deriving a system specification Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Other Prototyping benefits The system can support user training and system testing Improved system usability Closer match to the system needed Improved design quality Improved maintainability Reduced overall development effort Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Approaches to Prototyping Evolutionary prototyping Throw-away prototyping Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Approaches to Prototyping Evolutionary prototyping An approach to system development where an initial prototype is produced and refined through a number of stages to the final system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Prototyping Objectives The objective of evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood. Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Approaches to Prototyping Throw-away prototyping A prototype which is usually a partial implementation of the system is produced to help discover requirements problems and then discarded. The system is then developed using some other development process Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Prototyping Objectives The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Must be used for systems where the specification cannot be developed in advance, e.g. Artificial Intelligent Systems and user interface systems Based on techniques which allow rapid system iterations Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Verification is impossible as there is no separate specification. Validation means demonstrating the adequacy of the system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Specification, design, and implementation are inter-twined The system is developed as a series of increments that are delivered to the customer Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Techniques for rapid system development are used such as CASE tools and 4GLs User interfaces are usually developed using a GUI development toolkit Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Advantages Accelerated delivery of the system Rapid delivery and deployment are sometimes more important than functionality or long-term software maintainability Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Advantages User engagement with the system Not only is the system more likely to meet user requirements, but users are more likely to commit to the use of the system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Problems Management problems Existing management processes assume a waterfall model of development Specialist skills are required which may not be available in all development teams Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Evolutionary Prototyping Problems Maintenance problems Continual change tends to corrupt system structure so long-term maintenance is expensive Contractual problems No requirement document Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping Used to reduce requirements risk The prototype is developed from an initial specification, delivered for experiment then discarded Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping The throw-away prototype should NOT be considered as a final system Some system characteristics may have been left out Continue ... Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping The throw-away prototype should NOT be considered as a final system There is no specification for long-term maintenance The system will be poorly structured and difficult to maintain Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping Developers may be pressured to deliver a throw-away prototype as a final system Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping This is not recommended It may be impossible to tune the prototype to meet non-functional requirements The prototype is inevitably undocumented Continue… Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Throw-away Prototyping This is not recommended The system structure will be degraded through changes made during development Normal organisational quality standards may not have been applied Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping Techniques Various techniques may be used for rapid development Paper Prototyping - Scracth Art Work Presentation Software Prototyping - Power Point (Microsoft) - Freelance Graphics (Lotus) - etc Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping Techniques Various techniques may be used for rapid development Dynamic high-level language development Database programming - SQL Component and application assembly Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping Techniques These are not mutually exclusive techniques – they are often used together Visual programming is an inherent part of most prototype development systems Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model User interface prototyping It is impossible to pre-specify the look and feel of a user interface in an effective way. Prototyping is essential UI development consumes an increasing part of overall system development costs Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model User interface prototyping User interface generators may be used to ‘draw’ the interface and simulate its functionality with components associated with interface entities Web interfaces may be prototyped using a web site editor Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Key Point A prototype can be used to give end-users a concrete impression of the system’s capabilities Prototyping is becoming increasingly used for system development where rapid development is essential Continue… Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Key Point Throw-away prototyping is used to understand the system requirements In evolutionary prototyping, the system is developed by evolving an initial version to the final version Continued … Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Key Point Rapid development of prototypes is essential. This may require leaving out functionality or relaxing non-functional constraints Prototyping techniques include the use of very high-level languages, database programming and prototype construction from reusable components Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Prototyping model Key Point Prototyping is essential for parts of the system such as the user interface which cannot be effectively pre-specified. Users must be involved in prototype evaluation Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Fact: Software evolves over time Straight path to an end product is unrealistic Tight market deadlines Deliver limited version Core product requirements well understood Need for extensions foreseeable Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Requirements design code test integrate O&M Release 1 release 2 release 3 release 4 Incremental development (each release adds more functionality) Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model design code test integrate O&M reqts version 1 version 2 version 3 lessons learnt Evolutionary development (each version incorporates new requirements) Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Combines elements of the linear model and prototyping Produces “deliverable” increments First increment often core product Focuses on operational product (not throw-away prototype) Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Used when not enough resources are available to deliver the complete product in time Increments help to manage technical risks (e.g. currently unavailable hardware) Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Focuses attention on reuse options Focuses attention on early error elimination Puts quality objectives up front Integrates development and maintenance Provides a framework for hardware/software development Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Generic Software Process Model Incremental Model Contractual development often specifies process model and deliverables in advance Requires risk assessment expertise Needs refinement for general use Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi

Finished, Questions? Rekayasa Perangkat Lunak Copyright © Feb-2009 by Fakultas Teknologi Informasi