What is Software? The Software Development Process. Definition of Software. Why Software?



Similar documents
Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

General Problem Solving Model. Software Development Methodology. Chapter 2A

Overview of Software Engineering and the Software Development Process

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Software Engineering. What is a system?

(Refer Slide Time: 01:52)

Knowledge, Certification, Networking

To introduce software process models To describe three generic process models and when they may be used

Software Engineering III B.Tech IT SEM-I

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

How To Model Software Development Life Cycle Models

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Elite: A New Component-Based Software Development Model

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

P.G.D.C.A SOFTWARE ENGINEERING CONTENTS

Umbrella: A New Component-Based Software Development Model

LECTURE-4. Dronacharya College of Engineering

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Unit I. Introduction

Software Development Life Cycle (SDLC)

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

2/25/2012. [5]

2. Analysis, Design and Implementation

Software Project Models

Overview and History of Software Engineering

Software Engineering. Objectives. Designing, building and maintaining large software systems

Analysis of Software Process Models and Applications

2. Analysis, Design and Implementation

Software Development Life Cycle & Process Models

Unit 1 Learning Objectives

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Chapter 13: Program Development and Programming Languages

A Review of an MVC Framework based Software Development

Lesson 1 Introduction to Rapid Application Development using Visual Basic

CSCI-485: Software Design

LECTURE 1. SYSTEMS DEVELOPMENT

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

A Capability Maturity Model (CMM)

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Software Process Models. Xin Feng

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Software Life Cycle Processes

Software Engineering CS5704: First Class

Information Systems Development Process (Software Development Life Cycle)

What is a life cycle model?

Chapter 8 Approaches to System Development

Software Development Life Cycle

Software Engineering UNIT -1 OVERVIEW

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

5/19/ Professor Lili Saghafi

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Software Development Processes. Software Life-Cycle Models

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Software Engineering Reference Framework

Evolving a New Software Development Life Cycle Model SDLC-2013 with Client Satisfaction

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

International Journal of Advance Research in Computer Science and Management Studies

Advanced Software Engineering. Software Development Processes

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

Software Development Process Models

CMSC 435: Software Engineering Course overview. Topics covered today

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

INTRODUCTION TO SOFTWARE ENGINEERING

Introduction to Systems Analysis and Design

CS4507 Advanced Software Engineering

JOURNAL OF OBJECT TECHNOLOGY

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

IV. Software Lifecycles

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

An Introduction to Software Engineering

Software Engineering Question Bank

Chakra Vs Spiral Model - A Practical Approach

Software Processes. Topics covered

Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?

Plan-Driven Methodologies

Basic Trends of Modern Software Development

Software Process for QA

A Process Model for Software Architecture

SOFTWARE PROCESS MODELS

Project Risks. Risk Management. Characteristics of Risks. Why Software Development has Risks? Uncertainty Loss

A system is a set of integrated components interacting with each other to serve a common purpose.

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Component Based Development in Software Engineering

Rapid Software Development

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Transcription:

What is Software? The Software Development Process Software is a set of items or objects that form a configuration that includes Programs Documents Data... M8034 Peter Lo 2006 1 M8034 Peter Lo 2006 2 Definition of Software Why Software? Computer programs and associated documentation such as requirements, design models and user manuals. Software products may be developed for a particular customer or may be developed for a general market. Software products may be Generic developed to be sold to a range of different customers e.g. PC software such as Excel or Word. Bespoke (custom) developed for a single customer according to their specification. New software can be created by developing new programs, configuring generic software systems or reusing existing software. The primary purpose of software is that of information transformer. Software is used to produce, manage, acquire, modify, display, and transmit information. M8034 Peter Lo 2006 3 M8034 Peter Lo 2006 4

