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.