Affordable Software Architecture
|
|
|
- Constance Copeland
- 10 years ago
- Views:
Transcription
1 Affordable Software Architecture Stephen J. Mellor Abstract A successful architecture must appear to have been constructed by a single mind, even though we know that many minds are actually involved. An effective approach is to build the architecture as a set of rules that are independent of the application. Because such an architecture is independent of the size of the application it is more affordable, especially for large systems. This paper describes how an application-independent architecture provides coherent rationale for architectural decisions and when to apply them, consistency across the application depending on circumstances, opportunities for automation, and because the same decisions are not being taken (slightly differently) repeatedly across the application a significantly more affordable and easy-to-test implementation. 1. The Fractal Fencing Frenzy Last century in a discussion on the Advisory Board to IEEE Software, Terry Bollinger of Mitre Corp. sent this (slightly edited) 1. If only small groups can really design software well, what are those really big groups doing to keep so busy? That's an interesting question in its own right, and it has to do in part with the self-perpetuating nature of complexity. Imagine for a moment that you have been assigned the task of building a corral to keep in a herd of Chaos Cattle. Chaos Cattle are troublesome beasts that like to roam all around when given the slightest opportunity to do so. They also bear an unpleasant resemblance to the kinds of problems that software developers face every day: requirements that either don t exist or keep changing so rapidly that you never really know what they look like. You have a choice of letting the Chaos Cattle run free while you sit down and design a really good corral, or of starting work immediately with the one hundred fence builders assigned to you. Naturally, since this is an example of what happens when you choose to use lots of people, you choose to tell all one hundred of your fence builders to get to it! 1 Used with permission. Stephen J Mellor, All rights reserved. 1
2 You give them a general outline of where to build the corral and where each one of them should position themselves, but that's about it, as you don't really have anything more that you can tell them. You know that they are a smart bunch, so you just hope for the best. And indeed, they are a smart and creative bunch. In fact, they are so creative that each one begins to design their own version of a fence. One bright young lady develops a lowcost design using earth with a few wooden supports. Another one decides to go with an entirely wooden design that relies mostly on vertical posts. Another one chooses an allwood design also, but relies more on horizontal boards with only occasional vertical posts. Yet another chooses heavy-duty wire mesh. One designer (male, incidentally) who plays too much Quake III Arena 2 on the side decides to go with state-of-the art razor wire with flamethrower backup and a flashing red light to give the cattle a chance of not being converted abruptly into roast beef sandwiches. The list of novel solutions goes on... And because they really are all good designers, every one of the resulting fence segments proves to be 100% effective at keeping Chaos Cattle from getting though. There is just one problem which is that none of the fence segments can be easily linked together to create a single, unified corral. Instead of being stopped by the fences, the cattle imply mosey through the many gaps between fences that don't link up. You're, ah, 90% done with the coding but still pretty much 100% away from actually keeping the cattle in. But no problem! You've still got 100 fence builders available, and about 100 holes that still need to be plugged. You request a schedule extension, announce Phase II of the project ( Pre-Release Enhancements ), and put the designers to work on the gaps. Alas, you quickly discover that far from being simpler, the new set of problems is actually more complex than the original set. Back in Phase I, all you had to do was build fences, without any constraints other than the need to keep cattle in. Your fence builders had free reign, and were able to work creatively and highly effectively. In Phase II, the builders must now understand each other's fences and find ways to link them together. Some of these integration tasks prove to be straightforward, such as the case where the vertical post wooden fence builder happened to be adjacent to the horizontal board builder, in which case they added vertical posts until they reached the end of the boards. Others, such as tying the earthen fence to the mesh one, proved a lot more difficult. And in the case of the Quake III Arena player's fence, no one even wanted to go near it! So after a Phase II that was every bit as long as Phase I (actually, 50% longer), you still don't have a cattle-resistant corral. To be frank, what you have is a non-trivial number of gaping holes. But it's time to publish or perish, so to speak, so the corral becomes operational and the cows immediately start leaving through the remaining gaps. So you set up emergency response fence building teams to create new mini-corral patches to capture any cattle that get through. But guess what: All of your fence builders are still convinced that their designs were really the best, and they immediately start to slip back into old habits. The mini-corral patches rather quickly become as complex in 2 I told you it was last century! Stephen J Mellor, All rights reserved. 2
3 design as the original leaky corral, as various builders add their own innovations on different days and in different ways. The patches themselves consequently often leak too, and yet more "mini-mini-corrals" have to be added to take care of those. At some point you realize that what you've actually created is a Fractal Fencing Frenzy. Due to a lack of consistent communication of intent, each segment of the fence seems to exhibit an almost unlimited ability to spawn smaller and smaller problems that must each be addressed by the (costly) attention of an individual fence builder. You know you are in trouble when your boss asks for an all-day status report on Tuesday, and you find yourself genuinely tempted on Monday to see how many of your own bones you can break by accidentally skiing into a tree. Eventually, though, you convince your boss that what is going on is just the normal sequence of events in software, and that you have simply entered the maintenance phase, which as all fence builders know is the most expensive phase... even though that's not generally true in any other engineering field. And finally, your Fractal Fence just keep fracturing, since of course there is always an unending stream of requests from the disgruntled users to add more Chaos Cattle. Every time you extend the fence, you end up spending more time fixing the parts that you break than actually building more fence. Avoiding The Fractal Fencing Frenzy In another universe was the woman who did this: She designed a single, universal design for the fence first. She did this in a very interactive, highly creative fashion, with the help both of a couple of friends used to dealing with this particular local breed of Chaos Cattle, and with another fence designer who checked out her design and kept asking her annoying but important design questions. Once her design was complete, she implemented it using only builders who fully and exactly understood the constraints involved, and why those constraints were needed (e.g., to make sure the fence could be modified easily). Since her original intensive design work focused every bit or more on how to keep the fence usable and adaptable over time as it did to keeping the cattle in, the implemented fence never entered into the Fractal Frenzy as needs changed over time. Instead, simple changes in capacities and expected needs resulted in comparably simple changes, often little more than simply moving (reconfiguring) the fence. And cost-wise, the only ones who got milked were... the cows. In other words, she constructed an architecture. Stephen J Mellor, All rights reserved. 3
4 2. Software Architecture The abstract organization of the software in a system is called the software architecture. It proclaims and enforces system-wide rules for the organization of: data, control, structures, and time Data. The software architect decides how to organize data in the system. Consider, for example, the data that describes a chemical plant. There will be data describing the recipes by which we manufacture the chemicals, data to describe valves, pumps, tanks and so on, data to describe heating and cooling procedures, and the like. This data could be organized by rows one row per recipe, tank, valve etc. Or it could be organized by column, whereby the desired temperatures and pressures of all the tanks are organized into columns for fast iterative access during a control cycle. Or the data could be organized into a tabular structure or even no structure at all simply free floating data elements. Other data in the system, say for histogramming, may require special purpose data structures, such as trees, bins, or linked lists. It is possible, of course, to use several schemes, perhaps a column-wise organization for variables that require fast iterative control, but a row-wise organization for devices that are controlled individually. The issue here is to find the minimum set of data organization techniques so as to reduce the cost of building, learning about, and maintaining data access logic, and to make the code for the system smaller. Similarly, the architect must decide how to access data. Should it be directly by name, or using a function that encapsulates the data structure, thus protecting its clients from any change in its organization? For data that requires fast access another possibility is to employ a facsimile of encapsulation at system construction time. In this approach, the software developer writes logic as if the data were encapsulated. A preprocessing tool or perhaps the compiler in languages such as Eiffel, then transforms the function into a direct memory access. This is the data-access analog of an inline function in C and C++. Control. The architect must decide what causes a task to execute. Some tasks may execute periodically, while others execute on demand. A task may execute for a single instance say, to control a single valve or it may execute for many instances say, to control the temperatures of all tanks currently in a Heating state. The architect must decide on what basis a task gives up control of the processor, and how this relates to priorities. Of critical importance is how access to shared data can be controlled. The problem is to ensure that, whenever a task runs, it accesses the correct version of data. There are many approaches to the problem: data locks, sequentializing tasks; permitting parallel execution of tasks if they access different data sets and so on. Stephen J Mellor, All rights reserved. 4
5 Structures. We define a structure to be any packaging of code or data in a system. Examples are tasks, classes, objects, functions, and shared data areas. It is the responsibility of the architect to select the structures to be used in the system and to decide on the basis for allocating portions of the application to these structures. Time. The architecture must also provide for both absolute and relative time. This collection of architectural decisions, i.e. the abstract organization of the software, is an application-independent software architecture. Note that several authors [1, 2, 3] do not require application independence. Exercise caution in this area when reading their work. 3. Executable Models If we can build an application-independent software architecture, then presumably we can also build architecture-independent applications. To be useful it should be executable. One form of executable modeling is based on a limited subset of UML assembled in a particular way so that the diagrams have meaning. For example, in UML one may build a state model for a class, an object, a method, a use case, a component, a package just about anything. While the execution semantics of the state model are defined in isolation, this leaves open the question of how the various elements relate to one another. Executable UML [4] comprises only three diagrams, the class diagram, which outlines the conceptual entities in the domain, a state model for each class that models the lifecycle of each object, and a set of actions that establish the state, called an activity. The classes must be abstracted based on both similar behavior and characteristics. This requirement allows a state model to be built for each class that applies uniformly to each object, avoiding logic to determine what type of object each action is executing on. The state model captures the lifecycle of each object. There is one state model per class because the behavior of each object is exactly the same. In some cases, there is no need to build a state model because the only operations are synchronous data access under the control of other objects. For other classes that manage contention, we build a single state model for the class as a whole. Conceptually, then, a class may have no state models, or one model that applies uniformly to each object, and an (optional) other that apples to the class as a whole. An activity is a collection of actions that is executed on entry to a state. An activity is almost the same as an action, except that an activity allows for parameters, while actions rely on data flows. Specifically, when an event is received by a state model, the event may carry data other than the target object, such as the phone numbers involved in a call. This supplemental data is made available to all actions in the activity on data flows. Stephen J Mellor, All rights reserved. 5
6 Activities on state models do not have return parameters. All data must (logically) be stored as attributes of objects, before the activity completes. An executable model operates on data about objects. Each class defines attributes for objects, and each attribute may have an initial value for each object. When the model executes, each object has its own state, and each object executes concurrently and asynchronously with respect to all others. Each state model instance (a state machine), then, is in its own (just one) state, either executing an activity to completion, or not. The actions inside activities may read data through (logically) encapsulated functions of other classes at the same time as the target object is executing an activity. It is the modeler s responsibility to avoid data access conflict by synchronizing the behavior of the various objects, if required, using a state model. The state models recognize events. Each event may be a signal sent from another object, from the outside, or it can be the result of a deferred event that signals expiry of a timer or of some absolute time. Thus, an executable UML program comprises a collection of concurrently executing state machines communicating by sending signals. This highly concurrent model can re reorganized to be fully synchronous or distributed without changing its behavior. Indeed, it is possible to reorganize the model so that some states are executed periodically in a separate task, and the attributes of a single object are stored in multiple processors. Just so long as the behavior is the same. 4. Translating Executable Models A model compiler comprises a collection of reusable components together with a set of formalized rules on how to embed the application within it. The reusable components should include ways to access program data such as lists and trees, to store persistent data, to sequence actions, to activate and deactivate tasks and so on. The formalized rules show the usage of the reusable components in context. For example, if a task synchronizes with others by sending messages of a particular form, then the formalized rule shows the construction of the message, and the call to the message handling service. The content of the message is left as a placeholder to be filled in from the application. We base the concept of a model compiler on the observation that to understand the fundamental architecture of a system, we need only to understand the structure of each of its prototypical elements and how they interrelate. For example, to understand the design of a Unix-based application, we need only understand pipes and filters. We don't need to understand the details of the semantics of an application in fact they are a hindrance. The details of model compilation are beyond the scope of this paper, but Figure 1 summarizes them. The meaning of the application is modeled and stored in a repository, as shown at the top of the diagram. This meaning includes all the concepts described in the sections above: class, state, action, and so on. (The graphical layout is also stored, but for model translation this is not relevant.) Stephen J Mellor, All rights reserved. 6
7 Figure 1: The structure of Model Compilation The model compiler is at the bottom of the diagram. It consists of a library of reusable elements, such as list or memory management functions, and a set of rules. Each rule generates text. For example, a class may have a rule that creates a class, a struct or even a VHDL entity. The rule language has been standardized by the Object Management Group, and can be found in [5]. The result of applying the rule (the Generator in the center of the diagram) is text. This text can be compiled with the libraries in the model compiler, other libraries, legacy code, etc. The result is a program, or set of programs, that can be compiled, linked, and run. There is little value, therefore, in thinking of a design as the repetitive use of the design decisions as they relate to the application components. This is time-consuming, tedious, and an invitation to unnecessary and unwanted creativity. Instead, we should think of design as the definition of the reusable components and how to use them in the context of an application. Note that this approach scales well, so that a project can make best use of experienced designers, because the model compiler contains only information about the system design. The approach is also platform independent, meaning that a model expressed in this manner can be translated onto any platform. All you need is its model compiler. Stephen J Mellor, All rights reserved. 7
8 5. Affordablity There are a number of model compilers available and many of them are suitable for embedded systems. For example, one model compiler that generates very fast, smallfootprint C can be had for under $60K. This costs less than half an effort-year. Your choice is between taking $60K out of the capital budget or dribbling it out $1K a month per person over a period of years. If you choose the latter, you have to specify the architecture. 6. Specifying the Architecture To specify the software architecture, begin with a system sketch, a brief description of the theory of operation for the architecture, and the rationales for decisions you have made. This is then supported by a description of the conceptual entities of the architecture and mapping rules from the application to those entities. System Sketch. Sketch out the layout of the system to show: processors communication channels bandwidth protocols external actors etc. Although such a sketch is informal, it nonetheless provides a reference model for the system that is readily understandable by client, architect and newbie alike. Theory of Operation. This short document describes how the system works a whole. The document should describe the threads of control that run through the architecture, and cover all modes of system operation, including normal system operation; cold-start and initialization procedures; warm-start, restart, and failover operation, as required; and shutdown. The goal is to provide the big picture for how the architecture works. Rationale. Decisions are made for (generally) good reasons. However, reasons change, so it is helpful to write down both the non-localized requirements and the constraints together with their rationales. Then, when the rationales change, it is a relatively easier job to find those decisions that require re-examination. Conceptual entities. Next, we must capture the conceptual entities that make up the architecture. If there is a task that runs periodically, we should declare and define this periodic task describing what it is and how it fits into the rest of the architecture. Or there may be different types of processors, and certain functionality is assigned to each kind. Each of the roles taken on by processors should be defined. For another example, Stephen J Mellor, All rights reserved. 8
9 in object-oriented architecture, there are classes, inheritance structures and so on. It is important to outline the basis for abstraction of the classes. Are they based on real-world entities? Or more software-oriented concepts surrounding data or control organization? Mapping Rules. Finally, we must define mapping rules for elements of the application onto the conceptual entities we have defined for the architecture. For example, some functionality will be allocated to the periodic task. Presumably, this will be functionality that is executed periodically. How should a programmer looking at an application model recognize this functionality? How, exactly, is it a programmer to code that functionality? These mapping rules, taken together, act as translation program from the models to code. 7. Summary An affordable software architecture can be had if we recognize that an architecture is a set of inter-related decisions that must fit together into a coherent whole, rather than a set of individual decisions made independently from one another. To define an architecture, we must specify the conceptual entities that make it up and define a set of mapping rules from a well-defined (that is, we have a complete, executable specification) application into that architecture. Writing the code is then a matter of carrying out these mappings. Because the task is repetitive, it can be automated. Model compilers exist for embedded systems, and can be purchased for less than the cost of hiring programmers, except on the very smallest of systems. References [1] Software Architecture: Perspectives on an Emerging Discipline, D. Garlan and M. Shaw, Prentice Hall, Englewood Cliffs, N.J., [2] Comparing Architectural Design Styles, IEEE Software, Nov. 1995, pp [3] Pattern-Oriented Software Architecture: A System of Patterns, F. Buschmann et al., John Wiley, Chichester, UK, [4] Stephen, J. Mellor, Marc J. Balcer. Executable UML: A Foundation for Model-Driven Architecture [5] MOF Model to Text Transformation Language, Stephen J Mellor, All rights reserved. 9
Software Life-Cycle Management
Ingo Arnold Department Computer Science University of Basel Theory Software Life-Cycle Management Architecture Styles Overview An Architecture Style expresses a fundamental structural organization schema
Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali
Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 [email protected] Spring 2014 (elicitation)
Chap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
The Phases of an Object-Oriented Application
The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly
Functional Decomposition Top-Down Development
Functional Decomposition Top-Down Development The top-down approach builds a system by stepwise refinement, starting with a definition of its abstract function. You start the process by expressing a topmost
Business Modeling with UML
Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their
UML for the C programming language.
Functional-based modeling White paper June 2009 UML for the C programming language. Bruce Powel Douglass, PhD, IBM Page 2 Contents 2 Executive summary 3 FunctionalC UML profile 4 Functional development
A Real Time, Object Oriented Fieldbus Management System
A Real Time, Object Oriented Fieldbus Management System Mr. Ole Cramer Nielsen Managing Director PROCES-DATA Supervisor International P-NET User Organisation Navervej 8 8600 Silkeborg Denmark [email protected]
1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Rules and Business Rules
OCEB White Paper on Business Rules, Decisions, and PRR Version 1.1, December 2008 Paul Vincent, co-chair OMG PRR FTF TIBCO Software Abstract The Object Management Group s work on standards for business
æ A collection of interrelated and persistent data èusually referred to as the database èdbèè.
CMPT-354-Han-95.3 Lecture Notes September 10, 1995 Chapter 1 Introduction 1.0 Database Management Systems 1. A database management system èdbmsè, or simply a database system èdbsè, consists of æ A collection
Candle Plant process automation based on ABB 800xA Distributed Control Systems
Candle Plant process automation based on ABB 800xA Distributed Control Systems Yousef Iskandarani and Karina Nohammer Department of Engineering University of Agder Jon Lilletuns vei 9, 4879 Grimstad Norway
Embedded Systems in UML
Charles Simonyi, the recently returned space tourist, is an intriguing character. So much so that a lengthy, and suitably fascinating, profile was published in Technology Review. (See http://www.technologyreview.com/infotech/18047/).
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
SECTION 2 PROGRAMMING & DEVELOPMENT
Page 1 SECTION 2 PROGRAMMING & DEVELOPMENT DEVELOPMENT METHODOLOGY THE WATERFALL APPROACH The Waterfall model of software development is a top-down, sequential approach to the design, development, testing
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
Applying 4+1 View Architecture with UML 2. White Paper
Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was
Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when
[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com
-Gene Sher Software Development Processes: Those in engineering and science will sooner or later either be members of teams solving some large project, or be managing teams solving some large project.
Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340
XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks
Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. [email protected] This article describes how a simple home alarm can be designed using the UML
Agile Techniques for Object Databases
db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and
Memory Systems. Static Random Access Memory (SRAM) Cell
Memory Systems This chapter begins the discussion of memory systems from the implementation of a single bit. The architecture of memory chips is then constructed using arrays of bit implementations coupled
Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?
Books: Software Configuration Management 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java (Chapter 13) Outline of the Lecture Purpose of Software Configuration
Software Engineering
Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,
Authoring Within a Content Management System. The Content Management Story
Authoring Within a Content Management System The Content Management Story Learning Goals Understand the roots of content management Define the concept of content Describe what a content management system
To introduce software process models To describe three generic process models and when they may be used
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5, No. 6, July - August 2006 On Assuring Software Quality and Curbing Software
Structuring Product-lines: A Layered Architectural Style
Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland
An Approach to Software Architecture Description Using UML
An Approach to Software Architecture Description Using UML Henrik Bærbak Christensen, Aino Corry, and Klaus Marius Hansen Department of Computer Science, University of Aarhus Aabogade 34, 8200 Århus N,
Title: Topic 3 Software process models (Topic03 Slide 1).
Title: Topic 3 Software process models (Topic03 Slide 1). Topic 3: Lecture Notes (instructions for the lecturer) Author of the topic: Klaus Bothe (Berlin) English version: Katerina Zdravkova, Vangel Ajanovski
Highly Available Service Environments Introduction
Highly Available Service Environments Introduction This paper gives a very brief overview of the common issues that occur at the network, hardware, and application layers, as well as possible solutions,
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
The CVS-Server Case Study: A Formalized Security Architecture
The CVS-Server Case Study: A Formalized Security Architecture Extended Abstract Achim D. Brucker, Frank Rittinger, and Burkhart Wolff {brucker,rittinge,wolff}@informatik.uni-freiburg.de 1 Introduction
Architecture Design & Sequence Diagram. Week 7
Architecture Design & Sequence Diagram Week 7 Announcement Reminder Midterm I: 1:00 1:50 pm Wednesday 23 rd March Ch. 1, 2, 3 and 26.5 Hour 1, 6, 7 and 19 (pp.331 335) Multiple choice Agenda (Lecture)
Introduction to Embedded Systems. Software Update Problem
Introduction to Embedded Systems CS/ECE 6780/5780 Al Davis logistics minor Today s topics: more software development issues 1 CS 5780 Software Update Problem Lab machines work let us know if they don t
BUSINESS RULES AND GAP ANALYSIS
Leading the Evolution WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Discovery and management of business rules avoids business disruptions WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Business Situation More
Object-oriented design methodologies
Object-oriented design methodologies An object-oriented methodology is defined as the system of principles and procedures applied to object-oriented software development. Five years ago, there was no standard
Understanding the IEC61131-3 Programming Languages
profile Drive & Control Technical Article Understanding the IEC61131-3 Programming Languages It was about 120 years ago when Mark Twain used the phrase more than one way to skin a cat. In the world of
Information systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:
UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling
UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling PATHS TO DOMAIN-SPECIFIC MODELING... 1 UML PROFILING... 2 The Origin of the UML Profiling Specifications... 2 The Vision...
SysML Modelling Language explained
Date: 7 th October 2010 Author: Guillaume FINANCE, Objet Direct Analyst & Consultant UML, the standard modelling language used in the field of software engineering, has been tailored to define a modelling
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
2. Analysis, Design and Implementation
2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:
CS 5150 So(ware Engineering System Architecture
Cornell University Compu1ng and Informa1on Science CS 5150 So(ware Engineering System Architecture William Y. Arms Design The requirements describe the funcbon of a system as seen by the client. Given
Architecture Artifacts Vs Application Development Artifacts
Architecture Artifacts Vs Application Development Artifacts By John A. Zachman Copyright 2000 Zachman International All of a sudden, I have been encountering a lot of confusion between Enterprise Architecture
A UML Introduction Tutorial
A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software
Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
Linear Motion and Assembly Technologies Pneumatics Service. Understanding the IEC61131-3 Programming Languages
Electric Drives and Controls Hydraulics Linear Motion and Assembly Technologies Pneumatics Service profile Drive & Control Understanding the IEC61131-3 Programming Languages It was about 120 years ago
From Concept to Production in Secure Voice Communications
From Concept to Production in Secure Voice Communications Earl E. Swartzlander, Jr. Electrical and Computer Engineering Department University of Texas at Austin Austin, TX 78712 Abstract In the 1970s secure
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Transcription. Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage. Media Duration: 28:45
Transcription Founder Interview - Panayotis Vryonis Talks About BigStash Cloud Storage Media Duration: 28:45 Feel free to quote any passage from this interview for your articles. Please reference cloudwards.net
Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective
Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
CS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business
Software Engineering Design Theory and Practice Carlos E. Otero CRC Press Taylor & Francis Croup Boca Raton London New York CRC Press is an imprint of the Taylor St Francis Croup, an Informa business AN
CHAPTER 6 DATABASE MANAGEMENT SYSTEMS. Learning Objectives
CHAPTER 6 DATABASE MANAGEMENT SYSTEMS Management Information Systems, 10 th edition, By Raymond McLeod, Jr. and George P. Schell 2007, Prentice Hall, Inc. 1 Learning Objectives Understand the hierarchy
The Real Challenges of Configuration Management
The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development
Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.
Architectural Patterns Architectural Patterns Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm
5 Group Policy Management Capabilities You re Missing
5 Group Policy Management Capabilities You re Missing Don Jones 1. 8 0 0. 8 1 3. 6 4 1 5 w w w. s c r i p t l o g i c. c o m / s m b I T 2011 ScriptLogic Corporation ALL RIGHTS RESERVED. ScriptLogic, the
Requirements Management
REQUIREMENTS By Harold Halbleib Requirements Management Identify, Specify, Track and Control Requirements Using a Standard Process About the author... Harold Halbleib has a degree in Electrical Engineering
Overview of Luna High Availability and Load Balancing
SafeNet HSM TECHNICAL NOTE Overview of Luna High Availability and Load Balancing Contents Introduction... 2 Overview... 2 High Availability... 3 Load Balancing... 4 Failover... 5 Recovery... 5 Standby
PROGRAMMABLE LOGIC CONTROL
PROGRAMMABLE LOGIC CONTROL James Vernon: control systems principles.co.uk ABSTRACT: This is one of a series of white papers on systems modelling, analysis and control, prepared by Control Systems Principles.co.uk
Introduction to Database Systems
Introduction to Database Systems A database is a collection of related data. It is a collection of information that exists over a long period of time, often many years. The common use of the term database
From Control Loops to Software
CNRS-VERIMAG Grenoble, France October 2006 Executive Summary Embedded systems realization of control systems by computers Computers are the major medium for realizing controllers There is a gap between
Configuration & Build Management
Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration
How To Develop A Telelogic Harmony/Esw Project
White paper October 2008 The Telelogic Harmony/ESW process for realtime and embedded development. Bruce Powel Douglass, IBM Page 2 Contents 3 Overview 4 Telelogic Harmony/ESW core principles 6 Harmony/ESW
Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering System Models Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain why the context of a system should be modeled as part of the RE process To describe
Software Configuration Management. Addendum zu Kapitel 13
Software Configuration Management Addendum zu Kapitel 13 Outline Purpose of Software Configuration Management (SCM) Motivation: Why software configuration management? Definition: What is software configuration
Putting on an exhibition about your research
Real Life Methods Part of the ESRC National Centre for Research Methods Toolkit #02 Putting on an exhibition about your research Hazel Burke, Real Life Methods, University of Manchester July 2008 About
E-Business Technologies for the Future
E-Business Technologies for the Future Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh [email protected] http://www.sis.pitt.edu/~spring Overview
Ladder and Functional Block Programming
CHPTER 11 Ladder and Functional lock Programming W. olton This (and the following) chapter comes from the book Programmable Logic Controllers by W. olton, ISN: 9780750681124. The first edition of the book
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications White Paper Table of Contents Overview...3 Replication Types Supported...3 Set-up &
Data Modeling Basics
Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
Agile Project Execution
ebook Agile Project Execution The future of Industrial Process Automation projects v1.4 EMK(VDS)-TR-EB-01 APEX ebook Table of Contents Intro Agile Project Execution Page 2. Chapter 1 Conventional Project
Big data big talk or big results?
Whitepaper 28.8.2013 1 / 6 Big data big talk or big results? Authors: Michael Falck COO Marko Nikula Chief Architect [email protected] Businesses, business analysts and commentators have
2. Analysis, Design and Implementation
2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,
If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C?
Problem 3 If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C? Suggested Questions to ask students about Problem 3 The key to this question
Model Simulation in Rational Software Architect: Business Process Simulation
Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation
Assuming the Role of Systems Analyst & Analysis Alternatives
Assuming the Role of Systems Analyst & Analysis Alternatives Nature of Analysis Systems analysis and design is a systematic approach to identifying problems, opportunities, and objectives; analyzing the
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
What You Don t Know Will Haunt You.
Comprehensive Consulting Solutions, Inc. Business Savvy. IT Smart. Joint Application Design (JAD) A Case Study White Paper Published: June 2002 (with revisions) What You Don t Know Will Haunt You. Contents
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Curl Building RIA Beyond AJAX
Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information
11 Tips to make the requirements definition process more effective and results more usable
1 11 Tips to make the s definition process more effective and results more usable This article discusses what I believe are the key techniques for making s definition process repeatable from project to
VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0
VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
