COSC Week 3. J anuary 19, This week

Size: px
Start display at page:

Download "COSC Week 3. J anuary 19, This week"

Transcription

1 COSC Week 3. J anuary 19, This week Read chapters 2 & 16 of the text Attend your tutorial S how a partial solution to assignment #1 to your TA including some test cases Continue working on Assignment #1 1

2 Learning Objectives To learn about the software life cycle To learn how to discover new classes and methods To understand the use of CRC cards for class discovery To learn how to use object-oriented design to build complex programs Cost of Error Correction Cost of correcting errors grows with the size of the software Large projects cannot be done without advanced planning 1 in every 4 large software projects fails because of lack of planning 2

3 Cost of Correcting Errors As it happens :-) 3

4 Software Development S oftware development is Plan, Build, Deploy Plan is analyze, specify and design Build is code, debug and unit test Deploy is integration test, learn and maintain Software Development Process A formal process which identifies and describes various phases and provides guidelines for carrying out the phases The process consist of five phases Analysis Design Implementation Testing Deployment 4

5 Goals of Analysis To understand the problem To decide what the system is supposed to do To decide what the system is NOT supposed to do To prompt relevant questions about the system Goals of Design To develop a plan on how to implement the system To define the architecture of the system To decompose the software system into modules: classes to decide what each module should do, and to decide how modules should interact 5

6 Goals of Implementation To write and compile code to implement modules (classes) To finalize classes with all details added To verify that classes behave according to their specification (unit testing) Testing: Goals of Testing and Deployment To verify that the system behaves as required Deployment: To install it and use it for the intended purpose 6

7 Software Development Process S everal models have been used in practice Waterfall Model: formal process from 1970 s The S piral Model: Proposed by Boehm in 1988 Extreme Programming Proposed by Kent Beck on 1999 Waterfall Model (source: OOSC by Meyer) 7