Software Characteristics of Software Software is developed, NOT manufactured. Building a software product is more like constructing a design prototype. Software may become deteriorate, but it does not wear out. The chief reason for software deterioration is that many changes are made to a software product over its lifetime. As changes are made, defects may be inadvertently introduced to other portions of the software that interact with the portion that was changed. Software has a dual role. It is a product, but also a vehicle for delivering a product. Software is a logical rather than a physical system element. Software has characteristics that differ considerably from those of hardware. Software is developed or engineered, it is not manufactured in the classical sense. Software doesn t wear out. Most software is custom-built, rather than being assembled from existing components. M8034 Peter Lo 2006 5 M8034 Peter Lo 2006 6 Evolution of Software Software Applications The Early Years - Batch orientation - Limited distribution - Custom software The Third Era - Distributed systems - Embedded intelligence - Low cost hardware - Consumer impact The early years The second era The Second Era - Multiuser - Real-time - Database - Product software The Fourth Era: - Powerful desk-top systems - Object-oriented technologies - Expert systems - Artificial neural networks - Parallel computing - Network computers The third era The fourth era System Software A collection of programs written to service other programs at system level. (E.g. compiler, operating systems) Real-time Software Programs that monitor/analyze/control real world events as they occur. Business Software Programs that access, analyze and process business information. Engineering and Scientific Software Software using number crunching algorithms for different science and applications. (E.g. System simulation, computer-aided design) Embedded Software Embedded software resides in read-only memory and is used to control products and systems for the consumer and industrial markets. It has very limited and esoteric functions and control capability. Artificial Intelligence (AI) Software Programs make use of AI techniques and methods to solve complex problems. Active areas are expert systems, pattern recognition, games Internet Software Programs that support internet accesses and applications. (E.g. search engine, browser, e-commerce software, authoring tools) Software Tools and CASE environment Tools and programs that help the construction of application software and systems. (E.g. test tools, version control tools) 1950 1960 1970 1980 1990 2000 M8034 Peter Lo 2006 7 M8034 Peter Lo 2006 8

Software Crisis Failure Curve for Software/Hardware 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 Failure rate Failure curve for hardware Time Failure rate Increased failure rate due to side effects change Failure curve for software actual curve idealzied curve Time M8034 Peter Lo 2006 9 M8034 Peter Lo 2006 10 Software Myths Management Myths Software Myths Customer Myths 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 number 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. Customers of a software may be: An outside company that has requested software under contract A person next to your desk An in-house group A marketing or sales group Customer myths Lead to false expectations (by customers) and ultimately, dissatisfaction with the developers. Customer Myths: A general statement of objectives is sufficient to begin writing programs - we can fill in the details later. Project requirements continually change, but change can be easily accommodated because software is flexible. M8034 Peter Lo 2006 11 M8034 Peter Lo 2006 12

Software Myths Practitioner Myths What is Software Engineering? Practitioners: Planning 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: Once we write the program and get it to work, our job is done. Until I get the program running, I really have no way of assessing its quality. The only deliverable for a successful project is the working program. The major task of a software engineer is to write a program. Schedule and requirements are the only important things we should concern when we write programs. Although hundreds of authors have developed personal definitions of software engineering, a definition proposed by Fritz Bauer[NAU69] provides a basis: 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. The IEEE [IEE93] has developed a more comprehensive definition when it states: Software Engineering: 1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. 2. The study of approaches as in (1). M8034 Peter Lo 2006 13 M8034 Peter Lo 2006 14 Key Elements of Software Engineering Methods Four key elements of Software Engineering: Method, Tools, Procedure/Process Model, A Quality focus Software Engineering Tools Methods Process model A quality focus M8034 Peter Lo 2006 15 Refer to techniques on how-to build software and how to encompass a broad array of tasks such as requirements analysis, design, coding, testing, and maintenance Software engineering methods rely on a set of basic principles Examples: Project Planning System and Software Requirement Analysis Coding, Testing and Maintenance M8034 Peter Lo 2006 16

