Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
10 ooad uml-13
1. Object-Oriented Analysis and Design Using UML
Objectives
In this session, you will learn to:
Create package diagrams
Create component diagrams
Create deployment diagrams
Ver. 1.0 Slide 1 of 21
2. Object-Oriented Analysis and Design Using UML
Introducing Architectural Modeling
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
Ver. 1.0 Slide 2 of 21
3. Object-Oriented Analysis and Design Using UML
Creating Package Diagrams
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
Ver. 1.0 Slide 3 of 21
4. Object-Oriented Analysis and Design Using UML
Creating Package Diagrams (Contd.)
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.
Ver. 1.0 Slide 4 of 21
5. Object-Oriented Analysis and Design Using UML
Creating Package Diagrams (Contd.)
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.
Ver. 1.0 Slide 5 of 21
6. Object-Oriented Analysis and Design Using UML
Creating Package Diagrams (Contd.)
Types of relationships between packages are:
Access dependency relation
Generalization relation
Ver. 1.0 Slide 6 of 21
7. Object-Oriented Analysis and Design Using UML
Depicting the Package Diagram for the IMS
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 AutomobileParts
Class Class
Ver. 1.0 Slide 7 of 21
8. Object-Oriented Analysis and Design Using UML
Creating Component Diagrams
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.
Ver. 1.0 Slide 8 of 21
9. Object-Oriented Analysis and Design Using UML
Creating Component Diagrams (Contd.)
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.
Ver. 1.0 Slide 9 of 21
10. Object-Oriented Analysis and Design Using UML
Creating Component Diagrams (Contd.)
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.
Ver. 1.0 Slide 10 of 21
11. Object-Oriented Analysis and Design Using UML
Creating Deployment Diagrams
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.
Ver. 1.0 Slide 11 of 21
12. Object-Oriented Analysis and Design Using UML
Creating Deployment Diagrams (Contd.)
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.
Ver. 1.0 Slide 12 of 21
13. Object-Oriented Analysis and Design Using UML
Just a minute
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
Ver. 1.0 Slide 13 of 21
14. Object-Oriented Analysis and Design Using UML
Identifying Software Architecture Viewtypes
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.
Ver. 1.0 Slide 14 of 21
15. Object-Oriented Analysis and Design Using UML
Demo: Architectural Modeling for the Bank ATM System
Problem Statement:
Janes Technology needs to create the architectural model for
the prototype of the InfoSuper bank ATM system. The
prototype will include only the cash withdrawal feature of the
InfoSuper bank ATM system. The project manager of Janes
Technology has identified the following classes, attributes, and
operations for the prototype of the InfoSuper bank ATM
system:
Class Operations Desciption
ATM Show() Displays the location and branch name of the ATM.
ATMCard GetPin() Accepts the PIN entered by the customer and
verifies it.
GetAccount() Fetches the account information based on the
card_ID and PIN.
SetPin(int)
Updates the PIN.
Ver. 1.0 Slide 15 of 21
16. Object-Oriented Analysis and Design Using UML
Demo: Architectural Modeling for the Bank ATM System (Contd.)
Class Operations Desciption
BankCustomer InsertCard() Prompts the customer to insert ATM card.
Select a transaction from a list of
SelectTransaction() transactions.
EnterPin() Prompts the customer to enter the PIN.
Invokes the PIN change request. The
ChangePin() bank customer enters the new PIN.
WithdrawCash() Invokes the cash withdrawal operation.
RequestTransactionSummary() Requests for the summary of the
transaction performed by the customer.
Account CalculateInterest() Calculates the interest for the account.
This is an abstract operation.
UpdateAccount() Updates the account information.
VerifiyWithdrawalAmount() Verifies if the amount to be withdrawn is
less than the account balance amount.
Ver. 1.0 Slide 16 of 21
17. Object-Oriented Analysis and Design Using UML
Demo: Architectural Modeling for the Bank ATM System (Contd.)
Class Operations Desciption
CurrentAccount CalculateInterest() Calculates the interest for the current
account.
SavingsAccount CalculateInterest() Calculates the interest for the savings
account.
Transaction getAccountBalance() Obtains the balance of the account.
StartTransaction() Initiates the transaction.
CancelTransaction Cancels the current transaction.
CardScanner AcceptCard() Accept/rejects the ATM card based on the
validation provided.
ReadCard() Reads the Card_Id associated with the
ATM card.
EjectCard() Ejects the ATM card.
Ver. 1.0 Slide 17 of 21
18. Object-Oriented Analysis and Design Using UML
Demo: Architectural Modeling for the Bank ATM System (Contd.)
Class Operations Desciption
DisplayScreen Prompt() Prompts the respective screen as per request.
AcceptInput() Accepts the required input on the displayed
screen.
CashDispenser SupplyCash() Supplies the verified amount as cash.
GenerateRecipt() Generates a receipt for the cash dispensed.
The project manager has also created the following class
diagram after identifying the classes and operations for the
prototype of the InfoSuper bank ATM system.
Ver. 1.0 Slide 18 of 21
19. Object-Oriented Analysis and Design Using UML
Demo: Architectural Modeling for the Bank ATM System (Contd.)
Solution:
To create the architectural view for the prototype of the ATM
system, you need to perform the following tasks:
Identify components and relationships among them.
Identify the nodes and their executable components.
Create a component diagram.
Create a deployment diagram.
Ver. 1.0 Slide 19 of 21
20. Object-Oriented Analysis and Design Using UML
Summary
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.
Ver. 1.0 Slide 20 of 21
21. Object-Oriented Analysis and Design Using UML
Summary (Contd.)
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.
Ver. 1.0 Slide 21 of 21
Hinweis der Redaktion
Initiate the session by explaining the session objectives to the students. Developing the design of a software system not only involves depicting the logical constituents, such as classes, objects, and interfaces but also depicting how the logical constituents are implemented in the system. The logical constituents are implemented to form the physical system that consists of components and nodes. A component realizes the static constituents of the system through a set of interfaces. A node typically represents a processor or a device on which a component is deployed. The logical constituents are analogous to the static and dynamic constituents of the software system. In architectural modeling, the emphasis is on depicting the physical system that realizes the logical constituents of the software system. When introducing architectural modeling to students, you should emphasize on the physical constituents that creates the complete software system. In addition, emphasize on the fact that you can start modeling the architecture of a software system when modeling the static constituents. This enables you to change the architecture of the software system according to the changes in the static model. Another advantage of modeling the software architecture is that the development team can follow a modular approach to develop software where the software is broken down into components.
Tell the students that the design of a software system should represent its software architecture. Software architecture depicts all the components of a software system and the relationships between these components. This helps a developer to visualize all the software components of the system. In addition, it helps the developer to identify the hardware on which these components need to be deployed. UML provides various diagrams that help depict the software architecture of a system. Explain the concept of architectural modeling and specify the UML diagrams that can be used for architectural modeling.
Explain the definition of a package. Also explain the various constituents of an application (use cases, classes, objects, interfaces, collaborations, components, applications, subsystems, UML diagrams) that can be organized by using packages. Explain the advantages of using packages to model the constituents of a software system. Explain the criteria based on which the use cases of a software system can be grouped into packages by using the example of the inventory management system given in the student guide.
Explain the criteria based on which the classes of a software system can be grouped into packages. Explain the UML notation for representing classes in a package by using the example of the inventory management system given in the student guide.
Explain the symbols used to represent the public, protected and private visibility of constituents in a package.
Explain the two types of relationships among packages by using the example of the inventory management system given in the student guide.
Explain how to create the package diagram for the inventory management system by using the figure given on the slide.
Explain the concept of components and the three types of components. Also explain the notation for a component. Explain the relationship among components, classes, and interfaces by using the example given in the student guide. Explain that a class may just implement a part of a function and not the complete function required in a software system. A class collaborates with other classes to implement a specific function.
Enumerate the techniques for modeling components. Explain source code file modeling by using the example of the inventory management system given in the student guide.
Explain executable file modeling by using the example of the inventory management system given in the student guide. Explain database modeling by using the example of the inventory management system given in the student guide.
Explain the use of a deployment diagram. Also explain the notation for depicting a node in a deployment diagram.
Explain the dependency relationship between an application server node and a database server component by using the example given on the slide. You can also discuss the various types of software systems that can be modeled using deployment diagrams such as: * Embedded systems: Represents a combination of computer hardware and software. The software logic is embedded in the hardware and control devices, such as displays and actuators. Deployment diagrams allow you to model the devices and processors that constitute an embedded system. * Client/server systems: You can model a client/server system by using deployment diagrams to visualize the components that execute on the client side and the components that execute on the server side. In addition, you can model how components communicate with each other when they are placed on different nodes across a system. * Distributed systems: You can model a distributed system by using deployment diagrams to depict the various components executing on different nodes at a specific point of time. A distributed environment has its nodes spread across different geographical locations and the components executing on a node may change with time. For example, a database table may be replicated across servers, moved from one server to another, or copied from one server to another.
Check the learning of the students by asking the question given on the slide.
Explain the definition of a software architecture viewtype. Explain the three predefined viewtypes listed by UML.
Explain the problem statement to the students.
Before starting the demo, you need to copy the required data file from the <<<<<<<PATH>>>>>>>>>> folder. The required data file’s name is Bank_ATM.vsd. Demonstrate the solution to the problem statement by following the steps given in the student guide. If you want to show students the final diagram that will be created after performing the demo, you can open the Bank_ATM.vsd file from the <<<<<<<PATH>>>>>>>>> folder. The demo does not repeat similar steps. However, you would be able to complete the diagram with the steps written in the demo.
Summarize the session by using the summary points given in the slide.
Summarize the session by using the summary points given in the slide.