37
1 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.

How to hear this lecture

  • Upload
    samuru

  • View
    26

  • Download
    3

Embed Size (px)

DESCRIPTION

How to hear this lecture. Click on the icon: to hear the narration for each slide. fisher.osu.edu. Fisher logo. Analysis Dr. Rajiv Ramnath Director Collaborative for Enterprise Transformation and Innovation (CETI) - PowerPoint PPT Presentation

Citation preview

A Partnership for Performance

Partnership for PerformanceHow to hear this lectureClick on the icon: to hear the narration for each slide.

##

#1Partnership for Performancefisher.osu.eduFisher logoAnalysisDr. Rajiv RamnathDirectorCollaborative for Enterprise Transformation and Innovation (CETI)Department of Computer Science and Engineering, College of EngineeringThe Ohio State [email protected]://www.ceti.cse.ohio-state.edu

Partnership for Performance

#2UML A Notation for Capturing Software Engineering Work ProductsCollege of EngineeringThe Ohio State University

#Partnership for PerformanceUses of UMLAs SketchAs BlueprintAs Programming Language

Concepts (e.g. in a domain model)Specification (of software components)Implementation (tied to a language)Ref: Applying UML and Patterns, Craig Larman, Safari

##

#Partnership for PerformanceUse Case

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceUse Case Diagram Showing

Ref: http://www.agilemodeling.com/images/models/useCaseDiagram.jpg

##

#The extends arrow (or extends edge) is drawn from a use case X to a use case Y to indicate that the process X is a special case behavior of the same type as the more general process Y. You would use this in situations where your system has a number of use cases (processes) that all have some subtasks in common, but each one has something different about it that makes it impossible for you to just lump them all together into the same use case. In this case Distribute Transcripts and Distribute Fee Schedules extends Distribute Information to Students

6Partnership for PerformanceUse Case Diagram Showing Uses

Intake ProcessorClient System

#The uses arrow (or uses edge) is drawn from a use case X to another use case Y to indicate that the process of doing X always involves doing Y at least once (although it may involve doing it many times, "at least once" is the only relationship guaranteed by this symbol.) This symbol can be referred to as an aggregation operator, because it indicates that a given use case is an aggregate (made up of parts) whose components are the use cases that it uses. If a certain use case uses several others, that means that all of the component use cases must be completed in the process of completing the aggregate use case, although there is no specification in UCDs of the order in which these are completed. A brief, mnemonic way to think about the uses arrow is that it it can be read X uses Y means that "X has a Y" as part of it's behavior.

7Partnership for PerformanceClass Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#ClassCardinalityAssociationConstraintGeneralizationAttributesOperations8Partnership for PerformanceAssociation

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceObject Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceSequence Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceCollaboration (Communication) Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceState Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceActivity Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#Activity diagrams are typically used for process modeling, such as for modeling the logic captured by an entire use case or set of use cases, or for modeling the detailed logic of a business rule.14Partnership for PerformanceAdvanced UML 1

Ref: UML Distilled, Martin Fowler: Safari

AggregationComposition (cannot exist outside of)

Static Operations

##

#Partnership for PerformanceAdvanced UML - 2

InterfacesRef: UML Distilled, Martin Fowler: Safari

##

#Partnership for PerformanceAdvanced UML - 3

Ref: UML Distilled, Martin Fowler: SafariInteraction Overview Diagram

##

#Interaction overview diagrams are variants on UML activity diagrams which overview control flow. The nodes within the diagram are frames instead of the normal activities which you would see on an activity diagram. There are two types of frame shown: interaction frames which depict any type of UML interaction diagram (sequence diagram, communication diagram, timing diagram, interaction overview diagram) or interaction occurrence frames which indicate an activity or operation to invoke.17Partnership for PerformanceAdvanced UML 4

Ref: http://www.agilemodeling.com/style/activityDiagram.htmSwimlanes

##

#Partnership for PerformancePackage Diagram (Package == Namespace)

Ref: UML Distilled, Martin Fowler: Safari

##

#A package diagram depicts the dependencies between the pieces (each piece being a package) that make up a model.

Package diagrams can use packages containing use cases to illustrate the functionality of a software system broken up into subsystems.Package diagrams can use packages that represent the different layers of a software system to illustrate the layered architecture of a software system. The dependencies between these packages can be adorned with labels / stereotypes to indicate the communication mechanism between the layers.

19Partnership for PerformanceDeployment Diagram

Ref: UML Distilled, Martin Fowler: Safari

##

#The deployment diagram shows how a system will be physically deployed in the hardware environment. Its purpose is to show where the different components of the system will physically run and how they will communicate with each other. (Ref: http://www.ibm.com/developerworks/rational/library/769.html)20AnalysisCollege of EngineeringThe Ohio State University

