The document discusses architectural modeling in object-oriented analysis and design using UML. It describes package diagrams, component diagrams, and deployment diagrams which are used to model the architecture of a software system. These diagrams enable visualizing the physical distribution of components, determining if the design meets requirements, and depicting the hardware on which software components are deployed.
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
Modeling is a common part of modern day software engineering practice. Little scientific evidence is known about how models are made and how they help in producing better software. In this talk Michel Chaudron presents highlights from a decade of research that he has performed in the area of software modeling using UML. Topics that will be addressed: What is the state of UML modeling in practice? What are effective techniques for assessing the quality of UML models? How do engineers look at UML models? Do UML models actually help in creating better software?
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
Design activity & its objectives – Function Oriented and Object Oriented Design- Modularization techniques - module structure and its representation, interface and information hiding, categories, specific techniques to accommodate change, stepwise refinement, top-down and bottom-up design - Handling anomalies.
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
Modeling is a common part of modern day software engineering practice. Little scientific evidence is known about how models are made and how they help in producing better software. In this talk Michel Chaudron presents highlights from a decade of research that he has performed in the area of software modeling using UML. Topics that will be addressed: What is the state of UML modeling in practice? What are effective techniques for assessing the quality of UML models? How do engineers look at UML models? Do UML models actually help in creating better software?
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
Design activity & its objectives – Function Oriented and Object Oriented Design- Modularization techniques - module structure and its representation, interface and information hiding, categories, specific techniques to accommodate change, stepwise refinement, top-down and bottom-up design - Handling anomalies.
topic : UML DIAGRAMS
content : Use Case Diagram
Class Diagram
Interaction diagram
Activity diagram
Case Study
details :
Use Case Diagram ::
1 Dynamic in nature.
2 It is used to model the system/subsystem of the application.
3 Built in early stage of development and developed by analyst
4 Involves interaction between user and system.
Class Diagram ::
1 Class diagram is a static diagram.
2 Class diagram used for different aspects of a system.
3 The class diagram describe the attributes and operations of a class.
4 It is also known as structural diagram.
Welcome to my series of articles on Unified Modeling Language. This is "Session 8 – Package Diagram" of the series.
Please view my other documents where I have covered each UML diagram with examples
Information System Concepts & Types of Information SystemsVR Talsaniya
Best slides on the information system concepts and to understand the types of information systems.
Best for the CA Final Students for Information System Control & Audit (ISCA) subject.
High protection ATM system with fingerprint identification technologyAlfred Oboi
This project was carried out at the College of Engineering, Design, Art and Technology, Makerere university Kampala Uganda
The main objective of this project was to come up with a more secure ATM system that will reduce on the ATM fraud.
Chapter 7 Design Architecture and Methodology1.docxmccormicknadine86
Chapter 7:
Design: Architecture and Methodology
1
Design Topics Covered
Architectural vs. detailed design
“Common” architectural styles, tactics, and reference architectures
Basic techniques for detailed design
Basic issues with user-interface design
2
Design
Starts mostly from/with requirements (evolving mostly from functionalities and other non-functional characteristics).
How is the software solution going to be structured?
What are the main components—(functional comp)?
Often directly from requirements’ functionalities
(use cases).
How are these components related?
Possibly re-organize the components (composition/decomposition).
Two main levels of design:
Architectural (high level)
Detailed design
How should we depict design—notation/language?
3
Relationship between Architecture and Design
Detailed Design
Comes from
Requirements &
Architecture
4
Software Architecture
Structure(s) of the solution, comprising:
Major software elements
Their externally visible properties
Relationships among elements
Every software system has an architecture.
May have multiple structures!
Multiple ways of organizing elements, depending on the perspective
External properties of components (and modules)
Component (module) interfaces
Component (module) interactions, rather than internals of components and modules
5
Views and Viewpoints
View – representation of a system structure
4+1 views (by Krutchen)
Logical (OO decomposition – key abstractions)
Process (run-time, concurrency/distribution of functions)
Subsystem decomposition
Physical architecture
+1: use cases
Other classification (Bass, Clements, Kazman)
Module
Run-time
Allocation (mapping to development environment)
Different views for different people
6
Architectural Styles/Patterns
Pipes and filters
Event driven
Client-server
Model-view-controller (MVC)
Layered
Database centric
Three tier
We discuss architectural styles/patterns as
“reusable” starting point for design activities.
7
Pipe-Filter Architecture Style
The high-level design solution is decomposed into two “generic” parts (filters and pipes):
Filter is a service that transforms a stream of input data into a stream of output data.
Pipe is a mechanism or conduit through which the data flows from one filter to another.
Input
time cards
Prepare for
check processing
Process checks
Problems that require batch file processing seem to fit this architecture: e.g., payroll, compilers, month-end accounting.
** Reminds one of DFD without the data store or source sink.**
8
Event Driven (Real Time)
The high-level design solution is based on an event dispatcher, which manages events and the functionalities that depend on those events. These have the following characteristics:
Events may be a simple notification or may include associated data.
Events may be prioritized or be based on constraints such as time.
Events may require synchronous or asynchronous processing.
Events may be “registered” ...
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
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
Editor's Notes
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.