• Like
  • Save
10 ooad uml-13
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

10 ooad uml-13

  • 948 views
Published

 

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
948
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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.

Transcript

  • 1. Object-Oriented Analysis and Design Using UMLObjectives 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 UMLIntroducing 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 UMLCreating 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 UMLCreating 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 UMLCreating 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 UMLCreating 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 UMLDepicting 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 UMLCreating 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 UMLCreating 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 UMLCreating 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 UMLCreating 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 UMLCreating 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 UMLJust 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 UMLIdentifying 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 UMLDemo: 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 UMLDemo: 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 UMLDemo: 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 UMLDemo: 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 UMLDemo: 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 UMLSummary 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 UMLSummary (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