Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.

Slides:



Advertisements
Similar presentations
2 Introduction A central issue in supporting interoperability is achieving type compatibility. Type compatibility allows (a) entities developed by various.
Advertisements

ITIL: Service Transition
Rational Unified Process
Introduction To System Analysis and Design
Software Reuse Building software from reusable components Objectives
SE 555 Software Requirements & Specification Requirements Management.
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Fundamentals of Information Systems, Second Edition
Package design and the Iterative process model. What is a package? Classes are not sufficient to group code –Some classes collaborate, implying dependencies.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
IV&V Facility Model-based Design Verification IVV Annual Workshop September, 2009 Tom Hempler.
Configuration Management for Transportation Management Systems Establishing and Maintaining System Integrity.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
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.
ISO Tor Stålhane IDI / NTNU. What is ISO ISO 9001 was developed for the production industry but has a rather general structure ISO describes.
INFO415 An overview of systems development
Supplementary Specifications (Chapters 20,22 - Requirements Text) Question 1 by Steve & Chandan (Along with others in the past! - See notes, below)
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CSE 303 – Software Design and Architecture
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Requirements Engineering CSE 305 Lecture-2.
1 Copyright Flying Kiwi Productions Inc. An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter.
Software Engineering Management Lecture 1 The Software Process.
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Testing. What is Testing? The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
1 Introduction to Software Engineering Lecture 1.
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.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Lecture Introduction to Software Development SW Engg. Development Process Instructor :Muhammad Janas khan Thursday, September.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Software Architecture & Component Orientation Jose Donate CS 6362.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
1 An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter 6: The Object-Oriented Development Life Cycle Srividya Srinivasan.
Imagine Creating Software Without a Single Line of Code!
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
An organizational structure is a mostly hierarchical concept of subordination of entities that collaborate and contribute to serve one common aim... Organizational.
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.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Slide design: Dr. Mark L. Hornick
TK2023 Object-Oriented Software Engineering
Pragmatics 4 Hours.
Software Engineering Management
The Development Process of Web Applications
The Object-Oriented Development Life Cycle
Software Product Lines
Chapter 25: Architecture and Product Lines
KISTERS TimeSeries HUB
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Introduction To software engineering
Chapter 6: The Object-Oriented Development Life Cycle (OODLC)
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
To Brihaspathi. Software Development Services
Presentation transcript:

Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004

Review You should have accomplished since last week: –Completed reading the preface, chapter 1 and chapter 2 of the text. –Completed setting up an IDE to be used for class exercise, and be ready to let me know what IDE that is.

Tonight’s Lecture Opportunistic Reuse and Reuse of Source Code. –Opportunistic Reuse (ad hoc) –Source Code (Implementation) Reuse (managed) –Defining an Engineering Domain. –Specifying a Domain Engineering Project. –Implementing a Domain Engineering Project.

Opportunistic Reuse Using what you can find. Looking for reusable software assets at the time you need to employ them. Not supported by a process. Not rewarded. Not scheduled. Of limited financial benefit.

Opportunistic Reuse Benefits Whatever you reuse, you don’t have to create. When maintainers of one system that uses the reusable asset fix a bug or add an enhancement: there is the opportunity to other systems to benefit from it. The number of end users of the reused asset increases, increasing the potential testing and maintenance resources for all systems using that asset.

Opportunistic Reuse Problems Can not plan for reuse. No plan for notifying reuser’s of asset bug fixes and improvements. Reusers are not rewarded, therefore they have no incentive to reuse. Late decision making: Requirements and designs can not choose to pick the design features that can be implemented with reuseable components.

Managed Source Code Reuse Manage the use of, and maintenance of source code assets. Allow developers to look for software assets based on what LLD (low level design) features they implement. Manage the (one or more of): configuration changes to the asset, notification of users that there is a change, usage of assets, training in usage, reward of reusers.

Application Domains Application Domain – The domain of all software applications that serve a set of similar users performing similar tasks, described by the common end user functionality, or common requirements that might be satisfied in that domain. (e.g. word processors, web browsers, and spread sheets are each application domains)

Engineering Domains Engineering Domain – The domain of all software components that can be reused to create multiple software applications, described by the common engineering functionality, or common design features that might be applied to that domain. (e.g. Graphical User Interface components, TCP/IP protocol components, math libraries and matrix operations are each engineering domains)

What is an Engineering Domain 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 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.

What is a Domain Engineering Project 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.

Life Cycle Process for a Domain Engineering Project Requirements analysis is replaced be domain analysis, describe not what one application must do, but a subset of the implementation of many applications. Design and Implementation are somewhat similar to application development. Testing is via harnesses or wrappers, and testing within multiple application that reuse the engineering domains products.

Specifying the Requirements of a Domain Engineering Project Specified as commonality (what all applications that use these components require) and variability (what changes from application to application when each uses these components.) Requirements are always expressed in the context of the end user, and in this case those end users are application developers.

Implementing a Domain Engineering Project Develop domain scope (requirements and integration contracts, APUI’s) Design reusable module(s) including their commonality, and variability. Users documentation describes how to match variability to specific current needs. Define/Implement test harnesses and identify candidate reuser applications Implement reusable components. Test against harnesses and candidate reuser apps.

Assignment 1 Week 1: –Define your engineering domain. –Define your domain engineering project in that domain. –Specify the requirements for your domain engineering project. Week 2 (or earlier): –Implement your domain engineering project –Implement two application which reuse artifacts from your engineering domain project.

Reading Assignments Complete reading of text through chapter 3: Object Oriented Software Engineering. Start working on Exercise 1, due in two weeks Questions ? See you next week.