Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.

Slides:



Advertisements
Similar presentations
Copyright, UCL LEADERS: Linking EAD to Electronically Retrievable Sources Developing a Generic Toolkit: Architecture and technology issues ALLC/ACH Conference.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Chapter 13 Review Questions
Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
A component- and message-based architectural style for GUI software
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Objectives In this session, you will learn to:
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Internet Sellouts Final Presentation Enterprise Architecture Group.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
ASP.NET Programming with C# and SQL Server First Edition
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
SaaS Software Container By Brian Moore Paul Kopacz.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
Systems Design. Systems Design Skills People skill (25%) - Listening, understanding others, understanding between two lines, conflict resolution, handling.
JWST Integrated Modeling Environment James Webb Space Telescope.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
The Design Discipline.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Introduction to Databases
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
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
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Cohesion and Coupling CS 4311
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
10/25/20151 Single Sign-On Web Service Supervisors: Viktor Kulikov Alexander Sherman Liana Lipstov Pavel Bilenko.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Service Layers Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2009 Session 6, Lecture 6: March 4, 2009.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
IT and Network Organization Ecommerce. IT and Network Organization OPTIMIZING INTERNAL COLLABORATIONS IN NETWORK ORGANIZATIONS.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
WEB SERVER SOFTWARE FEATURE SETS
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.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Ch > 28.4.
MANAGING KNOWLEDGE FOR THE DIGITAL FIRM
Component-Based Software Engineering
An Introduction to Software Architecture
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Presentation transcript:

Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process

CS-Domain Definition Collaborative Systems are multi-user software systems used to exchange information among those users, primarily by conversations in the form of text messages and associated files. The purpose is to allow multiple users to discuss issues, and capture decisions made about those issues in the conversation and associated files. Examples of Collaborative Systems are chat programs and electronic bulletin boards. Individual users are on individual computer systems connected by local and/or wide area networks.

Commonality & Variability in the Collaborative Systems Domain Every reuse driven domain specific process must capture the commonality and variability among members of the product family which can be produced by using that reuse driven process. The commonality is best captured by the Domain Definition and the generic Architectural Design. The variability is best captured by the DSL.

CS Commonality- CS Generic Architectural Design (1 of 3) The Common Architectural Design is made up of three required components, and several additional optional components. Required Components: CS-Client  Accepts instructions from the end user, presents them to the system, and returns results. CS-Server  Coordinates actions among all users, and manages the actions of all other components. CS-DataStore  Under the direction of the CS-Server, persistently stores both data and meta-data in the system.

CS Commonality – CS Generic Architectural Design (2 of 3) Optional Components: Application Specific Protocol Bridges  Designed to be used at the point of integration of CS components, when the component are not using the same integration protocol, it translates from one protocol to the other. Integration and Execution Strategy Messages begin at a CS-Client, and pass to a CS-Server. The CS-Server manages the re-distribution of these messages to all other CS-Clients in the system, as well as archiving appropriate system data to the CS-DataStore.

CS Commonality – CS Architectural Design (3 of 3) CS-Client CS-Server CS-DataStore CS-Client CS-Bridge

CS Commonality – CS Component Design The basic required interface of the CS components, are a reflection of the commonality of the CS Domain. The optional interface features of the CS components, are a reflection of the variability of the CS Domain. Most Components are Patterns, implemented as a set of sub-components

CS Commonality – CS-Client Component Design (1 of 2) – Composition Communication/ Integration Module: This is the module that supplies the connection from this client to the Server by any available protocol/middleware such as COM, CORBA, ASP, SOAP Base/Logic Module: Business logic supplied to MRM instance, this is where application specific logic which is outside of the User Interface itself is implemented UI: Main process control and basic framework of executable MRM instance.

CS Commonality – CS-Client Component Design (2 of 2) – Interface Interface: UI: Exposes login, input/output interface to user. API: not applicable Dependency Interface Requires integration thru message protocol to either CS- Server or CS-Bridge. DPI Methods (supplied by CS-Server or CS-Bridge API):  long SendMessage( in string UserName, in string Password, in string Message )  Long Login( in string UserName, in string Password )  StringSequence GetMsssages( in string UserName, in long LastUpdatedTo, out long NumberOfMessages )  Long Logout( in string UserName, in string Password )

