 In this session, you will learn to:
     Create package diagrams
     Create component diagrams
     Create deployment diagrams
 Architectural modeling:
     Enables visualizing the physical distribution of components over the network of
      the organization.
     Determines if the design of components meets the requirements of the software
      system.
 Diagrams to model the architecture of software system are:
     Package diagram
     Component diagram
     Deployment diagram
 Package diagrams depict the various packages of a software system and the
  relationships among them.
 Advantages of using packages to model the constituents of a software system are:
     Enables visualizing the functional groups and the relationships among them.
     Facilitates easy management of large software systems.
 You can group use cases of a software system into packages based on the
  following rules:
     Group related use cases
     Group use cases based on the actors that use them
 You can package classes of a software system into packages based on the
  following criteria:
     Package classes that belong to the same inheritance hierarchy.
     Package classes that are related through composition relationship.
     Package classes that collaborate and interact with each other to realize use
      cases.
 Symbols used to set the visibility of constituents in packages are:
     +: Indicates that the constituent is public and, therefore, is accessible to the
      constituents of other packages.
     #: Indicates that the constituent is protected and, therefore, is accessible to the
      constituents that inherit it.
     -: Indicates that the constituent is private and, therefore, is not accessible to the
      constituents outside the package.
 Types of relationships between packages are:
     Access dependency relation
     Generalization relation
Package diagram for inventory management system.
                                        Tender                              Order



                                         Tender Class                        Order Class

                                    Tender Database Table            Order Database Table
    TenderPolicy



      + TenderRules Class

    + SupplierSelectionRules


                                                                     Parts
                                  Supplier
                                                              Parts Class                    <<Composition>>

                                   Supplier Class                                          PartSpecification

                               Supplier Database Table
                                                            ElectronicParts Class     AutomobileParts Class
 Components provide realization of a set of interfaces and form the executable parts
  of a software system.
 Components that you can model to form a complete software system are:
     Deployment components: Includes components that form the executable
      system.
     Work product components: Includes components that are the outcome of
      implementation phase of SDLC.
     Execution components: Includes components that are created when a system
      is executing.
 A component realizes a set of interfaces each of which specifies the functionality
  offered by a class.
 A class can also realize a set of interfaces.
 Techniques for modeling components are:
     Source code file modeling
     Executable file modeling
     Database modeling
 The various ways to visualize the source code components of the software system
  are:
     Group the source code files into packages and depict them in a package
      diagram.
     Draw component diagrams to visualize the relationship between the source
      code files of the system.
 Modeling executable files includes modeling the .exe, library, and database that
  comprise the system.
 Database modeling involves:
     Depicting the database table components using component diagrams.
     Depicting columns and stored procedures associated with each database table
      component.
 You draw deployment diagrams to visualize the hardware on which the software
  components need to be deployed.
 The various computer systems or processing devices on which components are
  deployed are called nodes.
 A node is represented as a 3-Dimensional rectangular box containing the
  components that execute within the node.
 Nodes are associated with each other by a connection, which represents a
  communication channel.
 You depict a communication channel among nodes by a straight line drawn
  between the communicating nodes.
 Dependency relationship between a node and a component is represented by using
  a dashed line.
 Which of the following diagrams is used to visualize the hardware on which the software
  components need to be deployed?
     1. Package diagram
     2. Component diagram
     3. Deployment diagram
     4. Interaction Overview diagram




 Answer:
      Deployment diagram
 A software architecture viewtype specifies the constituents that you may model in
  the architecture of a software system.
 Predefined viewtypes listed by UML are:
     Module viewtype: Specifies the modules that implement a specific
      functionality.
     Component and Connector (C&C) viewtype: Specifies a collection of the
      components each of which is an execution unit.
     Allocation viewtype: Specifies as a set of relationships between the
      components or modules of a software system with the development
      environment.
 In this session, you learned that:
     Architectural modeling is used to depict the physical constituents of a software
      system. The physical constituents consist of the components and nodes on
      which the components execute.
     The components of a software system can be modeled on the basis of different
      architectural viewtypes. The various viewtypes are the module viewtype,
      component and connector viewtype, and allocation viewtype.
     The artifacts that UML provides to enable architectural modeling are: package
      diagrams, component diagrams, and deployment diagrams.
     Packages are used to group the related constituents of a software system.
 Component diagrams are used to model the various components required for a
  system to execute.
 Deployment diagrams are used to depict the various nodes on which the
  components of a software system execute.

