CAS 703 Software Design

Size: px
Start display at page:

Download "CAS 703 Software Design"

Transcription

1 Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software Architecture by Tao et al. (Chapters 6 and 7)

2 1 Data Centered Architecture Architecture Virtual Machine

3 Patterns for Data Centered and Arch. Data Centered Architecture The data centered software architecture Is characterized by a centralized data store The data store is shared by all related software components The software system is decomposed into two major partitions data store independent software component agents The connections between the data modules and software components are implemented by explicit method invocation implicit method invocation based on the repository category Data Centered Architecture Architecture

4 Patterns for Data Centered and Arch. Data Centered Architecture In pure data centered software architecture The software components do not communicate with each other directly All the communications are conducted via data store The shared data module provides all mechanisms for software components to access it insertion deletion update retrieval Data Centered Architecture Architecture

5 Patterns for Data Centered and Arch. Data Centered Architecture There are two categories of data centered architecture (differentiated by the flow control strategy) The data store is passive Clients of the data store are active (software component are taking control of flow logic) Client may access a repository interactively by a batch transaction request is widely used in database management system library information system Computer Aided Software Engineering (CASE) Data Centered Architecture Architecture

6 Patterns for Data Centered and Arch. Data Centered Architecture Data Centered Architecture Architecture Figure: architecture

7 Patterns for Data Centered and Arch. Data Centered Architecture There are two categories of data centered architecture (Continued) The data store in blackboard architecture is active Its clients are passive that the flow logic is determined by the current data status in the data store The clients of a blackboard are called knowledge sources A new data change may trigger events to its listeners (subscribers) Data Centered Architecture Architecture

8 Patterns for Data Centered and Arch. Data Centered Architecture There are two categories of data centered architecture (Continued) (Continued) A new data change may drive the flow logic continually until a goal is reached Most software applications designed in the blackboard architecture are knowledge based systems voice and image recognition system security system Data Centered Architecture Architecture

9 Patterns for Data Centered and Arch. Data Centered Architecture Data Centered Architecture Architecture Figure: architecture

10 Patterns for Data Centered and Arch. Architecture In this architectural style, the system is viewed as a hierarchical structure The software system is decomposed into functional modules (sub-systems) The modules at different levels are connected by explicit method invocations A lower level module provides services to its adjacent upper level modules In procedure orientation, the lower level function and procedures may be organized in a header file or library Data Centered Architecture Architecture

11 Patterns for Data Centered and Arch. Architecture In the object orientation, the lower level services may be organized in a package of classes Many system software (e.g., Unix) are built by hierarchical architecture The services at lower levels provide more specific fundamental utility service The middle layer provides all business logic or core processing services The upper layer provides user with interface Each layer is supported by its lower layer and provides service interface to its upper layer Data Centered Architecture Architecture

12 Patterns for Data Centered and Arch. Architecture Data Centered Architecture Architecture Figure: Unix Architecture

13 Patterns for Data Centered and Arch. Architecture The HA is characterized by explicit method invocation (call-and-return) connection styles It is used in the organization of class library It can be applied to procedure-oriented design, object-oriented design, component-oriented design, domain-specific design, and many others It is hard to see any software that only uses one type architectural style The hierarchical structure is one of the most popular styles that often combine with other styles Data Centered Architecture Architecture

14 Patterns for Data Centered and Arch. It supports user interaction for data processing instead of batch sequential transaction processing The software component agents of the data store control the computation and flow logic of the system Clients can get data from data store and put data in the store Different clients may have different interfaces and different privileges

15 Patterns for Data Centered and Arch. Figure: Student management system (simplified class diagram)

16 Patterns for Data Centered and Arch. The Student class is a data bean class which is backed up by a corresponding table in a database public class Student implements Serializable { String SSN; String Name; public Student() { SSN = ; Name = ; } public Student(String ssn, String name) { SSN = ssn; Name = name; } public void setssn(string ssn) { SSN = ssn; } public String getssn() { return SSN; } public void setname(string name) { Name=name;} public String getname() { return Name; } }

17 Patterns for Data Centered and Arch. The connection between the data bean class and an Oracle database try { } Class.forName( sun.jdbc.odbc.jdbcodbcdriver ); Connection connection = DriverManager.getConnection( "jdbc:odbc:students"); catch(exception e){... }

