EPL603 Topics in Software Engineering

Size: px
Start display at page:

Download "EPL603 Topics in Software Engineering"

Transcription

1 Lecture 5 Architectural Design & Patterns EPL603 Topics in Software Engineering Efi Papatheocharous Visiting Lecturer efi.papatheocharous@cs.ucy.ac.cy Office FST-B107, Tel. ext. 2740

2 Topics covered Software architecture Architectural design Architectural patterns Architectural patterns for distributed systems Lecture 5: Architectural Design & Patterns 2

3 Software architecture The architecture of a software system defines that system in terms of computational components and interactions among those components. [Shaw & Garlan, 1996] Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution. [IEEE ] The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Architecture is concerned with the public side of interfaces; private details of elements details having to do solely with internal implementation are not architectural. [Bass et al., 2003] Sources: IEEE Standard on the Recommended Practice for Architectural Descriptions, Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline, Prentice-Hall, 1996 Bass, Clements, and Kazman, Software Architecture in Practice, SEI Series in Software Engineering. Addison-Wesley, Lecture 5: Architectural Design & Patterns 3

4 Importance of architecture The big problem according to David Garlan How to bridge the gap between requirements and solutions? Source: Keynote speech, The Changing Face of Software Architecture, CSEET, Carnegie-Mellon (March 2010), Available at: Lecture 5: Architectural Design & Patterns 4

5 One possible answer The big problem according to David Garlan The process can be: Ad hoc Requires gurus Unpredictable Costly Source: Keynote speech, The Changing Face of Software Architecture, CSEET, Carnegie-Mellon (March 2010), Available at: Lecture 5: Architectural Design & Patterns 5

6 The role of software architecture The big problem according to David Garlan High level system design System-level abstractions Architectural reuse design concepts Source: Keynote speech, The Changing Face of Software Architecture, CSEET, Carnegie-Mellon (March 2010), Available at: Lecture 5: Architectural Design & Patterns 6

7 System design by decomposition Design by decomposition starts with a high-level description of the system s key elements. Then, iteratively refine the design by dividing each of the system s elements into its constituent pieces and describing their interfaces. The process is repeated until further refinement results in pieces that have no interfaces. Top level First level of decomposition Second level of decomposition Source: Pfleeger, S. L. and Atlee, J. M., Software Engineering, Fourth Edition, Pearson, Lecture 5: Architectural Design & Patterns 7

8 Example of various levels of architectures High-level architecture of the weather station Low-level architecture of Data Collection Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 8

9 Design models The software requirements model is transformed into design models that describe the details of the data structures, system architecture, interfaces, and components. Each design product is reviewed for quality before moving to the next phase of software development. Source: Pressman, R.S., Software Engineering: a Practitioner s Approach, 5th Rev. Ed., McGraw-Hill, Lecture 5: Architectural Design & Patterns 9

10 Architectural design In many ways, designing software resembles the process of designing a new house. There may not be a single best or correct architecture and the number of possible solutions may be limitless. By gleaning ideas from past solutions and by seeking regular feedback from the customer, designers can create good architecture, one that is able to accommodate and adapt to change, that will result to a product satisfying the customer and source of guidance throughout the products lifetime. Source: Pfleeger, S. L. and Atlee, J. M., Software Engineering, Fourth Edition, Pearson, Lecture 5: Architectural Design & Patterns 10

11 Architectural design Software design is a creative activity in which you identify software components and their relationships, based on customers requirements. Customers requirements generate a list of services that the customers requires from a system and include constraints under which it should operate. Software design is based on requirements and specification analysis. It will satisfy the functional and non-functional requirements of the system. Once interactions between the system and its environment have been understood, you use this information for designing the system architecture. Architectural design is the first stage in the software design process. Source: Lecture 5: Architectural Design & Patterns 11

12 Architectural design First you need to identify the major components that make up the system and their interactions, and then organize the components using possibly a suitable architectural pattern (such as a layered or client-server model). The activities within the process differs radically based on the type of system being developed, the background and experience of the system architect and specific system requirements. The process of realizing the design as a program (system implementation) the design may change, thus the implementation and the design activities are inter-leaved. Lecture 5: Architectural Design & Patterns 12

