MCS 270 Spring 2014 Object-Oriented Software Development.

Slides:



Advertisements
Similar presentations
CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
Advertisements

International Academy Design and Technology Technology Classes.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Chapter 1 Object-Oriented System Development
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Software Engineering CSE470: Intro Software Engineering CSE470 (Fall 1999) Instructor: Dr. B. Cheng (Sect. 1) TAs: Jack Brown Durga Prasad.
Object Oriented System Development with VB .NET
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CS 432 Object-Oriented Analysis and Design
Tuesday, January 25, Management of Information Systems: Mini-3 Spring 2000.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
Introduction to Programming. COMP104 Introduction / Slide 2 Objectives * To learn fundamental problem solving techniques * To learn how to design a program.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
SFT News 14 th July Tech Training Programme  Exercise underway to uncover training needs for work projects in 2015  Covers Technical Management,
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Systems Analysis and Design in a Changing World, Tuesday, Feb 27
CS2303 C14 Systems Programming Concepts Bob Kinicki.
Chapter 1. Introduction.
Springl 2008 MIS380: Object-Oriented Programming using Java 1 Spring 2008.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
MCS 270 Spring 2014 Object-Oriented Software Development.
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
MCS 270 Spring 2014 Object-Oriented Software Development.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
MCS 270 Spring 2014 Object-Oriented Software Development.
1 CS6320 – SW Engineering of Web- Based Systems L. Grewe.
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Allyson M. Hoss, January 14, 2008 CSC 7101 Programming Language Structures Spring 2008 Louisiana State University.
Cindy Royal Texas State U PROGRAMMING FOR COMMUNICATORS
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
Dillon: CSE470: INTRO1 Introduction to Software Engineering Computer Science and Engineering 470.
Next Back MAP MAP F-1 Management Information Systems for the Information Age Second Canadian Edition Copyright 2004 The McGraw-Hill Companies, Inc. All.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
CS 2303 Systems Programming Concepts Bob Kinicki A08.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Language History and Evolution
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Research topics: Mira Balaban
Problem Solving Using C: Orientation & Lecture 1
Advanced Software Engineering Dr. Cheng
Objectives Overview Differentiate between machine and assembly languages Identify and discuss the purpose of procedural programming languages, and describe.
CMPE419 Mobile Application Development
Programming Language History and Evolution
Developing Applications
Problem Solving.
CMPT 360 Programming Languages (Notations)
Problem Solving Using C: Orientation & Lecture 1
Ada – 1983 History’s largest design effort
Problem Solving Using C: Orientation & Lecture 1
and Program Development
Principles of Programming Languages
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Object-Oriented Programming
CMPE419 Mobile Application Development
Presentation transcript:

MCS 270 Spring 2014 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Today’s schedule Course information Web Site: Overview Chapters 1 and 2 in Textbook MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Info Web Site: Class Syllabus Class Schedule Class Development Environment/Tools MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Topics – What we will cover: Object-Oriented Programming -- Java Object-Oriented Design and Modeling UML (Unified Modeling Language) Version Control (GIT) TDD (Test Driven Design) -- Unit Testing (JUint) Team Project MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Goals – What will you learn? Programming Skills: Fundamentals of object-oriented programming: encapsulation, polymorphism, and inheritance Understand the relationships between objects, classes, and interfaces Build complex systems having many interacting classes MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Goals – What will you learn? Software Modeling and Design Skills: Use good practices of design to develop robust, maintainable object-oriented software : Modeling and Design Principles using UML Agile Techniques MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Goals – What will you learn? General Skills: Version Control Testing Professional Development tools (Eclipse, GIT, Google App) Team Programming MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Textbook Object-Oriented Modeling and Design with UML, 2 nd ed. by Michael Blaha and James Rumbaugh MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Challenges of Software Development Complexity of software systems Longevity and evolution of software systems High user expectations User needs change over time MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Historical Perspective on Software “Engineering” MCS 270 Object-Oriented Software Development 1940s: computers invented 1950s: assembly language, Fortran, Lisp 1960s: COBOL, ALGOL, PL/1, Basic 1969: First conference on Software Engineering 1970s: multi-user, databases, UNIX, Procedural Programming (C), First OO (Simula, Smalltalk), First Logic (Prolog), First DB (SQL), Pascal, Scheme

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Historical Perspective on Software “Engineering” MCS 270 Object-Oriented Software Development 1980s: Networking, PC’s, Embedded systems, Parallel computing, C++, ADA, Obj C 1990s: Internet, Distributed systems, Java RAD -- Scripting Languages: Javascript, Python, Perl, PHP, Ruby (OO in widespread use) 2000s: Web Commerce, Virtual reality, Voice recognition, Video, C#, XML

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Historical Perspective on Software “Engineering” MCS 270 Object-Oriented Software Development 2010s: Mobile Computing, HTML5, “Ubiquitous” Computing, Agile Software Development, Cloud Computing, Social Computing

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu The Cost of Developing Software MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Why is Software so Expensive? MCS 270 Object-Oriented Software Development Size of programs continues to grow: Tiny: < 1 month, 1 programmer, < 500 LOC, CS I, II assignments Very small: 4 months, 3-4 programmers, 2000 LOC MCS 270 Course project Small: 2 years, 3-10 programmers, 50K LOC Nuclear power plant, pacemaker

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Why is Software so Expensive? MCS 270 Object-Oriented Software Development Medium: 3 years, 10s of programmers, 100K LOC Optimizing compiler (gcc), Geometry Explorer Large: 5 years, 100s of programmers, 1M LOC MS Word, Excel Very large: 10 years, 1Ks of programmers, 10M LOC Air traffic control, Telecommunications, space shuttle Very 2 Large: 15+ years, 10Ks programmers, 35M LOC Y2K

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Challenges of Software Development H/W advances, Feature explosion, Security needs Maintenance - Aging Software Costs and schedules – hard to estimate Failures: Arianne Missile, Therac (Radiation Treatment), ACA? MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Hardware Lifecycle MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Software Lifecycle MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Robust Software Development – based on: Rigorous theories addressing the modeling and design of complex systems Testing of Systems both in development and after Communication with customers (iterative design) Reduction of Complexity (we can only cope with about 7 ideas at once) MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Chapters 1 and 2 – Overview of Modeling Object-orientation as a base for modeling Problem modeled as set of objects that interact Easy to understand and maintain Directly related to reality -- no "semantic gap” MCS 270 Object-Oriented Software Development Software system Real world Data-oriented model Software system Real world Object-oriented model

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu 3 basic OO concepts Encapsulation - separate external (public) aspects from internal (private) aspects Inheritance- subclasses share attributes of parents Polymorphism- same operation may perform different on different classes MCS 270 Object-Oriented Software Development

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Encapsulation MCS 270 Object-Oriented Software Development 1  5 V light switch Battery 5V Switch Resistor Light Class Diagram Problem Domain

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Inheritance MCS 270 Object-Oriented Software Development Class Structure

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu public double area() { double a = getMajorLength()/2.0; double b = getMinorLength()/2.0; return Math.PI*a*b } public double area() { return Math.PI*getRadius()*getRadius(); } Polymorphism Class Circle extends 2DShape Class Ellipse extends 2DShape MCS 270 Object-Oriented Software Development 2DShape area Circle Ellipse

GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Assignments Tuesday - First Lab: Meet in Olin 326 Thursday – Read Chapters 1,2 and in text. MCS 270 Object-Oriented Software Development