18 Patterns for Data Centered and Arch. JDBC SQL statement to select all records from the students table and place them in the ResultSet ArrayList studentlist = new ArrayList() ; Statement statement = connection.createstatement () ; ResultSet results = statement.executequery("select * FROM students ) ; Student student = new Student() ; while (results. next ()) { student.setssn(results.getssn(l)) ; student.setname(results.getname(2)) ; studentlist.add(student) ; }

19 Patterns for Data Centered and Arch. Figure: Dynamic view of this repository architecture

20 Patterns for Data Centered and Arch. The relational database management system is a typical design domain for the repository architecture The data store of the repository maintains all types of data including schema (meta-data), data tables, and index files for data tables Many tools available to develop application on the database stored in database management system tools, development tools, maintenance tools, and documentation tools Oracle er, Oracle Developer, Oracle data warehouse, etc. Computer Aided Software Engineering (CASE) system is another design domain for the rep. soft. arch.

21 Patterns for Data Centered and Arch.

22 Patterns for Data Centered and Arch. Applicable domain of repository Large complex information system where many software component clients need to access it in different aspects Information system where data transactions drive the control flow of computation Benefits Data integrity: easy to backup and restore System scalability and Reusability of agents: easy to add new software component Reduce the overhead of transient data between software components

23 Patterns for Data Centered and Arch. Limitations Data store reliability & availability are important issues Centralized repository is vulnerable to failure compared to distributed repository with data replication High dependency between data structure of data store and its agents The changes of data structure have significant impacts on its agents Overhead cost of moving data on network if data is distributed Related Architecture architecture, multi-tier architecture, Model-view-controller (MVC) architecture

24 Patterns for Data Centered and Arch. The word blackboard comes from classroom teaching and learning Teacher and students can share data in solving a hard open problem on classroom blackboard Each student and each teacher plays a role of agent to make their contributions to the problem solving They all can work in parallel and very independently The idea of blackboard architecture is very similar to the classroom blackboard

25 Patterns for Data Centered and Arch. It is a data directed and partial data driven architecture The whole system is decomposed into two major partitions blackboard sub-system used to store data (hypotheses and facts) knowledge source sub-system (domain-specific knowledge is stored) There may be a third sub-system called controller (used to initiate the blackboard and knowledge sources, takes a bootstrap role and overall supervision control)

26 Patterns for Data Centered and Arch. The connections between the two partitions are implicit invocation from the blackboard to a specific knowledge source in the blackboard The data change in the blackboard triggers a matched knowledge source to continue its reasoning The data change may be caused by new deduced conclusion or hypotheses results by some knowledge sources (called publish/subscribe mode)

27 Patterns for Data Centered and Arch. Figure: architecture

28 Patterns for Data Centered and Arch. Many domain specific knowledge sources collaborate together to solve a complex problem such authentication in information security Each knowledge source is relatively independent from other knowledge source No need to interact with each other They only need to interact and respond to the blackboard sub-system Each source only works on a specific aspect of the problem, and contributes a partial solution to the ultimate solution

29 Patterns for Data Centered and Arch. Figure: UML class diagram of rule-based blackboard software architecture

30 Patterns for Data Centered and Arch. Knowledge source (Set of rules) RI: IF animal gives milk THEN animal is mammal R2: IF animal eats meat THEN animal is carnivore R3: IF animal is mammal AND animal is carnivore AND animal has tawny color AND animal has black stripes THEN animal is tiger (The set of facts) F I: animal eats meat F2: animal gives milk F3: animal has black strips F3: animal has tawny color The goal is to recognize an animal (Using forward reasoning or backward reasoning)

31 Patterns for Data Centered and Arch. Figure: Sequence diagram of blackboard architecture

32 Patterns for Data Centered and Arch. Figure: Publish/subscribe relationship between blackboard and knowledge sources

33 Patterns for Data Centered and Arch. Figure: architecture for a travel consulting system

34 Patterns for Data Centered and Arch. Applicable domain Suitable for solving immature and complex problems where non deterministic solutions exist The problem spans multiple disciplines Optimal, partial, or approximate solution is acceptable to the problems Exhausted searching is impossible and impractical since it may take forever Benefits Scalability: easy to add new knowledge source or update existing knowledge source Concurrency: all knowledge sources can work in parallel since they are very independent of each other

35 Patterns for Data Centered and Arch. Benefits (Continued) Supports experimentation for hypotheses Reusability of knowledge source agents Limitations Tight dependency between the blackboard and knowledge source Difficult to make a decision when to terminate reasoning Synchronization of multiple agents is an issue Debugging and testing of the system is a challenge (no clear execution path) Related architecture Implicit invocation architecture such as event-based

36 Patterns for Data Centered and Arch. The main/subroutine design architecture has dominated the software design methodologies for very long time Its purpose is to have maximum reuse of subroutines and make individual subroutine be developed independently In the classical procedure orientation, often all the data are shared by related subroutines at lowest level In the object orientation, the data is encapsulated in each individual object Often M/S style is refered to as the traditional style

37 Patterns for Data Centered and Arch. Figure: Typical hierarchical software architecture

38 Patterns for Data Centered and Arch. A system is decomposed into subroutines hierarchically according to the desired functionality of the system Behaviour hiding (secrets = input formats, screen formats, messages) Software decision hiding (secrets= algorithms and data structures) Machine hiding (secrets= hardware machine, virtual machine, interfaces, etc.) The refinements are conducted vertically until the decomposed subroutine is simple enough

39 Patterns for Data Centered and Arch. Figure: Main/subroutines architecture

40 Patterns for Data Centered and Arch. The main program is the program driver that has a mater control over the sequencing of its subroutines How to map a requirement specification to the design structure? Start from a data flow view (Data Flow Diagram) of the requirements We need to find transform or transaction flows: Transform Flow (flow feeds in an external format, it is transformed into an internal format, and then carried out) Transaction Flow (evaluates its incoming data value, and decides on the path to follow)

41 Patterns for Data Centered and Arch. How to map a requirement specification to the design structure? (Continued) A transform flow is mapped to an M/S architecture with a controlling module for incoming, transform and outgoing information processing A transaction center is located at the fork origin of action paths Classify each action path to transform or transaction flows The transaction centre becomes a dispatcher control module Factoring analysis continues until each module in the software architecture has its sole responsibility

42 Patterns for Data Centered and Arch. Figure: Mapped M/S structure

43 Patterns for Data Centered and Arch. Benefits Easy to decompose the system based on the definition of the tasks in a top down refinements manner This architecture can still be used in a sub-system of 00 Limitation Globally shared data in classical main/subroutines are vulnerable Tight coupling may cause ripple impacts compared to 00

44 Patterns for Data Centered and Arch. Software Architecture The architecture is a variant of the main/subroutine architecture style It supports fault tolerance and system reliability The slaves provide replicated services to the master The master selects a particular result among slaves by certain selection strategy The slaves may perform the same functional task by different algorithms and methods

45 Patterns for Data Centered and Arch. Figure: Block diagram for master/slaves architecture

46 Patterns for Data Centered and Arch. Figure: Class diagram for master/slaves architecture

47 Patterns for Data Centered and Arch. This architecture is suitable for parallel computing and accuracy of computation All slaves can be executed in parallel A task is delegated to several different implementations, inaccurate results can be detected Applicable Domains Software system where the liability is critical Software system where performance is critical (to a certain limit communication overhead )

48 Patterns for Data Centered and Arch. Architecture System is decomposed into a number of higher and lower layers Each layer consists of a group of related classes in a format of package or deployed component (OOD) a group of subroutines in the format of method library or header file Each layer should have its own sole responsibility for the entire system

49 Patterns for Data Centered and Arch. A request to layer i + 1 invokes the services provided by the layer i via the later interface The response may go back to the layer i + 1 if the task is completed by this layer i Otherwise, layer i continually invokes the layer i 1 below for services The interface of each layer encapsulates all detail service implementations in the current layer or below

50 Patterns for Data Centered and Arch. Figure: A partial layered architecture

51 Patterns for Data Centered and Arch. The request from higher layer to the layer below is made via the method invocation and the response goes back up via the method return Each layer has two interfaces up interface provides services to its upper layer low interface requires services from its lower layer In a pure layered hierarchy, each layer only provides services to the adjacent upper layer directly and only requests services from the adjacent layer directly below

52 Patterns for Data Centered and Arch. Figure: Business oriented software architecture

53 Patterns for Data Centered and Arch. Higher layer provides more generic or application oriented services (abstract) Lower layer provides more specific utility type services To encapsulate all the services in one layer, we can deploy each layer in a component format (such as a JAR file (Java ARchive) )) A JAR file is a compressed file which is deployed as a component of a package