13 Architectural design decisions Is there a generic application architecture that can be act as a template? How will the system be distributed? What architectural patterns or styles are appropriate? What approach will be used to structure the system? How will the system be decomposed into modules (subcomponents)? Which architecture is best for delivering the non-functional requirements in the system? What control strategy for the components of the system should be used? How will the architectural design be evaluated? How should the architecture be documented? Lecture 5: Architectural Design & Patterns 13

14 Non-functional requirements and architectures (1/2) Non-functional req. Performance Security Safety Explanation If performance is a critical requirement the architecture should be designed to localize critical operations and minimize communication, with using a small number of components deployed on the same computer (rather than distributed). The components used should be relatively large, rather than small, fine-grained component. Also consider run-time system organization that allows the system to be replicated and executed on different processors to increase performance. If security is a critical requirement use a layered architecture with critical assets protected in the inner layers and a high level of validation applied to those layers. If safety is a critical requirement all safety-related operations should be either placed in a single component or in a small number of components. This reduces the costs and problems of safety validation and makes it possible to provide related protection systems that can safely shut down the system in the event of failure. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 14

15 Non-functional requirements and architectures (2/2) Non-functional req. Availability Maintainability Explanation If availability is a critical requirement the architecture should include redundant components, so that it is possible to replace and update components without stopping the system and should also include mechanisms for fault tolerance. However, this architecture potentially minimizes performance. If maintainability is a critical requirement the system architecture should include fine-grain, self-contained, replaceable components. Components producing data should be separated from components consuming data and shared data structures should be avoided. However, this architecture potentially minimizes performance. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 15

16 Architectural patterns We can improve our design by studying examples of good design. Thus, most design work is routine design, solve problem by reusing and adapting solutions from similar problems. [Pfleeger & Atlee] Architectural patterns were firstly introduced in the 90s under the name architectural styles (Shaw and Garlan, 1996) and other handbooks were published on pattern-oriented software architectures until Architectural patterns are stylized descriptions of good design practice, which have been tried and tested in different environments. They are a means of representing, sharing and reusing knowledge. They should include information about when they are and when the are not useful. They may be represented using tabular and graphical descriptions. Lecture 5: Architectural Design & Patterns 16

17 Need for architectural patterns Architectural patterns play the role of a blueprint (template) of a software system. Also, they play a critical role for the formation of the entire projects : Team structure Documentation organization Work Breakdown Structure (WBS) Planning, costing and budgeting Scheduling and resource allocation Control and organization of components Design and plan of implementation Integration and evolution Communication mechanisms Source: Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline, Prentice-Hall, 1996 Lecture 5: Architectural Design & Patterns 17

18 Common architectural patterns (1/2) Architectural Style Client/Server* Component-Based Architecture Domain Driven Design Layered Architecture* Model View Controller (MVC)* Description Separates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures. Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces. An object-oriented architectural style focused on modelling a business domain and defining business objects based on entities within the business domain. Partitions the concerns of the application into stacked groups (layers). Separates presentation and interaction from the system data. Lecture 5: Architectural Design & Patterns 18

19 Common architectural patterns (2/2) Architectural Style Message Bus N-Tier / 3-Tier* Object-Oriented Service-Oriented Architecture (SOA)* Repository* Description An architecture style that prescribes use of a software system that can receive and send messages using one or more communication channels, so that applications can interact without needing to know specific details about each other. Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer. A design paradigm based on division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behaviour relevant to the object. Refers to applications that expose and consume functionality as a service using contracts and messages. The pattern where all data in a system is managed in a central repository that is accessible to all system components. Lecture 5: Architectural Design & Patterns 19

20 The pipe and filter architecture (1/3) In the pipe and filter architecture functional transformations process their inputs to produce outputs. May be referred to as a pipe and filter model (as in UNIX shell). Variants of this approach are very common. When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems. Not really suitable for interactive systems. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 20

