01 November 2007Kaiser: COMS W4156 Fall 20071 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser

Slides:



Advertisements
Similar presentations
UML an overview.
Advertisements

1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 9 Object, Package, Component and Deployment Diagrams (Based on Fowler, 2004,
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
UML Class and Sequence Diagrams Violet Slides adapted from Marty Stepp, CSE 403, Winter 2012 CSE 403 Spring 2012 Anton Osobov.
2008/03/25 Unified Modeling Lanauage 1 Introduction to Unified Modeling Language (UML) – Part One Ku-Yaw Chang Assistant Professor.
UML – Class Diagrams.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Design Patterns in Java Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
Component and Deployment Diagrams
© Copyright Eliyahu Brutman Programming Techniques Course.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
Unified Modeling Language
Unified Modeling Language
Object-Oriented Analysis and Design
COMS W4156: Advanced Software Engineering
UML Diagrams Computer Science I.
Page 1 What is the UML? UML stands for Unified Modeling Language The UML combines the best of the best from – Data Modeling concepts (Entity Relationship.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Component Basics CS6961 – Lecture 6 Nathan Dykman.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
UML Class Diagrams and Caché CAMTA Meeting – 1 st December 2011 John Murray Senior Product Engineer.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
Unit 1 INTRODUCTION TO MODELING AND CLASS MODEL Ref : L7-UML.PDF.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Chapter 16 Applying UML and Patterns Craig Larman
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 03. Classes,
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
An Introduction to the Unified Modeling Language
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Design Jon Walker. More UML ● What is UML again?
Appendix D UML at a Glance Summary prepared by Kirk Scott 1.
Design Model Lecture p6 T120B pavasario sem.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Chapter 3: Introducing the UML
Identifying classes, Packages and drawing class Diagrams, Object Diagrams and composite structure diagrams Week 07 1.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Introduction to Unified Modeling Language (UML) By Rick Mercer with help from The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar.
1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 April 13, 2005.
1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 November 30, 2004.
CHAPTER
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
COMPONENT & DEPLOYMENT DIAGRAMS
Object-Oriented Analysis and Design
Class Diagrams.
UML Diagrams Jung Woo.
Chapter 20 Object-Oriented Analysis and Design
CIS 375 Bruce R. Maxim UM-Dearborn
CIS 375 Bruce R. Maxim UM-Dearborn
Object Oriented System Design Class Diagrams
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

01 November 2007Kaiser: COMS W4156 Fall COMS W4156: Advanced Software Engineering Prof. Gail Kaiser

01 November 2007Kaiser: COMS W4156 Fall Reprise: What is UML? UML = Unified Modeling Language A standard language for specifying, visualizing, constructing and documenting software artifacts Standardized by Object Management Group (OMG) Uses mostly graphical notations (blueprints) Helps project teams communicate, explore potential designs, and validate the requirements and architectural design of the software system

01 November 2007Kaiser: COMS W4156 Fall Our Focus: the Language  Unified Modeling Language Language = syntax + semantics –Syntax = rules by which language elements (e.g., words) are assembled into expressions (e.g., phrases, clauses) –Semantics = rules by which syntactic expressions are assigned meanings

01 November 2007Kaiser: COMS W4156 Fall The basic building blocks (syntax) of UML are: –Model elements (classes, interfaces, components, use cases) –Relationships (associations, generalization, dependencies) –Diagrams (class diagrams, use case diagrams, interaction diagrams) Simple building blocks are used to create large, complex structures Building Blocks

01 November 2007Kaiser: COMS W4156 Fall Types of UML Diagrams Each UML diagram is designed to let developers and customers view a software system from a different perspective and in varying degrees of abstraction –Use Case –Interaction –State –Structural –Implementation

01 November 2007Kaiser: COMS W4156 Fall Structural Modeling Define the architecture Used to model the “things” that make up the system Model class structure and contents Emphasizes the structure of objects, including their classifiers, attributes, operations, and relationships including dependencies

01 November 2007Kaiser: COMS W4156 Fall Structural Diagrams Show a graph of elements connected by relationships Kinds –Class diagram: classifier view –Object diagram: instance view Shows the static structures of the system (not dynamic or temporal)

01 November 2007Kaiser: COMS W4156 Fall Class Diagrams Shows how the different entities (people, things and data) relate to each other A class diagram can be used to display logical classes, not necessarily code classes, which are typically the kinds of things the business people in an organization talk about — rock bands, CDs, radio play; or home mortgages, car loans, interest rates Use domain vocabulary

01 November 2007Kaiser: COMS W4156 Fall Class Diagram Example

01 November 2007Kaiser: COMS W4156 Fall Class Notation A class is depicted on the class diagram as a rectangle with three horizontal sections (compartments) The upper section shows the class's name The middle section contains the class's structure or attributes, optionally with initial values The lower section contains the class's operations or behaviors (or "methods") May be abbreviated to show just name, or just name and attributes

01 November 2007Kaiser: COMS W4156 Fall Class Example

01 November 2007Kaiser: COMS W4156 Fall Class Diagram Draw a generalization relationship using a line with an arrowhead at the top pointing to the super class, where the arrowhead should a completed triangle Associations –A solid line if both classes are aware of each other –A line with an open arrowhead if the association is known by only one of the classes (pointing to the class known by the other one, i.e., direction of potential navigation) –Optionally label with multiplicity

01 November 2007Kaiser: COMS W4156 Fall Example Class Diagram Generalization One-way association Two-way association

01 November 2007Kaiser: COMS W4156 Fall Association Example

01 November 2007Kaiser: COMS W4156 Fall Generalization Example

01 November 2007Kaiser: COMS W4156 Fall Core Elements

01 November 2007Kaiser: COMS W4156 Fall Core Relationships

01 November 2007Kaiser: COMS W4156 Fall Implementation Class Diagrams Can also be used to show implementation classes, which are the things that programmers typically deal with An implementation class diagram will probably show some of the same classes as the logical classes diagram The implementation class diagram won't be drawn with the same attributes, however, because it will most likely have references to things like Vectors and HashMaps May add compartments such as responsibilities and exceptions, even gist of method body May indicate attribute and operation visibility: public, private, protected, package

01 November 2007Kaiser: COMS W4156 Fall Example Implementation Class

01 November 2007Kaiser: COMS W4156 Fall Example Class Detail + = public - = private # = protected ~ = package visibility

01 November 2007Kaiser: COMS W4156 Fall Method Body Example

01 November 2007Kaiser: COMS W4156 Fall Generalization Often represents inheritance at implementation class level Abstract class names given in italics Possibly multiple inheritance Possibly multiple inheritance hierarchies emanating from same base class Separate vs. shared target formats

01 November 2007Kaiser: COMS W4156 Fall Generalization Example Equivalent Forms

01 November 2007Kaiser: COMS W4156 Fall Generalization Example

01 November 2007Kaiser: COMS W4156 Fall Multiple Level Generalization Example

01 November 2007Kaiser: COMS W4156 Fall Associations Reflect connections, usually implemented as an instance variable in one class Connector may include named roles at each end, cardinality, direction and constraints Self-associations permitted May indicate choice ( xor ) May be N-ary (not just binary) Association classes allow an association connection to have operations and attributes

01 November 2007Kaiser: COMS W4156 Fall Association Example

01 November 2007Kaiser: COMS W4156 Fall Association Examples

01 November 2007Kaiser: COMS W4156 Fall Association Class Example

01 November 2007Kaiser: COMS W4156 Fall Ternary Association Class Example

01 November 2007Kaiser: COMS W4156 Fall Aggregations Aggregations are a stronger form of association between a whole and its parts Drawn with a diamond next to the class representing the target or whole (parent) open vs. closed diamond indicates usage vs. containment semantics Containment may be indicated by composition rather than relationship lines

01 November 2007Kaiser: COMS W4156 Fall Aggregation Example

01 November 2007Kaiser: COMS W4156 Fall Aggregation Example

01 November 2007Kaiser: COMS W4156 Fall Composition Example

01 November 2007Kaiser: COMS W4156 Fall Dependencies Dependencies are a weaker form of association without semantic knowledge Often used early in the design process where it is known that there is some kind of link between two elements, but it is too early to know exactly what the relationship is Later in the design process, dependencies may be replaced with a more specific type of connector Shown with a dashed line (e.g., from client to supplier) > on line specifies kind (stereotype) of dependency, e.g., >, >, etc.

01 November 2007Kaiser: COMS W4156 Fall Dependencies Example

01 November 2007Kaiser: COMS W4156 Fall Dependencies Example

01 November 2007Kaiser: COMS W4156 Fall Interfaces All interface operations are public and abstract, and all interface attributes must be constants By realizing an interface, classes are guaranteed to support a required behavior, which allows the system to treat non-related elements in the same way – that is, through the common interface While a class may only inherit from a single super-class, it may implement multiple interfaces May be drawn in a similar style to a class, with operations specified Or may be drawn as a circle with no explicit operations detailed (when drawn as a circle, realization links to the circle form of notation are drawn without target arrows)

01 November 2007Kaiser: COMS W4156 Fall Interface Example

01 November 2007Kaiser: COMS W4156 Fall Interface Realization Example

01 November 2007Kaiser: COMS W4156 Fall Adapted from Fig. 23 [EJB 2.0]. Interface Example

01 November 2007Kaiser: COMS W4156 Fall Types and Implementation Classes Example

01 November 2007Kaiser: COMS W4156 Fall Object Diagrams Refer to a specific instance Special case of a class diagram Does not show operations but may show runtime state Object names are underlined and may show the name of the classifier from which the object is instantiated May compose multiple specific instances May be drawn as glyphs

01 November 2007Kaiser: COMS W4156 Fall Class vs. Object Diagram Example

01 November 2007Kaiser: COMS W4156 Fall Run-time State Example

01 November 2007Kaiser: COMS W4156 Fall More Object Examples

01 November 2007Kaiser: COMS W4156 Fall Composite Objects Example

01 November 2007Kaiser: COMS W4156 Fall When to Model Structure Adopt an opportunistic top-down interleaved with bottom-up approach to modeling structure –Specify the top-level structure using “architecturally significant” classifiers and model management constructs (subsystems) –Specify lower-level structure as you discover detail wrt classifiers and relationships

01 November 2007Kaiser: COMS W4156 Fall Implementation Diagrams Additional structural modeling (beyond classes, interfaces and objects) Show aspects of model implementation, including source code structure and run- time implementation structure Kinds –Package diagram –Component diagram –Deployment diagram

01 November 2007Kaiser: COMS W4156 Fall Package Diagrams Used to reflect the organization of packages and their elements Provide a visualization of the namespaces Elements contained in a package share the same namespace, therefore must have unique names Drawn as folders, with tabs at the top; the package name is on the tab or inside the rectangle Dotted arrows show dependencies - one package depends on another if changes in the other could possibly force changes in the first

01 November 2007Kaiser: COMS W4156 Fall Package Diagrams Packages may be imported or nested A > connector between two packages defines an implicit generalization between elements in the source package and elements with the same name in the target package The target package need not contain elements with same names as all source package elements

01 November 2007Kaiser: COMS W4156 Fall Package Diagram Example nested package

01 November 2007Kaiser: COMS W4156 Fall Component Diagrams Describes the software components that make up the system Provides a physical view of the system Shows the dependencies that the software has on the other software components (e.g., software libraries) in the system A component is illustrated as a large rectangle with two smaller rectangles on the side, lollipops represent interfaces Dashed lines with arrows between components indicate dependencies

01 November 2007Kaiser: COMS W4156 Fall Component Examples

01 November 2007Kaiser: COMS W4156 Fall Component Diagram Example

01 November 2007Kaiser: COMS W4156 Fall Component Diagram Example with Labeled Dependencies

01 November 2007Kaiser: COMS W4156 Fall Deployment Diagram Visualizes the physical architecture and the deployment of components on that hardware architecture Shows how a system will be physically deployed in the hardware environment, distribution of components across the enterprise Its purpose is to show where the different components of the system will physically run and how they will communicate with each other

01 November 2007Kaiser: COMS W4156 Fall Deployment Diagram Notation Includes the notation elements used in a component diagram, plus adds the concept of a node A node represents either a physical machine or a virtual machine node (e.g., a mainframe node) To model a node, simply draw a three- dimensional cube (or box) with the name of the node at the top of the cube Use the naming convention [instance name] : [instance type] (e.g., "w3reporting.myco.com : Application Server")

01 November 2007Kaiser: COMS W4156 Fall Deployment Diagram Example

01 November 2007Kaiser: COMS W4156 Fall UML is effective for modeling large, complex software systems It is simple to learn for most developers, but provides advanced features for expert analysts, designers and architects It can specify systems in an implementation- independent manner 10-20% of the constructs are used 80-90% of the time Structural modeling specifies a skeleton for the structural elements that supply the behavior (sequence, state, activity diagrams) and implement the use cases (use case diagrams) Implementation diagrams extend structural modeling to source code and run-time structure Summary

01 November 2007Kaiser: COMS W4156 Fall — The official UML Web sitehttp:// — Information on Argo UML, an open source UML modeling tool built in Javahttp://argouml.tigris.org/ — Information on Umbrello UML Modeller, an open source UML modeling tool for KDEhttp://uml.sourceforge.net/index.php - IBM’s UML resource center (IBM bought Rational in 2002) Resources

01 November 2007Kaiser: COMS W4156 Fall First Iteration Demos Due! October 30 th – November 8 th Extra credit on per-day-early sliding scale Only team members present for the demo (for CVN virtually present) will receive credit – 10% of final grade No “presentation” needed, but be prepared to answer questions, show your code, and let the TA enter input to your system

01 November 2007Kaiser: COMS W4156 Fall Upcoming Deadlines First iteration final report due Friday November 9 th, must respond to any “issues” that arose during demoFirst iteration final report Midterm Individual Assessment posted Friday November 9 th Midterm Individual Assessment due Friday November 16 th 2 nd iteration starts

01 November 2007Kaiser: COMS W4156 Fall Second Iteration Add extensive error checking and exception handling Black box unit testing and white box statement coverage Semi-formal code inspection Security and stress testing Seeking volunteer teams to do code inspections (Tue 27 Nov and Thu 29 Nov) and final demos (Tue 4 Dec and Thu 6 Dec) in class

01 November 2007Kaiser: COMS W4156 Fall COMS W4156: Advanced Software Engineering Prof. Gail Kaiser