54 Patterns for Data Centered and Arch. A jar file includes all the service classes from lower level plus other related classes provided in the same layer and provided by Java API The Java API is the set of classes included with the Java Development Environment These classes are written using the Java language and run on the JVM The Java API includes everything from collection classes to GUI classes

55 Patterns for Data Centered and Arch. Figure: Component-based layered architecture

56 Patterns for Data Centered and Arch. A simple software system may consist of two layers (Interaction& Processing) Interaction Layer It provides user Interfaces to clients It takes requests It validates and forwards request to processing layer for processing It responds to clients Processing Layer It gets the forwarded requests and performs business logic process It accesses database It returns the results to its upper layer It lets upper layer respond to clients (since the upper layer has the GUI interface responsibility)

57 Patterns for Data Centered and Arch. Figure: Object Access Protocol (SOAP) layered architecture

58 Patterns for Data Centered and Arch. Figure: Class diagram for layered architecture

59 Patterns for Data Centered and Arch. Applicable Domains Any system that can be divided between the application specific portions and platform specific portions Applications that have clean divisions between core services, critical services, user interface services Applications that have a number of classes that are closely related to each other so that they can be grouped together to provide the services to others. Benefit Incremental software development based on increasing levels of abstraction Enhanced independence of layers Enhanced reusability Component-based technology is a suitable technology to implement the layered structure (plug-and-play) Promotion of portability: each layer can be an abstract machine deployed independently

