Teaching Software Development by Example Evelyn Stiller and Cathie LeBlanc Dept. Computer Science and Technology.

Slides:



Advertisements
Similar presentations
COURSE: COMPUTER PLATFORMS
Advertisements

Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
TAILS: COBWEB 1 [1] Online Digital Learning Environment for Conceptual Clustering This material is based upon work supported by the National Science Foundation.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Introduction to Databases
Ch 12: Object-Oriented Analysis
1 Object-Oriented Software Development Project Aaron Christopher.
Real-Time Authentication Using Digital Signature Schema Marissa Hollingsworth BOISECRYPT ‘09.
Introduction To System Analysis and Design
1 L54 Networking (3). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Object Oriented System Development with VB .NET
Introduction to Java Programming, 4E
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Object-oriented concepts.
Course Map The Java Programming Language Basics Object-Oriented Programming Exception Handling Graphical User Interfaces and Applets Multithreading Communications.
The University of Akron Dept of Business Technology Computer Information Systems Database Management Approaches 2440: 180 Database Concepts Instructor:
3D Object Retrieval Client-Server Project
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
Fundamentals of Python: From First Programs Through Data Structures
Programming with App Inventor Computing Institute for K-12 Teachers Summer 2012 Workshop.
Portal and AQAS-Philadelphia University 21-22/6/2011 AVCI Platform in PU Dr. Abdel-Rahman Al-Qawasmi Philadelphia University Director of Computer Center.
Platforms for Learning in Computer Science July 28, 2005.
Introduction To System Analysis and design
The Design Discipline.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
CSC 113 Java Programming II
An Introduction to Software Architecture
1 SA Capstone Requirements and Design Week 6 SYST Winter 2015 Some slides adapted from: Systems Analysis and Design in a Changing World, 6th Edition,
Case Study: Game2D with Method Design
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction To System Analysis and Design
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Copyright © Curt Hill, Client – Server Computing An important paradigm.
1 Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill Chapter 2: Object Basics Object-Oriented Systems Development Using the Unified Modeling.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
TAL7011 – Lecture 4 UML for Architecture Modeling.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Part VII: Design Continuous
Introduction to Java Beans CIS 421 Web-based Java Programming.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
CS 151: Object-Oriented Design October 15 Class Meeting Department of Computer Science San Jose State University Fall 2013 Instructor: Ron Mak
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
More Patterns CS 124. More Basic Patterns Patterns you’ve already seen (without knowing it) Observer / Listener Wrapper Composite Decorator / Filter Patterns.
Next Back MAP MAP F-1 Management Information Systems for the Information Age Second Canadian Edition Copyright 2004 The McGraw-Hill Companies, Inc. All.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
Unit 1 - Introducing Abstract Data Type (ADT) Part 1.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
Software Design Refinement Using Design Patterns
Object-Oriented Analysis and Design
Software Design and Architecture
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Presentation transcript:

Teaching Software Development by Example Evelyn Stiller and Cathie LeBlanc Dept. Computer Science and Technology

The course is called Client-Server Programming. This is the students’ second programming course. The course is taught using Java.

Students learn to design simple two-player client-server applications in the following manner: –Introduce a reusable socket listener class. –Show students a simple client-server application design. –Model adapting the above design to another, similar application. –Ask students to adapt the design to their own project. –This approach has greatly improved the students’ success in completing their client-server projects.

Week 11.Overview of the object-oriented paradigm 2.Encapsulation 3.Inheritance 4.Polymorphism 5.Object-oriented problem conceptualization Week 21.Introduction to UML class diagrams 2.Interobject relationships 3.Distributing event-handling to utility classes Week 31.Inheritance: single and multiple 2.Polymorphism Week 41.Graphical user interface design principles 2.Using the Java API 3.Advanced layout management Week 51.Exception handling

Week 61.Multi-threading applications 2.Animation 3.Data integrity issues resulting from multi- threading Week 71.Multimedia applications 2.Images 3.Sound Week 81.Files and streams 2.Object Streaming Week 91.Network programming through sockets 2.Non-threaded interprocess communication Week 101.Multi-threaded network programming 2.Design of chat room 3.Design of network-based Battleship game

Week 111.Principles of client-server application design 2.More UML class diagrams Week 121.Using data structures 2.Stacks 3.Queues Week 131.Professional ethics Week 141.Finalize student projects Week 151. Student Presentation of Client-Server Project

