syllabus for object-oriented technology 32-it-484...

36
Object-Oriented Technology Page 1 32-IT-484 Syllabus for Object-Oriented Technology 32-IT-484 Academic Year 2003-2004 Version 1.1 A. Overview This course is a comprehensive introduction into object-oriented technology and its application. Object-oriented technology requires a rethinking and reeducation of software development processes. B. Approach This course provides an overview of object-oriented technology that emphasizes both theoretical and practical topics using a learning-by-doing methodology. C. Goal The primary goal of this course is to prepare students to be knowledgeable in object-oriented technology. Object-oriented technology encourages reusability resulting in reduced cost and less time required for software development. D. Objectives To provide an understanding of object-oriented concepts. To identify the benefits and opportunities in implementing object oriented technology. To identify the costs and limitations in implementing object oriented technology. To provide an understanding of the development process. To provide an understanding of web architectures To provide an understanding of web development tools. To provide an understanding of object-oriented analysis, modeling and the unified modeling language. To provide an understanding of object-oriented design. To provide an understanding of object-oriented languages. To provide and understanding of conventional languages that have been extended to incorporate object-oriented features. To provide an understanding of object-oriented databases. To provide an understanding of relational databases that has been extended to incorporate object-oriented features.

Upload: dinhxuyen

Post on 28-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 1 32-IT-484

Syllabus for Object-Oriented Technology 32-IT-484 Academic Year 2003-2004 Version 1.1

A. Overview This course is a comprehensive introduction into object-oriented technology and

its application. Object-oriented technology requires a rethinking and reeducation of software development processes.

B. Approach This course provides an overview of object-oriented technology that emphasizes

both theoretical and practical topics using a learning-by-doing methodology. C. Goal The primary goal of this course is to prepare students to be knowledgeable in

object-oriented technology. Object-oriented technology encourages reusability resulting in reduced cost and less time required for software development.

D. Objectives

To provide an understanding of object-oriented concepts.

To identify the benefits and opportunities in implementing object oriented technology.

To identify the costs and limitations in implementing object oriented

technology.

To provide an understanding of the development process.

To provide an understanding of web architectures

To provide an understanding of web development tools.

To provide an understanding of object-oriented analysis, modeling and the unified modeling language.

To provide an understanding of object-oriented design.

To provide an understanding of object-oriented languages. To provide and

understanding of conventional languages that have been extended to incorporate object-oriented features.

To provide an understanding of object-oriented databases. To provide an

understanding of relational databases that has been extended to incorporate object-oriented features.

Page 2: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 2 32-IT-484

E. Syllabus Description

Object-oriented technology is examined with emphasis on object-oriented concepts, analysis, design, languages and implementation, databases, and networks. Students are expected to develop case studies using a commercial object-oriented tool.

F. Prerequisite A working knowledge of a modern structured language is required. G. Lecturer Ralph Brueggemann HOME: 871-8477 BUSINESS: 558-0735 E-Mail [email protected] H. Time and place Time: Saturday 1:00-3:40 PM Place: 4211 French West I. Examinations Examinations will be comprehensive, covering text and lecture. There will be a

mid-term and final examination. Mid Term Feb 7 Final March 20 J. Text

Beginning Java Objects, Jacquie Barker, ISBN: 1-59059-146-1, Apress, June 2003. http://objectstart.com/ http://www.apress.com/book/bookDisplay.html?bID=199

Building Web Applications with UML, Jim Conallen, Addison Wesley, 2003, ISBN 0-201-73038-3 http://www.wae-uml.org/

Page 3: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 3 32-IT-484

K. Make-up examinations

Prior Approval

Students who are unable to make a scheduled examination should get prior approval from the instructor.

Unforeseen Events

If a student cannot attend an examination due to an unforeseen event, such as an illness, the instructor should be contacted as early as possible so that alternate arrangements can be made.

Make-ups

Make-up exam sessions are for emergencies only. Please contact the instructor.

L. Model agenda A typical class will be comprised of the following events:

Presentation of agenda and goals Review of prior week key ideas Class material Discussion and student interaction to pursue specific areas of interest and

encourage further thought, ideas and involvement. Questions Post class review for student support.

M. Academic Honesty and Classroom Rules

Academic dishonesty will be dealt with in accordance with the Student Code of Conduct. The use of PCs during the class is only permitted during workshops and computer-based exams. The use of PCs during a lecture will result 1-point reduction for each occurrence.

During computer-based exams, the use of any written materials or electronic resources will results in a grade of F.

Page 4: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 4 32-IT-484

N. Evaluation

Required

The composition of the course grade is as follows:

Mid-Term 25% Final 25% Projects 50% (Five Projects)

Optional Extra Credit Projects

The extra credit projects are optional and are intended to improve communications and critical thinking skills. This involves collecting and analyzing information and critically evaluating your conclusions.

1. If you are a senior, you may be asked to become a student assistant to help the other

students with their projects.

