Software Engineering with Reusable Components

Slides:



Advertisements
Similar presentations
ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Advertisements

SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Software Engineering General Project Management Software Requirements
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
CSC230 Software Design (Engineering)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 16 Slide 1 User interface design.
Software Engineer Report What should contains the report?!
The Re-engineering and Reuse of Software
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Managing Software Quality
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
Introduction To Software Component Reuse
Java Applets. 2 Introduction to Java Applet Programs  Applications are stand alone programs executed with Java interpreter executed with Java interpreter.
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
1 Copyright(c) Dave Krupinski. All rights reserved. Webgenz and Content Management An introduction to using Webgenz to develop and maintain.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Wolfram Höpken IFITT RMSIG.
DARE: Domain analysis and reuse environment Minwoo Hong William Frakes, Ruben Prieto-Diaz and Christopher Fox Annals of Software Engineering,
1 The XMSF Profile Overlay to the FEDEP Dr. Katherine L. Morse, SAIC Mr. Robert Lutz, JHU APL
Advanced Software Engineering Dr. Cheng
Certification of Reusable Software Artifacts
4.01 How Web Pages Work.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Zachman Framework Lecture 2.
4.01 How Web Pages Work.
16CS202 & Software Engineering
7. Modular and structured design
The Development Process of Web Applications
Design Patterns (Chapter 6 of Text Book – Study just 8)
Modern Systems Analysis and Design Third Edition
Complexity Time: 2 Hours.
Design and Implementation
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
Chapter 18 Formal Reports
Designing Software for Ease of Extension and Contraction
Chapter 16 – Software Reuse
Tools of Software Development
Unit# 9: Computer Program Development
Chapter 4 Automated Tools for Systems Development
Software Reuse Objectives
Component-Based Software Engineering
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Dr. Awad Khalil Computer Science Department AUC
Chapter 20 Object-Oriented Analysis and Design
Java Applets.
Software Engineering with Reusable Components
Issues in Enhancing Model Reuse
Chapter 1 Introduction(1.1)
Analysis models and design models
Use Case Model Use case diagram – Part 2.
topics object oriented design objects and classes properties
Chapter 7 –Implementation Issues
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Engineering I
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering with Reusable Components
4+1 View Model of Software Architecture
Chapter 16 – Software Reuse
Dr. Awad Khalil Computer Science Department AUC
4.01 How Web Pages Work.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Chapter 10: Software Engineering
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 19, 20 and 21 Ana Paula Cavalcanti November 29, 2018

Summary Reuse Measurement in Literate Programs (Chapter 19) Motivation Line and Word Runs Case Study Documentation Reuse (Chapter 20) Source Code Inheritance Documentation Inheritance Conclusion (Chapter 21) A Paradigm Shift Limits of Component Reuse Prospects November 29, 2018

Reuse Measurement in Literate Programs November 29, 2018

Provide and example of reuse measurement Reuse Measurement in Literate Programs :: Chapter 19 Motivation To focus is to determine the amount of ad-hoc reuse in literate programs (description of problems and solutions) Provide and example of reuse measurement Demonstrate the need fort systematic reuse of documentation November 29, 2018

Reuse (l,len) = Identical (l.len) x 100 Reuse Measurement in Literate Programs :: Chapter 19 Line and Word Runs Similarities and differences of texts have to be determined Comparison of lines and words Reuse (l,len) = Identical (l.len) x 100 Total (l) L = line Len = Length high line reuse  Good indication of reuse low line reuse, high word reuse  much reuse has taken place, modification low reuse low, low word reuse  not much reuse November 29, 2018

Case Study Reuse Measurement in Literate Programs :: Chapter 19 TEX :: converts plain text file containing document markup into a device independent graphics metafile MetaFont :: reads a source file (metadescription) and does graphics interpretations MetaPost :: file layouts as input and book quality figures as output Systems Lines Words TEX 21,541 122,137 MetaFont 20,481 109,307 MetaPost 20,460 104,375 Systems Portion R(l) R(w) TEX  MetaFont 100% 34.4% 14.3% 42.8% 21.5% 60.7% MetaFont  MetaPost 80.8% 63.4% 78.5% 67.0% 85.1% November 29, 2018

Case Study  consequences Reuse Measurement in Literate Programs :: Chapter 19 Case Study  consequences Reuse measurement based on line and word runs can be used for many different purposes Evaluation of white-box reuse Finding (legal/illegal) reuse in technical/scientific papers, determining the amount of modifications from one version of software to another Finding potential locations for redesign Finding the amount of “reuse” in programs handed in by students for programming courses November 29, 2018

Documentation Reuse November 29, 2018

Documentation Reuse :: Chapter 20 Motivation Adequate documentation is mandatory for software maintenance as well as for economic reuse of software components. Overlapping information is typical both for source code and for documentation. Therefore, the inheritance mechanism should be applied to the documentation as well. November 29, 2018

Source Code Inheritance Documentation Reuse :: Chapter 20 Source Code Inheritance A class may inherit structure and behavior of another class and additionally extend and modify it. Methods Classes Rectangle Shape Draw Outline Move Rotate November 29, 2018

Documentation Inheritance Documentation Reuse :: Chapter 20 Documentation Inheritance Inherits the content of its base documentation Chapters {Classes} Sections {Methods} Abstract Classes Predefined structure for a certain group of elements guarantees uniform and consistent appearance Information should not be spread over several files and/or directories {Inclusion and References} November 29, 2018

Documentation Inheritance Documentation Reuse :: Chapter 20 Documentation Inheritance Information filtering is important for efficient access Categories definition Various views To meet different documentation needs of various readers Documentation Hierarchies “The goal is to have software systems built from reusable components and to have their documentation built upon theses components’ documentation.” November 29, 2018

Conclusion November 29, 2018

Conclusion :: Chapter 20 A Paradigm Shift “There is still a long way to go until systematic reuse of software components, especially beyond company boundaries. It requires more research in various areas as well as commitment from companies to systematic reuse.” “… unexpected discoveries may prove inconsistent with the prevailing paradigm. This may trigger a scientific revolution.” Involve the development of new ideas, concepts, methods and problems… Provides a way of doing software engineering better and more efficiently. November 29, 2018

Software reuse and software components contribute to a paradigm shift in Software Engineering? November 29, 2018

A Paradigm Shift  Software Components Conclusion :: Chapter 20 A Paradigm Shift  Software Components Components :: arbitrary reusable entities including macros and functions. Component-based systems as a system that has components as primitive description units and communication between components as computation units. November 29, 2018

A Paradigm Shift  Software reuse Conclusion :: Chapter 20 A Paradigm Shift  Software reuse Many new activities for software engineering are introduced through software reuse Domain analyses Development for/with reuse, reuse measurement Reuse certification Reuse classification Repository compilation Discipline concerned with construction related systems that share many commonalties and very in regular and identifiable ways November 29, 2018

Limits of Component Reuse Conclusion :: Chapter 20 Limits of Component Reuse The most challenging aspect is component integration Coordination Communication Interoperation Can we raise abstraction levels of components and at the same time achieve high-performance systems by using these components? November 29, 2018

Different way to build software systems Conclusion :: Chapter 20 Prospects Different way to build software systems More productivity The goal:: to evolve software The landscape of software systems will constantly change from closed monolithic to open systems of reusable components. November 29, 2018

References SAMETINGER, J. Software Engineering with Reusable Components. Springer-Verlag, 1997. November 29, 2018