CS Commonality – CS-Server Component Design (1 of 3) – Composition Chat Services Module: Supplies the logic of the document viewing/sharing services themselves Chat Core Module: Supplies basic architecture of Chat Server Chat Communication/Integration Module: Supplies The ability to integrate with and communicate other Executable modules in a Collaborative System application.

CS Commonality – CS-Server Component Design (2 of 3) – Interface Interface: UI: not applicable API:  long SendMessage( in string UserName, in string Password, in string Message )  Long Login( in string UserName, in string Password )  StringSequence GetMsssages( in string UserName, in long LastUpdatedTo, out long NumberOfMessages )  Long Logout( in string UserName, in string Password )

CS Commonality – CS-Server Component Design (3 of 3) – Interface (continued) Dependency Interface Requires integration thru message protocol to either CS-Server or CS-Bridge. DPI Methods (must be supplied by CS-DataStore API):  long StoreMessage( in string DelimitedRecord, out string RecordMetaData )  string GetMessage( in string RecordMetaData )  string GetMetaData( in string MetaDataPattern )

CS Variability – Mixin Implementation Packaging Each Component is a pattern, implemented by multiple sub- components. Variability will not affect required interfaces, though can add optional methods.

CS Variability-Domain Specific Language Variability in the Collaborative Systems DSL Variation Points: VP1: Synchronicity {Synchronous, Asynchronous} VP2: Integration Protocol {COM, CORBA, SOAP} VP3: Persistence Technology {flat-file, OLE-DB, none}

CS Software Assets CS Requirements Assets CS Design Assets Already covered CS Implementation Assets CS Test Assets

CS Requirements Asset: Multiple Choice Form Q1:Will messages be sent in (a) real time (immediate) or (b) left to be picked up at user’s convenience? Q2: Will the client software be on (a) Windows or (b) UNIX based systems? Q3: Will the server software be on (a) Windows or (b) UNIX based systems? Q4: Will the software be maintained by (a) internal staff, or the (b) CS system developers?

CS Requirements Asset: Multiple Choice Form Q4a: If the answer to Q4 was (a), is the internal staff familiar with (a) Visual Basic, (b) C++ and/or (c) Java programming? Q5: Will the use of the CS system need to (a) archived, or (b) will the content of each collaborative session be discarded each time the server is reinitialized? Q5a: If the answer to Q5 was (a), what COTS product should be used to store the archives: (a) SQL Server, (b) Access, or (c) none?

CS-Processes Requirement Analysis: Comparing new system requirements to existing assets. Design: Tracing requirement specs to design assets to implementation assets. Capturing from a recently completed system development effort new reusable assets, and opportunities for new reusable assets.

Requirements Analysis Process Mechanism: Multiple Choice Form 1. Conduct interview with customer/end user of new system. Multiple choice form 2. Convert interview results to requirements document, explicitly identifying which requirements can be satisfied with reusable assets. 3. Submit requirements document to application engineering team 4. Submit unsatisfied requirements to domain engineering team.

Design Mechanism: Generic Architectural Design as Component System 1. Using requirements document, retrieve design assets of identified reusable assets. 2. Search repository for design assets missed in requirements analysis, as well as those similar to unsatisfied requirements, that might be reengineered to fit. 3. Instantiate generic architecture with decisions from (1) above. 4. Complete architectural design using(1), (2) and (3) above, adding additional design features to complete application design.

Implementation Mechanism: Tailoring and Specialization. 1. Using completed application design, retrieve implementation assets of identified assets. 2. Search repository for implementation assets that match new custom features in application design, as well as those similar to them, that might be reengineered to fit. 1. If found, tech management decides which to use. 3. Implement design features for which reusable assets are not identified. 4. Integrate reusable assets and new development into new application

Class Exercise: Test

Capturing Reusable Assets Mechanism: Base classes (commonality) and derived classes (variability)