ECE750-Topic11: Component-Based Software Systems

Size: px
Start display at page:

Download "ECE750-Topic11: Component-Based Software Systems"

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 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 information

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

Chapter 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 Τεχνολογία Υπολογισμού ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 16-17: Component-Based Software Engineering ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo 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 information

Software Reuse and Component-Based Software Engineering

Software 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 information

Component-based Development Process and Component Lifecycle

Component-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 information

What is CBSE and Why? Component-Based Software Engineering. But why not in Software engineering? Component Everywhere

What 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 information

Component-Based Software Engineering

Component-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 information

Incremental development A.Y. 2018/2019

Incremental 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 information

Architectural Styles: Definitions

Architectural 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 information

Study of Component Based Software Engineering

Study 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 information

Software Architectures

Software 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 information

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Architectural 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 information

Presenter: Dong hyun Park

Presenter: 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 information

Basic Properties of Styles

Basic 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 information

Part 4. Development. -Software Reuse - Component-Based Software Engineering. JUNBEOM YOO Ver. 1.

Part 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 information

3Lesson 3: Web Project Management Fundamentals Objectives

3Lesson 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 information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 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 information

Component-Based Software Engineering TIP

Component-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 information

Ch 1: The Architecture Business Cycle

Ch 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 information

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Reducing 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 information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An 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 information

Component-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 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 information

Software Architecture

Software 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 information

Hierarchical vs. Flat Component Models

Hierarchical 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 information

CAS 703 Software Design

CAS 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 information

for TOGAF Practitioners Hands-on training to deliver an Architecture Project using the TOGAF Architecture Development Method

for 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 information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise 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 information

C H A P T E R SYSTEM DESIGN

C 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 information

Software Engineering

Software 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 information

The 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 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 information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling 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 information

Software Architecture

Software 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 information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 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 information

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

CS 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 information

Selling Improved Testing

Selling 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 information

By Chung Yeung Pang. The Cases to Tackle:

By 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 information

Oliopäivät Modelling Now and in the Future, with Acronyms or without = RSA

Oliopä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 information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/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 information

Architectural Blueprint

Architectural 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 information

Accelerating BI on Hadoop: Full-Scan, Cubes or Indexes?

Accelerating 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 information

Global 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 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 information

Building a New Rational Web Site with Rational Suite

Building 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 information

An Approach to Software Component Specification

An 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 information

For 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. 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 information

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Introduction. 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 information

Getting Started with Rational Team Concert

Getting 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 information

CC532 Collaborative System Design

CC532 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 information

5. Architectural Glue Patterns

5. 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 information

Chapter 1: Principles of Programming and Software Engineering

Chapter 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 information

Chapter 1: Programming Principles

Chapter 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 information

Chapter 6 Architectural Design

Chapter 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 information

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo

Vendor: 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 information

Component-based Architecture Buy, don t build Fred Broks

Component-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 information

Best practices for OO 10 content structuring

Best 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 information

N-Tiered Enterprise Styles. Example 1. Key Concepts. Component-Based Software Engineering. ECE493-Topic 4 Winter 2006

N-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 information

OPEN SOURCE TESTING IN SAUDI ARABIA 1

OPEN 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 information

Introduction to Software Engineering

Introduction 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 information

Architecture CSE 403. Fallingwater by Frank Lloyd Wright

Architecture 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 information

Integration With the Business Modeler

Integration 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 information

In his paper of 1972, Parnas proposed the following problem [42]:

In 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 information

What is Software Architecture

What 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 information

Jim Mains Director of Business Strategy and Media Services Media Solutions Group, EMC Corporation

Jim 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 information

Lecture 1. Chapter 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 process

More information

A Perspective on the Transformation of zseries to Support New Workloads

A 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 information

Implementing Architectures

Implementing 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 information

COMPTIA CLO-001 EXAM QUESTIONS & ANSWERS

COMPTIA 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 information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An 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 information

Sample Exam. Advanced Test Automation - Engineer

Sample 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 information

Component-Based Software Engineering TIP

Component-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 information

Information Quality & Service Oriented Architecture

Information 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 information

Chapter 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. 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 information

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An 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 information

Implementing 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 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 information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT 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 information

Accelerate Your Enterprise Private Cloud Initiative

Accelerate 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 information

Developing an Enterprise Client Virtualization Strategy

Developing 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 information

Chapter 4 Objectives

Chapter 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 information

Architectural Styles I

Architectural 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 information

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Objectives. 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 information

The next generation of Google APIs

The 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 information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI 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 information

Monitoring services on Enterprise Service Bus

Monitoring 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 information

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Introducing 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 information

Patterns Architectural Styles Archetypes

Patterns 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 information

UNIT-I Introduction of Object Oriented Modeling

UNIT-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 information

RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE.

RED 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 information

Software 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 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 information

Remote power and console management in large datacenters

Remote 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 information

Architectural Design

Architectural 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 information

VO Software Engineering

VO 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 information

GSAW Software Architectures: What are we Building? March 1999

GSAW 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 information

HP Application Lifecycle Management. Upgrade Best Practices

HP 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 information

The 7 Habits of Highly Effective API and Service Management

The 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 information

Advanced Security Tester Course Outline

Advanced 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 information

CS 575: Software Design

CS 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 information

Raising the Level of Development: Models, Architectures, Programs

Raising 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 information

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Agent-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 information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software 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 information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building 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