CIT241 Prerequisite Knowledge ◦ Variables ◦ Operators ◦ C++ Syntax ◦ Program Structure ◦ Classes  Basic Structure of a class  Concept of Data Hiding.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Sucha Smanchat  Steps in OOAD using UML  Use Case Diagram  Sequence Diagram / Communication Diagram  Class Diagram  State.
Systems development life cycle & development methodologies
Road Map Introduction to object oriented programming. Classes
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Software Engineering Principles and C++ Classes
CS 2511 Fall Features of Object Oriented Technology  Abstraction Abstract class Interfaces  Encapsulation Access Specifiers Data Hiding  Inheritance.
ASP.NET Programming with C# and SQL Server First Edition
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
C++ fundamentals.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CIT241 Prerequisite Knowledge ◦ Variables ◦ Operators ◦ C++ Syntax ◦ Program Structure ◦ Classes  Basic Structure of a class  Concept of Data Hiding.
Object-Oriented Analysis and Design
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
Object Oriented Software Development
CMIS 470 Structured Systems Design
Programming Languages and Paradigms Object-Oriented Programming.
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
5.1 and 5.4 through 5.6 Various Things. Terminology Identifiers: a name representing a variable, class name, method name, etc. Operand: a named memory.
UML Collaboration Diagram. Recap System Sequence Diagrams (SSD) UML for SSD Examples.
Chapter 4 Objects and Classes.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
COMP 121 Week 7: Object-Oriented Design and Efficiency of Algorithms.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Object-Oriented Analysis and Design An Introduction.
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Chapter 6 Object-Oriented Java Script JavaScript, Third Edition.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Systems Analysis and Design in a Changing World, 3rd Edition
Java Objects and Classes. Overview n Creating objects that belong to the classes in the standard Java library n Creating your own classes.
Data Structures Using C++1 Chapter 1 -Software Engineering Principles -ADT and Classes.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Chapter 9 Applying UML and Patterns -Craig Larman
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.
Object Oriented Software Development
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Introduction to OOAD and the UML
Data Structures Using C++ 2E
Chapter 10: Classes and Data Abstraction. Objectives In this chapter, you will: Learn about classes Learn about private, protected, and public members.
Introduction to Object-Oriented Programming Lesson 2.
1 Unified Modeling Language, Version 2.0 Chapter 2.
OOP Review CS 124.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
Chapter 10: Classes and Data Abstraction. Classes Object-oriented design (OOD): a problem solving methodology Objects: components of a solution Class:
Data Structures Using Java1 Chapter 1 Software Engineering Principles and Java Classes.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
1 CS 132 Spring 2008 Chapter 1 Software Engineering Principles and C++ Classes.
Class Diagrams, MVC and Design Patterns CS153P Session 4.
The Movement To Objects
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Chapter 3: Using Methods, Classes, and Objects
About the Presentations
Object-Orientated Programming
Chapter 20 Object-Oriented Analysis and Design
Review CSE116 2/21/2019 B.Ramamurthy.
Copyright 2007 Oxford Consulting, Ltd
Algorithms and Problem Solving
Basic OOP Concepts and Terms
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Introduction to OOAD and the UML
Presentation transcript:

CIT241 Prerequisite Knowledge ◦ Variables ◦ Operators ◦ C++ Syntax ◦ Program Structure ◦ Classes  Basic Structure of a class  Concept of Data Hiding  Concept of Inheritance  Concept of Polymorphism

CIT241 Objectives Study of data structures and algorithms Use of STL and possibly Boost libraries ◦ Containers ◦ Iterators ◦ Algorithms  Searching  Sorting  Other

Software Design Software Life Cycle ◦ Analysis – the What ◦ Design – the How ◦ Implementation – the Code ◦ Testing and debugging – the Quality

Design Methodologies Structured design ◦ Waterfall methodology ◦ Data Flow Diagrams, Structure Charts, HIPO diagrams, Pseudo Code ◦ Functional decomposition Object-Oriented design ◦ Iterative and Incremental design ◦ UML – use cases, class diagrams, sequence charts, state diagrams, packages ◦ Object decomposition

Agile Methodologies Do only what is necessary ◦ Capture requirements at a high level ◦ Develop small, incremental releases and iterate Write tests before code Refactor code

Algorithms More than one approach Deals with trade-offs ◦ Memory space ◦ Processing time ◦ Simplicity of code Study of Data Structures and Algorithms ◦ Containers ◦ Functions ◦ Searching and Sorting

Big-O Notation Efficiency of an algorithm Interested in asymptotic behavior ◦ Especially as it approaches infinity Measure number of operations How does number of operations grow as number of elements grow

Growth Rates nlog 2 nn log 2 nn2n2 2n2n , ,294,967,296

Searching Linear search Binary search Cost of two methods ◦ Frequency of adding new element ◦ Frequency of searching for an element

Classes and Objects Class represents a type of object ◦ Extensible programming language ◦ Encapsulates state and behavior ◦ Reusable ◦ Classes used to model problem Objects are the instances ◦ Data members represent current state ◦ Behavior is shared by all objects of a class

Determining Classes Problem Domain ◦ Vision ◦ Use cases or scenarios Nouns as potential classes CRC cards ◦ Responsibility Sequence diagrams ◦ Actor interacting with Interface class(es) ◦ Interface class interacting with domain classes

Relationships between Classes Has a – composition Is a – inheritance Uses – association Relationships have multiplicity ◦ 1 – 1 ◦ 1 – Many ◦ Many – Many ◦ Many(s) in model most often held in container

Class Data members ◦ Fields  Static Field Member functions ◦ Accessors and mutators  Standard C++ does not support properties  Implements get and set functions ◦ Static member functions Accessibility ◦ Private ◦ Protected ◦ Public

Class Methods Constructors ◦ Constructors with default parameters Destructor Public Private Built-in Operations ◦ member access (.) or (->) for dynamic objects ◦ assignment (=)

Patterns Model/View/Controller - Separation of concerns ◦ Data part ◦ Presentation part Data Persistence ◦ Separate data from storing/retrieving of data

Date Class How is it going to be used? Methods ◦ Constructors ◦ Destructor? ◦ Set/Get functions ◦ Calculation functions ◦ Formatting functions

NetFlix Like Project Problem Statement We want to establish a service that permits a customer to enroll into one of three plans. The first plan allows the customer to have 2 videos out at a time. The second plan allows the customer to have 3 videos out at a time but can also download 10 videos per month. The third plan allows the customer to have 5 videos out at a time and can download 30 videos per month. The customer keeps a list of desired videos. He can add videos to the list, resequence the videos on the list, remove videos from the list. When a video is returned, the system will find the next available item on the customer’s list and mail out the video. The system needs to keep track of videos sent to the customer. The customer can ask the system to list all the videos the customer has received, returned, or downloaded. The system needs to track customers who has not yet reached the number of videos permitted out at a time so when a new batch of returned videos is registered with the system, the system can find a customer that is waiting for one of the returned videos.

Project 1 Simple ToDoList Application Need to capture an activity that has a description and a planned completion date. Need to have the ability to add an increment to the date for an activity. The increment can be both negative and positive. We would also like to capture the difference between two date values. We need to record the actual completion date element for an activity as well as its planned completion date value.