CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

UML an overview.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Elliott Bays, Taylor Ivy, Mark Sarosky, David Martin, Ovidiu Ravasan.
Introduction To System Analysis and Design
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
School of Computing Science CMT1000 Ed Currie © Middlesex University Lecture 4: 1 CMT1000: Introduction to Programming Ed Currie Lecture 5a: Input and.
SOS OOP Fall 2001 Object Oriented Programming in Java Week 1 Read a design Design a small program Extract a design Run a VAJ program Change that program,
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 10 Classes Continued
Chapter 1 Program Design
Abstract Data Types and Encapsulation Concepts
Course Instructor: Aisha Azeem
1 Chapter 8 Objects and Classes. 2 Motivations After learning the preceding chapters, you are capable of solving many programming problems using selections,
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Platforms for Learning in Computer Science July 28, 2005.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
The Design Discipline.
Dr. Ken Hoganson, © August 2014 Programming in R STAT8030 Programming in R COURSE NOTES 1: Hoganson Programming Languages.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
Lesson 7 Guide for Software Design Description (SDD)
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 3 The Structure and Syntax of Java.
Software Engineering CS B Prof. George Heineman.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
GEOREMINDERS ANDROID APPLICATION BY: ADRIENNE KECK.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 3 Object Oriented Systems and Open GIS. Objectives of the Chapter Establish place of O-O in OpenGIS cover basics of O-O emphasise design issues.
Object-Oriented Design Simple Program Design Third Edition A Step-by-Step Approach 11.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Scenario Synthesis from Imprecise Requirements Bill Mitchell, Robert Thomson, Paul Bristow.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Topic 1 Object Oriented Programming. 1-2 Objectives To review the concepts and terminology of object-oriented programming To discuss some features of.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell.
CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Unified Modeling Language (UML)
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
PRG 420 Entire Course FOR MORE CLASSES VISIT PRG 420 Week 1 Individual Assignment Hello world PRG 420 Week 2 Individual Assignment.
The Movement To Objects
Object-Oriented Analysis and Design
Chapter 11 Object-Oriented Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
An Introduction to Software Architecture
Applying Use Cases (Chapters 25,26)
Presentation transcript:

CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell

2 CS288 Exam Marks Course Average : 60% (Weight 40%) Assignment average: 68% (Weight 60%) Exam average:55% Actual Distribution of Marks

3 Overview Outline of course Introduction to business development process Motivation for Object Oriented Programming

4 Outline of Course Java OO topics Classes and inheritance Class members and methods Creating and destroying objects Class inheritance and hierarchy Defining Exception Classes Java GUI with Swing Java Event Model Threads of control (parallel programming)

5 Introduction to business design process Purpose Introduction to complexity of real world methods Understand some of the social aspects of real software engineering Realize the need for good methodology in global enterprise environments

6 GroupsFeatureSystem Enterprise Development Process Technical Marketing High Level Designs Detailed Designs Architecture Requirements Standards Feature Teams Technical Marketing Requirements Functional Requirements System Requirements Component Requirements Box Teams Integration Teams Testing Teams Customers

7 Telecoms Example (of dynamic behaviour) Network provider deploying 3G. Placing order for handsets. One of the many features included will be access to network Java game repository. User Interface Java Game Menu Network Infrastructure Java Game Repository

8 Initial Customer Requirements UserHandsetNetwork Menu Key Options Select Fetch Resource Java GameConfirmation

9 Technical Requirements SignalBattery 06:00:12 Jed Sneed B1B2B3 B4B5B6 PowerJavaAck Usage Scenarios determine functional elements within the interface. UI ( Screen ) Specific interface methods (buttons) Ph. BkMenuHold Context dependant public methods (on screen menus) Abstract representation of screen elements

10 Technical Marketing Scenarios SignalBattery Default Screen Display B1B2B3 B4B5B6 PowerJavaAck Ph. BkMenuHold Java Key Press Each event modifies functionality and UI configuration SignalBattery Java Games B1B2B3 B4B5B6 PowerJavaAck BackMenuSelect Doom 8 Quake 9 etc Customer Scenario broken down into sequence of atomic events, which change interface functionality.

