Avancier Methods (AM) Software Architecture Modularity and OO presumptions
|
|
- Sophia Tate
- 5 years ago
- Views:
Transcription
1 Methods (AM) Software Architecture Modularity and OO presumptions It is illegal to copy, share or show this document (or other document published at without the written permission of the copyright holder Copyright
2 Radically changing gear! Earlier discussion of business architecture This discussion of software architecture Enterprise 10 Business Function Business Function 100 Narrow Business Function Narrow Business Function 1,000 App App 10,000 Deployable Artifact Deployable Artifact Some modular design principles are relevant to both 100,000 Package / Name Space Package / Name Space 1,000,000 Class/Object Class/Object 10,000,000 Operation Operation Copyright
3 Software architecture as the finest-grained enterprise architecture EA regards the enterprise as a system, or a system of systems. Business architecture is highest level business system design Software architecture is lowest level business system design, including the decomposition of an application into components.net Application Assembly Module Name Space Class Operation Java Application JAR Package / Name Space Class Operation Copyright
4 Modular system design Divides the system into components - to perform the required processes Monolithic system Modular system Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Operation Copyright
5 Modular design questions For 40 years, software gurus have continually revisited modular design and integration questions. How best to scope each module? avoid duplication between modules? separate modules? integrate modules? What principles might help? Copyright
6 Architecture principles promoted in a global organisation 1. Separate concerns (for flexibility and maintainability) 2. Build for competitive advantage / Buy for competitive parity 3. Encapsulate components (for CBD and SOA) 4. Use open APIs for inter-component communication 5. Loosely couple components (for flexibility and availability) 6. Use Event-Driven Architecture for broadcast updates 7. Maintain a single source of truth 8. Design for response time / latency 9. Design for graceful failure informing users 10. Web first: design for browser and client device independence Copyright Limited
7 Encapsulation Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Deliberate repetition of core concepts from day 1 Copyright
8 Encapsulate components ( a building block has a defined boundary ) The enclosure within a component of processes, meaning that the inner workings are invisible to outsiders. The enclosure within a component of data, so the only way to access that data is by using the interface of the component. API API Component Operation Operation Operation Operation Operation Get data Component State Data Operation Copyright
9 Use open APIs for inter-component communication To encapsulate means hiding the internal data and procedures of a system (component or object) behind its interface. The interface is a collection of accessible services. API API specification Operation: Get Address Get Address Address Server Component Operation: Put Address Put Address State Data Copyright
10 /Operation signature Define an operation s signature Name (Input Parameters): Output Reply API Signature API specification Operation: Get Address (Post Code, House Num): Address Operation: Put Address (Address, Post Code): OK or Fail Clients can make it work using only the signature Copyright
11 /Operation semantics or rules Designers have to understand, and ideally document, the rules governing an operation. Semantics Or Rules API specification Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is added to the Post Code If the preconditions are true, and the operation proceeds to completion, then the post conditions will be true. Copyright
12 Test-driven design using preconditions and post conditions Some programming languages come with tools for specifying preconditions and post conditions, and testing them API API specification Operation: Get Address (Post Code, House Num): Address Precondition: Valid Post Code and House Num are entered Post condition: Correct Address is returned Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is added to the Post Code Copyright
13 Don t forge the numbers - and NFRs! Some NFRs apply to a whole component But also, each service/operation has its own characteristics API Do you think the two services/operations share these measures? API specification Operation: Get Address (Post Code, House Num): Address Precondition: Valid Post Code and House Name are entered Post condition: Correct Address is returned Operation: Put Address (Address, Post Code): OK or Fail Precondition: Valid Post Code is entered Post condition: Address is recorded against the Post Code Non-functional characteristics Response time = < 3 seconds Throughput = 10 per second Copyright
14 Realisation (software sense) Realisation = providing implementations for services in an interface. Representable in ArchiMate as below Interface Interface Realised by Realised by Component Component Copyright
15 Separation of component, interface and service One component may realise more than one interface. older and newer versions, or full and restricted list of services. R One service can appear in several interfaces. E.g. 1 component 2 interfaces 4 services (one duplicated) CRUD Software Component Required behaviour Interface Physical Structure Software Operation API Software Component Copyright
16 Modularisation in the 1970s Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright
17 1970s Mainframe modular design as in COBOL A COBOL program can delegate work to a reusable component A main program can perform an internal subroutine not encapsulated, since program and subroutine can access the same state data Several programs can call a properly encapsulated external module Computer Memory Main program PERFORM Sub routine CALL Module Both perform and call are local procedure calls, little more than a GO TO and a GO BACK in the memory space of a computer Another Main program CALL Copyright
18 1972 Criteria to Be Used in Decomposing Systems into Modules Parnas introduced the idea of information hiding. API One begins with a list of difficult design decisions. Each module is designed to hide a decision from the others. [e.g. hide] a data structure, its internal links, accessing procedures and modifying procedures. Get data State Data Component Copyright
19 1975 Jackson s modular design patterns Jackson taught us to resolve structure clashes by designing distinct modules to handle I/O data structures complex data types database structures Transaction File File reading module Mainframe software Report File Report writing module Date calculator module Data Access Modules Data Storage Hardware Copyright
20 1979 Three-layer software design pattern Define the I/O data structures Transaction File Report File Mainframe software Define the events and enquiries contained in the input data Define the persistent data structure Event & Enquiry Catalogue I/O modules LPC Event/Enquiry Control Modules LPC Structure the code into layers, so each layer offers services to the layer above. Data Access Modules Data Storage Hardware Copyright
21 Reuse of modules There were many attempts to create a shared module library Enabling programmers to copy a module into their own program Main program Module Library Module Module Success was patchy Around1975, Michael A Jackson reputedly said A module library is the only kind of library that everybody wants to put something in, and nobody wants to take something out of. Copyright
22 Remote Procedure Call Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright
23 1980s: Client-server design The next trend was to physically separate code on end-user client devices from code on database servers. Client Device Network Server Device Copyright
24 When businesses gave client devices to their employees: Enterprise applications had to be divided between modules handling user interface data structures (on client devices) handling business data structures (on database servers). Mainframe External Interface I/O modules Rewrite User Interface Client Device Local call Remote procedure call Network Local call Event/Enquiry Controllers Data Access or Entity Maintenance Redeploy (with luck) Event/Enquiry Controllers Data Access or Entity Maintenance Server Device Copyright
25 Remember LPC versus RPC Local Procedure Call Simple Fast Available Secure Remote Procedure Call More complex Slower Less available Less secure Copyright
26 LPC versus RPC Local Procedure Call 1. The client makes a local procedure call to the server. 2. The server does what is requested 3. The server replies to the client Remote Procedure Call 1. The client makes a local procedure call to the client stub (parameters pushed on to the stack) 2. The client stub packs (marshalls) the parameters into a message and makes an OS call 3. The client's local OS sends the message from to the server s machine 4. The server s local OS passes the incoming packets to the server stub 5. The server stub unpacks (unmarshalls) the parameters from the message 6. The server stub calls the server procedure. 7. The server does what is requested 8. The server replies to the server stub 9. The server stub packs (marshalls) the parameters from the message 10. The server s local OS passes the incoming packets to the server stub 11. The server's local OS sends the message from to the client machine 12. The client stub unpacks (unmarshalls) the parameters into a message 13. The client stub and replies to the client. Copyright
27 How physical distribution influences logical modularisation Local interfaces - fine-grained Get/set customer name Client Get/set address Get/set telephone number Server Object(s) To reduce network chatter, remote interfaces need to be coarse-grained Get/set customer details Server device Get/set customer name Client Remote Facade Get/set address Server Object(s) Get/set telephone number Copyright
28 The OOP revolution Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright
29 Approaching 1990, OOP became fashionable OO programming is different in three ways 1. Many instances (objects) of a module type (class) So many objects can be deployed in parallel 2. A module instance has a unique object identifier So clients can locate an object, and remember it 3. Classes can be related in a class hierarchy So objects of one class can inherit and extend the operations of another more generic class Copyright
30 OO presumption c 1990 Criteria to Be Used in Decomposing Systems into Classes In the decade after Parnas and Jackson, OO guru Bertrand Meyer proposed classes should be abstract data types, which encapsulate a data structure define operations performable on that data structure. Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright
31 OO presumption c 1990 Class = module type A class is a template for creating objects; It may define data types maintained variables, fields, attributes Customer Number Address Current Debt Credit Status CRM Notes Customer changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done getdetails (CustomerNumber): Procedure Procedure Procedure And an interface containing operations External (aka Method or Operation) Internal Procedure (aka Method Body) Copyright
32 OO presumption c 1990 Clients need object identifiers When instantiated in memory an object is an instance of a class; it has Identity unique object Id - used by programmers State unique data values Behaviour general operations Object Id changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done Customer Oak Road, Town 0 Excellent Wife called Mary Procedure Procedure getdetails (CustomerNumber): Procedure You call it to do work Using an object/method pair E.g /closeOrder Copyright
33 OO presumption c 1990 One name space Client and server objects work in the same name space So they know and can use each other s class names object identifiers and operation or method names. Object Id Oak Road, Town 0 Maximum Wife Mary Customer changeaddress (CustomerNumber Address): Done closeorder (CustomerNumber OrderValue): Done getdetails (CustomerNumber): Procedure Procedure Procedure Copyright
34 OO presumption c 1990 Stateful objects/modules Stateful objects persist, and retain their state in memory The earliest OO programs handled a few small stateful objects. The case studies were real-time process control systems objects live forever graphical user interfaces - objects deleted when the UI is closed Copyright
35 OO presumption c 1990 The OO envangelist view Objects model real world entities. Objects (like real world entities) are stateful and persist. Databases are merely infrastructure devices and SQL is evil! App Server operation operation Customer Object XXX Oak Road, Town 0 Maximum Wife Mary Class Library Customer Object YYY Ash Road, Town 200 Minimum Rude on the phone operation operation Copyright
36 OO presumption c 1990 Applying the idea to enterprise-scale applications Pure [Distributed Object] implementations are anarchistic. Objects can appear anywhere at any time. No one knows how to get rid of them. Not good for apps w millions of run-time objects. (Client/server survival guide 3 rd edition 1999) App Server operation operation Customer Object XXX Oak Road, Town 0 Maximum Wife Mary operation operation Class Library Customer Object YYY Ash Road, Town 200 Minimum Rude on the phone So there was a need for garbage collection Objects with object identifiers that no other object remembers can be deleted Copyright
37 OO presumption c 1990 Reuse by inheritance Classes can be related in a class hierarchy Objects of a subclass inherit or extend the operations of a super class E.g. you can ask a bowler object to update batting average reply with the player s name Copyright
38 OO presumption c 1990 Intelligent domain objects Domain Objects cooperate to perform a transaction Command :Pupil :School (new) :School (old) pupiltransfer (PupilNum, NewSchoolNum): Error removepupil (OldSchoolNum) addpupil (NewSchoolNum): NoRoomError Copyright
39 OO presumption c 1990 Synchronous request-reply invocations The client sees the communication as synchronous Client objects invoke server objects using an object-method pair an object id and a method or operation name Hold a connection and wait for a reply Copyright
40 OO presumption c 1990 Blocking servers The server sees the communication as synchronous The server blocks all clients bar the current one Copyright
41 OO presumption c 1990 The OO envangelists ambition Turn the world into one big OO program (one name space) Intelligent domain objects can run on different machines And cooperate as though they run on the same machine. Does this mean client objects must remember the network addresses of remote server objects? To be continued Copyright
42 Summary of early OO design presumptions Feature Naming Early OO design presumptions Clients need object identifiers One name space Recent SOA design presumptions? Paradigm Time Location COBOL modules Java objects CORBA Stateful objects/modules Reuse by OO inheritance Intelligent domain objects Request-reply invocations Blocking servers Remember remote addresses Copyright Limited
43 The MVC pattern Encapsulation Modularisation in the 1970s Remote Procedure Call The OOP revolution The MVC pattern Copyright
44 The MVC pattern: as Martin Fowler introduces it Originally developed for desktop computing in the 1970s. The Model contains Objects representing things that appear on the screen, regardless of the visual format Copyright
45 Adapting the MVC pattern for enterprise applications Separates modules that handle client-side data structures from modules that handle server-side data structures Client device (screen state) receives an input request, may modify it, asks the Model to return or change its state. Controller View after the Model has done its work, organises the state of the Model in the form a client wants to see. Web /app server (session state) Model retrieves state data relevant to the request, can return or change the state of the Model, may hold session data relevant to a client-side form or process Data server (record state) DB Copyright
46 Adapting the MVC pattern for enterprise applications Graphic based on how Fowler represents MVC interactions Client Web/App Server Data HTTP request A Web Server A Controller Model Model Objects Obect A View HTTP response Copyright
47 Adapting the MVC pattern for enterprise applications There are many variations of the pattern Controller View Controller View Controller View Model Model Model Other MVC variants include hierarchical model view controller (HMVC), model view adapter (MVA) model view presenter (MVP), model view viewmodel (MVVM) Copyright
48 MVC in web frameworks (Wikipedia says) Web frameworks divide MVC differently between client and server tiers. Early web frameworks mostly put MVC components on the server. E.g. Ruby on Rails, Django, ASP.NET MVC and Express Client sends hyperlink requests or form input to the controller Client receives a complete and updated web page (or other doc) from the view. Other frameworks allow MVC components to execute partly on the client E.g. AngularJS, EmberJS, JavaScriptMVC and Backbone (also see Ajax). Copyright
49 Footnotes On inheritance and OO-relational mapping Copyright Limited
50 Base class a superclass to which designers can add subclasses that extend, inherit from or derive from the base class. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright
51 Abstract or virtual operation an operation for which the signature (name, inputs and outputs) is defined, but not the internal procedure needed to implement the operation. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright
52 Abstract or virtual class presents an interface containing nothing but abstract or virtual operations. Vehicle Vehicle ID Weight Passengers Petrol-driven Vehicle Vehicle ID Weight Passengers FuelCap MPG getweight (VID): Weight addpassenger (VID): void getweight (VID): Weight addpassenger (VID): void getmpg (VID): MPG calcrange (VID): Range Copyright
Avancier Methods. Very basic design patterns. It is illegal to copy, share or show this document
Methods Very basic design patterns It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission of the copyright holder Copyright
More informationModel-View-Control Pattern for User Interactive Systems
Model-View-Control Pattern for User Interactive Systems In various forms and guises J. Scott Hawker p. 1 Contents Key Model-View-Control (MVC) concepts Web MVC UI Controller in MVC GRASP Application Controller
More informationAvancier Methods (AM) CONCEPTS
Methods (AM) CONCEPTS Mapping generic ArchiMate entities to and TOGAF meta model entities It is illegal to copy, share or show this document (or other document published at ) without the written permission
More informationAvancier Methods (AM) Software Architecture Diagrams
Methods (AM) Software Architecture Diagrams in the AM viewpoint library It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission
More informationSoftware 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 informationRemote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI
Remote Invocation Today l Request-reply, RPC, RMI Next time l Overlay networks and P2P Types of communication " Persistent or transient Persistent A submitted message is stored until delivered Transient
More informationClient/Server-Architecture
Client/Server-Architecture Content Client/Server Beginnings 2-Tier, 3-Tier, and N-Tier Architectures Communication between Tiers The Power of Distributed Objects Managing Distributed Systems The State
More informationMiddleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004
Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication
More informationDistributed Objects. Object-Oriented Application Development
Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming
More informationElementary Concepts of Object Class
Elementary Concepts of Object Class Modeling entities and their behaviour by objects. A class as a specification of objects and as an object factory, computation as message passing/function call between
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationOracle 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 informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationAppendix 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 informationOverview of Web Application Development
Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview
More information1 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 informationSoftware Architecture
Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationSocket 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 informationPatterns Architectural Styles Archetypes
Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.
More informationDistribution 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 informationApplication 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 informationCS 575: Software Design
CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation
More informationDistributed 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 informationOBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis
UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance
More information1. Write two major differences between Object-oriented programming and procedural programming?
1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:
More informationThe major elements of the object-oriented model
The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction
More information1.264 Lecture 16. Legacy Middleware
1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network
More informationAn Introduction to Software Architecture. David Garlan & Mary Shaw 94
An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data
More informationChapter 1: Distributed Information Systems
Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier
More information********************************************************************
******************************************************************** www.techfaq360.com SCWCD Mock Questions : J2EE DESIGN Pattern ******************************************************************** Question
More informationArchitectural 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 informationObjectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture
Objectives Architectural Design To introduce architectural design and to discuss its importance To explain the architectural design decisions that have to be made To introduce three complementary architectural
More informationADVANCED 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 informationOrganization of User Interface Software
Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as
More informationObject oriented programming Concepts
Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationSoftware Design COSC 4353/6353 DR. RAJ SINGH
Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More informationUnit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer
Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer 1. The term is used to describe a programming approach based on classes and objects is (A) OOP (B) POP (C) ADT (D) SOP
More information5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered
Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process
More informationINTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV
INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.
More informationArchitectural 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 informationS1 Informatic Engineering
S1 Informatic Engineering Advanced Software Engineering Web App. Process and Architecture By: Egia Rosi Subhiyakto, M.Kom, M.CS Informatic Engineering Department egia@dsn.dinus.ac.id +6285640392988 SYLLABUS
More informationSOFTWARE 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 informationGustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2
Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design
More informationConceptual Framework
ArchiMate in a Nutshell v11 Conceptual Framework Generic Meta Model / Framework / Meta Model Creative Commons Attribution-No Derivative Works Licence 2.0 Attribution: You may copy, distribute and display
More informationMigration to Service Oriented Architecture Using Web Services Whitepaper
WHITE PAPER Migration to Service Oriented Architecture Using Web Services Whitepaper Copyright 2004-2006, HCL Technologies Limited All Rights Reserved. cross platform GUI for web services Table of Contents
More informationOO Frameworks. Introduction. Using Frameworks
OO Frameworks Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Frameworks support reuse of detailed designs and architectures An integrated set of components
More informationCORBA (Common Object Request Broker Architecture)
CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationAOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz
AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development
More information5 Distributed Objects: The Java Approach
5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having
More informationReference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003
CS551: Advanced Software Engineering Service-Oriented Architecture Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003 Yugi Lee STB #560D (816)
More informationJava Enterprise Edition
Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More informationCS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)
CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 Lecture 22: Remote Procedure Call (RPC) 22.0 Main Point Send/receive One vs. two-way communication Remote Procedure
More informationElement: 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 informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /
More informationBasic Properties of Styles
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 18 Enterprise Styles/Patterns (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo Basic
More informationSoftware 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 informationWeb Technologies VU ( ) Vedran Sabol. Nov 13, ISDS, TU Graz. Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60
Web Technologies VU (706.704) Vedran Sabol ISDS, TU Graz Nov 13, 2017 Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, 2017 1 / 60 Outline 1 Separation of Concerns Design Principle 2 Model-View-Controller
More informationFront End Programming
Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationFast Track to EJB 3.0 and the JPA Using JBoss
Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity
More informationA Report on RMI and RPC Submitted by Sudharshan Reddy B
A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in
More informationSoftware Reuse and Component-Based Software Engineering
Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering
More information~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~
1 Component: Szyperski s definition of a component: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can
More informationRemote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI
Remote Invocation Today l Request-reply, RPC, RMI Next time l Indirect communication Data representation and marshalling Processes information kept as data structures but sent in msgs as sequence of bytes
More informationICS 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 informationService-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA) SOA is a software architecture in which reusable services are deployed into application servers and then consumed by clients in different applications or business processes.
More informationA DEVELOPER S GUIDE TO XP EOL
A DEVELOPER S GUIDE TO XP EOL Everything you need to know. Windows XP is out of support April 9, 2014. Last day of support is April 8, 2014 There are 189 days from Oct. 1, 2013 to Apr. 8, 2014 Including
More informationChapter 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 informationWeb Application Architectures
Web Application Architectures Internet Engineering Spring 2018 Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Outline MVC Design Pattern Multilayer Design Microservices Architecture
More information(9A05803) WEB SERVICES (ELECTIVE - III)
1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available
More informationDistributed 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 informationIntroduction to Software Architecture. The top level... (and design revisited)
Introduction to Software Architecture The top level... (and design revisited) 1 What are we doing? System Software Architecture Top-level design software system architecture We use system architecture
More informationManaging Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup
Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting
More informationApplication-Oriented System Design
Application-Oriented System Design LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich March 2004 March 2004 http://www.lisha.ufsc.br 29 Application-Oriented Operating Systems "An application-oriented operating
More informationA domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation
A domain model-centric approach to J2EE development Keiron McCammon CTO Versant Corporation 1 Patterns of Enterprise Application Architecture Martin Fowler, at. al. Overview What is a domain model centric
More informationUsing JNDI from J2EE components
Using JNDI from J2EE components Stand-alone Java program have to specify the location of the naming server when using JNDI private static InitialContext createinitialcontext() throws NamingException {
More informationNew Programming Paradigms
New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationDesign and Information Hiding
Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software Architecture by Tao et al. (Chapters 6 and 7) 1
More informationDoes anyone actually do this?
Session 11: Polymorphism Coding type-dependent logic Virtual functions Pure virtual functions and abstract classes Coding type-dependent logic Suppose we need to do something different depending on what
More informationBUILDING MICROSERVICES ON AZURE. ~ Vaibhav
BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring
More informationRemote Procedure Call (RPC) and Transparency
Remote Procedure Call (RPC) and Transparency Brad Karp UCL Computer Science CS GZ03 / M030 10 th October 2014 Transparency in Distributed Systems Programmers accustomed to writing code for a single box
More informationFor 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,
Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,
More informationEJB 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 informationAgent-Enabling Transformation of E-Commerce Portals with Web Services
Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:
More informationKernel Types Simple OS Examples System Calls. Operating Systems. Autumn CS4023
Operating Systems Autumn 2017-2018 Outline 1 2 3 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview
More informationJonathan Haulund. AEHF Program Office United States Air Force. Reuse: Dealing With The Hand You re Dealt
Jonathan Haulund Chieff Software f Engineer AEHF Program Office United States Air Force 1 Definition of software reuse: Check Wikipedia Let s focus on extant code reuse - extending software from an existing
More informationOOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.
OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.
More informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More information