Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 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 artg@cs.nyu.edu

2 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

3 Topics ● OO Design ● Reading the RFC ● Testing

4 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 5 Some Approaches for Identifying Classes ● Noun phrase ● Classes, Responsibilities and Collaborators ● Unified / Use-case driven ● Common Class Patterns

6 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 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 8 Common Class Patterns ● Concept class; e.g., (performance) ● Events class; ● Organization class ● People class ● Places class ● Things and devices class

9 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 10 OO Design References ● Bahrami, Ali, Object-Oriented Systems Development, 1999. ● Booch, Jacobson and Rumbaugh. The Unified Modeling Language, Notation Guide version 1.1. http://www.rational.com/uml/html/notation (9/97) ● Booch. Object-Oriented Design with Applications, Benjamin- Cummings. 1994. ● Coad and Yourdon. Object-Oriented Design, 1991. ● Rumbaugh, Blaha, Permerlani, et. al., Object-Oriented Modeling and Design, 1991. ● Coad and Yourdon. Object-Oriented Analysis, 1991. ● Jacobson, Object-Oriented Software Engineering: A Use Case Driven Approach, 1994. ● Beck, Cunningham, A Laboratory For Teaching OO Thinking, OOPSLA, 1989 (CRC technique)

11 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)

12 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...


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

Similar presentations


Ads by Google