Tools Process Model / Procedures Provide automated or semi-automated support for the process and methods. Support engineers to perform their tasks in a systematic and/or automatic manner. Example: CASE (Computer-Aided Software Engineering) Defines the sequence in which methods are applied, and makes sure that the development of software is logical and on time. It is the glue that holds: Technology together Enables rational and timely development of computer software Software engineering process is a framework of a set of key process areas. It forms a basis for: Project management, budget and schedule control Applications of technical methods Product quality control M8034 Peter Lo 2006 17 M8034 Peter Lo 2006 18 Unstructured Development Structured Development 100 percent 75 complete 50 25 0 the 90% syndrome stage 2 stage 1 stage 4 stage 3 Start time Quick start to coding Concurrent analysis, design, coding End Lack of stages Lack of control 90% syndrome task 1 task 2 task 3 deliverable 1 deliverable 2 deliverable 3 deliverable 4 deliverable 5 Project M8034 Peter Lo 2006 19 M8034 Peter Lo 2006 20

business data process application generation testing & turnover Development Stages Process as Problem Solving Project Terms of Reference (An assignment brief from management to the software team.) problem definition User Requirements Output from Previous Stage Inputs Resources Stage Techniques Outputs (Deliverables) Quality status quo solution integration technical development M8034 Peter Lo 2006 21 M8034 Peter Lo 2006 22 The Linear Model Iterative Models System/information engineering listen to customer build/revise mock-up team #1 business data team #2 business data process team #3 process application generation testing & turnover analysis design code test customer test-drives mock-up application generation testing & turnover Prototyping 60-90 days RAD M8034 Peter Lo 2006 23 M8034 Peter Lo 2006 24

The Incremental Model An Evolutionary (Spiral) Model System/information engineering analysis design code test increment 2 increment 1 delivery of 1st increment analysis design code test delivery of 2nd increment Customer Communication Pla nning Risk Ana lysis increment 3 analysis design code test delivery of 3rd increment En g in e e rin g increment 4 analysis design code test delivery of 4th increment Customer Eva lu a tio n Construc tion & Re le a se calendar time M8034 Peter Lo 2006 25 M8034 Peter Lo 2006 26 The Waterfall Model (The Linear Sequential Model) The Waterfall Model Feasibility Study Analysis System Design Detailed Design Stages depend on particular size/type of project Coding & Testing Integration & Testing Maintenance The Waterfall model (so called because the stages appear to flow down into each other) is one of the most widely documented models of software development. The diagram shows some small overlap between the stages (analysis can start before the feasibility stage is entirely completed) but it is a broadly linear process with, for example, all analysis being completed before any design is done. The arrows flowing up the waterfall are a recognition of the fact that in course of maintenance it may be necessary to repeat some of all of the process. M8034 Peter Lo 2006 27 M8034 Peter Lo 2006 28

General Stage in the Waterfall Model Feasibility Study Analysis Design Code generation Testing Maintenance Stage in the Waterfall Model - Feasibility Study A study to determine the feasibility of a request for the new software Number of stages depend on particular size/type of project! M8034 Peter Lo 2006 29 M8034 Peter Lo 2006 30 Stage in the Waterfall Model - Analysis Analysis of requirements for the software. The software engineer must understand all required functions, behavior, performance and interfacing. The requirements should be documented and reviewed with the customer. Stage in the Waterfall Model Design Software design is actually a multi-step process that focuses on four distinct attributes of a program : Data structure Software architecture Interface representations Procedural detail The design process translates requirements into a representation of a the software that can be assessed for quality. The design also should be documented. M8034 Peter Lo 2006 31 M8034 Peter Lo 2006 32

Stage in the Waterfall Model Code Generation The design must be translated into a machine readable form. The software design is realized as a set of programs or program units. Stage in the Waterfall Model Testing Focuses on the logical internals of the software for the intent of finding errors. Debugging will follow the conduct of successful testing. All statements should be tested to uncover errors. M8034 Peter Lo 2006 33 M8034 Peter Lo 2006 34 Stage in the Waterfall Model - Maintenance After the installation and implementation of the software in the actual environment, errors/changes will invariably occur because software must accommodate changes in the real and external environment. Limitations of Waterfall Model Difficult for the customer to state all requirements explicitly. A working version of the program will be available until late in the project time-span. A major blunder, if undetected until the working program is reviewed, can be disastrous. Developers are often delayed unnecessarily. Some project team members must wait for other members of the team to complete dependent tasks. M8034 Peter Lo 2006 35 M8034 Peter Lo 2006 36

