Once you have use cases and user stories, programming development moves on to a broader perspective. You need to get an idea of the most important functions of your application. Creating a conceptual model helps you see the most critical elements and how they interact with each other. Watch this online video to learn how to draw a usable conceptual model for your application.
- View Offline
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, our 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.
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.
- Why use object-oriented design (OOD)?
- Pinpointing use cases, actors, and scenarios
- Identifying class responsibilities and relationships
- Creating class diagrams
- Using abstract classes
- Working with inheritance
- Creating advanced UML diagrams
- Understanding object-oriented design principles