Determine functional specification of project. Divide the overall functionality into client and server responsibilities. Determine which classes are required for the client and which are for the server. Determine inter-class relationships.

The SocketListener class is a reusable class for reading text over Sockets. This class is threaded so that the main application using this class does not block upon issuing a readLine() over the BufferedReader. Uses the interface NetworkReader to force implementing classes to define the method sendSocketInput(String, SocketListener)

MainApplication sendSocketInput(String, SocketListener) > NetworkReader sendSocketInput(String, SocketListener) SocketListener Thread (Java predefined class) BufferedReader (Java predefined class) > is-a implements creates reads text over calls sendSocketInput using lines of text read from BufferedReader

Chat4_2Client sendSocketInput(String, SocketListener) ChatSession sendSocketInput(String, SocketListener) Chat4_2Server SocketListener {Client side}{Server side} NetworkReader send messages received from server send messages received from client connect send messages create

Players interact with each other through a graphic user interface that consists of a two-dimensional array of squares in which colored dots randomly appear. Players of the game click on dots of their designated color removing dots and gaining points. One player will lose when two neighboring dots of his/her color are set.

Client –Present user with two-dimensional grid –Render server-selected dots on grid –Allow user to remove dots with mouse click in the cell containing the dot –Communicate dot removal to server Server –Allow two players to connect –Assign a color to each player –Periodically generate randomly placed dots and communicate this to both clients –Communicate one client's dot removal to other client –Determine winner and loser

user – external entity grid – potential class but we will implement it as a two-dimensional array rather than create another class dot – attribute of another class cell – potential class server – already a class in our application player – external entity (synonym for user) mouse click – already a class predefined in Java client – already a class in our application winner – synonym for player loser – synonym for player Categorize each noun –potential class –attribute for another class –pronoun –synonym for another noun –transient noun –external entity

Game2DClient sendSocketInput(String, SocketListener) Game2D sendSocketInput(String, SocketListener) Game2DServer SocketListener {Client side}{Server side} NetworkReader send messages received from server send messages received from client connect send messages create

{Client side}{Server side} Game2DClient GraphicCell[][] sendSocketInput(String, SocketListener) GraphicCell Cell is-a renders itself query set/unset dot Game2D Cell[][] sendSocketInput(String, SocketListener) Cell Timer query set/unset dot prompts

Game2DClient GraphicCell grid[ ][ ] sendSocketInput(String, SocketListener) Game2D Cell grid[ ][ ] sendSocketInput(String, SocketListener) Game2DServerSocketListener {Client side}{Server side} NetworkReader send messages received from server send messages received from client connect send messages send two socket connections Timer Cell GraphicCell Game2DClient reference Cell query Set/unset dots prompts is-a queryset/unset dots render

Students start with a simple application which reviews Java concepts Each week a new concept is learned and new functionality embodying this concept is added to the application. The application grows in complexity in manageable steps.

WeekLearning Objectives/TopicsScience Center Application Functionality 1Review basic Java Programming. Create basic GUI to allow user entry creating an array of objects. Allow Science Center staff to record counts of various animal species on science center lands. 2Application design, basic UML, inner classes, utility classes Add attributes to animal counts, and add fields to data entry GUI (requires use of a utility class). 3Inheritance and other interclass relationships Allow recording of information about animal deformities, record predation relationship between animals. 4Advanced GUI developmentRefining SCHS GUI to enhance usability. 5Exception Handling - Create data out-of-bounds exception. Create numeric only text fields. Make prototype robust to user entry mistakes. Allow SC staff to maintain a history of animal counts.

WeekLearning Objectives/TopicsScience Center Application Functionality 6MultithreadingInvolve children with the SCHS, by creating an animal observation game. 7Using image and sound files to create multimedia applications Make children’s game more appealing by adding images and sounds. 8Files and streams - data persistenceMake SCHS data persistent. 9NetworkingMake children’s game collaborative - allow children on separate computers to participate on same game. 10Client-Server application designMake children’s game more complex with two-way communication between server and client.

After the 10 th week students initiate their own client-server project. They are required to specify overall functionality. Determine client and server responsibilities. Determine classes. Develop a design by adapting the communication infrastructure of the 2-person chat application. Develop their application incrementally.

Students are able to successfully develop relatively complex applications in their second programming course. Students gain experience developing simple client-server applications. Students learn to adapt design solutions to new applications. Students feel comfortable working with UML as a result of their experience. Slides are available at: