Introduction to CSE 331 Software Design & Implementation Winter 2011

Slides:



Advertisements
Similar presentations
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION DEBUGGING Autumn 2011 Bug-Date: Sept 9, 1947.
Advertisements

Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
CSE 331 wrapup CSE 331 University of Washington. CSE 331 goals Enable students to manage complexity ensure correctness write modest programs.
Software Engineering and Design Principles Chapter 1.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Professor Weaver CSC181 Programming I Professor Weaver
September 7, Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
CS 415: Programming Languages Course Introduction Aaron Bloomfield Fall 2005.
Introduction SWE 619. Why Is Building Good Software Hard? Large software systems enormously complex  Millions of “moving parts” People expect software.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 1 1.
Introduction To System Analysis and design
CSE 331 Software Design & Implementation Dan Grossman Fall 2014 Lecture 1 – Introduction & Overview 1CSE 331 Fall 2014.
M1G Introduction to Programming 2 1. Designing a program.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Computer Programming I An Introduction to the art and science of programming with C++
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Lecture 0 – Course Introduction 1CSE 331 Au12 One handout up front!
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
CSE 331 Software Design & Implementation Dan Grossman Winter 2014 Lecture 1 – Introduction & Overview 1CSE 331 Winter 2014.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Introduction to Data Structures
Object-Oriented Analysis and Design Fall 2009.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Software Design Process
CSE 190p wrapup Michael Ernst CSE 190p University of Washington.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
CS-112 Object Oriented Concepts Course Syllabus. Outline  Instructor and Prerequisites  What this course is  Learning outcomes  Degree program outcomes.
Intro to CIT 594
CSE332: Data Abstractions Section 1 Hye In Kim Winter 2013.
CSE 331 Software Design & Implementation Dan Grossman Spring 2015 Course Victory Lap (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins)
PROG Developing Robust Modular Software.. Objectives What do we want? Programmatic Elements in a Business System. Logic Layer. Persistence (Data)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Zach Tatlock / Winter 2016 CSE 331 Software Design and Implementation Lecture 1 Introduction.
CSE 331 Software Design & Implementation Hal Perkins Fall 2015 Lecture 1 – Introduction & Overview (Based on slides by Mike Ernst, Dan Grossman, David.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
CompSci Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.
CSE 331 Software Design & Implementation Hal Perkins Winter 2015 Lecture 1 – Introduction & Overview (Based on slides by Mike Ernst, Dan Grossman, David.
Object Oriented Analysis & Design By Rashid Mahmood.
1 Welcome Alireza Humber College Lecture 1 Game 540 Alireza
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Zach Tatlock / Winter 2016 CSE 331 Software Design and Implementation Lecture 24 Wrap Up.
Introduction to Information Systems SSD1: Introduction to Information Systems Unit 1. The World Wide Web Unit 2. Introduction to Java and Object- Oriented.
Types for Programs and Proofs
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
September 27 – Course introductions; Adts; Stacks and Queues
Introduction SWE 619.
CSE 331 Software Design and Implementation
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
Organization of Programming Languages
EE422C Software Design and Implementation II
Software Design Lecture : 14.
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
CSCE156: Introduction to Computer Science II
Presentation transcript:

Introduction to CSE 331 Software Design & Implementation Winter

Course staff Lecturer: - Michael Ernst TAs: - Brian Burg - Jacob Nicholson - William Pitts Ask us for help!

Main topic: Managing complexity Abstraction and specification - Procedural, data, control flow - Why they are useful and how to use them Writing, understanding, and reasoning about code - The examples are in Java, but the issues are more general - Object-oriented programming Program design and documentation - What makes a design good or bad (example: modularity) - The process of design and design tools Pragmatic considerations - Testing - Debugging and defensive programming - Managing software projects

The goal of system building To create a correctly functioning artifact! All other matters are secondary - Many of them are essential to producing a correct system We insist that you learn to create correct systems - This is hard (but fun and rewarding!)

Why is building good software hard? Large software systems are enormously complex - Millions of “moving parts” People expect software to be malleable - After all, it’s “only software” - Software mitigates the deficiencies of other components We are always trying to do new things with software - Relevant experience often missing Software engineering is about: - Managing complexity - Managing change - Coping with potential defects Customers, developers, environment, software

Programming is hard It is surprisingly difficult to specify, design, implement, test, debug, and maintain even a simple program CSE 331 will challenge you If you are having trouble, think before you act - Then, look for help We strive to create assignments that are reasonable if you apply the techniques taught in lecture - … but hard to do in a brute-force manner

Prerequisites Knowing Java is a prerequisite - We assume you have mastered 142 and 143 Examples: Sharing: - Distinction between == and equals() - Aliasing (multiple references to the same object) Subtyping - Varieties: classes, interfaces - Inheritance and overriding Object-oriented dispatch: - Expressions have a compile-time type - Objects/values have a run-time type

Logistics Website: - See the website for all administrative details - Read (all) the handouts! - There are required texts Run student-setup by 8pm tonight - Problem Set 0 is due on Wednesday morning Collaboration policy: - Discussion is permitted - Carrying materials from discussion is not permitted - Everything you turn in must be your own work - You may not view others’ work - If you have a question, ask