2. Prepare a student journal. You are required to take class notes, handouts, and summaries of in class discussion and related projects and organize them into a notebook by sections. You have complete control over how you organize the material. The student journal should also include information about some aspect of an event or set of events in the students’ lives and how that event relates to the course. The student should describe how the course was applied to this event. The student journal will be evaluated based on completeness (50%) and organization and format (50%)

3. Class participation and discussions.

4. Reading assignment (read an OOT book; write a report-5 page

maximum)

5. Software Tool Evaluation Project (evaluate am OOT software product; write a report-5 pages maximum)

6. Reading assignment (read a set of OOT articles; write a report-5 page maximum)

Page 5: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 5 32-IT-484

O. Resources

Blackboard will be used for all course materials. Please make sure that you review it periodically. Changes to the syllabus will be posted to Blackboard. http://Blackboard.uc.edu It is recommended that you bring a zip disk or diskette to class to save sample projects that are completed during class.

P. Language and Tool Resources

The Integrated Development Environment that will be used is Sun One Studio 5 (Forte for Java) Standard Edition or the equivalent). Sun ONE Studio 5 is an integrated development environment (IDE) for Java technology developers; ideal for building and deploying Web services across multiple hardware and software platforms. UC has a license to this software that you can use at no charge.

http://wwws.sun.com/software/sundev/jde/buy/index.html Q. Attendance Policy

You are expected to attend each class. If you are unable to attend, please notify the instructor.

Page 6: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 6 32-IT-484

COURSE ASSIGNMENT SCHEDULE SUBJECT DATE ASSIGNMENT 1. Object-Oriented Technology Jan 10 Overview Building Web Applications Conallen Introduction Chapter 1 Web Application Basics Chapter 2 Beginning Java Objects Barker

A Little Taste of Java Chapter 1 Abstraction and Modeling Chapter 2 http://www.java.com/en/index.jsp Topics Software Legos Software Engineering Concepts Object-Oriented Technology Benefits and Opportunities, Costs and Limitations Encapsulation, Inheritance, Polymorphism Classes and Abstract Data Types Video: Software Engineering Practices or Booch Video

Page 7: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 7 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 2. Processes Jan 17

Requirements, Architecture and Construction Unified Modeling Language

Building Web Applications Conallen Dynamic Clients Chapter 3 Beyond HTTP and HTML Chapter 4 Beginning Java Objects Barker Objects and Classes Chapter 3 Object Interactions Chapter 4 Topics Software Processes Classes Objects Messages

Video: Software Reuse: Past, Present and Future

Page 8: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 8 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 3. Modeling Processes Jan 24 Implementation Concepts Building Web Applications Conallen Security Chapter 5 The Process Chapter 6 Beginning Java Objects Barker Relationships Between Objects Chapter 5 Collections of Objects Chapter 6 Topics Unified Modeling Language Unified Process Inception

Elaboration Construction Transition

Workflows Customer Requirements Analysis

Software Architecture/Design Implementation Testing

Objects and Classes Object Languages

C++, Smalltalk, Eiffel, Java, ADA Video: Object-Oriented Paradigm UML Videos

Page 9: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 9 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 4. Encapsulation: Classes and Objects Jan 31 Building Web Applications Conallen

Defining the Architecture Chapter 7

Beginning Java Objects Barker

Some Final Concepts Chapter 7

Topics Classes Objects Messages Methods Overriding Overloading Instantiation Video: Object-Oriented Programming

Page 10: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 10 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 5. Mid-Term Examination Feb 7 Includes Assigned Text and Lectures from 1-4 6. Modeling Feb 14

Inheritance and Polymorphism Java Project 1 Due Building Web Applications Conallen

Requirements and Use Cases Chapter 8 Beginning Java Objects Barker

The Object Modeling Process in a Nutshell Chapter 8 Formalizing Requirements through Use Cases Chapter 9 Videos Java Videos

Page 11: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 11 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 7. Applets Feb 21

Inheritance and Polymorphism (Continued) Java Project 2 Due Building Web Applications Conallen The User Experience Chapter 9 Beginning Java Objects Barker

Modeling the Static/Data Aspects of the System Chapter 10 Modeling the Dynamic/Behavioral Aspects of the System Chapter 11 Topics Browser Architecture Simple HTML Applet Life Cycle

Page 12: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 12 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT

8. Database Technology Feb 28 Relational and Object-Oriented Java Project 3 Due Building Web Applications Conallen Analysis Chapter 10 Beginning Java Objects Barker Wrapping up Our Modeling Efforts Chapter 12 A Deeper Look at Java Chapter 13 Database Topics Concepts of Relational Databases

Concepts of Object-Oriented Databases Survey of Products and Manufacturers ONTOS, Ontos, Inc. GemStone, Servio Corp. Versant, Versant Object Technology Object Store, Object Design Inc. Objectivity/DB, Objectivity, Inc. Video: Object-Oriented Databases

Page 13: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 13 32-IT-484

COURSE ASSIGNMENT SCHEDULE

