SlideShare a Scribd company logo
© 2003 Prentice Hall, Inc. All rights reserved.
Chapter 1 – Introduction to Computers, the Internet,
and the Web
Outline
1.1 Introduction
1.2 What Is a Computer?
1.3 Computer Organization
1.4 Evolution of Operating Systems
1.5 Personal, Distributed and Client/Server Computing
1.6 Machine Languages, Assembly Languages and High-Level
Languages
1.7 History of C++
1.8 History of Java
1.9 Java Class Libraries
1.10 FORTRAN, COBOL, Pascal and Ada
1.11 BASIC, Visual Basic, Visual C++, C# and .NET
1.12 The Internet and the World Wide Web
1.13 Basics of a Typical Java Environment
© 2003 Prentice Hall, Inc. All rights reserved.
Chapter 1 – Introduction to Computers, the Internet,
and the Web
1.14 General Notes about Java and This Book
1.15 Thinking About Objects: Introduction to Object Technology
and the Unified Modeling Language
1.16 Discovering Design Patterns: Introduction
© 2003 Prentice Hall, Inc. All rights reserved.
1.1 Introduction
• Java How to Program, Fifth Edition
– Java 2 Standard Edition
– Object-oriented programming
© 2003 Prentice Hall, Inc. All rights reserved.
1.2 What Is a Computer?
• Computer
– Performs computations and makes logical decisions
– Millions / billions times faster than human beings
• Computer programs
– Sets of instructions for which computer processes data
• Hardware
– Physical devices of computer system
• Software
– Programs that run on computers
© 2003 Prentice Hall, Inc. All rights reserved.
1.3 Computer Organization
• Six logical units of computer system
– Input unit
• Mouse, keyboard
– Output unit
• Printer, monitor, audio speakers
– Memory unit
• Retains input and processed information
– Arithmetic and logic unit (ALU)
• Performs calculations
– Central processing unit (CPU)
• Supervises operation of other devices
– Secondary storage unit
• Hard drives, floppy drives
© 2003 Prentice Hall, Inc. All rights reserved.
1.4 Evolution of Operating Systems
• Batch processing
– One job (task) at a time
– Operating systems developed
• Programs to make computers more convenient to use
• Switch jobs easier
• Multiprogramming
– “Simultaneous” jobs
– Timesharing operating systems
© 2003 Prentice Hall, Inc. All rights reserved.
1.5 Personal, Distributed and Client/Server
Computing
• Personal computing
– Computers for personal use
• Distributed computing
– Computing performed among several computers
• Client/server computing
– Servers offer common store of programs and data
– Clients access programs and data from server
© 2003 Prentice Hall, Inc. All rights reserved.
1.6 Machine Languages, Assembly
Languages and High-Level Languages
• Machine language
– “Natural language” of computer component
– Machine dependent
• Assembly language
– English-like abbreviations represent computer operations
– Translator programs convert to machine language
• High-level language
– Allows for writing more “English-like” instructions
• Contains commonly used mathematical operations
– Compiler convert to machine language
• Interpreter
– Execute high-level language programs without compilation
© 2003 Prentice Hall, Inc. All rights reserved.
1.7 History of C++
• C++
– Evolved from C
• Evolved from BCPL and B
– Provides object-oriented programming capabilities
• Objects
– Reusable software components that model real-world items
© 2003 Prentice Hall, Inc. All rights reserved.
1.8 History of Java
• Java
– Originally for intelligent consumer-electronic devices
– Then used for creating Web pages with dynamic content
– Now also used for:
• Develop large-scale enterprise applications
• Enhance WWW server functionality
• Provide applications for consumer devices (cell phones, etc.)
© 2003 Prentice Hall, Inc. All rights reserved.
1.9 Java Class Libraries
• Classes
– Include methods that perform tasks
• Return information after task completion
– Used to build Java programs
• Java contains class libraries
– Known as Java APIs (Application Programming Interfaces)
© 2003 Prentice Hall, Inc. All rights reserved.
1.10 FORTRAN, COBOL, Pascal and Ada
• Fortran
– FORmula TRANslator
• COBOL
– COmmon Business Oriented Language
• Pascal
– Structured programming
• Ada
– Multitasking
© 2003 Prentice Hall, Inc. All rights reserved.
1.11 BASIC, Visual Basic, Visual C++, C#
and .NET
• BASIC
– Beginner’s All-Purpose Symbolic Instruction Code
• Visual Basic .NET
– Framework Class Library (FLC)
• Visual C++
– Microsoft Foundation Classes (MFC)
• C#
– C-Sharp
• .NET
– .NET platform
© 2003 Prentice Hall, Inc. All rights reserved.
1.12 The Internet and the World Wide Web
• Internet
– Developed more than four decades ago with DOD funding
– Originally for connecting few main computer systems
– Now accessible by hundreds of millions of computers
• World Wide Web (WWW)
– Allows for locating/viewing multimedia-based documents
© 2003 Prentice Hall, Inc. All rights reserved.
1.13 Basics of a Typical Java Environment
• Java programs normally undergo five phases
– Edit
• Programmer writes program (and stores program on disk)
– Compile
• Compiler creates bytecodes from program
– Load
• Class loader stores bytecodes in memory
– Verify
• Verifier ensures bytecodes do not violate security requirements
– Execute
• Interpreter translates bytecodes into machine language
© 2003 Prentice Hall, Inc. All rights reserved.
Fig. 1.1 Typical Java environment.
Primary
Memory
.
.
.
.
.
.
Disk
Disk
Disk
Editor
Compiler
Class Loader
Program is created in
an editor and stored
on disk in a file ending
with .java.
Compiler creates
bytecodes and stores
them on disk in a file
ending with .class.
Class loader reads
.class files
containing
bytecodes from
disk and puts
those bytecodes in
memory.
Phase 1
Phase 2
Phase 3
Primary
Memory
.
.
.
.
.
.
Bytecode
Verifier Bytecode verifier
confirms that all
bytecodes are valid
and do not violate
Java’s security
restrictions.
Phase 4
Primary
Memory
.
.
.
.
.
.
Interpreter
Interpreter reads
bytecodes and
translates them into
a language that the
computer can
understand,
possibly storing
data values as the
program executes.
Phase 5
© 2003 Prentice Hall, Inc. All rights reserved.
1.14 General Notes about Java and This
Book
• Geared for novice programmers
• We stress clarity
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects: Introduction
to Object Technology and the Unified
Modeling Language
• Object orientation
• Unified Modeling Language (UML)
– Graphical language that uses common notation
– Allows developers to represent object-oriented designs
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects (cont.)
• Objects
– Reusable software components that model real-world items
– Look all around you
• People, animals, plants, cars, etc.
– Attributes
• Size, shape, color, weight, etc.
– Behaviors
• Babies cry, crawl, sleep, etc.
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects (cont.)
• Object-oriented design (OOD)
– Models real-world objects
– Models communication among objects
– Encapsulates attributes and operations (behaviors)
• Information hiding
• Communication through well-defined interfaces
• Object-oriented language
– Programming in object oriented languages is called object-
oriented programming (OOP)
– Java
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects (cont.)
• Object-Oriented Analysis and Design (OOA/D)
– Essential for large programs
– Analyze program requirements, then develop solution
– UML
• Unified Modeling Language
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects (cont.)
• History of the UML
– Need developed for process with which to approach OOA/D
– Brainchild of Booch, Rumbaugh and Jacobson
– Object Management Group (OMG) supervised
– Version 1.4 is current version
• Version 2.0 scheduled tentatively for release in 2003
© 2003 Prentice Hall, Inc. All rights reserved.
1.15 Thinking About Objects (cont.)
• UML
– Graphical representation scheme
– Enables developers to model object-oriented systems
– Flexible and extendible
© 2003 Prentice Hall, Inc. All rights reserved.
1.16 Discovering Design Patterns:
Introduction
• Effective design crucial for large programs
• Design patterns
– Proven architectures for developing object-oriented software
• Architectures created from accumulated industry experience
– Reduce design-process complexity
– Promotes design reuse in future systems
– Helps identify common design mistakes and pitfalls
– Helps design independently of implementation language
– Establishes common design “vocabulary”
– Shortens design phase in software-development process
© 2003 Prentice Hall, Inc. All rights reserved.
1.16 Discovering Design Patterns (cont.)
• Design patterns
– Similar to architectural elements
• arches and columns
– Used by developers to construct sets of classes and objects
• Developers
– Familiarity with patterns to understand how to use patterns
© 2003 Prentice Hall, Inc. All rights reserved.
1.16 Discovering Design Patterns (cont.)
• History of Design Patterns
– Gamma, Helm, Johnson and Vlissides
• “Gang of Four”
• Design Patterns, Elements of Reusable Object-Oriented
Software (Addison Wesley: 1995)
• Established 23 design patterns
– Creational
• Instantiate objects
– Structural
• Organize classes and objects
– Behavioral
• Assign responsibilities to objects