21 The pipe and filter pattern (2/3) Name Description When used Advantages Disadvantages Pipe and filter The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing. Commonly used in data processing applications (both batch- and transaction-based) where inputs are processed in separate stages to generate related outputs. Easy to understand and supports transformation reuse. Workflow style matches the structure of many business processes. Evolution by adding transformations is straightforward. Can be implemented as either a sequential or concurrent system. The format for data transfer has to be agreed upon between communicating transformations. Each transformation must parse its input and unparse its output to the agreed form. This increases system overhead and may mean that it is impossible to reuse functional transformations that use incompatible data structures. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 21

22 A pipe and filter example An example of a pipe and filter system used for processing invoices. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 22

23 The Model-View-Controller (MVC) pattern (1/3) Name Description When used Advantages Disadvantages MVC (Model-View-Controller) The Model-View-Controller pattern separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other. The Model component manages the system data and associated operations on that data. The View component defines and manages how the data is presented to the user. The Controller component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model. Used: when there are multiple ways to view and interact with data; when the future requirements for interaction and presentation of data are unknown. Allows the data to change independently of its representation and vice versa. Supports presentation of the same data in different ways with changes made in one representation shown in all of them. Can involve additional code and code complexity when the data model and interactions are simple. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 23

24 The Model-View-Controller (MVC) (2/3) Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 24

25 A Model-View-Controller (MVC) example The architecture of a web-based application system organized using the MVC pattern. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 25

26 The layered architecture (1/3) The layered architecture is used to model the interfacing of sub-systems. Organises the system into a set of layers (or abstract machines) each of which provide a set of services. Supports separation and independence between layers. Each layer relies only on the facilities and services offered by the layer immediately beneath it. Supports the incremental development in different layers of sub-systems, since ready services may be made available to users. When a layer interface changes, only the adjacent layer is affected. Thus, it localizes dependencies in the inner layers. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 26

27 The layered pattern (2/3) Name Layered architecture Description Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it so the lowest-level layers represent core services that are likely to be used throughout the system. When used Used : when building new facilities on top of existing systems; when the development is distributed (spread across several teams with each team responsibility for a layer of functionality); when there is a requirement for multi-level security. Advantages Allows replacement of entire layers so long as the interface is maintained. Redundant facilities (e.g., authentication) can be provided in each layer to increase the dependability of the system. Disadvantages In practice, providing a clean separation between layers is often difficult and a high-level layer may have to interact directly with lower-level layers rather than through the layer immediately below it. Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 27

28 A layered architecture example (3/3) A layered model of a system for sharing copyright documents held in different libraries. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 28

29 The repository architecture (1/3) Sub-systems must exchange data. This may be done in two ways: Each sub-system maintains its own database and passes data explicitly to other sub-systems. Shared data is held in a central database or repository and may be accessed by all sub-systems; When large amounts of data are to be shared, the repository model of sharing is most commonly used a this is an efficient data sharing mechanism. Lecture 5: Architectural Design & Patterns 29

30 The repository pattern (2/3) Name Description When used Advantages Disadvantages Repository All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository. You should use this pattern when you have a system in which large volumes of information are generated that has to be stored for a long time. You may also use it in data-driven systems where the inclusion of data in the repository triggers an action or tool. Components can be independent they do not need to know of the existence of other components. Changes made by one component can be propagated to all components. All data can be managed consistently (e.g., backups done at the same time) as it is all in one place. The repository is a single point of failure so problems in the repository affect the whole system. May be inefficiencies in organizing all communication through the repository. Distributing the repository across several computers may be difficult. Lecture 5: Architectural Design & Patterns 30

31 A repository architecture example (3/3) A repository architecture model of an IDE The components use a repository of system design information. Each software tool generates information which is then available for use by other tools. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 31

32 The client-server architecture (1/3) The Client-Server (C/S) architecture is a distributed system model which shows how data and processing is distributed across a range of components. It can be implemented on a single computer. It depends on there being a clear separation between the presentation of information and the computations that create and process that information. In a client-server system The user can interact with a program running on their local computer (e.g. a web browser or phone-based application). This interacts with another program running on a remote computer (e.g. a web server). The remote computer provides services, such as access to web pages, which are available to external clients. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 32

