Software Engineering with Objects and Components 1 Overview

Similar documents
LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

Software Engineering with Objects and Components

Object-Oriented Analysis and Design

Software Engineering

Software Design And Modeling BE 2015 (w. e. f Academic Year )

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

Real-Time Systems: An Introduction

Software Engineering with Objects and Components Open Issues and Course Summary

Object-Oriented Software Development Goal and Scope

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

Using the UML to Describe Design Patterns

BCS Higher Education Qualifications. Level 6 Programming Paradigms Syllabus

1 Introduction. 1.1 Introduction

BCS Certificate in Systems Modelling Techniques Syllabus Version 3.5 December 2016

The UML Extension Mechanisms

L02.1 Introduction... 2

SE203b: OO Design for Software Engineers. Office: TEB349, Ext

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Module Documentation

Object-Oriented Systems Development: Using the Unified Modeling Language

Course specification

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

ITE 205 Software Design and Programming I

Basics : the Requirements Engineering Process

Introduction to System Analysis and Design

Introduction to Software Engineering (ESE : Einführung in SE)

Object Oriented Software Engineering Ivar Jacobson

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

Syllabi & Scheme of Examination MCA/Msc-2 nd Year. Website:-

How and Why to Use the Unified Modeling Language. among software components, architectural-based

Designing Component-Based Architectures with Rational Rose RealTime

Software Development Methodologies

Teaching Object-Oriented Systems Analysis and Design with UML

Quality-Driven Architecture Design Method

3 Product Management Anti-Patterns by Thomas Schranz

A Unified Model of the Electrical Power Network

Software Development Methodologies

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

EPL603 Topics in Software Engineering

Aspect Design Pattern for Non Functional Requirements

Refining the Requirements Model

Release of Octopus/UML

Combining UML and Z in a Software Process

Course specification

Evaluating OO-CASE tools: OO research meets practice

CALEDONIAN COLLEGE OF ENGINEERING, MODULE HANDBOOK. Department of Electrical & Computer Engineering SULTANATE OF OMAN. Module Code

OBJECT-ORIENTED SOFTWARE DEVELOPMENT Using OBJECT MODELING TECHNIQUE (OMT)

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

DEVELOPMENT OF AN INTERACTIVE ENVIRONMENT USED FOR SIMULATION OF SHORTEST PATHS ALGORITHMS

BCS Higher Education Qualifications. Level 6 Computer Services Management

Module title T390 Computer Networks and Network Security Level 3 Module tutor Credit value 10 Module type taught Notional learning hours

A FRAMEWORK FOR DEVELOPING AND MANAGING OBJECTS IN A COMPLEX SIMULATION SYSTEM. James D. Barrett

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Day Hour Timing pm am am am

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

Proposed Syllabus for F.Y.B.Sc. (Information Technology) (w.e.f. June-2015)

MOHID A coastal integrated object oriented model

Data Governance Central to Data Management Success

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

References: Jacquie Barker,Beginning Java Objects; Martin Fowler,UML Distilled, 9/25/ UML

Design of A Mobile Phone Data Backup System

LABORATORY 1 REVISION

An Approach to Software Component Specification

Automatic Generating UML Use Case Diagram and Test Cases Based on Classification Tree Method

Profile: How to update your CV - just an idea. 1) Make sure your margins are a slim as possible. 2) Make sure your font size is 10-12

Course specification

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Course specification STAFFING OTHER REQUISITES RATIONALE SYNOPSIS. The University of Southern Queensland

Design Patterns. Gunnar Gotshalks A4-1

BCS Higher Education Qualifications. Level 6 Knowledge based Systems

Introduction to UML. (Unified Modeling Language)

UNOS Operating System Simulator

Integration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson

System Structure Modeling

OBJECT ORIENTED MODELLING, A MODELLING METHOD OF AN ECONOMIC ORGANIZATION ACTIVITY

Information Systems Development Methodologies

CISC 322 Software Architecture

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

DISCRETE COMPUTER SIMULATION WITH JAVA

Automated Medical Patient Evaluation System - Phase 2 Design Report

White Paper. Rose PowerBuilder Link

The Dynamic Model. An Introduction to UML. Enterprise Architect. by Geoffrey Sparks. All material (c) Geoffrey Sparks

Systems Analysis & Design

Introduction to the Theory of Computation, Sipser, PWS, ISBN X, 1996

BTEC Higher Nationals in Computing Dr Derek Peacock & Sampson Aneke Oaklands College

Compulsory course in Computer Science

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT

Integration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects

Object Oriented Software Engineering Practical Software Development Using Uml And Java

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

The Unified Modeling Language (UML)

Textbook(s) and other required material: Raghu Ramakrishnan & Johannes Gehrke, Database Management Systems, Third edition, McGraw Hill, 2003.

REAL-TIME OBJECT-ORIENTED DESIGN AND FORMAL METHODS

Transcription:

Software Engineering with Objects and Components 1 Overview Stuart Anderson Room 1610 Tel: 0131 650 5191 Email: soa@inf.ed.ac.uk Note 1 0-0

Administration Course Web Page please read it it is the main way of making information on the course available: http://www.informatics.ed.ac.uk/ teaching/modules/seoc1/ Assessment: Coursework counts 25% towards the overall assessment. Remaining 75% is derived from the degree examination. Coursework: Tutorial groups collaborate on a single project throughout the term. Assessed work consists of two deliverables for this project, each worth 50% of the coursework mark. Software: We use Java and Argo/UML on the course. Details of how to use these will be posted on the web page. 1

Main Themes Software Engineering is concerned with processes, techniques and tools which enable us to build good systems Object-Orientation is a (paradigm, methodology, technique, process, suite of design and programming languages and tools) with which we may build good systems Components are units of reuse and replacement 1. Software Dependability 2. Software Engineering Process 3. OO and Component Based Development 4. Unified Modelling Language (UML) 5. Group Development Project 2

