AN APPLICATION SPECIFIC TECHNIQUE FOR RETRIEVAL AND ADAPTATION OF TRUSTED COMPONENTS Benny Thomas Master of Computer Science Supervised by Dr. David Hemer.

Slides:



Advertisements
Similar presentations
Test Automation Success: Choosing the Right People & Process
Advertisements

CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Sommerville, I., Software Engineering, Pearson, 9th Ed., 2010.
Computer Integrated Manufacturing CIM
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Educational Technology ITEC What is Technology? Here are 4 different definitions (#3 captures the essence without being too wordy): Systematic.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Software Testing and Quality Assurance: Introduction and Terminology
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Reusability and Portability Chapter 8 CSCI Reusability and Portability  The length of the development process is critical.  No matter how high.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Introduction to Software Testing
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Chapter : Software Process
1 Software Engineering Prof. Dr. Colin Atkinson 1 Overview 1.Find out why software engineering is important ■ see some software engineering failures 2.Get.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Engineering Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 2.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
How Systems are Developed The Commercial Life Cycle Model Common form of the Software Life Cycle Used through the commercial, industrial, institutional.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
1 10/14/2015ã 2007, Spencer Rugaber The Waterfall Process Software plans and requirements Validation System feasibility Validation Product design Verification.
Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks.
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Testing as a Driver for Development Change Wall Street Systems Graham Thomas.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor.
Reduce Development and Testing Time on Embedded Space Programs With Auto- Generated Code Software Engineer Northrop Grumman Electronic Systems Matthew.
Chapter 2: Testing in Software Life Cycle MNN1063 System Testing and Evaluation.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 CBSE Process: issues and Challenges From CBSE Landscape document chapter From.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Lecture 21: Component-Based Software Engineering
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
NURHALIMA 1. Identify the trade-offs when using CASE Describe organizational forces for and against adoption of CASE tools Describe the role of CASE tools.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Design and Development Development Methodoligies Computing Science.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Laserfiche Business Process Library: Jumpstart Business Process Automation Brandon Buccowich, Technical Marketing Engineer | Katie Fries, Presales Consultant.
Chapter3:Software Processes
Lecture 3 Prescriptive Process Models
How Systems are Developed
CASE Tools and Joint and Rapid Application Development
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Modern Systems Analysis and Design Third Edition
Classical Waterfall Model
Life Cycle Models PPT By :Dr. R. Mall.
Designing Software for Ease of Extension and Contraction
Reverse Engineering: A Roadmap
Component Based Software Engineering
Introduction to Software Testing
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Development Process
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Topics discussed in this section:
CS310 Software Engineering Lecturer Dr.Doaa Sami
Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham
Modern Systems Analysis and Design Third Edition
Presentation transcript:

AN APPLICATION SPECIFIC TECHNIQUE FOR RETRIEVAL AND ADAPTATION OF TRUSTED COMPONENTS Benny Thomas Master of Computer Science Supervised by Dr. David Hemer

SOFTWARE DEVELOPMENT COSTS!! From AGARD Advisory Report 292:- Concept Definition5% System Design12% Software Requirements14% Software Design15% Coding 10% Software Unit Test12% Integration Test7% System Test10% Documentation15%

SOFTWARE DEVELOPMENT COSTS!! Continued… From NASA Manager’s Handbook for Software Development:- Requirement Analysis6% Preliminary Design8% Detailed Design16% Implementation45% System Testing20% Acceptance Testing5%

COMPONENT BASED SOFTWARE ENGINEERING (CBSE) TO THE RESCUE! 40% of costs are directed towards the implementation and testing phases CBSE saves time and money by advocating the reuse of software BUT effort of using components must be less than effort of developing from scratch Technical challenges include Locating components Adapting components to suit the requirements of the specification

HOW DOES CBSE WORK? Previously, traditional keyword-based retrieval strategies were used Ambiguous Imprecise More recently formal specifications used to define the components and their interfaces Retrieval done using theorem provers and unification algorithms This itself is not enough. Component adaptation needs to be addressed too.

RECENT EFFORTS Parameterized templates used to define adaptation strategies Specification matching introduced to semi- automate component retrieval and adaptation BUT still early days – Need more primitive templates – Need more gluing templates – Need to test ideas on bigger examples

AIMS OF THE PROJECT Develop new library components – Primitive components – Gluing components Apply new templates to case studies

LIBRARY POPULATION Generally populating the library requires human presence Main focus will be on modifying existing templates to accommodate other types REVERSE ENGINEERING – Systematic breakdown of programs – Primitive and essential components – Helps the adaptation process too

CASE STUDIES Work on 2 or 3 non-trivial examples - Develop from scratch - Reverse Engineer implementation - Represent as library templates - Redevelop using library templates Develop application specific search tactics based on existing ones Semi-automate process using developed search tactics

QUESTIONS???