![UML Overview [1/2]](https://data.docslib.org/img/3a60ab92a6e30910dab9bd827208bcff-1.webp)
2017 Spring CS350 Introduction to Software Engineering UML Overview [1/2] Young-Min Baek1 and Doo-Hwan Bae2 1,2Korea Advanced Institute of Science and Technology (KAIST) Daejeon, Republic of Korea 1 [email protected] 2 [email protected] Software Engineering Lab (SELab), KAIST Outline 1. Modeling a Software System A. What is Modeling? B. Modeling Languages 2. Unified Modeling Language (UML) A. What is UML? B. UML Diagram Taxonomy C. Software Modeling with UML 3. Design Activities with UML A. Development Process B. Types of UML Diagrams • Structural Diagrams • Behavioral Diagrams 2017 Spring. [CS350] Introduction to Software Engineering – UML Overview [1/2] 2/53 Notice TA Office Hour TUE/THU 14:30~17:30 Young-Min Baek, Mingyu Jin Software Engineering Lab, N1 #524 [email protected] [email protected] 3/53 We Want Better Software More reliable, less defects, better performance, higher quality, more familiar/comfortable interface, and so on THEN HOW? Software Engineering 4/53 How to Develop a System? Systematically Thorough analysis of stakeholders & requirements, better process, unambiguous understandings However, High complexity of a large project (A large number of components & a large amount of team work) Linguistic communication between teams or between team members is neither accurate nor reliable 5/53 How to Develop a System? THEN HOW? Model-based/driven Engineering Models are the standard representations and they are accurate and reliable. https://www2.warwick.ac.uk/fac/sci/physics/research/condensedmatt/imr_cdt/studen 6/53 ts/david_goodwin/teaching/modelling/l1_introuml.pdf Modeling a Software System 2017 Spring. [CS350] Introduction to Software Engineering – UML Overview [1/2] 7/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Software Development Process Process-People-Technology triad “While process is often described as a leg of the process-people-technology triad, it may also be considered the “glue” that unifies the other Software aspects.” Programmer Architecture/ Design Technique Telelogic Tau Logiscope, Programming Design Implementation Doxygen, etc. Telelogic Tau SDL Suite, Technique Designer IBM Rational Rose RT Process Telelogic Tau Project goal Analysis Test Testing TTCN Suite Requirement Business goal Technique Analysis Process Technique Tester Telelogic Tau Maintenance IBM Rational Analyst Rose Process People Maintenance Technology related Technology Technique People 8/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Here, We Focus on... We need Analyst Telelogic Tau G2 Designer We need analysis capabilities design skills Requirement Software Analysis Architecture/ Technique Design Technique Analyst Programmer Analysis Design Telelogic DOORS Software Configuration Eclipse, Jbuilder etc. Requirement Management Elicitation Programming Technique Technique SW Development Process Conceptualization Code Software Requirement Management Process Technology People Maintenance Test 9/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML For Analysis and Design of Software, We use a ‘MODEL’ to analyze requirements, to design/illustrate software architectures, to represent software behaviors, and so on. 10/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Model What is a model? A model is a simplification of reality Reality Modeling Model Requirements models Software system Analysis/design Implementation models 11/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Model What is a model? A model is an intended simplification of reality Models (i.e. specifications) describe structures and behaviors of a system they intend to model. Reality Modeling Model Requirements models Software system Analysis/design Implementation models Modeling is a proven and well-accepted engineering technique (e.g., Architectural model of houses and buildings, Mathematical models) 12/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Model (in Detail) What is a model? A model is a simplification of reality A model is the abstracted representation of requirements Requirements We have to start here. Reality Modeling Model Requirements models Software system Analysis/design Implementation models If the software system is not yet developed... 13/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Example Models in Real World Examples* *http://www.ursalhomes.com/briana-single-house-and-lot-for-sale-cavite/ 14/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Example Models in Real World Examples* *http://www.godesignsolutions.com.au/services/architectural_design_drawings 15/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Example Models in Real World Examples: Maps as abstractions http://www.cs.toronto.edu/~sme/CSC302/notes/02-03-IntroModeling.pdf 16/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Why Do We Use a Model? We model something To easily communicate information between different stakeholders in an unambiguous way 17/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Why Do We Use a Model? We model something To deal with problem complexity ABSTRACTION: Ignore detail to see the big picture **Every abstraction involves choice over what is important DECOMPOSITION: Partition a problem into independent pieces PROJECTION: Separate different concerns (views) and describe them separately MODULARIZATION: Choose structures that are stable over time, to localize change 18/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Why Do We Use a Model? Waterfall Model for software development* Requirement Design system/software models • To adequately represent/specify stakeholders’ and Specifications system requirements • To systematically implement a software based on the developed models System and Software Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance *http://pehop.com/waterfall-system-development-life-cycle/ 19/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Why Do We Use a Model? We model something To specify target-language-independent designs To provide structure for problem solving To provide mechanisms (abstractions, views, filtering, structure) to manage complexity To be able to easily experiment to explore multiple solutions To reveal key design decisions To uncover problems and figure out what questions to ask The exercise of modeling is more important than the model itself. Time spent perfecting the models might be time wasted… 20/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Typical Properties of Good Models Correct Every statement is one that the software shall meet Unambiguous It has only one interpretation Unambiguity is the fundamental Complete property of models It includes all the requirements Consistent No subset has conflict 21/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Modeling Language (ML) Definition A modeling language is any language with which a model can be described. An ML can be anything that helps you describe your system (e.g., pseudo-code, actual code, pictures, diagrams, or description) An ML contains two elements: Notation is the elements that make up a modeling language Semantics are the descriptions of what the notation means 22/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML What Can Be an Effective ML? Visual notation like UML can be a solution! 23/53 UML Unified Modeling Language 2017 Spring. [CS350] Introduction to Software Engineering – UML Overview [1/2] 24/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML History of UML “Method Wars” of object-oriented paradigm in 1990s OOAD, OMT, OOSE, Fusion, OOA/OOD Each of the methods had its own notation, process, and tools They needed to be unified in a refined & easy-to-understand modeling method 25/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Unified Modeling Language (UML) Unified Modeling Language Unified End to many similar approaches Standardized by OMG 26/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Unified Modeling Language (UML) Unified Modeling Language Unified End to many similar approaches Standardized by OMG Modeling Main (creative) process of software development 27/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Unified Modeling Language (UML) Unified Modeling Language Unified End to many similar approaches Standardized by OMG Modeling Main (creative) process of software development Language Provides notation, no method, no process Graphical, collection of different diagram types 28/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML Unified Modeling Language (UML) Visual modeling language for specifying, constructing and documenting Object-oriented modeling Model/view paradigm Target language independent http://www.uml.org 29/53 Modeling a Software System UML: Unified Modeling Language Design Activities with UML UML 2.0 UML 2.0 leverages
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages54 Page
-
File Size-