London Ambulance Service: computerised despatch system What happened? 7am, Monday 26 Oct. 1992, system goes live system quickly overloaded, logged calls appear to get lost callers held in call-queueing for up to 30 minutes ambulance allocation system fails to recognise certain roads (despatch staff revert to maps) by Monday night: system swamped, new calls overwrite existing calls system generates exception messages; these subsequently also swamp staff and system exception messages now clog up system, at one point all manually deleted claims made later of up to 20 30 deaths 3

LAS: world s largest ambulance service 600 square miles, 7 million residents (far more during working hours) typical day: 5000 patients, 2-2,500 calls ( 1,600 A & E) over 300 A & E ambulances, 500,000 patient journeys per year over 400 Patient Transport ambulances, 1.3 million patient journeys per year from receiving call to despatching ambulance less than 3 minutes 4

LASCAD: Development history 1987 First computerisation project commences, 3 million budget 1990 Project abandoned, cost estimated at 7.5 million 1990-1991 New senior management team appointed: requirements completed Feb. 1991; specification July 1991; partial system goes live Jan. 1992; piecemeal implementation across LAS divisions Jan Sept 1992 Oct. 1992 System changeover 26 Oct. system goes live 27 Oct. system closed down 28 Oct reverts to semi-manual operation Nov. 1993 system crashes, fallback routines fail to operate; system closed down; reverts to entirely manual operation. 5

LAS despatch system: causes of failure Every mistake in the book. Primary causes: system design: idealised world view management ethos procurement process development timetable Secondary causes inexperience of suppliers inadequate testing poor quality assurance poor training inadequate project management 6

What about coding? R. Lutz, 1994: cause and effect analysis of Voyager and Galileo mission software over 40,000 SLOC 387 software faults roughly half safety related interface faults (roughly 25%) safety-related primarily intra-team communication errors non-safety related even distribution of causes functional faults (roughly 75%) safety-related primarily problems in requirements recognition (understanding) non-safety related requirements implementation errors Moral: we can get the coding right when we re careful, the greatest problems lie elsewhere 7

The need for software engineering Write code Right code? Greatest problems lie elsewhere in development & maintenance process intangible, hard to determine what s good process requires good management communication amongst large, diverse teams is problematic software engineering, OO (including UML), and components attempt to address this Do they succeed? If so, how well? Recommended Reading: Flowers, Stephen. Software failure: management failure. John Wiley and Sons, 1996. 8

What is an Object? A Thing: objects represent physical and conceptual things that appear in the system being modelled. To implement all of the kinds of systems we want to we need conceptual things. Has State: Usually objects have attributes that can change throughout the lifetime of an object. E.g. the attribute weight of a patient object in a medical information system. Has Behaviour: Understands some set of messages that can be sent to it and collaborates with other objects by sending them messages. Has Identity: Is more than just the collection of attributes. You can have two non-equal objects with identical attribute values. Objects can often self refer (e.g. by sending themselves messages). 9

Classes a Class defines a family of objects that all take similar roles in a system. In Java every object is a member of a class Corresponding to every kind of message understood by all objects of the class the class defines a method of responding to the message on the basis of the selector and list of arguments. The class determines the attributes of the system. 10

Components and Reuse Modularisation required to manage large bodies of code OO invented to support this... but was not quite the right level Components are higher-level modules Reuse most clearly illustrates need for, and success of, modularisation (e.g.) NASA SEL (Software Engineering Laboratory) 1992 1995, developed library of reusable components, leading to: routinely 75% or higher reuse development time reduced by 90% 58,000 hours for application development, recently, with reuse, reduced to approx. 6,000 11

Fundamental Issues/Assumptions Why object oriented software engineering? For natural, intuitive, paradigm leads to good design, widely used Against not proven! (not provable?) Why any development methodology? Pros dependable, assessment, standardisation Cons stifles innovation & creativity, overheads, too general 12

Group Development Project Tutorial/Practical work Collaborative specification and design (Human) communication in design process Illustrates commercial software engineering projects Permits (subjective) assessment of: Is software engineering with objects and components a good way of building good systems? 13

General software engineering books Reference Software Engineering - A practitioner s approach by Roger S. Pressman, European edition adapted by Darrel Ince, McGraw-Hill, ISBN 0-07-707936-1 Reference Software Engineering, 6th Edition by Ian Sommerville, Addison-Wesley, ISBN 0-201-39815-X Object oriented methods Purchase UML, Schaum s Outline Series, by Simon Bennett, John Skelton and Ken Lunn, McGraw-Hill, London, ISBN 0-07-709673-8 Reference Using UML, by Perdita Stevens and Rob Pooley, Addison-Wesley, ISBN 0-201-36067-5 Reference Object Oriented Systems Analysis and Design using UML, second Edition by Simon Bennett, Steve McRobb and Ray Farmer, McGraw-Hill, London, ISBN 0-07-709864-1 14

Object oriented methods (cont.) Reference Object Oriented Modelling and Design by Rumbaugh, Blaha, Premerlani, Eddy and Lorenson, Prentice-Hall, 0-13-630054-5 Reference Object Oriented Software Engineering: A use case approach by Ivar Jacobsen, Addison-Wesley 1994 Reference UML Distilled by Martin Fowler, Addison-Wesley, 1997 Background Object-Oriented Software Construction by Bertrand Meyer, Prentice-Hall, ISBN 0-13-629049-3 Background Object Oriented Programming by Coad and Nicola, Yourdon Press Background Principles of Object oriented Software Development by Anton Eliëns, Addison-Wesley, ISBN 0-201-62444-3 15