Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Designing Complex Software Systems: Introduction CS 6961 – Lecture 0 Nathan Dykman."— Presentation transcript:

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

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

3 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

4 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.

5 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

6 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.

7 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.

8 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.

9 My Experiences Been using UML modeling since 1997. –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

10 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.

11 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.

12 “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 30-45 minutes total –No quizzes the week before a project due Keep me honest on this.

13 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.

14

15 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

16 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).

17 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.

18 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.

19 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.


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

Similar presentations


Ads by Google