Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction (1) Chapter 1 (1) Object-Oriented Modeling and Design Byung-Hyun Ha

Similar presentations


Presentation on theme: "Introduction (1) Chapter 1 (1) Object-Oriented Modeling and Design Byung-Hyun Ha"— Presentation transcript:

1 Introduction (1) Chapter 1 (1) Object-Oriented Modeling and Design Byung-Hyun Ha bhha@pusan.ac.kr

2 Lecture Outline  Prolog  Preface (in the Textbook)  Introduction  Object-oriented  Basics in Java programming

3 Caution!  My English  I’d like to hear from you, if you cannot understand my words, please.

4 Prolog  This course is about software engineering or software development, not about computer programming including object-oriented languages and coding.  However, if you are not familiar with computer programming, it will never easy to understand concepts in this book.  That is, the audience of this course is those who have experience of computer programming.

5 Prolog  Who need to take this course  Those who want to be a professional programmer,  Those who want to be a S/W library developer,  Those who want to be (software) system engineer,  Those who want to learn a new way of thinking for world (system)  Those who wonder what SE is, or ……  Who can take this course  those who have experience of participating in large S/W development process,  those who have basic knowledge in programming,  those who want to learn SE,  those who have to take qualified exam, or ……

6 Prolog  Who may make mistake of taking this course  those who believe this course will improve their knowledge about computer or computer programming,  those who expect this course will improve their computer programming skill,  those who want to learn how to implement Heuristic algorithms for the problems in the projects they participate in,  those who believe it is quite sufficient for computer applications (programs) to run without error,  those who hate complex approach to simple problems, and ……

7 Prolog  Say again,  Computer programming skill for industrial engineer  Very important! because if they have the skill, they can do much deeper study during their research.  But this course is for (software) system engineering!  I recommend a course from Prof. Ryu, our new professor.

8 Course Material  Textbook  Rumbaugh et al., Object-Oriented Modeling and Design, Prentice-Hall, Inc., NJ, 1991 the predecessor of UML (Unified Modeling Language)  References  Whitten, Bentley, Dittman, Systems Analysis and Design Methods, 6th Ed., McGraw-Hill, 2004  Gamma et al., Design Patterns: Elements of Reusable Object- Oriented Software, Addison-Wesley, 1995

9 Course Plan  Introduction  Including Java language review  Modeling concepts  Object modeling  Dynamic modeling  Functional modeling  Design methodology  Analysis  System design  Object design  Implementation & applications

10 Student Evaluation  Attendance: 10%  Homework: 20%  may include java programming  Mid/final exam: 35%  Term project: 35%

11 Preface (in the Textbook)  An object-oriented approach to software development based on  modeling objects from the real world  and then using the model to build a language-independent design organized around those objects  Object-oriented modeling and design promote  better understanding of requirements  cleaner design  more maintainable (information) systems  In this course  a set of object-oriented concepts  a language-independent graphical notation Object Modeling Technique

12 Preface (in the Textbook)  Object Modeling Technique  analyze problem requirements  design a solution to the problem  implement the solution in a programming language or database  the same concepts and a notation to be used throughout the entire software development process, does not need to translate into a new notation at each development stage  Object-oriented technology is more than just a way of programming  a way of thinking abstractly about a problem using real world concepts, rather than computer concepts  Think in terms of application, not of computer!

13 Introduction  Object-oriented modeling and design  a new way of thinking about problems using models organized around real-world concepts  Fundamental concept is object,  which combines both data structure and behavior in a single entry  OOMD lifecycle  First, analysis model to abstract essential aspects of application domain without regard for eventual implementation  Then, design decisions are made and details are added  Finally, design model is implemented

14 Object-Oriented  “Object-oriented” means  we organize software as a collection of discrete objects that incorporate both data and behavior  Required characteristics  Identity  Classification  Polymorphism  Inheritance

15 Object-Oriented  Identity  Data is quantized into discrete, distinguishable entities called objects e.g. a paragraph in a document, a window on my PC, white queen in a chess game  Objects can be concrete or conceptual e.g. a file in a file system, a scheduling policy  Each object has its own inherent identity Two objects are distinct even if their attribute values (such as name and size) are identical

16 Object-Oriented  Classification  Objects with the same data structure (attributes, signature, …) and behavior (operations, methods, …) are grouped into a class  A class is an abstraction that describes properties important to an application and ignores the rest  Each class describes a possibly infinite set of individual objects Each object is said to be an instance of its class  Polymorphism  The same operation may behave differently on different classes  Inheritance  The sharing of attributes and operations among classes based on a hierarchical relationship

17 Object-Oriented  Anyway, what is object-oriented?  Before moving further, let’s review the object-oriented using Java

18 Java Programming  I recommend Eclipse for Java programming

19 Hello World!  First, you have to memorize! public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); System.out.println("Hello Java!"); } Hello World! Hello Java!

20 Java Programming Using Eclipse  Select [File – New – Java Project], enter project name, select [Finish] button

21 Java Programming Using Eclipse  Select [File – New – Class], enter class name (Hello), select [Finish] button

22 Java Programming Using Eclipse  Type codes and save it

