ECE750-Topic11: Component-Based Software Systems
|
|
- Luke Small
- 6 years ago
- Views:
Transcription
1 ECE750-Topic11: Component-Based Software Systems Component-Based Development Process Ladan Tahvildari, PEng Associate Professor Software Technologies Applied Research (STAR) Group Dept. of Elect. & Comp. Eng. University of Waterloo
2 Software Development Process Typical Phases Requirements analysis and specifications System and architecture design Implementation and unit testing System integration Verification and validation Operation and maintenance/evolution Two general models Sequential: Top-down and bottom-up Evolutionary: Iterative, incremental, agile, RUP ECE750-Topic 11 2
3 The Sequential/Waterfall Model Analysis Development Design Implementation Integration Test ECE750-Topic 11 3
4 The Evolutionary Development Develop a system gradually in many repetitive stages: Increasing the knowledge of the system requirements and system functionality in each stage exposing the results to user comments This can be achieved by using: The Iterative Model The Incremental Model The Prototyping Model The Rational Unified Process (RUP) Model Agile Model ECE750-Topic 11 4
5 The Iterative Model Analysis Development Design Implementation Integration Test ECE750-Topic 11 5
6 The Incremental Model Increment n Analysis Development Design Implementation Integration Test ECE750-Topic 11 6
7 The Prototyping Model Test prototype Analysis Development Design Implementation Develop prototype Integration Test ECE750-Topic 11 7
8 The Rational Unified Process A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives A dynamic perspective that shows phases over time A static perspective that shows process activities A proactive perspective that suggests good practice ECE750-Topic 11 8
9 RUP Phase Model Inception: Establish the business case for the system Elaboration: Develop an understanding of the problem domain and the system architecture Construction: System design, programming and testing Transition: Deploy the system in its operating environment ECE750-Topic 11 9
10 Unified Process Illustrated Phases Inception Elaboration Construction Transition Requirements Analysis An iteration in the elaboration phase Design Implementation Test Iter #1 Iter # Iter #n Iterations ECE750-Topic 11 10
11 Reusability The main tenet of CBSE What to reuse Requirements specifications and analysis Design: generic or domain-specific design spec, design patterns, and architectural styles Implementations: open/closed source component Test data Two general types of reuse Vertical Reuse reusing domain-specific assets (e.g., visualization components) Horizontal Reuse reusing generic assets, mostly as extensions of programming languages (e.g., C++ STL) ECE750-Topic 11 11
12 Design with and for Reuse How to reuse Design for reuse, often called Domain Engineering Design with reuse, often called Application Engineering Different assets from domain can be reused Domain Model Domain Design Implemented Components ECE750-Topic 11 12
13 Component-Based Development (CBD) In CBD, the two phases of design for and with reuse, is normally called: Component Development producing reusable components Some concerns Business goals Licensing Maintenance and support policy Open-closed source (also called white-box and black-box reuse) System Development consuming components to compose and integrate systems Based on end-user and stakeholders requirements Some concerns Change propagation for provided and required interfaces How do the available components fit into the requirements specifications ECE750-Topic 11 13
14 System Development Design with Reuse Our goal if to have a development process Based on successful conventional processes Customized for component-based development Some new steps are added Finding the candidates Evaluating and selecting the most suitable candidates Adapting and composing components ECE750-Topic 11 14
15 System Development Process Find Analysis Select Design Development Evaluation Adapt Integrate Implementation Integration Test Test Component evaluation System Development Matching component evaluation with system development ECE750-Topic 11 15
16 Simplified Process (I) Define the requirements Design the system Find & Select Adapt Compose/ Integrate Test & Deploy Operation & Maintenance ECE750-Topic 11 16
17 Simplified Process (II) Define the requirements Capture system requirements from stakeholders Specify functional and non-functional requirements Design the system High-level architecture Specify main subsystems and components Find and select the candidates Collect information about appropriate components Code repositories likes sourceforge, Google, Apache, IBM developerworks, ECE750-Topic 11 17
18 Simplified Process (III) Find and select the candidates (cont d) Evaluation and selection based on the following criteria: Trust: dependability and security factors It can be handled with software certifications (e.g., similar to the warning messages given by Microsoft Windows when installing an uncertified application) Requirements: How does a candidate meet the requirement spec? Integration Effort: How hard is it to integrate the component with other components? Do we need glue code? Support: Are your issues going to be fixed? Can you ask for help? Pay for help? Alternatives: What happens if you cannot use the selected component? Is there any other alternative? Verification: Can you test the component? ECE750-Topic 11 18
19 Simplified Process (IV) Adapt Configuring for the current system Providing configuration file or rebuilding Providing the adaptation code Adjusting provided and required interfaces With wrapper or adaptor Could be different for white-box and black-box reuse Compose and Integrate Emergent properties Composition of components may show unpredicted properties Example: deadlock (an example will be discussed later) Different types of composition ECE750-Topic 11 19
20 Basic Types of Composition Sequential Composition where the composed components are executed in sequence. This involves composing the provided interfaces of each component. Hierarchical Composition where one component calls on the services of another. The provided interface of one component is composed with the required interface of another. Additive Composition where the interfaces of two components are put together to create a new component. ECE750-Topic 11 20
21 Basic Types of Composition ECE750-Topic 11 21
22 Interface Incompatibility Parameter Incompatibility where operations have the same name but are of different types Operation Incompatibility where the names of operations in the composed interfaces are different Operation Incompleteness where the provided interface of one component is a subset of the required interface of another ECE750-Topic 11 22
23 Incompatible Components phonedatabase (string command) addressfinder string location(string pn) string owner (string pn) string property Type (string pn) mapdb (string command) mapper displaymap (string postcode, scale) printmap (string postcode, scale) ECE750-Topic 11 23
24 Adaptor Components Address the problem of component incompatibility by reconciling the interfaces of the components that are composed Different types of adaptor are required depending on the type of composition An addressfinder and a mapper component may be composed through an adaptor that strips the postal code from an address and passes this to the mapper component ECE750-Topic 11 24
25 Composition through an Adaptor The component postcodestripper is the adaptor that facilitates the sequential composition of addressfinder and mapper component address = addressfinder.location (phonenumber) ; postcode = postcodestripper.getpostcode (address) ; mapper.displaymap(postcode, 10000) ECE750-Topic 11 25
26 Simplified Process (I) Define the requirements Design the system Find & Select Adapt Compose/ Integrate Test & Deploy Operation & Maintenance ECE750-Topic 11 26
27 Simplified Process (V) Test and deploy Unit testing and integration testing May discover that your selected components do not fit together Operation and Maintenance/Evolution Operation management Reconfiguring and resource management Maintenance/Evolution Upgrading, patching or replacing components Disposal of components normally missed in the development process ECE750-Topic 11 27
28 Component Disposal Generally takes place due to two different factors: Dissatisfaction initiated by consumers when they conclude that: The component no longer provides the support of the system it was intended to provide or The system no longer needs the component Obsolescence is likely to occur when: A new, more effective component with the same, similar or extended functionality is found Poor portability to new platforms/operating systems The producer is not able to continue with support or maintenance The component needs obsolete components ECE750-Topic 11 28
29 A More Realistic Process Based on V process ECE750-Topic 11 29
30 A More Realistic Process Operation & Maintenance may include Adding new components Replacing components The find/select, adapt, and test will be repeated ECE750-Topic 11 30
31 Composition and Integration In theory We connect required and provided interfaces Integration is mostly based on interfaces and description of operations Component models help integration Business interfaces in EJB In practice It is not as simple as expected More details and contracts need to be known ECE750-Topic 11 31
32 Composition/Integration: 1 st Example Example adopted from: D. Garlan, R. Allen and J. Ockerbloom. Architectural Mismatch: Why Reuse is So Hard, IEEE Software, 12(6):17-26, November The system: AESOP Generates development environments tailored to development of systems in particular architectural styles Constituent components Object-oriented database (OBST) GUI toolkit (Interview) Event-based tool integrations (HP SoftBench) RPC mechanism (MACH RPC Interface Integration - MIG) All of the components are implemented using C and C++ Source code were available ECE750-Topic 11 32
33 AESOP Environment ECE750-Topic 11 33
34 Problems Effort Estimate: six months (one person-year) Reality: two years (five person-year) Excessive code Poor performance Overhead of connecting tools and database Need to modify external packages Modifying client-loop event in SoftBench Reinventing existing functions Hierarchical nested view management in Interview, because it didn t allow direct access to nested view ECE750-Topic 11 34
35 Underlying Issues Nature of components Assumption about Infrastructure e.g., all tools have GUI Control model e.g., Where is the main thread of control? Where is the main loop? Data model e.g., the assumptions about the nature of data each component manipulating Nature of connectors Assumption about Interactions e.g., request/reply protocol or event notification Data model e.g., the format of data which us transferred between components ECE750-Topic 11 35
36 Underlying Issues (cont d) Global architecture For example, in this case OO DB component assumes that there us no interaction between components It blocks all tools when one is working with data For solving this problem, the team added another transaction manager Error-prone construction/composition process Dependencies in generated codes by different tools As they built the system, modifications became increasingly costly ECE750-Topic 11 36
37 Proposed Solutions for Composition Make assumptions explicit Having these assumptions leads to find the problem sooner Unfortunately, still there is no notation for documenting architectural assumptions How to say that a component has an event loop? Use orthogonal loosely-couple components in reusable assets Use bridging techniques to resolve interface mismatches Wrapper or adaptor Provide design and composition guidance Generic and domain-specific ECE750-Topic 11 37
38 Composition/Integration: 2 nd Example Example adopted from: P. Inverardi, A.L. Wolf, and D. Yankelevich, Static Checking of System Behaviors Using Derived Component Assumptions, ACM Transactions on Software Engineering, 9(3): , July The main point is that component users Not only need the specifications of component s interactions behavior But also, they need specifications if the assumptions that the component makes about the expected interactions behavoir of other components ECE750-Topic 11 38
39 Composition/Integration: 2 nd Example The authors use a guest analogy Assume H: Host, P: Host s Partner, Y: You At a party: H & Y: greet at door, invite in H & P: introduce Y to P P & Y: take to living room, offer a drink and introduce Y to others Suppose that by any reason H does not introduce you to P You feel uncomfortable with people you don t know It is insufficient only your interaction with environment, and need to also consider intra-environment interactions ECE750-Topic 11 39
40 Compressing Filter: 2 nd Example Now consider this example Adding data compression to a web server The main goal is to improve performance of www browsers over slow networks Assume the web server is the standard CERN HTTP server The web server has a pipe-and-filet architecture style ECE750-Topic 11 40
41 Compressing Filter: 2 nd Example We want to add an external filter to compress data using gzip The external compressing filter communicates with the web server through Unix pipes Read and write data A pseudo filter (adaptor) has been added to work with the external compressing filter ECE750-Topic 11 41
42 Compressing Filter: 2 nd Example Process Component Channel Function call interface UNIX pipe interface Compressing Filter gzip 2 3 Filter 1 Pseudo Filter (Adaptor) 4 Filter ECE750-Topic 11 42
43 Compressing Filter: 2 nd Example HTTP server filters are forced to read when data are pushed at them However, Unix filters choose when to read data So, gzip may block Normal case Adaptor passes the data from upstream filter to gzip, and when the stream us closed, read the data from gzip, and write it to downstream filter Problematic case (Emergent Property) Because gzip has a limited internal buffer, it may attempt to write a portion of compressed data before the adaptor is ready gzip blocks and then adaptor blocked Deadlock! ECE750-Topic 11 43
44 Compressing Filter: 2 nd Example In this example, the solution is not hard Adaptor can handle data incrementally and use unblocking reads and writes However, for composing more complex systems Component developers need to document these assumptions (not straightforward!!) In this article, the authors build models of component and its environment that enables static analysis of deadlock freedom. ECE750-Topic 11 44
45 Suggested Solutions for Component Composition Predictable Assembly for Certified Components (PACC) Component certifications Pre- and post-conditions Mathematical models for reliability Component credential (extra-functional properties) In this example, the solution is not hard Prediction-Enabled Component Technology (PECT) A component model plus the analysis model ECE750-Topic 11 45
46 Prediction-Enabled Component Technology (PECT) Based on two fundamental premises: Component Model PECT Analysis Model The system quality attributes are emergent properties that are associated with patterns of interaction among components not connected specializes influences Component Model interpretation assumptions Analysis Model The software component technology provides a means of enforcing predefined and designed interaction patterns, thus facilitating the achievement of system quality attributes by construction ECE750-Topic 11 46
47 COTS Definition Commercial Off the Shelf Software Commercial Software Products sold, leased, licensed at advertised prices Source Code Unavailable Only application program interface (API) Usually periodic releases with feature growth or obsolescence ECE750-Topic 11 47
48 Related Terms COTS: Commercial Off the Shelf Black Box: modifications to code internal to COTS product not allowed White Box: some modifications to code internal to COTS product permitted GFE: Government Furnished Equipment GOTS: Government Off the Shelf NDI: Non-Developmental Item/Not Developed In-house ECE750-Topic 11 48
49 Using COTS in Software Projects A survey at USC (2002) 28% use in % in 2002 CBA Growth Trend % Year ECE750-Topic 11 49
50 COTS Advantages and Disadvantages Advantages Available now;earlier payback Avoids expensive development & maintenance Predictable license costs & performance Rich in functionality Broadly used, mature technology Frequent upgrades often anticipate organization s needs Dedicated support organization Hardware/software independence Tracks technology trends Disadvantages Licensing and intellectual property procurement delays Up front license fees Recurring maintenance fees Reliability often unknown/ inadequate; scale often difficult to change Unnecessary features compromise usability, performance No control over upgrades/maintenance Dependency on vendor Integration not always trivial; incompatibilities among vendors Synchronizing multiple-vendor upgrades ECE750-Topic 11 50
51 Case Study: When it Works Hubble Space Telescope Control Center Software was redone This restructuring began in 1995 and it was the so-called Vision 2000 project to extend the life of the Hubble telescope VERY Data-Intensive They had a goal of not interrupting ongoing data-collection Goals: Use COTS to save money Extend life of HST until 2010 Mission-critical software High performance requirements High security requirements ECE750-Topic 11 51
52 Case Study: When it Works Final Product Integration of 30+ COTS/GOTS components with 1M lines of legacy code using.5m lines of glue code Results Replaced 3M lines of source code Proof of concept delivered in 3 months Live system delivered in 1 year Brand new architecture delivers greater functionality Very encouraging ECE750-Topic 11 52
53 COTS Activities COTS Assessment is the activity whereby COTS products are evaluated and selected as viable components for a user application COTS Tailoring is the activity whereby COTS software products are configured for use in a specific context COTS Glue Code development and integration is the activity whereby code is designed, developed, and used to ensure that COTS products satisfactorily interoperate in support of the user application ECE750-Topic 11 53
54 COTS Assessment Divides up into three stages Trade Study: A quick and dirty filtering of a large number of components Hands-on Evaluation: A more thorough analysis of the remaining components Final Selection: Selection based on the results of previous stages ECE750-Topic 11 54
55 COTS Assessment Process ECE750-Topic 11 55
56 Trade Study Break down your requirements These will form the basis for questions on a questionnaire Requirements should be of similar granularities Send questionnaire to vendors and current users Component Requirements Matrix Components that receive less than half of the total points, don t move on When no COTS move on, this is the time to consider Reviewing your requirements Developing custom code ECE750-Topic 11 56
57 Components Requirements Matrix Weight requirements are based on a 0-10 scale where 10 is better Based on responses from questionnaires, give 0,.5, or 1 to each category 0 is not fulfilling requirement.5 is partial satisfaction 1 is total satisfaction ECE750-Topic 11 57
58 Hands-On Evaluation You must actually have access to the components Necessary if component represents a significant investment Use components as the basis for tests Scenario-Based Tests Examining Specific Criteria ECE750-Topic 11 58
59 Hands-On Evaluation ECE750-Topic 11 59
60 Criticism of this Technique This technique is primarily requirementsdriven Tends to select best-in-breed components Should be tailored to reflect internal requirements Assumes clean division of requirements Full assessment not always cost effective ECE750-Topic 11 60
61 Component Selection: Revised The previous technique selecting components was fundamentally requirements-based Now you will see a technique for selecting components that is architecture-based Goal: Avoid the problems encountered in Architectural Mismatch Low level interoperability Program languages Platform dependencies Data base schemas Different trade-offs in non-functional terms ECE750-Topic 11 61
62 Architecture-Based COTS Selection When using COTS, you accept their architectural restrictions Component selection and architecture definition are intertwined Here we ll use a simple case study to exemplify the points Case study come from Mancebo2005 ECE750-Topic 11 62
63 Architecture-Based COTS Selection Has four steps iterative process Here we will select components for a multimedia presentation application Think PowerPoint 3D Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach ECE750-Topic 11 63
64 Architecture-Based COTS Selection Possible architectures are modeled as a decisions space Examples: 1. Should graphics object know how to render themselves (KAD 1a ), or should they be decoupled from rendering (KAD 1b )? 2. Should objects keep track of time individually (KAD 2a ), or should their be master synchronization object (KAD 2b )? 3. Should presentations be stored in XML format (KAD 3a ) or as serialized objects (KAD 3b )? Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach ECE750-Topic 11 64
65 Architecture-Based COTS Selection Perform analysis of available components Create matrices reflecting the assumptions a capabilities of components Requirements Fulfillment Component Dependency Architectural Assumptions Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach ECE750-Topic 11 65
66 Requirements Fulfillment Matrix Ogre DirectX OpenGL OpenAL OGLFT QT Graphics API X X Audio X X 3d Text X X GUI Widgets X The X axis is the potential components would be considered using The Y axis lists user s requirements An X represents that that particular component fulfils a particular requirement ECE750-Topic 11 66
67 Component Dependency Matrix Graphics API MFC OpenGL Ogre X DirectX X OGLFT X GLTT X The Y axis is the potential components The X axis is things on which those components depend. An X represents that that particular component fulfils a particular dependency ECE750-Topic 11 67
68 Architectural Assumptions Matrix Ogre DirectX KAD 1 1a KAD 3 KAD 2 Ogre assumes decision 1a that graphics objects must know how to render themselves. Should graphics object know how to render themselves (KAD1a), or should they be decoupled from rendering (KAD1b)? Should objects keep track of time individually (KAD2a), or should their be master synchronization object (KAD2b)? Should presentations be stored in XML format (KAD3a) or as serialized objects (KAD3b)? NOTE: Only one is constrained by one component. So we can eliminate decisions 2 and 3 from our matrix. This is a good thing. Usually what will happen is that in examining potential components on the market, we will find new architectural decisions that we must choose between. This is why this process must be iterated. ECE750-Topic 11 68
69 Architecture-Based COTS Selection To determine the feasible selections Enumerate the architectural approaches Of the form: AA = KAD Example: AAex = KAD 1a Enumerate implementation approaches Of the form: Example: 1 xkad 2 L KAD n IA = ( AA, C) IA ( AA,{ DirectX, Ogre, Qt}) ex = ex Choose Architectural Decisions Model Component Market List Implementation Approaches Choose Best Implementation Approach ECE750-Topic 11 69
70 Architecture-Based COTS Selection IA ex = ( AA,{ DirectX, Ogre, MFC}) ex Choose Architectural Decisions Under the constraints of these set of components: Covers all rows in the requirements matrix Satisfies all component dependencies Is consistent with Architectural Approach Model Component Market List Implementation Approaches Choose Best Implementation Approach ECE750-Topic 11 70
71 Summary Component-based development includes two main phases Component Development (design for reuse) System Development (design with reuse) System Development There is a sequence of finding, selecting, and testing components This sequence may be repeated in the operation and maintenance/evolution as well There may be also custom development ECE750-Topic 11 71
72 Summary Component Development Save time and effort in software projects May bring more predictability of cost and performance Can reuse successful components with appropriate support System composition/integration may confront problems Mainly due to hidden assumptions about Components Connectors Global Architecture Composition Process ECE750-Topic 11 72
Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1
Component-based software engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 Objectives To explain that CBSE is concerned with developing standardised components and
More informationChapter 17 - Component-based software engineering. Chapter 17 So-ware reuse
Chapter 17 - Component-based software engineering 1 Topics covered ² Components and component models ² CBSE processes ² Component composition 2 Component-based development ² Component-based software engineering
More informationΗΜΥ 317 Τεχνολογία Υπολογισμού
ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 16-17: Component-Based Software Engineering ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationSoftware Reuse and Component-Based Software Engineering
Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering
More informationComponent-based Development Process and Component Lifecycle
Journal of Computing and Information Technology - CIT 13, 2005, 4, 321-327 321 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2 and Michel Chaudron 3 1 Mälardalen
More informationWhat is CBSE and Why? Component-Based Software Engineering. But why not in Software engineering? Component Everywhere
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 1 Basic Concepts (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo What is CBSE and
More informationComponent-Based Software Engineering
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 1 Basic Concepts (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo What is CBSE and
More informationIncremental development A.Y. 2018/2019
Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with
More informationArchitectural Styles: Definitions
Component-Based Software Engineering ECE493-Topic 4 Winter 2006 Lecture 7 Architectural Styles in CBSE (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo
More informationStudy of Component Based Software Engineering
Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the
More informationSoftware Architectures
Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429
More informationArchitectural Design. Architectural Design. Software Architecture. Architectural Models
Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems
More informationPresenter: Dong hyun Park
Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components
More informationBasic Properties of Styles
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic
More informationPart 4. Development. -Software Reuse - Component-Based Software Engineering. JUNBEOM YOO Ver. 1.
Software Engineering Part 4. Development - Rapid Software Development -Software Reuse - Component-Based Software Engineering Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006.
More information3Lesson 3: Web Project Management Fundamentals Objectives
3Lesson 3: Web Project Management Fundamentals Objectives By the end of this lesson, you will be able to: 1.1.11: Determine site project implementation factors (includes stakeholder input, time frame,
More informationChapter 6 Architectural Design. Chapter 6 Architectural design
Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationCh 1: The Architecture Business Cycle
Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures
More informationReducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping
Coping with change Change is inevitable in all large software projects. Business changes lead to new and changed system requirements New technologies open up new possibilities for improving implementations
More informationAn Introduction to Software Architecture. David Garlan & Mary Shaw 94
An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data
More informationComponent-based software engineering 2. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1
Component-based software engineering 2 Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 The CBSE process When reusing components, it is essential to make trade-offs between ideal
More informationSoftware Architecture
Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment
More informationHierarchical vs. Flat Component Models
Hierarchical vs. Flat Component Models František Plášil, Petr Hnětynka DISTRIBUTED SYSTEMS RESEARCH GROUP http://nenya.ms.mff.cuni.cz Outline Component models (CM) Desired Features Flat vers. hierarchical
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction
More informationfor TOGAF Practitioners Hands-on training to deliver an Architecture Project using the TOGAF Architecture Development Method
Course Syllabus for 3 days Expert led Enterprise Architect hands-on training "An Architect, in the subtlest application of the word, describes one able to engage and arrange all elements of an environment
More informationEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges
More informationC H A P T E R SYSTEM DESIGN
C H A P T E R SYSTEM DESIGN Chapter Twelve Systems Design Describe the design phase in terms of your information building blocks. Identify and differentiate between several systems design strategies. Describe
More informationSoftware Engineering
Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)
More informationThe Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne
The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing R. Paul, W. T. Tsai, Jay Bayne 1 Table of Content Introduction Service-Oriented Computing Acceptance of SOA within DOD Policy-based
More informationRecalling the definition of design as set of models let's consider the modeling of some real software.
Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous
More informationSoftware Architecture
Software Architecture Good software architecture makes the rest of the project easy. Steve McConnell, Survival Guide There are two ways of constructing a software design: one way is to make it so simple
More informationChapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design
More informationCS 307: Software Engineering. Lecture 10: Software Design and Architecture
CS 307: Software Engineering Lecture 10: Software Design and Architecture Prof. Jeff Turkstra 2017 Dr. Jeffrey A. Turkstra 1 Announcements Discuss your product backlog in person or via email by Today Office
More informationSelling Improved Testing
Selling Improved Testing Reducing Customer Pain Technology Advance Partners Technology Advance Partners is a software services consulting firm with deep experience in Information Technology management,
More informationBy Chung Yeung Pang. The Cases to Tackle:
The Design of Service Context Framework with Integration Document Object Model and Service Process Controller for Integration of SOA in Legacy IT Systems. By Chung Yeung Pang The Cases to Tackle: Using
More informationOliopäivät Modelling Now and in the Future, with Acronyms or without = RSA
IBM Software Group Oliopäivät 28-29.11.2006 Modelling Now and in the Future, with Acronyms or without = RSA rami.talme@fi.ibm.com 2006 IBM Corporation IBM Software Group Rational software The business-driven
More information5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered
Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process
More informationArchitectural Blueprint
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint
More informationAccelerating BI on Hadoop: Full-Scan, Cubes or Indexes?
White Paper Accelerating BI on Hadoop: Full-Scan, Cubes or Indexes? How to Accelerate BI on Hadoop: Cubes or Indexes? Why not both? 1 +1(844)384-3844 INFO@JETHRO.IO Overview Organizations are storing more
More informationGlobal Reference Architecture: Overview of National Standards. Michael Jacobson, SEARCH Diane Graski, NCSC Oct. 3, 2013 Arizona ewarrants
Global Reference Architecture: Overview of National Standards Michael Jacobson, SEARCH Diane Graski, NCSC Oct. 3, 2013 Arizona ewarrants Goals for this Presentation Define the Global Reference Architecture
More informationBuilding a New Rational Web Site with Rational Suite
Building a New Rational Web Site with Rational Suite by Christina Howe Director of Internet Services Rational Software In April of last year, Rational Software determined that its Web site no longer measured
More informationAn Approach to Software Component Specification
Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software
More informationFor presentation at the Fourth Software Engineering Institute (SEI) Software Architecture Technology User Network (SATURN) Workshop.
For presentation at the Fourth Software Engineering Institute (SEI) Software Architecture Technology User Network (SATURN) Workshop. The authors can be reached at cb@mitre.org or ioannis @Mitre.org. In
More informationIntroduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process
Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative
More informationGetting Started with Rational Team Concert
Getting Started with Rational Team Concert or RTC in 16 Steps Kai-Uwe Maetzel IBM Rational Software kai-uwe_maetzel@us.ibm.com SDP 20 2009 IBM Corporation This Presentation is Good for You if You know
More informationCC532 Collaborative System Design
CC532 Collaborative Design Part I: Fundamentals of s Engineering 4. s Interoperation/Integration DoD Architecture Framework (DoDAF) 2 of 24 Architecture of a system The fundamental organization of a system
More information5. Architectural Glue Patterns
5. Architectural Glue Patterns 1 Prof. Dr. U. Aßmann Chair for Software Engineering Faculty of Computer Science Dresden University of Technology 14-0.1, 11/3/14 Lecturer: Dr. Sebastian Götz 1) Mismatch
More informationChapter 1: Principles of Programming and Software Engineering
Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without
More informationChapter 1: Programming Principles
Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key
More informationChapter 6 Architectural Design
Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural
More informationVendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo
Vendor: The Open Group Exam Code: OG0-091 Exam Name: TOGAF 9 Part 1 Version: Demo QUESTION 1 According to TOGAF, Which of the following are the architecture domains that are commonly accepted subsets of
More informationComponent-based Architecture Buy, don t build Fred Broks
Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements
More informationBest practices for OO 10 content structuring
Best practices for OO 10 content structuring With HP Operations Orchestration 10 two new concepts were introduced: Projects and Content Packs. Both contain flows, operations, and configuration items. Organizations
More informationN-Tiered Enterprise Styles. Example 1. Key Concepts. Component-Based Software Engineering. ECE493-Topic 4 Winter 2006
Component-Based Software Engineering ECE493-Topic 4 Winter 2006 Lecture 14 Enterprise Styles/Patterns (Part B) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo N-Tiered
More informationOPEN SOURCE TESTING IN SAUDI ARABIA 1
OPEN SOURCE TESTING IN SAUDI ARABIA 1 Open Source Testing In Saudi Arabia by:husam Al-Swueiti INTRODUCTION / HISTORY Open source is a term used to describe the free use of software. Before the 60s, very
More informationIntroduction to Software Engineering
Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,
More informationArchitecture CSE 403. Fallingwater by Frank Lloyd Wright
Architecture CSE 403 Fallingwater by Frank Lloyd Wright Outline What is a software architecture? What does an architecture look like? What is a good architecture? Properties of architectures Example architectures
More informationIntegration With the Business Modeler
Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design
More informationIn his paper of 1972, Parnas proposed the following problem [42]:
another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example
More informationWhat is Software Architecture
What is Software Architecture Is this diagram an architecture? (ATM Software) Control Card Interface Cash Dispenser Keyboard Interface What are ambiguities in the previous diagram? Nature of the elements
More informationJim Mains Director of Business Strategy and Media Services Media Solutions Group, EMC Corporation
Media Asset Management Databases The Heart of the System and Critical Decisions and Steps for Success Jim Mains Director of Business Strategy and Media Services Media Solutions Group, EMC Corporation Agenda
More informationLecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process
More informationA Perspective on the Transformation of zseries to Support New Workloads
A Perspective on the Transformation of zseries to Support New Workloads Carl Wohlers IBM Corporation carlw@us.ibm.com 1-877-535-6382 Mainframe and Distributed Server Integration In days of yore, the mainframe
More informationImplementing Architectures
Implementing Architectures Software Architecture Lecture 15 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Formulate implementation as a mapping
More informationCOMPTIA CLO-001 EXAM QUESTIONS & ANSWERS
COMPTIA CLO-001 EXAM QUESTIONS & ANSWERS Number: CLO-001 Passing Score: 800 Time Limit: 120 min File Version: 39.7 http://www.gratisexam.com/ COMPTIA CLO-001 EXAM QUESTIONS & ANSWERS Exam Name: CompTIA
More informationAn Introduction to Software Architecture By David Garlan & Mary Shaw 94
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to
More informationSample Exam. Advanced Test Automation - Engineer
Sample Exam Advanced Test Automation - Engineer Questions ASTQB Created - 2018 American Software Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationInformation Quality & Service Oriented Architecture
Information Quality & Oriented Architecture Presentation for the MIT IQ Industry Symposium July 17, 2007 Dave Becker The MITRE Corporation Approved for Public Release; Distribution Unlimited. (070837)
More informationChapter 12. Systems Design. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.
Chapter 12 Systems Design McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives Describe the design phase in terms of your information building blocks. Identify
More informationAn Introduction to Software Architecture By David Garlan & Mary Shaw 94
IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to
More informationImplementing a Modular Open Systems Approach (MOSA) to Achieve Acquisition Agility in Defense Acquisition Programs
Implementing a Modular Open Systems Approach (MOSA) to Achieve Acquisition Agility in Defense Acquisition Programs Philomena Zimmerman Office of the Deputy Assistant Secretary of Defense for Systems Engineering
More informationOBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis
UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance
More informationAccelerate Your Enterprise Private Cloud Initiative
Cisco Cloud Comprehensive, enterprise cloud enablement services help you realize a secure, agile, and highly automated infrastructure-as-a-service (IaaS) environment for cost-effective, rapid IT service
More informationDeveloping an Enterprise Client Virtualization Strategy
White Paper Intel Information Technology Computer Manufacturing Client Virtualization Developing an Enterprise Client Virtualization Strategy Intel IT is investigating virtualization because it has the
More informationChapter 4 Objectives
Chapter 4 Objectives Eliciting requirements from the customers Modeling requirements Reviewing requirements to ensure their quality Documenting requirements for use by the design and test teams 4.1 The
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationObjectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture
Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural
More informationThe next generation of Google APIs
The next generation of Google APIs Ade Oshineye www.oshineye.com/+ Let s talk about the future This is not a vendor pitch This. Is. Not. A. Vendor. Pitch. I work on the Google+ Project www.oshineye.com/+
More informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /
More informationMonitoring services on Enterprise Service Bus
Monitoring services on Enterprise Service Bus Ilona Bluemke, Marcin Warda Institute of Computer Science, Warsaw University of Technology, Nowowiejska 15/19, 00-665 Warsaw, Poland {I.Bluemke}@ii.pw.edu.pl
More informationIntroducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence
Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology
More informationPatterns Architectural Styles Archetypes
Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.
More informationUNIT-I Introduction of Object Oriented Modeling
UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,
More informationRED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE.
RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE. Is putting Contact us INTRODUCTION You know the headaches of managing an infrastructure that is stretched to its limit. Too little staff. Too many users. Not
More informationSoftware Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution
Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary
More informationRemote power and console management in large datacenters
Remote power and console management in large datacenters A Horváth IT department, CERN, CH-1211 Genève 23, Switzerland E-mail: Andras.Horvath@cern.ch Abstract. Today s datacenters are often built of a
More informationArchitectural Design
Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN
More informationVO Software Engineering
Administrative Issues Univ.Prof. Dr. Peter Auer Chair for Information Technology Email: auer@unileoben.ac.at Lecture Thursday 10:15 11:45 Project Lab Montag 16:00 19:00 Literature Helmut Balzert, Lehrbuch
More informationGSAW Software Architectures: What are we Building? March 1999
GSAW 1999 Software Architectures: What are we Building? March 1999 Roger J. Dziegiel, Jr AFRL/IFTD 525 Brooks Rd Rome, NY 13441-4505 (315)330-2185 dziegielr@rl.af.mil Arch1 Architecture & Generation Parameterized
More informationHP Application Lifecycle Management. Upgrade Best Practices
HP Application Lifecycle Management Upgrade Best Practices Document Release Date: October 2010 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty
More informationThe 7 Habits of Highly Effective API and Service Management
7 Habits of Highly Effective API and Service Management: Introduction The 7 Habits of Highly Effective API and Service Management... A New Enterprise challenge has emerged. With the number of APIs growing
More informationAdvanced Security Tester Course Outline
Advanced Security Tester Course Outline General Description This course provides test engineers with advanced skills in security test analysis, design, and execution. In a hands-on, interactive fashion,
More informationCS 575: Software Design
CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation
More informationRaising the Level of Development: Models, Architectures, Programs
IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different
More informationAgent-Enabling Transformation of E-Commerce Portals with Web Services
Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:
More informationSoftware Design COSC 4353/6353 DR. RAJ SINGH
Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications
More informationBuilding the User Interface: The Case for Continuous Development in an Iterative Project Environment
Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment
More information