Chapter 9

  • 1.
     In thissession, you will learn to:  Create package diagrams  Create component diagrams  Create deployment diagrams
  • 2.
     Architectural modeling:  Enables visualizing the physical distribution of components over the network of the organization.  Determines if the design of components meets the requirements of the software system.  Diagrams to model the architecture of software system are:  Package diagram  Component diagram  Deployment diagram
  • 3.
     Package diagramsdepict the various packages of a software system and the relationships among them.  Advantages of using packages to model the constituents of a software system are:  Enables visualizing the functional groups and the relationships among them.  Facilitates easy management of large software systems.  You can group use cases of a software system into packages based on the following rules:  Group related use cases  Group use cases based on the actors that use them
  • 4.
     You canpackage classes of a software system into packages based on the following criteria:  Package classes that belong to the same inheritance hierarchy.  Package classes that are related through composition relationship.  Package classes that collaborate and interact with each other to realize use cases.
  • 5.
     Symbols usedto set the visibility of constituents in packages are:  +: Indicates that the constituent is public and, therefore, is accessible to the constituents of other packages.  #: Indicates that the constituent is protected and, therefore, is accessible to the constituents that inherit it.  -: Indicates that the constituent is private and, therefore, is not accessible to the constituents outside the package.
  • 6.
     Types ofrelationships between packages are:  Access dependency relation  Generalization relation
  • 7.
    Package diagram forinventory management system. Tender Order Tender Class Order Class Tender Database Table Order Database Table TenderPolicy + TenderRules Class + SupplierSelectionRules Parts Supplier Parts Class <<Composition>> Supplier Class PartSpecification Supplier Database Table ElectronicParts Class AutomobileParts Class
  • 8.
     Components providerealization of a set of interfaces and form the executable parts of a software system.  Components that you can model to form a complete software system are:  Deployment components: Includes components that form the executable system.  Work product components: Includes components that are the outcome of implementation phase of SDLC.  Execution components: Includes components that are created when a system is executing.  A component realizes a set of interfaces each of which specifies the functionality offered by a class.  A class can also realize a set of interfaces.
  • 9.
     Techniques formodeling components are:  Source code file modeling  Executable file modeling  Database modeling  The various ways to visualize the source code components of the software system are:  Group the source code files into packages and depict them in a package diagram.  Draw component diagrams to visualize the relationship between the source code files of the system.
  • 10.
     Modeling executablefiles includes modeling the .exe, library, and database that comprise the system.  Database modeling involves:  Depicting the database table components using component diagrams.  Depicting columns and stored procedures associated with each database table component.
  • 11.
     You drawdeployment diagrams to visualize the hardware on which the software components need to be deployed.  The various computer systems or processing devices on which components are deployed are called nodes.  A node is represented as a 3-Dimensional rectangular box containing the components that execute within the node.
  • 12.
     Nodes areassociated with each other by a connection, which represents a communication channel.  You depict a communication channel among nodes by a straight line drawn between the communicating nodes.  Dependency relationship between a node and a component is represented by using a dashed line.
  • 13.
     Which ofthe following diagrams is used to visualize the hardware on which the software components need to be deployed? 1. Package diagram 2. Component diagram 3. Deployment diagram 4. Interaction Overview diagram  Answer:  Deployment diagram
  • 14.
     A softwarearchitecture viewtype specifies the constituents that you may model in the architecture of a software system.  Predefined viewtypes listed by UML are:  Module viewtype: Specifies the modules that implement a specific functionality.  Component and Connector (C&C) viewtype: Specifies a collection of the components each of which is an execution unit.  Allocation viewtype: Specifies as a set of relationships between the components or modules of a software system with the development environment.
  • 15.
     In thissession, you learned that:  Architectural modeling is used to depict the physical constituents of a software system. The physical constituents consist of the components and nodes on which the components execute.  The components of a software system can be modeled on the basis of different architectural viewtypes. The various viewtypes are the module viewtype, component and connector viewtype, and allocation viewtype.  The artifacts that UML provides to enable architectural modeling are: package diagrams, component diagrams, and deployment diagrams.  Packages are used to group the related constituents of a software system.
  • 16.
     Component diagramsare used to model the various components required for a system to execute.  Deployment diagrams are used to depict the various nodes on which the components of a software system execute.