SUBJECT DATE ASSIGNMENT 9. Web Technologies Mar 6

Server Side Scripting Java Server Pages, Servlets

Java Project 4 Due Building Web Applications Conallen Design Chapter 11 Advanced Design (Optional) Chapter 12 Beginning Java Objects Barker Transforming Your Model into Java Code Chapter 14 Topics World Wide Web Architecture

HTML/XML Hyperlinks DHTML Browsers Document Object Model Client Side Scripting Server Side Scripting

Page 14: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 14 32-IT-484

10. Modern Software Architectures Mar 13

Components and Reuse Graphical User Interfaces

AWT Swing

Management and Planning Java Project 5 Due Building Web Applications Conallen Implementation (Optional) Chapter 13 Appendices (Optional) Topics

Web Services SOAP/XML

Components Java Beans Applets

Java 2 Platform, Enterprise Edition (J2EE) includes eight technologies Enterprise Java Beans (EJB) Java Naming and Directory Interface (JNDI) Java Database Connectivity (JDBC) Java Message Service (JMS) Java Transaction API (JTA) Java Server Pages (JSP) Java Servlet API JavaMail

Microsoft’s .NET Visual Studio .Net

Web Services Java Windows Programming

Abstract Windows Toolkit (AWT) Swing Organizational Issues How Object Oriented Technology Affects the Organization Costs and Benefits Getting Started Future Directions of Object-Technology 11. Final Examination Mar 20 Includes Assigned Text and Lectures from 6-10 Student Journals due Extra credit projects due

Page 15: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 15 32-IT-484

R. Description

Object-orientation is a technology based on a set of software engineering principles for developing applications and database solutions. Object-orientation is a change from conventional thinking about software development technology. Conventional thinking about software development is similar to the craft mentality prevalent prior to the industrial revolution, where each part is made from scratch, developed from raw materials and hand assembled. Today, unprecedented demand for software and the increased complexity of applications is driving software engineering toward a software "industrial revolution" dependent on reusable, interchangeable parts or components. The importance of object-oriented is based on the realization that it is a natural set of concepts that is analogous to the way we think and learn. We learn a natural language by identifying an object (noun) and linking sounds to it. With each object, we associate it with verbs as in "kick a ball." We also learn that objects have attributes such as color, shape and size. Later we learn that there are different types of objects and we group those that are similar into classes. We learn that there are different kinds of balls; tennis balls, basketballs, footballs, and baseballs each with different attributes. Each different object has different verbs associated with it such as "kick a football." The major topics covered in this course will be:

Object-oriented analysis Object-oriented modeling Object-oriented design Object-oriented languages (with practical experience) Object-oriented databases

The fundamental objective of object technology is simple - to provide a development approach in which the components of a system are self-contained in terms of both data and process. This results in a system that is very flexible. Object-oriented technology is becoming increasingly important. The worldwide market for this technology is expected to increasingly grow. The software industry continues to change and the curriculum will likely need to reflect those changes.

Page 16: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 16 32-IT-484

S. Reusability and Complexity

Mature engineering disciplines rely heavily on well-understood technologies that have been standardized. By utilizing off-the-shelf components, engineers can create customized systems economically by building only the parts that are application specific. Unnecessary reinvention of technology is thereby avoided. Contemporary software systems have been simple enough for massive technology reinvention to be economically feasible. However, as software system complexity increases, technology reinvention becomes unaffordable.

T. Software Engineering

A classical, but largely unrealized, goal of software engineering is software component (building block) technologies. Such technologies are envisioned to exploit large-scale reuse, leverage off of open-architecture designs, and elevate the granularity of programming to the subsystem level.

Page 17: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 17 32-IT-484

U. Description of Projects Overview

There are five projects required. You will be graded based on your ability to meet the requirements.

General Objectives

The projects are designed to demonstrate proficiency in the Unified Modeling Language and Java. It is expected that each project will utilize the Unified Modeling Language (such as use cases (diagram and text), class diagrams, etc.). Each project has specific technical requirements that are specified. Project Evaluation Each project is scored based on the following points: Project Maximum Points 1. Project 1 15 2. Project 2 15 3. Project 3 10 4. Project 4 5 5. Project 5 5

Total 50

Modeling Process

1. Create use cases, written stories about what the customer wants. Create use case scenarios, specific instances of use cases

2. Identify the classes from the use case text using nouns 3. Determine associations (structural relationships) between classes from the

verbs 4. Determine attributes of the class (need to remember information) 5. Determine the behaviors/responsibilities of each class 6. Create interaction diagrams 7. Harvest the methods from the interaction diagrams

Page 18: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 18 32-IT-484

V. Description of Projects Project One and Two Specific Objectives

1. Write a use case that describes what functions you would like to use. 2. Design the classes including what attributes that you need to use to

remember information. Example data members could be identification number, security code (PIN), and balances.

3. Determine associations between classes from the verbs (Project 2) 4. Define what responsibilities are required of the class that provides common

