Laws for Dynamic Systems
|
|
|
- Timothy Carroll
- 10 years ago
- Views:
Transcription
1 Laws for Dynamic Systems Peter Henderson Electronics and Computer Science, University of Southampton, SO17 1BJ, UK URL: Abstract A dynamic system is one which changes its configuration as it runs. It is a system into which we can drop new components which then cooperate with the existing ones. Such systems are necessarily built from reusable components, since as soon as the system is reconfigured to use some new components, those new components must reuse the existing, still running, ones. Design of reusable components in this context is an important problem. We suggest three laws which such reusable components might be required to obey, if dynamic systems are to be effective and to be economically built. We illustrate our conjecture that the laws are effective by describing a generic architecture based on the familiar registry services of COM/OLE or CORBA and by describing a simple point-of-sale system built according to this architecture. We conclude, of course, that some interesting open questions remain. But we suggest that an approach to reuse based on refining the three laws is a promising direction for system architecture to take. Keywords Reuse Architecture, Reconfigurable Systems, Non-Stop Operation, Active Objects, Reuse Constraints/Laws, Drop-in Components, Distributed Components, Registry, Case Study Background For contemporary business process support systems, the rate of evolution of the components from which they are built has become a dominating factor in the requirement for evolution of the system itself. Either the COTS components go through a release cycle, offering new services which the business needs. Or, new business requirements dictate a need for new or evolved (legacy) components [10]. The need to rebuild the system, or a major part of it, becomes a serious obstacle. Modern architectures, such as COM/OLE and CORBA [2], [17], [18], [19] and client/server architectures in general, address this issue by providing for dynamic reconfiguration of components while the system continues to run. The question arises, what rules should the reusable components in such dynamic systems obey, in order that the system continues to supply an acceptable service throughout periods of change? In this short paper, we will outline an approach we have taken to the development of dynamic systems from reusable, reconfigurable components. The projects on which this work has been done are developing flexible architectures for business process support systems [9]. Our approach has been to use traditional process modelling languages to model the business requirements and to then map these models onto distributed client/server implementations. For the mapping we have taken a relatively formal approach [7] using the picalculus [15], [16], [20]. The pi-calculus provides an effective means of describing the reconfiguration requirements for an evolving system. These formal models have led to the formulation of three laws which we suggest dynamic systems should obey in order to minimise the cost of reusing legacy components, while evolving others. For reasons we will explain, the laws, and examples of their application, are described informally (or semi-formally) here. Dynamic Systems By a dynamic system, we mean a system built from components where the system has the property that new components can be "dropped-into" the system and the system will continue to function, providing continuous and continued service. There are many examples of such systems. Trivially, whenever we run a new program on our existing operating system, we have dropped a new component into it without disrupting it. Similarly, in a commercial environment, when we make a new application available to users, we have dynamically evolved the system. In a client/server environment, when we install a new service or release a new client, again we have evolved the available services in a desirable way.
2 Component Reuse All these examples are trivial instances of component reuse. They work because of agreed interfaces between the collaborating components (e.g. files, databases, protocols). Components designed for reuse in these environments follow strict guidelines as to the interfaces which they present. New components adhere to the same guidelines in order to become tolerated members of the community. In architectures such as COM/OLE [18], [19], CORBA [2], [17] and Java/ORB/RMI [12] the usual mechanism which allows for the flexibility required by dynamic reconfiguration, is some kind of registry or object request broker. Components offering services publish their offer via the registry. Components requiring services negotiate with the registry and hence, eventually, with the service providers to reach mutually safe collaboration. It seems that the generic idea of a registry is rather unavoidable for dynamic systems. Hence it become the cornerstone of our suggested architecture. However, the laws we give are characterized in a way which does not presume such an architecture. Formal Models We have made use of various formal modeling techniques in the development of the ideas presented here. In particular we have made use of executable specifications [6], [8] and of the pi-calculus [7], [15], [16]. Others have made use of similar formal models for similar purposes [1], [13], [14]. In a seminal paper about the role of formal models in the context of contemporary software engineering, Hoare [11] suggests that the use of formal models to aid understanding, design and abstraction may be a highly cost-effective procedure. We have certainly found it to be the case when considering an architecture for reuse. However, we have chosen to present our laws informally and to present our examples in a semi-formal way. This is partially to make them accessible to a wider audience. But partially it is because we believe the level of formality chosen here is appropriate to the nature of the ideas presented. However, we have been influenced by the responses we have had over recent months to the presentation of these ideas (to academic and industrial audiences) either as formal models in the pi-calculus or as semi-formal models using the diagrams of the later sections. The formal models tend to elicit discussion on the pi-calculus, whereas the diagrams elicit discussion on reuse, reconfiguration and the generality (or otherwise) of the architecture. This paper is intended to elicit debate of the latter form. Three Laws In this section we will give three general laws for dynamic systems and discuss some of their consequences. In the next section we will exemplify an architecture which provides the conceptual framework in which systems obeying the laws can be developed. In the final section we will return to a discussion of the consequences of the laws framed here. In an earlier section, we have given an informal definition of a dynamic system, phrased in terms of components. Before we can proceed, we need to tighten up the definitions of dynamic system and component. We want to be able to say that systems are built from components and to draw the meaning of component sufficiently widely that any part of a system can be called a component. So components will have state. They will respond to actions (e.g. messages, method invocations, events etc) enquiring of or altering their state. But they will also have autonomous behaviour. They will be active objects [3], [4], [5]. We intend that the notion of active objects subsumes the notion of passive objects, but generally will address our remarks to clearly active objects. We have developed the idea that a system can be built from (and usefully described in terms of) a single type of component elsewhere [9]. We generalize the notion of component by saying that a component supplies services (e.g. methods, message handlers, event handlers) which may be used by other components. In these terms, a system is a collection of components which cooperate by each using the services supplied by others. A dynamic system is a system which can be reconfigured (new components added, old ones removed) without having to stop. We conjecture that a dynamic system will operate safely and effectively if its components all obey the following three laws. 1. A component, added to a system, may not disrupt the behaviour of that system. 2. A component, using the services of another, does so at its own risk and must protect itself from damage. 3. A component offering a service does so at its own risk and must protect itself from misuse. We will illustrate a system which is built from
3 components which obey these laws as a proof of existence, in the next section. First, let us discuss some of the apparent consequences of the laws. A consequence of the first law is that a system can choose to completely ignore a new component. That at least would guarantee no disruption. But such a corollary implies that the system has some behaviour independently of the behaviour of its components. This is not our intention. The system comprises its components and nothing else. A consequence of the second law is that a component may not rely upon the continued provision of a service supplied by another component. If it did, then the supplier could damage it simply by withholding the service. A consequence of the third law is that the provider of a service must be fair to its users. Otherwise it is open to a denial-of-service attack, whereby a malicious user is able to deny other users access by locking them out in some way. There are many such consequences of the laws. Rather than elaborate on more of them here, we will turn to an example which illustrates an architecture which, it is conjectured, supports components which obey these laws. An Architectural Model Figure 1 shows the model we are going to use to describe our architecture. On the left of Figure 1 is the format for presenting the details of a component. On the right is an instance of a component which obeys the format. A component is identified by a unique name, which in the model will be written directly below the component. Thus, in Figure 1, 1 is the name of a particular component. All components have a type, which determines what services they provide. This model does not go down to the level of services. Other components know which services they need by knowing the type of component which supplies them. The type of a component is written in the first (sub-)box of the component model. Thus in Figure 1, the component on the right is of type. Each component will need access to a set of service providers. The second box of the component description is therefore a set of component types, called the needs of the component. In Figure 1, 1 needs to have access to the services provided by a component of type and a component of type. Each component will, at any point in time, know of a set of other components. This set, called knows in Figure 1, will grow as the life of the component extends. Obviously the component's objective in life is to maintain a set of components which it knows, and which supply the services which it requires. In Figure 1, the component 1 knows of the components and 2. Finally, there will be a subset of the components which it actually uses. The fourth and final part of the description of a component is this subset. In Figure 1, although 1 knows of and 2 it only uses. To summarize: A component is known by a Name. A component has a Type. A component has a set called needs, which is set of Types being the types of components which it needs access to in order to work. A component has a set called knows, which is set of Names being the names of components which it knows the existence of. A component has a set called uses, which is set of Names being the names of components which it is currently using. Clearly, there are relationships between the parts of a component. Specifically uses will be a subset of knows and every component in knows will be of a type in Type Needs Knows Uses Name,, 2 1 Figure 1 Components: Format (left) and Instance(right) needs. Moreover, the relative values of these parts can be used to describe the evolving state of a component. For example, it may be in a state of using components which satisfy its needs, or it may be in the state of still needing components. We will not go into these aspect further here, since it takes us away from our objective of discussing the three laws.
4 An Example We are going to be very specific and show an example taken from a retail, point-of-sale support system. The system comprises tills (or cash-registers in the UK) at which customers check out goods. The tills need access to a component which provides price-lookup (), among many other services. The system is organized around a registry (NameServer, ) at which the providers of services register their availability and from which the users of such services learn the identity of providers. The semi-formal notation introduced in the last section and exemplified in Figure 1 has been designed for visual presentation. Specifically, the presentation is an animation using PowerPoint Slideshow. The dynamic nature of the system is apparent from the features of this Figure 2 A NameServer () component and a Price Lookup () component animation. New components appear on the screen among an unchanging backdrop of already configured components. As the story unfolds of how each component configures and reconfigures itself, the individual attributes of each component change one at a time. The visual cues which this gives are ideally suited to the human eye and everyone sees instantly where their attention should be. The formal properties of the architecture are important, but presenting them formally to scientists and engineers is less effective than the animation at eliciting the necessary debate about the design. The architecture is simplified because of the existence of the formal model. The animation serves as an ideal overview of the formal model. When eventually we get to very hard questions, or Figure 3 The Price Lookup component registers with the NameServer to the need for very precise statements, then it is time to turn to the mathematics for help. We can not present the animation here (unless you are reading this on the Web). The next best thing is to choose some of the major stages and to go through the sequence of events between stages. This is what we will now do for out point-of-sale system. The point-of-sale system is built around a registry component (of type, NameServer) which provides an introduction service. Figure 2 shows the NameServer as it would have appeared at the beginning of time. In Figure 2 we assume a Price Lookup component (of type ) has just arrived. It already knows of. This prior knowledge of something (a registry, usually) is assumed of all components. It is not the only architectural choice we could have made. The component registers with. Figure 3 shows the system state which ensues. Now the system is ready for tills to come on line. Figure 4 shows the state which we have as the first till component comes into existence. The obvious sequence of events takes place. The, 1 knows only of the NameServer. It requests a component of type. The NameServer will supply one or more names. It only knows of, so we assume it supplies that. Now we move to the state shown in Figure 5. You can imagine how the animation proceeds. A second arrives and connects to. A second arrives (call it 2) and registers with. Now fails, but the system recovers because both tills reconfigure to use 2.
5 We go on. What if the NameServer fails? Well, to start with its OK. Until a fails. There are many scenarios possible. Maybe the s must wait until a new, 1 Figure 4 A arrives, it requires a NameServer arrives and the s register. Maybe the s took the precaution of finding out about the second service and can reconfigure without a NameServer. Maybe the s know about each other and one of them knows of an alternate service. Each of these scenarios demonstrates a different aspect of three laws. Figure 6 shows a typical intermediate state where the various components have done something to protect themselves against failures. But the interesting scenarios are not these fault tolerant ones, even though they show reuse of legacy components. The interesting scenarios are those where we go through a component evolution (typical of COTS) where eventually we replace an old component by a new,,, 1 Figure 5 The learns of from and connects to it one, other components still protecting themselves against damage. We shall discuss such scenarios in the context of our three laws in the next section. Discussion Our conjecture is that, reusable components must obey constraints if they are to be good members of a community comprising a dynamic system. Particularly, we wanted to address reuse in the context of dynamic systems which we defined as collections of components which cooperate by supplying services to each other. We enunciated three laws which we conjectured reusable components could choose to obey. We suggested that a system built from components obeying these laws would have the desirable properties of effective dynamic reconfiguration, that is, change of functionality without loss of service. To what extent have we been able to support this conjecture? The architecture described in the earlier sections is a proof of existence of a set of components which obey the laws and apparently deliver the stated,, 2,, , 2, 2,, 2,, 2, Figure 6 A typical intermediate state where components have done something to protect themselves against failures properties. The first law is illustrated by arrival of components of type and which, on arrival, simply register with or make a request of the NameServer. This behaviour can not disrupt the behaviour of the system per se, although it is dependent on the ability of the other components to protect themselves against instances of such components which are, in some sense, undesirable members of the community. The power of the first law comes from the fact that it dictates that old components must take an active part in the decision to collaborate with new ones. The second law is illustrated by the surviving
6 the loss of a. Similarly, it is illustrated by the surviving the loss of both a and a NameServer. The has made use of these services at its own risk and has not been damaged by their loss. It would also be illustrated by the more interesting scenario (too elaborate for inclusion here) of a surviving the replacement of an old service by a new one which it subsequently finds deficient. Obeying the second law it would retain the ability to reconfigure back to using the old service. The third law is illustrated by the protecting itself against a denial-of-service attack, where a malicious has tried to lock other users out. A obeying the third law would not allow this. A corollary is that the service must be multithreaded or connectionless or in some way able to deliver the fairness required by the third law. However, this proof of existence, such that it is, only goes some way towards supporting our conjecture. It is possible that the laws are not even internally consistent. Our examples only show that the suggested architecture appears to be consistent and appears to obey the laws. Whilst it may be that any system which has the properties we require will obey the laws, it is unlikely that the laws are complete in the sense that any system which obeys the laws has the properties which we require. The laws are probably not independent. Moreover, they may even be redundant in that one may be a consequence of the others. Notwithstanding these difficult questions, the three laws do seem to have some utility in scoping the architectural debate which it is necessary to have in order to design dynamic systems which are built from reusable legacy or COTS components. This we have exemplified by capturing a description of a common generic architecture, the registry centered architecture common to COM/OLE, CORBA and client/server systems. We have taken the debate in only one of many possible directions in this paper. For example, we have made the assumption that the registry only knows of components which register themselves. An alternative architecture might remove the need for any action on the part of a new component. Would such an architecture be more robust? It will be interesting to discover, as these laws become more refined (and as the systems we build test their utility for scoping the design of reusable components and continuously evolving systems), the extent to which this initial formulation captured (or failed to capture) the essence of what is, after all, just the way we build contemporary systems. Acknowledgments I am indebted to many colleagues in ICL who have encouraged me to develop these ideas over recent years and have sponsored the projects in which they were developed. In particular Simon Hayward, Ed Parton, Alun Roberts, Graham Pratten, Bob Snowdon and Peter Wharton have contributed, at different times, to the ideas presented here. I am indebted to my colleagues in Southampton who provide a stimulating environment in which to argue one's case. I am indebted to my colleagues in IFIP WG 2.3 who are never satisfied with anything, and so present me with an eternally reusable challenge. And, finally, I am indebted to the comments of the anonymous referees. This work was carried out as part of EPSRC grants GR/J08928, GR/K08116, GR/K References [1] Allen R.J, Remi Douence and David Garlan, Specifying Dynamism in Software Architectures, Workshop of Foundations of Component Based Systems, Zurich, 1997, see index.html [2] Bensley E, et al, Evolvable Real-Time C3 Systems, First International Conference on Engineering of Complex Systems, IEEE Computer Society Press, 1995 [3] Birrell, A.D Greg Nelson, Susan Owicki, and Edward P. Wobber, Network Objects,. Software Practice and Experience, 25(S4):87-130, December Also appeared as SRC Research Report 115, see [4] Brown, Marc H and Marc A Najork, Distributed Active Objects, Computer Networks and ISDN Systems, 28: , May (Proceedings of the Fifth International World Wide Web Conference, Paris, France, May 6-10, 1996). Digital Systems Research Center, Report 141a, html [5] Cardelli, Luca, A Language with Distributed Scope, Computing Systems, Vol 8, No1,Jan [6] Gravell, A. and P. Henderson, Executing formal specifications need not be harmful, Software Engineering Journal, vol. 11, num 2., IEE (1996). [7] Henderson P, Formal Models of Process Components, Workshop of Foundations of
7 Component Based Systems, Zurich, 1997, see index.html [8] Henderson, P, Functional Programming, Formal Specification and Rapid Prototyping, IEEE Transactions on Software Engineering, Vol.12, No.2, pp , 1986 [9] Henderson, P & Pratten, G.D., POSD - A Notation for Presenting Complex Systems of Processes, in Proceedings of the First IEEE International Conference on Engineering of Complex Systems, IEEE Computer Society Press, 1995 [10] Henderson, P, Software Processes are Business Processes Too, 3 rd International Conference on the Software Process, IEEE Computer Society Press, Oct 1994 [11] Hoare C.A.R, How did Software get to be so reliable without proof, Keynote address at the 18 th International Conference on Software Engineering. IEEE Computer Society Press, see also blications.html [12] JavaSoft, Java RMI specification, 1996, see [13] Magee J and Kramer J, Dynamic Structure in Software Architecture, Proceedings of the ACM Conference on Foundations of Software Engineering, 1996 [14] Magee, N. Dulay, S. Eisenbach and J. Kramer, Specifying Distributed Software Architectures, Proceedings of 5th European Software Engineering Conference (ESEC 95), Sitges, Spain, September 1995 [15] Milner, Robin, The Polyadic pi-calculus: a tutorial, International Summerschool on Logic and Algebra of Specification, Marktoberdorf, see also LFCS /index.html [16] Milner, Robin, Elements of Interaction, Turing Award Lecture Communications of the ACM, Vol 36, No 1, January 1993 [17] Object Management Group, Common Object Request Broker, Architecture Specification see [18] Sullivan K and Knight J.C, Experience Assessing an Architectural Approach to Large Scale Reuse, Proceedings of ICSE-18, 1996 IEEE Computer Society Press [19] Sullivan K, Socha J and Marchukov M, Using Formal Methods to Reason about Architectural Standards, 19 th International Conference on Software Engineering, Boston, IEEE Computer Press, 1997 [20] Turner David, N, The Polymorphic pi-calculus: Theory and Implementation, Ph.D Thesis, University of Edinburgh, 1995 see LFCS /index.html
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
Component Based Software Engineering: A Broad Based Model is Needed
Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish ([email protected]) Brandon Dixon ([email protected]) David Hale ([email protected]) Department of Computer Science
Collaborative Development of System Architecture - a Tool for Coping with Inconsistency
Collaborative Development of System Architecture - a Tool for Coping with Inconsistency Peter Henderson Electronics and Computer Science University of Southampton SO17 1BJ, UK [email protected]
[Refer Slide Time: 05:10]
Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture
Web Services Software Architecture
Web Services Software Architecture Syahrul Fahmy School of Informatics, The University of Manchester, PO Box 88, Manchester M60 1QD, United Kingdom [email protected] Abstract. Web
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
Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software engineering and to explain its importance To set out the answers
In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice
In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities
A Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK [email protected] Abstract. Contracts have proved a powerful concept
European Security Standards Reference Implementation Initiative (ESSRII)
European Security Standards Reference Implementation Initiative (ESSRII) A Proposal for Action in Europe on International Information Security Standards Brian Gladman, European Technical Director, Trusted
Chapter 7 Application Protocol Reference Architecture
Application Protocol Reference Architecture Chapter 7 Application Protocol Reference Architecture This chapter proposes an alternative reference architecture for application protocols. The proposed reference
2 Computer Science and Information Systems Research Projects
2 Computer Science and Information Systems Research Projects This book outlines a general process for carrying out thesis projects, and it embraces the following components as fundamentally important:
The Role of Modelling in Teaching Formal Methods for Software Engineering
The Role of Modelling in Teaching Formal Methods for Software Engineering A. J. Cowling Department of Computer Science University of Sheffield Sheffield, England [email protected] Abstract. This
Week 3. COM1030. Requirements Elicitation techniques. 1. Researching the business background
Aims of the lecture: 1. Introduce the issue of a systems requirements. 2. Discuss problems in establishing requirements of a system. 3. Consider some practical methods of doing this. 4. Relate the material
An Introduction to Software Engineering
An Introduction to Software Engineering ACSC 383 Software Engineering Efthyvoulos C. Kyriacou (PhD) Assoc. Prof. Computer Science and Engineering Department Resources : Ian Sommervile Software engineering,
Infrastructures for Digital Business Ecosystems : the wrong question?
Infrastructures for Digital Business Ecosystems : the wrong question? Maurizio De Cecco http://maurizio.dececco.name/ http://www.linkedin.com/in/mauriziodececco As an independent expert working for the
(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
A Dynamic, Runtime-Extensible, Client-Managed Service Framework
A Dynamic, Runtime-Extensible, Client-Managed Service Framework D. Parry G. Wells, P. Clayton Computer Science Department Rhodes University Grahamstown, 6140 Email: [email protected] Tel: (046) 603 8640
From Business to Process Models a Chaining Methodology
BUSITAL'06 211 From Business to Process Models a Chaining Methodology Birger Andersson 1, Maria Bergholtz 1, Bertrand Grégoire 2, Paul Johannesson 1, Michael Schmitt 2, Jelena Zdravkovic 1 1 Department
Life Cycle Activity Areas for Component-Based Software Engineering Processes
Life Cycle Activity Areas for Component-Based Software Engineering Processes Robert C. Seacord Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 USA +1 412-268-3265 Kingsley
Business Processes, Legacy Systems and a Flexible Future
Business Processes, Legacy Systems and a Flexible Future Peter Henderson University of Southampton October 1999 1. Introduction Modern commercial and industrial organisations form a complex network of
A STUDY OF THE BEHAVIOUR OF THE MOBILE AGENT IN THE NETWORK MANAGEMENT SYSTEMS
A STUDY OF THE BEHAVIOUR OF THE MOBILE AGENT IN THE NETWORK MANAGEMENT SYSTEMS Tarag Fahad, Sufian Yousef & Caroline Strange School of Design and Communication Systems, Anglia Polytechnic University Victoria
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
Logical Data Models for Cloud Computing Architectures
Logical Data Models for Cloud Computing Architectures Augustine (Gus) Samba, Kent State University Describing generic logical data models for two existing cloud computing architectures, the author helps
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,
SERENITY Pattern-based Software Development Life-Cycle
SERENITY Pattern-based Software Development Life-Cycle Francisco Sanchez-Cid, Antonio Maña Computer Science Department University of Malaga. Spain {cid, amg}@lcc.uma.es Abstract Most of current methodologies
An Introduction to Software Engineering
An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the
An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1
An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the
Analyzing the Security Significance of System Requirements
Analyzing the Security Significance of System Requirements Donald G. Firesmith Software Engineering Institute [email protected] Abstract Safety and security are highly related concepts [1] [2] [3]. Both
(Refer Slide Time: 6:17)
Digital Video and Picture Communication Prof. S. Sengupta Department of Electronics and Communication Engineering Indian Institute of Technology, Kharagpur Lecture - 39 Video Conferencing: SIP Protocol
Linear Programming Notes VII Sensitivity Analysis
Linear Programming Notes VII Sensitivity Analysis 1 Introduction When you use a mathematical model to describe reality you must make approximations. The world is more complicated than the kinds of optimization
Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville
Introduction to Software Engineering Adopted from Software Engineering, by Ian Sommerville To discuss the factors that led to software failures and the phenomenon of the Software Crisis ; To introduce
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Establishing How Many VoIP Calls a Wireless LAN Can Support Without Performance Degradation
Establishing How Many VoIP Calls a Wireless LAN Can Support Without Performance Degradation ABSTRACT Ángel Cuevas Rumín Universidad Carlos III de Madrid Department of Telematic Engineering Ph.D Student
Introduction to Software Engineering
What is Software Engineering Introduction to Software Engineering Prof. Lyle N. Long [email protected] http://www.personal.psu.edu/lnl Sources of Material What is software? Software Engineering, 7 th Edition,
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
Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1
Introduction Getting started with software engineering Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance
Weaving the Software Development Process Between Requirements and Architectures
Weaving the Software Development Process Between and s Bashar Nuseibeh Computing Department The Open University Walton Hall Milton Keynes MK7 6AA, U.K. Email:[email protected] ABSTRACT This position
What makes a good process?
Rob Davis Everyone wants a good process. Our businesses would be more profitable if we had them. But do we know what a good process is? Would we recognized one if we saw it? And how do we ensure we can
Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)
Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment
Workflow Automation and Management Services in Web 2.0: An Object-Based Approach to Distributed Workflow Enactment
Workflow Automation and Management Services in Web 2.0: An Object-Based Approach to Distributed Workflow Enactment Peter Y. Wu [email protected] Department of Computer & Information Systems Robert Morris University
THE WINDOWS AZURE PROGRAMMING MODEL
THE WINDOWS AZURE PROGRAMMING MODEL DAVID CHAPPELL OCTOBER 2010 SPONSORED BY MICROSOFT CORPORATION CONTENTS Why Create a New Programming Model?... 3 The Three Rules of the Windows Azure Programming Model...
Requirements Engineering: A Roadmap
Requirements Engineering: A Roadmap Bashar Nuseibeh & Steve Easterbrook Department of Computing Imperial College of Science, Technology & Medicine London SW7 2BZ, UK Email: [email protected] http://www-dse.doc.ic.ac.uk/~ban/
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Service Oriented Architectures
8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ The context for SOA A bit of history
Internationalization and Web Services
Internationalization and Web Services 25 th Internationalization and Unicode Conference Presented by Addison P. Phillips Director, Globalization Architecture webmethods, Inc. 25 th Internationalization
White Paper On Pilot Method Of ERP Implementation
White Paper On Pilot Method Of ERP Implementation Rod Clarke Rod Clarke provides guidance, advice and support to businesses in successfully applying IS/IT in support of their business goals. He brings
Software Process Improvement Framework for Software Outsourcing Based On CMMI Master of Science Thesis in Software Engineering and Management
Software Process Improvement Framework for Software Outsourcing Based On CMMI Master of Science Thesis in Software Engineering and Management ZAHOOR UL ISLAM XIANZHONG ZHOU University of Gothenburg Chalmers
System-Dynamics modelling to improve complex inventory management in a batch-wise plant
European Symposium on Computer Arded Aided Process Engineering 15 L. Puigjaner and A. Espuña (Editors) 2005 Elsevier Science B.V. All rights reserved. System-Dynamics modelling to improve complex inventory
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,
Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility
An Introduction to Software Engineering Antinisca Di Marco [email protected] Objectives To introduce software engineering and to explain its importance To set out the answers to key questions about
System Behavior and Causal Loop Diagrams
C H A P T E R 1 System Behavior and Causal Loop Diagrams Human beings are quick problem solvers. From an evolutionary standpoint, this makes sense if a sabertooth tiger is bounding toward you, you need
7 Conclusions and suggestions for further research
7 Conclusions and suggestions for further research This research has devised an approach to analyzing system-level coordination from the point of view of product architecture. The analysis was conducted
Adversary Modelling 1
Adversary Modelling 1 Evaluating the Feasibility of a Symbolic Adversary Model on Smart Transport Ticketing Systems Authors Arthur Sheung Chi Chan, MSc (Royal Holloway, 2014) Keith Mayes, ISG, Royal Holloway
Software Engineering: Reflections on an Evolving Discipline
70 International Journal of Information Systems and Software Engineering for Big Companies (IJISEBC) Software Engineering: Reflections on an Evolving Discipline Ingeniería de software: Reflexiones sobre
Distributed Systems Architectures
Software Engineering Distributed Systems Architectures Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain the advantages and disadvantages of different distributed systems
Software Visualization Tools for Component Reuse
Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New
An Active Packet can be classified as
Mobile Agents for Active Network Management By Rumeel Kazi and Patricia Morreale Stevens Institute of Technology Contact: rkazi,[email protected] Abstract-Traditionally, network management systems
GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS
13_BOLCHINI.qxd 3/26/2003 10:25 Pagina 187 SComS: New Media in Education (2003) 187-191 DAVIDE BOLCHINI* GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS
Continual Verification of Non-Functional Properties in Cloud-Based Systems
Continual Verification of Non-Functional Properties in Cloud-Based Systems Invited Paper Radu Calinescu, Kenneth Johnson, Yasmin Rafiq, Simos Gerasimou, Gabriel Costa Silva and Stanimir N. Pehlivanov Department
A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT
A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT Cléver Ricardo Guareis de Farias, Marten van Sinderen and Luís Ferreira Pires Centre for Telematics and Information Technology (CTIT) PO Box
Patterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture
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
Intelligent Log Analyzer. André Restivo <[email protected]>
Intelligent Log Analyzer André Restivo 9th January 2003 Abstract Server Administrators often have to analyze server logs to find if something is wrong with their machines.
Development/Maintenance/Reuse: Software Evolution in Product Lines
Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional
(Refer Slide Time: 02:17)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #06 IP Subnetting and Addressing (Not audible: (00:46)) Now,
The Research Bulletin of Jordan ACM, Volume II(III) P a g e 127
The Research Bulletin of Jordan ACM, Volume II(III) P a g e 127 The specifications of E-Commerce Secure System using Z language Mustafa M. Noaman Computer Sciences Department, The Faculty of Information
Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci
Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental
Architecture Centric Development in Software Product Lines
Architecture Centric Development in Software Product Lines Aurangzeb Khan DCE, College of E & ME National University of Science and Technology (NUST), Pakistan Farooque Azam DCE, College of E & ME National
Requirements Volatility in Software Development Process
International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307, Volume-2, Issue-4, September 2012 Requirements Volatility in Software Development Process M.P.Singh, Rajnish Vyas Abstract-
Requirement Engineering in Service-Oriented Architecture
2012 International Conference on Networks and Information (ICNI 2012) IPCSIT vol. 57 (2012) (2012) IACSIT Press, Singapore DOI: 10.7763/IPCSIT.2012.V57.19 Requirement Engineering in Service-Oriented Architecture
Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations
Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Mennatallah H. Ibrahim Department of Computers and Information Sciences Institute
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
Student Project Allocation Using Integer Programming
IEEE TRANSACTIONS ON EDUCATION, VOL. 46, NO. 3, AUGUST 2003 359 Student Project Allocation Using Integer Programming A. A. Anwar and A. S. Bahaj, Member, IEEE Abstract The allocation of projects to students
CompatibleOne Open Source Cloud Broker Architecture Overview
CompatibleOne Open Source Cloud Broker Architecture Overview WHITE PAPER October 2012 Table of Contents Abstract 2 Background 2 Disclaimer 2 Introduction 2 Section A: CompatibleOne: Open Standards and
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
Chapter 1- Introduction. Lecture 1
Chapter 1- Introduction Lecture 1 Topics covered Professional software development What is meant by software engineering. Software engineering ethics A brief introduction to ethical issues that affect
Ada 2005 The GNAT Pro Company
Safe and Secure Software An Invitation to Ada 2005 Foreward / Contents / Introduction / Bibliography Courtesy of The GNAT Pro Company John Barnes Foreword The aim of this booklet is to show how the study
Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems
Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software
Service Mediation. The Role of an Enterprise Service Bus in an SOA
Service Mediation The Role of an Enterprise Service Bus in an SOA 2 TABLE OF CONTENTS 1 The Road to Web Services and ESBs...4 2 Enterprise-Class Requirements for an ESB...5 3 Additional Evaluation Criteria...7
Chapter 4 Software Lifecycle and Performance Analysis
Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and
A Generic Database Web Service
A Generic Database Web Service Erdogan Dogdu TOBB Economics and Technology University Computer Engineering Department Ankara, Turkey [email protected] Yanchao Wang and Swetha Desetty Georgia State University
Towards Modelling The Internet Topology The Interactive Growth Model
Towards Modelling The Internet Topology The Interactive Growth Model Shi Zhou (member of IEEE & IEE) Department of Electronic Engineering Queen Mary, University of London Mile End Road, London, E1 4NS
Web Application Development Processes: Requirements, Demands and Challenges
Web Application Development Processes: Requirements, Demands and Challenges THAMER AL-ROUSAN 1, BASEM HADIDI 2, SHADI ALJAWARNEH 3 1, 3 Faculty of Science and Information Technology, Isra University, Amman,
How to start research and how to present it?
How to start research and how to present it? Peter Kondor Budapest, CEU, 2010 Introduction What is research? How to start? How to present it? How to make it a paper? The main purpose of workshop to provide
Scalable End-User Access to Big Data http://www.optique-project.eu/ HELLENIC REPUBLIC National and Kapodistrian University of Athens
Scalable End-User Access to Big Data http://www.optique-project.eu/ HELLENIC REPUBLIC National and Kapodistrian University of Athens 1 Optique: Improving the competitiveness of European industry For many
Mathematics Cognitive Domains Framework: TIMSS 2003 Developmental Project Fourth and Eighth Grades
Appendix A Mathematics Cognitive Domains Framework: TIMSS 2003 Developmental Project Fourth and Eighth Grades To respond correctly to TIMSS test items, students need to be familiar with the mathematics
Exploratory Testing Dynamics
Exploratory Testing Dynamics Created by James Bach, Jonathan Bach, and Michael Bolton 1 v2.2 Copyright 2005-2009, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted
A process-driven methodological approach for the design of telecommunications management systems
A process-driven methodological approach for the design of telecommunications management systems Thierry FRAIZE, Julio VILLENA, Jean-Daniel GUEDJ TELECOM ARGENTINA Av Dorrego 2520 (1425) Buenos Aires Argentina
From Business World to Software World: Deriving Class Diagrams from Business Process Models
From Business World to Software World: Deriving Class Diagrams from Business Process Models WARARAT RUNGWORAWUT 1 AND TWITTIE SENIVONGSE 2 Department of Computer Engineering, Chulalongkorn University 254
The Trip Scheduling Problem
The Trip Scheduling Problem Claudia Archetti Department of Quantitative Methods, University of Brescia Contrada Santa Chiara 50, 25122 Brescia, Italy Martin Savelsbergh School of Industrial and Systems
