Presentation is loading. Please wait.

Presentation is loading. Please wait.

Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.

Similar presentations


Presentation on theme: "Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction."— Presentation transcript:

1 Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction to the Unified Modeling Language CS/SWE 421 Introduction to Software Engineering Dan Fleck (Slides adapted from Dr. Stephen Clyde with permission)

2 Coming up: A Brief Timeline for OO and UML Unified Modeling Language n UML is an object-oriented modeling language (or more precisely, a collection of modeling languages) that is –expressive –semi-formal (UML 2.0 added much more formality) –capable of supporting incremental development Elements can be hidden Certain elements can be left incomplete Inconsistencies can exist –process independent UML can be used with a variety software development process models –Customizable and extensible

3 Coming up: A Brief Timeline for OO and UML A Brief Timeline for OO and UML n 60’s –Birth of initial OO ideas n 70’s –Nurturing of OO ideas –Introduction of a few more OO Programming Languages n 80’s –Maturing of fundamental OO concepts –Emergence of more OOPL’s –OOPL’s gain widespread use

4 Coming up: UML Building Blocks A Brief Timeline for OO and UML  90’s –The Method Wars –Efforts to unify concepts –Introduction and standardization of UML –Emergence of next-generation ideas, like Patterns n Current –Widespread use of UML –Widespread use Full-Life-Cycle development tools Booch, Jacobson, Rumbaugh

5 Coming up: Modeling Elements UML Building Blocks n Modeling Elements –Structural –Behavioral –Organizational –Annotational n Diagrams that communicate ideas using the modeling elements n Views Student major: String gpa: Real standing: String add(Course) drop(Course) * * Graduate Course Registered Student -- Handle a registration in courses Course See Fig. 2 for more details Contacts

6 Coming up: Modeling Elements and Diagrams Modeling Elements n Definition and Scope –Use Cases –Automation Boundaries n Structural –Objects –Classes –Relations –Interfaces –Components –Nodes n Extension –Templates –Stereotypes n Behavioral Things –Messages –States –Transitions –Events n Organizational Things –Packages –Views n Annotation –Comments –Specifications Modeling Elements are building blocks for constructing conceptual descriptions of systems *Note that this is not a complete list

7 Coming up: UML Diagrams Modeling Elements and Diagrams n Diagrams represent chunks of information that need to be communicated as part of a conceptual description. –It usually requires many diagrams to describe a system –Each diagram should focus on a single thought or a small set of tightly related thoughts n Diagrams are like paragraphs in a section of well-structured text

8 Coming up: Views UML Diagrams n Use Case Diagrams n Class Diagrams n Object Diagrams n Interaction Diagrams –Sequence Diagrams –Communication Diagrams n State Charts (enhanced State Machines) n Component Diagrams n Deployment Diagrams

9 Coming up: Views and Methods Views n A view is a set of diagrams that describe one aspect of a system or describe the system from a given perspective n Views are like the sections of a book, and a model is like the entire book n Some common views: –Use-case view –Logical view –Implementation view –Process view –Deployment view

10 Coming up: Three Software-Engineering Modeling Perspectives Views and Methods n The construction and ultimate value of a view is that it is closely tied to the process used to create the view. n The process imposes a certain perspective on the modeling activity n To understand a view, one needs to know the intended perspective

11 Coming up: Analysis Perspective Three Software-Engineering Modeling Perspectives n Analysis – for understanding –The objects represented in the models are real-world objects –Models focus on problem-domains concepts –They describe systems as they are n Specification – for scoping and planning –The models include both real-world and software objects –The models show automation boundaries –The models describe what the system is to become n Implementation – for designing / building –The objects in the models are mostly software objects –The models focus on solution-oriented concepts –The models describe what the software system is or will be

12 Coming up: Specification Perspective Analysis Perspective n Classes are sets of objects n Classes may include attributes and operations, but more importantly their intents are defined by responsibilities n Relationships are set of links between objects n Components relate to the problem domain Student name major GPA standing interests * * Registered Student -- The set of students known to the registration system Course name -- The set of possible courses

13 Coming up: Implementation Perspective Specification Perspective n Classes define abstraction boundaries and encapsulations for software objects Student S name: String major: String GPA: real standing: Scode add(Course) drop(Course) -- Software representation of students; support registration in courses Student R name major GPA standing interests -- The set of students known to the registration system

14 Coming up: Implementation Perspective Implementation Perspective Student major: String GPA: Real standing: String add(Course) drop(Course) -- Handle a registration in courses StudentDialogBox create() doDataExchange() onDelete() onInsert() onOK() -- Interact with user to add drop courses Course callNumber: Integer department number section title CourseList -- Display a dynamic list courses 1 0..1

15 Coming up: Some Interesting UML Modeling Questions Implementation Perspective StudentDialogBox -- Interact with user to add drop courses Dialog Window Frame Object CourseList -- Display a dynamic list courses ListBox n Classes can represent software components in frameworks, libraries, or external systems 0..11

16 Coming up: More UML Modeling Questions Some Interesting UML Modeling Questions n How do we discover objects or classes? n When should we focus on problem-domain objects, solution-domain objects, or environment objects? n How can we keep the different perspectives straight? n Should each perspective be captured by a different model or can they all be managed in one model? n How much detail should you put in a diagram, a view, or a model?

17 Coming up: More UML Modeling Questions More UML Modeling Questions n How should you distribute responsibilities among classes? –What happens when classes get too big, i.e. inadequate distribution? –What happens when classes are too small, i.e. too fine of grain distribution? –What happens when there are a lot of dependency relationships between classes, i.e., inappropriate or ad hoc distribution?

18 In-Class Exercise n Draw a Use Case diagram for the We Grow Supply company system described.


Download ppt "Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction."

Similar presentations


Ads by Google