#Partnership for PerformanceWhat is Analysis?Analysis = Understanding:In general: separating the target of the analysis into its component partsUnderstanding static structureUnderstanding dynamic behaviorCapturing this in documents or tacitlyDomain Analysis: Understanding the domainStatic structure aka Domain Model Problem Analysis: Understanding the problemSolution Analysis: Defining the solutionInteractions at the system boundary, no deeper

##

#Partnership for PerformanceProcess and TechniquesFocus on target of analysis (not a solution to an immediately perceived problem)Do not introduce designBe iterative and incrementalTechniques:Reuse existing models (CBM?, Porter? Value Chain?)Create a categorized list of things in the domainCreate narratives and extract nouns (objects) and verbs (responsibilities)Build class and object models for static structureUse sequence, collaboration, state and activity diagrams for dynamic behaviorUse CRC Cards to socialize the process of analysis

##

#Analysis Using Structured ProcessesCollege of EngineeringThe Ohio State University

#Partnership for PerformanceAnalysis Work-ProductsAnalysis GuidelinesDomain AnalysisPart 1 of projectCreate a Domain Model using an object diagramProblem AnalysisStart with Problem Statement (note overlap with Requirements)Use a problem object diagram to describe the static aspects of the problemExplain problem scenarios using sequence, collaboration, activity or state diagramsSolution AnalysisStart with Use Cases (note overlap with Requirements)Explain scenarios using sequence, collaboration, state, or activity diagramsDescribe interface objects using object and class diagrams

##

#Partnership for PerformanceNotes on Analysis GuidelinesDone jointly by the developers - team leader and analystsKeep minimal and not overly restrictiveWork product guidelinesWhich work productsTemplatesNaming conventionsDiagramming conventionsProcess guidelinesHow should the team do the analysisCreate scenarios from use cases, possible sketch UI screens, look at the as-is systemCRC Cards

##

#Partnership for PerformanceNotes on Solution ScenariosElaboration of a Use Case (one path through a use case)Tradeoff: New use case vs. adding a scenario to existingUse case + Assumptions + OutcomesHow to create:Identify all the different outcomes in the use caseTechniquesUse domain experts, look at similar examples Web reservation systems (itn.com), ATM systemsReviewing the Problem statementWalking through case studies or storyboardsSuccessful and unsuccessful outcomesLook at each subclass of the actors involved

Reference: Developing Object-Oriented Software An Experience-Based Approach, Chapter on Analysis

##

#Partnership for PerformanceNotes on Sequence DiagramsGraphical representation of each scenario (could combine scenarios, or explore only major ones)). UML notation.Used to discover or validate class responsibilitiesObject messages or internal activitiesComponentsObjectTime lineMessages - synchronous or asynchronousloops, returns, internalAdviceKeep messages in EnglishFeel free to annotate to properly describe the problem

Reference: Developing Object-Oriented Software An Experience-Based Approach, Chapter on Analysis

##

#Partnership for PerformanceNotes on Object and Class ModelsUse the sequence diagrams to derive and validate thisUML NotationComponentsObjects and ClassesRelationships (aggregation (component), IS-A (inheritance), association (relationship))AttributesMethodsQuestion: Why is an object model used in analysis, not a class model?

Reference: Developing Object-Oriented Software An Experience-Based Approach, Chapter on Analysis

##

#Partnership for PerformanceNotes on Domain ModelIllustrates important business conceptsUsed in analysisOften serves as software business objects an interface layer in designAlong with problem object modelRef: Applying UML and Patterns, Craig Larman, Safari

##

#Partnership for PerformanceDomain Model - Example

Ref: Applying UML and Patterns, Craig Larman, Safari

##

#Partnership for PerformanceNotes on CRC Cards - Template

Ref: A Laboratory For Teaching Object-Oriented Thinking Kent Beck, Ward Cunningham electronic reference

##

#Partnership for PerformanceNotes on CRC Cards - Example

Ref: Applying UML and Patterns, Craig Larman, Safari

Ref: A Laboratory For Teaching Object-Oriented Thinking Kent Beck, Ward Cunningham electronic reference

##

#Agile AnalysisCollege of EngineeringThe Ohio State University

#Partnership for PerformanceAgile Analysis Mostly About Values and Practices, Less About TechniquesAn integral part of requirements definition not a separate phaseModel with othersModel in small incrementsCollective ownershipPurpose determines modelCreate several models (in parallel)Use simple toolsProve it with codeSingle source of informationDisplay publiclyActive stakeholder involvement

Ref: Visual Studio Team System: Better Software Development for Agile Teams, Will Stott; James W. Newkirk, Safari. Agile 101.pdf ThoughtWorks Inc. CSE 757 Course Site

##

#Partnership for PerformanceAgile UML Modelling Use Case Sketch

##

#Partnership for PerformanceThank you!

##

#