DOC PREVIEW
MSU CSE 870 - Using and Extending UML

This preview shows page 1-2-15-16-31-32 out of 32 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Supplementary: Using and Extending UMLExtensibility MechanismsStereotypesTagged ValuesConstraintInterfaceInterface ExampleDependency RelationshipDependency ExampleMetamodelsClass Diagram MetamodelObject ModelSTOPDynamic ModelApproaching a ProblemWhere Do We Start?How Do We Continue?How Do We Wrap Up?Why is requirements analysis difficult?Slide 20First Law of Software EngineeringReasons for changing requirementsRequirements ProductsAnalysis: Steps to followUse CasesAnalysis: Object ModelSlide 27Slide 28Object Model: Steps to followAnalysis: Dynamic modelDynamic Model: Steps to followAnalysis: IterationCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRSupplementary:Using and Extending UMLCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRExtensibility Mechanisms•Stereotypes•Tagged Values•ConstraintsActionQueue<<container>>{version = 3.2}add(a: Action)remove(n: Integer){add runs in O(1) time}CSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRStereotypes•Extends the UML vocabulary•Create new building blocks derived from existing ones,–specific to problem domain–Example: Sensors for embedded systems, <<sensor>>thermometertempread<<sensor>>Voltage metervoltreadCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRTagged Values•Extends properties of UML building block•Create new information in that element’s spec•Example: {version, author values for Software Class}<<sensor>>Voltage metervoltread{reader=J. Smith}CSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRConstraint•Extends the semantics of a UML building block•Add new rules or modify existing ones–Example: {ordered constraint on a add operation for a Queue}<<sensor>>Voltage metervoltread{reader=J. Smith}{read before thermostat check}CSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRInterface•Interface: collection of operations that specify a service of a class or component–Externally visible behavior of that element–Set of operation specs (signatures)–Not a set of operation implementationsCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRInterface Example•Interface specifies desired behavior of an abstraction independent of implementation•Specifies contract•May also create stereotype to further define behavior–No attributes–Only operations•(visibility, concurrency, stereotypes, etc.)Wordsmith.dllISpellIThesaurusIUnknown<<interface>>URLStreamHandleropenConnection()Parse URL()setURL()toExternalForm()OperationsCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRDependency Relationship•Definition: –some set of model elements requires presence of another set of model elements –for semantic completeness or correctness•Examples: –<<realize>>: between type and class–<<trace>>: analysis class and design class–<<create>>: source class creates a target class instance–<<access>>: permission of one pkg to access public elements of another–<<bind>>: reln between parameterized model elt with formal parameter list and that model elt bound to actual parameters. (e.g., templates in C++)CSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRDependency ExampleQueueBasetype, sizeQueueString, 400Integer Queue<<bind> <integer, 1000>>Explicit ParameterizationFormal parameter listActual parameter listCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRMetamodelsCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRClass Diagram MetamodelCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRObject ModelObject Model•Creation Tips–understand the problem–keep it simple at first, then refine later–choose class names carefully–try to have only binary relations–do not worry about multiplicities on first draft–do not feel you have to use all constructs–concentrate on WHAT–document reasons behind the model–refine until complete and correctCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRSTOPRemaining slides are a review of OOA processCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRDynamic ModelDynamic Model•Creation Tips–only construct state diagrams for object classes with meaningful dynamic behavior–verify consistency between diagrams for shared events–use scenarios to begin the construction of diagrams–let application decide on granularity and distinguish between actions and activities–make use of entry and exit actions for multiple transitions–use nested states to improve understanding/readability–distinguish state diagrams for super and subclasses–watch for race conditions in the diagramsCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRApproaching a ProblemWhere do we start?How do we proceed?CSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRWhere Do We Start?•Start with the requirements–Capture your goals and possible constraints–Environmental assumptions•Use-case analysis to better understand your requirements–Find actors and a first round of use-cases•Start conceptual modeling–Conceptual class diagram–Interaction diagrams to clarify use-cases–Activity diagrams to understand major processingRequirements Elicitation and AnalysisCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRHow Do We Continue?•Refine use-cases–Possibly some “real” use-cases•Using interface mockups•Refine (or restructure) your class diagram–Based on your hardware architecture•For instance, client server•Refine and expand your dynamic model–Until you are comfortable that you understand the required behavior•Identify most operations and attributesHigh-Level DesignCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRHow Do We Wrap Up?•Refine the class diagram based on platform and language properties–Navigability, public, private, etc–Class libraries•Identify all operations–Not the trivial get, set, etc.•Write a contract for each operation•Define a collection of invariants for each class•ImplementDetailed Design and ImplementationCSE870: Advanced Software Engineering: Extending and Using UML (Cheng)RRRWhy is requirements analysis


View Full Document

MSU CSE 870 - Using and Extending UML

Documents in this Course
HW2

HW2

3 pages

splc1

splc1

21 pages

Lessons

Lessons

3 pages

revision

revision

13 pages

ft1

ft1

12 pages

john.dsn

john.dsn

21 pages

Survey

Survey

2 pages

revision

revision

38 pages

Load more
Download Using and Extending UML
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Using and Extending UML and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Using and Extending UML 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?