23 Java Programming Using Eclipse  Execute by selecting run button ( )

24 Arithmetic Operations  Numerical and string-wide public class Calc { public static void main(String[] args) { System.out.println(127.0 * 135.0 - 562.5 / 23.2); } public class StringAdd { public static void main(String[] args) { System.out.println("I" + " am " + "handsome"); }

25 Arithmetic Operations  Mixed form public class StringAdd { public static void main(String[] args) { System.out.println("I" + 13 + 4 + "handsome"); } I134handsome

26 Variables  Primitive types public class Variable { public static void main(String[] args) { int a; int b; a = 2; b = 3; a = b; System.out.println(a); a = a + 5; System.out.println(a); }

27 Numerical Type  Integral types  byte : 8-bit,  128 to 127  short : 16-bit,  32768 to 32767  int : 32-bit,  2147483648 to 2147483647  long : 64-bit,  9223372036854775808 to 9223372036854775807  char : 16-bit, 0 to 65535  Floating-point types  float : 32-bit  double : 64-bit

28 Swapping Values  Wrong implementation public class Swap { public static void main(String[] args) { int a = 1; int b = 2; b = a; a = b; System.out.println(a + " " + b); }

29 Swapping Values  Correct one public class Swap { public static void main(String[] args) { int a = 1; int b = 2; int c = a; a = b; b = c; System.out.println(a + " " + b); }

30 Arrays  A collection of values public class Array { public static void main(String[] args) { int[] a = new int[3]; a[0] = 10; a[1] = 5; a[2] = 7; System.out.println(a[0] + " " + a[1] + " " + a[2]); }

31 Arrays  Using variable as reference public class Array { public static void main(String[] args) { int[] a = new int[3]; a[0] = 10; a[1] = 5; int[] b = a; b[2] = 7; System.out.println(a[0] + " " + b[1] + " " + a[2]); }

32 Arrays  Indexing using variables public class Index { public static void main(String[] args) { double[] a = new double[3]; int b = 2; a[b] = 5.5; a[b - 1] = -3.2; a[0] = 4.1; System.out.println(a[b - 2] - a[1]); }

33 Arrays  Multi-dimensional array public class TwoDim { public static void main(String[] args) { int[][] a = new int[2][3]; a[0][0] = 1; a[0][1] = 2; a[0][2] = 3; a[1][0] = 4; a[1][1] = 5; a[1][2] = 6; System.out.println(a[1][2]); System.out.println(a[0][1]); }

34 Handling Text String in Java  Actually implemented by String class public class StringClass { public static void main(String[] args) { String a = new String("This is string"); String b = "For simplicity"; String c = b + " " + a; System.out.println(c); }

35 Operations  Check leap year public class Lunar { public static void main(String[] args) { int year = 2000; boolean p = ((year % 4) == 0); boolean q = ((year % 100) != 0); boolean r = ((year % 400) == 0); System.out.println((p && q) || r); year = 2004; p = ((year % 4) == 0); q = ((year % 100) != 0); r = ((year % 400) == 0); System.out.println((p && q) || r); }

36 User Input Processing  Check leap year by user input public class IsLunar { public static void main(String[] args) { java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("Input year: "); int year = s.nextInt(); boolean p = ((year % 4) == 0); boolean q = ((year % 100) != 0); boolean r = ((year % 400) == 0); System.out.println((p && q) || r); }

37 Java API Reference (Have to Be Installed)

38 HW1: Sum from n to m  Run sample  For every HW, send e-mail to me by one day before the next lecture Input n: 8 Input m which is more than 8: 10 Sum from 8 to 10 is 27.

39 Control Flow  If statement public class EvenOdd { public static void main(String[] args) { java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("Input an integer: "); int a = s.nextInt(); if ((a % 2) == 0) { System.out.println(a + " is an even number."); } else { System.out.println(a + " is an odd number."); }

40 Control Flow  Nested if statements public class Score { public static void main(String[] args) { java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("Your points? "); int points = s.nextInt(); if (points > 80) { if (points == 100) { System.out.println("A"); } else { System.out.println("B"); } } else { System.out.println("F"); }

41 Control Flow  for statement public class Gugu { public static void main(String[] args) { java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("For what? "); int n = s.nextInt(); for (int i = 1; i <= 9; i++) { System.out.println(n + " * " + i + " = " + n * i); }

42 Control Flow  while statement public class Binary { public static void main(String[] args) { java.util.Scanner s = new java.util.Scanner(System.in); System.out.print("Input decimal number: "); int n = s.nextInt(); int[] digits = new int[32]; int i = 0; while (n > 0) { digits[i] = n % 2; n = n / 2; i++; } for (int j = i - 1; j >= 0; j--) { System.out.print(digits[j]); }

43 HW2: Displaying Diamonds  Write code of displaying diamonds as follows Height? 3 Number? 4 * * * * *** *** *** *** ***** ***** *** *** *** *** * * * * Height? 5 Number? 2 * * *** *** ***** ***** ******* ******* ********* ******* ******* ***** ***** *** *** * *


Download ppt "Introduction (1) Chapter 1 (1) Object-Oriented Modeling and Design Byung-Hyun Ha"

Similar presentations


Ads by Google