Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
Most modern programming languages, such as Java, C#, Ruby, and Python, are object-oriented languages, which help group individual bits of code into a complex and coherent application. However, object-orientation itself is not a language; it's simply a set of ideas and concepts.
Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.
Once we've drawn up some Use Cases or User Stories, the next thing we can do is create a conceptual model of our system. This sounds complex for it really doesn't need to be. It simply means you're identifying the most important objects in the application, and here I'm using the word Object loosely. I'm not worried about software object right now, but more generically what are the things in the application that we need to be aware of? Because a moment ago our focus was just on the Users, the actors and their goals. But now it widens, and we start to look at the words and the phrases we picked when describing our application.
Words like product, item, shopping cart, order, invoice, paycheck, spaceship, asteroid, level, that's what we're identifying here, those concepts, those kind of ideas. Now some of them will become actual classes and software object, but not all of them. So we're going to identify those objects, start to refine them, and then draw them in a simple diagram. And we can also show the associations and interactions between them, which objects use which other objects and how did they use them? But this is a completely different perspective than a Use Case or User Story, and now we finally start to focus on the object-oriented construction of our application.
But we needed to go through describing our requirements, not User goals, in order to successfully get here, and this should be fairly quick. Creating a simple conceptual model for most applications is not and should not be a long drawn-out process. A few hours spent on this in any iteration is usually more than enough. So once again, don't worry about perfection. First time through it will be incomplete, and that's absolutely normal to miss out even important conceptual objects, things that you will discover later on during programming, but it's still worthwhile.
There are currently no FAQs about Foundations of Programming: Object-Oriented Design.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.