Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introduction.
Advertisements

3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
J2EE Architecture Overview
Apache Struts Technology
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Basic Concepts in Component-Based Software Engineering
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
An architecture for webb applications, J2EE
IS6112 Application Modelling and Design Introduction.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
Layers & Tiers Umair Javed Lec - 41.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
J2EE Java2 Enterprise Edition by Damian Borth. Contents Introduction Architectures styles Components Scenarios Roles Processing a HTTP request.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Java 2 Platform, Enterprise Edition (J2EE). Source: Computer, August 2000 J2EE and Other Java 2 Platform Editions.
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
J2EE Security and Enterprise Java Beans Mrunal G. Dhond Department of Computing and Information Sciences Master of Science, Final Defense February 26,
Enterprise Programming By J Pearce. Enterprise Software Sales HR Inventory Customer Support Shipping.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
CS6320 – J2EE L. Grewe MOTIVATION: E-commerce and Enterprise Computing Models Four models for e-commerce and enterprise computing: Four models for e-commerce.
Course Instructor: Aisha Azeem
UNIT-V The MVC architecture and Struts Framework.
The Design Discipline.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
UML - Development Process 1 Software Development Process Using UML (2)
Distributed Multitiered Applications The J2EE platform uses a multitiered distributed application model. Application logic is divided into components 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Chapter 4: Core Web Technologies
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
CS 493/693: Distributed Systems Programming V. “Juggy” Jagannathan CSEE, West Virginia University March 21, 2005.
Mapping Component Specifications to Enterprise JavaBeans Implementations Yi Liu and H. Conrad Cunningham Software Architecture Research Group Department.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Adaptive Hypermedia Tutorial System Based on AHA Jing Zhai Dublin City University.
Information System Development Courses Figure: ISD Course Structure.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
Component-Based Systems X LIU, School of Computing, Napier University TIP As computing systems become more and more complex, software reuse and component-based.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Basic Characteristics of Object-Oriented Systems
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
J2EE Platform Overview (Application Architecture)
Introduction to J2EE Architecture
Inventory of Distributed Computing Concepts and Web services
Distributed System Using Java 2 Enterprise Edition (J2EE)
Component--based development
JavaServer Faces: The Fundamentals
Chapter 6: Architectural Design
Software Architecture & Design
Presentation transcript:

Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group Dept. of Computer & Information Science University of Mississippi

28 Mar Acknowledgements Acxiom Corporation grant –“Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE)” University of Mississippi –School of Engineering –Department of Computer and Information Science

28 Mar Why Components? Contemporary context of “enterprise” software –large, complex distributed systems –shared use of preexisting software and data assets –changing requirements –short development schedules –incremental and decentralized development –economic pressures to increase productivity Creates needs –strong encapsulation (information hiding) –easy reuse, composition, and replacement of modules –persistence, transactions, security, etc.

28 Mar What is a Component? Clemens Szyperski: A software component is a unit of composition with a contractually specified interface and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

28 Mar Software Components Component1 provided interfaces required interfaces Component implementation Component2 required interfaces provided interfaces

28 Mar Course Principles Separation of concerns –product from the process –logic into architectural layers Use and adaptation of standard notations and methods –build on object-oriented analysis and design techniques –construct system of components –use Unified Modeling Language (UML) Development of software families

28 Mar Layered Architecture Can be used with a variety of user dialogs or batch. Client Part Server Part User Interface Creates what the user sees. Handles presentation logic. User Dialog User session logic. Transient state withinsession. Can sometimes be used with multiple user interfaces. Business Services Components correspond to stable business types. Operations can be combined with others in a transaction. Usually have persistent state (associated database). System Services Operations are new transactions. Components correspond to business systems. No dialog or client-related state. System Application Can be used with a variety of user dialogs or batch.

28 Mar Development Workflow Requirements Specification Provisioning Assembly Test Deployment Business requirements Domain models Use case models Technical constrains Use case models Components Component specs & architectures Applications Tested applications

