Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman.

Slides:



Advertisements
Similar presentations
The Writing Process. What is it? Have you heard this phrase before? What do you know about the writing process? Have you heard this phrase before? What.
Advertisements

1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
PRESENTED BY USHA GHIMIRE. Introduction-The need for MBSE MBSE now and present shortcomings A view of MBSE in the future Key advantages and disadvantages.
University of Utah SoCCS Lecture 151 Inside UML CS6961 – Lecture 15 Nathan Dykman.
Agile Project Management with Scrum
CS 197 Computers in Society Fall, Welcome, Freshmen!
1 Intro to CIT 594 ~matuszek/cit594.html.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Welcome to CS680! Tue Thu 7pm - 8:15pm :-(
What is UML? A modeling language standardized by the OMG (Object Management Group), and widely used in OO analysis and design A modeling language is a.
Oct. 2, 2003CS WPI1 CS 509 Design of Software Systems Lecture #5 Thursday, Oct. 2, 2003.
Itntroduction to UML, page 1 Introduction to UML.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Unit 1 Sections 1-6 Sentence Frames
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 1: Active Reading & Thinking Strategies
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Welcome to my conference! February th grade Guadalupe.
Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Component Basics CS6961 – Lecture 6 Nathan Dykman.
Lecture 14: Stability and Control II Reprise of stability from last time The idea of feedback control Remember that our analysis is limited to linear systems.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
17-Dec-03 Intro to CIT 594 ~matuszek/cit594.html.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Object-Oriented Analysis and Design Fall 2009.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
BIT 115: Introduction To Programming Instructor: Jon Peck
1 CS Tutorial 5 Frid. Oct 23, 2009 Design Document Tutorial.
Software Engineering 1 Object-oriented Analysis and Design Chap 22 UML Tools and UML as Blueprint.
University of Utah SoCCS Lecture 121 Dynamic Models in Design CS6961 – Lecture 12 Nathan Dykman.
Documentation. Your documentation must fit the needs of your audience. It’s always better to say one thing that is useful, as opposed to many things that.
1 CS1100 Fall Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems CS100J:
How great ideas are KILLED Everything here is fictional. Some things may look like the real world.* v.1.0 *Except for Mario sprites, of course.
Use Cases CS 6961 – Lecture 4 Nathan Dykman. Neumont UniversityCS Lecture 102 Administration Homework 1 is due –Still reviewing the proposal, but.
Welcome to Seminar 8 “The wastebasket is a writer’s best friend,” by Isaac Bashevis Singer. -- Why do you think that is ?
Introduction to Psychology What IS Psychology? Why should I care about it?
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
Intro to CIT 594
EGR 2261 Unit 11 Classes and Data Abstraction  Read Malik, Chapter 10.  Homework #11 and Lab #11 due next week.  Quiz next week.
Before you begin this section on creating a document, be sure you have considered the suggestions in the previous sections on planning your project. Important.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
ICIST 2011 Mar , Nanjing, China Visualization in Software Architecture Helen Wu 1 Let’s Enforce a Simple Rule in Software Architecture Helen.
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
Unified OO becomes commonly used in the late 1980s Various analysis and design methods The “three amigos” join forces in Rational Software Also include.
1 Using Rational Rose ® to construct UML diagrams.
Animation for instruction. Good reasons to use animation Showing processes Showing dynamic relationships in space or time Exploring objects or spaces.
Unified Modeling Language (UML)
1 Requirements Engineering for Agile Methods Lecture # 41.
What is Wrong with Models?
CSC207 Fall 2016.
Development with Eclipse
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Engineering and Debugging an App Chapter 15
Introduction to Object Oriented Analysis, Design and Unified Modeling Language (UML) Shanika Karunasekera.
0. Overview of 2-Day Academic .NET Workshop
FM2 Section A Planning Workshop
Presentation transcript:

Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman

Administration See me after class if you need add codes. Questions before we start?

Instructor Reference Manual Things you should note: –If left unchecked, I can go way fast I have lots of enthusiasm for the area Maybe too much –I will try to pace myself, but help me out Ask questions, add comments, and so on. –I will try to remember that silence is not complicit understanding But speaking out helps as well

The Lay of the Land The class will focus a set of modeling and other techniques for the specification and design of complex systems. Modeling: “Software Blueprints” –In this class, we focus on UML (Unified Modeling Language) as the language we used to model. We also will discuss areas from RUP, XP, Agile, etc. as need.

What is UML? A modeling language standardized by the OMG, and widely used in OO analysis and design –A modeling language is a visual language for representing software blueprints –Latest version is 2.0 UML provides a standard notation, semantics for a set of OO abstractions

UML is a Modeling Language Modeling often refers to a (graphical) representation of software systems at higher levels of abstraction than code –UML has some “code-like” features. Modeling supports analysis and design of software. –Requirements, architecture and design is the areas we will focus on.

Modeling Modeling a growing, evolving area: –Modeling tools a part of every major IDE Eclipse, JBuilder, Visual Studio. Net, etc. –Not in Emacs. Nothing personal, mind you. Modeling a multi-billion market –Projected to undergo more growth in the next 5-7 years –UML 2.0 now considered by many to be “most successful” OMG standard ever Well, it gets the most noise, anyway. Many major companies interested in modeling.

Modeling Modeling is a “potential paradigm shift” in software development –Now: Models are a view on code –Later(?): Code and models mix (code generation, toolkits) –Future(??): Domain Specific Modeling Languages, Executable Models I believe modeling could become a large force in software development.

My Experiences Been using UML modeling since –In fact, I find it hard to do OO programming without UML tools now. I have applied UML ideas in industry and research –Industry: Lawrence Livermore National Labs, BEA, HP, Hill Air Force Base and more –Research: MS Thesis, UML 99 conf. paper One of the main authors of the UML 2.0 Specification

Applying Modeling, Process This class will have you apply UML in the context of three major “disciplines” –Requirements –Architecture/Analysis –Design You will create models in this area in the context of a project of your choosing –Learning to apply UML as you go along.

Why Project Based? I could structure the class more around lecture, homework, tests, but… –I think the real value comes in application What to keep, what to toss, what to change. –Also, no one “right way” to model. I think you will get more out of a project- based course in this area –I could be wrong. We can adjust if needed.

“Quizzes” To make sure that I’m conveying information effectively, I will have you do small homework assignments to judge understanding –Homework will be 1 or 2 questions, should require no more than minutes total –No quizzes the week before a project due Keep me honest on this.

UML Class Example Fowler notes that often, a Class Diagram is the first UML model you will see. So, let’s see an example. –A bit “real world” if you will.

Gotcha No, this isn’t how you learn class diagrams –We will start with simpler ones, of course. This is a section of a class library from SCIRun. –2D Core for SCI Run environment. –Made from reverse engineered C++ –Layout of class model done by hand

Okay, What’s the Point? Okay, you are in SCI working on SCIRun. You have to get to know the code. Would you prefer: –A: Browse though the files to look at the code, using the directory structure as a guide. –B: Browse though class models, being able to click on a class to view code. I’d chose B (I can always do A).

Complex Systems Sure, a big system may have 100s of diagrams to look over –But, it’s 100,000s lines of code! UML allows me to document structural aspects of software –UML can also show behavioral aspects of software as well. –We will cover both areas in this class.

Modeling as Exploration I use UML tools to explore existing code bases. –For OO system, it works really well. –I find it useful to go through the reverse engineering process, to get that to work. –I like being able to just place classes in a diagram and see how they relate to each other Most tools do this very well.

For Next Time Brainstorm potential project ideas –Things you might want to work on, etc. Bring in a list of this you want to learn about or cover in more detail. –Again, help shape the class Bring your friends –A good size class is always welcomed.