8 Problems with Waterfall Approach is rigid cannot start the next phase before completing earlier phases Postpones detection and handling of risks to later phases. Risks include: Architectural- do subsystems work together? Requirements change- not what I wanted :-( Assumptions- client, analyst, designer, tester can make implicit incorrect assumption Iterative Models Iterative models reduce the risk by exposing them early on Waterfall model is followed within each iteration Each iteration adds more functionality to earlier products S piral Model and Extreme Programming are iterative approach 8

9 The Spiral Model Extreme Programming Development methodology that strives for simplicity by removing formal structure and focusing on best practices Realistic planning Customers make business decisions Programmers make technical decisions 9

10 Extreme Programming S mall releases Release a useful system quickly Release updates on a short cycle Pair programming Two programmers write code on the same computer Extreme Programming Continuous integration Build the entire system and test it whenever a task is complete Testing Programmers and customers write test cases Test continuously 10

11 Objec t-oriented Des ign Discover classes Determine responsibilities of each class Describe the relationships among the classes Discovering Classes A class represents some useful concept In most cases class represents an ADT Find classes by looking for nouns in the task description Define the behavior for each class Find methods by looking for verbs in the task description 11

12 CRC Card S tands for classes, responsibilities, collaborators Use an index card for each class Pick the class that should be responsible for each method (verb) Write the responsibility onto the class card Indicate what other classes are needed to fulfill the responsibility - the collaborators A CRC Card 12

13 Relations hips Between Classes Inheritance Association Dependency "Is-a" Relations hip The "is-a" relationship is inheritance; use extends o a circle is an ellipse o a car is a vehicle 13

14 "Has-a" Relations hip The "has-a" relationship is association; use an instance variable o a tire has a circle as its boundary o a car has a set of tires Us es Relations hip The "uses" relationship is dependency o an Applet uses a Graphics object 14

15 "is-a" and "has-a"example class Car extends Vehicle //inheritance "is-a" {... private Tire[] tires; //association "has-a" } Association and Dependenc y One class is associated with another if you can navigate from its objects to objects of the other class One class depends on another if it comes into contact with the other class in some way. Association is a stronger form of dependency 15

16 UML Notation for Inheritanc e and Association UML Relations hip Symbols 16

17 Five-Part Development Process Gather requirements Use CRC cards to find classes, responsibilities, and collaborators Use UML diagrams to record class relationships Use javadoc to document method behavior Implement your program Printing an Invoice - Requirements Print billing address, all line items, amount due Line item contains description, unit price, quantity ordered, total price 17

18 INVOICE Sample Invoic e S am's S mall Appliances 100 Main S treet Anytown, CA Description Price Qty Total Toaster Hair dryer Car vacuum Amount Due: $ Printing an Invoice - CRC Cards Discover classes Nouns are possible classes Invoice Price Address Item Product Description Quantity Total AmountDue 18

19 Printing an Invoice - CRC Cards Classes after a process of elimination Invoice Address Item Product CRC Cards for Printing Invoic e 19

20 CRC Cards for Printing Invoic e CRC Cards for Printing Invoic e 20

21 CRC Cards for Printing Invoic e Printing an Invoice - UML Diagrams The relationship between Invoice classes 21

22 Printing an Invoice - Method Doc umentation Use javadoc documentation comments to record the behavior of the classes Leave the body of the methods blank Run the javadoc utility to obtain a formatted version of the documentation in HTML format Method Doc umentation class /** Describes an invoice for a set of purchased products. */ class Invoice { /** Adds a charge for a product to this param aproduct the product that the customer param quantity the quantity of the product */ public void add(produc t aproduc t, int quantity) { } 22

23 /** Formats the invoic return the formatted invoic e */ public String format() { } } /** Computes the total amount Return the amount due */ public double getamountdue() { } Method Documentation - class /** Describes a quantity an article to purchase and its price. */ Class Item { /** Computes the total cost of this Return the total price */ public double gettotalpric e() { } 23

24 /** */ Formats this Return a formatted string of this item public String format() { } } Method Doc umentation - class /** Describes a product with a description and a price */ class Product { /** Gets the product Return the description */ public String getdes cription() { } /** Gets the product Return the unit price */ public double getpric e() { } } 24

25 Method Doc umentation - class /** Describes a mailing address. */ Class Address { /** Formats the Return the address as a string with 3 lines */ public S tring format() { } } The Class Documentation in the HTML Format 25

26 Printing an Invoice - Implementation The UML diagram will give instance variables o Look for associated classes o They yield instance variables Implementation Invoice is associated with Address and Item It will have Address and Item instance variables 26

27 Implementation An Invoice has one Address. o Declare one Address instance variable. Implementation An Invoice has multiple Items. o Use an ArrayList to hold Items. private ArrayList items 27

28 File Invoic etes t.java 01: import java.util.vector; 02: 03: /** 04: This program tests the invoice classes by printing 05: a sample invoice. 06: */ 07: public class InvoiceTest 08: { 09: public static void main(s tring[] args) 10: { 11: Address samsaddress 12: = new Address("S am's S mall Appliances", 13: "100 Main S treet", "Anytown", "CA", "98765"); 14: 15: Invoice samsinvoice = new Invoice(samsAddress); 16: samsinvoice.add(new Product("Toaster", 29.95), 3); 17: samsinvoice.add(new Product("Hair dryer", 24.95), 1); 18: samsinvoice.add(new Product("Car vacuum", 19.99), 2); 19: 20: S ystem.out.println(samsinvoice.format()); 21: } 22: } 28

29 File Invoic e.java 01: import java.util.arraylist; 02: 03: /** 04: Describes an invoice for a set of purchased products. 05: */ 06: class Invoice 07: { 08: /** 09: Constructs an invoice. param anaddress the billing address 11: */ 12: public Invoice(Address anaddress) 13: { 14: items = new ArrayList(); 15: billingaddress = anaddress; 16: } 17: 18: /** 19: Adds a charge for a product to this invoice. param aproduct the product that the customer ordered param quantity the quantity of the product 22: */ 23: public void add(product aproduct, int quantity) 24: { 25: Item anitem = new Item(aProduct, quantity); 26: items.add(anitem); 27: } 28: 29: /** 30: Formats the invoice. return the formatted invoice 32: */ 33: public S tring format() 34: { 35: S tring r = " I N V O I C E\n\n" 36: + billingaddress.format() 37: + "\n\ndescription Price Qty Total\n"; 29

30 38: for (int i = 0; i < items.size(); i++) 39: { 40: Item nextitem = (Item)items.get(i); 41: r = r + nextitem.format() + "\n"; 42: } 43: 44: r = r + "\namount DUE: $" + getamountdue(); 45: 46: return r; 47: } 48: 49: /** 50: Computes the total amount due. return the amount due 52: */ 53: public double getamountdue() 54: { 55: double amountdue = 0; 56: for (int i = 0; i < items.size(); i++) 57: { 58: Item nextitem = (Item)items.get(i); 59: amountdue = amountdue + nextitem.gettotalprice(); 60: } 61: return amountdue; 62: } 63: 64: private Address billingaddress; 65: private ArrayList items; 66: } 30

31 File Item.java 01: /** 02: Describes a quantity an article to purchase and its price. 03: */ 04: class Item 05: { 06: /** 07: Constructs an item from the product and quantity param aproduct the product param aquantity the item quantity 10: */ 11: public Item(Product aproduct, int aquantity) 12: { 13: theproduct = aproduct; 14: quantity = aquantity; 15: } 16: 17: /** 18: Computes the total cost of this item. return the total price 20: */ 21: public double gettotalprice() 22: { 23: return theproduct.getprice() * quantity; 24: } 25: 26: /** 27: Formats this item. return a formatted string of this item 29: */ 30: public S tring format() 31: { 32: final int COLUMN_WIDTH = 30; 33: S tring description = theproduct.getdescription(); 34: 35: S tring r = description; 36: 37: //pad with spaces to fill column 31

32 38: 39: int pad = COLUMN_WIDTH - description.length(); 40: for (int i = 1; i <= pad; i++) 41: r = r + " "; 42: 43: r = r + theproduct.getprice() 44: + " " + quantity 45: + " " + gettotalprice(); 46: 47: return r; 48: } 49: 50: private int quantity; 51: private Product theproduct; 52: } File Produc t.java 01: /** 02: Describes a product with a description and a price 03: */ 04: class Product 05: { 06: /** 07: Constructs a product from a description and a price. param adescription the product description param aprice the product price 10: */ 11: public Product(S tring adescription, double aprice) 12: { 13: description = adescription; 14: price = aprice; 15: } 16: 17: /** 32

33 18: Gets the product description. return the description 20: */ 21: public S tring getdescription() 22: { 23: return description; 24: } 25: 26: /** 27: Gets the product price. return the unit price 29: */ 30: public double getprice() 31: { 32: return price; 33: } 34: 35: private S tring description; 36: private double price; 37: } File Addres s.java 01: /** 02: Describes a mailing address. 03: */ 04: class Address 05: { 06: /** 07: Constructs a mailing address. param aname the recipient name param as treet the street param acity the city param as tate the 2-letter state code param azip the ZIP postal code 13: */ 14: public Address(S tring aname, S tring as treet, 15: S tring acity, S tring as tate, S tring azip) 16: { 17: name = aname; 18: street = as treet; 33

34 19: city = acity; 20: state = as tate; 21: zip = azip; 22: } 23: 24: /** 25: Formats the address. return the address as a string with 3 lines 27: */ 28: public S tring format() 29: { 30: return name + "\n" + street + "\n" 31: + city + ", " + state + " " + zip; 32: } 33: 34: private S tring name; 35: private S tring street; 36: private S tring city; 37: private S tring state; 38: private S tring zip; 39: } Summary S lides are on the web Work on assignment 1 S how partial solution to TA this week Assignment due next week Do the reading Chapter 2 & 16 of the text 34

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts Software methodologies Extreme Programming Object-Oriented Design CRC Cards - UML class diagrams Analysis Design Implementation Software

More information

No SVN checkout today. Object-Oriented Design

No SVN checkout today. Object-Oriented Design No SVN checkout today Object-Oriented Design Software development methods Object-oriented design with CRC cards LayoutManagers for Java GUIs BallWorlds work time Analysis Design Implementation Software

More information

Object-Oriented Design

Object-Oriented Design Software and Programming I Object-Oriented Design Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline Discovering classes and methods Relationships between classes An object-oriented

More information

The software lifecycle and its documents

The software lifecycle and its documents The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes

More information

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction

More information

CS487 Midterm Exam Summer 2005

CS487 Midterm Exam Summer 2005 1. (4 Points) How does software differ from the artifacts produced by other engineering disciplines? 2. (10 Points) The waterfall model is appropriate for projects with what Characteristics? Page 1 of

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

5 Object Oriented Analysis

5 Object Oriented Analysis 5 Object Oriented Analysis 5.1 What is OOA? 5.2 Analysis Techniques 5.3 Booch's Criteria for Quality Classes 5.4 Project Management and Iterative OOAD 1 5.1 What is OOA? How to get understanding of what

More information

CSE 70 Final Exam Fall 2009

CSE 70 Final Exam Fall 2009 Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Object-Oriented Programming in Java. Topic : Objects and Classes (cont) Object Oriented Design

Object-Oriented Programming in Java. Topic : Objects and Classes (cont) Object Oriented Design Electrical and Computer Engineering Object-Oriented in Java Topic : Objects and Classes (cont) Object Oriented Maj Joel Young Joel.Young@afit.edu 11-Sep-03 Maj Joel Young Using Class Instances Accessing

More information

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL The Unified Modeling Language Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL UML: requirement VS. Design models Identify 2 All the classes or things Elementary business process Necessary step to carry out

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak CSE 403: Software Engineering, Spring 2015 courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams Emina Torlak emina@cs.washington.edu Outline Designing classes Overview of UML UML class diagrams

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

CS 251 Intermediate Programming Methods and More

CS 251 Intermediate Programming Methods and More CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams)

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams) Download FirstOODesignPractice from SVN A Software Engineering Technique: (Class Diagrams) public class TicTacToe { private final int rows; private final int columns; private String[][] board; /** * Constructs

More information

AP COMPUTER SCIENCE AB 2006 SCORING GUIDELINES

AP COMPUTER SCIENCE AB 2006 SCORING GUIDELINES AP COMPUTER SCIENCE AB 2006 SCORING GUIDELINES Question 2: Packs & Bundles (Design) Part A: Pack 3 1/2 points +1/2 class Pack implements Product +1/2 declare both private fields (int and Product) +1 constructor

More information

Module Contact: Dr Taoyang Wu, CMP Copyright of the University of East Anglia Version 1

Module Contact: Dr Taoyang Wu, CMP Copyright of the University of East Anglia Version 1 UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series UG Examination 2016-17 PROGRAMMING FOR NON-SPECIALISTS CMP-5020B Time allowed: 2 hours Section A (Attempt all questions: 80 marks) Section

More information

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.

Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:

More information

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently.

Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. Project 1 Computer Science 2334 Spring 2016 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple movie data system. Milestones: 1. Use

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

26. Object-Oriented Design. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

26. Object-Oriented Design. Java. Summer 2008 Instructor: Dr. Masoud Yaghini 26. Object-Oriented Design Java Summer 2008 Instructor: Dr. Masoud Yaghini Object-Oriented Design In the preceding chapters you learned the concepts of object-oriented programming, such as objects, classes,

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles

More information

Ch 11 Software Development

Ch 11 Software Development COSC 1P03 Ch 11 Software Development Introduction to Data Structures 9-10.1 COSC 1P03 Software Development Phases Analysis problem statement requirements specification system analysts inputs and outputs

More information

Object-Oriented Analysis Phase

Object-Oriented Analysis Phase Object-Oriented Analysis Phase Specification phase for Object-Oriented paradigm Semiformal Technique Natural part of OOA is the graphical notation associated with the technique Learning to use OOA has

More information

Object-Oriented Analysis Phase

Object-Oriented Analysis Phase Object-Oriented Analysis Phase Specification phase for Object-Oriented paradigm Semiformal Technique Natural part of OOA is the graphical notation associated with the technique Learning to use OOA has

More information

Software Development. Modular Design and Algorithm Analysis

Software Development. Modular Design and Algorithm Analysis Software Development Modular Design and Algorithm Analysis Functional Decomposition Functional Decomposition in computer science, also known as factoring, refers to the process by which a complex problem

More information

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development Progress Report Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) CS 4354 Summer II 2014 Jill Seaman So far we have learned about the tools used in object-oriented

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A G R A M S ) WHAT IS CLASS DIAGRAM? A class diagram

More information

Introduction to Extreme Programming

Introduction to Extreme Programming Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Robert Martin, Object Mentor Ron Jeffries,et.al. 12/3/2003 Slide Content by Wake/Metsker 1

More information

CS 152 Computer Programming Fundamentals Coding Standards

CS 152 Computer Programming Fundamentals Coding Standards CS 152 Computer Programming Fundamentals Coding Standards Brooke Chenoweth University of New Mexico Fall 2018 CS-152 Coding Standards All projects and labs must follow the great and hallowed CS-152 coding

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

More information

EECS 211 Lab 8. Inheritance Winter Getting the code. Inheritance. General Idea. An Example

EECS 211 Lab 8. Inheritance Winter Getting the code. Inheritance. General Idea. An Example EECS 211 Lab 8 Inheritance Winter 2018 In this week s lab, we will be going over inheritance, and doing some more practice with classes. If you have any lingering questions during the lab, don t hesitate

More information

Final Exam CISC 475/675 Fall 2004

Final Exam CISC 475/675 Fall 2004 True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The

More information

Requirements and Design Overview

Requirements and Design Overview Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions

More information

Week 9 Implementation

Week 9 Implementation Week 9 Implementation Dr. Eliane l. Bodanese What is more important From a software engineering perspective: Good Gui? does what customer wants maintainable, extensible, reusable Commented Code? how is

More information

Defining Classes and Methods

Defining Classes and Methods Defining Classes and Methods Chapter 5 Modified by James O Reilly Class and Method Definitions OOP- Object Oriented Programming Big Ideas: Group data and related functions (methods) into Objects (Encapsulation)

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Enn Õunapuu enn.ounapuu@ttu.ee What is a domain model? A domain model captures the most important types of objects in the context

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 14 Array Wrap-Up Outline Problem: How can I store information in arrays without complicated array management? The Java language supports ArrayLists

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

COULEUR NATURE ACCOUNT APPLICATION

COULEUR NATURE ACCOUNT APPLICATION ACCOUNT APPLICATION APPLICATION FORMS Please fill in the application forms and send us your first order. FORM 1: ACCOUNT INFORMATION REQUIRED FORM 2: TAX ID FORM 3: CREDIT CARD AUTHORIZATION FORM 4: ACKNOWLEDGEMENT

More information

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount

More information

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping. i About the Tutorial SDLC stands for Software Development Life Cycle. SDLC is a process that consists of a series of planned activities to develop or alter the Software Products. This tutorial will give

More information

Object- Oriented Analysis, Design and Programming

Object- Oriented Analysis, Design and Programming Object- Oriented Analysis, Design and Programming Medialogy, Semester 4 Monday 19 April 2010 9.00 12.00 You have 3 hours to complete this examination. Neither written material nor electronic equipment

More information

Defining Classes and Methods. Objectives. Objectives 6/27/2014. Chapter 5

Defining Classes and Methods. Objectives. Objectives 6/27/2014. Chapter 5 Defining Classes and Methods Chapter 5 Objectives Describe concepts of class, class object Create class objects Define a Java class, its methods Describe use of parameters in a method Use modifiers public,

More information

Object-Oriented Analysis and Design Using UML (OO-226)

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

Input Space Partitioning

Input Space Partitioning Input Space Partitioning Instructor : Ali Sharifara CSE 5321/4321 Summer 2017 CSE 5321/4321, Ali Sharifara, UTA 1 Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis

More information

Object-Oriented and Classical Software Engineering

Object-Oriented and Classical Software Engineering Slide 16.1 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach srs@vuse.vanderbilt.edu CHAPTER 16 Slide 16.2 MORE ON UML 1 Chapter Overview Slide

More information

Programming Project 5: NYPD Motor Vehicle Collisions Analysis

Programming Project 5: NYPD Motor Vehicle Collisions Analysis : NYPD Motor Vehicle Collisions Analysis Due date: Dec. 7, 11:55PM EST. You may discuss any of the assignments with your classmates and tutors (or anyone else) but all work for all assignments must be

More information

CS112 Lecture: Defining Instantiable Classes

CS112 Lecture: Defining Instantiable Classes CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:

More information

CSE 1325 Project Description

CSE 1325 Project Description CSE 1325 Summer 2016 Object-Oriented and Event-driven Programming (Using Java) Instructor: Soumyava Das Project III Assigned On: 7/12/2016 Due on: 7/25/2016 (before 11:59pm) Submit by: Blackboard (1 folder

More information

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram Modeling with UML A language or notation intended for analyzing, describing and documenting all aspects of the object-oriented software system. UML uses graphical notations to express the design of software

More information

Requirements Gathering using Object- Oriented Models UML Class Diagram. Reference: https://www.tutorialspoint.com/uml/uml_class_diagram.

Requirements Gathering using Object- Oriented Models UML Class Diagram. Reference: https://www.tutorialspoint.com/uml/uml_class_diagram. Requirements Gathering using Object- Oriented Models UML Class Diagram Reference: https://www.tutorialspoint.com/uml/uml_class_diagram.htm Class Diagram The class diagram is a static diagram. It represents

More information

Designing applications. Main concepts to be covered

Designing applications. Main concepts to be covered Designing applications 4.0 Main concepts to be covered Discovering classes CRC cards Designing interfaces Patterns 2 1 Analysis and design A large and complex area. The verb/noun method is suitable for

More information

CSC207 Week 3. Larry Zhang

CSC207 Week 3. Larry Zhang CSC207 Week 3 Larry Zhang 1 Announcements Readings will be posted before the lecture Lab 1 marks available in your repo 1 point for creating the correct project. 1 point for creating the correct classes.

More information

Lecture Chapter 2 Software Development

Lecture Chapter 2 Software Development Lecture Chapter 2 Software Development Large Software Projects Software Design o Team of programmers o Cost effective development Organization Communication Problem Solving Analysis of the problem Multiple

More information

COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9

COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9 COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9 1. What is object oriented programming (OOP)? How is it differs from the traditional programming? 2. What is a class? How a class is different from a structure?

More information

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN

CSSE 220 Day 19. Object-Oriented Design Files & Exceptions. Check out FilesAndExceptions from SVN CSSE 220 Day 19 Object-Oriented Design Files & Exceptions Check out FilesAndExceptions from SVN A practical technique OBJECT-ORIENTED DESIGN Object-Oriented Design We won t use full-scale, formal methodologies

More information

Software Testing. Overview

Software Testing. Overview Software Testing Overview Software is NOT simply programming! Complex development process required Domain of Software Engineering Top Down software development popular The WaterFall model... November 28,

More information

Objectives. Connecting with Computer Science 2

Objectives. Connecting with Computer Science 2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering process models Understand what a design document is and how it should be used during

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each)

PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each) PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each) 1. An example of a narrowing conversion is a) double to long b) long to integer c) float to long d) integer to long 2. The key

More information

Designing Classes. Appendix D. Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall

Designing Classes. Appendix D. Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall Designing Classes Appendix D Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing

More information

NATIONAL ACCOUNTS PROGRAM BENEFITS: INFORMATION AND ASSISTANCE:

NATIONAL ACCOUNTS PROGRAM BENEFITS: INFORMATION AND ASSISTANCE: NATIONAL ACCOUNTS The Goodyear National Accounts program is designed to deliverfleet business to your outlet. There are more than 1,000 National Account customers with milions of vehicles offering consumer

More information

3 Getting Started with Objects

3 Getting Started with Objects 3 Getting Started with Objects If you are an experienced IDE user, you may be able to do this tutorial without having done the previous tutorial, Getting Started. However, at some point you should read

More information

BSc. (Hons.) Software Engineering. Examinations for / Semester 2

BSc. (Hons.) Software Engineering. Examinations for / Semester 2 BSc. (Hons.) Software Engineering Cohort: BSE/04/PT Examinations for 2005-2006 / Semester 2 MODULE: OBJECT ORIENTED PROGRAMMING MODULE CODE: BISE050 Duration: 2 Hours Reading Time: 5 Minutes Instructions

More information

CMPS 134: Computer Science I Fall 2011 Test #1 October 5 Name Dr. McCloskey

CMPS 134: Computer Science I Fall 2011 Test #1 October 5 Name Dr. McCloskey CMPS 134: Computer Science I Fall 2011 Test #1 October 5 Name Dr. McCloskey 1. For each statement, circle the response (or write its letter on the underscore) that best completes that statement. (i) is

More information

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Object Oriented Processes R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Life Cycle Models Waterfall Spiral Fountain Extreme Model Driven Phases and their relations with object orientation requirements

More information

CSE 142 Wi04 Midterm 2 Sample Solution Page 1 of 8

CSE 142 Wi04 Midterm 2 Sample Solution Page 1 of 8 CSE 142 Wi04 Midterm 2 Sample Solution Page 1 of 8 Question 1. (6 points) Complete the definition of method printtriangle(n) below so that when it is executed it will print on System.out an upside down

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 5 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Contents From Requirements to Design: CRC Cards Class Diagrams I Sequence Diagrams

More information

MIS2502: Data Analytics Relational Data Modeling - 1. JaeHwuen Jung

MIS2502: Data Analytics Relational Data Modeling - 1. JaeHwuen Jung MIS2502: Data Analytics Relational Data Modeling - 1 JaeHwuen Jung jaejung@temple.edu http://community.mis.temple.edu/jaejung Where we are Now we re here Data entry Transactional Database Data extraction

More information

USER GUIDE Deployment

USER GUIDE Deployment 2011 USER GUIDE Deployment This article will provide instructions on how to deploy your Code On Time application to a server. Our examples use the Northwind sample database and a Windows Virtual Private

More information

Inf1-OOP. Encapsulation and Collections. Perdita Stevens, adapting earlier version by Ewan Klein. March 2, School of Informatics

Inf1-OOP. Encapsulation and Collections. Perdita Stevens, adapting earlier version by Ewan Klein. March 2, School of Informatics Inf1-OOP Encapsulation and Collections Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics March 2, 2015 Encapsulation Accessing Data Immutability Enhanced for loop Collections

More information

Outline of Unified Process

Outline of Unified Process Outline of Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule(3/3) March 12 13:00 Unified Process and COMET 14:30 Case Study of Elevator Control System (problem definition,

More information

Chapter 6 Lab Classes and Objects

Chapter 6 Lab Classes and Objects Lab Objectives Chapter 6 Lab Classes and Objects Be able to declare a new class Be able to write a constructor Be able to write instance methods that return a value Be able to write instance methods that

More information

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects Activities Common to Software Projects Software Life Cycle Mark van den Brand Requirements and specification Domain analysis Defining the problem Requirements gathering Obtaining input from as many sources

More information

Defining Classes and Methods

Defining Classes and Methods Defining Classes and Methods Chapter 5 Objects and References: Outline Variables of a Class Type Defining an equals Method for a Class Boolean-Valued Methods Parameters of a Class Type Variables of a Class

More information

6.092: Introduction to Java. 6: Design, Debugging, Interfaces

6.092: Introduction to Java. 6: Design, Debugging, Interfaces 6.092: Introduction to Java 6: Design, Debugging, Interfaces Assignment 5: main() Programs start at a main() method, but many classes can have main() public class SimpleDraw { /*... stuff... */ public

More information

ADF Mobile Code Corner

ADF Mobile Code Corner ADF Mobile Code Corner m05. Caching WS queried data local for create, read, update with refresh from DB and offline capabilities Abstract: The current version of ADF Mobile supports three ADF data controls:

More information

Inheritance and Interfaces

Inheritance and Interfaces Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical

More information

Correctness of specifications. Correctness. Correctness of specifications (2) Example of a Correctness Proof. Testing versus Correctness Proofs

Correctness of specifications. Correctness. Correctness of specifications (2) Example of a Correctness Proof. Testing versus Correctness Proofs CS 390 Lecture 17 Correctness A product is correct if it satisfies its output specifications when operated under permitted conditions Correctness of specifications Incorrect specification for a sort (Figure

More information

Chapter 6 Lab Classes and Objects

Chapter 6 Lab Classes and Objects Gaddis_516907_Java 4/10/07 2:10 PM Page 51 Chapter 6 Lab Classes and Objects Objectives Be able to declare a new class Be able to write a constructor Be able to write instance methods that return a value

More information

CPSC 211 MIDTERM PRACTICE EXERCISES

CPSC 211 MIDTERM PRACTICE EXERCISES CPSC 211 MIDTERM PRACTICE EXERCISES Note: These questions are intended to help you practice and review the course material. Do not consider these questions as typical midterm questions; in particular,

More information

INTRODUCTION TO SOFTWARE SYSTEMS (COMP1110/COMP1140/COMP1510/COMP6710)

INTRODUCTION TO SOFTWARE SYSTEMS (COMP1110/COMP1140/COMP1510/COMP6710) Important notice: This document is a sample exam. The final exam will differ from this exam in numerous ways. The purpose of this sample exam is to provide students with access to an exam written in a

More information

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Object Oriented Processes R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Life Cycle Models Waterfall Spiral Fountain Extreme Model Driven Phases and their relations with object orientation requirements

More information

Unified Modeling Language

Unified Modeling Language jonas.kvarnstrom@liu.se 2015 Unified Modeling Language A Brief Introduction History In the early 1990s, three common OO modeling approaches James Rumbaugh's Object-modeling technique (OMT) 2 Grady Booch's

More information

Open Closed Principle (OCP)

Open Closed Principle (OCP) Open Closed Principle (OCP) Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ SOLID Class Design Principles

More information

QUIZ #5 - Solutions (5pts each)

QUIZ #5 - Solutions (5pts each) CS 435 Spring 2014 SOFTWARE ENGINEERING Department of Computer Science Name QUIZ #5 - Solutions (5pts each) 1. The best reason for using Independent software test teams is that a. software developers do

More information

SOFTWARE LIFE-CYCLE MODELS 2.1

SOFTWARE LIFE-CYCLE MODELS 2.1 SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed

More information

CS 351 Design of Large Programs Coding Standards

CS 351 Design of Large Programs Coding Standards CS 351 Design of Large Programs Coding Standards Brooke Chenoweth University of New Mexico Spring 2018 CS-351 Coding Standards All projects and labs must follow the great and hallowed CS-351 coding standards.

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design

More information