More Related Content

PPT
PPTX
Oop lecture1-chapter1(review of java)
PPT
Pl9ch1
PPTX
Ch1 language design issue
PPTX
Logical programming languages and functional programming languages
PPTX
Computer Programming - Lecture B
Oop lecture1-chapter1(review of java)
Pl9ch1
Ch1 language design issue
Logical programming languages and functional programming languages
Computer Programming - Lecture B

What's hot (20)

PDF
Languages in computer
PPT
13 A Programing Languages (IT) Lecture Slide
PPT
Introduction to programming principles languages
PPTX
Programming languages,compiler,interpreter,softwares
PDF
Compiler Design Introduction
PPTX
Principles of programming
PPT
Chapter 01
PPTX
Programming languages and paradigms
PPTX
Cmp2412 programming principles
PPT
Session01 basics programming
PDF
Introduction
PPTX
Programming languages
PPTX
Development of computer languages
PPTX
Interpreted and compiled language
PDF
The Ring programming language version 1.6 book - Part 6 of 189
PPT
9781111530532 ppt ch01
PDF
CSC1100 - Chapter11 - Programming Languages and Program Development
PPTX
Mba i-ifm-u-2-computer software
DOCX
WEBSITE DEVELOPMENT
PPT
Languages in computer
13 A Programing Languages (IT) Lecture Slide
Introduction to programming principles languages
Programming languages,compiler,interpreter,softwares
Compiler Design Introduction
Principles of programming
Chapter 01
Programming languages and paradigms
Cmp2412 programming principles
Session01 basics programming
Introduction
Programming languages
Development of computer languages
Interpreted and compiled language
The Ring programming language version 1.6 book - Part 6 of 189
9781111530532 ppt ch01
CSC1100 - Chapter11 - Programming Languages and Program Development
Mba i-ifm-u-2-computer software
WEBSITE DEVELOPMENT
Ad