33 The client-server pattern (2/3) Name Description When used Advantages Disadvantages Client-server In a client server architecture, the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them. Used when data in a shared database has to be accessed from a range of locations. Because servers can be replicated, it may also be used when the load on a system is variable. The principal advantage of this model is that servers can be distributed across a network. General functionality (e.g., a printing service) can be available to all clients and does not need to be implemented by all services. Each service is a single point of failure so susceptible to denial of service attacks (DoS attacks) or server failure. Performance may be unpredictable because it depends on the network as well as the system. May be management problems if servers are owned by different organizations. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 33

34 A client-server example (3/3) A film and video/dvd library organized as a client server system. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 34

35 Client server computing and interaction Distributed systems that are accessed over the Internet are normally organized as client-server systems. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 35

36 Mapping of clients and servers to networked computers Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 36

37 Layered client server computing Layered architectural model for client server applications May be structured into layers. With the presentation layer implemented on a client computer. Servers provide data management, application and db services. C S Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 37

38 The master-slave architecture (1/2) Master-slave architectures are commonly used in realtime systems where there may be separate processors associated with data acquisition from the system s environment, data processing and computation and actuator management. The master process is usually responsible for computation, coordination and communications and it controls the slave processes. Slave processes are dedicated to specific actions, such as the acquisition of data from an array of sensors. Lecture 5: Architectural Design & Patterns 38

39 A master-slave architecture example (2/2) A traffic management system example with master-slave architecture. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 39

40 Two-tier client server architectures (1/4) In a two-tier client-server architecture, the system is implemented as a single logical server (to centralize the system for security reasons) plus an indefinite number of clients that use that server. Thin-client model where the presentation layer is implemented on the client and all other layers (data management, application processing and database) are implemented on a server. Fat-client model where some or all of the application processing is carried out on the client. Data management and database functions are implemented on the server. Lecture 5: Architectural Design & Patterns 40

41 Thin- and fat-client architectural models (2/4) Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 41

42 Thin-client model (3/4) The thin-client model is used when legacy systems are migrated to client-server architectures. The legacy system acts as a server in its own right with a graphical interface implemented on a client. A major disadvantage is that it places a heavy processing load on both the server and the network. Lecture 5: Architectural Design & Patterns 42

43 Fat-client model (4/4) More processing is delegated to the client as the application processing is locally executed. Most suitable for new C/S systems where the capabilities of the client system are known in advance. Disadvantages include that it is more complex than a thinclient model especially for management and that new versions of the application have to be installed on all clients. An ATM system example with a fat-client architecture. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 43

44 Multi-tier client-server architectures (1/2) In a multi-tier client server architecture, there is a high volume of transactions to be processed by the server and there are different layers of the system. Namely the different layers are: Presentation, Data Management, Application Processing, and Database. They are separate processes that may be executed on different processors. This avoids problems with scalability and performance if a thinclient two-tier model is chosen, or problems of system management if a fat-client model is used. Lecture 5: Architectural Design & Patterns 44

45 A multi-tier client-server architecture example (2/2) A three-tier architecture for an internet banking system. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 45

46 Use of client server architectural patterns Architecture Two-tier C/S architecture with thin clients Two-tier C/S architecture with fat clients Multi-tier C/S architecture Applications Legacy system applications that are used when separating application processing and data management is impractical. Thus, the thin-clients may access these as services. Computationally intensive applications such as compilers with little or no data management. Data-intensive applications (browsing and querying) with nonintensive application processing. Browsing the Web is the most common example of a situation where this architecture is used. Applications where application processing is provided by COTS software (e.g., Microsoft Excel) on the client. Applications where computationally intensive processing of data (e.g., data visualization) is required on the client. Mobile applications where internet connectivity cannot be guaranteed. Some local processing using cached information from the database is therefore possible. Large-scale applications with hundreds or thousands of clients. Applications where both the data and the application are volatile. Applications where data from multiple sources are integrated. Lecture 5: Architectural Design & Patterns 46

