CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting

Slides:



Advertisements
Similar presentations
Programming Basic Concepts © Juhani Välimäki 2003.
Advertisements

CS 174: Web Programming April 28 Class Meeting
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
Object-Oriented Analysis and Design
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Types of software. Sonam Dema..
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
Client/Server Architectures
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
TC2-Computer Literacy Mr. Sencer February 8, 2010.
A Cloud is a type of parallel and distributed system consisting of a collection of inter- connected and virtualized computers that are dynamically provisioned.
Software Construction Lecture 10 Frameworks
CS 160: Software Engineering October 8 Class Meeting
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
CS 160: Software Engineering September 10 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Threading Models in Visual Basic Language Student Name: Danyu Xu Student ID:98044.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Frameworks CompSci 230 S Software Construction.
CMPE 226 Database Systems October 28 Class Meeting
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
CS 157B: Database Management Systems II April 22 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron Mak.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
CS 160 and CMPE/SE 131 Software Engineering February 25 Class Meeting Department of Computer Science Department of Computer Engineering San José State.
CMPE 226 Database Systems April 19 Class Meeting Department of Computer Engineering San Jose State University Spring 2016 Instructor: Ron Mak
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Android Mobile Application Development
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
CSC 222: Object-Oriented Programming
Development Environment
CSC227: Operating Systems
CompSci 230 S Software Construction
LINUX WINDOWS Vs..
CMPE Data Structures and Algorithms in C++ September 14 Class Meeting
CS 153: Concepts of Compiler Design August 29 Class Meeting
MVC and other n-tier Architectures
CMPE 280 Web UI Design and Development October 24 Class Meeting
CS 153: Concepts of Compiler Design November 30 Class Meeting
LINUX WINDOWS Vs..
CMPE 152: Compiler Design ANTLR 4 and C++
CMPE 280 Web UI Design and Development January 30 Class Meeting
CS 174: Server-Side Web Programming February 12 Class Meeting
CS 174: Server-Side Web Programming January 29 Class Meeting
Advanced Programming: C# Lecture 01: Introduction
CMPE 280 Web UI Design and Development January 30 Class Meeting
CMPE 152: Compiler Design September 11/13 Lab
Layered Style Examples
CMPE 152: Compiler Design August 23 Class Meeting
CMPE 152: Compiler Design August 28/30 Lab
Chapter 7 –Implementation Issues
CMPE 280 Web UI Design and Development January 29 Class Meeting
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
Korea Software HRD Center
CMPE 152: Compiler Design January 29 Class Meeting
CMPE 135: Object-Oriented Analysis and Design March 19 Class Meeting
CMPE 152: Compiler Design February 21/26 Lab
CMPE 152: Compiler Design February 28 / March 5 Lab
CMPE 135 Object-Oriented Analysis and Design March 7 Class Meeting
CMPE 152: Compiler Design April 18 – 30 Labs
Web Servers (IIS and Apache)
CS 144 Advanced C++ Programming April 9 Class Meeting
CS 144 Advanced C++ Programming April 11 Class Meeting
CMPE 152: Compiler Design March 7/12 Lab
CMPE/SE 131 Software Engineering March 7 Class Meeting
CMPE 280 Web UI Design and Development August 27 Class Meeting
CMPE/SE 131 Software Engineering February 22 Class Meeting
Presentation transcript:

CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting Department of Computer Engineering San Jose State University Spring 2019 Instructor: Ron Mak www.cs.sjsu.edu/~mak

Model-View-Controller Architecture (MVC) Design goal: Identify which application components are model, view, or controller. A user cannot directly modify the model.

MVC Implementation: Loose Coupling Keep the implementations of the three objects types separate. Each type of objects does not depend on how the other types are implemented. Your application is easier to develop and maintain faster to develop more robust (resilient to runtime errors)

MVC Model Objects Represent the persistent information maintained by your application. The information can be kept in a database.

MVC View Objects View objects represent user interface components. Input components such as text fields and checkboxes. In each use case, users interact with at least one view object. A view object collects information from users in a form that the model and controller objects can use.

MVC Controller Objects Coordinate the model and view objects. Often have no physical counterpart in the real world. Collect information from view objects for dispatch to model objects. This is how user-entered data can update the model.

Software Frameworks A software framework consists of a set of cooperating classes. These classes implement the essential mechanisms for a particular problem domain. Example: wxWidgets is a C++ software framework for multi-platform GUI programming. A framework imposes a structure on the design and development of applications. It has classes and API that implement the structure. It is more than simply a library.

Software Frameworks, cont’d An programmer builds an application by: Subclassing framework classes. Adding new classes that provide custom functionality. Inversion of control The framework controls the execution flow. The programmer registers callback functions, mostly as event handlers, with the framework. The framework invokes the callback functions at the appropriate times, such as in response to events.

Building and Installing wxWidgets Go to https://www.wxwidgets.org to download for your platform. Use the stable version 3.0.4 It’s a bit tricky to build and install. Mac: Fairly straightforward. I use Eclipse. Linux: I failed to build the dynamic libraries, so I built the static libraries instead. Windows: I successfully built for Microsoft Visual C++. I strongly recommend using VirtualBox to run Ubuntu as a virtual machine, and then build wxWidgets for Linux.

wxWidgets Samples and Demos The download includes the source code for many sample programs and several demos. The build scripts also build all these programs. Each has a makefile to build individually. Use the sample programs to learn how to code and use each widget. Demo

wxWidgets Documentation Online tutorials: https://www.wxwidgets.org/docs/tutorials/ Online reference: https://docs.wxwidgets.org/3.0/ Tutorial to build on MacOS https://docs.wxwidgets.org/trunk/plat_osx_install.html https://wiki.wxwidgets.org/Compiling_wxWidgets_using_the_command-line_%28Terminal%29 Use Homebrew?: https://formulae.brew.sh/formula/wxmac Tutorial to build on Ubuntu: https://www.binarytides.com/install-wxwidgets-ubuntu/

Tutorials My tutorials: http://www.cs.sjsu.edu/~mak/tutorials/index.html Install VirtualBox Install Ubuntu Install wxWidgets

wx-RPS: Mac OS X

wx-RPS: Linux

wx-RPS: Windows 10 Why does the app look so ugly on Windows?