Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering.

Similar presentations


Presentation on theme: "CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering."— Presentation transcript:

1 CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818

2 CSE298 CSE300 OV-1.2 CSE333 What are Components?  ADTs as Unit of Abstraction/Conceptualization  Classes are OO Equivalent of ADTs  However, in Past 10 Years  Computing Power has Exploded  Application Complexity has Increased  Classes are Part of Inheritance Hierarchy  Inheritance Hierarchy Part of Application Class Library  In Past 10 years  Emergence of Java (and now.NET)  Emergence of Java Beans  Component-Based Development Tools

3 CSE298 CSE300 OV-1.3 CSE333 What are Components?  How are Applications Conceptualized?  Inheritance Hierarchies Partition Domain  Packages as Collections or Related Classes  Collections of Classes, Packages, Inheritance Hierarchies form Application Class Library  How are Class Libraries Utilized?  Use Individual Classes  Use Package or Subset of Package  Use Major Portions of Inheritance Hierarchies  Tools Use at Most a “Few” Select Packages and/or Hierarchies  Tools that Span Application Classes Represent Poorly Designed Software

4 CSE298 CSE300 OV-1.4 CSE333 Defining Component Concepts  A Component is Composed of One or More Classes (or Other Components) and is Intended to Support a “Constructed” Unit of Functionality  Classes Can be Utilized in Multiple Components  A Class Utilized in Multiple Components Maintains the “Same” Semantics in All of its Contexts  Our Interest Involves:  Reusable Components  Security Components  Distributable Components  Etc.

5 CSE298 CSE300 OV-1.5 CSE333 Components vs. Objects  Components  Business Oriented  Coarse Grained  Standards Based  Multiple Interfaces  Provide Services  Fully Encapsulated  Understood by Everyone  Objects  Technology-Oriented  Fine Grained  Language Based  Single Interface  Provide Operations  Use Inheritance  Understood by Developers

6 CSE298 CSE300 OV-1.6 CSE333 Components Types & Benefits  Application Template  Data Model  Data Structure  System Architecture  Process Model  Process Definition  Prototype  Plan Skeleton  User Interface Skeleton/GUI  Process Skeleton  Utility Components  Security Process  Etc.  Organizational Perspective  Shorten Development Time  Reduce Costs  Increase Competitiveness  Personnel Perspective  Increase Productivity  Customer Perspective  Achieve Greater User Satisfaction Through the Production of More Flexible Products

7 CSE298 CSE300 OV-1.7 CSE333 Component-Based Development Process TOP-DOWN: To determine what is needed to satisfy this need. BOTTOM-UP: To determine what is available to satisfy this need. OTHERS: Consider the similarity among concurrent projects. FUTURE: Consider the possibility of reusing in future projects.

8 CSE298 CSE300 OV-1.8 CSE333 Supplier /Consumer Model SUPPLY Build New Wrap Existing Buy CONSUME Assemble Applications MANAGE Publish Subscribe Catalog Browse

9 CSE298 CSE300 OV-1.9 CSE333 Specification Implementation Executable Interfaces Component

10 CSE298 CSE300 OV-1.10 CSE333 Components as Assets can Grow Complexity of Component

11 CSE298 CSE300 OV-1.11 CSE333 What are Component Dependencies?  Dependency Type of Components  Versions  Aggregations  Functional  Inheritance  Association  What is Impact of Each Dependency on the Reusability of a Component?

12 CSE298 CSE300 OV-1.12 CSE333 CBD life cycle BusinessDirection General Business Requirements User, Business and Data services Business and Data services ComponentRequirements UserServices Harvest

13 CSE298 CSE300 OV-1.13 CSE333 What is Distributed Component Systems?  Diverse Set of Topics that are Related  Relationship Axes Include:  Software Engineering  Object-Oriented Design and Programming  Distributed Computing  Component-Based Design  Security  Enterprise Computing  Objective:  Transition from Specification to Design to Development to Deployment via Components  Investigate Multiple Aspects of CSE

14 CSE298 CSE300 OV-1.14 CSE333 Semester Topics  Background: Software, OO Design, Java (1 week)  Software Architectures (1)  Component-Based Design  Unified Modeling Language (1)  Optimal Deployment of Distributed Objects (1)  Security Background and Design (2)  Refactoring/Reusable Components (2)  Service Based Computing  CORBA, JINI,.NET, Interoperability (2)  Security (2)  Semester Midterm and Final Presentations (2)  Course Exams (1)

15 CSE298 CSE300 OV-1.15 CSE333 Background: Software Engineering and Object-Oriented Design and Development  Motivation and Background Concepts  Software Engineering Qualities and Principles  Extensibility, Correctness, Reliability, etc.  Abstraction, Modularity, Incrementality, etc.  Revisiting Core Object-Oriented Concepts  Encapsulation, Hiding, Inheritance, etc.  Advanced Object-Oriented Concepts  Polymorphism, Dispatching, Generics, etc.  OO Design, Programming, and Databases  Assessing Available Technologies  Predicting the Future

16 CSE298 CSE300 OV-1.16 CSE333 Background: Java Language, Environment, Capabilities, and Risks/Benefits  Language/Environment Capabitities  Potential Risks: Standardization, Security Flaws, Performance, Portability  Significant Benefits: Client/Server/DOC, APIs, Database/Persistence  Acceptance and Retraining  What Must Software Professionals Understand to Successfully Utilize Java?  How Quickly Can Software Professionals Learn Java?  Where are we today?  Are there Long-Term Benefits of Java?  Can Java Interact with PLs, Legacy, COTS?