services for all types of bank accounts. Examples are validating the PIN, deposit and withdrawal methods.

Project One

Project one is a banking application that is based on an automated teller application (ATM). You are the customer who is interacting with the ATM. Define what is needed to implement an account class. This project requires that you demonstrate at least the use of a class (the account class), object instantiation, methods (member functions), member variables (data members) and constructors.

Project Two

This project requires that you develop a Savings and Checking subclass. Project two is based on project one. You will define what is needed to implement an Account class, Savings class and Checking class. You would add a transfer method to the account class. These two derived classes should inherit properties from the base class Account. Project two requires that you demonstrate at least the use of derived classes and inheritance.

Checking Subclass

The checking subclass manages a customer’s checking account providing check processing and other specialized services. The general account management functions are inherited from Account. Examples of data members could be withdraw amount, fees. Examples of methods (member functions) could be withdraw, deposit and overdraft etc.

Savings Subclass

The saving subclass manages a customer’s savings account, providing specialized services. The general account management functions are inherited from Account. Examples of methods (member functions) could be withdraw, deposit and credit interest. An example of a data member is interest.

Page 19: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 19 32-IT-484

W. Description of Projects Project Three

Project three demonstrates the implementation of a Java applet. Project three requires that you write a Web page with a Java applet with graphics. This could include the constructor Graphics and the methods drawRect(), fillOval(), fillRect(), drawString(), images, colors, etc. http://java.sun.com/applets/

http://java.sun.com/docs/books/tutorial/listofapplets.html#onefour Project Four

Project four demonstrates the accessing of a database using Java Database Connectivity.

Project Five

Project five demonstrates the implementation of a Java Server Page (JSP) application

Extra Credit

Write a Web page with a Java applet that utilizes one or more of the following: • Threads • Animation-using threads. • Events (interfaces, implements) • Windows (from the abstract window toolkit (AWT) or Swing), Buttons,

TextFields, Labels, Checkboxes, etc.), • Hyperlinks • Java applet and JavaScript (DHTML). • Audio • Video

Submitting Projects

1. Log into Blackboard. 2. Using External Links install and run the project example. 3. Review the project requirements in the syllabus. 4. Prepare a use case and class diagram that addresses the requirments. 5. Adapt the java example to meet the requirements. 6. Using Blackboard, User Tools, Digital Drop box, Send (NOT ADD) the use

case, class diagram, and the java files. Not the stdin.java. Do not send *.class files.

Page 20: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 20 32-IT-484

X. Definitions Architecture

Client/server computing optimizes processing by dividing front-end application logic and user interface processing from back end data management. Basic Terminology

Modularity refers to separately named units with singular functions, private data structures and well-defined interfaces

Information hiding exists when each module hides the internal details

Abstraction is the separation of concepts from implementation

A data type specifies a set of data objects and a set of permitted operations

Business logic is a rule, or process, that affects the business state of the system. The simplest examples of business logic on the client are field and form validations. For example, a date entry field should never accept the data February 30, even though it is entirely possible to enter such a date in an ordinary text box.

Components

A JavaBean is a software component, built in Java, that implements a control or provides a series of functions for use within another application.

Java Database Connectivity (JDBC) is a software interface layer that allows Java applications and components to access data stores via ODBC.

Page 21: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 21 32-IT-484

Y. Definitions

Database Terminology

A key is a field (or set of fields) that uniquely identifies a particular record in a table. The way in which we set up the keys in our tables determines the uniqueness of records, and also allows us to link these records to record in other tables.

A foreign key is a way of referencing a unique record in another table.

A database is a collection of information organized in a way that facilitates access, analysis, and reporting for purposes of improved decision making. A database is a set of related data tables and other database objects, such as a data dictionary all of which is organized as a group.

A database is a single source of centralized information for all applications.

Structured Query Language (SQL)is a database language used to manipulate relational databases.

A relational database organizes data values into logical tables made up of columns and

rows.

Object Oriented databases more closely model the real world. Object-oriented technologies have the potential of managing more data in an enterprise than any other previous technology. There are three means of delivering object-oriented technology: building an object-oriented database, extending a relational database, and developing a hybrid system that is designed for both relational and object-oriented.

Page 22: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 22 32-IT-484

Y. Definitions Data Modeling A conceptual data model is an organizational view of data.

A logical data model is a users’ view or representation of the data. A logical data model consists of the tables that store the information, as well as the relationships that these tables have with each other.

A physical data model is the way the data is stored.

Normalization is a technique used to simplify the logical data structure. Normalization is the creation of a logical database design using the normal forms.

Normal forms are rules used to design relational databases. Documentation and Tools

The Java Development Kit (JDK) is a set of documentation, samples and tools that provide programmers with the information required when creating Java applications and components. Languages

Java Server Pages (JSP) is a server-side programming language combining HTML and Java code to generate customer servlets for dynamic web pages. An idiom is an expression peculiar to a certain programming language or application culture.

