Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
© 2005 by Prentice Hall Appendix 2 Automated Tools for Systems Development Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
1 IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer Fall 2005.
Lecture Nine Database Planning, Design, and Administration
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 1- 1.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Producing and managing metadata Workshop on Writing Metadata for Development Indicators Lusaka, Zambia 30 July – 1 August 2012 Writing Metadata for Development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter 6– Artifacts of the process
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Chapter 1 Database Systems. Good decisions require good information derived from raw facts Data is managed most efficiently when stored in a database.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
2 Systems Architecture, Fifth Edition Chapter Goals Describe the activities of information systems professionals Describe the technical knowledge of computer.
SCSC 311 Information Systems: hardware and software.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Systems Analysis and Design in a Changing World, 3rd Edition
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.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
IS 325 Notes for Wednesday August 28, Data is the Core of the Enterprise.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
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 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
Lecture 21: Component-Based Software Engineering
Information Design Trends Unit 4 : Sources and Standards Lecture 1: Content Management Part 1.
Basic Concepts and Definitions
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.
Chapter – 8 Software Tools.
L5 - February 22, 2006copyright Thomas Pole , all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm.
Appendix 2 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Introduction to Visual Basic 2008 Programming
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Modern Systems Analysis and Design Third Edition
Unified Modeling Language
Object oriented system development life cycle
CS 501: Software Engineering Fall 1999
CIS16 Application Development – Programming with Visual Basic
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004

Review to Date You should have accomplished since last week: –Completed reading chapter 3 of the text. –Completed part 1 of the first assignment. Defined your engineering domain. Defined your engineering domain project, within that domain. Specified the requirements for your domain engineering project. –If part one is not complete, or you would like to do additional work on it, please it to me no later than 5:00 pm Friday October 1 st.

Tonight’s Lecture IDE ? Chapter 3: Object Oriented Software Engineering. Review Assignment, Part One Part Two (due next week) –Implement your domain engineering project. –Implement two applications which reuse artifacts from your domain engineering project. Sharing Reusable Artifacts –Simple Reuse Library Mechanisms

Which IDE are you using? Send to me via , no later than 5:00 PM Wednesday, the following information: –Your name: –Your programming language: –Your Integrated Development Environment. –Send to

CH3: Object Oriented Software Engineering - 1 Software Engineering is a Series of Model Transformations –Requirements transformed into designs. –Designs transformed into code. –Source code transformed into executable software. Object Oriented Software Engineering employs object based models in each transformational stage.

CH3: Object Oriented Software Engineering - 2 OOSE does not require, but works well with an incremental, iterative engineering life cycle. Each iteration goes through the entire cycle, but with greater emphasis on different life cycle stages, in different iteration.

CH3: Object Oriented Software Engineering – 3 Objects (may) contain both behavior (functionality) and data (state). A Class is an Object Type. Objects have relationships with other objects: Generalization Specification (being more tightly specified) Association (including communicates with) Dependency (among the definitions, not the implementations)

CH3: Object Oriented Software Engineering - 4 Use Case Model captures System Requirements Analysis Model shapes system architecture. Design Model (classes and objects) define what the implementation will be. The “code” is the implementation model.

Assignment One Part One Define your Engineering Domain Define a project within that domain Specify the requirements of that project If you have not already doe so, your assignment one part one no later than Noon tomorrow (the 29 th ).

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.

Life Cycle Process for a Domain Engineering Project (review) 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 (review) 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.

Example Requirements Specification (part one) The Document Management Engineering Domain Project will consist of three primary work products: –A high level design of the sub-system which controls documents in an application. –A collection of reusable software assets that implement different variations of portions of that design. –An application engineer’s “guidebook” explaining how to match application requirements and/or design features to DMEDP reusable software assets.

Example Requirements Specification (part two) The Document Management Engineering Domain Project reusable software assets will consist of components which perform the following services –Gather the correct metadata to index and classify each document being managed. –Store the metadata in a searchable and/or browsable structure and format. –Retrieve lists of assets, based on metadata descriptions.

Assignment One Part Two Due next week ( ): –Implement your domain engineering project At least two variations on each of two implementation (compilable and/or runnable) software asset. –Implement two application which reuse artifacts from your engineering domain project. Each project should use at least two implementation assets. One implementation asset should be reused in both applications. Each application should also reuse at least one implementation asset which is not shared bu both applications.

Sharing Reusable Assets 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.