47 Distributed component architectures (1/3) In distributed component architectures there is no distinction between clients and servers. Different systems and databases need to be combined. Each distributable entity is an object that provides services to other components and receives services from other components. Component communication is through a middleware system. However, distributed component architectures are more complex to design than C/S systems. Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 47

48 Distributed component architectures (2/3) A distributed component architecture for a data mining system Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 48

49 Distributed component architectures (3/3) Distributed component architectures suffer from two major disadvantages: They are more complex to design than client server systems. Distributed component architectures are difficult for people to visualize and understand. There is not one standardized middleware for distributed component systems accepted by the community. Different vendors, such as Microsoft and Sun, have developed different, incompatible middleware. As a result of these problems, service-oriented architectures are replacing distributed component architectures in many situations. Lecture 5: Architectural Design & Patterns 49

50 Peer-to-peer (P2P) architectures (1/2) Peer to peer (P2P) systems are decentralised systems where computations may be carried out by any node in the network. They are used when clients exchange locally stored information to each other. The overall system is designed to take advantage of the computational power and storage of a large number of networked computers. Focus here on network architectures. Most P2P systems have been personal systems but there is increasing business use of this technology. The logical network architecture Decentralised architectures; Semi-centralised architectures. The application architecture The generic organization of components making up a P2P application. Lecture 5: Architectural Design & Patterns 50

51 P2P architectural models (2/2) Decentralised architectures Semi-centralised architectures Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 51

52 Software as a service Software as a Service (SaaS) involves hosting the software remotely and providing access to it over the Internet. Software is deployed on a server (or more commonly a number of servers) and is accessed through a web browser. It is not deployed on a local PC. The server(s) maintain the user s data and state during an interaction session. Transactions are usually long transactions e.g. editing a document. The software is owned and managed by a software provider, rather than the organizations using the software. Users may pay for the software according to the amount of use they make of it or through an annual or monthly subscription. Sometimes, the software is free for anyone to use but users must then agree to accept advertisements, which fund the software service. Lecture 5: Architectural Design & Patterns 52

53 SaaS and SOA Service-Oriented Architecture (SOA) is an approach to structuring a software system as a set of separate, stateless services. Factors These may be provided by multiple providers and may be distributed. Typically, transactions are short transactions where a service is called, does something then returns a result. Questions Configurability How do you configure the software for the specific requirements of each organization? Multi-tenancy Scalability How do you present each user of the software with the impression that they are working with their own copy of the system while, at the same time, making efficient use of system resources? How do you design the system so that it can be scaled to accommodate an unpredictably large number of users? Lecture 5: Architectural Design & Patterns 53

54 Configuration of a software system offered as a service Source: Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Lecture 5: Architectural Design & Patterns 54

55 Configuration options Configuration facilities may allow for the following: Branding Users from each organization are presented with an interface that reflects their own organization. Business rules and workflows Each organization defines its own rules that govern the use of the service and its data. Database extensions Each organization defines how the generic service data model is extended to meet its specific needs. Access control Service customers create individual accounts for their staff and define the resources and functions that are accessible to each of their users. Lecture 5: Architectural Design & Patterns 55

56 Key points (1/2) A software architecture is a description of how a software system is organized. Architectural design decisions include decisions on the type of application, the distribution of the system, the architectural styles to be used. Architectural patterns are a means of reusing knowledge about generic system architectures. They describe the architecture, explain when it may be used and describe its advantages and disadvantages. Common architectural patterns include the pipe and filter pattern, Model-View-Controller (MVC) pattern, layered and repository patterns. Lecture 5: Architectural Design & Patterns 56

57 Key points (2/2) Architectural patterns for distributed systems include masterslave architectures, two-tier and multi-tier client-server architectures, distributed component architectures and peer-to-peer (P2P) architectures. Distributed component systems require middleware to handle component communications and to allow components to be added to and removed from the system. Peer-to-peer architectures are decentralized with no distinguished clients and servers. Computations can be distributed over many systems in different organizations. Software as a service is a way of deploying applications as thin client- server systems, where the client is a web browser. Lecture 5: Architectural Design & Patterns 57

