Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Programming Paradigms and languages
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Internet Sellouts Final Presentation Enterprise Architecture Group.
1 CS1001 Lecture Overview Homework 3 Homework 3 Project/Paper Project/Paper Object Oriented Design Object Oriented Design.
Software Reuse Building software from reusable components Objectives
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 14 The Second Component: The Database.
Chapter 22 Object-Oriented Design
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 1- 1.
Domain-Specific Software Engineering Alex Adamec.
Computer Systems & Architecture Lesson Software Product Lines.
UML and Object Oriented Concepts
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Software Engineering Reuse.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
February 3rd, 2010 KS BRMS. Discalaimer The GUI for the BRMS is currently not running, and was developed using a outdated framework so fixing is not an.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SOFTWARE REUSE 28 March 2013 William W. McMillan.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
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.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
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.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Lecture 21: Component-Based Software Engineering
Basic Concepts and Definitions
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Welcome! DBT544 students to the iSeries, DB2 Universal Database And SQL interface.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
A Method for Improving Code Reuse System Prasanthi.S.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Software Factories - Today and Tomorrow
Recall The Team Skills Analyzing the Problem (with 5 steps)
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
From Use Cases to Implementation
Presentation transcript:

Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004

Review to Date You should have accomplished since last week: –Completed reading chapter 4 of the text. –Completed part 2 of the first assignment. Four components. Two implementations of each of two different ‘types’ of reusable assets. Defined your engineering domain project, within that domain. Specified the requirements for your domain engineering project. –If part two is not complete, or you would like to do additional work on it, please speak to me on the break or after class.

Tonight’s Lecture Chapter 4: Application and Component Systems Discuss Assignment, Part One Part Two (is due) Sharing Reusable Artifacts –Simple Reuse Library Mechanisms

Ch 4: Application and Component Systems Extend OOSE modeling language to directly support reuse. Reuse organizations engineer both applications and reusable components (assets) To support reuse, Use Cases will emphasize commonality and variability.

Applications versus Reuse Assets Applications are delivered outside the engineering organization. Reuse Assets are delivered to the engineering organization. Application Families –Allow significant reuse –Indicate reuse opportunities –Scope and define reuse projects.

Reuse Based Development Life Cycle Domain Analysis Domain Engineering Requirements Analysis (of an application) –Reuse Potential analysis … Analysis of new domain engineering opportunities. More on this later in the lecture.

More Chapter 4 Components and Component Systems Facades encapsulate and abstract groups of components, including: –Operating system services –COTS components –Facades and components systems are a different kind of package. –Sometimes you reuse as is, sometimes specialization is required.

Commonality and Variability Variation Points Variability mechanisms –Inheritance –Extensions –Parameterization –Generative: Templates Macros

Packaging and Documentation How will an application developer use a reusable asset? How will an application developer know that a reusable asset is available? How will an application developer know whether the reusable asset will meet the project’s performance requirements? How will an application developer know how to integrate an asset into their application?

Discussion: Assignment 1, Part 1 Did you bring in the hard copies?

What is an Engineering Domain (review) A domain defined by the kind of programming or software engineering being performed. Can be a generic engineering domain (most developers can reuse it): e.g. GUI development, database access, TCP/IP communication, CORBA development. Can be a specialty engineering domain (minority of developers can reuse it): e.g. complex math functions, multi-dimensional matrix operations, 3-D graphics rendering.

Defining an Engineering Domain (review) Defines what a development groups area of interest is, not just one projects requirements. What reusable software that development group can produce. Determine what software features and functionality are and are not within the engineering domain. Used to scope the requirements for all domain engineering projects to be performed by a development group.

Example Engineering Domain Name of Domain: Document Management Domain Definition: The management of existing documents, not the creation of or editing of documents, but the management of existing documents and multiple versions of those documents. The basic services supplied by this domain include the storage, retrieval, indexing, and search for managed documents. Application Areas Supported: Knowledge Management, Document Archives, Library Management, Reuse Libraries can all make use of software assets from this engineering domain.

