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