Software Architecture Bertrand Meyer Lecture 7: Patterns, Observer, MVC

Total Page:16

File Type:pdf, Size:1020Kb

Software Architecture Bertrand Meyer Lecture 7: Patterns, Observer, MVC References Last update: 18 April 2007 Erich Gamma, Ralph Johnson, Richard Helms, John Software Architecture Vlissides: Design Patterns, Addison-Wesley, 1994 Bertrand Meyer Jean-Marc Jezequel, Michel Train, Christine Mingins: Design Patterns and Contracts, Addison-Wesley, 1999 ETH Zurich, March-July 2007 Karine Arnout: From Patterns to Components, 2004 ETH Lecture 7: Patterns, Observer, MVC thesis, http://se.inf.ethz.ch/people/arnout/patterns/ Patterns in software development Benefits of design patterns Design pattern: ¾ Capture the knowledge of experienced developers ¾ A document that describes a general solution to a ¾ Publicly available repository design problem that recurs in many applications. ¾ Common pattern language ¾ Newcomers can learn & apply patterns Developers adapt the pattern to their specific application. ¾ Yield better software structure ¾ Facilitate discussions: programmers, managers Some design patterns A pattern is not a reusable solution Creational Behavioral Solution to a particular recurring design issue in a ¾ Chain of Responsibility ¾ Abstract Factory particular context: ¾ Builder ¾ Command (undo/redo) ¾ Interpreter ¾ Factory Method ¾ “Each pattern describes a problem that occurs over ¾ Iterator ¾ Prototype and over again in our environment, and then describes ¾ Singleton ¾ Mediator ¾ Memento the core of the solution to this problem in such a way Structural ¾ Observer that you can use this solution a million times over, ¾ Adapter ¾ State without ever doing it the same way twice.” ¾ Bridge ¾ Strategy Gamma et al. ¾ Composite ¾ Template Method ¾ Decorator ¾ Visitor ¾ Façade NOT REUSABLE ¾ Flyweight ¾ Proxy 1 A step backwards? Our first set of patterns & componentization Patterns are not reusable solutions: Observer pattern ¾ You must implement every pattern every time Model-View Controller ¾ Pedagogical tools, not components Improving on Observer: a more general & flexible approach We have done work at ETH to correct this situation: “A successful pattern cannot just be a book description: it must be a software component” Implementing the solution in C#/.NET Result: Pattern Library and Pattern Wizard Implementing the solution in Eiffel (see following lectures) Pattern componentization Karine Arnout Handling input through traditional techniques ETH PhD, 2004 Classification of design patterns: Program drives user: ¾ Fully componentizable ¾ Partially componentizable from End of input ¾ Wizard- or library-supported read_line ¾ Non-componentizable count := 0 Fully componentizable (48%) until exhausted loop count := count + 1 -- Store last_line at -- position count in Result Result [count ] := last_line read_line end Pattern componentization: references Handling input with modern GUIs Bertrand Meyer:The power of abstraction, reuse and simplicity: an User object-oriented library for event-driven design, in From Object- Orientation to Formal Methods: Essays in Memory of Ole-Johan Dahl, drives Lecture Notes in Computer Science 2635, Springer-Verlag, 2004, program: pages 236-271 se.ethz.ch/~meyer/ongoing/events.pdf “When a Karine Arnout and Bertrand Meyer: Pattern Componentization: the user Factory Example, in Innovations in Systems and Software Technology presses (a NASA Journal) (Springer-Verlag), 2006 se.ethz.ch/~meyer/publications/nasa/factory.pdf this button, Bertrand Meyer and Karine Arnout: Componentization: the Visitor execute Example, in Computer (IEEE), vol. 39, no. 7, July 2006, pages 23-30 that action se.ethz.ch/~meyer/publications/computer/visitor.pdf from my Karine Arnout’s thesis: From Patterns to Components, March 2004 program” se.inf.ethz.ch/people/arnout/patterns/ 2 Multiple observers Event-driven programming: example scenario Observers or subscribers One of your classes has a routine my_procedure Save file? Your application has a GUI object OK! Cancel OK_button Whenever the user clicks the mouse the underlying GUI or subject, library returns the mouse coordinates or publisher A = 50% You want to ensure that a mouse click at coordinates B = 30% [h, v ] calls my_procedure (h, v ) C = 20% Observed Model-View Controller Event-driven design (Trygve Reenskaug, 1979) Publishers Subscribers Routine Routine Routine Routine Confusion Event Event type Uncertain MVC references Events Overview (from .NET documentation) Reenskaug’s MVC page: Events have the following properties: heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html 1. The publisher determines when an event is raised; the subscribers determine what action is taken in response to the event. 2. An event can have multiple subscribers. A subscriber can handle His original MVC paper: multiple events from multiple publishers. heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf 3. Events that have no subscribers are never called. 4. Events are commonly used to signal user actions such as button clicks or menu selections in graphical user interfaces. 5. When an event has multiple subscribers, the event handlers are invoked synchronously when an event is raised. To invoke events asynchronously, see [another section]. 6. Events can be used to synchronize threads. 7. In the .NET Framework class library, events are based on the EventHandler delegate and the EventArgs base class. 3 Architecture: avoiding glue code Attaching an observer (selective export) In class PUBLISHER : feature {SUBSCRIBER } Event producer attach (s : SUBSCRIBER) -- Register s as subscriber to current publisher. (e.g. GUI) require subscriber_exists : s /= Void do Direct Connection subscribed extend (s ) s subscription objects . end sub1 sub2 subn Model subscribers The invariant of PUBLISHER includes the clause Model View Controller (MVC) Design Pattern subscribed /= Void (subscribed is created by creation procedures of PUBLISHER) A solution: the Observer Pattern Triggering an event attach publish is detach attach * * update* * detach * update* -- Ask all observers to PUBLISHER SUBSCRIBER PUBLISHER SUBSCRIBER subscribe+ -- react to current event. subscribed subscribed: LIST […] unsubscribe+ do from (secret) PUB_3 subscribed.start + + SUB_2 SUB_4 SUB_3 PUB_1 PUB_2 until SUB_1 + update + + SUB_2 subscribed after . Dynamic binding! PUB_1 SUB_1 loop + update subscribed.item. update subscribers subscribed.forth sub * Deferred (abstract) Inherits from end sub1 sub2 n + Effective (implemented) end Client (uses) update Each descendant of SUBSCRIBER defines its own version of update Observer pattern Observer pattern Each publisher keeps a list of subscribers: (secret) feature {NONE } subscribed : LINKED_LIST [SUBSCRIBER] ¾ Subscriber may subscribe to at most one publisher To register itself, a subscriber may execute: ¾ May subscribe at most one operation subscribe (some_publisher) where subscribe is defined in SUBSCRIBER as: ¾ Publishers internally know about subscribers subscribe (p: PUBLISHER) is -- Make current object observe p. ¾ Not reusable — must be coded anew for each application require publisher_exists : p /= Void do p.attach (Current) end 4 Another approach: event-context-action table Example scenario (reminder) Set of triples One of your classes has a routine [Event type, Context, Action] my_procedure Save file? Your application has a GUI object OK! Cancel Event type: any kind of event we track known as OK_button Example: left mouse click Context: object for which these events are interesting Whenever the user clicks the mouse the underlying GUI Example: a particular button library returns the mouse coordinates Action: what we want to do when an event occurs in the context You want to ensure that a mouse click at coordinates Example: save the file [h, v] calls my_procedure (h, v ) Event-context-action table may be implemented as e.g. a hash table. Event-context-action table With .NET delegates: publisher (1) P1. Introduce new class ClickArgs inheriting from EventArgs, repeating arguments types of my_procedure: Event typeContext Action Left_click OK_button Save_file public class ClickArgs {... int x, y; …} Left_click Cancel_button Reset P2. Introduce new type ClickDelegate (delegate type) based on Left_click … … that class Right_click Display_Menu public void delegate ClickDelegate (Object sender, e) … … … P3. Declare new type Click (event type) based on the type ClickDelegate: public event ClickDelegate Click Language mechanisms With .NET delegates: publisher (2) P4. Write new procedure OnClick to wrap handling: C and C++: function pointers protected void OnClick (ClickArgs ca) {if (Click != null) {Click (this, ca.x, ca.y);}} C#: delegates P5. To publish an event of the given type, create new object (instance of ClickArgs), passing arguments to constructor: ClickArgs myClickArgs = new ClickArgs (h, v); Eiffel: agents P6. To publish an event of the given type, trigger event: OnClick (myClickArgs) 5 Event-context-action table in .NET The Event library Basically: ¾ One generic class: EVENT_TYPE ¾ Two features: publish and subscribe Click deleg1 deleg2 delegn OK_button For example: Event typeContext Action A button my_button that reacts in a way defined in my_procedure when clicked (event mouse_click) Left_click OK_button Save_file Left_click Cancel_button Reset Left_click … … Right_click Display_Menu … … … With .NET delegates: subscriber Example using the Event library D1. Declare a delegate myDelegate of type ClickDelegate. (Usually combined with following step.) The publisher (“subject”) creates an event type object: mouse_click: EVENT_TYPE [TUPLE [INTEGER, INTEGER]] is D2. Instantiate it with my_procedure as argument: -- Mouse click event type once create Result Tuple type ClickDelegate
Recommended publications
  • The Role of “Roles” in Use Case Diagrams
    Lecture Notes in Computer Science 1 The Role of “Roles” in Use Case Diagrams Alain Wegmann1, Guy Genilloud1 1 Institute for computer Communication and Application (ICA) Swiss Federal Institute of Technology (EPFL) CH-1015 Lausanne, Switzerland icawww.epfl.ch {alain.wegmann, guy.genilloud}@epfl.ch Abstract: Use cases are the modeling technique of UML for formalizing the functional requirements placed on systems. This technique has limitations in modeling the context of a system, in relating systems involved in a same busi- ness process, in reusing use cases, and in specifying various constraints such as execution constraints between use case occurrences. These limitations can be overcome to some extent by the realization of multiple diagrams of various types, but with unclear relationships between them. Thus, the specification ac- tivity becomes complex and error prone. In this paper, we show how to over- come the limitations of use cases by making the roles of actors explicit. Interest- ingly, our contributions not only make UML a more expressive specification language, they also make it simpler to use and more consistent. 1 Introduction The Unified Modeling Language (UML), standardized by the Object Management Group (OMG) in 1996, aims at integrating the concepts and notations used in the most important software engineering methods. UML is today widely used by the software development community at large. While the bulk of the integration of the concepts is completed, there are still improvements to be made in their consistency. Such im- provements could increase the expressive power of UML while reducing its complex- ity. System design frequently starts with business modeling, i.e.
    [Show full text]
  • APPLYING MODEL-VIEW-CONTROLLER (MVC) in DESIGN and DEVELOPMENT of INFORMATION SYSTEMS an Example of Smart Assistive Script Breakdown in an E-Business Application
    APPLYING MODEL-VIEW-CONTROLLER (MVC) IN DESIGN AND DEVELOPMENT OF INFORMATION SYSTEMS An Example of Smart Assistive Script Breakdown in an e-Business Application Andreas Holzinger, Karl Heinz Struggl Institute of Information Systems and Computer Media (IICM), TU Graz, Graz, Austria Matjaž Debevc Faculty of Electrical Engineering and Computer Science, University of Maribor, Maribor, Slovenia Keywords: Information Systems, Software Design Patterns, Model-view-controller (MVC), Script Breakdown, Film Production. Abstract: Information systems are supporting professionals in all areas of e-Business. In this paper we concentrate on our experiences in the design and development of information systems for the use in film production processes. Professionals working in this area are neither computer experts, nor interested in spending much time for information systems. Consequently, to provide a useful, useable and enjoyable application the system must be extremely suited to the requirements and demands of those professionals. One of the most important tasks at the beginning of a film production is to break down the movie script into its elements and aspects, and create a solid estimate of production costs based on the resulting breakdown data. Several film production software applications provide interfaces to support this task. However, most attempts suffer from numerous usability deficiencies. As a result, many film producers still use script printouts and textmarkers to highlight script elements, and transfer the data manually into their film management software. This paper presents a novel approach for unobtrusive and efficient script breakdown using a new way of breaking down text into its relevant elements. We demonstrate how the implementation of this interface benefits from employing the Model-View-Controller (MVC) as underlying software design paradigm in terms of both software development confidence and user satisfaction.
    [Show full text]
  • The Unified Modeling Language Reference Manual
    The Unified Modeling Language Reference Manual The Unified Modeling Language Reference Manual James Rumbaugh Ivar Jacobson Grady Booch ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Reading, Massachusetts • Harlow, England • Menlo Park, California Berkeley, California • Don Mills, Ontario • Sydney Bonn • Amsterdam • Tokyo • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book and Addison-Wesley was aware of a trademark claim, the designations have been printed in initial caps or all caps. Unified Modeling Language, UML, and the UML cube logo are trademarks of the Object Management Group. Some material in this book is derived from the Object Management Group UML Specification documentation. Used by permission of the Object Management Group. The authors and publisher have taken care in the preparation of this book but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers discounts on this book when ordered in quantity for special sales. For more information, please contact: AWL Direct Sales Addison Wesley Longman, Inc. One Jacob Way Reading, Massachusetts 01867 (781) 944-3700 Visit AW on the Web: www.awl.com/cseng/ Library of Congress Cataloging-in-Publication Data Rumbaugh, James. The unified modeling language reference manual / James Rumbaugh, Ivar Jacobson, Grady Booch. p. cm. — (The Addison-Wesley object technology series) Includes bibliographical references and index.
    [Show full text]
  • 1 Introduction We Introduce a New Paradigm for the Understanding and Coding of Computer Programs That We Call DCI - Data, Context, Interaction
    DCI as a New Foundation for Computer Programming Trygve Reenskaug, James O. Coplien Dept. of Informatics, Gertrud & Cope University of Oslo Copenhagen Norway Denmark (“Trygve”) (“Cope”) ver.1.3 - Last modified FrameMaker version: November 23, 2013 2:48 pm draft.1.4.2 - FrameMaker version: Updated and edited from “ver1.3.1.bvs.fdbk.docx” draft.1.4.5 - Minor updates. (.fm + .pdf) draft 1.5.1 - Incorporate comments from Risto draft 1.6.1 - 24.01.07-’Data’ names a kind of projection, not a set of objects. ‘base object’ has been renamed to ‘root object’. draft 1.7 - 14.01.09 - Updated 'an object is … ' and minor changes. Abstract After more than 60 years with computers, hundreds of millions of people are dexterous at using them. Yet, the source code for a simple app is incomprehensible to almost all. We claim this is wasteful and passé -- Wasteful, because many valuable opportunities are lost; passé because computer programming is rapidly becoming an essential part of primary and secondary education. We introduce a new paradigm for computer programming called DCI - Data, Context, Interaction. DCI brings programming to the level of everyday concepts and activities. The professional programmer can attack complex problems without undue additional complexity. The software maintainer can preserve system integrity by understanding and honoring the system architecture long after the originators have moved on to other projects. DCI can be embedded in different programming languages that are specialized for different purposes. The DCI concepts can become a unifying foundation for programming in school curricula. DCI specifies a program as seen in two orthogonal projections; the Data projection describes system state and the Context projection system behavior.
    [Show full text]
  • Lean Architecture for Agile Software Development
    1 Agile has long shunned up-front design. When Agilists force themselves to do up-front work, it usually is limited to a symbolic use of User Stories for requirements and metaphor for architecture, with much of the rest left to refactoring. Experience and formal studies have shown that incremental approaches Lean Architecture for to architecture can possibly lead to poor structure in the long term. This talk shows how to use domain analysis in a Lean way to build an architecture of form that avoids the mass of structure that usually Agile Software accompanies big up-front design, using only judicious documentation. It will also show how Development architecture can accommodate incremental addition of features using Trygve Reenskaug's new DCI (Data, Context and Interaction) approach, and how it maps elegantly onto C++ implementations. The Taking Architecture into the talk is based on the forthcoming Wiley book of the same title. Agile World 7 Platform hours (9:00 - 16:00), 82 Slides. James O. Coplien Gertrud&Cope, Mørdrup, Denmark Copyright ©2010, ©2011, ©2012, ©2013, ©2014, ©2015 James O. Coplien. All rights reserved. No Scrum Foundation portions of this material may be reproduced or redistributed in any form without prior written permission from James O. Coplien. In general you will find that I am generous about giving permission for use of these materials at no charge as long as the source is acknowledged. 2 In this course you will learn Lean architecture — not just as a pop phrase, but in terms of the Seminar Objectives grounding of the term "Lean" in the principles of the Toyota Way.
    [Show full text]
  • An Empirical Study on Code Comprehension: DCI Compared to OO
    Rochester Institute of Technology RIT Scholar Works Theses 8-3-2016 An empirical study on code comprehension: DCI compared to OO Hector A. Valdecantos [email protected] Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Valdecantos, Hector A., "An empirical study on code comprehension: DCI compared to OO" (2016). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. ROCHESTER INSTITUTE OF TECHNOLOGY MASTER THESIS An empirical study on code comprehension: DCI compared to OO Author: Supervisor: Héctor A. VALDECANTOS Dr. Mehdi MIRAKHORLI A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering in the B. Thomas Golisano College of Computing and Information Sciences Department of Software Engineering Rochester, New York August 3, 2016 i The thesis “An empirical study on code comprehension: DCI compared to OO” by Héctor A. VALDECANTOS, has been examined and approved by the following Exami- nation Committee: Dr. Mehdi Mirakhorli Thesis Committee Chair Assistant Professor Dr. Meiyappan Nagappan Assistant Professor Dr. Scott Hawker SE Graduate Program Director Associate Professor ii ROCHESTER INSTITUTE OF TECHNOLOGY Abstract B. Thomas Golisano College of Computing and Information Sciences Department of Software Engineering Rochester, New York Master of Science in Software Engineering An empirical study on code comprehension: DCI compared to OO by Héctor A. VALDECANTOS Comprehension of source code affects software development, especially its main- tenance where reading code is the most time consuming performed activity.
    [Show full text]
  • The Common Sense of Object Oriented Programming
    The Common Sense of Object Oriented Programming Trygve Reenskaug Department of Informatics, University of Oslo, Norway Home: http://folk.uio.no/trygver E-mail: Abstract. The essence of object orientation is that networks of collaborating objects work together to achieve a common goal. Surely, the common sense of object oriented programming should reflect this essence with code that specifies how the objects collaborate. Our industry has, unfortunately, chosen differently and code is commonly written in terms of classes. A class tells us everything about the properties of the individual objects that are its instances. It does not tell us how these instances work together to achieve the system behavior. The result is that our code does not reveal everything about how a system will work. This is clearly not satisfactory, and we need a new paradigm as the foundation for more expressive code. We propose that DCI (Data-Context-Interaction) is such a paradigm. DCI separates a program into different perspectives where each perspective focuses on certain system properties. Code in the Data perspective specifies the representation of stand-alone objects. Code in the Context perspective specifies runtime networks of interconnected objects. Code in the Interaction perspective specifies how the networked objects collaborate to achieve the system behavior. BabyIDE is an interactive development environment that supports the DCI paradigm with specialized browsers for each perspective. These browsers are placed in overlays within a common window so that the programmer can switch quickly between them. DCI with BabyIDE marks a new departure for object oriented programming technology. It opens up a vista of new and interesting product opportunities and research challenges.
    [Show full text]
  • Introducing the Smalltalk-80 System, August 1981, BYTE Magazine
    Introducing the Sntalltalk-80 Systelll Adele Goldberg Manager, Learning Research Group Xerox Palo Alto Research Center 3333 Coyote Hill Rd Palo Alto CA 94304 It is rare when one can indulge in one's prejudices with relativ e impunity, poking a bit of good humored fun to make a point. ith this statement, W Carl Helmers opened his remarks in the · "About the Cover" section of the August 1978 issue of BYTE. The issue was a special on the language Pascal, so Helmers took of the opportunity to present Pascal's triangle as drawn cover design presents by artist Robert Tinney. ust such an opportuni­ The primary allegory of t depicts the clouds the cover was' the inver­ clearing from around sion of the Bermuda the kingdom of Small talk, Triangle myth to show and, with banners stream­ smooth waters within the ing, the Small talk system area labeled " Pascal's is taking flight into the Triangle ." In explaining mainstream of the com­ the allegory, Helmers puter programming com­ g uided the traveler munity. This cover was through the FORTRAN also executed by Robert Ocean, the BASIC Sea, Tinney, to the delight of around the Isle of BAL, and up to the Land of Small talk. the Learning Research Group (LRG ) of the Xerox Palo Alto Research Center. LRG is the group that has de­ Trav eling upward (in the picture) through heavy seas signed, implemented, and evaluated several generations w e come to the pinnacle, a snow white island rising like of Small talk over the past ten years.
    [Show full text]
  • Domain Engineering Methodologies Survey Cordet
    DOMAIN ENGINEERING METHODOLOGIES SURVEY CORDET Internal Code: GMVSA 20580/07 Versión: Issue 1 Date: 26/07/2007 GMV AEROSPACE AND DEFENCE S.A.. © GMV, 2007; all rights reserved. Isaac Newton 11, PTM Tres Cantos, 28760 Madrid Tel. +34 918072100, Fax. +34 918072199 www.gmv.com . THIS PAGE IS INTENTIONALLY LEFT IN BLANK Code: GMV-CORDET-WP202-RP-001 Date: 26/07/2007 Version: Issue 1 Page: 3 de 38 Prepared by: Elena Alaña Ana Isabel Rodríguez Approved by: Ana Isabel Rodríguez Project Manager Authorized by: Ana Isabel Rodríguez Project Manager Code: GMV-CORDET-WP202-RP-001 Date: 26/07/2007 Version: Issue 1 Page: 4 de 38 DOCUMENT STATUS SHEET Version Date Pages Changes Issue 1 Draft A 29/05/2007 29 First draft version Issue 1 Draft B 13/06/2007 29 Second draft version Issue 1 Draft C 21/06/2007 30 Third draft version. Issue 1 Draft D 03/07/2007 30 Fourth draft version. Issue 1 26/07/2007 38 First issue of the report. Updated according to MoM "CORDET-MoM-DKMR- 06072007“, [RD.64]. CORDET © GMV, 2007; all rights reserved. Domain Engineering Methodologies Survey Code: GMV-CORDET-WP202-RP-001 Date: 26/07/2007 Version: Issue 1 Page: 5 de 38 TABLE OF CONTENTS 1. INTRODUCTION................................................................................................................................7 1.1. PURPOSE AND SCOPE 7 1.2. APPLICABLE DOCUMENTS 7 1.3. REFERENCE DOCUMENTS 7 2. METHODOLOGIES...........................................................................................................................11 2.1. DOMAIN ENGINEERING PROCESS 11 2.1.1. DOMAIN ANALYSIS .........................................................................................................................11 2.1.2. DOMAIN DESIGN ............................................................................................................................12 2.1.3. DOMAIN IMPLEMENTATION .............................................................................................................12 2.2. DOMAIN ENGINEERING METHODS 12 2.2.1.
    [Show full text]
  • Mastering-Javascript
    www.allitebooks.com Mastering JavaScript Design Patterns Discover how to use JavaScript design patterns to create powerful applications with reliable and maintainable code Simon Timms BIRMINGHAM - MUMBAI www.allitebooks.com Mastering JavaScript Design Patterns Copyright © 2014 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: November 2014 Production reference: 1151114 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78398-798-6 www.packtpub.com www.allitebooks.com Credits Author Project Coordinator Simon Timms Rashi Khivansara Reviewers Proofreaders Amrita Chaturvedi Simran Bhogal Philippe Renevier Gonin Lawrence A. Herman Pedro Miguel Barros Morgado Elinor Perry-Smith Mani Nilchiani Indexer Commissioning Editor Hemangini Bari Kunal Parikh Graphics Acquisition Editor Sheetal Aute Meeta Rajani Ronak Dhruv Valentina D'silva Content Development Editor Disha Haria Sweny M.
    [Show full text]
  • The DCI Architecture
    The DCI Architecture Lean and Agile at the Code Level James O. Coplien Gertrud&Cope, Mørdrup, Denmark Scrum Training Institute The misguided, CASE-heavy practices of the 1980s fueled the proto-Agile rhetoric of the 1990s and survived full-force into the advent of Agile practices such as Scrum and XP in the past decade. Part of that rhetoric has been to go as far from the sins of the 1980s as possible by discarding up-front requirements (instead we have a promise for a future conversation between a developer and a customer) and architecture (instead, we have had a succession of short-lived ideas including "metaphor" and TDD). Experience and recent research have both borne out the value of architecture in software development in general, as well as its value in sustaining high velocity and change resiliency in Agile projects. In this talk, Agile expert Jim Coplien will provide tips for putting architecture back into your Agile project without dragging it back into the dark ages -- and all within the framework of the Agile Manifesto. 1 hour -- 4 minutes per slide, 15 slides Copyright ©2008, ©2009 Gertrud&Cope. All rights reserved. E-mail: [email protected] What is architecture? Architecture is the essence of structure: form – Structure obfuscates form! Lean architecture: just-in-time delivery of functionality, just-in-time pouring material into the forms Agile architecture: one that supports change, end-user interaction, discovery, and ease of comprehension (of functionality) 2 Let’s start with a few basic definitions to establish common ground. This is a talk about Lean and Agile architecture.
    [Show full text]
  • M´Aster Universitario En Ingeniería De
    MASTER´ UNIVERSITARIO EN INGENIER´IA DE TELECOMUNICACION´ TRABAJO FIN DE MASTER´ INTEGRACION´ DIGITAL DE PROCESOS ADMINISTRATIVOS Y ACADEMICOS´ DE LA E.T.S.I.T JAVIER CONDE D´IAZ 2020 MASTER´ UNIVERSITARIO EN INGENIER´IA DE TELECOMUNICACION´ TRABAJO FIN DE MASTER´ T´ıtulo: Integraci´ondigital de procesos administrativos y acad´emicos de la ETSIT Autor: D. Javier Conde D´ıaz Tutor: D. Gabriel Huecas Fern´andez-Toribio Departamento: Departamento de Ingenier´ıade Sistemas Telem´aticos MIEMBROS DEL TRIBUNAL Presidente: D. |{ Vocal: D. |{ Secretario: D. |{ Suplente: D. |{ Los miembros del tribunal arriba nombrados acuerdan otorgar la calificaci´onde: Madrid, a ...... de .............. de 2020 UNIVERSIDAD POLITECNICA´ DE MADRID ESCUELA TECNICA´ SUPERIOR DE INGENIEROS DE TELECOMUNICACION´ MASTER´ UNIVERSITARIO EN INGENIER´IA DE TELECOMUNICACION´ TRABAJO FIN DE MASTER´ INTEGRACION´ DIGITAL DE PROCESOS ADMINISTRATIVOS Y ACADEMICOS´ DE LA E.T.S.I.T Javier Conde D´ıaz 2020 Resumen En la ´ultimad´ecada,la evoluci´onde la tecnolog´ıaha permitido una profunda transformaci´ondigital en las empresas e instituciones que han visto como los datos se han convertido en una de las principales fuentes de valor y ventaja competitiva. Como consecuencia, la digitalizaci´onse ha convertido en uno de los principales objetivos actuales. Muestra de ello es la iniciativa \Una Agenda Digital para Europa", recogida en la Estrategia Europa 2020, en la que la Comisi´onEuropea aboga por la digitalizaci´onen todos los ´ambitos de la sociedad. El Trabajo de Fin de M´asterse centrar´aen contribuir a la transformaci´ondigital de la Escuela T´ecnicaSuperior de Ingenieros de Telecomunicaci´on(ETSIT). Partiendo de un estudio realizado en el a~no2018 en la escuela, se dise~nar´ae implementar´auna soluci´oncompleta en la que el resultado es un sistema de portales web y un conjunto de aplicaciones, accesibles desde dichos portales, que representan la digitalizaci´onde procedimientos llevados a cabo en la ETSIT.
    [Show full text]