Page 23: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 23 32-IT-484

Y. Definitions

Meta Languages

Hypertext markup language (HTML), is used to express the content and visual formatting of a Web page, is a tag language based on the Standard Generalized Markup Language (SGML). The browser manages the rendering of the HTML content.

Standard Generalized Markup Language (SGML) is a much broader language than HTML and is used to define markup languages for particular purposes. HTML is just one specific application of SGML Tags are used in HTML to define how text is to be formatted on the display: font, size, color, and so on. HTML specifies how documents should be displayed on a computer display. HTML does not address printing directly, so Web applications that need this capability must included additional components in their architecture.

Extensible Markup Language (XML) does for HTML what distributed objects do for HTTP. XML is metalanguage that is used as a cross-platform way of managing and communicating data between systems.

Dynamic HTML (DHTML) describes the combination of HTML, style sheets, and scripts that allows documents to be manipulated in a Web browser. DHTML is not a W3C specification or recommendation. Modeling A model is an abstract representation of the system to be build, the system being built, and the system that was built. The model is a collection of artifacts, each one expressing a view of the system. Modeling is the development of a model for an industrial-strength software system prior to its construction or renovation is as essential as having a blueprint for large building. Good models are essential for communication among project teams and to assure architectural soundness. As the complexity of systems increase, so does the importance of good modeling techniques. There are many additional factors of a project's success, but having a rigorous modeling language standard is one essential factor.

Networking

A network is a connection of computing systems using local and/or wide area networks. A local network is a communications network that provides interconnecting of a variety of data communicating devices within a small area A local area network is a general purpose local network that can serve a variety of devices. Typically used for terminals, microcomputers, and minicomputers.

Page 24: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 24 32-IT-484

Y. Definitions Object-Oriented-Basic Terminology Encapsulation is the combination of a data structure and associated procedures that are accessed through or well-defined interface Polymorphism is the of a name or symbol, an operator, to stand for more than one action; a family of functions. Compare A (int) + B (int) with A (real) + B (int)

Inheritance is the ability to use existing objects and create new ones that include both old and new aspects

An object is anything that models "things" in the real world

A message is a request to the object to perform one of its operations. In C++ this is a function call.

A class is an abstract data type (ADT see below) that belongs to an inheritance lattice; a class is a set of objects with the same characteristics. A class is defined as a set of objects that share a common structure and behavior. The class must map to the domain of the end users. Each class should embody a handful of distinct responsibilities. Classes can be grouped into clusters.

A member variable (also known as a data members (in C++) or instance variables) is a variable that store data items within a given class.

A method defines the operations you can perform for the class. People usually use the term operation and method interchangeably, but there are times when it is useful to be precise about the difference. Methods also known as member functions (in C++).

An abstract data type (ADT) is a type plus operations on the values of the type Persistency is the retaining of an object after a program ends; to exist outside the system

Dynamic binding is associating a variable with an object class during execution

A framework is a collection of classes that provides a set of services for a particular domain.

Page 25: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 25 32-IT-484

Y. Definitions Software engineering

An artifact is any piece of information that is produced by the workers of the process. Artifacts can be models, model elements, or document.

Software engineering is the application of science and mathematics by which the capabilities of computer equipment are made useful to man via computer programs, procedures, and associated documentation. (Boehm) Software engineering is the means by which we attempt to produce software in a way that is both cost effective and reliable enough to deserve our trust. Clearly it is a discipline which is important to establish well and perform well. (Boehm) Software engineering is the practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them. (Boehm)

Unified Modeling Language

Unified Modeling Language (UML) is a method for specifying, visualizing, and documenting an object-oriented system under development. The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems.

Dynamic Behavior Diagrams

Use Case diagram Statechart diagram Activity diagram Interaction diagrams

Sequence diagram Collaboration diagram

A use case is a named region of a system's behavior; a given use case denotes some function or business process. A use case is a typical interaction that a user has with the system in order to achieve a goal. A use case is a set of scenarios tied together by a common user goal. Use cases are “chunks” of functionality that the system offers to add a result of value to its actors. Use cases represent external views of the system. Use cases are an essential tool in requirements capture and in planning and controlling an iterative project. A use case includes the following: use case text and a use case ciagram (Optional).

A use case scenario is an instance of a use case that signifies a single path through that use case. A use case scenario is a sequence of steps describing an interaction between a user and a system.

Page 26: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 26 32-IT-484

Y. Definitions

Unified Modeling Language

A state diagram is used to describe the behavior of a single object across many use cases.

An activity diagram is used to describe the behavior across many use cases or many threads.

Interaction Diagrams

Interaction diagrams are models that describe how groups of objects collaborate in some behavior. Typically, an interaction diagram captures the behavior of a single use case. You should use interaction diagrams when you want to look at the behavior of several objects within a single use case. Interaction diagrams are good at showing collaborations among the objects; they are not so good at precise definition of the behavior.

Sequence Diagrams