11 Technical Marketing Scenarios Normative scenarios are very focused on isolated behaviour of feature in these requirements: What if voice call received during download? Are there other applications that should be able to override the download? What if during the download the network service provider tries to update the phone configuration via the air interface for enhanced game play?

12 Technical Marketing Scenarios UserUINetwork Marketing Requirements System Functional Requirements These omissions arise because the role of technical marketing is to focus on customer requirements, rather than functional requirements. Customers are focussed on generating revenue from each feature, and rarely worry about the system as a whole.

13 Functional Requirements UINetworkSystem Functional Requirements Functional requirements refine technical marketing requirements to logical entities defined in terms of their functionality. They are defined independently from any architecture requirements that will constrain implementations.

14 Functional Requirements Scenarios The purpose of functional requirements is to be precise enough for detailed specifications to be written for any particular architecture that can then be implemented. They do not define every single aspect of the features behaviour. They define comprehensive behaviour of the feature so that it performs well for any common eventuality, and can fail gracefully in exceptional circumstance. Made up of functional scenarios and partially defined state based models. State Based Model

15 Sequence Diagram Example System State A single user action in marketing scenario is decomposed into multiple events between concurrent system components. User UIPhone_OS Display Default View key_press (java_game_menu) java_game_menu display (menu, java_games) Display Java Game View Idle Java Game View Message with parameters Process timeline Start Finish

16 Quick Quiz, Java Level 1 Revision Write a complete Java program that: 1.adds up the squares of the first 20 integers: 1 + 2*2 + 3* *20 2.The program must use a for loop to achieve this task. 3.The program must implement this algorithm: Let sum be an integer with initial value 0 For each integer i between 0 and 20 add i*i to sum Output the final value of sum to standard out. Time: 5 mins NOT assessed To be marked by person next to you in class

17 Quick Quiz, C++ Model Solution package sumofintegers; public class SumOfIntegers { public SumOfIntegers() { } public static void main(String[] args) { int n = 20; int sum = 0; for (int i =0; i < n; i++) { sum += i*i; } System.out.println ("The sum of integers from 0 to " + n + " is " + sum ); } (2 marks: defining a package) (2 marks: defining class and constructor) (2 marks: correct main method declaration) (3 marks: ‘for’ loop syntax) (2 marks: loop body) (2 marks: output syntax and string concatenation) (2 marks: setting up n and sum variables ) Total out of 15

18 Software Engineering Methodology Modular (Can split tasks into self contained units that can be worked on by different groups) Reusable (So can be incorporated into future releases of new products) Flexible (When requirements are in constant flux it is easier to modify system) Reliable (Less likely to introduce errors and easier to find errors)

19 Objects Oriented Programming Language for describing process, ‘things’ and ‘how’ they behave, change, can be used or can be adapted. Think of cookery recipe. An Apple Pie recipe tells you what you need, and how to put things together. Neither on there own makes much sense. Object DataObject Methods

20 Objects - Packaging data and functionality together Example: CGI character in TV drama, Emperor Dalek Data: 3d coordinates of geometry texture properties shading properties lighting properties Methods: Mapping 3d coords to pixels Lighting Shading Perspective Depth testing Audio rendering of voice Physical movement of components

21 Example – Tea the drink Class: Tea Drinking Data: types of tea kind of tea (bag or leaf) amount of tea for pot of tea for N people additional ingredients, milk, sugar, lemon Methods: Top level method of ‘Making Tea’ breaks down into many sub methods: fill kettle with water boil kettle WHAT NEXT?

22 There were five primary goals in the creation of the Java language: 1.It should use the object-oriented programming methodology. 2.It should allow the same program to be executed on multiple computer platforms. 3.It should contain built-in support for using computer networks. 4.It should be designed to execute code from remote sources securely. 5.It should be easy to use and borrow the good parts of older Object Oriented languages like C++.

23 Java Example: Azureus BitTorrent Client

24 Java Example: Web Servers

25 Java Example: Open Office, Open Source Microsoft Office Replacement. As built in Java is portable to: All Linux All Unix All Windows Macs Currently gaining market in cash strapped local governments

26 NetBeans, IDE for Java.

27 Summary Course outline and structure Introduction to global enterprise engineering methods Realization of complexity of system design