When to use the Waterfall Model? The V Model Straight forward (low risk) applications Experienced staff Clear requirements Requirements unlikely to change Stable technology M8034 Peter Lo 2006 37 M8034 Peter Lo 2006 38 Objective of V model Prototyping It presents the same phases as the waterfall model, with each development phase matched by a corresponding verification or validation phase. Verification Are we building the product right? Validation Are we building the right product? Feasibility Study Analysis Create Prototype Review Design Evaluate with User Production Analyze Outcome M8034 Peter Lo 2006 39 M8034 Peter Lo 2006 40

Prototyping Model Evolutionary Prototyping This model is good to use when the customer has legitimate needs, but is not able to articulate the details at the start of the project. A small mock-up of a working system is developed and presented to the customer. Sometimes this first system is discarded and sometimes it is extended based on the customer s feedback. Evolutionary Prototyping or Throwaway Prototyping is used to verify user requirements. The prototype surfaces out as the final product and there is no Product Engineering stage. To achieve this, analyze, design, code and test of prototype must be done carefully and much more time is required. M8034 Peter Lo 2006 41 M8034 Peter Lo 2006 42 Throwaway Prototyping Benefits of Prototyping The role of prototype is to perfect requirements, and must be thrown away at the end. Don t try to deliver prototype to customer because it has not been properly designed, coded and tested. Avoid misunderstanding. Create accurate specification. Evaluate a working model more effectively. Develop testing and training procedures before the finished system is available. Reduces the risk and potential financial exposure that occur when a finished system fails to support business needs M8034 Peter Lo 2006 43 M8034 Peter Lo 2006 44

Problems in Prototyping Prototype is often rushed, and long term aspects of overall software quality and maintainability not considered. Other system requirements, such as reliability and maintainability, cannot adequately be tested using a prototype. In very complex systems, the prototype becomes unwieldy and difficult to manage. Overall software quality and maintainability not considered. Developer often makes implementation promises in order to get prototype working quickly. The uncontrolled iteration of continual creation and modification of prototype will lead to rapidly increasing costs in terms of time and manpower. Using Prototyping Faster system development Facilitates end-user involvement Caters for uncertain requirements Appropriate exploratory approach for new technology Harder to control budgets / resource use Danger of 'design drift' M8034 Peter Lo 2006 45 M8034 Peter Lo 2006 46 Rapid Application Development (RAD) Model team #1 business data team #2 business process data team #3 business m odeling data m odeling process application generation process m odeling application generation application generation testing & turnover testin g & tu rn o v e r Rapid Application Development (RAD) Model It is a linear sequential software development process model that emphasizes an extremely short development cycle. This model is a high-speed adaptation of the linear sequential model in which rapid development is achieved by using a component-based construction approach. For large projects, RAD requires sufficient human resources to create the right number of RAD teams. testing & turnover M8034 Peter Lo 2006 47 60-90 days M8034 Peter Lo 2006 48

General Stages in Rapid Application Development Business Modeling The information flow among business functions is modeled Data Modeling The information flow is refined into a set of data objects that are needed to support the business Process Modeling The data objects are transformed to achieve the information flow necessary to implement a business function. Process descriptions are created for adding, modifying, deleting, or retrieving a data objects Application Generation Reuse existing program components or create reusable components Testing and Turnover Test new components and interfaces. Feasibility Study Evolutionary Development Analysis System Design Development Plan Kernel Version 1 Each version is a complete working system with a subset of the final system's features Version 2 Version n Maintenance M8034 Peter Lo 2006 49 M8034 Peter Lo 2006 50 Evolutionary Development Evolutionary development breaks the construction and testing of the system into several phases or versions. A kernel version of the system is produced which possesses the minimum facilities of a workable system. The user can use the kernel version to gain experience of the software and feed back problems/bugs etc. to the designer. Each new version adds extra features. Evolutionary Software Process Models are iterative. The Incremental Model The Spiral Model The Incremental Model System/information engineering analysis design code test increment 2 analysis design code test increment 3 increment 1 analysis design code test increment 4 delivery of 1st increment delivery of 2nd increment delivery of 3rd increment analysis design code test delivery of 4th increment calendar time M8034 Peter Lo 2006 51 M8034 Peter Lo 2006 52

