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

Slides:



Advertisements
Similar presentations
Inference without the Engine!. What is EZ-Xpert 3.0? EZ-Xpert is a Rapid Application Development (RAD) environment for creating fast and accurate rule-based.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Chapter 22 Product Line Engineering Week 1 CIS 673.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
CS CS 5150 Software Engineering Lecture 27 People 2.
Software Engineering General Project Management Software Requirements
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
VS.NET Course Introduction By Peter Huang. About Me Peter Huang –Microsoft Certified Solution Developer (MCSD) –Sun Certified Java 2 Programmer (SCJP)
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
CS110/CS119 Introduction to Computing (Java)
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
N By: Md Rezaul Huda Reza n
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Multimedia Teaching Tool SimArch V1.0 Faculty of Electronic Engineering University of Nis Serbia.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering I
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Course Instructor: K ashif I hsan 1. Chapter # 2 Kashif Ihsan, Lecturer CS, MIHE2.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
1 3. Computing System Fundamentals 3.1 Language Translators.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
The Systems Development Life Cycle
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
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.
Software Acquisition and Project Management Lesson I: Introduction.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Frameworks CompSci 230 S Software Construction.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
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 Session 4 Lecture # 3 - September 28, 2004.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
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.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
CS223: Software Engineering Lecture 15: Software construction.
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
L5 - February 22, 2006copyright Thomas Pole , all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm.
SOA Concepts Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2009 Session 1: January 28, 2009 Instructor:
CMMI Certification - By Global Certification Consultancy.
C++ Programming Basics C++ Lecture 1 Stacy MacAllister.
Introduction to Programming Lecture 1 – Overview
IS301 – Software Engineering V:
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
An Introduction to Software Factories
Software Engineering D7032E
EECE 310 Software Engineering
Chapter 7 –Implementation Issues
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

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

Contact Information Thomas Pole (day) /SoftwareReuse_Fall04

Class Requirements (1 of 3) Text: “Software Reuse”, by Jacobson, Griss and Jonsson, ISBN Development Platform: PC running a 32 bit Windows platform, Win98, NT 4.0 or Win 2000 An IDE (Integrated Development Environment) capable of supporting –Component development (e.g. COM, JavaBeans, CORBA,.NET assemblies) –C++, Java or Visual Basic development –Visual Studio 6.0 or.NET strongly suggested (if you want debugging help from me)

Class Requirements (2 of 3) You will need to understand before you complete this course: –Traditional Software Development Life Cycle process. –System Requirements analysis –System design –Component Development –Component Integration –Domain definition –Domain analysis –Component Based Software Engineering

Class Requirements (3 of 3) You will need to be able to do before you complete this course –Generic Application Design –Component Design –Component Implementation Language of your choice from options listed earlier. –Component Integration –Requirements and/or design traceability. –Discuss and write about (in clear concise English) the issues and methods in Reuse

Software Reuse: Definition Precise definitions have not only evolved, they have propagated. The more definitions you have, the less meaning in the term ‘Reuse’. Good definitions exist for: Reusable Asset, Leveraged Reuse, Systematic Reuse Bad definitions exist for: ‘Software Reuse’ itself –Contradictory, inexact, some published definitions are almost useless. We will define these terms in this course, for this course. –Other texts, classes, and organizations will define them somewhat differently, but in this class we’ll have specific definitions we can use.

Software Reuse Definition Software Reuse is a method of increasing the efficiency of developing new software, by reusing existing software assets on a new project, that were created outside of and usually prior to that new project. –More details later. A software asset is any work product created in the normal software development life cycle. (SDLC)

Major Trends in Reuse As we cover the rest of tonight’s letter, think about where you and your company fit in. SW represents knowledge management of –SW implementation knowledge –Problem solving knowledge –Business and Engineering Domain knowledge. Therefore, reuse of SW requires knowledge management skills.

Defining Knowledge Management Managing what an organization, its staff, its customers, and its user base know about: –The business domain that organization participated in. –The products that organization creates. –The engineering domains the organization employs to perform its tasks and reach its goals. –The organization itself.

More Definitions Reuse - When any product (or by product) of a software development effort which occurred before, or independently of a second separate development effort, is also used in that second development effort. Reuse potential - Is the commonality stable enough and the predictable variability great enough to support the expense of a reuse driven process.

Still More Definitions Software Module - source and object code reuse. DIAE Component (or simply Component) – Dynamically Integrable. Autonomously Executable software module. Framework or Architecture Based Reuse – A generic architectural captures the commonality, swappable individual components represent the variability of a framework for building applications from a software framework.

State of: Modules and Components Modules: Java applets, classes, Java Beans etc. C++ libraries, language or application specific libraries. Components: COM component, CORBA components, Web Services.

State of: Reuse Tools A marketplace sadly in great disarray. Oversold by the marketers, similar to the Artificial Intelligence Winter syndrome of the mid 1990’s. Desperately needed if we are to progress in reuse process maturity. NOT A SOLVED PROBLEM. E.g. component collections, library/archive mechanisms, process support tools, training.

State of: Reuse Training Fallen on bad times. Replaced with some success by technology specific training: –VB/COM/COM+ training –CORBA training –framework SDK training Reuse process and systematic reuse training almost non-existent.

Reuse Potential Self Exam To ask yourself: What is my potential to reuse software ? What is my potential to enable reuse ? What is my org’s potential to reuse? What is my org’s potential for systematic reuse ? What is my org’s potential to enable reuse in other organizations ?

Reading Assignments See Chapters listed in Schedule - read these chapters PRIOR to the lectures. No assignment this week other than too get your work station/PC set up with a recommended Integrated Development Environment (IDE) Questions ? See you next week.