Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.

Slides:



Advertisements
Similar presentations
1 433 – 254: Software Design Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University of.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
IS6112 Application Modelling and Design Introduction.
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
CM10134-CM50147 Programming I Basic Programming in Java Marina De Vos.
Object Oriented System Development with VB .NET
CMSC 132: Object-Oriented Programming II
Objects First with Java A Practical Introduction using BlueJ
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
CS565 Advanced Software Development (1 unit) Lecturer: Adrian O’Riordan Contact: is Office: prefab, behind.
© Copyright Eliyahu Brutman Programming Techniques Course.
CO320 Introduction to Object- Oriented Programming Michael Kölling 3.0.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
CIS 321—IS Analysis & Design
Object Oriented Programming CEN 221. Course Description Classes, objects, inheritance, polymorphism, graphical user interfaces, event handling, exception.
MCS 270 Spring 2014 Object-Oriented Software Development.
EECE 310 Software Engineering Lecture 0: Course Orientation.
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
Springl 2008 MIS380: Object-Oriented Programming using Java 1 Spring 2008.
Introduction To System Analysis and Design
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
Selected Topics in Information Technology Programming Language - JAVA Semester 1/2554.
Systems Analysis and Design in a Changing World, 3rd Edition
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
GRASP: Designing Objects with Responsibilities
Patterns in programming1. 2 What are patterns? Answers to common design problems. A language used by developers –To discuss answers to design problems.
1 Software Development By Rick Mercer with help from these sources: Rational Unified Process Computing Fundamentals with C++, Rick Mercer Designing Object.
Introduction ● Course title: – Advanced programming using Java – Object oriented programming in Java ● Textbooks – Thinking in Java 3 rd edition, electronic.
5.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
CS 151: Object-Oriented Design October 15 Class Meeting Department of Computer Science San Jose State University Fall 2013 Instructor: Ron Mak
Intro to CIT 594
Software Design 1.1 CPS 108, Spring 2006 l Object oriented programming and design, we'll use Java and C++  Language independent concepts including design.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Week 5, Day 2: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design:
Basic Characteristics of Object-Oriented Systems
Week 5, Class 3: Decorators Lab questions? Example: Starbuzz coffee Basic Pattern More examples Design Principles Compare with alternatives SE-2811 Slide.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
(Complex) Problem domain Requirements Specification
CSC 222: Computer Programming II
Chapter 7: Software Engineering
CSC207 Fall 2016.
Objects First with Java A Practical Introduction using BlueJ
Object-Oriented Analysis and Design
MPCS – Advanced java Programming
Design Patterns Lecture part 2.
Introduction to Design Patterns
object oriented Principles of software design
Objects First with Java A Practical Introduction using BlueJ
Introduction to Programming 2
EECE 310 Software Engineering
Object Oriented Design Patterns - Structural Patterns
COS 260 DAY 2 Tony Gauvin.
Objects First with Java A Practical Introduction using BlueJ
CS 2530 Intermediate Computing Dr. Schafer
PPT6: Object-oriented design
Objects First with Java A Practical Introduction using BlueJ
References: Eddie Burris, Rick Mercer
Presentation transcript:

Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1

Major Topics in C Sc 335  Java  Testing  Object-Oriented Programming  Object-Oriented Design  Technology  Object-Oriented Design Principles  Software Development  Team Project 2

1. Java  Classes and Interfaces  Exceptions, Streams, Persistence  Graphical Components  Event-driven programming  Make something happen on a click, mouse motion, window close, checkbox....  Socket Networking  Concurrency with Java Threads 3

2. Object Oriented Programming  Encapsulation / Modularity  keeping data and behavior together  Inheritance  Capture common data and behavior in a class, then let other classes extend it  Polymorphism  via interfaces and inheritance 4

3. Object-Oriented Design  Design Guidelines such as  Assign a responsibility to the object that has the necessary information, high cohesion, low coupling  Object-Oriented Design Patterns such as  Iterator  Strategy  Adaptor  Decorator  Composite  Mediator  Command  Observer 5

3. OO Design continued  Responsibility Driven Design (RDD)  Unified Modeling Language (UML)  Test Driven Design (TDD)  Refactoring  Improving the design of existing code without changing its meaning—make it more readable and maintainable, a few examples:  Rename, Extract method, Exit method as soon as possible, Change method signature 6

4. Technology  Professional IDE: Eclipse  Concurrent Versioning System (CVS)  Use existing frameworks  Java's Collection Framework  javax.swing, javax.awt  java.io  java.net 7

5. Object-Oriented Principles  The Single Responsibility Principle  The Open–Closed Principle  The Dependency Inversion Principle  The Liskov Substitution Principle  Favor composition over inheritance  Encapsulate what varies  Program to interfaces, not implementations 8

6. Software Development  We'll use a mash up of Agile techniques  Test Driven Development (TDD)  Short iterations  Coding standard and collective code ownership  Pair programming  Frequent build updates  Sustainable pace  Estimating and planning  Retrospectives 9

7. Team Project  Great project choices has each person designing and developing hours each over the final six weeks  Can get high marks with 4x35 hours  Teams of four  Some rough estimates  A few interfaces  classes  3,500 to 6,500 lines of code (LoC) 10

No Text Book to buy  There is no one textbook for this class  There will be readings of online content, some views of videos  References can be found at Safari Books Online You can log in with your UANetID and Password Gain access to 29 thousand books 11

Goals  Understand and use the fundamentals of object- oriented programming: encapsulation, polymorphism, and inheritance  Understand the relationships between objects, classes, and interfaces  Build complex systems where one has 15 or more classes that you develop in a team of four 12

Goals (continued)  Learn to work on teams  Use good practices of programming to develop good object-oriented software  Become comfortable with event-driven programming and graphical user interfaces  Use tools of object-oriented software development  Design Patterns, the Unified Modeling Language (UML), unit testing (JUnit), a professional IDE (Eclipse), frameworks, Agile techniques 13

Goals continued  Value testing, the industry does  Write clean code  Be able to make intelligent design decisions  Build a project that is better than the sum of the parts (team project is greater than what 1person can do in the same number of person hours)  Have some fun 14

15