Similar to Introduction to Computers, the Internet and the Web (20)

PPT
Introduction to Computers and C++ Programming
PPT
C programming Introduction
PPT
Introduction to C Language chapter 01.ppt
PPT
Chtp4 01
PPT
JavaHTP7e_0101_DDP.ppt
PPT
1. intro to comp & c++ programming
PPTX
Preliminary Concepts in principlesofprogramming.pptx
PPTX
Principlesofprogramminglanguage concepts.pptx
PPT
1_chapter one Java content materials.ppt
PPT
Chapter 04 C++ Programmings Fundamental.
PPT
cpphtp4_PPT_01.ppt
PPT
Cpp htp5e 01
PPTX
Plc part 1
PPT
Lecture 1.ppt
PPTX
Programming language
PPT
Evalution about programming language part 1
PPT
01 intro to vb-net
PPT
iw3htp4_01-FINAL.ppt
PPTX
Compilers.pptx
Introduction to Computers and C++ Programming
C programming Introduction
Introduction to C Language chapter 01.ppt
Chtp4 01
JavaHTP7e_0101_DDP.ppt
1. intro to comp & c++ programming
Preliminary Concepts in principlesofprogramming.pptx
Principlesofprogramminglanguage concepts.pptx
1_chapter one Java content materials.ppt
Chapter 04 C++ Programmings Fundamental.
cpphtp4_PPT_01.ppt
Cpp htp5e 01
Plc part 1
Lecture 1.ppt
Programming language
Evalution about programming language part 1
01 intro to vb-net
iw3htp4_01-FINAL.ppt
Compilers.pptx
Ad

More from Andy Juan Sarango Veliz (20)

PDF
Examen final de CCNA Routing y Switching Academia OW
PDF
Criptología de empleo en el Esquema Nacional de Seguridad
PDF
Alfabetización Informática - 3. Navegador Web
PDF
Alfabetización Informática - 2. Test de Conceptos Básicos
PDF
Alfabetización Informática - 1. Conceptos Básicos
PDF
Gestión y Operación de la Ciberseguridad
PPTX
Tecnologías de virtualización y despliegue de servicios
PDF
3. wordpress.org
PDF
2. wordpress.com
PDF
1. Introducción a Wordpress
PDF
Redes de Computadores: Un enfoque descendente 7.° Edición - Capítulo 9
PDF
Análisis e Implementación de una Red "SDN" usando controladores "Open Source"
PDF
Software Defined Radio - Capítulo 5: Modulación Digital I
PDF
Software Defined Radio - Capítulo 4: Modulación FM
PDF
Software Defined Radio - Capítulo 3: Modulación AM
PDF
Software Defined Radio - Capítulo 2: GNU Radio Companion
PDF
Software Defined Radio - Capítulo 1: Introducción
PDF
MAE-RAV-ROS Introducción a Ruteo Avanzado con MikroTik RouterOS v6.42.5.01
PDF
Los cuatro desafíos de ciberseguridad más críticos de nuestra generación
PDF
ITIL Foundation ITIL 4 Edition
Examen final de CCNA Routing y Switching Academia OW
Criptología de empleo en el Esquema Nacional de Seguridad
Alfabetización Informática - 3. Navegador Web
Alfabetización Informática - 2. Test de Conceptos Básicos
Alfabetización Informática - 1. Conceptos Básicos
Gestión y Operación de la Ciberseguridad
Tecnologías de virtualización y despliegue de servicios
3. wordpress.org
2. wordpress.com
1. Introducción a Wordpress
Redes de Computadores: Un enfoque descendente 7.° Edición - Capítulo 9
Análisis e Implementación de una Red "SDN" usando controladores "Open Source"
Software Defined Radio - Capítulo 5: Modulación Digital I
Software Defined Radio - Capítulo 4: Modulación FM
Software Defined Radio - Capítulo 3: Modulación AM
Software Defined Radio - Capítulo 2: GNU Radio Companion
Software Defined Radio - Capítulo 1: Introducción
MAE-RAV-ROS Introducción a Ruteo Avanzado con MikroTik RouterOS v6.42.5.01
Los cuatro desafíos de ciberseguridad más críticos de nuestra generación
ITIL Foundation ITIL 4 Edition

Recently uploaded (20)

PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPT
Mechanical Engineering MATERIALS Selection
PPTX
Geodesy 1.pptx...............................................
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPT
Project quality management in manufacturing
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPT
introduction to datamining and warehousing
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Well-logging-methods_new................
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
DOCX
573137875-Attendance-Management-System-original
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Mechanical Engineering MATERIALS Selection
Geodesy 1.pptx...............................................
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
CYBER-CRIMES AND SECURITY A guide to understanding
Model Code of Practice - Construction Work - 21102022 .pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Project quality management in manufacturing
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
introduction to datamining and warehousing
Lecture Notes Electrical Wiring System Components
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Well-logging-methods_new................
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Foundation to blockchain - A guide to Blockchain Tech
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
573137875-Attendance-Management-System-original
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf

Introduction to Computers, the Internet and the Web

  • 1. © 2003 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet, and the Web Outline 1.1 Introduction 1.2 What Is a Computer? 1.3 Computer Organization 1.4 Evolution of Operating Systems 1.5 Personal, Distributed and Client/Server Computing 1.6 Machine Languages, Assembly Languages and High-Level Languages 1.7 History of C++ 1.8 History of Java 1.9 Java Class Libraries 1.10 FORTRAN, COBOL, Pascal and Ada 1.11 BASIC, Visual Basic, Visual C++, C# and .NET 1.12 The Internet and the World Wide Web 1.13 Basics of a Typical Java Environment
  • 2. © 2003 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet, and the Web 1.14 General Notes about Java and This Book 1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language 1.16 Discovering Design Patterns: Introduction
  • 3. © 2003 Prentice Hall, Inc. All rights reserved. 1.1 Introduction • Java How to Program, Fifth Edition – Java 2 Standard Edition – Object-oriented programming
  • 4. © 2003 Prentice Hall, Inc. All rights reserved. 1.2 What Is a Computer? • Computer – Performs computations and makes logical decisions – Millions / billions times faster than human beings • Computer programs – Sets of instructions for which computer processes data • Hardware – Physical devices of computer system • Software – Programs that run on computers
  • 5. © 2003 Prentice Hall, Inc. All rights reserved. 1.3 Computer Organization • Six logical units of computer system – Input unit • Mouse, keyboard – Output unit • Printer, monitor, audio speakers – Memory unit • Retains input and processed information – Arithmetic and logic unit (ALU) • Performs calculations – Central processing unit (CPU) • Supervises operation of other devices – Secondary storage unit • Hard drives, floppy drives
  • 6. © 2003 Prentice Hall, Inc. All rights reserved. 1.4 Evolution of Operating Systems • Batch processing – One job (task) at a time – Operating systems developed • Programs to make computers more convenient to use • Switch jobs easier • Multiprogramming – “Simultaneous” jobs – Timesharing operating systems
  • 7. © 2003 Prentice Hall, Inc. All rights reserved. 1.5 Personal, Distributed and Client/Server Computing • Personal computing – Computers for personal use • Distributed computing – Computing performed among several computers • Client/server computing – Servers offer common store of programs and data – Clients access programs and data from server
  • 8. © 2003 Prentice Hall, Inc. All rights reserved. 1.6 Machine Languages, Assembly Languages and High-Level Languages • Machine language – “Natural language” of computer component – Machine dependent • Assembly language – English-like abbreviations represent computer operations – Translator programs convert to machine language • High-level language – Allows for writing more “English-like” instructions • Contains commonly used mathematical operations – Compiler convert to machine language • Interpreter – Execute high-level language programs without compilation
  • 9. © 2003 Prentice Hall, Inc. All rights reserved. 1.7 History of C++ • C++ – Evolved from C • Evolved from BCPL and B – Provides object-oriented programming capabilities • Objects – Reusable software components that model real-world items
  • 10. © 2003 Prentice Hall, Inc. All rights reserved. 1.8 History of Java • Java – Originally for intelligent consumer-electronic devices – Then used for creating Web pages with dynamic content – Now also used for: • Develop large-scale enterprise applications • Enhance WWW server functionality • Provide applications for consumer devices (cell phones, etc.)
  • 11. © 2003 Prentice Hall, Inc. All rights reserved. 1.9 Java Class Libraries • Classes – Include methods that perform tasks • Return information after task completion – Used to build Java programs • Java contains class libraries – Known as Java APIs (Application Programming Interfaces)
  • 12. © 2003 Prentice Hall, Inc. All rights reserved. 1.10 FORTRAN, COBOL, Pascal and Ada • Fortran – FORmula TRANslator • COBOL – COmmon Business Oriented Language • Pascal – Structured programming • Ada – Multitasking
  • 13. © 2003 Prentice Hall, Inc. All rights reserved. 1.11 BASIC, Visual Basic, Visual C++, C# and .NET • BASIC – Beginner’s All-Purpose Symbolic Instruction Code • Visual Basic .NET – Framework Class Library (FLC) • Visual C++ – Microsoft Foundation Classes (MFC) • C# – C-Sharp • .NET – .NET platform
  • 14. © 2003 Prentice Hall, Inc. All rights reserved. 1.12 The Internet and the World Wide Web • Internet – Developed more than four decades ago with DOD funding – Originally for connecting few main computer systems – Now accessible by hundreds of millions of computers • World Wide Web (WWW) – Allows for locating/viewing multimedia-based documents
  • 15. © 2003 Prentice Hall, Inc. All rights reserved. 1.13 Basics of a Typical Java Environment • Java programs normally undergo five phases – Edit • Programmer writes program (and stores program on disk) – Compile • Compiler creates bytecodes from program – Load • Class loader stores bytecodes in memory – Verify • Verifier ensures bytecodes do not violate security requirements – Execute • Interpreter translates bytecodes into machine language
  • 16. © 2003 Prentice Hall, Inc. All rights reserved. Fig. 1.1 Typical Java environment. Primary Memory . . . . . . Disk Disk Disk Editor Compiler Class Loader Program is created in an editor and stored on disk in a file ending with .java. Compiler creates bytecodes and stores them on disk in a file ending with .class. Class loader reads .class files containing bytecodes from disk and puts those bytecodes in memory. Phase 1 Phase 2 Phase 3 Primary Memory . . . . . . Bytecode Verifier Bytecode verifier confirms that all bytecodes are valid and do not violate Java’s security restrictions. Phase 4 Primary Memory . . . . . . Interpreter Interpreter reads bytecodes and translates them into a language that the computer can understand, possibly storing data values as the program executes. Phase 5
  • 17. © 2003 Prentice Hall, Inc. All rights reserved. 1.14 General Notes about Java and This Book • Geared for novice programmers • We stress clarity
  • 18. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language • Object orientation • Unified Modeling Language (UML) – Graphical language that uses common notation – Allows developers to represent object-oriented designs
  • 19. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects (cont.) • Objects – Reusable software components that model real-world items – Look all around you • People, animals, plants, cars, etc. – Attributes • Size, shape, color, weight, etc. – Behaviors • Babies cry, crawl, sleep, etc.
  • 20. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects (cont.) • Object-oriented design (OOD) – Models real-world objects – Models communication among objects – Encapsulates attributes and operations (behaviors) • Information hiding • Communication through well-defined interfaces • Object-oriented language – Programming in object oriented languages is called object- oriented programming (OOP) – Java
  • 21. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects (cont.) • Object-Oriented Analysis and Design (OOA/D) – Essential for large programs – Analyze program requirements, then develop solution – UML • Unified Modeling Language
  • 22. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects (cont.) • History of the UML – Need developed for process with which to approach OOA/D – Brainchild of Booch, Rumbaugh and Jacobson – Object Management Group (OMG) supervised – Version 1.4 is current version • Version 2.0 scheduled tentatively for release in 2003
  • 23. © 2003 Prentice Hall, Inc. All rights reserved. 1.15 Thinking About Objects (cont.) • UML – Graphical representation scheme – Enables developers to model object-oriented systems – Flexible and extendible
  • 24. © 2003 Prentice Hall, Inc. All rights reserved. 1.16 Discovering Design Patterns: Introduction • Effective design crucial for large programs • Design patterns – Proven architectures for developing object-oriented software • Architectures created from accumulated industry experience – Reduce design-process complexity – Promotes design reuse in future systems – Helps identify common design mistakes and pitfalls – Helps design independently of implementation language – Establishes common design “vocabulary” – Shortens design phase in software-development process
  • 25. © 2003 Prentice Hall, Inc. All rights reserved. 1.16 Discovering Design Patterns (cont.) • Design patterns – Similar to architectural elements • arches and columns – Used by developers to construct sets of classes and objects • Developers – Familiarity with patterns to understand how to use patterns
  • 26. © 2003 Prentice Hall, Inc. All rights reserved. 1.16 Discovering Design Patterns (cont.) • History of Design Patterns – Gamma, Helm, Johnson and Vlissides • “Gang of Four” • Design Patterns, Elements of Reusable Object-Oriented Software (Addison Wesley: 1995) • Established 23 design patterns – Creational • Instantiate objects – Structural • Organize classes and objects – Behavioral • Assign responsibilities to objects