The Incremental Model An Evolutionary (Spiral) Model This combines elements of the waterfall model (applied repetitively) with the iterative philosophy of prototyping. Each waterfall sequence produces a deliverable increment (version) of the software. The first increment is known as core product (Kernel). Here all basic requirements are addressed, but many supplementary features remain undelivered. This process is repeated until the complete product is produced. This model focuses on the delivery of an operational product with each increment (not like prototyping). Incremental model is particularly useful when staffing is unavailable for a complete implementation by the business deadline that has been established for the project. Customer Communication Customer Evaluation Planning Risk Analysis Construction & Release Engineering M8034 Peter Lo 2006 53 M8034 Peter Lo 2006 54 The Spiral Model Spiral Model This is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic approach of waterfall model. Software is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered systems are produced. It provides the rapid development of incremental versions of software. Here, during early iterations, the incremental release might be paper model or prototype. During later iterations, more complete versions of the engineered system are produced. Each cycle represent a project itself. E.g. Concept Development Product Development Product Enhancement Product Maintenance It is divided into Framework activities, usually 3-6. E.g. Customer Communication - establish effective communication Planning - define resources, timeline etc. Risk Analysis - assess technical & management risks Engineering - prototype Construction & Release - code, test & release Customer Evaluation - obtain customer feedback M8034 Peter Lo 2006 55 M8034 Peter Lo 2006 56

General Stages of Spiral Model - Customer Communication Tasks required to establish effective communication between developer and customer General Stages of Spiral Model - Planning Tasks required to define resources, timelines, and other project related information. M8034 Peter Lo 2006 57 M8034 Peter Lo 2006 58 General Stages of Spiral Model - Risk Analysis Tasks required to assess both technical and management risks. General Stages of Spiral Model - Engineering Tasks required to build one or more representations of the application. M8034 Peter Lo 2006 59 M8034 Peter Lo 2006 60

General Stages of Spiral Model - Construction and Release Tasks required to construct, test, install and provide user support (e.g. documentation and training). General Stages of Spiral Model - Customer Evaluation Tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage. M8034 Peter Lo 2006 61 M8034 Peter Lo 2006 62 Using Evolutionary Development Fourth Generation Techniques Early first delivery and use Design can evolve with changed requirements Open approach to design needed (allow for change) Feed-back from users Low 'per step' risk Greater design effort balanced by timeliness Requirements Gathering Design Strategy Implementation Using 4GL Product M8034 Peter Lo 2006 63 M8034 Peter Lo 2006 64

Fourth Generation Techniques Fourth Generation Techniques (4GT) encompasses a broad array of software tools, each of them enables the software developer to specify some characteristic of software at a high level. Example Non procedural database query language Report generation Data manipulation Screen interaction Code generation Graphics / Spreadsheets M8034 Peter Lo 2006 65 General Stages of 4GT - Requirements Gathering Customer could actually describe the requirements and these would be directly translated into an operational prototype. M8034 Peter Lo 2006 66 General Stages of 4GT Design Strategy Possible to move directly from the requirements gathering step to implementation for small systems. General Stages of 4GT - Implementation Using 4GL Typically, code can be generated based on some specification, e.g. input and output formats. M8034 Peter Lo 2006 67 M8034 Peter Lo 2006 68

General Stages of 4GT Product Example of 4GT Application Generators The final version of the software M8034 Peter Lo 2006 69 M8034 Peter Lo 2006 70 Problems of 4GT Conclusion - Choosing a Model Current Application domain for 4GT is limited to business information systems. Rapid system development is true only for small systems. The use of 4GL without design (for large projects) will cause the same difficulties that have been encountered when developing software using ad hoc approaches Before a project starts, the stages through which the project will go have to be decided upon. The type of project, end users, application area all affect the decision. Project Type Development Environment Software Development Process Estimating Approach Project Definition Project Plans Project Control M8034 Peter Lo 2006 71 M8034 Peter Lo 2006 72