58 Readings Chapters 6, 7 & 18 - Sommerville, I., Software Engineering, 9th ed., Addison Wesley, Chapter 5 & Section Pfleeger, S. L. and Atlee, J. M., Software Engineering, Fourth Edition, Pearson, Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline, Prentice-Hall, Credits Slides adapted from Ian Sommerville Software Engineering, 9/E ( Lecture 5: Architectural Design & Patterns 58

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

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

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

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

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

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

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures

More information

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics. Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

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

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures

More information

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila Software Design and Architecture Software Design Software design is a process of problem-solving

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

System types. Distributed systems

System types. Distributed systems System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors

More information

Establishing the overall structure of a software system

Establishing the overall structure of a software system Architectural Design Establishing the overall structure of a software system Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13 Slide 1 Objectives To introduce architectural design and

More information

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof.

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof. Sommerville Chapter 6 The High-Level Structure of a Software Intensive System Architectural Design Slides courtesy Prof.Mats Heimdahl 1 Fall 2 2013 Architectural Parallels Architects are the technical

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

Architectural design

Architectural design 6 Architectural design Objectives The objective of this chapter is to introduce the concepts of software architecture and architectural design. When you have read the chapter, you will: understand why

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

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

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

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

Lecture 15 Distributed System Architectures

Lecture 15 Distributed System Architectures Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 15 Distributed System Architectures Architectural

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

CS560 Lecture: Software Architecture Includes slides by I. Sommerville

CS560 Lecture: Software Architecture Includes slides by I. Sommerville CS560 Lecture: Software Architecture 2009 Includes slides by I. Sommerville Architectural Design Design process for identifying the sub-systems making up a system and the framework for sub-system control

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

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA USN 1 P E PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of CA INTERNAL ASSESSENT TEST II Date : 20/09/2016 ax.arks: 50 Subject & Code: Software Engineering

More information

CS451 Lecture 8: Architectural Design. Architectural Design: Objectives

CS451 Lecture 8: Architectural Design. Architectural Design: Objectives CS5 Lecture 8: Architectural Design Yugi Lee STB #555 (86) 5-59 leeyu@umkc.edu www.sice.umkc.edu/~leeyu Architectural Design: Objectives Establishing the overall structure of a software system To introduce

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

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

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

Introduction to Software Engineering 10. Software Architecture

Introduction to Software Engineering 10. Software Architecture Introduction to Software Engineering 10. Software Architecture Roadmap > What is Software Architecture? > Coupling and Cohesion > Architectural styles: Layered Client-Server Blackboard, Dataflow,... >

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

ESE Einführung in Software Engineering!

ESE Einführung in Software Engineering! ESE Einführung in Software Engineering! 10. Software Architecture! Prof. O. Nierstrasz" Roadmap! > What is Software Architecture?" > Coupling and Cohesion" > Architectural styles:" Layered" Client-Server"

More information

Introduction to software architecture Revision : 732

Introduction to software architecture Revision : 732 Introduction to software architecture Revision : 732 Denis Conan Septembre 2018 Foreword The content of these slides is extracted from the following references: L. Bass, P. Clements, and R. Kazman. Software

More information

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA PURPOSE OF THIS CLASS An introduction to software architecture What is an architecture Why it is important How it is represented

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

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 Architecture by Tao et al. (Chapters 6 and 7) 1

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

XIX. Software Architectures

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

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

Distributed systems. Distributed Systems Architectures

Distributed systems. Distributed Systems Architectures Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

More information

Software Engineering Chap.7 - Design and Implementation

Software Engineering Chap.7 - Design and Implementation Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,

More information

Game Production: reuse

Game Production: reuse Game Production: reuse Fabiano Dalpiaz f.dalpiaz@uu.nl 1 Outline Lecture contents 1. Introduction to software reuse 2. Patterns 3. Application frameworks 4. Software product lines 5. Commercial-off-the-shelf

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

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

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

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

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

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

Seminar report Software reuse

Seminar report Software reuse A Seminar report On Software reuse Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science SUBMITTED TO: www.studymafia.com SUBMITTED BY:

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

Adaptive Approach for Developing Client-Driven E-Commerce Systems

Adaptive Approach for Developing Client-Driven E-Commerce Systems Proceedings of the 6th WSEAS International Conference on Applied Computer Science, Tenerife, Canary Islands, Spain, December 16-18, 2006 237 Adaptive Approach for Developing Client-Driven E-Commerce Systems

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

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

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

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

Business Intelligence and Decision Support Systems

Business Intelligence and Decision Support Systems Business Intelligence and Decision Support Systems (9 th Ed., Prentice Hall) Chapter 8: Data Warehousing Learning Objectives Understand the basic definitions and concepts of data warehouses Learn different

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

Dr. Tom Hicks. Computer Science Department Trinity University

Dr. Tom Hicks. Computer Science Department Trinity University Dr. Tom Hicks Computer Science Department Trinity University 1 1 About Design With Reuse 2 Software Reuse Why Do We Care About Reuse? Historically: In Most Engineering Disciplines, Systems are Designed

More information

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010 Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

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

Client Server & Distributed System. A Basic Introduction

Client Server & Distributed System. A Basic Introduction Client Server & Distributed System A Basic Introduction 1 Client Server Architecture A network architecture in which each computer or process on the network is either a client or a server. Source: http://webopedia.lycos.com

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

Lecturer: Sebastian Coope Ashton Building, Room G.18

Lecturer: Sebastian Coope Ashton Building, Room G.18 Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 http://www.csc.liv.ac.uk/~pbell/comp201.html Lecture 13 Design

More information

MTAT Software Engineering

MTAT Software Engineering MTAT.03.094 Software Engineering Lecture 07: Architecture and Design Dietmar Pfahl Fall 2015 email: dietmar.pfahl@ut.ee ATI Päev 2015 ICS Day 2015 When? Friday, 16-Oct-2015, 14:00-17:00 http://www.cs.ut.ee/en/ics-day

More information

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

More information

Architectural Design

Architectural Design Architectural Design Minsoo Ryu Hanyang University 1. Architecture 2. Architectural Styles 3. Architectural Design Contents 2 2 1. Architecture Architectural design is the initial design process of identifying

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

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

Adaptive Internet Data Centers

Adaptive Internet Data Centers Abstract Adaptive Internet Data Centers Jerome Rolia, Sharad Singhal, Richard Friedrich Hewlett Packard Labs, Palo Alto, CA, USA {jar sharad richf}@hpl.hp.com Trends in Internet infrastructure indicate

More information

Common Architectural Styles & Patterns

Common Architectural Styles & Patterns Common Architectural Styles & Patterns some we ve already kind of discussed model view controller blackboard client/server layered pipe-and-filter Lots of ways to classify all these Application Domain

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

Software Architecture--Continued. Another Software Architecture Example

Software Architecture--Continued. Another Software Architecture Example Software Architecture--Continued References for Software Architecture examples: Software Architecture, Perspectives on an Emerging Discipline, by Mary Shaw and David Garlin, Prentice Hall, 1996. B. Hayes-Roth,

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

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

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1 Objectives To introduce software process models To describe three generic process models and when they may be

More information

Distributed Systems: Models and Design

Distributed Systems: Models and Design Distributed Systems: Models and Design Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Architectural Models 2. Interaction Model 3. Design Challenges 4. Case Study: Design of a Client-Server

More information

Module 1 - Distributed System Architectures & Models

Module 1 - Distributed System Architectures & Models Module 1 - Distributed System Architectures & Models System Architecture Defines the structure of the system components identified functions of each component defined interrelationships and interactions

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

EPL603 Topics in Software Engineering

EPL603 Topics in Software Engineering Lecture 4 - Software Reuse EPL603 Topics in Software Engineering Efi Papatheocharous Visiting Lecturer efi.papatheocharous@cs.ucy.ac.cy Office FST-B107, Tel. ext. 2740 Topics covered Software reuse The

More information

MTAT Software Engineering

MTAT Software Engineering MTAT.03.094 Software Engineering Lecture 07: Architecture and Design Part I Dietmar Pfahl Fall 2013 email: dietmar.pfahl@ut.ee Schedule of Lectures Week 01: Introduction to SE Week 02: Requirements Engineering

More information

Style-specific techniques to design product-line architectures

Style-specific techniques to design product-line architectures Style-specific techniques to design product-line architectures Philippe Lalanda Thomson-CSF Corporate Research Laboratory Phone: 33 1 69 33 92 90 Email: lalanda@thomson-lcr.fr Domaine de Corbeville 91404

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

webmethods EntireX for ESB: Leveraging Platform and Application Flexibility While Optimizing Service Reuse

webmethods EntireX for ESB: Leveraging Platform and Application Flexibility While Optimizing Service Reuse December 2008 webmethods EntireX for ESB: Leveraging Platform and Application Flexibility While Optimizing Service Reuse By Chris Pottinger, Sr. Manager Product Development, and Juergen Lind, Sr. Product

More information

System Name Software Architecture Description

System Name Software Architecture Description System Name Software Architecture Description Author Name Contact Details Version Date template 2011 Eoin Woods & Nick Rozanski 1 / 25 1. Version History Version Date Author Comments 1 July 08 Eoin Woods

More information

Software Prototyping Animating and demonstrating system requirements. Uses of System Prototypes. Prototyping Benefits

Software Prototyping Animating and demonstrating system requirements. Uses of System Prototypes. Prototyping Benefits Software Prototyping Animating and demonstrating requirements Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Uses of System Prototypes

More information

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

In this Lecture you will Learn: System Design. System Architecture. System Architecture

In this Lecture you will Learn: System Design. System Architecture. System Architecture In this Lecture you will Learn: System Design Chapter 13 The major concerns of system design The main aspects of system architecture, in particular what is meant by subdividing a system into layers and

More information

NAME (as it appears on your UF ID): (Please PRINT) CEN Software Engineering

NAME (as it appears on your UF ID): (Please PRINT) CEN Software Engineering NAME (as it appears on your UF ID): (Please PRINT) UF Student ID#: ------------------------------- CEN 5035 - Software Engineering ----------------------------- Exam 2 Fall 2010 You have 90 minutes to

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

ACS 3907 E-Commerce. E-Commerce Design Architecture Part 1. Client/Server Architecture. Instructor: Kerry Augustine February 7 th 2019

ACS 3907 E-Commerce. E-Commerce Design Architecture Part 1. Client/Server Architecture. Instructor: Kerry Augustine February 7 th 2019 ACS 3907 E-Commerce Instructor: Kerry Augustine February 7 th 2019 2014 Pearson Education, Inc. Publishing as Prentice Hall 1 E-Commerce Design Architecture Part 1 Client/server architecture Two-tier vs.

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

Designing Issues For Distributed Computing System: An Empirical View

Designing Issues For Distributed Computing System: An Empirical View ISSN: 2278 0211 (Online) Designing Issues For Distributed Computing System: An Empirical View Dr. S.K Gandhi, Research Guide Department of Computer Science & Engineering, AISECT University, Bhopal (M.P),

More information

Microsoft SharePoint Server 2013 Plan, Configure & Manage

Microsoft SharePoint Server 2013 Plan, Configure & Manage Microsoft SharePoint Server 2013 Plan, Configure & Manage Course 20331-20332B 5 Days Instructor-led, Hands on Course Information This five day instructor-led course omits the overlap and redundancy that

More information

Overview SENTINET 3.1

Overview SENTINET 3.1 Overview SENTINET 3.1 Overview 1 Contents Introduction... 2 Customer Benefits... 3 Development and Test... 3 Production and Operations... 4 Architecture... 5 Technology Stack... 7 Features Summary... 7

More information

The Past, Present and Future of Software Architecture

The Past, Present and Future of Software Architecture The Past, Present and Future of Software Architecture Eoin Woods UBS Investment Bank eoin@artechra.com www.eoinwoods.info About me I m a working software architect Always worked as a software engineer

More information