02291: System Integration Week 10

Total Page:16

File Type:pdf, Size:1020Kb

02291: System Integration Week 10 02291: System Integration Week 10 Hubert Baumeister [email protected] DTU Compute Technical University of Denmark Spring 2018 Last Week I Principles of good design: layered architecture I Software Development Processes I Introduction to Examination Project Contents Software Development Process Agile Modeling Model Driven Architecture More UML Diagrams Resource Triangle Plan Driven Agile Features User User User Story Story Story Presentation Layer Application Layer A D I T Domain Layer Database / Infrastructure Layer Release date Time eXtreme Programming (XP) I Kent Beck 1999 I 12 Practices Kent Beck, Extreme Programming 1st ed. Scrum file:///Users/huba/Desktop/Scrum_process.svg 24 h 30 days Working increment Product Backlog Sprint Backlog Sprint of the software Wikipedia I Robert Martin (Uncle Bob) about ”The Land that Scrum Forgot” http://www.youtube.com/watch?v=hG4LH6P8Syk ! History about agile methods, the agile manifesto, and Scrum and its relationshop to XP 1 of 1 /18.3.13 24:16 Lean Software Development I Lean Production: I Value for the customer I Reduce the amount of waste in the production process I Generate flow I Waste: resources used which do not produce value for the customer I time needed to fix bugs I time to change the system because it does not fit the customers requirements I time waiting for approval I ... Generating flow using Pull and Kanban WIP = Work in Progress Limit ATD I Done Work Item Queue WIP 3Queue WIP 3Queue WIP 3 Queue WIP 3 6 1 4 2 3 5 7 8 10 9 Blah Composite Leaf 4Assembly 2 3 Flow through Pull with Kanban I Process controlling: local rules I Load balancing: Kanban cards and Work in Progress (WIP) limits I Integration in other processes Figure from David Anderson www.agilemanagement.net Online Kanban Tool: Trello I www.trello.com: Electronic Kanban board useful for your project I Kanban board the exam project example https: //trello.com/b/CqzwTiRT/02291-example-lean I Another Example https: //trello.com/b/4wddd1zf/kanban-workflow Contents Software Development Process Agile Modeling Model Driven Architecture More UML Diagrams Agile Modelling I Traditional modelling: Requirements model, design model ! waterfall I What is the role of modelling in agile software development? I XP and documents I XP and modelling ! Agile modelling Agile Modelling I Agile Modelling: values, principles, and practices I References I http://www.agilemodeling.com (Scott Ambler) I ”Agile Modelling” Scott Ambler, Wiley 2002 Agile Modelling Values I Communication I Simplicity I Feedback I Courage I Humility http://www.agilemodeling.com/values.htm Agile Modelling Principles I Core Principles I Software is your primary goal I Enabling the next effort is your secondary goal I Travel light I Incremental change I Model with a purpose I Multiple models ... Practices I Core Practices I Supplementary Practices I Real Good Ideas Core Practices I Active Stakeholder Participation I Collective Ownership I Model in Small Increments I Create Several Models in Parallel I Iterate to Another Artifact I Display Models Publicly I Model With Others I Prove it With Code I Use the Simplest Tools I ... List of practices: http://www.agilemodeling.com/practices.htm Disciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile Framework, Outside In Dev.: Focus on stakeholder requirements, Evo: Evolutionary Development http://disciplinedagileconsortium.org Iterative Processes: E.g. Rational Unified Process (1996) A*High*Level*Lifecycle* DAD Focus on complete lifecycle http://disciplinedagileconsortium.org © Disciplined Agile Consortium 4 DAD DAD + Lean New Initial features Architectural Vision Identify, prioritize, Retrospective and select Replenishment projects modeling session Business Value Initial Vision Learnings Operate and Funding Initial Initial Release and Require modeling, Fixed Delivery Date Daily work solution into support -ments planning, and production solution in organization Work items are pulled when Strategy production Business Roadmap, Expedite capacity is available Technology Roadmap to address them Feedback Coordination Demo Meeting Envision the Intangible future Options Enhancement Requests New and Defect Reports features Inception Construction Transition Continuous stream of development Stakeholder vision Sufficient functionality Proven architecture Production ready Delighted stakeholders F 10. T DAD L . http://disciplinedagileconsortium.org strategies should enhance the ability of DAD teams intelligence” approach supported via automated to deliver business value to their stakeholders in dashboards. a cost eff ec ve and mely manner. Unfortunately many exis ng IT governance strategies are based on a Being enterprise aware has several important implica ons command-and-control, bureaucra c approach which for the delivery lifecycle. First, to help teams understand o en proves ineff ec ve in prac ce. Chapter 20 of the the enterprise context that they operate in we should DAD book provides a comprehensive discussion of explicitly depict major collabora on fl ows with other agile governance [3]. parts of the organiza on. Figure 9 shows how to do so by • Open and honest monitoring. Although agile evolving the governed agile delivery lifecycle of Figure 4. Note that these fl ows are not necessarily ar fact based, approaches are based on trust, smart governance they may represent other forms of communica on such strategies are based on a “trust but verify and then as face-to-face discussion. guide” mindset. An important aspect of appropriate governance is the monitoring of project teams The second implica on is that one lifecycle does not fi t through various means. One strategy is for anyone all. We have worked with several organiza ons, some interested in the current status of a DAD project as small as thirty IT staff , that had teams that followed team to a end their daily coordina on mee ng very diff erent lifecycles. For teams that are new to agile and listen in, a strategy promoted by the Scrum the lifecycle of Figure 9 is a great place to start. But, community. Although it’s a great strategy that we because of the agile philosophy of ac vely striving to highly recommend, it unfortunately doesn’t scale very learn and improve your approach teams start to evolve well because the senior managers responsible for away from the Scrum-based lifecycle. It is common for governance are o en busy people with many eff orts them to realize that prac ces such as itera on planning, to govern, not just your team. Hence the need for itera on modeling, retrospec ves, and demos do not more sophis cated strategies such as a “development need to be on the same cadence, that instead they 12 Contents Software Development Process Agile Modeling Model Driven Architecture More UML Diagrams Traditional Development to MDA Traditional Development to MDA Traditional Development to MDA MDA I Model Driven Architecture (MDA) ! Derive code from models through transformations I Literature I Anneke Kleppe, Jos Warmer, Wim Bast ”MDA Explained”, 2003, Addison Wesley Professional I MDA Website by OMG (http://www.omg.org/mda/) Example I: Attributes Platform Independent Model (PIM): Example I: Attributes Platform Specific Model (PSM) for Java: Transformation PIM ! PSM I Introduce getter and setter methods for each attribute Example II: Associations PIM: Example II: Associations PSM for Java Transformation PIM ! PSM I Introduce an attribute for a navigable association PIM for Rosa’s Breakfast Service MDA for Rosa’s Breakfast Service I Three PSM’s I Relational database model I Enterprise Java Beans implementation I Web interface PSM Relational database model PSM EJB PSM Web Interface Communication Bridge EJB relational DB Principles of MDA: Models Principles of MDA: Models Principles of MDA: Models Principles of MDA: Transformations Principles of MDA: Transformations Principles of MDA: Transformations I Another example: Java Emitter Templates Transformations I Standard transformations I Customised transformations Example Transformation Transformation classes to DB schema (Pseudo Code) if the association A to B is adorned by an association class or the multiplicity at both ends is more-than-one then create a table representing the association class or the association and create foreign keys in both the table representing A and the table representing B referring this new table else if the multiplicity at one end is zero-or-one then create a foreign key in the table representing the class at that end, referencing the other end else // the multiplicity of the association is one-to-one create a foreign key in one of the tables, referencing the other end endif endif MDA and Metamodels I MDA and Metamodels II Short notation for the previous diagram MDA and Metamodels III I UML: Meta Object Facility (MOF) I EMF: Eclipse Modelling Framework I 02162 Software Engineering II The MDA/MDA promise The MDA/MDA promise MDA I Benefits I Higher productivity I Portability I Interoperability I Maintenance and Documentation I Issues I Modelling is abstraction I Transformations need to add things I Multiple models I Behavioural models Contents Software Development Process Agile Modeling Model Driven Architecture More UML Diagrams Object Diagrams Package Diagrams Deployment Diagram Object Diagram Example Class Diagram Object Diagram Object Diagram Purpose I Snapshot of a running system I objects: Instance of a class I links: instance of an association I Communication diagram Update operation of Account State before executing update(n) State after executing update(n) {n + b >= 0} a: Account bal = b + n a: Account bal = b h1: History bal = b prev h: History h: History bal = m bal = m Notation I Variant 1: an object with name and class I Variant 2: an anonymous object of a class I Variant 3: a named object of unknown class Notation I Value Specifications I Slots I Links to other objects Package Diagram I Groups model elements: classes, objects, use cases, packages, . I Structures the model, not the system I c.f.
Recommended publications
  • Software Architecture: the Next Step for Object Technology (PANEL)
    Software Architecture: The Next Step for Object Technology (PANEL) Bruce Anderson, University of ESSPX (moderator) Mary Shaw, Carnegie-Mellon University Larry Best, American Management Systems Kent Beck, First Class Software What is the next step for you? Progress comes Abstract from taking aware steps, but what steps are those? Architectures are the structuring paradigms, styles They could be in attempting to discover and and patterns that make up our software systems. catalogue architectures; creating awareness of this They are important in many ways: they allow us to level of product envisioning; doing design more talk usefully about systems without talking about consciously; finding ways of describing systems; their detail; a knowledge of them gives us design consolidating legacy code; abandoning legacy code; choices; attention to this level can make systems and making new software lifecycles. families of systems have the non-functional What is the next step for the community? Are there properties we want, especially changeability. ways to work that go beyond projects and Each panelist will address the following issues: companies? Will there be focus on the community, l What is architecture? which suggests cooperation, learning, divergence l What is the value you have had so far from and empowerment; or on the marketplace, which this concept? suggests competition, confidentiality, convergence l What is the next step for you? and dependence? l What is the next step for the community? 2 Mary Shaw 1 Background Software architecture is concerned with the What is architecture? We all have experience of organization of software systems: the selection of systems of great conceptual clarity and integrity.
    [Show full text]
  • The Great Methodologies Debate: Part 1
    ACCESS TO THE EXPERTS The Journal of Information Technology Management December 2001 Vol. 14, No. 12 The Great Methodologies Debate: Part 1 Resolved “Today, a new debate rages: agile software Traditional methodologists development versus rigorous software are a bunch of process- development.” dependent stick-in-the-muds who’d rather produce flawless Jim Highsmith, Guest Editor documentation than a working system that meets business needs. Opening Statement Jim Highsmith 2 Rebuttal Lightweight, er, “agile” Agile Can Scale: Inventing and Reinventing methodologists are a bunch of SCRUM in Five Companies glorified hackers who are going to be in for a heck of a surprise Jeff Sutherland 5 when they try to scale up their “toys” into enterprise-level software. Agile Versus Traditional: Make Love, Not War! Robert L. Glass 12 Business Intelligence Methodologies: Agile with Rigor? Larissa T. Moss 19 Agility with the RUP Philippe Kruchten 27 Extreme Requirements Engineering Larry Wagner 34 Exclusion, Assumptions, and Misinterpretation: Foes of Collaboration Lou Russell 39 Opening Statement by Jim Highsmith In the early 1980s, I participated in rigorous software development. others be able to understand the one round of methodology debate. Agile approaches (Extreme similarities and differences and be Structured analysis and design Programming, Crystal Methods, able to apply the right mix to their champions such as Tom DeMarco, Lean Development, Feature-Driven own organization. Both the SEI and Ed Yourdon, and Tim Lister were Development, Adaptive Software Rational have made wonderful on one side of the debate, while Development, SCRUM, and contributions to software develop- data-driven design aficionados like Dynamic Systems Development ment, but it is important to Ken Orr, Jean-Dominique Warnier, Methodology) populate one camp.
    [Show full text]
  • Extreme Programming from Wikipedia, the Free Encyclopedia
    Create account Log in Article Talk Read Edit View history Search Extreme programming From Wikipedia, the free encyclopedia Main page Extreme programming (XP) is a software development methodology which is Contents intended to improve software quality and responsiveness to changing customer Featured content requirements. As a type of agile software development,[1][2][3] it advocates frequent Current events "releases" in short development cycles, which is intended to improve productivity Random article and introduce checkpoints at which new customer requirements can be adopted. Donate to Wikipedia Wikipedia store Other elements of extreme programming include: programming in pairs or doing Interaction extensive code review, unit testing of all code, avoiding programming of features Help until they are actually needed, a flat management structure, simplicity and clarity in About Wikipedia code, expecting changes in the customer's requirements as time passes and the Community portal problem is better understood, and frequent communication with the customer and Recent changes among programmers.[2][3][4] The methodology takes its name from the idea that the Contact page Planning and feedback loops in beneficial elements of traditional software engineering practices are taken to extreme programming. Tools "extreme" levels. As an example, code reviews are considered a beneficial What links here practice; taken to the extreme, code can be reviewed continuously, i.e. the practice Related changes Software development of pair programming. Upload file process Special pages Critics have noted several potential drawbacks,[5] including problems with Core activities Permanent link unstable requirements, no documented compromises of user conflicts, and a Requirements · Design · Construction · Testing · Debugging · Deployment · Page information lack of an overall design specification or document.
    [Show full text]
  • Programming Design Patterns
    Programming Design Patterns Patterns for High Performance Computing Marc Snir/Tim Mattson Feb 2006 Dagstuhl Marc Snir Design Pattern High quality solution to frequently recurring problem in some domain Each pattern has a name, providing a vocabulary for discussing the solutions Written in prescribed format to allow the reader to quickly understand the solution and its context 2 Dagstuhl Feb 2006 Marc Snir History ‘60s and ‘70s Berkeley architecture professor Christopher Alexander 253 patterns for city planning, landscaping, and architecture Attempted to capture principles for “living” design. Published in 1977 3 Dagstuhl Feb 2006 Marc Snir Patterns in Object-oriented Programming OOPSLA’87 Kent Beck and Ward Cunningham Design Patterns: Elements of Reusable Object-Oriented Software By the “Gang of Four (GOF)”: Gamma, Helm, Johnson, Vlissides Catalog of patterns Creation, structural, behavioral Published in 1995 4 Dagstuhl Feb 2006 Marc Snir Impact of GOF book Good solutions to frequently recurring problems Pattern catalog Significant influence on object-oriented programming! Created a new vocabulary for software designers. 5 Dagstuhl Feb 2006 Marc Snir The Task Parallelism Pattern Problem: How do you exploit concurrency expressed in terms of a set of distinct tasks? Forces Size of task – small size to balance load vs. large size to reduce scheduling overhead Managing dependencies without destroying efficiency. Solution Schedule tasks for execution with balanced load – use master worker, loop parallelism, or SPMD patterns. Manage dependencies by: removing them (replicating data), transforming induction variables, exposing reductions explicitly protecting (shared data pattern). Intrusion of shared memory model… 6 Dagstuhl Feb 2006 Marc Snir Pattern Languages: A new approach to design Not just a collection of patterns, but a pattern language: Patterns lead to other patterns creating a design as a network of patterns.
    [Show full text]
  • Two Reengineering Patterns
    Type-Check Elimination: Two Reengineering Patterns Stephane´ Ducasse, Robb Nebbe, Tamar Richner Software Composition Group, Universitat¨ Bern g fducasse,nebbe,richner @iam.unibe.ch http://www.iam.unibe.ch/scg/ Abstract A reengineering pattern describes how to go from an existing legacy solution to a new refactored solution. In this paper we discuss the role of reengineering patterns and contrast them with design patterns and antipatterns. We then highlight the structure of a reengineering pattern and present two simple, related patterns for type-check elimination. 1 Reengineering Patterns When important legacy software can no longer gracefully evolve to meet changing requirements it is often reengineered. Reengineering patterns codify and record knowledge about modifying legacy software: they help in diagnosing problems and identifying weaknesses which hinder further development of the system and aid in finding solutions which are more appropriate to the new requirements. Reengineering patterns differ from Design Patterns [GHJV95] in their emphasis on the pro- cess of moving from an existing legacy solution to a new refactored solution. Whereas a design pattern presents a solution for a recurring design problem, a reengineering pattern presents a refactored solution for a recurring legacy solution which is no longer appropriate, and describes how to move from the legacy solution to the refactored solution. The mark of a good reengineer- ing pattern is (a) the clarity with which it exposes the advantages, the cost and the consequences of the target solution with respect to the existing solution, and not how elegant the target solution is, (b) the description of the change process: how to get from one state of the system to another.
    [Show full text]
  • Summary of Extreme Programming by Marc Novakouski Description Extreme Programming (Also Known As “XP”) Is a Popular Software
    Summary of Extreme Programming By Marc Novakouski Description Extreme Programming (also known as “XP”) is a popular software development process which grew out of the growing movement towards Agile processes[1]. The basic idea behind Extreme Programming is to strip out virtually all of the elements of the traditional software process to get to streamline development[1]. As a result, an XP project usually results in a software project in which software development is begun immediately, virtually no documentation artifacts are created, other than “user stories” which are written on index cards, and the project proceeds in an iterative fashion in which prototypes are created with the direct input (and sometimes help) of the stakeholders on a daily basis until the desired effect is created[1]. Finally, a key principle of XP is to expect and even “embrace” change, and XP does this by encouraging “refactoring,” or restructuring of the code on the fly on an as-needed basis. Extreme Programming is essentially a conglomeration of a number of specific “Agile” software development practices and concepts[2] in an attempt to remove the non-essential parts of the development process[3]. There are 12 “core” practices that make up XP, which are separated into 4 key areas: Planning, Design, Coding, and Testing[3][4]. Some practices are considered to be “best practices” of the software industry, such as Continuous Integration and Test Driven Development[4]. However, several practices such as Pair Programming and the System Metaphor are more controversial, and are often excluded in practice[5][7]. Extreme Programming is considered to be a development method suitable for only certain types of projects, such as small projects, research projects, and projects dealing with new technology[4].
    [Show full text]
  • Devops Advantages for Testing
    INTEGRATION AND INTEROPERABILITY Labs found that teams using DevOps experience “60 times fewer failures and recover from failures 168 times faster than DevOps Advantages their lower-performing peers. They also deploy 30 times more frequently with 200 times shorter lead times [2].” The choices of tools and frameworks for all of this automation for Testing has grown dramatically in recent years, with options available for almost any operating system, any programming language, open source or commercial, hosted or as-a-service. Active communi- Increasing Quality through ties surround many of these tools, making it easy to find help to start using them and to resolve issues. Continuous Delivery Continuous Integration Building a CD process starts with building a Continuous Integra- Gene Gotimer, Coveros tion (CI) process. In CI developers frequently integrate other de- Thomas Stiehm, Coveros veloper’s code changes, often multiple times a day. The integrated code is committed to source control then automatically built and Abstract. DevOps and continuous delivery can improve software quality and unit tested. Developers get into the rhythm of a rapid “edit-compile- reduce risk by offering opportunities for testing and some non-obvious benefits test” feedback loop. Integration errors are discovered quickly, to the software development cycle. By taking advantage of cloud computing and usually within minutes or hours of the integration being performed, automated deployment, throughput can be improved while increasing the amount while the changes are fresh on the developer’s minds. of testing and ensuring high quality. This article points out some of these oppor- A CI engine, such as Jenkins [3], is often used to schedule tunities and offers suggestions for making the most of them.
    [Show full text]
  • A Brief History of Devops by Alek Sharma Introduction: History in Progress
    A Brief History of DevOps by Alek Sharma Introduction: History in Progress Software engineers spend most of their waking hours wading George Santayana wrote that “those who cannot remember the through the mud of their predecessors. Only a few are lucky past are condemned to repeat it.” He was definitely not thinking enough to see green fields before conflict transforms the about software when he wrote this, but he’s dead now, which terrain; the rest are shipped to the front (end). There, they means he can be quoted out of context. Oh, the joys of public languish in trenches as shells of outages explode around them. domain! Progress is usually glacial, though ground can be covered This ebook will be about the history of software development through heroic sprints. methodologies — especially where they intersect with traditional best practices. Think of it as The Silmarillion of Silicon Valley, But veterans do emerge, scarred and battle-hardened. They except shorter and with more pictures. Before plunging into this revel in relating their most daring exploits and bug fixes to new rushing river of time, please note that the presented chronology recruits. And just as individuals have learned individual lessons is both theoretically complete and practically in progress. In other about writing code, our industry has learned collective lessons words, even though a term or process might have been coined, it about software development at scale. It’s not always easy to always takes more time for Best Practices to trickle down to Real see these larger trends when you’re on the ground — buried in Products.
    [Show full text]
  • Agile Practices
    Founda'ons of Soware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals • Define agile as both a set of iterave process prac.ces and a business approach for aligning customer needs with development. • Explain the mo.vaon behind and reason about the tradeoffs presented by several common agile prac.ces. • Summarize both scrum and extreme programming, and provide mo.vaon and tradeoffs behind their prac.ces. • Iden.fy and jus.fy the process prac.ces from the agile tradi.on that are most appropriate in a given modern development process. 2 What problems are there in soware development? 3 Agile So,ware Development Is … Both: • a set of soMware engineering best prac.ces (allowing for rapid delivery of high quality soMware) • a business approach (aligning development with customer needs and goals) 4 Brief History of Agile XP reified: Kent Beck Incepon of Iterave and released Extreme Incremental Development (IID): Introducon of Scrum: Programming Explained: Walter Shewhart (Bell Labs, Jeff Sutherland and Ken Embrace Change signal transmission) proposed a Schwaber presented a paper Introduc&on of “Agile”: series of “plan-do-study- describing the Scrum The Agile Manifesto act” (PDSA) cycles methodology at a conference wri[en by 17 soMware workshop developers Introducon of the waterfall: Winston Royce’s ar.cle Managing the Development of Large So<ware Systems 1930s 1970 1995 1999 2001 5 Agile in a nutshell • A project management approach that seeks to respond to change and unpredictability, primarily using incremental, iterave work sequences (oMen called “sprints”). • Also: a collec.on of prac.ces to facility that approach.
    [Show full text]
  • Extreme Programming Explained Embrace Change Kent Beck With
    Extreme Programming Explained Embrace Change Kent Beck with Cynthia Andres What is XP? • XP is about: • social change. • letting go of old habits and patterns that limit us. • giving up defenses that protect us but interfere with our productivity • being open about what we are capable of doing. • allowing others to do the same. • the process of becoming more of our best selves • the process of becoming our best as programmers. • Good relationships lead to good business. • Productivity and confidence are related to our human relationships in the workplace as well as our coding ability • XP addresses both What is XP? • Prepare for success. • Don’t protect yourself from success by holding back. • Do your best and then deal with the consequences. • That’s extreme – you leave yourself exposed. • This can be as scary as it is exciting and liberating. • XP focuses on: • excellent application of programming techniques • clear communication • teamwork What is XP? • XP Includes: • A philosophy of software development based on the values of communication, feedback, simplicity, courage, and respect. • A body of practices proven useful in improving software development • The practices complement each other, amplifying their effects. • The practices are chosen as expressions of the values. • A set of complementary principles, intellectual techniques for translating the values into practice • A community that shares these values and practices. What is XP? • XP is a path to improvement to excellence for people coming together to develop software. • It is distinguished from other software engineering methodologies by: • Short development cycles, resulting in early, concrete, and continuing feedback. • An incremental planning approach, which quickly comes up with an overall plan that is expected to evolve over time.
    [Show full text]
  • Bof: TOPICS in CONFIGURATION MANAGEMENT
    BoF: TOPICS IN CONFIGURATION MANAGEMENT Hal Snyder + Jason Olson, Orbitz Nico Schottelius, ETH Zurich Suggested Topics Continuous Delivery and How Do We Get There ITIL and the CMDB Scalability of CM infrastructure Applied DevOps and Agile Release Management a few remarks • this is our time (fans of infrastructure) • devops / agile ops / continuous delivery • solving the update problem with massive scalability • FCAPS & OAMP / infrastructure as code Continuous Delivery ... and How Do We Get There • Continuous Delivery book by Humble & Farley • Continuous Deployment chapter 4 in Web Operations book edited by Allspaw and Robbins • Visible Ops Handbook by Gene Kim and Kevin Behr Continuous Deployment in five easy steps (source: Eric Ries, Ch 4 in Web Operations) 1. Continuous integration server 2. Source control commit check 3. Simple deployment script 4. Real-time alerts 5. Root cause analysis ITIL and the CMDB • CMDB enables powerful practices. The use of a CMDB is not yet widespread. Only 19% of survey respondents have a CMDB broadly in use. However, CMDB-enabled change linkage practices predict higher levels of performance. Only 47% of top performers in the study have CMDB-enabled change practices, such as linking change requests to infrastructure, business need, and incident tickets. Yet these practices are a statistically significant predictor of top levels of performance. • Linking change requests to a system-level and business-level context is a powerful way to reduce release rollback rate, reduce configuration drift, and improve incident
    [Show full text]
  • Patterns and Systems Architecture Feb 18, 2010
    Patterns and Systems Architecture Feb 18, 2010 Dr. Robert Cloutier Associate Professor SE Patterns Workshop © Robert Cloutier, 2009 “The human eye has a readiness for patterns. Much is not seen simply because the mind is blind, not eyes. The eyes see in lines, curves, and patterns. Man himself works in patterns simple or complex, and such things are often evidence of man’s previous presence.” William Tell Sackett, Treasure Mountain By Louis L’Amour, 1972 © Robert Cloutier, 2009 Patterns in Prehistoric Art, Society, and Communications Patterned Body Anthropomorphs Petroglyphs, Coso Range, California Source: A Field Guide to Rock Art Symbols Of the Rock Art at Petroglyph National Monument, Greater Southwest, Alex Patterson, Johnson Books, Albuquerque, NM Boulder, 1992 Petroglyphs are powerful cultural symbols that reflect the complex societies and religions of the surrounding tribes. © Robert Cloutier, 2009 Brief Pattern History Shared couple’s realm • 1964 – Christopher Alexander – Books on Architecture, building and urban planning – Notes on the Synthesis of Form – A Pattern Language – A Timeless Way of Building private realms • 1987 - Ward Cunningham & Kent Beck House for Couple – Decided to use some of Alexander's ideas – Developed five patterns for guiding novice Smalltalk programmers common – Presented paper at OOPSLA'87 in Orlando area • "Using Pattern Languages for Object-Oriented Programs". • 1995 - Erich Gamma, Richard Helm, Ralph Johnson, and Parent’s Children’s John Vlissides realm realm – Software Design House for Couple – Design Patterns: Elements of Reusable Object-Oriented Software w/ Small Children © Robert Cloutier, 2009 Abstraction – Why Patterns Work • Abstraction hides detail • Does not obfuscate the item of interest Photograph of a White Rose I know I can not paint a flower on the desert on a bright summer morning but maybe in terms of paint color I can convey to you my experience of the flower or the experience that makes the flower of significance to me at that particular time.
    [Show full text]