340 likes | 483 Views
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
E N D
SE750 Software ModelingWei Le people.rit.edu/wxlicswei.le@rit.edu 70-1557PhD 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 • Career goals • What do you want to learn from this course?
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
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
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
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
Syllabus • Office hours • Reading materials • Class Participation 10% • Homework 40% • Reading assignments • Modeling case studies • Presentation and discussions • 4. Final project 50%
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
Roadmap for Today • Overview of Software Modeling • Break: wild and crazy ideas • Overview of UML
Part I: Big picture What is a model? Why software modeling? What to model? How to obtain a model?
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
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
<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
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
Why Software Modeling? • Schedule and divide tasks • Collaboration and communication (contract) • Decomposing complexity for coding • Checking for software (correctness, security) • Refactoring code ……
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 ….
How to Obtain Models? • Manually construct • Automatically transform from one model to another • Automatically recover from the code …….
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?
UML Modeling • A language: syntax and semantics • Capture ideas, relations, decisions, requirements in a well-defined notations
UML Diagrams • Structural : relations of objects (class diagram, component diagram) • Behavioral : sequence of actions (activity diagram, sequence diagram)
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
Domain concept vs. design representation of domain concept vs. code representation of domain concept
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)
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
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.
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)
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
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
Reading • Wiki Entry- Modeling Language • Wiki Entry - Modeling Mature Level • Wiki Entry - Meta Model • Article - Why do I need a modeling tool?