17 CSE298 CSE300 OV-1.17 CSE333 Software Architectures  Emerging Discipline in Mid-1990s  Software as Collection of Interacting Components  What are Local Interactions (within Component)?  What are Global Interactions (between Comps)?  Advantages of SW Architectural Design  Understand Communication/Synchronization  Definition of Database Requirements  Identification of Performance/Scaling Issues  Detailing of Security Needs and Constraints  Towards Large-Scale Software Development

18 CSE298 CSE300 OV-1.18 CSE333  UML is a Language for Specifying, Visualizing, Constructing, and Documenting Software Artifacts  What Does a Modeling Language Provide?  Model Elements: Concepts and Semantics  Notation: Visual Rendering of Model Elements  Guidelines: Hints and Suggestions for Using Elements in Notation  References and Resources  Web: www.rational.com/uml/ documentation.html  “The Unified Modeling Language Reference Manual”, Addison-Wesley, 1999.  “UML Toolkit”, Eriksson and Penker, John Wiley & Sons, Inc, New York, 1998. Component Based Design: UML

19 CSE298 CSE300 OV-1.19 CSE333 Component-Based Design: Optimal Deployment of Distributed Objects  Problem: Deployment of Distributed Software  New Distributed Application  Redeploying Existing Distributed Application  Distributing Standalone Legacy Application  How are Locations of Software Components Determined for Target Distributed Environment?  What Determines Component Placement?  Component Interactions?  Component Size?  Local/Remote Communication?  Ongoing Ph. D. work by C. Bastarrica  Guest Lecture by C. Bastarrica

20 CSE298 CSE300 OV-1.20 CSE333 Component-Based Design: Security Background and Design  Background on Security Concepts and Ideas  DAC, RBAC, MAC, etc.  Impact of Security on Software Design  Public Interface is Union of All Privileges for All Potential Users No Explicit way to Prohibit Access  Customizable Public Interface of Class: Variable and Based on User Needs and Responsibilities  Only Give Exactly What’s Needed and No More public class PatientRecord { private: Data/Methods as Needed; public: write_medical_history(); write_prescription(); get_medical_history(); get_diagnosis(); set_payment_mode(); etc… } For MDs and Nurses For MDs Only For Admitting

21 CSE298 CSE300 OV-1.21 CSE333 Component-Based Design: Reusable Component Framework  Popular OO Methodologies Omit /Ignore Reuse  Current Research Concentrates on Consumer (Reuser) and Not Producer (Creator)  Two-Fold Goal  Elevate Reuse to Equal Partner  Domain-and-Organization Specific Reuse  Capabilities of Evaluation Techniques  Identify the Reusable Portions of Design  Estimate/Measure Reusability Automatically  Provide Guidelines for Reuse Improvement  For Newly Created Designs and Legacy Code  Design Reuse Evaluation Tool: UML + Java

22 CSE298 CSE300 OV-1.22 CSE333 Service-Based Computing  What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing?  Software Reuse in a Distributed Computing Environment  Reuse Existing Legacy/COTS in Innovative Ways  Not Cost Effective to Redesign/Reimplement  EC Users will Demand Modern Interfaces on Up- to-Date Platforms  Wrappers for Cohesive/Seamless Interactions  Apply to Languages (C, C++, Ada, etc.) and Paradigms (OODBS, CORBA, RPC,.Net, etc.)  Address Communication, Translation, Security, Concurrency, Performance, Bandwidth, etc.

23 CSE298 CSE300 OV-1.23 CSE333 Service-Based Computing  What are Keys Issues that Influence and Guide the Integration Process for Enterprise Computing?  Communications Alternatives Dictated by Application Domain  Tradeoffs of Low-Level (Sockets) vs. Mid-Level (RCP, RMI) vs. High-Level (CORBA, DCOM, …)  Will Enterprise Computing Utilize Combination?  Consistency of Information in Distributed Computing Environment  When is Data Sent from Client to Legacy Server?  Automatic (Regular) vs. User-Initiated?  When Network Traffic is Low?  Enterprise Computing Spans Broad Spectrum

24 CSE298 CSE300 OV-1.24 CSE333 Service-Based Computing Legacy COTS Database NETWORK Java Client Java Client How is Security Handled for Individual Systems? for Individual Systems? Security Issues for New Clients? New Servers? Across Network? What if Security Never Available for Legacy/COTS/Database? for Legacy/COTS/Database? Can Software Agents be Utilized for Distributed Security? for Distributed Security? Authentication Is the Client who S/he Says they are? Authorization Does the Client have Permission to do what S/he Wants? Privacy Is Anyone Intercepting Client/Server Communications?

25 CSE298 CSE300 OV-1.25 CSE333 Course Projects, Exams, and Grading Still Evolving…  Individual/Team Course Project(s) (20% of Grade)  Optimal Deployment Design  Reusability Assessment  Security Definition/Analysis  Team Semester Project (40% of Grade)  Final Exam (40% of Grade)  Design Oriented/Relation/Integration of Topics  Essay-Oriented and Problem Solving  Read, Assimilate, Propose, Answer  Focus/Limit to Specific Topics  Notes:  Percentages, Projects, and Exams are all Subject to Change  Grade in Range of A to B-

26 CSE298 CSE300 OV-1.26 CSE333 Semester Projects and Presentations Still Evolving…  In-depth Examination of Class Topic  Formation of Student Groups  Up to 3 to 4 people per Group (Even Sizes)  Begin Working by 3rd Week of Semester  Topic Selection and Proposal of Work  Can Extend Prior Semester Project  Research Presentation (PPT Slides)  Talks and Interactions – Midterm and Final  Replaces Two to Three Weeks of Classes  See Prior Projects on Web Page  Accompanying Final Paper (25 pages)


Download ppt "CSE298 CSE300 OV-1.1 CSE333 Distributed Component Systems Overview and Course Objectives Prof. Steven A. Demurjian, Sr. Computer Science & Engineering."

Similar presentations


Ads by Google