L5 - February 22, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm.

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Advertisements

Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Interaction Diagrams.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
Object-Oriented Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Copyright © 2008 Pearson Prentice Hall. All rights reserved. 1 1 Committed to Shaping the Next Generation of IT Experts. Chapter 2: Relational Databases.
CA 121 Intro to Programming Tariq Aziz and Kevin Jones GUI Programming in Visual Studio.NET Chapter 1 Tariq Aziz and Kevin Jones.
© Copyright Eliyahu Brutman Programming Techniques Course.
Compunet Corporation Programming with Visual Basic.NET GUI Week # 11 Tariq Ibn Aziz.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 13: Advanced GUI and Graphics
Use Case Analysis – continued
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
Java Beans.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Introduction to Graphical User Interfaces. Objectives * Students should understand what a procedural program is. * Students should understand what an.
IE 411/511: Visual Programming for Industrial Applications
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 13 (Online): Object-Oriented Data Modeling Modern Database Management 10 th Edition.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
1 Creating Windows GUIs with Visual Studio. 2 Creating the Project New Project Visual C++ Projects Windows Forms Application Give the Project a Name and.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Visual Basic.Net. Software to Install Visual Studio 2005 Professional Edition (Requires Windows XP Pro) MSDN Library for Visual Studio 2005 Available.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Building Enterprise Applications Using Visual Studio®
Dive Into® Visual Basic 2010 Express
CompSci 280 S Introduction to Software Development
DATA REQIREMENT ANALYSIS
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Chapter 1: An Introduction to Visual Basic 2015
Visual Basic Code & No.: CS 218
Introduction to Computer CC111
Chapter Topics 15.1 Graphical User Interfaces
Introduction to Visual Basic 2008 Programming
1. Introduction to Visual Basic
VISUAL BASIC.
CIS16 Application Development Programming with Visual Basic
Review CSE116 2/21/2019 B.Ramamurthy.
CS 8532: Advanced Software Engineering
Chapter 15: GUI Applications & Event-Driven Programming
On the notion of Variability in Software Product Lines
Overview of the IDE Visual Studio .NET is Microsoft’s Integrated Development Environment (IDE) for creating, running and debugging programs (also.
Presentation transcript:

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm Shift

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 2 Agenda Review Text Chapter 3: Dealing with Change –Questions from Chapter 3 Lecture: Graphically Based Code Generation Special Topic: Capturing Variability in Reusable Assets’ Designs Text: “Software Factories” Chapter 4, Paradigm Shift Reverse Quiz Q&A

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 3 Chapter 3: Questions Dealing with Change Your questions: My Questions:

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 4 Lecture 5: Graphically Based Code Generation Definition: Generating source code for a module or sub-system (in very, very rare cases whole systems) from a graphical specification. –(yup, the same as the def. for last week’s Specification Based Code Generation lecture with the addition of one word, Graphical is just a format for specification.) –Specification is written in a language and/or graphical representation, or both. e.g. UML, ER Diagrams –These specification languages are usually limited in scope by engineering domain (e.g. GUI development) or application domain (e.g. business automation)

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 5 Graphical Specification is Still a Specification Based Approach Most of what we said last week about specification based code generation still applies: –Code generators are almost always domain specific. These may be engineering domains or application domains. Remember, not all domain specific reuse technologies are code generators. –Early successes in specification based code generation, most of which are domain specific are in well understood, relatively broadly applicable domains: GUI Generation, Database applications, work flow apps.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 6 Examples of Graphically Based Code Generation Products GUI Generation: –Visual Basic –Visual C++ MFC Database Applications/Sub-Systems –PowerBuilder –Access Assisted Spec Based and Graphical Generation –Visual Studio Database Project Wizard Assisted Specification Based Generation of Database, Graphical Based table relations.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 7 Graphically Based Code Generation The (Usual) Approach Create: Create the Project, or Add to a Project. Draw and Annotate: Using a set of specific symbols, their associated meanings and defined relationships among the symbols, and definable properties (annotations) a picture is drawn using an editor designed for the purpose. Generate: The editor or an associated tool is used to “compile” the picture, generating a set of code which produces a significant portion of the system or sub-system defined by the picture. Complete: Then associated tools and/or components from libraries along with custom code are used to complete the system.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 8 GUI Generation Example: Visual Basic - 1 Create Project –New Project, type Visual Basic – Windows Application Generates an application with one GUI form. View GUI or View Code Expand generated code. Draw and Annotate: –Add a text box, and a button. –Annotate the symbols (button and textbox) –Re-Draw (drag and drop, stretch, etc.)

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 9 GUI Generation Example: Visual Basic - 2 Generate –Sometimes, done synchronously with ‘draw and annotate’. Sometimes you implicitly invoke generation. –Click right and ‘View Code”’ on the button. –Double click on a GUI symbol (e.g. a button) and look at the code again, you’ll see new generated code. Complete –Use drop down list of local variables/objects. –Add code as appropriate. –F5 to build and run.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 10 Microsoft Visual Studio and Microsoft Foundation Class (MFC) tools: CodeGenerationMfc Drag and Drop definition of a GUI –EditField –Button Generation of code to react to GUI events Generation of code for code objects that represent GUI objects. Linking behavior to events to objects. Generation of a template GUI –Borders –Min/Max behavior All of this is from generated Code –Can be edited with generator, or manually or both (if you’re careful) –Manual edits can override generated code changes, and vice versa.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 11 GUI Generation Example: VC++/MFC – 1 Create Project –New Project, type Visual C++/MFC Application Application Type: select ‘Dialog based’ Choose: User Interface Features, etc. (early annotation) –Generates an application with one GUI form. View GUI or View Code Expand generated code. Draw and Annotate: –Add a edit control (VB’s ‘text box’), and a button. –Annotate the symbols (button and edit control) –Re-Draw (drag and drop, stretch, etc.)

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 12 GUI Generation Example: VC++/MFC – 2 Generate –Sometimes, done synchronously with ‘draw and annotate’. Sometimes you implicitly invoke generation. –Click right on the edit control and select ‘add variable’. Define it, then switch to “Class View”. –Go back to Resource view, click right on button, and select ‘Add event Handler’, then ‘add and edit’. Complete –Use class view to navigate objects and members (variables) –Add code as appropriate. –F5 to build and run.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 13 Other Graphical Specification Generation Examples: We’ll hold this for another week – when time is available. Visual Studio Database Project Rational XDE Generates Architectural Design Level Code from UML “drawn” specifications.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 14 Other Specification Driven Technologies Some Specification Based technologies do not generate code. –Some Specification Based generators generate executable systems, without producing human readable code. –Some interactively work with user, question and answer based, then generates formal requirements statement. –Some generate designs directly from requirements statements, but not code or executables. –Some generators generate source code, often partial implementations from designs. Example: IBM’s Rational XDE

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 15 Special Topic: Variation Points and Variants Capturing Variability in Reusable Assets’ Designs –Commonality/Variability analysis identifies ways in which all the possible uses of an asset are similar (commonality), as well as the ways in which they can differ (variation). –The ways they differ is by picking one of several ways a specific feature or attributes can be implemented. –The feature or attribute is the variation point. –All the possible ways in which that feature (variation point) can be implemented are the variation point’s variants.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 16 Variation Point Reusable Software Asset: A component that can be used to categorize information. –Application example: categorizing books in a library. –Each piece of information (an asset) can be ‘tagged’ as belonging to a category, or classification. –Administrators of asset collections can tag assets, untag assets, and retag assets. –Researchers can define a search made up of classification tags, search for a list of assets that match that classification, and then retrieve assets from that list. Variation Points: How classification terms (tags) can be defined, organized, used, etc.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 17 Variation Point’s Variants Simple Flat Classification –A list of terms is defined, and there is no relationship among terms. –Any asset can be classified by any one term. –When a researcher searches on that term, they get a list of assets tagged by that term. Simple Hierarchical Classification –A structure of terms id defined, where some terms (e.g. Automobile) are specialized sub-classes (e.g. truck or car) of other super-classes. –Any asset can be classified by any one term. –When a researcher searches on that term, they get a list of all assets tagged by that term AS WELL AS all assets tagged by its sub-classes terms. Compound Flat Classification –An asset can be tagged by multiple terms, -and/or- –A researcher can put multiple terms in a search. Faceted Classification –Hierarchical with multiple root classes

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 18 Break 15 minutes Next: “Software Factories”, Ch 2: Dealing with Complexity

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 19 Ch 4: Paradigm Shift “The Structure of Scientific Revolutions”, 1970, Thomas Kuhn –Physicist, Philosopher, Historian (of science) –“The Copernican Revolution”, 1957 –“The Function of Measurement in modern physical science”, 1961 –“The Essential Tension, Selected Studies in Scientific Tradition and Change”, 1977 –“Black-Body Theory and the Quantum Discontinuity ( )”,1987 –Originator of the expression, “Paradigm Shift”

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 20 Ex. 2 Reusable Asset Design Revisit your exercise 1 submission –If you feel you need to change your exercise 1 submission to be able to complete exercise 2, you may do so by resubmitting a new exercise 1 reusable asset description and CV analysis, along with exercise 2. Describe the high level design of your reusable asset. In the design explicitly address: –Identify in your design the commonality and variability you described in exercise 1 as variation point(s) and variants. –Identify which portions of your reusable asset will be via static source code, by parameterized code, and by generated code.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 21 Reverse Quiz Quiz covers: Anything we have covered in class up through tonight’s session. You write down 1 to 3 questions that you think would be appropriate for a quiz on this material. Pass the questions up to the instructor. The instructor takes the quiz. You get the answers.

L5 - February 22, 2006copyright Thomas Pole , all rights reserved 22 Questions? Read the introduction through chapter 5, “Software Factories” for next week. Submit Exercise 2 by prior to 7:30 PM Tuesday February 28 (7:30 PM the day before class)