What is a Domain Engineering Project (review) A single development project, meeting the following criteria: –Falls within the development group’s domain. –Has as a consumer not software users, but other software developers. –Meets requirements that are in common among three or more future application development projects.

Reuse Driven Process Component Based Software Assembly model’s process. Changing the Software Development Life Cycle to Support Reuse: Requirements, Design, Implementation, and Deployment –Domain Analysis –Domain Engineering –Requirements Analysis (of an application) Reuse Potential analysis –… –Analysis of new domain engineering opportunities.

Domain Analysis Analyze a family of applications. –Analogous to requirements analysis. Commonality: The requirements, traits, features, constraints shared by all members of the families. Variability: What features, etc. are shared by some members of the family but not all, in fact not even most.

Domain Engineering Building the framework that engineers the commonality of the application domain, aka family of applications. Variation Points are engineered as well: –Parameters on components, framework or generator. –Multiple implementations of common interfaces or facades.

Requirements Analysis (of an application) Reuse Potential analysis – potential for engineering this application via reusable assets. Not just determining what the customer/user wants/needs. Determine the scope of what the user needs, then within that scope you can determine whether within that variability you have reusable assets to apply to the project. A little like psychotherapy for software engineering, especially Rogerian therapy. You help guide the user to determine what their real needs and desires are; and then move forward to help them realize them.

Implementation Unless we are applying opportunistic reuse… The choice of where and what to reuse have already been decided (for the most part) During requirements, –The user/customer was “guided” toward reusable assets, we just need to reuse them during implementation, etc. –Requirements and/or design feature tracability point to the latter life cycle assets (e.g. code and test suites) are mapped to the reusable requirements/design features of the new project.

Analysis of new domain engineering opportunities. What “new” stuff was produced that might be used again in future projects. Is there something new the user/customer wanted that we have seen before? –Was it similar to an existing reusable asset, but not simlar enough (maybe an existing asset needs additional variability)? –Was it similar to another “Custom” requirement that has been seen before, but we did not yet recognize it as reusable?

Sharing Reusable Assets (left over from last session) Simple Reuse Library Mechanisms –Paper based catalogs. –Spread Sheet based catalogs. –Database based catalogs –Purpose Build catalog applications.

Paper Based Reuse Catalogs More useful than you might think! (and cheap, fast, easy to get started) List what is available according to how it can be reused. –What requirements does each software asset fulfill, or… –A simple sub-system or system generic design, and what role each asset fulfills in that design. Problems –Keeping it up to date can become difficult. –Searching a large asset collection is inefficient. –Sharing can be difficult.

Spread Sheet Based Catalogs All the benefits (except not as cheap, fast and easy) of a paper based catalog. Additional benefits –Very basic search functionality –Easier to share (mount on a common LAN based folder) –Easier to keep updated. –Contextual description (fielded descriptions) Problems –Lack of change control. Multiple editors can confuse the asset organization. –Multi-user synchronicity problems.

Database Based Catalogs About the same benefits as spread sheet based catalog (except the cheaper and easy parts are starting to slip away.) Additional Benefits –Easier to build population, search and retrieval functionality into service focused GUI’s. –RDBMS products are more likely to handle multi-user, with multiple roles. Problems: –Additional functionality is limited to what the database product offers. –Deployment across multiple locations, servers, etc. can be expensive because of licensing issues. –Greater expense (purchase and training) and vendor of database product locks you in.

Purpose Built Catalog Applications All the benefits of Database Based Catalogs (except the cheap, fast easy is about gone). Additional Benefits –Complete control of functionality and user interface. –Ability to integrate the Catalog with other software engineering tools and utilities. –Ability to support business process and engineering process rules with the Catalog’s user interface and functionality. Problems –Cost of development and maintenance of the functionality of the catalog has now increased dramatically.

Assignments Complete reading of text through chapter 4: Application and Component Systems Complete work on Exercise 1 part two, due next week. Questions ? See you next week.