Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design- IT0207 III Semester UNIT-IV.
Advertisements

Introduction to Object Orientation System Analysis and Design
K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Modeling Main issues: What do we want to build How do we write this down.
Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
Object-Oriented Systems Development: survey of structured methods by A G Sutcliffe Presented by: Nestor Rivera EEL6883 UCF Spring 07.
Chapter 1 Object-Oriented System Development
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Lecture 11: Chapter 22 Topics –Object Oriented Modeling –UML –Use case.
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to Systems Requirements Lecture 4 Identifying.
Requirements Analysis 9. 1 OO Concepts b509.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Object.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Chapter Assistance -- Lamimi V. Kamat February 14, 1999 R. A. Volz1 OBJECT ORIENTED MODELING, CONCEPTS AND PRINCIPLES Chapter 20.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Introduction To System Analysis and design
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Unified Modeling Language, Version 2.0
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Lab 04.
Object-Oriented Analysis and Design NGSSC Object-Oriented Scientific Programming, June 2012.
Object-Oriented Software Engineering - The professional Developer’s Guide(on OMG’s OOA/OOD proposal) George Wilkie.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Object-Oriented Analysis and Design. Lesson 1: Introduction to Software Engineering.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Lecture 18: Object-Oriented Design
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Slide 1 Objectives Understand the basic characteristics of object-oriented systems. Be familiar with the Unified Modeling Language (UML),V.2.0.
Basic Characteristics of Object-Oriented Systems
Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
UA. Unified Approach ( UA ) It combines best practices, methods process, guidelines & methodology (Rumbaugh, Booch and Jacobson) along with UML notations.
CHAP-1 OBJECT ORIENTED SYSTEM DESIGN (IT-703)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Object Oriented Systems Design
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
Cmpe 589 Spring 2006.
Systems Analysis and Design With UML 2
Contents Why should I consider OOA&D OO analysis OO design
Introduction to Unified Modeling Language (UML)
Systems Analysis and Design With UML 2
Introduction to UML.
Copyright 2007 Oxford Consulting, Ltd
Basic OOP Concepts and Terms
ITEC324 Principle of CS III
ITEC324 Principle of CS III
Presentation transcript:

Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science Department New York University

2 Key Steps In OO Design (Given a specification and an architecture) ● Within a module identify real or abstract entities ● Map entities to objects (i.e., classes) ● Determine – Object state and operations ● I.e., instance variables and methods – Object relationships ● I.e., inheritance and composition – Tests

Topics ● OO Design ● Reading the RFC ● Testing

4 OO Design Axioms 1.The independence axiom. Maintain the independence of components. 2.The information axiom. Minimize the complexity (information content) of the design. Design rules (antecedent axioms): – Design highly cohesive objects that require low coupling (1, 2). – Each class should have a single purpose (1, 2). – A large number of simpler classes enhances reusability (1, 2). – Map strongly from objects in the analysis to objects in the design (1). – Promote standardization by reusing classes and building to standard interfaces (2). – Design for inheritance—move common behavior to superclasses (2).

5 Some Approaches for Identifying Classes ● Noun phrase ● Classes, Responsibilities and Collaborators ● Unified / Use-case driven ● Common Class Patterns

6 Noun Phrase Technique 1.Enumerate Noun phrases 2.Eliminate irrelevant 3.Eliminate redundant 4.Identify attributes 5.Describe each class’s purpose See my example

7 Classes, Responsibilities and Collaborators (CRC) ● An object’s collaborators are objects that cooperate with the object ● Describe each class on an index card like this Collaborators  Using classes  Uses classes  Superclass  Interface(s)  Subclasses Class name Description Responsibilities  Constructor(s)  Method(s)  Instance variable(s) ● Iterate! Keep collaborators physically nearby. Combine similar classes in hierarchies Let's do this for the HTTP Client/Server system

8 Common Class Patterns ● Concept class; e.g., (performance) ● Events class; ● Organization class ● People class ● Places class ● Things and devices class

9 Unified approach – Booch, Rumbaugh and Jacobson – Use-case driven development – OO analysis = specification – OO design ● Identify classes through sequence and collaboration modeling ● Develop sequence diagrams – Incremental development and prototyping – Continuous testing

10 OO Design References ● Bahrami, Ali, Object-Oriented Systems Development, ● Booch, Jacobson and Rumbaugh. The Unified Modeling Language, Notation Guide version (9/97) ● Booch. Object-Oriented Design with Applications, Benjamin- Cummings ● Coad and Yourdon. Object-Oriented Design, ● Rumbaugh, Blaha, Permerlani, et. al., Object-Oriented Modeling and Design, ● Coad and Yourdon. Object-Oriented Analysis, ● Jacobson, Object-Oriented Software Engineering: A Use Case Driven Approach, ● Beck, Cunningham, A Laboratory For Teaching OO Thinking, OOPSLA, 1989 (CRC technique)

Reading the RFC ● ABNF ● Issues – 4.4 Message Length – Persistent connections and pipelining ● Does pipelining make sense for a single-threaded client? – Footnotes ● Discuss 501 (Not Implemented)

Testing – Hand test – Unit tests ● Could use networking... – Use real systems ● Client tests server ● Server tests client ● Monitor messages with Ethereal – Partner testing ● How to test ● What to report – To be continued...