Within a sequence diagram, an object is shows as a box at the top of a dashed vertical line. The vertical line is called the object’s lifeline. The lifeline represents the object’s life during the interaction. An arrow between the lifelines of two objects represents each message. The order in which the message occur is shown top to bottom on the page.

Collaboration Diagrams

Within the collaboration diagram, the example objects are shown as icons. Arrows indicate the messages sent within the given use case. Numbering the message indicates the sequence.

Page 27: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 27 32-IT-484

Y. Definitions

Unified Modeling Language Static Structure Diagrams Class Diagrams Object Diagrams Package Diagrams

Class diagrams show the attributes and operations of a class and the constraints that apply to the way objects are connected. Class diagrams are the backbone of object-oriented development methods. A class diagram describes the types of objects in the system and the various kinds of static relationships that exist among them. There are two principal types of static relationships: Associations (for example, a customers may rent a number of videos) Subtypes (a nurse is a kind of person)

An object diagram is a snapshot of the objects in a system at a point in time. Since it shows instances rather than classes, an object diagram is often called an instance diagram.

Package diagram are class diagrams. Package diagrams are not an official UML diagram name. The package is the UML mechanism for grouping. Classes can be grouped into higher level units. Package diagrams show packages of classes and the dependencies among them. Packages are a vital tool for large projects. Use packages whenever a class diagram that encompasses the whole system is no longer legible on a single letter-size sheet of papers.

Implementation Diagrams

Component Diagrams

Deployment Diagrams

A component diagram shows the various components in a system and their dependencies. A component represents a physical module of code. A component is often the same as a package, but it may be difference, since components represent the physical package of code. A single class may be present in multiple components, but that class can be defined in only one package.

A deployment diagrams shows the physical relationships among software and hardware components in the delivered system. A deployment diagram is a good place to show how components and objects are routed and move around a distributed system.

Page 28: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 28 32-IT-484

Y. Definitions User Interfaces

The user interface is the boundary between the computer and a person working with or through the computer to carry out some task. A user interface is a connection between the display, keyboard and mouse combination and the user. The graphical user interface allows for a broadening of what is possible. Standard graphical user interfaces have provided an environment in which new ways of interaction with computers are now possible. Today, the GUI is the accepted standard in a large number of environments: Netscape and Internet Explorer browsers, Microsoft Windows Products (Windows, Windows 95, Windows 98, Windows NT), OS/2, the Mac with its own operating system, and on UNIX workstations with several operating systems. Software developers can develop software that allows users to interact with applications in ways much different than in the past.

Web Services

Simple Object Access Protocol (SOAP) is an XML/HTTP-based protocol for accessing services, objects and servers in a platform-independent manner. SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data types, and a convention for representing remote procedure calls and responses. SOAP can potentially be used in combination with a variety of other protocols; however, the only bindings defined in this document describe how to use SOAP in combination with HTTP and HTTP Extension Framework. http://www.w3.org/TR/SOAP/

Page 29: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 29 32-IT-484

Y. Definitions

Web Terminology Web System-a Web system is a hypermedia system because the resources in the system are linked to one another. The term Web comes from looking at the system as a set of nodes with interconnecting links. The distinction between Web sites (w/o business rules) and Web applications lies in the use of business logic.

Document Object Model-The DOM is a platform neutral interface to the browser and the HTML documents its rendering. The specification has been defined by the W3C, and most of the browser manufacturers have implemented it in their latest versions. The idea is to have a common API that Web page developers can use to manipulate the content in the HTML (and XML) document, as well as the resources of the browser itself. With the DOM, programs and scripts can dynamically access and update document content, structure, and style.

Cookies- Little pieces of information that a server can request a client to hold on to and later request back from the client.

Page 30: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 30 32-IT-484

References Course

Beginning Java Objects, Jacquie Barker, ISBN: 1-59059-146-1, Apress, June 2003. http://objectstart.com/ http://www.apress.com/book/bookDisplay.html?bID=199

Building Web Applications with UML, Jim Conallen, Addison Wesley, 2003, ISBN 0-201-73038-3 http://www.wae-uml.org/

Internet

Java Information http://www.java.sun.com/ Text Books http://www.uc.edu/bookstore/ Software http://mscontract.uc.edu/

Supplemental

UML Explained, Kendal Scott, Addison-Wesley, 2001, ISBN 0-201-72182-1

Software Architecture, Organizational Principles and Patterns, David M, Dikel, David Kana and James R. Wilson, Prentice Hall, 2001

Applying UML and Patterns, Craig Larman, Prentice Hall, 2002, ISBN 0-13-

092569-1

Introduction to Visual J++, Roy Goody, Prentice Hall, 2000, ISBN 0-13-917899-6

UML Distilled, Martin Fowler, Addison Wesley, 1999

Just Java, Peter van der Linden, SunMicrosystems Press, Prentice Hall,

Fourth Edition, 1999. (Reference)

The Java Tutorial : Addison Wesley Press

