Component-Based Systems X LIU, School of Computing, Napier University TIP As computing systems become more and more complex, software reuse and component-based.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Component Oriented Programming 1 Chapter 2 Theory of Components.
Main issues: • Why is reuse so difficult • How to realize reuse
Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
Chapter 3 Process Models
Chapter 2 Software Process Models
CHAPTER TWO Object Oriented System Analysis and Design 1.
Software Process Models
Components vs. Objects Luigia Petre Turku Centre for Computer Science & Åbo Akademi University, FIN Turku, Finland Presented at Nordic Workshop on.
Basic Concepts in Component-Based Software Engineering
CBSD – Component Based Software Development - Introduction -
- 1 - Component Based Development R&D SDM Theo Schouten.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Component Technology objects versus components -- definitions interoperability.
Project phases and the life cycle
Component-Based Software Engineering CSM-15 Paul Krause.
CSI315 Web Technology and Applications
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Software Engineering Reuse.
RAD Model BY - Dhivakaran.JM.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
SOFTWARE ENGINEERING MCS-2 LECTURE # 5. RAD (RAPID APPLICATION DEVELOPMENT) MODEL  In RAD model the components or functions are developed in parallel.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
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.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prescriptive Process Models
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Introduction into component programming based on Java beans Dušan Tošić
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
CSC 532 Term Paper Presentation Hybrid approach to component based Engineering  Introduction.  Component based development (CBD).  Pros and Cons of.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Software Prototyping Rapid software development to validate requirements.
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.
Week 2: Software Process HNDIT Software Engineering Software Process.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Model Process
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
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.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Introduction to OOAD and UML
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Methodologies and Algorithms
Prototyping in the software process
Module 4. Component Software 4.2 Introduction
Introduction to Design Patterns
Software Life Cycle “What happens in the ‘life’ of software”
Rapid Application Development Model
Software Life Cycle Models
Software Prototyping Animating and demonstrating system requirements.
Component--based development
Software Development Life Cycle:-
Presentation transcript:

Component-Based Systems X LIU, School of Computing, Napier University TIP As computing systems become more and more complex, software reuse and component-based systems re-constitute software development

Components and Systems Components are for system composition.Components are for system composition. Composition enables prefabricated parts to be reused by rearranging them in ever new composites.Composition enables prefabricated parts to be reused by rearranging them in ever new composites. Components are reusable assets.Components are reusable assets.

Software Reuse Reuse is a very broad term covering the general concept of a reusable asset. Reuse could happen at various system abstraction levels:Reuse is a very broad term covering the general concept of a reusable asset. Reuse could happen at various system abstraction levels: -System Pattern -Specification -Design -Code

Components and Component- Based Systems To be specific, software components are binary units or program code of independent production, acquisition, and deployment that interact to form a functioning system.To be specific, software components are binary units or program code of independent production, acquisition, and deployment that interact to form a functioning system. Composite systems composed of software components are called component-based software.Composite systems composed of software components are called component-based software.

Inevitability of components To speed up development processTo speed up development process To reduce development costTo reduce development cost However, compared with make-all systems, component-based systems may have some lost in flexibility and competitive edge if they are not well organised with most suitable components.However, compared with make-all systems, component-based systems may have some lost in flexibility and competitive edge if they are not well organised with most suitable components.

Inevitability of components

A more precise definition of software component: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can only be deployed independently and is subject to composition by third parties.A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can only be deployed independently and is subject to composition by third parties.

Characteristics of components A component is a unit of independent deployment. I.e., functionally self-contained and independent of the specific environment.A component is a unit of independent deployment. I.e., functionally self-contained and independent of the specific environment. A component is a unit of third-party composition. I.e., a component needs to encapsulate its implementation and interact with its environment through well-defined interfaces.A component is a unit of third-party composition. I.e., a component needs to encapsulate its implementation and interact with its environment through well-defined interfaces. A component has no persistent state. I.e., it is required that the component cannot be distinguished from copies of its own.A component has no persistent state. I.e., it is required that the component cannot be distinguished from copies of its own.

RAD Model and CBS Rapid Application Development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle.Rapid Application Development (RAD) is an incremental software development process model that emphasizes an extremely short development cycle. The RAD model is a “high-speed” adaptation of the linear sequential model in which rapid development is achieved by using component- based construction.The RAD model is a “high-speed” adaptation of the linear sequential model in which rapid development is achieved by using component- based construction.

RAD Model and CBS If requirements are well understood and project scope is constrained, the RAD process enables a development team to create a “fully functional system” within very short time period (e.g., 60 to 90 days).If requirements are well understood and project scope is constrained, the RAD process enables a development team to create a “fully functional system” within very short time period (e.g., 60 to 90 days).

RAD Model and CBS Used primarily for information systems, the RAD approach encompasses the following phases: Business modeling: rough information flowBusiness modeling: rough information flow Data modeling: refined data flowData modeling: refined data flow Process modeling: process/transactionsProcess modeling: process/transactions

RAD Model and CBS Application generation:Application generation: –rather than creating software using conventional third generation programming language the RAD process works to reuse existing program components (when possible) or create reusable components (when necessary). –Automated tools are a must to facilitate the construction of the software. VB and JavaBeans could be viewed as kinds of these tools.

RAD Model and CBS Test and turnover: since the RAD process emphasizes reuse, many of the program components have already been tested. This reduces overall testing time. However, other components must be tested and all interfaces must be fully exercised.Test and turnover: since the RAD process emphasizes reuse, many of the program components have already been tested. This reduces overall testing time. However, other components must be tested and all interfaces must be fully exercised.

RAD Model and CBS

Overview of existing techniques Visual Basic (the primary discussion)Visual Basic (the primary discussion) JavaBeansJavaBeans COM/DCOMCOM/DCOM CORBACORBA