410 likes | 610 Views
Business Analysis and Data Design ITEC-630 Fall 2008. UML and Non-UML Diagrams Professor J. Alberto Espinosa. Objectives. Develop familiarity with some UML modeling diagrams Develop familiarity with important non-UML modeling diagrams Using MS Visio for modeling. Important UML Diagrams.
E N D
Business Analysis andData DesignITEC-630 Fall 2008 UML and Non-UML Diagrams Professor J. Alberto Espinosa
Objectives • Develop familiarity with some UML modeling diagrams • Develop familiarity with important non-UML modeling diagrams • Using MS Visio for modeling
Important UML Diagram Models • Use Case Diagrams (done) • Packages – organizing the Use Cases (& other models) • Activity Diagrams • Diagrams that explain Use Case workflows (sometimes useful, but use case text is often preferred) • Some times also used to diagram dependencies between Use Cases • And for business process models • Class Diagrams – describe the types of objects in a system and the static relationships among them
The Use Case Modeling Process Develop Base Use Case Descriptions Done Elaborated Use Case Descriptions Done Model Extend, Include & Generaliz Done Map Use Cases to Object Models DevelopInstance Scenarios Next Prepare for Use Case Modeling Initial Use Case Modeling Expand Use Case Model Test Use Cases & Doc Organize the Use Cases Ongoing Use Case Management
Packages • Packages are a key aspect of UML • A package contains a group or related Use Cases or model • They are most useful to organize Use Cases and other models when the get too large or complex to represent in a simple diagram • A package diagram is one that shows “packages” of artifacts (e.g., Use Cases, Class Diagrams, etc.) and their respective dependencies • A dependency between any two entities exist when events, actions or definitions in one entity influence events, actions or definitions in the other entity
How to Group Use Cases into Packages • It is better to group Use Cases by business functionality (e.g., account management, ATM operation) than by sub-system • A system architect may later combine several Use Case packages into 1 sub-system, or split a package into more than 1 sub-system • It helps document the scope of each business function supported by the system • Focus on what makes the most sense for primary actors • Two important principles to keep in mind: • Maximize cohesion (i.e., business function similarity) within packages • Minimize coupling (i.e., dependencies) between packages
Example: AOL Student ProjectCity Search ApplicationVisio\UseCase_AOL.vsd Functional Division of Responsibilities • Team 1: Data Acquisition and Management Functions • Team 2: AOL User Front End
Activity Diagrams • General: they describe sequencing of activities • Particularly useful to visualize business workflows and processes • Sometimes used with Use Cases: • To diagram the flow of events within a Use Case • To model dependencies between Use Cases • Activity diagrams are also used for other models, such as: • Business process models • Test cases
Object-Oriented Analysis • OO is most prevalent software system development paradigm today • There are OO analysis, design and programming methods • These are different, but related concepts and methods • OO analysis aims to discover and describe objects (their properties/attributes and behaviors/methods) in the system domain – what they are, their attributes, their behaviors (i.e., methods), how they collaborate with and relate to each other, etc.
Objects and Classes • An object is a person, place, event or other thing • A class is a category or grouping of similar objects(e.g., professors) • We say that an object is an “instance” of a class (e.g., A. Espinosa) • An object has attributes (i.e., data) andmethods (or operations) (i.e., programs) • Objects inherit attributes and methods from their class • Classes inherit attributes and methods from super-classes
Methods or Operations • Methods or Operations are procedures/programs (written in an OO programming language) to update, manipulate or query data in object attributes • They are functions or services available to all objects of the class in which the methods are defined – 4 main types: • Constructor – creates a new object in the class (equivalent to Insert SQL query or C in CRUD matrix) • Query – accesses data in an object’s attributes, no side effects (equivalent to Select SQL query or R in CRUD matrix) • Update – alters the content of an object, with side effects (equivalent to Update SQL query or U in CRUD matrix) • Scope – applies to the whole class or a range of objects rather than a single object
Inheritance • Objects inheritoperations and properties from their respective class • Classes can be created under other classes • Sub-classes inherit operations and properties from super-classes • Thus, OO models have an “inheritance structure” • Gen-Spec or Generalization (“is a”) • Whole-Part or Aggregation (“is part of”)
Inheritance Types and Structure:Gen-Spec (Is a) and Whole-Part (Is part of) Properties Multiplicities (similar to cardinality): Not Needed Needed Methods orOperations Class Inheritance Sub-Class Generalization-Specialization (Is a) Aggregation or Whole-Part (Is part of) Two Types of Inheritance
Object Oriented (OO) Database Modeling • OO Database Models or Class Diagrams are like ERDs • An object is like an instance of an entity or a record (i.e., row) in a database table • A class is like an entity in an ERD or a table in the database • Attributes are called properties • But they also include operations (or methods) and inheritance
Example: Course Registration OO Database Model Classes (like entities in ERD’s) Relationships (like ERD’s) w/multiplicities (like cardinality) + Operations or Methods + Inheritance In sum, OO database models are like class diagrams, but also include relationships like in data models (or ERD’s)
Example: ATM OO Database Model Multiplicity (UML term) = Cardinality (database term)How many instances of one class can be associated with another class 0..1 (0 or 1); 1 (only 1), 0..* (0 or many), * (many, but not 0)
Non-UML System Modeling Methods Process-Oriented Methods (process-driven systems): • Flowcharts • Data Flow Diagrams (DFD) • Structure Charts Data-Oriented Methods (data-driven systems): • Data Modeling: Entity Relationship Diagrams (ERD) • Data Dictionaries Control-Oriented Methods (real-time systems): • State Transition Diagrams (STD)
No. label label label Data Flow Diagrams (DFD) Process oriented modeling method that shows how the data moves through a system • Most suitable for process oriented systems • Good visual representation of a system • Simple: only uses only 4 symbols label Data Source/Sink (external) Data Store Data Flow Process [Gane-Sarson Symbols]
Data Flow Diagram Levels DFDs start at a high level of abstraction and proceed to more detailed levels: • Context Diagram • Level-0 Diagram • Level-1, 2, … n Diagrams • Primitive DFD
Context Diagram • Highest level view of the system • Contains ONLY one process, i.e., the “system” • It also shows all external data sources/sinks (“electronic” or “manual”) • And all data flows between data sources/sinks and the process • It contains NO data stores
Level-0 Diagram • Expands the main process from context diagram • Represents the system’s major processes • Which are the primary individual processes at the highest possible level • This is called “functional decomposition”
Primitive DFD • Lowest level DFD • When further decomposing no longer necessary • What next? • Describe the primitive in structured English • Or using pseudo-code • Turn over to programmers to start coding modules