Topic outline

  • Unit 3: Software Modeling

    Many people believe that good design is fundamental to creating successful software. The first step in software creation is to gather requirements. Notations like UML allow us to articulate complex ideas succinctly and precisely. Designing software requires using certain industry-standard design tools, and mastery of them is essential to becoming a capable software engineer.

    This unit will introduce you to UML, a standardized general-purpose modeling language for creating visual models of object-oriented software. This unit aims to give you a comprehensive understanding of UML, the five fundamental artifacts of UML, and modeling concepts, as well as the modeling concepts' relationships to the terms system, model, and view.

    Completing this unit should take you approximately 4 hours.

    • Upon successful completion of this unit, you will be able to:

      • explain object-oriented concepts such as abstraction, encapsulation, and inheritance;
      • interpret the context appropriate for main UML diagrams, including but not limited to structure diagrams, class diagrams, and component diagrams; and
      • apply different levels of abstraction at essential object-oriented modeling concepts to enable reusability and flexibility.
    • 3.1: Object-Oriented Concepts

      The following sections describe OO modeling for requirements analysis and then discuss the application of the OO analysis model to program design.

      • This is a complete overview of object-oriented programming with references to several object languages. As you watch the video, list each component of an object-oriented language and a brief descriptive statement. As you complete the sections on UML, note how each component is diagrammed.

      • This section covers basic object-oriented terms, including classes and objects, abstract data types (ADT) and encapsulation, whole or part and generalization or specification classes, inheritance and polymorphism, and messages.

    • 3.2: An Overview of UML

      The current version of UML is 2.5. Since version 2, point releases for updates have made UML simpler and more effective and removed outdated features and constructs.

      • UML is a modeling language used in requirements analysis, design, and programming. It is managed by the Object Management Group (OMG), which publishes updates to the UML as needed. Later versions of UML remove outdated diagrams, add new diagrams, update the syntax of diagrams, fix bugs, or increase the formality of the UML language to support the conversion of UML to a programming language, for example, Java. The semantics of the diagram types for products and behavior (also called "process and procedure", "static and dynamic", or "what and how") that correspond to OO object data and methods do not change.

      • A use case diagram documents a scenario or the flow of events and operations performed by a system or person. A component diagram documents the system hardware and software components. Study the examples in this section.

      • While the static diagrams (use case and component diagrams) pertain to a system, the dynamic diagrams (state, sequence, activity, and communication) pertain to key components or a single component for a state diagram. Study the examples in this section.

      • Unified Modeling Language (UML) is a graphical modeling language that provides the syntax for describing the major artifacts of software systems. UML supports all the phases of SDLC. It is used to build models that address all the software engineering activities and can be mapped to other process or data models used for the SDLC phases.

      • UML is managed as a de facto industry standard by the Object Management Group (OMG). This article reviews UML's history, definition, and main diagrams. Knowing something about the history of a software engineering topic helps us better understand the topic and its relevance for current and future use.

      • The lecture provides information to introduce UML as a tool for software engineers. This video includes a slide that depicts the two fundamental types of diagrams: structure and behavior. After watching the video, write a summary that addresses what UML is.

      • The lecture provides a discussion of the use case diagram in UML. Can you describe each component of a use case diagram? Is a use case a structure or behavior type of model representation in UML?

    • 3.3: UML Diagrams

      This section describes and illustrates commonly used UML diagrams with examples.

      • A diagram is the graphical presentation of a set of elements. UML has a lot of different diagrams. Make sure you can differentiate between different diagrams. Previous sections described UML diagrams; this section elaborates on them using examples.

      • This video gives an overview of state machines and the state diagram in UML. What is the purpose of the state diagram?

      • This video discusses class diagrams in UML. What is the purpose of the class diagram?

      • Watch this example of modeling. What is the purpose of an activity diagram? How would you create an activity diagram?

    • 3.4: Modeling Concepts

      The previous sections discussed UML diagrams in the context of analysis and design. This section moves to using UML diagrams for detailed design and programming, emphasizing UML as a modeling language, not just a documentation language.

      • The lecture discusses using UML for object-oriented design and programming.

      • Modeling is designing software applications before coding or implementing them in a particular programming language. A model is a representation or simplification of reality. Read about the main principles of modeling in this section. UML is used to model the products and activities of each SDLC phase.

    • Unit 3 Assessment

      • Take this assessment to see how well you understood this unit.

        • This assessment does not count towards your grade. It is just for practice!
        • You will see the correct answers when you submit your answers. Use this to help you study for the final exam!
        • You can take this assessment as many times as you want, whenever you want.