60 Patterns for Data Centered and Arch. Limitations Lower runtime performance (a client s request/response goes through many layer) Performance concerns on overhead on the data marshaling and buffering by each layer Many applications can not fit this architecture Exception and error handling is an issue in the layered architecture Related architecture, client/server, virtual machine

61 Patterns for Data Centered and Arch. Virtual Machine Virtual Machine It is built on an existing system It separates a programming language, hardware language, or application from a physical execution platform It plays the role of an emulation software It provides an emulation of the functions of one system using a different system It allows exact reproduction of external behavior of a system

62 Patterns for Data Centered and Arch. Virtual Machine Figure: Unix virtual machine

63 Patterns for Data Centered and Arch. Virtual Machine Figure: Common Language Runtime (CLR) virtual machine in.net platform

64 Patterns for Data Centered and Arch. Virtual Machine Figure: Java virtual machine

65 Patterns for Data Centered and Arch. Virtual Machine Applicable Domain Solving a problem by simulation or translation Interpreters of microprogramming, XML processing, script command language execution, rule-based system execution, Small talk and Java interpreter typed programming language Benefits Portability and machine platform independence Simplicity of the software development Simulation for non-native model

66 Patterns for Data Centered and Arch. Virtual Machine Limitations Slow execution of the interpreter Additional overhead due to the new layer Related architecture Interpreter, repository, layered architecture

67

SFWR ENG 3A04: Software Design II

SFWR ENG 3A04: Software Design II Outline Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Term 1, 2OO8 2OO9 Acknowledgments: Material based on Software Architecture Design by

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

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

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

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

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

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80

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

Architectural Styles - Finale

Architectural Styles - Finale Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles - Finale Reid Holmes Lecture

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

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

CPSC 410 Advanced Software Engineering Mid-term Examination (Term I ): Solution Instructor: Gail Murphy

CPSC 410 Advanced Software Engineering Mid-term Examination (Term I ): Solution Instructor: Gail Murphy CPSC 410 Advanced Software Engineering Mid-term Examination (Term I 2003-2004): Solution Instructor: Gail Murphy Do NOT start until you are informed you can start! This examination has 6 questions. The

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion

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

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

Software Architecture in Practice

Software Architecture in Practice Software Architecture in Practice Chapter 5: Architectural Styles - From Qualities to Architecture Pittsburgh, PA 15213-3890 Sponsored by the U.S. Department of Defense Chapter 5 - page 1 Lecture Objectives

More information

Element: Relations: Topology: no constraints.

