The document discusses changes between UML 1.x and UML 2.0. It provides an overview of UML 2.0 including new diagram types like timing diagrams and changes to existing diagrams. Key changes noted are increased precision, modularity, and rationalization through removing redundant concepts. The document then covers specific diagram updates, including activity diagrams now able to model workflow and state machines able to model object state. Advanced class diagram relationships and interfaces are also reviewed.
The document discusses software evolution and maintenance. It outlines that software maintenance is important but poorly understood and performed. It discusses goals of understanding problems and applying good practices. Key issues covered are that systems, software knowledge, and maintenance processes need control. Metrics, documentation, and defined processes can help provide oversight and institutionalize knowledge about the system.
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
There is more to software life cycle than just software development. Software development happens once, then evolution takes up the bulk of the software life cycle. In this presentation, I will talk about some approaches needed to deal with legacy systems. This is to aid their update to new business and maintenance requirements in addition to their upgrade to continuous new technologies. Service oriented architecture will be presented to support software evolution in this fast, ever changing environment. Moreover, cloud computing that enables ubiquitous and on demand access to computing resources will be examined. Applied research, such as in health care and M2M domains, involving these innovative technologies will be presented to illustrate their benefits to the advancement of software engineering.
Here are the key differences between objects and classes in UML:
- Classes define the general characteristics (attributes and operations) that objects of that class will have. Objects are specific instances of a class.
- Classes are static definitions, while objects are dynamic instances of classes that exist at run time.
- In class diagrams, classes are represented as boxes containing the attributes and operations. Objects are represented as boxes with the class name followed by a colon and the object name (e.g. Person:John).
- Classes define the common properties for a set of objects, while each object is a unique instance of a class with its own identity and particular values for attributes.
- Classes are abstractions,
Software systems must evolve over time to remain useful as requirements, environments, and technologies change. There are several processes involved in software evolution, including software maintenance to fix bugs, adapt to new environments, or implement new functionality. Legacy system evolution requires assessing the business value and quality of the system to determine the best strategy, such as continuing maintenance, reengineering to improve maintainability, or replacing the system.
Object Modeling with UML: Behavioral Modelingelliando dias
This document provides an overview of a tutorial on behavioral modeling with the Unified Modeling Language (UML). The tutorial will cover three parts: interactions and collaborations, statecharts, and activity graphs. It discusses the goals of the tutorial, which are to explain what UML is and how to model large, complex systems using UML's basic constructs and diagramming techniques in an implementation-independent manner. The document also provides background information on UML, including its evolution, specification, language architecture involving its metamodel, and package structure.
The document discusses software evolution and maintenance. It outlines that software maintenance is important but poorly understood and performed. It discusses goals of understanding problems and applying good practices. Key issues covered are that systems, software knowledge, and maintenance processes need control. Metrics, documentation, and defined processes can help provide oversight and institutionalize knowledge about the system.
Software Evolution: From Legacy Systems, Service Oriented Architecture to Clo...PET Computação
There is more to software life cycle than just software development. Software development happens once, then evolution takes up the bulk of the software life cycle. In this presentation, I will talk about some approaches needed to deal with legacy systems. This is to aid their update to new business and maintenance requirements in addition to their upgrade to continuous new technologies. Service oriented architecture will be presented to support software evolution in this fast, ever changing environment. Moreover, cloud computing that enables ubiquitous and on demand access to computing resources will be examined. Applied research, such as in health care and M2M domains, involving these innovative technologies will be presented to illustrate their benefits to the advancement of software engineering.
Here are the key differences between objects and classes in UML:
- Classes define the general characteristics (attributes and operations) that objects of that class will have. Objects are specific instances of a class.
- Classes are static definitions, while objects are dynamic instances of classes that exist at run time.
- In class diagrams, classes are represented as boxes containing the attributes and operations. Objects are represented as boxes with the class name followed by a colon and the object name (e.g. Person:John).
- Classes define the common properties for a set of objects, while each object is a unique instance of a class with its own identity and particular values for attributes.
- Classes are abstractions,
Software systems must evolve over time to remain useful as requirements, environments, and technologies change. There are several processes involved in software evolution, including software maintenance to fix bugs, adapt to new environments, or implement new functionality. Legacy system evolution requires assessing the business value and quality of the system to determine the best strategy, such as continuing maintenance, reengineering to improve maintainability, or replacing the system.
Object Modeling with UML: Behavioral Modelingelliando dias
This document provides an overview of a tutorial on behavioral modeling with the Unified Modeling Language (UML). The tutorial will cover three parts: interactions and collaborations, statecharts, and activity graphs. It discusses the goals of the tutorial, which are to explain what UML is and how to model large, complex systems using UML's basic constructs and diagramming techniques in an implementation-independent manner. The document also provides background information on UML, including its evolution, specification, language architecture involving its metamodel, and package structure.
Maintenance is inevitable as software systems must evolve to adapt to changing needs and environments over time. While new development techniques may improve quality, they do not eliminate the need for maintenance, which accounts for a large portion of total costs in software engineering. Maintenance is challenging due to missing information and the need for backward compatibility, but it is not inherently boring and can provide interesting problems to solve. Changing the cultural perception of maintenance as punishment or of legacy systems as inferior is needed.
Software maintenance involves modifying software after delivery to correct faults, improve performance, or adapt to changes. It aims to enhance understandability and modifiability. Key activities that improve maintainability are establishing standards, high-quality design and documentation, and configuration management to track changes. Successful maintenance requires managerial processes like change control boards to review requests and quality assurance to validate changes.
This document discusses software maintenance. It defines maintenance as modifying software after delivery to fix bugs, improve performance, or adapt to changes. Approximately 70% of software costs are for maintenance. Maintainability refers to how easy software is to correct, adapt, or enhance. Common maintenance types are corrective, adaptive, and perfective. Proper documentation and design are important to reduce maintenance costs and issues like degraded structure over time.
This document discusses software maintenance. It defines software maintenance as modifying software after delivery to correct faults, improve performance, or change attributes. The document then discusses reasons for maintenance like changing requirements or fixing errors. It outlines different maintenance types including corrective, adaptive, perfective and preventive maintenance. The document also examines maintenance models such as quick-fix, iterative enhancement, full-reuse, Boehm's model and Taute's model.
Following presentation answers:
- Why do we need evolution?
- What happens if we do not evolve the software?
- What are the types of software evolution?
- What are Lehman's laws
- What are the strategies for evolution?
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
The document discusses programming in UML using the Foundational UML (fUML) standard and the Action Language for fUML (Alf). It provides an overview of fUML and Alf, which define an executable subset of UML and a textual action language for specifying behaviors in UML models. The document uses a motivating example of an e-commerce ordering system to illustrate key concepts of executable UML including activities, actions, structure, and asynchronous communication.
Information systems development methodologies (autosaved)Vaska Shefteroska
This document provides an overview and comparison of several information systems development methodologies: Spiral Model, Incremental Development, Prototype Model.
It describes the key characteristics of each model, including their phases, advantages, and disadvantages. Spiral model emphasizes risk assessment and minimizing risks. Incremental development divides a project into smaller parts to demonstrate early results. Prototype model builds prototypes to understand requirements through user feedback.
A comparison table outlines when each model is most appropriate based on factors like system type, project size, requirements, and team experience. The conclusion states that selecting the right methodology depends on a project's specific needs, and following a process is important for success.
No matches found
What is C A on DOB = Appt Date?
Clients Appointments
Joins
Service Appt Date
Nails 5/1/2013
Hair 7/5/2013
Hair 9/1/2013
Name Phone Address DOB
Anna 215-123-4567 123 City
Lane
8/14/1995
Nathan 267-333-4444 999 Oak
Blvd
6/1/1998
What is C A on DOB = Appt Date ?
Clients Appointments
second iteration: find every appointment with an Appt Date of 6/1/1998
Joins
Service Appt Date
Nails 5/1/2013
Discuss about the system development methodologies with brief introduction and some main methodologies. Each and every methodology describe the Basic Principle, Strengths, Weaknesses, Situations where most appropriate and Situations where least appropriate with diagrams.
This document discusses software evolution visualization (SEV). It begins by introducing software visualization and how information visualization techniques can be applied to software. SEV aims to facilitate software comprehension by visualizing how software systems evolve over time. The document reviews the state of the field, including common data sources, metrics, perspectives, strategies, and goals of SEV research. It also presents examples of SEV tools and discusses challenges in the area, such as evaluating SEV approaches. Finally, it outlines the goals of the author's own SEV research group, which are to help developers build InfoVis tools and help analysts use such tools for software maintenance.
The document provides an introduction to database management systems (DBMS) and database models. It defines key terms like data, database, DBMS, file system vs DBMS. It describes the evolution of DBMS from 1960 onwards and different database models like hierarchical, network and relational models. It also discusses the roles of different people who work with databases like database designers, administrators, application programmers and end users.
Information Systems Analysis and Design Overview of OOAD, UML, and RUPDang Tuan
The document provides an overview of object-oriented analysis and design (OOAD), the Unified Modeling Language (UML), and the Rational Unified Process (RUP). It discusses key OO concepts like classes, objects, encapsulation, inheritance, and polymorphism. It also outlines the phases and disciplines of RUP, including inception, elaboration, construction, and transition. Iterative development and UML diagrams like use cases and class models are presented as core parts of the OO analysis and design methodology.
The document discusses the Unified Modeling Language (UML) which is a general-purpose modeling language used to visualize, specify, construct, and document software systems. UML uses graphical notation to represent the design of software projects including concepts like use case diagrams, class diagrams, sequence diagrams, and more. It provides a standard way to visualize a system from different perspectives including structural and behavioral views.
UML (Unified Modeling Language) is a standard modeling language used to visualize, specify, construct, and document software systems. It uses graphical notation to depict systems from initial design through detailed design. Common UML diagram types include use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state machine diagrams. UML provides a standard way to communicate designs across development teams and is supported by many modeling tools.
This document discusses relational database design and normalization. It outlines two major design approaches: top-down design which develops a conceptual model like an ER diagram and maps it to relational schemas, and bottom-up design which uses normalization to iteratively decompose relations. The document then describes how to map different ER model concepts like entities, attributes, and relationships to relational schemas. It also discusses functional dependencies, normalization forms, and how normalization can be used to remove redundancies and anomalies from relational schemas.
The document discusses relational database management systems and their advantages over traditional file processing systems. It describes some key disadvantages of file processing systems like data redundancy, difficulty in accessing data, integrity problems, and security issues. It then explains some core components and concepts of relational database management systems like data independence, data models, entity-relationship diagrams, relational algebra, relational calculus, SQL, and integrity constraints. The document provides an overview of relational database management systems and their design and querying capabilities.
The document describes a Service Network Analysis and Prediction Tool (SNAPT) developed by researchers at the University of Crete. SNAPT allows users to (1) model service networks graphically showing the relationships between business entities and services, (2) assign key performance objectives to services, and (3) extract initial draft business process models from the service network models. The tool is meant to bridge the gap between business-level and IT-level perspectives on analyzing and optimizing inter-organizational service networks.
Sql server ___________session 1(sql 2008)Ehtisham Ali
The document discusses the new features of SQL Server 2008. It describes enhancements to the data platform, including support for diverse data sources and spatial data. New features were added to SQL Server Analysis Services, Integration Services, and Reporting Services to improve business intelligence. The SQL Server 2008 Management Studio saw improvements like IntelliSense, multi-server querying, object searching, and enhanced monitoring tools.
NTT Data Intra-Mart Corporation released its 2022 Winter update information for its intra-mart Accel Platform and Accel Series products. The update added support for data repository functions to link application data to entities, improved the IM-Workflow management screen, and provided new Accel Studio templates. It also included enhancements to the debugging tools for IM-BloomMaker and changes to the IM-Workflow list display screens. The updates aim to improve data management across products and enhance the development experience.
UML2ClearQuest is an application that eases the process of programming ClearQuest Designer's state transition matrices for change requests. It allows exporting UML state charts created in Visio or StarUML to ClearQuest Designer. This simplifies the visual design process. UML2ClearQuest supports transferring UML diagrams to new or existing entities in ClearQuest schemas. It analyzes the UML syntax for compatibility with ClearQuest and previews the resulting transition matrix before importing.
Maintenance is inevitable as software systems must evolve to adapt to changing needs and environments over time. While new development techniques may improve quality, they do not eliminate the need for maintenance, which accounts for a large portion of total costs in software engineering. Maintenance is challenging due to missing information and the need for backward compatibility, but it is not inherently boring and can provide interesting problems to solve. Changing the cultural perception of maintenance as punishment or of legacy systems as inferior is needed.
Software maintenance involves modifying software after delivery to correct faults, improve performance, or adapt to changes. It aims to enhance understandability and modifiability. Key activities that improve maintainability are establishing standards, high-quality design and documentation, and configuration management to track changes. Successful maintenance requires managerial processes like change control boards to review requests and quality assurance to validate changes.
This document discusses software maintenance. It defines maintenance as modifying software after delivery to fix bugs, improve performance, or adapt to changes. Approximately 70% of software costs are for maintenance. Maintainability refers to how easy software is to correct, adapt, or enhance. Common maintenance types are corrective, adaptive, and perfective. Proper documentation and design are important to reduce maintenance costs and issues like degraded structure over time.
This document discusses software maintenance. It defines software maintenance as modifying software after delivery to correct faults, improve performance, or change attributes. The document then discusses reasons for maintenance like changing requirements or fixing errors. It outlines different maintenance types including corrective, adaptive, perfective and preventive maintenance. The document also examines maintenance models such as quick-fix, iterative enhancement, full-reuse, Boehm's model and Taute's model.
Following presentation answers:
- Why do we need evolution?
- What happens if we do not evolve the software?
- What are the types of software evolution?
- What are Lehman's laws
- What are the strategies for evolution?
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
The document discusses programming in UML using the Foundational UML (fUML) standard and the Action Language for fUML (Alf). It provides an overview of fUML and Alf, which define an executable subset of UML and a textual action language for specifying behaviors in UML models. The document uses a motivating example of an e-commerce ordering system to illustrate key concepts of executable UML including activities, actions, structure, and asynchronous communication.
Information systems development methodologies (autosaved)Vaska Shefteroska
This document provides an overview and comparison of several information systems development methodologies: Spiral Model, Incremental Development, Prototype Model.
It describes the key characteristics of each model, including their phases, advantages, and disadvantages. Spiral model emphasizes risk assessment and minimizing risks. Incremental development divides a project into smaller parts to demonstrate early results. Prototype model builds prototypes to understand requirements through user feedback.
A comparison table outlines when each model is most appropriate based on factors like system type, project size, requirements, and team experience. The conclusion states that selecting the right methodology depends on a project's specific needs, and following a process is important for success.
No matches found
What is C A on DOB = Appt Date?
Clients Appointments
Joins
Service Appt Date
Nails 5/1/2013
Hair 7/5/2013
Hair 9/1/2013
Name Phone Address DOB
Anna 215-123-4567 123 City
Lane
8/14/1995
Nathan 267-333-4444 999 Oak
Blvd
6/1/1998
What is C A on DOB = Appt Date ?
Clients Appointments
second iteration: find every appointment with an Appt Date of 6/1/1998
Joins
Service Appt Date
Nails 5/1/2013
Discuss about the system development methodologies with brief introduction and some main methodologies. Each and every methodology describe the Basic Principle, Strengths, Weaknesses, Situations where most appropriate and Situations where least appropriate with diagrams.
This document discusses software evolution visualization (SEV). It begins by introducing software visualization and how information visualization techniques can be applied to software. SEV aims to facilitate software comprehension by visualizing how software systems evolve over time. The document reviews the state of the field, including common data sources, metrics, perspectives, strategies, and goals of SEV research. It also presents examples of SEV tools and discusses challenges in the area, such as evaluating SEV approaches. Finally, it outlines the goals of the author's own SEV research group, which are to help developers build InfoVis tools and help analysts use such tools for software maintenance.
The document provides an introduction to database management systems (DBMS) and database models. It defines key terms like data, database, DBMS, file system vs DBMS. It describes the evolution of DBMS from 1960 onwards and different database models like hierarchical, network and relational models. It also discusses the roles of different people who work with databases like database designers, administrators, application programmers and end users.
Information Systems Analysis and Design Overview of OOAD, UML, and RUPDang Tuan
The document provides an overview of object-oriented analysis and design (OOAD), the Unified Modeling Language (UML), and the Rational Unified Process (RUP). It discusses key OO concepts like classes, objects, encapsulation, inheritance, and polymorphism. It also outlines the phases and disciplines of RUP, including inception, elaboration, construction, and transition. Iterative development and UML diagrams like use cases and class models are presented as core parts of the OO analysis and design methodology.
The document discusses the Unified Modeling Language (UML) which is a general-purpose modeling language used to visualize, specify, construct, and document software systems. UML uses graphical notation to represent the design of software projects including concepts like use case diagrams, class diagrams, sequence diagrams, and more. It provides a standard way to visualize a system from different perspectives including structural and behavioral views.
UML (Unified Modeling Language) is a standard modeling language used to visualize, specify, construct, and document software systems. It uses graphical notation to depict systems from initial design through detailed design. Common UML diagram types include use case diagrams, class diagrams, sequence diagrams, activity diagrams, and state machine diagrams. UML provides a standard way to communicate designs across development teams and is supported by many modeling tools.
This document discusses relational database design and normalization. It outlines two major design approaches: top-down design which develops a conceptual model like an ER diagram and maps it to relational schemas, and bottom-up design which uses normalization to iteratively decompose relations. The document then describes how to map different ER model concepts like entities, attributes, and relationships to relational schemas. It also discusses functional dependencies, normalization forms, and how normalization can be used to remove redundancies and anomalies from relational schemas.
The document discusses relational database management systems and their advantages over traditional file processing systems. It describes some key disadvantages of file processing systems like data redundancy, difficulty in accessing data, integrity problems, and security issues. It then explains some core components and concepts of relational database management systems like data independence, data models, entity-relationship diagrams, relational algebra, relational calculus, SQL, and integrity constraints. The document provides an overview of relational database management systems and their design and querying capabilities.
The document describes a Service Network Analysis and Prediction Tool (SNAPT) developed by researchers at the University of Crete. SNAPT allows users to (1) model service networks graphically showing the relationships between business entities and services, (2) assign key performance objectives to services, and (3) extract initial draft business process models from the service network models. The tool is meant to bridge the gap between business-level and IT-level perspectives on analyzing and optimizing inter-organizational service networks.
Sql server ___________session 1(sql 2008)Ehtisham Ali
The document discusses the new features of SQL Server 2008. It describes enhancements to the data platform, including support for diverse data sources and spatial data. New features were added to SQL Server Analysis Services, Integration Services, and Reporting Services to improve business intelligence. The SQL Server 2008 Management Studio saw improvements like IntelliSense, multi-server querying, object searching, and enhanced monitoring tools.
NTT Data Intra-Mart Corporation released its 2022 Winter update information for its intra-mart Accel Platform and Accel Series products. The update added support for data repository functions to link application data to entities, improved the IM-Workflow management screen, and provided new Accel Studio templates. It also included enhancements to the debugging tools for IM-BloomMaker and changes to the IM-Workflow list display screens. The updates aim to improve data management across products and enhance the development experience.
UML2ClearQuest is an application that eases the process of programming ClearQuest Designer's state transition matrices for change requests. It allows exporting UML state charts created in Visio or StarUML to ClearQuest Designer. This simplifies the visual design process. UML2ClearQuest supports transferring UML diagrams to new or existing entities in ClearQuest schemas. It analyzes the UML syntax for compatibility with ClearQuest and previews the resulting transition matrix before importing.
The document summarizes a MuleSoft meetup that took place in Warsaw, Poland on January 23rd, 2019. The meetup agenda included introductions, an introduction to DataWeave 2.0 focusing on map, filter and reduce functions, examples and use cases of these functions, and a Q&A session. The speaker was introduced and details were provided on organizing future meetups and providing feedback.
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
This document discusses agile modeling using Visual Studio 2010 Ultimate and Feature Pack 2. It provides an overview of UML and modeling capabilities in VS 2010, including diagram types. It then discusses agile development and modeling approaches, including modeling problems that can arise and how agile modeling seeks to address these. Finally, it demonstrates an example agile modeling workflow using VS 2010 capabilities.
This document provides an introduction to domain-driven design (DDD). It discusses using DDD to model an activity tracking system, including defining entities, value objects, services and other DDD patterns. The benefits of DDD include having a rich domain model and avoiding procedural code and boilerplate. In contrast, traditional object-oriented design can result in anemic domain models and more complex code over time.
Pratik DilipKambe has over 15 months of experience working as a Teamcenter engineer. He has expertise in various areas of Teamcenter including user level activities, administration, data modeling, installation, and customization using APIs. Some of his projects include integrating Teamcenter with AutoCAD, creating custom workflow handlers, and adding new functionality to the Rich Application Configuration. He is looking for a challenging engineering position where he can continue developing his Teamcenter and programming skills.
This document describes an integrated structural steel workflow between Plant 3D, Revit, Robot Structural Analysis, and Advance Steel. Key points:
1. A steel structure is created in Plant 3D and exported to Advance Steel using an SMLX file.
2. In Advance Steel, the structure is imported and optimized by defining member roles. An updated SMLX file is exported.
3. The SMLX file is imported into Revit and Robot for analysis. Robot is used to analyze and optimize the structure, then results are sent back to Revit.
The document discusses system operation contracts, which describe detailed system behavior in terms of state changes to objects in the domain model after a system operation executes. An example contract for the "enterItem" system operation is provided, with sections for the operation name and parameters, preconditions, and postconditions describing how the states of domain model objects will change. Writing contracts can lead to enhancements of the domain model. Contracts provide more detail than use cases about required state changes.
The document discusses the Unified Modeling Language (UML) and its history, purpose, key concepts including objects, structure, behavior, building blocks, common mechanisms, and architectural views. UML provides a standard visual language for specifying, constructing, and documenting software systems using object-oriented concepts and allows modeling of a system's static structure and dynamic behavior. The architecture in UML is defined using four main views (logical, process, implementation, and deployment) plus a fifth use case view that forms the basis for the other views.
UML2ClearQuest is a tool that converts UML diagrams into ClearQuest's state transition matrices. It supports importing UML state charts from IBM Rational Software Architect, MS Visio, and StarUML. The tool validates the UML diagrams and previews the resulting ClearQuest state machine. Exporting updates ClearQuest schemas. The tool helps reduce the time and errors associated with manually programming ClearQuest state machines. It is part of the Rational Tools project from CM-Consult, which provides IBM Rational consulting services and complementary software solutions.
The document discusses UML component diagrams. It defines a component as a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes interfaces. It describes how component diagrams show the various components in a system and their dependencies. It outlines the purpose of component diagrams as visualizing components, constructing executables through forward and reverse engineering, and describing component organization and relationships.
SQL Server Workshop for Developers - Visual Studio Live! NY 2012Andrew Brust
Here are the key enhancements to the OVER clause in SQL Server 2012:
- Ability to specify both PARTITION BY and ORDER BY clauses, allowing window functions to operate over ordered partitions of data. This enables more advanced windowing scenarios.
- New window frame specifications - RANGE and ROWS, which allow window functions to consider rows before and/or after the current row within the partition. This enables window functions like moving averages.
- Ability to use window functions with aggregate functions like SUM(), COUNT(), etc. This allows calculations like cumulative sums within partitions.
- Performance improvements for window functions through optimizations like push-down of predicates and better parallelization.
So in summary, SQL Server 2012 significantly expands the
RPA Summer School Studio Session 4 AMER: Advanced practices with Studio and O...Diana Gray, MBA
In this session we will learn all about email automation, advanced selectors and error handling with UiPath Studio.
Agenda:
-Send Email using Automation
-Basic String Manipulation
-Date Formatting
-Advanced selectors
-Debugging and error handling in Studio
-Leveraging Orchestrator Assets
-Making use of Orchestrator Queues
-How to publish a project in Studio
-Deployment to Orchestrator
-Demo - follow-along
Your trainers:
👩🏽💻 Priya Darshini, 3X UiPath MVP 2022, RPA Solution Architect
Die Neuheiten in MariaDB 10.2 und MaxScale 2.1MariaDB plc
MariaDB Server 10.2 and MariaDB MaxScale 2.1 introduce several new features for analytics, JSON processing, replication, database compatibility, storage engines, security, administration, and performance. Key additions include window functions, common table expressions, JSON and GeoJSON functions, delayed replication, CHECK constraints, security enhancements, and optimizations to improve scalability, encryption, and query handling.
The document provides instructions for a software design specification (SDD) project. It asks the student to design an SDD for a bed and breakfast software system based on previous analysis models. The SDD should include:
1) An updated data model and architectural context diagram from the previous project
2) A software interface description, including a graphical user interface design and information flow description
3) An updated data flow diagram to illustrate the major processes to implement functionality
The SDD will form the basis for subsequent projects to develop and test the software system.
UMLassure: An approach to model software securitymanishthaper
This document presents a UML profile called UMLassure that can be used to model security requirements in software systems. UMLassure extends UML with stereotypes and tagged values to represent security concepts like cross-site scripting and SQL injection. The profile helps automate the translation of non-functional security requirements from design artifacts into code. An example application demonstrates how UMLassure can be used to model threats and avoid vulnerabilities in a case study.
Jazz - Collaborative Software Developmentmanishthaper
IBM Jazz is a platform for collaborative software development that allows teams to track and manage software artifacts, plan iterations, and change workloads dynamically. The presentation provided an introduction to IBM Jazz and its terminology, tutorials on using Rational Team Concert for collaborative development, and a discussion of pursuing Jazz as a course project or contributing to the Jazz community. Key products built on the Jazz platform include Rational Team Concert, Rational Quality Manager, and Rational Requirements Composer.
The document discusses using Model Driven Architecture (MDA) to reengineer legacy software systems in a more automated way compared to traditional reengineering approaches. MDA provides platform independent and specific models that can be used to generate code for different platforms, formalizing the mapping of services between source and target platforms. Several papers are referenced that propose techniques for static and dynamic analysis of code to generate UML models as part of the reengineering process using MDA.
The document provides a progress report for an iPhone-based healthcare diagnostic device project. It discusses the circuit design, application development, and next steps. Key points:
- A sensor to measure physiological parameters like temperature has been designed. An application to process and visualize data on the iPhone simulator was also completed.
- Outstanding issues include connecting the sensor to the iPhone and testing the hardware.
- The project timeline was extended by two weeks. Acceptance review is scheduled for January 17.
- Next steps are to test the sensor-iPhone connection in a future SDK release and add contact management features to the application.
This document provides a progress report for an iPhone-based healthcare solution project. It summarizes the project objectives, agenda, overview, team members and their tasks, outstanding risks and issues, budget/schedule, next acceptance review, and next steps. The 4-member team has designed a temperature sensor circuit and developed a working iPhone application prototype. Open issues include connectivity between the sensor and iPhone and hardware resource limitations. The next phase will focus on storage, contacts, and testing data transfer between sensor and iPhone.
This document summarizes information about an Indian condom manufacturing company. It establishes that the company was founded in 2003 and is a leading manufacturer with 15% market share in India. The company's mission is to make sexual wellbeing products as socially acceptable as other daily products. Its goals include increasing market share in India and globally. The document outlines the company's expansion plans, R&D initiatives to differentiate its products, and plans to enter the Brazilian market through a joint venture.
Transformation of work with Information Technologymanishthaper
The document summarizes the transformation of work and employment from the 1920s to the present. It discusses how employment has shifted from agriculture to manufacturing and services. While manufacturing jobs have declined in most advanced countries, de-industrialization happened at different rates depending on each nation's policies. The structure of employment has polarized, with job growth at the top and bottom but a decline in middle-income jobs. New technologies have created new divisions of labor between humans and computers and among different types of human work.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
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!
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
1. UML 2.0 Changes
IT 792 – Model Driven Architecture
Weekly meeting: 01-Sept-2008
2. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)2
Disclaimer
• The UML 2.0 specification is huge and rich
• This presentation is NOT intended to be a detailed UML
2.0 specification… it’s only an early attempt
• This presentation will focus on the “end user” perspective
of changes in UML 2.0 – the meta-model changes may
be left out
• This presentation has been prepared for intra-team
session. Only for academic purpose. As part of course
“IT792 – MDA (research elective)” offered during Fall
2008 by Prof. Chandrashekar Ramanathan. International
Institute of Information Technology, Bangalore.
3. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)3
“Take away” from this presentation
• Inclusions
UML 1.x concepts
• Code samples generated in UML 1.x
UML 2.0
• Requirement for a new standard
• Existing, enhanced and new diagrams.
Resources {books, web links, tools and other
references}
• A few presumptions
UML 1.x concepts
4. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)4
http://lh6.ggpht.com/_rY4Kf26lJ4U/Rqg8JQLUvdI/AAAAAAAAACU/0uAVE0KE1Bw/Evolution.jpg
Model – outcome++
Acknowledgement++
OOAD – class modeling Grady Booch
OOSE – use cases, transition
diagrams, and interaction
Ivar Jacobson
OMT – notation for diagrams,
dynamic quality of software
James Rumbaugh
10 -15 years… OOAD+OOSE+OMT
= Standardized development
language
Grady Booch, Ivar Jacobson and James
Rumbaugh @ Rational Software
UML 1.x (1997) 2.0 (2004)
2.1.2 (Latest specification)
Standardisation by OMG – Object
Management Group
++
References: Learning UML 2.0 (O’reilly) and www.omg.org
6. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)6
Larger landscape of systems design+
+
• Where it has been introduced originally
UML 1.x
• Diagram types
– Use case – interactions between system and user
– Activity – sequential and parallel activities within your system
– Class – classes, types, interfaces, relationships
– Object – instances of classes defined in class diagram
– Sequence – interactions between system where timing is
important
– Communication* – way in which objects interact, similar to
sequence {* renamed in UML 2.0, originally Collaboration}
– State machine – various states of an object, events, change
condition
– Deployment – how system is deployed in real
++ -
quoted from Learning UML 2.0 {Russ and Kim, O’Reilly}.
First edition – April 2006, Indian reprint – January 2007.
7. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)7
Larger landscape of systems design+
+
• What has been introduced originally
UML 2.0
• Diagram types
– Timing – interactions between object where timing is important
– Composite structure – internals of a class or component, and
can describe class relationship
– Component* – important components within system and the
interfaces they used to interact with each other. {* UML 1.x, takes
a new meaning in UML 2.0, originally Collaboration}
– Package – hierarchical organization of groups of classes and
components
++ -
quoted from Learning UML 2.0 {Russ and Kim, O’Reilly}.
First edition – April 2006, Indian reprint – January 2007.
9. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)9
New in UML 2.0
• Highlights of UML 2.0++
Increased degree of precision – more automation,
less ambiguity. Computer programs generating
models.
Increased modularity - eases understanding for new
users, and better for proficient.
Flexible hierarchies added by OMG – ease in
modeling complex system.
RCC (Rationalization + clarification + consolidation) -
remove redundant, enhance, and refine.
++
- Reference: “What’s New in UMLTM
2.0 ?” by Bran Selic
IBM Canada. April 2005.
13. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)13
Activity diagram (4+1 Process View)
• Use case – what system should do.
• Activity diagram – how system should
accomplish the goal.
Activity diagrams are good at modeling ‘Business
processes’
14. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)14
Activity diagram[1] – how it looks
Actions – important
steps in activity.
Edge types –
incoming / outgoing
Node – start / end
Diamond – decision /
merge
15. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)15
Activity diagram[1] - Activity and
action
Action – Lather, Rinse, Dry
Activity name – Wash Car
Don’t mistake ‘Activity’ with ‘Action’.
Action is a step in overall activity
Note: Activity frame can be omitted
16. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)16
Activity diagram[1] - Decisions
Guard conditions – if then else condition e.g.
[authorized] or [not authorized].
Only one edge is followed based on what condition
evaluates to TRUE.
17. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)17
Activity diagram[1] – Avoid multiple
guard condition evaluating TRUE
• Beware where multiple guard evaluate to TRUE
[item in stock] or [item out of
stock] and [rush order]
18. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)18
Activity diagram[1] – Merges –
better be clear as much as possible:
UML 2.0
19. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)19
Activity diagram[1] – multiple task at
same time
Fork Join
Computer assembly shows how “forks” and “joins” work
in a complete activity diagram
20. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)20
Activity diagram[1] – time events
Representing a recurring event e.g. Update Progress
Bar every 1 second.
Hour glass – represent Time Event, and text on top of it
represents wait time. e.g. Wait for 3 days before Send
Bill after Ship Order.
21. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)21
Activity diagram[1] – calling
activities or showing object
Pitchfork – To represent calling
other activity
Object node – Use object node to show an
activity flowing through an activity. Object
interactions, creation, modification or usage.
22. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)22
Activity diagram[1] – showing
Actions input and output
An Order object is input to Approve Payment action and
output from Receive Order Request
An input or output pin.
23. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)23
Activity diagram[1] – when an action
need only a part of object
Here, Approve payment action only need ‘Cost’ object as an
input from a ‘Order’ object.
Cost object is received using <<transformation>> to specify –
Only Cost from Order object.
24. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)24
Activity diagram[1] – showing how
object change state during an
activity
Object ‘Order’ change state during an activity. Object state
change from [pending] to [approved]
25. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)25
Activity diagram[1] – showing input
and output from an Activity
Above, Order object is input and output from Approve Payment
activity.
Note: When input and output are shown then initial and final
node are omitted.
26. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)26
Activity diagram[1] – sending and
receiving signals
Example:
• Sending Credit Card details to card provider.
• Collecting response from credit card provider. Based on response ie. approved or
denied order status may be shipped or delayed.
Receive Response as start node. In this case Initial node
may be omitted.
27. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)27
Activity diagram[1] – interrupting an
Activity
Interrupting event shown with a “Lightning bolt
arrow”.
Interruption region is shown by a dashed, rounded rectangle
around action which can be interrupted.
Diagram means – If Receive Cancellation is received while
Process Order is active, then interrupt activity and Cancel Order.
28. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)28
Activity diagram[1] – ending a flow
Flow Final Node, a flow final node terminates its
path only – not the whole activity
Note: Be careful when using flow final node after a fork. When a
flow final node is reached, then all process are terminated
including all processes running before node. If you like to run all
forked process to run to completion, make sure to add a join.
31. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)31
Managing complex Activity Diagrams
– connectors [1]
Connector – they come in pair
Note: If large number of different connectors are used, it can find
reader hard time pairing them.
32. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)32
Managing complex Activity Diagrams
– expansions [1]
Expansion region – large dashed rectangle with four aligned
boxes on either side.
Usage – expansion regions show that action is performed for
each item in an input collection. e.g. Each bug report is
discussed, if bug is [real bug] then activity proceeds,
otherwise bug is discarded and flow for that input ends.
34. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)34
Advanced Class Diagrams[1] – class
relationships
35. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)35
Advanced Class Diagrams[1] –
multiple inheritance
Note: Though UML supports multiple inheritance, however
in practice many don’t. e.g. Java, C#.
Reason: such as addEntry(…) is present in both parent
classes, so function call need resolution rules. And rules
change from language to language.
36. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)36
Advanced Class Diagrams[1] –
multiple inheritance
url – attribute not NULL
Rating – never less than 0
updateRating(…) – precondition {rating>=0}
Range specifier – “0 <= rating <= 5”
37. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)37
Advanced Class Diagrams[1] –
abstract class
Abstract class – does not implement all
methods
Notation:
Methods – written in italics
Class name – written in italics
38. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)38
Advanced Class Diagrams[1] –
abstract class
BlogStore inherits Store, implements
abstract methods “ store(…) and
retrieve(…)”
39. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)39
Advanced Class Diagrams[1] –
interface
Interface – does not implement any
methods.
C++ using abstract classes with no method
implementation.
Java / C# using special construct “interface”
41. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)41
Advanced Class Diagrams[1] –
interface, abstract and concrete
42. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)42
Advanced Class Diagrams[1] -
template
• “I know the class will have to work with other
classes, however at this stage I don’t know
what those classes end up being”.
If you find yourself in a similar situation use
TEMPLATES
With an extra dashed border on
top right corner.
‘E’ is just a placeholder, can be
used later to tell type of objects
class will need to store.
Notation
<<bind>> <E->BlogEntry>
45. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)45
Sequence Diagrams[1]
• Events – smallest part of an interaction. An
event is any point in interaction where
something occurs.
• Interaction - smallest part in sequence diagram
where ‘message/signal’ is sent by one
participant to another.
47. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)47
Sequence Diagrams[1] – nested
message
When a message triggers more than one message at receiving side
before return statement to originating participant is made.
Definition
49. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)49
Sequence Diagrams[1] –
asynchronous message
1. foo() – asynchronous message, without waiting for
return you can continue sending other messages.
Implementation – ????
Multithreading feature programming language
50. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)50
Sequence Diagrams[1] –
destroy
Participant2: ParticipantClass2, is <<created>>
and <<destroyed>> during course of sequence
diagrams
51. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)51
Sequence Diagrams[1] – from Use
Case to Sequence Diagram
UseCase to create a regular blog account. [taken from
Learning UML 2.0 {by Kim and Russels, Oreilly}]
52. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)52
Sequence Diagrams[1] – from Use
Case to Sequence Diagram
53. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)53
Sequence Diagrams[1] – from Use
Case to Sequence Diagram
Refining - Adding details and internals
54. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)54
Sequence Diagrams[1] – from Use
Case to Sequence Diagram
More details –
<<destroy>> - :AuthorDetails
Asynchronous – clickSubmit()
55. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)55
Sequence Diagrams[1] – Sequence
fragments (new in UML 2.0)
Definitions and details next slide
56. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)56
Sequence Diagrams[1] – Sequence
fragments (new in UML 2.0)
• Why need sequence fragments
• Managing complex, huge sequence diagram
• Representing loops, alternate flows, interactions
with organized and structured sequence diagram.
• How to represent
• Box that encloses interaction
• Nested interaction – one or more box inside a box
• Important distinguisher
• Operator on top left corner. Operator denotes type
of sequence fragment.
• Types
• opt, ref, assert, loop, break, alt… [ For more
details/types refer UML 2.0 in a Nutshell, Oreilly ]
57. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)57
Sequence Diagrams[1] – using a
‘ref’ fragment
58. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)58
Communication Diagrams
(a.k.a Collaboration Diagrams in previous UML versions)
59. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)59
Communication Diagrams[1] –
Display interaction links
Definition – Diagram showing interactions between participant.
Also, known as Collaboration Diagram in previous versions.
Simpler to represent than Sequence Diagrams.
Ingredients – Participants, Links and Messages.
CD vis a vis SD – Designer’s personal choice. Sequence
diagrams is preferred. True SD is complex, however why
compromise when we get more details. [for more details refer table 8.1
Learning UML 2.0, By Kim and Russel, Orielly]
61. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)61
Communication Diagrams[1] –
parallel messages
Message invocation order:
2a.messageB(), 2b.message() and
2c.messageC() all invoked at same time after
1.messageA()
62. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)62
Communication Diagrams[1] – same
message multiple times
Looping constraints
Looping constraint *[i=-0..9]
Guard condition [condition - true]
63. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)63
Communication Diagrams[1] –
participant calling itself
When do we need it
When an object calls its on method.
Talking to itself is acceptable in software world
otherwise it may sound absurd
64. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)64
Communication Diagrams[1] – a
conversion from SD to CD
Our referenced SD: {built from Use Case “Create a Regular blog account”}
Click for TD
65. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)65
Communication Diagrams[1] – a
conversion from SD to CD
Identify participant involved
66. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)66
Communication Diagrams[1] – a
conversion from SD to CD
Establish link between all necessary participants, refer SD.
67. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)67
Communication Diagrams[1] – a
conversion from SD to CD
Other steps {disclaimer, each step can be performed separately} – Add
messages Nested messages Guard conditions Return
messages {for all details keep referring SD},.
69. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)69
Timing Diagram[1]
• Definition
• Interaction diagram type, which give detailed timing
information. However, Timing diagram are not just about
timing information.
• Why we need them
• When you can model what events to take place, however
you want to show when they will take place and how
recipient reacts.
• Applications
• Real time applications, or applications where you want to
model / follow strict timing pattern.
• Analogy
• Similar to logic analyzer for a PCB (printed circuit board).
70. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)70
Timing Diagram[1] – a simple
diagram
A mail server with logic analyzer; modeled using a timing
diagram.
71. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)71
Timing Diagram – exact time or
relative time measurements
Exact
measurement
Relative
measurement
74. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)74
Timing Diagram[1] - events
Event – is shown as an arrow from a state (State2) in
participant (p1:Participant) to a state (State1) in other
participant (p2:Participant2)
75. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)75
Timing Diagram[1] – timing
constraints
• What timing constraint gives us:-
• Tell how long given portion of interaction
should take place.
• Amount of time a participant remains in a
particular state.
• How long an event should take to be invoked
and received.
77. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)77
Timing Diagrams[1] – constraint
format specification
Timing Constraint
(representation)
Description
{t .. t+5s} Duration of event or state should be 5s
or less
{<5s} Less formal, however equivalent to
{t..t+5s}
{>5s, <10s} Duration of event or state should be
less than 5s, but less than 10s
{t} Duration of event should be ‘t’ secs. It
is a relative time, and value of ‘t’ can
be anything
{t..t*5} Duration of event or state should be t
multiplied by 5. This is relative timing. (
‘t’ can be any value of time)
79. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)79
Timing Diagrams[1] – arranging
participant on TD {a tip}
Easy to read, well organized
states
Untidy,
participant
misplaced
80. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)80
Timing Diagrams[1] – alternate
notation
• Timing diagrams represented below, will grow
big, unmanageable.
• With a increased participant count size of
diagram reaches a huge size so soon.
81. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)81
Timing Diagrams[1] – alternate
notation
• To reduce size of diagram, follow the alternate
notation.
The alternate Timing Diagram Notation
Good when many states to represent.
82. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)82
Timing Diagrams[1] – from SD to TD
• SD Old “Create Blog account SD”.
• Click link to view Referred Sequence Diagram
• Technique to generate TD from a given SD
Place the participant correctly
• Rotate SD participant 90 degrees counter
clockwise {shown in next slide}
Read sequence diagram to determine time of
events or states
86. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)86
Interaction Overview Diagrams[1]
• Implements a bigger picture view
• IOD = {CD + SD + TD}
• IOD – define how different diagrams ie. CD, SD
and TD interact to solve
• A use case
– Or
• A particular system concern
88. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)88
Interaction Overview Diagrams[1] –
parts of diagram
lifelines subtitles show combined list of
participant involved in interactions within
overview
89. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)89
Interaction Overview Diagrams[1] –
creating IOD for a blog account
Legends
Create a New Regular Blog
Account
iod = interaction
overview diagram
sd = sequence diagram
cd = communication
diagram
td = timing diagram
90. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)90
Interaction Overview Diagrams[1] –
creating IOD for a blog account
sd =
expanded,
detailed
91. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)91
Interaction Overview Diagrams[1] –
creating IOD for a blog account
sd, cd and td
= all expanded,
detailed
92. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)92
Before we
Lets determine where we started from,
where we reached and what’s next
93. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)93
We started with
• Rev up of UML1.x code samples generated
using Rational Rose tool.
• UML (Unified Modeling Language) notations,
and where was each notation introduced i.e.
UML 1.x or UML 2.0
• Who, how, why and what UML 2.0 has been
incepted.
94. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)94
We are introduced to
• Activity Diagrams
• Advanced Class Diagrams
• Sequence Diagrams
• Communication Diagrams (a.k.a. Collaboration
Diagrams)
• Timing Diagrams
• Interaction Overview Diagrams
95. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)95
What’s next
• Composite Structures – modeling class’s internal
• Component Diagrams – managing and reusing
system’s part
• Packages – organizing model
• State Machine Diagrams – modeling an object’s state
• Deployment Diagrams – modeling deployed system
• UML profiles – adapting UML
• Object Constraint Language (OCL) – defining
constraints
• UML 2.0s tools – applying UML 2.0
• And questions ????
96. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)96
What we have to learn to do,
we learn by doing.
Aristotle++
++
- http://www.quoteworld.org/quotes/570
98. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)98
What’s next
• Composite Structures – modeling class’s internal
• Component Diagrams – managing and reusing system’s part
• Packages – organizing model
• State Machine Diagrams – modeling an object’s state
• Deployment Diagrams – modeling deployed system
• UML profiles – adapting UML
• Object Constraint Language (OCL) – defining constraints
• UML 2.0s tools – applying UML 2.0 {≠ Covered}
• And questions ????
99. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)99
Questions from previous
session
Do an input pin and an output pin exist in pairs?
Not necessarily. See figure 14-214, Page 540-41 from “The Unified
Modeling Language Reference Manual” (see references for more
details)
• Interplay and interchange between diagram?
Could not find much on same. Will try to cover as part of weekly
discussion.
• State diagram and Timing diagram ?
Will be partly resolved when state diagrams are discussed.
However, will also be covered as part of answer to Interplay
between diagrams.
100. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)100
Composite Structures (new in UML
2.0)
101. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)101
Composite Structures[1]
• Definition
• Diagrams apart from, primary UML diagrams
such as class and sequence diagrams, to
show how objects work inside classes, how
objects can achieve the goal.
• Why we need them
• To reduce gaps which are difficult to fill with
class and sequence diagrams. Examples
subsequent examples.
• Types
• Internal Structures, Ports and Collaborations.
102. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)102
Internal Structures[1]
• Definition
Diagrams to show parts contained by a class
and the relationships between the parts.
• Example
Details in following slides
103. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)103
Internal Structures[1] - Example
BlogEntry
Step 1 – BlogEntry is
composed of
Introduction and
MainBody
Step 2 – Improvement,
a MainEntry in
BlogEntry is
associated me with a
Introduction
Reason: Convenient for other
objects to ask an Introduction
object the MainBody object it
introduces.
104. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)104
Internal Structures[1] - Example
BlogEntry
An unintended but a valid object structure.
An intended object structure.
105. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)105
Internal Structures[1] - Example
BlogEntry
• Argument
Class diagrams are not good at expressing how items
contained in a class relate. This is where Internal
Structures come handy.
• Counter argument
An unintended structure shown previously can be
easily avoided while writing the code.
Further, Sequence Diagrams can show object creation
and how they are connected.
• Then why to read
Internal structures are convenient and simple way to
show relationship between contained items, especially
when contained items have a complex relationship.
106. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)106
Internal Structures[1] – Conversion Class
to Internal Structures
107. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)107
Internal Structures[1] – more details
A BlogEntry can contain
zero (min) or three (max)
pic:Image objects.
Connectors represent how
parts interact with each
other.
Alternate notation
109. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)109
Composite Structure - Ports[1]
• Definition
A port is a point between a class and the outside
world. Distinct way of using a class, usually by
different types of clients.
• Example
• A Wiki class with UserServices and
Maintenance capabilities.
• Drawn as small rectangle on the
boundary of a class.
110. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)110
Composite Structures[1] - Ports
• Ports and interfaces
Ports can be used group related interfaces to
show services available at that port.
111. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)111
Composite Diagrams[1] –
Collaboration Diagrams
• Definition
• Diagram showing objects by the role they play
in a scenario and providing high-level textual
description of what objects are doing.
[ showing object interaction performing a ]
• Any similarities
• Object diagram. But collaboration diagram
differ in focus.
113. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)113
An alternate notation
Participant placeholder of objects.
Connectors temporary links; mean that the runtime
objects communicate during collaboration, but the objects
don’t have to communicate outside the collaboration.
114. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)114
An real world example
Object is not bound to a role; it can play different
roles in different collaborations.
Objects in a collaboration are not owned by
collaboration; they may exist before and after
collaboration.
Even though objects communicate in a
collaboration; they don’t necessarily communicate
outside the collaboration.
116. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)116
Component Diagrams[1]
• Definition
• Encapsulated, reusable and replaceable part of
software.
• Good candidates
• Perform key functionality, and used frequently in
software. Examples loggers, XML parsers, shopping
cart.
• Capacities
• Generalize, associate with other classes. Implement
interfaces, have operations.
• Class vis a vis Component
• A component can use classes and other
components to perform its task.
117. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)117
Component Diagrams[1] - parts
Basic Component Notation
An alternate Component Notation
118. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)118
Component Diagrams[1] - parts
Provided interfaces – provided services
Required interfaces – desired interfaces
OR Component Interfaces working together
119. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)119
Component Diagrams[1] – more
parts
Delegation connector
Assembly connector
Shows internal parts realize component
interfaces
Show components working together
120. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)120
Component diagrams – black box or
white box
122. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)122
Packages
• Definition
Group of classes are modeled with packages. To
organize and avoid name collision among
classes.
• Examples
Packages in Java, Namespaces in C#
• Notation
Credentials class is
located in security
package
123. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)123
Packages – dependencies and
visibilities
Dependencies
Users package imports only Credentials class
Visibility
“+” – public visibility
“-” – private visibility
124. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)124
Packages – managing packages
Changes in one can effect other. Tip
avoid cycles.
125. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)125
Packages – managing packages
Solution – reduce to one package or factor out a new
package
127. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)127
State Machine Diagrams[1]
• Definition
To show how state of an object or system is
important factor in its behavior.
Add on to activity and other interaction diagrams.
• Applications
Real time system / mission critical systems such
as Heart Monitoring System
Dedicated devices whose behavior is defined in
terms of state such as ATM.
Gaming application/s.
Network communication protocols.
128. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)128
State Machine Diagrams[1] -
essentials
Example : State Machine Diagram for a CD player.
129. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)129
State Machine Diagrams – internal
behavior and transitions
Internal behavior – behavior when object
is in this state.
Internal transitions – transitions that cause reaction
within same state, but doesn’t cause object to
change state.
131. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)131
Deployment Diagrams[1]
• Definition
Diagrams showing physical view of the system.
• Usage
Show how software gets assigned to hardware
and how pieces communicate.
133. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)133
Deployment Diagrams[1] -
constituents
• Nodes
Hardware or software resource that can host
software or related files.
• Types
Hardware – server, desktop PC, disk drives
Software – Operating System, J2EE container,
web server, application server.
134. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)134
Deployment Diagrams[1] –
communication and specification
• Communication – how nodes communicate.
• Specification – an artifact specifying how
another artifact is deployed to a node.
136. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)136
Object Constraint Language[1]
• Need
Defining constraints in a class diagram, or UML
diagrams in general.
• Alternate ways
Programming language (C, Java) or natural language
• Issues
Natural language ambiguous, Programming language
not understood by all
• Solution
OMG proposed OCL
• Features – formal yet easy to understand language for
UML diagrams.
137. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)137
Object Constraint Language[1] -
types
• OCL has four built in types
Boolean – true; false
Integer - 1, 2, 4534523532, -200
Real – 2.3423432, 11.700000
String – “MDA”
138. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)138
Object Constraint Language[1]
-operators
Group Operators Supported
types
Examples
Arithmetic +,-,*, / Integer, Real “abc + def / ghi”
Additional arithmetic abs(), max(), min() Integer, Real marks.max(scorecard)
Comparison <, <=, >, >= Integer, Real abc > = 9
Equality =, <> All title <> ‘Idle’
Boolean and, or, xor, not Boolean isStudent and (nation
= “India”)
String concat(), size(),
substring(), toInteger(),
toReal()
String title.substring(1,8)
139. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)139
Object Constraint Language[1] -
example
• Pulling it together
140. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)140
Object Constraint Language[1] –
constraint types
Invariant
• Must always be true, otherwise system in invalid state.
Example : roll_numer always greater than zero.
Pre conditions
• Defined on a method, checked before method executes.
Post conditions
• Defined on a method, checks values after method
executes.
142. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)142
Object Constraint Language[1] -
automation
• OCL constraint from UML model to perform
constraint checking
• Enhance integration, from UML to runtime
model.
• Checking errors early, reduce debugging time.
• Tool support
ArgoUML, ocl4java, and Dresden OCL Toolkit
• OCL tool support will become more mature with
advancement in MDA and Executable UML.
144. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)144
UML Profiles[1]
• Definition
Way to adapt UML to a particular platform
J2EE, .NET or domain such aerospace, telecom,
or healthcare.
• Constituent
Made up of stereotypes, tagged values and
constraints
• Earlier UML versions
UML1.x allowed stereotypes on fly. Cause of
confusion to modelers.
UML 2.0 fixed by declaring these stereotypes
and tagged values.
145. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)145
UML Profiles [1] – stereotypes and
tagged values
• Stereotypes – signify element has special use
or intent.
Define name of stereotype surrounded by angle
bracket or guillemots.
No limit on number of stereotype applied to an
element.
146. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)146
UML Profiles[1] – tagged values
• Definition – provide extra information to a
defined stereotype.
Can apply multiple stereotype to an element,
each with its on tagged value.
147. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)147
UML Profiles[1] – constraints
• Definition
Constraints impose rules and restrictions on
model elements.
Example in subsequent slide.
148. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)148
UML Profiles[1] – creating a UML
profile
• When
When standard OMG or toolspecific profile is
unable to express your model.
• How
Extend UML meta-model or meta-class object to
define new stereotype.
Enhance stereotype with tagged values.
Define constraints to apply additional rules and
constraints.
150. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)150
UML Profiles[1] – why bother
• Real power comes when defining a new, or a
common vocabulary between domains.
• Leverage tools to generate automatic code.
• Examples:
Omondo Eclipse Plugin provides J2EE profile
OMG maintains some common profiles such as
for CORBA and testing. Testing profile provides
mapping to JUnit { commonly used Java unit
testing framework}
151. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)151
Wrap up
UML 1.x and UML 2.0 from beginners to intermediate
levels.
How to model a system with a simple WikiBlog
examples.
Old, or enhanced features in UML 2.0
New diagrams or notations in UML 2.0
Introduction to Object Constraint Language
Introduction to UML profiles
152. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)152
UML – Resource links (Tools and
books)
• OMG resources link
Tools and tutorials
• http://www.uml.org/#Links-General
– The current UML specification for free download
– Standard UML Profiles and related specifications
– Articles about UML
– UML Resource Pages
– UML Tutorials
– And more
• Others
Tools
• http://en.wikipedia.org/wiki/List_of_UML_tools
– List of UML tools maintained on Wikipedia.org
Forum
• http://www.uml-forum.com/
– UML forum is a web community on Unified Modeling Language (UML)
153. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)153
References, recommendation and
copyrights information
154. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)154
References
[1] – Learning UML 2.0; by Kim Hamilton, Russell
Miles; Oreilly Publication
Recommended reading
The Unified Modelling Language Reference
Manual, Second Edition, by James Rumbaugh,
Ivar Jacobson, Grady Booch; Pearson
Education (LPE)
UML 2.0 in a Nutshell [Oreilly]
Mastering Rational Rose [BPB]
UML Toolkit [John Wiley and Sons]
155. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)155
References
• Web resources
http://www.omg.org/
• For MDA, UML, OCL and XMI standards and other
specifications.
• Personal recommendation
UML has extensive support in textbooks, toolkits and
on web.
Most authentic and standard is OMG’s official website
{www.omg.org}.
It is highly recommended that only standard
specification be followed.
157. 01-Sept-2008 IT-792 - MDA (UML 2.0 Changes)157
“A spider conducts operations that resemble those
of a weaver, and a bee puts to shame many an
architect in the construction of her cells. But
what distinguishes the worst architect from
the best of bees is this, that the architect
raises his structure in imagination before he
erects it in reality. ”
— (Capital, Vol. I, Chap. 7, Pt. 1)
Karl Heinrich Marx++
++ - http://en.wikipedia.org/wiki/Karl_marx