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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

RO-1.1 Research Efforts in Software Engineering Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut Storrs,
CS487 Software Engineering Omar Aldawud
CSE298 CSE300 Overview of Presentation Reuse Background Reuse Background Development Process Development Process Component-Based Development Component-Based.
8.
Introduction To System Analysis and Design
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
OV-1.1 CSE4939 CSE4939 CS & E Design Laboratory Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CSE.RO-1.1 Research Efforts in Computer Science & Engineering at UConn Prof. Steven Demurjian, Prof. Reda Ammar, Prof. Robert McCartney, Prof. Thomas Peters,
- 1 - Component Based Development R&D SDM Theo Schouten.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Enterprise Architecture
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
230EA.1 CSE 2102 CSE2102 Exam Advice and Hints Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 271.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
OV-1.1 CSE2102 CSE2102 Intro to Software Engineering Prof. Steven A. Demurjian, Sr. Director, CS&E Graduate Program Computer Science & Engineering Department.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
The Systems Development Life Cycle
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Part VII: Design Continuous
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Software Design Process
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
OV-1.1 CSE230 CSE230 Introduction to Databases Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371.
Advanced Software Engineering Dr. Cheng
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Overview of System Engineering
An Introduction to Software Architecture
Quality Assurance for Component-Based Software Development
Presentation transcript:

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 (860)

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

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

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.

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

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

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.

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

CSE298 CSE300 OV-1.9 CSE333 Specification Implementation Executable Interfaces Component

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

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?

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

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

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)

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

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?

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

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: documentation.html  “The Unified Modeling Language Reference Manual”, Addison-Wesley,  “UML Toolkit”, Eriksson and Penker, John Wiley & Sons, Inc, New York, Component Based Design: UML

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

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

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

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.

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

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?

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-

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)