The Java Tutorial Continued (Slightly Advanced Concepts) : Addison Wesley Press

Thinking in Java : Brice Eckel

Page 31: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 31 32-IT-484

References

Addison-Wesley

Component Software, Clemens Szyperski, Addison Wesley, 1998

Object Solutions: Managing the Object-Oriented Project, Booch, Addison Wesley (0805305947), 1996.

The Unified Modeling Language User Guide, Grady Booch, James

Rumbaugh and Ivar Jacobson, Addison-Wesley, 1998

UML Distilled: Applying the Standard Object Modeling Language, Fowler, Addison-Wesley (0201325632), 1997.

Software Architecture in Practice, Len Bass, Paul Clements and Rick

Kazman, Addison-Wesley, 1998.

C++ Primer, Stanley B. Lippman and Josee Lajoie, Third Edition, Addison Wesley, 1998.

C++ Primer, Stanley B. Lippman, Second Edition, Addison Wesley, 1991.

Effective C++, Scott Meyers, Reading, Mass., Addison-Wesley, 1992.

The Annotated C++ Reference Manual, Margaret A. Ellis and

Bjarnetroustrup, Reading, Mass.,Addison-Wesley, 1992.

The C++ Programming Language, Second Edition, Bjarne Stroustrup, Addison-Wesley, 1991.

Object Data Management, R.G.R. Cattell, Addison-Wesley, 1991.

Object Technology: A Manager's Guide, David A. Taylor, Addison-Wesley

(0201309947), 1997.

Design Patterns: Elements of Reusable Oject-Oriented Software, Gamma, Helm, Johnson, and Vlissides, Adison Wesley (0201633612), 1995.

Object Solutions: Managing the Object-Oriented Project, Booch, Addison

Wesley (0805305947), 1996.

Analysis Patterns: Reusable Object Models, Fowler, Addison Wesley (0201895420), 1996.

Object-Oriented Software, Ann L. Winblad, Samuel D. Edwards, David R.

King, Addison-Wesley, 1990.

Page 32: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 32 32-IT-484

References

Benjamin/Cummings

Object Technology In Application Development, Daniel Tkach and Richard

Puttick, The Benjamin/Cummings Publishing Company, Inc, 1994.

Object-Oriented Design with Applications, Grady Booch, Benjamin/Cummings, 1991.

Borland

User's Guide, Turbo C++ V3.0, Scotts Valley, CA., Borland Intl., 1992.

Coriolis

Writing Java Applets, John Rodley, Coriolis Group Books, 1996.

CRC (www.crcpress.com)

User Interface Design, Larry Wood, CRC (0849331250), 1997

Dorset

What Every Programmer Should know About Object-Oriented Design, Meilir

Page-Jones, Dorset House, 1995.

Harcourt Brace Jovanovich

The Complete C++ Primer, Keith Weiskamp and Bryan Flamig, Academic Press Inc., Harcourt Brace Jovanovich, 1990.

IDG

C++ for Dummies, Stephen R. Davis, IDG Books, 1994.

Visual C++ 5 For Dummies, Hyman and Arnson, (0-7645-0059-7), IDG Books, 1997.

Java Programming for Dummies, Donald J. Koosis and David Koosis, IDG

Books, 1996.

Page 33: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 33 32-IT-484

References

IEEE Press Computer Society

Unified Objects, Sadr, IEEE Computer Society (0818677333), 1998*

Understanding Object-Oriented Software Engineering, IEEE Comptuer Society Press, (0780310950), Sigfried, 1996*

John Wiley

A Jump Start Course in C++ Programming, James W. Cooper and Richard B. Lam, John Wiley and Sons, Inc. 1994.

UML Toolkit, Eriksson and Penker, 1997, John Wiley and Sons (0471191612)

Object-Oriented Information Systems: Planning and Implementation, David A.

Taylor, John Wiley & Sons, Inc., 1992

McGraw-Hill

Object-Oriented Methods for Software Development, Sodhi and Sodhi, McGraw-Hill (0070595747), 1997.*

Concepts of Object-Oriented Programming, David Smith, McGraw-Hill, 1991.

C++ from the Ground Up, Herbert Schildt, McGraw-Hill, 1994.

Implementing Client/Server Computing, Bern and H. Boar, McGraw-Hill,

1993.

C++ and the OOP Paradigm, Bindu R. Rao, McGraw-Hill, 1993.

C+C++ Programming with Objects in C and C++, Allen I. Holub, McGraw-Hill, Inc., 1992.

Unix for Application Developers, William Parette, McGraw-Hill, 1991.

Microsoft

Inside Visual C++, Second Edition, David J. Kruglinski, Microsoft Press,

1994.

Morgan Kaugman (www.mkp.com)

Introuction to the OMG's Unified Modeling Language, Paul Harmon, MK (1558604650), 1997.

Productive Objects, Robert Muller, MK (1558604375), 1997.

Page 34: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 34 32-IT-484

References Morgam Kaufman Publishers, Inc.

