1 / 26

MCS 270 Spring 2014

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

robin-noble
Download Presentation

MCS 270 Spring 2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MCS 270 Spring 2014 Object-Oriented Software Development

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

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

  4. MCS 270 Object-Oriented Software Development 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

  5. MCS 270 Object-Oriented Software Development 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

  6. MCS 270 Object-Oriented Software Development 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

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

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

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

  10. MCS 270 Object-Oriented Software Development Historical Perspective on Software “Engineering” 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. MCS 270 Object-Oriented Software Development Historical Perspective on Software “Engineering” 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. MCS 270 Object-Oriented Software Development Historical Perspective on Software “Engineering” 2010s: Mobile Computing, HTML5, “Ubiquitous” Computing, Agile Software Development, Cloud Computing, Social Computing

  13. MCS 270 Object-Oriented Software Development The Cost of Developing Software

  14. MCS 270 Object-Oriented Software Development Why is Software so Expensive? 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. MCS 270 Object-Oriented Software Development Why is Software so Expensive? 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 Very2 Large: 15+ years, 10Ks programmers, 35M LOC Y2K

  16. MCS 270 Object-Oriented Software Development

  17. MCS 270 Object-Oriented Software Development 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?

  18. MCS 270 Object-Oriented Software Development Hardware Lifecycle

  19. MCS 270 Object-Oriented Software Development Software Lifecycle

  20. MCS 270 Object-Oriented Software Development 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)

  21. Data-oriented model Object-oriented model Software system Real world Software system Real world MCS 270 Object-Oriented Software Development 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”

  22. MCS 270 Object-Oriented Software Development 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

  23. MCS 270 Object-Oriented Software Development Encapsulation Problem Domain Class Diagram switch Switch 1 W Battery 5V Resistor 5 V Light light

  24. MCS 270 Object-Oriented Software Development Inheritance Class Structure

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

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

More Related