We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Advanced Object Oriented Analysis of Hard Problems using UML

Per Emanuelsson

Read more

"It is not often that a course reinforces many many years of professional system and design experience and also provides a new perspective on that experience with deep philosophical and cognitive psychology understanding...Very satisfied with taking this course, and plan to refer others and reference it again and again." - Pete Gordon

Getting your concepts straight and visualised for scrutiny, early on, in any development effort is often what makes the difference between success and failure.

In conjunction of being one of the most essential activities in the first steps in any software analysis and design endeavour, conceptual modelling could also be used on an everyday basis as a means of communicating more clear, acquiring knowledge faster and catalyst creative thinking.

The conceptual modelling technique using UML (Unified Modelling Lanugage), also called domain modelling or concept mapping, taught in this course gives you a very thorough understanding on the foundations of object-oriented class modelling. I have for 20 years professionally developed object-oriented systems and for more than 5 years I worked in a small team together with some of the founding "fathers" (including Ivar Jacobson) of UML and Object Oriented Design (OOD), where we developed tools for Software Architects and Analysts.

Concept mapping will propel your success rate in delivering value and getting rid of the most crucial waste; the waste of doing the wrong things, in the wrong order for the wrong reason.


“I want to underline the excellent quality of the course and can only encourage people to take it. Thanks Per." - Mufaddal Zakir"Per, the instructor, makes a complex topic both interesting and easy to grasp even for those new to conceptual/business modelling. Highly recommended to anyone who wants to become a better thinker and analyst in ANY domain. " - Kirill Soloviev

  • Over 80 high-quality video lectures to enjoy wherever you are and from a multitude of devices

  • "I consider this a FAR better value for the price than most college courses I've taken, and I took a rigorous engineering course of study, so that is all the more impressive." - Kirsten Tynan

    Click the “take this course" button, top right, now.


    Enroll now

    What's inside

    Learning objectives

    • Know how to create a conceptual model of any system
    • Know in which situations conceptual modelling is efficient and when and how to apply it successfully
    • Be able to interpret and construct common and advanced conceptual models using uml
    • Know how business process- and conceptual modelling best is performed in conjunction and how they relate to each other
    • Acquire knowledge faster
    • Communicate more clearly and eliminate misunderstandings
    • Develop more accurate business and software systems
    • Learn a tool for catalysing creative thinking
    • Know of different techniques to use when performing conceptual modelling
    • Know how to prepare, plan, facilitate and document a concept modeling workshop
    • Achieved practical experience in workshop facilitation
    • Know of to read and apply common patterns when developing conceptual models
    • Show more
    • Show less

    Syllabus

    Introduction
    Who Am I? (if you like to know)
    Course Introduction - Imagine If No One Used The Same Terms For Any Things

    In this lecture we will walk through the benefits of visualising your concepts on maps and which application areas there exists for such maps. The lecture also includes an example of a concept map covering a sub-domain of Udemy.

    Read more
    Introduction Quiz

    In this short lecture we are running through what knowledge goals you could expect with the course. We are also walking through how the course is structured in sections and in which order the different areas are introduced.

    Two Ways To Complete The Course - Theory First or Practice First
    The Cognitive Foundation Of Concept Mapping

    In the this lecture we cover the research done in cognitive science that shows why visualising concepts on map helps you acquire and persist knowledge faster, be a better communicator and how it can act as a catalyst for improving your creative thinking.

    Key Concepts Covered:

    • Example of concept map
    • Why concept maps are intuitive

    In the this lecture we cover the three memory systems in the brain.

    Key concepts covered:

    • Three memory systems
    • Sensory Information Storage
    • Working Memory
    • Long Term Memory
    • Semantic Memory
    • Memory Activation Spreading

    In the this lecture we cover the persistence of memory in the brain.

    Key concepts covered:

    • Knowledge persistence depends on processing
    • Shallow, intermediate and deep processing of learning

    In the this e-learning lecture we cover that brains "love" visualisation:

    Key concepts covered:

    • Non-interactive vs. interactive descriptions
    • Effects on persistence and semantic integration

    In the this e-learning lecture we cover what creative thinking is and an idea how it emerge:

    Key concepts covered:

    • What is creative thinking?
    • Example of creative thinking by Eric Ries in "the lean startup"
    • An example of a creative leap

    In the this e-learning lecture we will show a concept map of the topics learned in the cognitive foundation section.

    Cognitive Science Quiz
    Philosophical foundations of conceptual analysis - introduction

    In the e-learning lecture we will cover all the concepts in the philosophical in one lecture. If you feel comfortable with all the concepts used in this course then you might not need to go in too deep with the lectures in this section. You may also use this lecture in the future as a recap of the concepts that are explained in detail in this section.

    In this section we perform an meta analysis of what happens from a philosophical and physiological point of view when a number of people sit in a room and are trying to synchronise their understanding of a knowledge domain.

    This lecture introduce the Ogden's Triangle, which is used a framework for the complete set of lectures covering the philosophical foundation of concept mapping.

    The triangle has three corner, representing three different sub areas within philosophy:

     Philosophy of Mind 
     Philosophy of Language 
     Metaphysics 

    The rest of the this section will cover subjects within these three areas in the order noted above.

    In the this e-learning lecture we cover that four theories are concepts to be address in the next coming lectures.

    In the this e-learning lecture we cover the classical theory about concepts as well as its limitations.

    Key concepts covered:

    • The classical theory of concepts
    • Categorisation
    • Plato's problem
    • The typicality effect

    In the this e-learning lecture we cover the prototype theory about concepts as well as its limitations.

    Key concepts covered:

    • The prototype theory of concepts
    • Eleanor Rosch
    • How concepts have a probabilistic structure
    • The heritage of Ludvig Wittgenstein and how this theory is based on his reasoning about family resemblance
    • Fuzzy concept (based on Philosophical Investigations)
    • That many concepts lack prototypes
    • That many prototypes lack compositionally

    In the this e-learning lecture we cover the theory theory about concepts as well as its limitations.

    Key concepts covered:

    • That concepts stand in relation to one another in the sam as the terms in a scientific theory
    • Concepts are shaped in constant iterations
    • "One sess knowledge as a boat that we perpetually rebuild as we sail" - Otto Neurath
    • Problems with stability of concepts
    • Can we have the same concept for anything?

    In the this e-learning lecture we cover the conceptual atomism theory about concepts, its limitations as well as a pluralism of concepts.

    Key concepts covered:

    • Maybe concepts are empty and instead is just a causal relation between the concept and it's instance determines it's reference.
    • Soul Kripke
    • The Dual theory about concepts
    • Identification procedure based on prototype theory
    • Core component based on a combination of classical, theory and atomism theory

    This quiz will test your knowledge of the subjects in the first corner of the triangle.

    Important! You Now Have Two Options On How To Proceed!
    Philosophical Foundations Of Conceptual Analysis - Continued
    The Intentionality Of The Mind - "My Adding Machine Understands Nothing"
    Summary So Far - We Have Concepts In Intentional States In Our Minds!
    The Network And The Background - "The Whole Hurly-Burly Of Human Actions"
    Collective Intentionality - I Think That You Think That I Think That You Think..
    Intentionality Quiz
    Summary - First Corner - Concepts In Intentional States About Others' States
    Language - Second Corner - Communicate Your Meaning
    Terms and Propositions - The Signified and The Signifier
    Generativity and Compositionality - The Key Mechanisms Of Any Language
    Sentence Meaning Is Not Enough! "Yes I Can; I'd Just Use My Legs!"
    "The King of France is Bald" Is False,But So Is "The King Of France is Not Bald"
    The Indeterminacy Of Translation - "Lo! An Undetached Rabbit-Part!"
    Language Quiz
    Speech Acts - "Sorry, I Can't. My Mother-In-Law Won't Allow Me!"
    Meaning Through Speech Acts - "There Is a Fluffy Mouse Catcher On The Mat"
    Five Types Of Speech Acts - All You Need!
    The Strange Thing About Declarations About Declarations - We Create Our World
    Steven Pinker on - Language as a Window into Human Nature
    Speech Act Quiz
    Summary - Second Corner - We Refer To Concepts In Our Minds Using Speech Acts
    The World Of Objects and Facts - Third Corner In The Triangle
    The Ontological Nature Of Objects - Let's Get Deep!
    Properties And Relations - "Being In Love" Is A Special Kind Of Relation
    Objects and Properties Quiz
    Facts And Truth - "The Cat Is Not On The Mat" Is Also A Fact
    Social Facts - Objectively True Knowledge About Subjectively Relative Phenomena
    Fact Quiz
    Status Functions - A Rock, A Table And A President Are Very Different Things
    Function Quiz
    Summary - The Triangle In A New Light
    Lessons Learned By Our Deeper Knowledge About How We Create Our World
    Lessons Learned - Overview
    Meaning Breakdown - Do They Agree And Do They Think They Agree?
    Slow Knowledge Acquisition - There Is So Much Time To Save
    Language Legacy - When Language Prevents Strategic Breakthroughs
    Rigid Information Systems - Envision Your Future When Conceptualizing
    Creative Leap Catalyst - See The Hidden Links No One Else Does
    Early Customer Acceptance Of Language - Ground Your Language Collectively
    Conclusions So Far - Visualization Of Concepts Eliminates Communication Waste!
    Notation - The Boxes And Arrows And Their Semantics

    In this lecture we will go through on the highest level what a model is and in which situations models are used. Concepts covered: models and subjects.

    In this lecture we are discussing the concept of a domain and a domain model. We are also discussing how domains could be layered in respect of its abstraction level and how they could be sub divided in sub domains. We then continue with making the distinction between problem and solution domain and describes how this is relative to the eye of the beholder. The lecture is ended by a discussion on business domain models and information models.

    Concepts covered:

    • Domains
    • Domain model
    • Layering of models
    • Sub domains
    • Conceptual models
    • Problem and solution domain
    • Business domain models
    • Information models

    This lecture describes how UML defines the concept of a model formally. It describes the three elements of a UML model: classifiers, behaviour and events. We will also discuss the difference between models, subjects and specification of subjects and how this is handled in UML formally. We end the lecture by discussing the distinction between diagrams and models.

    Concepts covered:

    • Classifiers
    • Behaviours
    • Events
    • Model and Subjects in UML
    • Objects as instances of Classes (Classifiers)
    • Executions as instances of behaviour
    • Occurrences as instances of events
    • Specifications of objects, executions and occurances
    • Diagrams and models
    Model Quiz

    This lectures gives a brief overview of the Unified Modeling Language, it's history and different types of diagram types. It also covers the elements of UML that will be used in the course.

    In this lecture we are covering the two most fundamental concepts in UML: classes and instances of classes (objects). We cover the semantics (what they mean) and how they are notated (who they look).

    Concepts covered:

    • Classes
    • Compartments
    • Attributes
    • Objects
    • Anonymous, named and unclassified objects
    • Stereotypes
    Classes and Instances Quiz

    In this lecture we are diving into the most fundamental relationships in UML; the associations between classes and the links between objects. We are discussing their meaning and how they are notated in the diagrams.

    Concepts covered:

    • Associations
    • Multiplicity
    • Roles
    • Navigability
    • Different meanings of an arrow in UML
    • Links (instances of associations)
    • Association classes
    • Compositions
    • Alternative ways to model

    This lecture focuses on the concept of generalization (what was called general implications in the philosophical sections) in UML. We discuss the difference between associations and generalisation (also, often called inheritance) and covers complex situations like multiple generalisation sets and multiple inheritance and powertypes.

    Concepts covered:

    • Generalizations
    • Generalization sets
    • Powertypes
    • Multiple inheritance
    • General problems with inheritance
    Relationship Quiz

    In last lecture on UML we are covering how to sub divide elements in UML into packages. We are discussing packages and how there dependencies are related to their ingoing elements. There is a whole section of the process of packaging later in the course, this lecture on only covers their basic notation.

    Concepts covered:

    • Packages
    • Dependencies between packages
    • Relationship between packages dependencies and associations and generalizations.
    Concept modeling workshop techniques - Perform An Outstanding Workshop
    Introduction To Workshop And Facilitation
    Workshop Preparation
    Workshop Storytelling - Once Upon A Time...
    Object Diagram Examples - Complexity Does Not Mean That It Is Wrong
    Pattern Recognition - "That Would Be Shunting I Suppose"
    Workshop Quiz
    Conceptual Patterns - Do Not Reinvent The Wheel
    Thing - Information Pattern - "I Do Not Store My Kid In A Database"
    Party - Role Pattern - "Who Are You? It Depends Who Is Asking?"
    Concepts and Processes - "The Concept Of Skies And Skiing Are Inseparable"
    Finding The Generic-Specific Sweet-Spot
    Exercise – Finding Flight Domain Concepts - It's Time For You To Enter The Stage
    Flight Domain Example Solution - One Of Many Ways To Solve It
    Modeling Quiz
    Workshop Exercise - Homework For You To Do. Post Your Results In The Forum!
    Diagram Composition - Watch How Easy It Is To Make Something Incomprehensible!
    Diagram Composition Quiz
    Package your concept model
    Packaging Your Concept Model - Handle A Growing System
    Guidelines When Packaging Your Model
    Evaluation Of Package Organisation - A Fuzzy Logic Problem

    Good to know

    Know what's good
    , what to watch for
    , and possible dealbreakers
    Teaches a powerful method for better understanding information and communicating it more clearly
    Uses a mix of videos, readings, discussions, exercises and interactive material
    Taught by Per Emanuelsson, with over 20 years of professional experience in object-oriented systems development
    Provides an excellent foundation for understanding object-oriented class modelling
    Explores philosophical and cognitive psychology
    Examines advanced conceptual models using UML

    Save this course

    Save Advanced Object Oriented Analysis of Hard Problems using UML to your list so you can find it easily later:
    Save

    Reviews summary

    Challenging but informative

    According to students, this course is a challenging but ultimately rewarding experience. Learners praise the informative lectures and engaging assignments. However, students do note that they wish there was more feedback on assignments.
    The assignments are very instructive.
    "Very exciting and informative!"
    "Very good background information"
    Not enough feedback on assignment submissions.

    Activities

    Coming soon We're preparing activities for Advanced Object Oriented Analysis of Hard Problems using UML. These are activities you can do either before, during, or after a course.

    Career center

    Learners who complete Advanced Object Oriented Analysis of Hard Problems using UML will develop knowledge and skills that may be useful to these careers:
    Solution Architect
    A Solution Architect designs and develops the overall structure of software solutions. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Solution Architects as it teaches how to create conceptual models of systems, which can help them to better understand the software solutions they are working with.
    Technical Architect
    A Technical Architect designs and develops the overall structure of technical systems. They work with stakeholders to gather requirements, and then use their knowledge of technical engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Technical Architects as it teaches how to create conceptual models of systems, which can help them to better understand the technical systems they are working with.
    Information Architect
    An Information Architect designs and develops the overall structure of information systems. They work with stakeholders to gather requirements, and then use their knowledge of information architecture to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Information Architects as it teaches how to create conceptual models of systems, which can help them to better understand the information systems they are working with.
    Enterprise Architect
    An Enterprise Architect designs and develops the overall structure of enterprise systems. They work with stakeholders to gather requirements, and then use their knowledge of enterprise architecture to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Enterprise Architects as it teaches how to create conceptual models of systems, which can help them to better understand the enterprise systems they are working with.
    Data Architect
    A Data Architect designs and develops the overall structure of data systems. They work with stakeholders to gather requirements, and then use their knowledge of data engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Data Architects as it teaches how to create conceptual models of systems, which can help them to better understand the data systems they are working with.
    Systems Analyst
    A Systems Analyst studies the needs of an organization and designs and implements systems to meet those needs. They work with stakeholders to gather requirements, and then use their knowledge of systems engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Systems Analysts as it teaches how to create conceptual models of systems, which can help them to better understand the systems they are working with.
    Software Architect
    A Software Architect designs and develops the overall structure of software systems. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Software Architects as it teaches how to create conceptual models of systems, which can help them to better understand the software systems they are working with.
    Lead Developer
    A Lead Developer leads and manages a team of software developers. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Lead Developers as it teaches how to create conceptual models of systems, which can help them to better understand the software systems they are working with.
    Software Engineer
    A Software Engineer designs, develops, and tests software systems. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Software Engineers as it teaches how to create conceptual models of systems, which can help them to better understand the software systems they are working with.
    Product Manager
    A Product Manager leads and manages the development of software products. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a plan for the product. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Product Managers as it teaches how to create conceptual models of systems, which can help them to better understand the software products they are working on.
    Software Development Manager
    A Software Development Manager leads and manages software development teams. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a plan for the project. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Software Development Managers as it teaches how to create conceptual models of systems, which can help them to better understand the software systems they are working on.
    Technical Project Manager
    A Technical Project Manager leads and manages software development projects. They work with stakeholders to gather requirements, and then use their knowledge of software engineering to create a plan for the project. The Advanced Object Oriented Analysis of Hard Problems using UML course can be very useful for Technical Project Managers as it teaches how to create conceptual models of systems, which can help them to better understand the software systems they are working on.
    Business Analyst
    A Business Analyst develops plans for improving systems and procedures within businesses. They analyze business processes, consult with stakeholders, and document their findings to create detailed specifications for new or improved systems. The Advanced Object Oriented Analysis of Hard Problems using UML course can be useful for Business Analysts as it teaches how to create conceptual models of systems, which can help them to better understand the business processes they are working with.
    Data Scientist
    A Data Scientist uses data to solve business problems. They work with stakeholders to gather data, and then use their knowledge of data science to create a model that can solve the problem. The Advanced Object Oriented Analysis of Hard Problems using UML course may be useful for Data Scientists as it teaches how to create conceptual models of systems, which can help them to better understand the data they are working with.
    User Experience Designer
    A User Experience Designer designs and evaluates the user experience of websites, software, and other products. They work with stakeholders to gather requirements, and then use their knowledge of human-computer interaction to create a design that meets those requirements. The Advanced Object Oriented Analysis of Hard Problems using UML course may be useful for User Experience Designers as it teaches how to create conceptual models of systems, which can help them to better understand the user experience of the products they are working on.

    Reading list

    We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced Object Oriented Analysis of Hard Problems using UML.
    This classic text introduces the concept of refactoring, providing a step-by-step guide to improving the design and maintainability of existing software code.
    This classic text comprehensive guide to object-oriented analysis and design, providing a detailed overview of the Unified Modeling Language (UML).
    Delves into the details of Executable UML (xUML), an extension of the widely-used Unified Modeling Language (UML) that adds executable semantics to its models.
    This influential book explores the domain-driven design approach, emphasizing the importance of aligning software design with the business domain.
    This approachable book provides a fun and engaging introduction to design patterns, making them accessible to developers of all levels.
    This timeless book offers insights into the challenges and complexities of software development, providing valuable lessons learned from the author's experiences at IBM.
    Combines agile principles with practical C# programming techniques, demonstrating how to apply agile methods to real-world software development projects.
    This comprehensive book introduces object-oriented programming concepts and techniques using the C# language, providing a solid foundation for beginners.

    Share

    Help others find this course page by sharing it with your friends and followers:

    Similar courses

    Here are nine courses similar to Advanced Object Oriented Analysis of Hard Problems using UML.
    Object-Oriented Design
    Most relevant
    UML and Object-Oriented Design Foundations
    Most relevant
    Software Development From A to Z - Beginner's Complete...
    Most relevant
    UML Class Diagrams for Software Engineering
    Most relevant
    Software Engineering: Modeling Software Systems using UML
    Most relevant
    Software Engineering: Implementation and Testing
    Most relevant
    Practice Java by Building Projects
    Making Your Java 8 Code More Object-oriented
    Software Engineering: Software Design and Project...
    Our mission

    OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

    Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

    Find this site helpful? Tell a friend about us.

    Affiliate disclosure

    We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

    Your purchases help us maintain our catalog and keep our servers humming without ads.

    Thank you for supporting OpenCourser.

    © 2016 - 2024 OpenCourser