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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
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.
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
© 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 1 Program Design
CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell.
Course Instructor: Aisha Azeem
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
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.
Introduction To System Analysis and design
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Chapter 9 Elements of Systems Design
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)
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
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.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
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.
Introduction To System Analysis and Design
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.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Architecture Overview Michael Meisinger Life Cycle Architecture Review.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
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
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.
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.
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.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
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.
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.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
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.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
The Movement To Objects
Object-Oriented Analysis and Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Unified Modeling Language
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
Presentation transcript:

CS288 Object-Oriented Software Engineering Motivation and Introduction Bill Mitchell

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

3 Outline of Course UML modelling concepts Use Case Diagrams Class Diagrams Interfaces Collaboration Interaction diagrams Statechart diagrams Component Deployment

4 Outline of Course Java OO topics Classes and inheritance Class members and methods Creating and destroying objects Class inheritance and hierarchy Java GUI with Swing Java Event Model Refactoring (modifying the 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, C++ Revision Write a complete C++ 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 #include main() { int n = 20, sum = 0; for (int i = 0, i <= n, i++) { sum += i*i; } cout << "Sum of squares is " << sum; } (3 marks: including IO library) (3 marks: defining main and { } enclosing body) (3 marks: variable declarations) (5 marks: ‘for’ loop syntax) (3 marks: loop body) (3 marks: output syntax)

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 Methods: Mapping 3d coords to pixels Audio rendering of voice Physical movement of components

21 Example – Tea the drink Object: 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 CS288 Exam Marks 2004 Course Average : 60% (Weight 40%) Assignment average: 68% (Weight 60%) Exam average:55% Distribution of Marks

28 Summary Course outline and structure Introduction to global enterprise engineering methods Realization of complexity of system design Next time UML class diagrams and language constructs