Understanding UML: The Develpers Guide, Paul Harmon and Mark Watson, Morgam Kaufman Publishers, Inc., 1997.

Peachpit Elements of Web Design, Darcy Dinucci, Peachpit Press, 1997

Prentice-Hall (www.prenhall.com)

C++ Programming, John Berry, Prentice-Hall, 1992.

2. Business Engineering With Object Technology, David A. Taylor, John Wiley and Son, 1995.

Developing Object-Oriented Software, Prentice Hall (0137372485), IBM

Object-Oriented Technology Center, 1997.

Object Technology Centers of Excellence, Manning (Prentice-Hall), (1884777163), Korson and Vaishnavi, 1996.*

Object-Oriented Software Development, Mark Lorenz, Prentice Hall, 1993.

Object Lifecycles: Modeling the World in States, Sally Shlaer and Stephen J.

Mellor, Englewood Cliffs, N.J., Prentice-Hall, 1992.

Object-Oriented Modeling and Design, James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorense, Englewood Cliffs, N.J., Prentice-Hall, 1991.

Object-Oriented Software Construction, Bertrand Meyer, Prentice-Hall, 1988.

Designing Object-Oriented Software, Rebecca Wirfs-Brock, Brian Wilkerson

and Lauren Wiener, Prentice-Hall, 1990.

Page 35: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 35 32-IT-484

References

Prentice Hall

Software Engineering in the Unix/C Environment, William B. Frakes, Christopher J. Fox & Brian A. Nejmeh, Prentice-Hall, 1991.

Object-Oriented Analysis and Design, James Martin and James J. Odell,

Prentice Hall, 1992.

Learning C++, Tom Swan, SAMS, Prentice-Hall, 1991.

Object-Oriented Databases with Applications to CASE, Networks, and VLSI CAD, Prentice-Hall, Rajiv Gupta, Ellis Horowitz, editors, 1991.

Object-Oriented Modeling and Design for Database Applications, Blaha and

Premerlani, Prentice-Hall (0131238299), 1998*

UML and C++, Lee and Tepfenhart, Prentice-Hall (0136197191), 1997*

Managing Your Move to Object Technology: Guidelines and Strategies for a Smooth Transition, Barry McGibon, Prentice Hall (0132420090), 1995.

SIGS

The Blueprint for Business Objects, Peter Fingar, SIGS (0132571307), 1996.

Building Object Applications That Work: Your Step-By-Step Handbook for

Developing Robust Systems With Object Technology, Scott Ambler, SIGS (1884842569), 1997.

Advanced Object-Oriented Analysis and Design Using UML, James J. Odell,

SIGS (1884842658), 1997.

Software Patterns, James O. Coplien, SIGS (188484250), 1996

The Object Primer: Application Developer's Guide to Object-Orientation, Scott Ambler, SIGS (1884842178), 1996

Springer Verlag ([email protected])

Formal Object-Oriented Development, Lano, Springer Verlag (3540199780),

1996.

Objects and Systems, Zeigler, Springer Verlag (0387947817), 1997

Page 36: Syllabus for Object-Oriented Technology 32-IT-484 …homepages.uc.edu/~brueggrf/documents/Sylabus484_2… ·  · 2004-01-18Object-Oriented Technology Page 1 32-IT-484 Syllabus for

Object-Oriented Technology Page 36 32-IT-484

References

Thomson

The Object-Oriented Approach, John W. Satzinger and Tore U. Orvik, Thomson Publishing, 1996.

Object Technology, Bouzeghoub and Bouzeghoub, International Thomson

Comptuer (1850323011), 1997

Object Oriented Software Development, McGregor and Sykes, International Thomson (1850328781), No Date.

WROX

OOP Using C++, Wrox Press

Beginning Visual C++, Wrox Press

The Beginners Guide to C++, Oleg Yaroshenko, 1994, (1874416265) Wrox

Press

Beginning Visual C++ 6, Ivor Horton, WROX, 1998.

Wright's Beginning VB 5, Wrox Press

Wright's Professional VB 5 Application Development, Wrox Press

Yourdon

Object-Oriented Systems Analysis, David W. Embley, Barry Kurtz, Scott N. Woodfield, Yourdon Press, 1992.

Object-Oriented Analysis, Second Edition, Peter Coad and Edward Yourdon,

Yourdon Press, 1991.

Object-Oriented Design, Ed Yourdon and Peter Coad, Yourdon Press, 1991.

Object-Oriented Systems Analysis: Modeling the World in Data, Sally Shlaer and Stephen J. Mellor, Yourdon Press, 1988.

Object-Oriented Development, Methods, Standards and Procedures, Donald

Firesmith, Yourdon (013489717), 1997.

Case Studies in Object-Oriented Analysis and Design, Edward Yourdon and Argila, Yourdon (0133051374), 1996.

Miscellaneous

C Programming Language, Second Edition, Brian Kernighan.

Introduction to Object-Oriented Databases, Won Kim, MIT, 1990.