28 Mar Course Structure 1.Component concepts and requirements definition –4 weeks 2.Component specification –4 weeks 3.Component implementation –5 weeks

28 Mar Part 1: Concepts and Requirements Component concepts Domain modeling –grammatical analysis, etc. –domain concept model (UML class diagrams) Use case modeling –analysis of business processes –examination of create/delete/update of entities –documentation of success and failure scenarios

28 Mar Domain Model Administrator * Person 1 * Student Instructor Course Student Schedule Instructor Schedule Term Section *** 11 1 * * 1 * * 1 *

28 Mar Use Case Model

28 Mar Scenarios Name: Make Schedule Initiator: Student Goal: Make a valid course schedule Success Scenarios: 1.Student logs in 2.Student asks to make schedule for some term 3.Student adds/deletes sections 4.Student submits schedule 5.System checks schedule validity 6.System notifies Billing systen Extensions 1. Login failure (a) repeat login 1a. Repeated login failure (a) access denied 5. Invalid schedule submitted (a) system notifies student (b) repeat beginning at step 3

28 Mar Part 2: Component Specification Design methods –Identification of components (core type analysis) –Discovery of operations (interaction modeling) –Refinement of specification and architecture details Approach –Emphasize systematic methods independent from specific component technologies –Support mapping of designs to different technologies

28 Mar Specification Phase Architecture Patterns Develop Business Type Model Identify Business Interfaces Identify System Interfaces & Ops Create Initial Comp Specs & Architecture Discover Business Operations Existing Interfaces Domain ModelUse Case Model Component Identification Existing Assets Business Interfaces Define Interfaces Information Models Refine Interfaces & Ops Specify Operation Pre/Postcondictions Specify Component- Interface Constraints Interfaces Refine Component Specs & Architecture System Interfaces Component Interaction Component Specification Interfaces Component Specs & Architecture Component Specs & Architecture

28 Mar Interface Responsibility Administrator > * Person > 1 * Student > Instructor > Course > Student Schedule > Instructor Schedule > Term > Section > *** 111 * * 1 * * * > IPersonMgt > ICourseMgt > ITermMgt

28 Mar Initial Component Architecture > Course Registration System > Billing System IBilling IPersonMgt ICourseMgt > PersonMgr > CourseMgr IMakeSchedule IChangeSchedule > TermMgr ITermMgt IUpdatePerson IUpdateCourse IUpdateTerm

28 Mar Part 3: Component Implementation Concepts of the target technology –Enterprise JavaBeans (EJB) Mapping specifications to target technology Design and implementation of component internals Assembly, testing, and deployment issues

28 Mar J2EE Architecture Browser Web Container HTML HTTP XML EJB Container EIS Resources JSP Pages Servlets XML JavaMail Enterprise Beans JMS JTA JDBC (or connectors)

28 Mar Architecture Mapping to EJB Dialog Software System Components Business Components > MakeSchedule > Course Reg System > PersonMgr > Person > Student

28 Mar Textbooks J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software, Addison Wesley, H. M. Deitel, P. J. Deitel, and S. E. Santry. Advanced Java 2 Platform: How to Program, Prentice-Hall, G.T. Heineman and W.T. Councill. Component-Based Software Engineering: Putting the Pieces Together, Addison Wesley, D. Rosenberg and K. Scott. Use Case Driven Object Modeling with UML: A Practical Approach, Addison Wesley, 1999.

28 Mar Instructor Experiences 25 graduate students in Fall 2002 Parts 1 and 2 satisfactory, but needs –better integration –complete and timely feedback on student projects –attention to design by contract methods Part 3 unsatisfactory and needs –earlier coverage of and more practice with EJBs –expanded attention to mapping of specifications to EJBs –stable software environment for student projects –coverage of user interface technology (e.g., JSP)