Announcements � Quiz #3- Thursday – What will it cover? ● All readings assigned since the last quiz INF 111 / CSE 121: ● Plus the readings not covered on the last quiz: Software Tools and Methods ● Through slide 54 in today’s lecture ◘ Configuration Management ◘ Only through the first break! ◘ Only through the first break! � Readings on UML Lecture Notes for Summer Quarter 2008 ● Another book on UML: Michele Rousseau ◘ McLaughlin, Pollice & West (2006). Head First Object-Oriented Analysis & Design. O’Reilly, 2006. � Assignments ● #1 has been graded Lecture Notes 7 - UML ● Assignment #3 will be posted later this week Lecture Notes 7 - UML 2 Last Lecture Today’s Lecture � Quiz #2 � Finish up � Configuration Management ● Configuration Management ◘ Version Control � Modeling ● OOAD OOAD ◘ UML • Class Diagrams • Use Case Diagrams • Sequence Diagrams Lecture Notes 7 - UML 3 Lecture Notes 7 - UML 4 CASE tools for configuration management CM workbenches � Open workbenches � CM processes are often standardised ● procedures are pre-defined ● Tools for each stage in the CM process are integrated � Lots of Docs and Data to be managed ◘ Includes organizational procedures � Tools make it possible � Integrated workbenches g � Can be � Can be… ● Provide whole-process, integrated support ● Individual tools ◘ More tightly integrated tools � easier to use. ● Workbenches ◘ Less flexible in the tools used ● Environments • Have to use tools built in Lecture Notes 7 - UML 5 Lecture Notes 7 - UML 6 1
Change management tools Version management tools � Change management is a procedural � Version and release identification process ● assigns identifiers automatically for each new version ● it can be modelled & integrated with a version � Storage management. management system. ● Stores the differences between versions (the delta) ◘ rather than all the version code. � Change management tools � Change history recording ● Form editor ● Record reasons for version creation. ◘ supports processing the CRFs ◘ supports processing the CRFs � Independent development ● Workflow system ● Only one version at a time may be checked out for change. ◘ define who does what ● Parallel working on different versions. ◘ automates information transfer; � Project support ● Change database ● Manages groups of files associated with a project ◘ manages change proposals ◘ rather than just single files. ◘ linked to a VM system ● Change reporting system ◘ generates management reports (CR status) Lecture Notes 7 - UML Lecture Notes 7 - UML 8 7 Moving on to OOAD Delta-based versioning � Object Oriented Analysis & Design (OOAD) using… ● UML – Part ◘ Overview ◘ More details in discussion Lecture Notes 7 - UML Lecture Notes 7 - UML 9 10 Brooks on Invisibility of Software What is UML? Unified Modeling Language (UML) “Software is invisible and unvisualizable . Geometric abstractions are powerful tools.” Let’s break it down: “As soon as we attempt to diagram software structure, we find it to Unified constitute one, but several general directed graphs, superimposed on upon another. The several graphs may represent the flow of � In 1994, control, the flow of data, patterns of dependency, time sequence, ● Two important methodologists Rumbaugh and Booch name-space relationships. These are usually not even planar, decided to unify their approaches in 1994 decided to unify their approaches in 1994 much less hierarchical. Indeed , one of the ways of establishing � In 1995, another methodologist, Jacobson, conceptual control over such structure is to enforce link joined the team cutting until one or more of the graphs becomes hierarchical .” ● His work focused on use cases � In 1997, ● the Object Management Group (OMG) started to standardize UML Lecture Notes 7 - UML 11 Lecture Notes 7 - UML 12 2
Models Why make models? � Systems are complex and hard to understand Models are abstract representations ● The world, organizations, relationships, software � Contain essential characteristics and omit non-essential details � Models can make certain aspects more clearly visible than in the real system � Models can be representations of the world � What can you do with models? ● Domain models ● Domain models ● Express your ideas and communicate with other ● Requirements engineers ● Reason about the system � Models can be representations of software ◘ detect errors ● Specifications ◘ predict qualities ● Generate parts of the real system ● Design ◘ Code ● Systems ◘ Schemas Can reverse engineer a system to make a model Lecture Notes 7 - UML 13 Lecture Notes 7 - UML 14 Architecture not usually a good What constitutes a good model? example… � A model should… … BUT ● Provide abstraction Imagine the building the Biltmore ● Render the problem in a format amenable to � 175,000 Sq. Ft. (that’s 4 acres) reasoning ● use a standard notation � 250 rooms ● be understandable by clients and users ● be understandable by clients and users � 35 bd/43 ba. ● lead software engineers to have insights about � 65 fireplaces the system ● make the problem solvable computationally � 125,000 acre lot (that’s 195 sq mi) ◘ Be good enough ● Be a tool for communication Lecture Notes 7 - UML 15 Lecture Notes 7 - UML 16 Where would you begin? What constitutes a good model? A model should… � Abstract away unnecessary details � Provide a means to reason about the system � Use a standard notation � A model helps reduce � Be understandable by clients and users complexity � Lead software engineers to have insights ● Eliminates details that are not necessary at the time about the system ● Allows you to divide an conquer large � Be a tool for communication tasks Lecture Notes 7 - UML 17 Lecture Notes 7 - UML 18 3
Remember: It’s only a model Modeling Languages � Natural language There will always be: ● Extremely expressive and flexible � Phenomena in the application domain that ● Very poor at capturing the semantics of the model are not in the model (abstraction) ● Better used for elicitation, and to annotate � Details in the application that are not in models for communication the model (abstraction) the model (abstraction) � Semi-formal notation ● Just what you need ● Captures structure and some semantics ● Can perform (some) automated reasoning, � A model is never perfect consistency checking, animation, etc. ● “If the map and the terrain disagree, ● Mostly visual - for rapid communication with a variety of stakeholders believe the terrain” Examples : diagrams, tables, structured English, etc. Lecture Notes 7 - UML 19 Lecture Notes 7 - UML 20 Modeling Languages (2) Unified Modeling Language (UML) � Formal notation UML is a … ● very precise semantics, extensive reasoning ● semi-formal graphical (visual) modeling language possible ● Object Modeling Language (OMD) ● Can automate reasoning, consistency checking, completeness checking, simulation, etc.. ● A way to communicate details… ● Every detailed models ) ◘ Code ◘ Architecture ◘ Architecture � Uml is descriptive � tries not to be prescriptive … essentially it is a set of diagrams used to model the system Lecture Notes 7 - UML Lecture Notes 7 - UML 21 22 3 Common Way to Use UML UML as a Sketch � Helps communicate some aspect of the system ● Forward & reverse engineering � Sketch - Quick Communication � “Rough out” issues in the code Abs � Not all of the code – just parts that you are � Blueprint – Complete Specification � Blueprint Complete Specification working on immediately working on immediately traction ● Selective communication � NOT complete specification � Programming Language � Short discussion with a team ● (10 min – 1 day) � Quick and Collaborative � Informal Lecture Notes 7 - UML Lecture Notes 7 - UML 23 24 4
Recommend
More recommend