Element: Relations: Topology: no constraints. The Module Viewtype The Module Viewtype Element: Elements, Relations and Properties for the Module Viewtype Simple Styles Call-and-Return Systems Decomposition Style Uses Style Generalization Style Object-Oriented

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

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process Architectural Design Objectives 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

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

(C) Global Journal of Engineering Science and Research Management

(C) Global Journal of Engineering Science and Research Management ANDROID BASED SECURED PHOTO IDENTIFICATION SYSTEM USING DIGITAL WATERMARKING Prof.Abhijeet A.Chincholkar *1, Ms.Najuka B.Todekar 2, Ms.Sunita V.Ghai 3 *1 M.E. Digital Electronics, JCOET Yavatmal, India.

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Architectural Design. CSCE Lecture 12-09/27/2016

Architectural Design. CSCE Lecture 12-09/27/2016 Architectural Design CSCE 740 - Lecture 12-09/27/2016 Architectural Styles 2 Today s Goals Define what architecture means when discussing software development. Discuss methods of documenting and planning

More information

Software Architecture

Software Architecture Software Architecture Lecture 6 Event Systems Rob Pettit George Mason University SWE 443 Software Architecture Event Systems 1 previously data flow and call-return styles data flow batch sequential dataflow

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

Architectural Design

Architectural Design Architectural Design Objectives 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

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2 Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:

More information

Chapter 6 Enterprise Java Beans

Chapter 6 Enterprise Java Beans Chapter 6 Enterprise Java Beans Overview of the EJB Architecture and J2EE platform The new specification of Java EJB 2.1 was released by Sun Microsystems Inc. in 2002. The EJB technology is widely used

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Architectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Object-Oriented Style Components are objects Data and associated

More information

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design

Architecture Styles. Instructor: Yongjie Zheng February 7, CS 5553: Software Architecture and Design Architecture Styles Instructor: Yongjie Zheng February 7, 2017 CS 5553: Software Architecture and Design Architecture styles: a named collection of architecture design decisions that (1) are applicable

More information

Software Architecture

Software Architecture Software Architecture Lecture 5 Call-Return Systems Rob Pettit George Mason University last class data flow data flow styles batch sequential pipe & filter process control! process control! looping structure

More information

Chapter 13: Architecture Patterns

Chapter 13: Architecture Patterns Chapter 13: Architecture Patterns SAiP Chapter 13 J. Scott Hawker/R. Kuehl p. 1 Len Bass, Paul Clements, Rick Kazman, Topics What is a Pattern? Pattern Catalog Module patterns Component and Connector Patterns

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2004 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq04/syllabus.html Copyright 2004, Richard

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Software Architectures. Lecture 3

Software Architectures. Lecture 3 Software Architectures Lecture 3 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements : tactics

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

Software Architecture

Software Architecture Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning

More information

Software Architecture. Lecture 4

Software Architecture. Lecture 4 Software Architecture Lecture 4 Last time We discussed tactics to achieve architecture qualities We briefly surveyed architectural styles 23-Jan-08 http://www.users.abo.fi/lpetre/sa08/ 2 Today We check

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS Distributed Objects Figure 10-1. Common organization of a remote

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring 2005:

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

Architectural Styles and Non- Functional Requirements

Architectural Styles and Non- Functional Requirements Architectural Styles and Non- Functional Requirements Jan Bosch. Design and Use of Software Architectures. Addison-Wesley, May 19, 2000. 5/18/2007 2007, Spencer Rugaber 1 Performance That attribute of

More information

Chapter 18 Distributed Systems and Web Services

Chapter 18 Distributed Systems and Web Services Chapter 18 Distributed Systems and Web Services Outline 18.1 Introduction 18.2 Distributed File Systems 18.2.1 Distributed File System Concepts 18.2.2 Network File System (NFS) 18.2.3 Andrew File System

More information

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson Design Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm A

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 Other 1 2 3 4 Other Principle of Least Privilege Principle of Fail-Safe Defaults Principle of

More information

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1 Umair Javed 2004 J2EE Based Distributed Application Architecture Overview Lecture - 2 Distributed Software Systems Development Why J2EE? Vision of J2EE An open standard Umbrella for anything Java-related

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 4: Operating System Support Processes and

More information

ICS 52: Introduction to Software Engineering

ICS 52: Introduction to Software Engineering ICS 52: Introduction to Software Engineering Fall Quarter 2002 Professor Richard N. Taylor Lecture Notes Week 3: Architectures http://www.ics.uci.edu/~taylor/ics_52_fq02/syllabus.html Copyright 2002, Richard

