1 / 34

Get to Know Each Other

SE750 Software Modeling Wei Le people.rit.edu/wxlics wei.le@rit.edu 70-1557 PhD Program In Computing and Information Sciences. Get to Know Each Other. Name, where are you from? SE background Previous SE courses Software industry experience Experience with software modeling

Download Presentation

Get to Know Each Other

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SE750 Software ModelingWei Le people.rit.edu/wxlicswei.le@rit.edu 70-1557PhD Program In Computing and Information Sciences

  2. Get to Know Each Other • Name, where are you from? • SE background • Previous SE courses • Software industry experience • Experience with software modeling • Career goals • What do you want to learn from this course?

  3. Course Objectives Why software modeling is important What modeling techniques exist, when we should use them, and what their limitations are How to construct models for a software system

  4. Topics Basic modeling techniques: UML Constraints and invariants: OCL, Alloy Formal methods and specification languages: Z Software architecture Design patterns Reverse engineering: find models from code Verification: static analysis and model checking Model based software testing - background survey

  5. Start from next class • Basic topics • Lecture on the topic • Break: wild and crazy ideas • Advanced topics, presentations and discussions • One paper about the topic • Discussion of the paper • Homework, project review

  6. Class web http://people.rit.edu/wxlics/softwaremodeling General info, Schedule, Downloads http://mycourses.rit.edu Homework submissions – drop box Discussions: • FAQ - forum • Topics of Wild and Crazy Ideas Sessions - forum

  7. Syllabus • Office hours • Reading materials • Class Participation 10% • Homework 40% • Reading assignments • Modeling case studies • Presentation and discussions • 4. Final project 50%

  8. Reading Assignment Homework and reading assignment will be available on the course website after class: • Not a presenter write a paragraph about the paper: 1) what this paper about, 2) your like/dislike, 3) how to improve • Presenter 1)15 -20 minutes presentation, 2) prepare questions to lead 30 minutes discussions

  9. Roadmap for Today • Overview of Software Modeling • Break: wild and crazy ideas • Overview of UML

  10. Part I: Big picture What is a model? Why software modeling? What to model? How to obtain a model?

  11. Functional Model system What is a model? • Engineering model: abstraction A reduced representation of some system that highlights the properties of interest from a given viewpoint • We don’t see everything at once • We use a representation (notation) that is easily understood for the purpose on hand

  12. blueprint (model) building building Intuitive Understanding • A model is a description of something • “a pattern for something to be made” (Merriam-Webster) • model  thing that is modeled • The Map is Not The Territory

  13. <sawdust> <2 tons> <lard> <5 tons> <Ben&Jerry’s> (M0) Customer CustomerOrder (M1) id item quantity (M2) Class Association Meta-Models Objects Model Meta-Model

  14. Modeling Maturity Level • Level 0: No specification • Level 1: Textual • Level 2: Text with Diagrams • Level 3: Models with Text • Level 4: Precise Models • Level 5: Models only

  15. Why Software Modeling? • Schedule and divide tasks • Collaboration and communication (contract) • Decomposing complexity for coding • Checking for software (correctness, security) • Refactoring code ……

  16. What to Model? • Overall architecture of the system • System dependencies • Complexity • Flow of information through a system • Business requirements • Database organization and structure • Security features (attack models) • Configuration and environment ….

  17. How to Obtain Models? • Manually construct • Automatically transform from one model to another • Automatically recover from the code …….

  18. Wild and Crazy Ideas

  19. Wild and Crazy Ideas Topic: future of software engineering • Who is going to write code? pet/robot/people/software/reuse… • Whether software is going to be more reliable? more coders? more testers? more designers? more software incidents? can we write bug-free code? • What are the solutions? Modeling? Language? Testing? Better Programmers?

  20. Part II:UML Modeling – Overview

  21. UML Modeling • A language: syntax and semantics • Capture ideas, relations, decisions, requirements in a well-defined notations

  22. UML Diagrams • Structural : relations of objects (class diagram, component diagram) • Behavioral : sequence of actions (activity diagram, sequence diagram)

  23. UML Views One concept can be expressed in different graphs, choose one to express for your purposes, for your audiences • Design – class, structure • Deployment – configure, install, • Implementation – state chart, interaction • Process – performance, runtime behavior • Use case

  24. Domain concept vs. design representation of domain concept vs. code representation of domain concept

  25. Small Example: A Dice Game REQUIREMENTS: Player requests to roll the dice. System presents results: If the dice face value totals seven, player wins; otherwise player loses. Partial Requirements Class Diagram (sometimes referred to as Domain Model)

  26. Design Class Diagram

  27. Requirements vs. Design Perspectives

  28. Behavior – Assigning Responsibilities

  29. An “UltraLite” UML Process Behavioral Models Business Process Models Business Use Cases refine Requirements Models Structure Models Analysis Use Cases Requirements Class Diagram trace refine refine Design Models Interaction Diagrams Design Class Diagrams. trace code refine refine

  30. UML for Real Time UML for CORBA UML as a “Family of Languages” • The standard can be specialized for different domains Using extensibilitymechanisms UML 2.0 Standard etc.

  31. Extensibility Mechanisms • Extensibility Mechanisms • Allow Modelers to refine the semantics of UML for a specific domain • Extensions cannotviolate the standard UML semantics • Enforces a consistent core of concepts and semantics for every variation • Prevents meta-model explosion (Using UML to model everything and anything)

  32. The Basic Extensibility Mechanisms • Stereotypes • used to refine meta-classes (or other stereotypes) by defining supplemental semantics • Constraints • predicates (e.g., OCL expressions) that reduce semantic variation • can be attached to any meta-class or stereotype • Tagged Values • individual modifiers with user-defined semantics • can be attached to any meta-class or stereotype

  33. Summary • An Overview of Software Modeling • An Overview of UML To do: • Explore mycourses: FAQ, Wild Crazy Ideas Session • Reading Assignment – due Wed in class • Homework 1 – due Friday (9/9) 7:00pm

  34. Reading • Wiki Entry- Modeling Language • Wiki Entry - Modeling Mature Level • Wiki Entry - Meta Model • Article - Why do I need a modeling tool?

More Related