Presentation is loading. Please wait.

Presentation is loading. Please wait.

MCS 270 Spring 2014 Object-Oriented Software Development.

Similar presentations


Presentation on theme: "MCS 270 Spring 2014 Object-Oriented Software Development."— Presentation transcript:

1 MCS 270 Spring 2014 Object-Oriented Software Development

2 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Today’s schedule Course information Web Site: www.gac.edu/~hvidsten/courses/MCS270www.gac.edu/~hvidsten/courses/MCS270 Overview Chapters 1 and 2 in Textbook MCS 270 Object-Oriented Software Development

3 GUSTAVUS ADOLPHUS COLLEGEgustavus.edu Course Info Web Site: www.gac.edu/~hvidsten/courses/MCS270www.gac.edu/~hvidsten/courses/MCS270 Class Syllabus Class Schedule Class Development Environment/Tools MCS 270 Object-Oriented Software Development

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

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

14 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

15 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

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

17 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

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

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

20 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

21 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

22 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

23 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

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

25 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

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


Download ppt "MCS 270 Spring 2014 Object-Oriented Software Development."

Similar presentations


Ads by Google