More information

Service-Oriented Programming

Service-Oriented Programming Service-Oriented Programming by Guy Bieber, Lead Architect, ISD C4I, Motorola ABSTRACT - The Service-Oriented Programming (SOP) model is the most exciting revolution in programming since Object Oriented

More information

MySQL for Database Administrators Ed 3.1

MySQL for Database Administrators Ed 3.1 Oracle University Contact Us: 1.800.529.0165 MySQL for Database Administrators Ed 3.1 Duration: 5 Days What you will learn The MySQL for Database Administrators training is designed for DBAs and other

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

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

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

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

Chapter 6 System Design: Decomposing the System

Chapter 6 System Design: Decomposing the System Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 6 System Design: Decomposing the System Requirements Elicitation & Analysis results in; Non-functional requirements and constraints

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Engineering Design Lecture 11 Motivation for studying SW architecture As the size of SW systems increases, the algorithms and data structures of the computation

More information

Oracle SOA Suite 12c: Build Composite Applications. About this course. Course type Essentials. Duration 5 Days

Oracle SOA Suite 12c: Build Composite Applications. About this course. Course type Essentials. Duration 5 Days Oracle SOA Suite 12c: Build Composite Applications About this course Course type Essentials Course code OC12GSOABCA Duration 5 Days This Oracle SOA Suite 12c: Build Composite Applications training teaches

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures Subsystems, Modules and Connectors Pipes and Filters, Object-Oriented, Layered, Event-Driven, Repository-Based Architectures Client Server Architectures

More information

OPENEDGE TRAINING SYNOPSES course synopses for OpenEdge Training.

OPENEDGE TRAINING SYNOPSES course synopses for OpenEdge Training. OPENEDGE TRAINING SYNOPSES 2013 course synopses for OpenEdge Training. CONTENTS DEVELOPMENT AND PROGRAMMING OpenEdge Programming with a Character UI... 3 Persistence and Named Events... 4 Dynamic Query

More information

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple

More information

Oracle Fusion Middleware 11g: Build Applications with Oracle Forms

Oracle Fusion Middleware 11g: Build Applications with Oracle Forms Oracle University Contact Us: +381 11 2016811 Oracle Fusion Middleware 11g: Build Applications with Oracle Forms Duration: 5 Days What you will learn This course teaches students how to use Oracle Forms

More information

UNIT III - JDBC Two Marks

UNIT III - JDBC Two Marks UNIT III - JDBC Two Marks 1.What is JDBC? JDBC stands for Java Database Connectivity, which is a standard Java API for databaseindependent connectivity between the Java programming language and a wide

More information

Architectural Patterns. Pascal Molli (a System of patterns Buschman et al)

Architectural Patterns. Pascal Molli (a System of patterns Buschman et al) Architectural Patterns Pascal Molli (a System of patterns Buschman et al) Architectural Patterns From MUD to Structure Layers, Pipe and Filters, Blackboard Distributed Systems Broker, Pipe and Filters,

More information

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader... Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns

More information

Architectural Styles. Reid Holmes

Architectural Styles. Reid Holmes Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION II: DATA-CENTERED, DATA-FLOW, AND DISTRIBUTED SYSTEMS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright

More information

COPYRIGHTED MATERIAL

COPYRIGHTED MATERIAL Introduction xxiii Chapter 1: Apache Tomcat 1 Humble Beginnings: The Apache Project 2 The Apache Software Foundation 3 Tomcat 3 Distributing Tomcat: The Apache License 4 Comparison with Other Licenses

More information

An Introduction to Software Architecture

An Introduction to Software Architecture An Introduction to Software Architecture Software Requirements and Design CITS 4401 Lecture 11 Motivation for studying SW architecture As the size of SW systems increase, the algorithms and data structures

More information

XVIII. Software Architectures

XVIII. Software Architectures XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture

More information

SNS COLLEGE OF ENGINEERING, Coimbatore

SNS COLLEGE OF ENGINEERING, Coimbatore SNS COLLEGE OF ENGINEERING, Coimbatore 641 107 Accredited by NAAC UGC with A Grade Approved by AICTE and Affiliated to Anna University, Chennai IT6503 WEB PROGRAMMING UNIT 03 JDBC JDBC Overview JDBC implementation

More information

Fast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002

Fast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002 Fast Track Model Based Design and Development with Oracle9i Designer An Oracle White Paper August 2002 Fast Track Model Based Design and Development with Oracle9i Designer Executive Overivew... 3 Introduction...

More information

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1 Introducing Object Oriented Programming... 2 Explaining OOP concepts... 2 Objects...3

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Creational. Structural

Creational. Structural Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns

More information

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

Watch Core Java and Advanced Java Demo Video Here:

Watch Core Java and Advanced Java Demo Video Here: Website: http://www.webdesigningtrainingruchi.com/ Contact person: Ranjan Raja Moble/Whatsapp: +91-9347045052 / 09032803895 Dilsukhnagar, Hyderabad Email: webdesigningtrainingruchi@gmail.com Skype: Purnendu_ranjan

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

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master Oracle 1Z0-864 Java Enterprise Edition 5 Enterprise Architect Certified Master Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-864 Answer: A, C QUESTION: 226 Your company is bidding

More information

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

Oracle Fusion Middleware 11g: Build Applications with ADF Accel Oracle University Contact Us: +352.4911.3329 Oracle Fusion Middleware 11g: Build Applications with ADF Accel Duration: 5 Days What you will learn This is a bundled course comprising of Oracle Fusion Middleware

More information

Oracle SOA Suite 12c : Build Composite Applications

Oracle SOA Suite 12c : Build Composite Applications Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle SOA Suite 12c : Build Composite Applications Duration: 5 Days What you will learn This course teaches you to design and develop

More information

Software Engineering

Software Engineering Software Engineering Engr. Abdul-Rahman Mahmood MS, MCP, QMR(ISO9001:2000) Usman Institute of Technology University Road, Karachi armahmood786@yahoo.com alphasecure@gmail.com alphapeeler.sf.net/pubkeys/pkey.htm

More information

Oracle 10g: Build J2EE Applications

Oracle 10g: Build J2EE Applications Oracle University Contact Us: (09) 5494 1551 Oracle 10g: Build J2EE Applications Duration: 5 Days What you will learn Leading companies are tackling the complexity of their application and IT environments

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

More information

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views 1 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES Outline for Today 2 Architecture views C&C Views 1 Components and Connectors (C&C) Styles 3 Elements Relations Properties

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: The IDE: Integrated Development Environment. MVC: Model-View-Controller Architecture. BC4J: Business Components

More information

ESPRIT Project N Work Package H User Access. Survey

ESPRIT Project N Work Package H User Access. Survey ESPRIT Project N. 25 338 Work Package H User Access Survey ID: User Access V. 1.0 Date: 28.11.97 Author(s): A. Sinderman/ E. Triep, Status: Fast e.v. Reviewer(s): Distribution: Change History Document

More information

COWLEY COLLEGE & Area Vocational Technical School

COWLEY COLLEGE & Area Vocational Technical School COWLEY COLLEGE & Area Vocational Technical School COURSE PROCEDURE FOR ADVANCED JAVA PROGRAMMING CIS1870 3 Credit Hours Student Level: This course is open to students on the college level in either freshman

More information

Curriculum 2013 Knowledge Units Pertaining to PDC

Curriculum 2013 Knowledge Units Pertaining to PDC Curriculum 2013 Knowledge Units Pertaining to C KA KU Tier Level NumC Learning Outcome Assembly level machine Describe how an instruction is executed in a classical von Neumann machine, with organization

More information

Software Components and Distributed Systems

Software Components and Distributed Systems Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic 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

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Oracle SOA Suite 12c: Build Composite Applications

Oracle SOA Suite 12c: Build Composite Applications Oracle University Contact Us: Landline: +91 80 67863899 Toll Free: 0008004401672 Oracle SOA Suite 12c: Build Composite Applications Duration: 5 Days What you will learn This Oracle SOA Suite 12c: Build

More information

Microsoft SQL Server Training Course Catalogue. Learning Solutions

Microsoft SQL Server Training Course Catalogue. Learning Solutions Training Course Catalogue Learning Solutions Querying SQL Server 2000 with Transact-SQL Course No: MS2071 Two days Instructor-led-Classroom 2000 The goal of this course is to provide students with the

More information