Sunday, January 26, 2020

Concepts of Object Oriented Techniques with OO Issues

Concepts of Object Oriented Techniques with OO Issues Abstract Object-oriented frameworks offer reuse at a high design level promising several benefits to the development of complex systems. This paper sought to 1) define the concepts of object oriented techniques in addition with the OO issues, development techniques and concepts of object oriented programming, it is also introduced the UML as an ordinary and key tool for object-oriented design, additionally 2) we look further into the frameworks from the perspective of object-oriented techniques. In this section, it is aimed to define a reasonable promise between object oriented technology and frameworks. At the end, some future horizons for object oriented technology and frameworks are presented. I. Introduction Computing power and network bandwidth have increased dramatically over the past decade. However, the design and implementation of complex software remains expensive and error-prone. Much of the cost and effort stems from the continuous re-discovery and re-invention of core concepts and components across the software industry. In particular, the growing heterogeneity of hardware architectures and diversity of operating system and communication platforms makes it hard to build correct, portable, efficient, and inexpensive applications from scratch. Object-oriented (OO) techniques and frameworks are promising technologies for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. A framework is a reusable, semi-complete application that can be specialized to produce custom applications [19]. In contrast to earlier OO reuse techniques based on class libraries, frameworks are targeted for particular business units (such as dat a processing or cellular communications[1]) and application domains (such as user interfaces or real-time avionics). Frameworks like MacApp, ET++, Interviews, ACE, Microsofts MFC and DCOM, JavaSofts RMI, and implementations of OMGs CORBA play an increasingly important role in contemporary software development. II. Object oriented concepts and techniques History The concept of objects and instances in computing had its first major breakthrough with the PDP-1 system at MIT which was probably the earliest example of capability based architecture. Another early example was Sketchpad created by Ivan Sutherland in 1963; however, this was an application and not a programming paradigm. Objects as programming entities were introduced in the 1960s in Simula 67, a programming language designed for performing simulations, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo. (They were working on ship simulations, and were confounded by the combinatorial explosion of how the different attributes from different ships could affect one another. The idea occurred to them of grouping the different types of ships into different classes of objects; each class of objects being responsible for defining its own data and behavior.) Such an approach was a simple extrapolation of concepts earlier used in analog programming. On ana log computers, mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called simulation. Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions. The ideas of Simula 67 influenced many later languages, especially Smalltalk and derivatives of Lisp and Pascal. The Smalltalk language, which was developed at Xerox PARC[2] (by Alan Kay and others) in the 1970s, introduced the term object-oriented programming to represent the pervasive use of objects and messages as the basis for computation. Smalltalk creators were influenced by the ideas introduced in Simula 67, but Smalltalk was designed to be a fully dynamic system in which classes could be created and modified dynamically rather than statically as in Simula 67. Smalltalk and with it OOP were introduced to a wider audience by the August 1981 issue of Byte magazine. In the 1970s, Kays Smalltalk work had influenced the Lisp community to incorporate object-based techniques which were introduced to developers via the Lisp machine. Experimentation with various extensions to Lisp (like LOOPS and Flavors introducing multiple inheritance and mixins), eventually led to the Common Lisp Object System (CLOS, a part of the first standardized object-oriented programming language, ANSI Common Lisp), which integrates functional programming and object-oriented programming and allows extension via a Meta-object protocol. In the 1980s, there were a few attempts to design processor architectures which included hardware support for objects in memory but these were not successful. Examples include the Intel iAPX 432 and the Linn Smart Rekursiv. Object-oriented programming developed as the dominant programming methodology during the mid-1990s, largely due to the influence of Visual FoxPro 3.0 or possibly C++. Its dominance was further enhanced by the rising popularity of graphical user interfaces, for which object-oriented programming seems to be well-suited. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective-C, an object-oriented, dynamic messaging extension to C based on Smalltalk. OOP toolkits also enhanced the popularity of event-driven programming (although this concept is not limited to OOP). Some feel that association with GUIs (real or perceived) was what propelled OOP into the programming mainstream. At ETH ZÃ ¼rich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such. The approach is unlike Smalltalk, and very unlike C++. Object-oriented features have been added to many existing languages during that time, including Ada, BASIC, Fortran, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code. More recently, a number of languages have emerged that are primarily object-oriented yet compatible with procedural methodology, such as Python and Ruby. Probably the most commercially important recent object-oriented languages are Visual Basic.NET (VB.NET) and C#, both designed for Microsofts .NET platform, and Java, developed by Sun Microsystems. VB.NET and C# both support cross-language inheritance, allowing classes defined in one language to subclass classes defined in the other language. Just as procedural programming led to refinements of techniques such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modeling languages (such as UML). The term OOPS, which refers to an object-oriented programming system, was common in early development of object-oriented programming. III. Fundamental concepts and features Class Defines the abstract characteristics of a thing (object), including the things characteristics (its attributes, fields or properties) and the things behaviors (the things it can do, or methods, operations or features). One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Dog would consist of traits shared by all dogs, such as breed and fur color (characteristics), and the ability to bark and sit (behaviors). Classes provide modularity and structure in an object-oriented computer program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Also, the code for a class should be relatively self-contained (generally using encapsulation). Collectively, the properties and methods defined by a class are called members. Object A pattern (exemplar) of a class. The class Dog defines all possible dogs by listing the characteristics and behaviors they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. Instance One can have an instance of a class; the instance is the actual object created at runtime. In programmer jargon, the Lassie object is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior thats defined in the objects class. More on Classes, Metaclasses, Parameterized Classes, and Exemplars There are two broad categories of objects: classes and instances. Users of object-oriented technology usually think of classes as containing the information necessary to create instances, i.e., the structure and capabilities of an instance is determined by its corresponding class. There are three commonly used (and different) views on the definition for class: A class is a pattern, template, or blueprint for a category of structurally identical items. The items created using the class are called instances. This is often referred to as the class as a `cookie cutter' view. As you might guess, the instances are the cookies. A class is a thing that consists of both a pattern and a mechanism for creating items based on that pattern. This is the class as an `instance factory' view; instances are the individual items that are manufactured (created) using the classs creation mechanism. A class is the set of all items created using a specific pattern. Said another way, the class is the set of all instances of that pattern. We should note that it is possible for an instance of a class to also be a class. A metaclass is a class whose instances themselves are classes. This means when we use the instance creation mechanism in a metaclass, the instance created will itself be a class. The instance creation mechanism of this class can, in turn, be used to create instances although these instances may or may not themselves be classes. A concept very similar to the metaclass is the parameterized class. A parameterized class is a template for a class wherein specific items have been identified as being required to create non-parameterized classes based on the template. In effect, a parameterized class can be viewed as a fill in the blanks version of a class. One cannot directly use the instance creation mechanism of a parameterized class. First, we must supply the required parameters, resulting in the creation of a non-parameterized class. Once we have a non-parameterized class, we can use its creation mechanisms to create instances. In this paper, we will use the term class to mean metaclass, parameterized class, or a class that is neither a metaclass nor a parameterized class. We will make a distinction only when it is necessary to do so. Further, we will occasionally refer to non-class instances. A non-class instance is an instance of a class, but is itself not a class. An instance of a metaclass, for example, would not be a non-class instance. In this paper, we will sometimes refer to instantiation. Instantiation has two common meanings: as a verb, instantiation is the process of creating an instance of a class, and as a noun, an instantiation is an instance of a class. Some people restrict the use of the term object to instances of classes. For these people, classes are not objects. However, when these people are confronted with the concepts of metaclasses and parameterized classes, they have a difficulty attempting to resolve the problems these concepts introduce. For example, is a class that is an instance of a metaclass an object even though it is itself a class? In this paper, we will use the term object to refer to both classes and their instances. We will only distinguish between the two when needed. Black Boxes and Interfaces Objects are black boxes. Specifically, the underlying implementations of objects are hidden from those that use the object. In object-oriented systems, it is only the producer (creator, designer, or builder) of an object that knows the details about the internal construction of that object. The consumers (users) of an object are denied knowledge of the inner workings of the object, and must deal with an object via one of its three distinct interfaces: The public interface. This is the interface that is open (visible) to everybody. The inheritance interface. This is the interface that is accessible only by direct specializations of the object. (We will discuss inheritance and specialization later in this chapter.) In class-based object-oriented systems, only classes can provide an inheritance interface. The parameter interface. In the case of parameterized classes, the parameter interface defines the parameters that must be supplied to create an instance of the parameterized class. Another way of saying that an item is in the public interface of an object is to say that the object exports that item. Similarly, when an object requires information from outside of itself (e.g., as with the parameters in a parameterized class), we can say that the object needs to import that information. Aggregation It is, of course, possible for objects to be composed of other objects. Aggregation is either: The process of creating a new object from two or more other objects, or An object that is composed of two or more other objects. For example, a date object could be fashioned from a month object, a day object, and a year object. A list of names object, for example, can be thought of as containing many name objects. A monolithic object is an object that has no externally-discernible structure. Said another way, a monolithic object does not appear to have been constructed from two or more other objects. Specifically, a monolithic object can only be treated as a cohesive whole. Those outside of a monolithic object cannot directly interact with any (real or imagined) objects within the monolithic object. A radio button in a graphical user interface (GUI) is an example of a monolithic object. Composite objects are objects that have an externally-discernible structure, and the structure can be addressed via the public interface of the composite object. The objects that comprise a composite object are referred to as component objects. Composite objects meet one or both of the following criteria: The state of a composite object is directly affected by the presence or absence of one or more of its component objects, and/or The component objects can be directly referenced via the public interface of their corresponding composite object. It is useful to divide composite objects into two subcategories: heterogeneous composite objects and homogeneous composite objects: A heterogeneous composite object is a composite object that is conceptually composed of component objects that are not all conceptually the same. For example, a date (made up of a month object, a day object, and a year object) is a heterogeneous composite object. A homogeneous composite object is a composite object that is conceptually composed of component objects that are all conceptually the same. For example, a list of addresses is a homogeneous composite object. The rules for designing heterogeneous composite objects are different from the rules for designing homogeneous composite objects. Specialization and Inheritance Aggregation is not the only way in which two objects can be related. One object can be a specialization of another object. Specialization is either: The process of defining a new object based on a (typically) more narrow definition of an existing object, or An object that is directly related to, and more narrowly defined than, another object. Specialization is usually associated with classes. It is usually only in the so-called classless object-oriented systems that we think of specialization for objects other than classes. Depending on their technical background, there are a number of different ways in which people express specialization. For example, those who are familiar with an object-oriented programming language called Smalltalk refer to specializations as subclasses and to the corresponding generalizations of these specializations as superclasses. Those with a background in the C++ programming language use the term derived class for specialization and base class for corresponding generalizations. It is common to say that everything that is true for a generalization is also true for its corresponding specialization. We can, for example, define checking accounts and savings accounts as specializations of bank accounts. Another way of saying this is that a checking account is a kind of bank account, and a savings account is a kind of bank account. Still another way of expressing this idea is to say that everything that was true for the bank account is also true for the savings account and the checking account. In an object-oriented context, we speak of specializations as inheriting characteristics from their corresponding generalizations. Inheritance can be defined as the process whereby one object acquires (gets, receives) characteristics from one or more other objects. Some object-oriented systems permit only single inheritance, a situation in which a specialization may only acquire characteristics from a single generalization. Many object-oriented systems, however, allow for multiple inheritance, a situation in which a specialization may acquire characteristics from two or more corresponding generalizations. Our previous discussion of the bank account, checking account, and savings account was an example of single inheritance. A telescope and a television set are both specializations of device that enables one to see things far away. A television set is also a kind of electronic device. You might say that a television set acquires characteristics from two different generalizations, device that enables one to see things far away and electronic device. Therefore, a television set is a product of multiple inheritance. Abstract Classes We usually think of classes as being complete definitions. However, there are situations where incomplete definitions are useful, and classes that represent these incomplete definitions are equally useful. For example, in everyday conversation, we might talk about such items as bank accounts, insurance policies, and houses. In object-oriented thinking, we often isolate useful, but incomplete, concepts such as these into their own special classes. Abstract classes are classes that embody coherent and cohesive, but incomplete, concepts, and in turn, make these characteristics available to their specializations via inheritance. People sometimes use the terms partial type and abstract superclass as synonyms for abstract class. While we would never create instances of abstract classes, we most certainly would make their individual characteristics available to more specialized classes via inheritance. For example, consider the concept of an automobile. On one hand, most people know what an automobile is. On the other hand, automobile is not a complete definition for any vehicle. It would be quite accurate to describe automobile as the set of characteristics that make a thing an automobile, in other words, the essence of automobile-ness. Operations The public interface of an object typically contains three different categories of items: operations (sometimes referred to as method selectors, method interfaces, messages, or methods), constants, and exceptions. An operation in the public interface of an object advertises a functional capability of that object. For example, deposit would be an operation in the public interface of a bank account object, what is current temperature would be an operation in the public interface of a temperature sensor object, and increment would be an operation in the public interface of a counter object. The actual algorithm for accomplishing an operation is referred to as a method. Unlike operations, methods are not in the public interface for an object. Rather, methods are hidden on the inside of an object. So, while users of bank account objects would know that they could make a deposit into a bank account, they would be unaware of the details as to how that deposit actually got credited to the bank account. We refer to the operations in the public interface of an object as suffered operations. Suffered operations are operations that meet two criteria: they are things that happen to an object, and they are in the public interface of that object. For example, we can say that a bank account suffers the operation of having a deposit made into it. The bank account can also suffer the operation of being queried as to its current balance. Some people also refer to suffered operations as exported operations. There are three broad categories of suffered operations, i.e.: A selector is an operation that tells us something about the state of an object, but cannot, by definition, change the state of the object. An operation that tells us the current balance of a bank account is an example of a selector operation. A constructor is an operation that has the ability to change the state of an object. For example, an operation in the public interface to a mailbox object that added a message to the mailbox would be a constructor operation. (Please note that some people restrict the definition of the term constructor to those operations that cause instances of a class to come into existence.) In the context of a homogeneous composite object, an iterator is an operation that allows its users to visit (access) each of the component objects that make up the homogeneous composite object. If we have a list of addresses, for example, and we wish to print the entire list, an iterator would allow us to visit each address object within the list and then, in turn, to print each address. Iterators can be further divided into two broad categories: active (open) iterators and passive (closed) iterators. Active iterators are objects in their own right. Passive iterators are implemented as operations in the interface of the object over which they allow iteration. Passive iterators are further broken down into selective iterators and constructive iterators. Passive selective iterators do not allow their users to change the object over which the iteration takes place. Passive constructive iterators do allow users to change the object over which iteration takes place. We can also describe suffered operations as primitive or composite. A primitive operation is an operation that cannot be accomplished simply, efficiently, and reliably without direct knowledge of the underlying (hidden) implementation of the object. As an example, we could argue that an operation that added an item to a list object, or an operation that deleted an item from a list object were primitive operations with respect to the list object. Suppose that we wanted to create a swap operation, an operation that would swap in a new item in a list, while at the same time swapping out an old item in the same list. This is not a primitive operation since we can accomplish this with a simple combination of the delete operation (deleting the old item) followed by the add operation (adding the new item). The swap operation is an example of a composite operation. A composite operation is any operation that is composed, or can be composed, of two or more primitive operations. Sometimes objects need help in maintaining their characteristics. Suppose, for example, that we wanted to create a generic ordered list object. An ordered list is a list that must order its contents from the smallest to the largest. Specifically, every time we add an item to our ordered list, that item would have to be placed in its proper position with respect to all the other items already in the list. By generic, we mean a template that can be instantiated with the category (class) of items we wish to place in the ordered list. It would not be unreasonable to implement this object as a parameterized class. Obviously, one of the parameters would be the category of items (e.g., class) that we desired to place in the list. For example, could instantiate (make an instance) the generic ordered list with a name class resulting in the creation of an ordered list of names class. There is a problem, however. Given that we could instantiate the generic ordered list with just about any category of items, how can we be sure that the ordered lists will know how to properly maintain order no matter what we use to instantiate the generic ordered list? Suppose, for example, that we wanted an ordered list of fazoomas. How could the generic list class tell if one fazooma was greater than or less than another fazooma? A solution would be for the generic ordered list to require a second parameter, a parameter over and above the category of items (class) that we desired to place in the list. This second parameter would be a The Constants In addition to suffered operations, the public interface of an object can also contain constants. Constants are objects of constant state. Imagine that we want to create a bounded list of addresses class. A bounded list is a list that has a fixed maximum number of elements. A bounded list can be empty, and it can contain fewer than the maximum number of elements. It can even contain the maximum number of elements, but it can never contain more than the defined maximum number of elements. Assume that we place a constant in the public interface of our bounded list of addresses. This constant represents the maximum number of elements that can be placed in the bounded list. Assume also that there is a suffered operation that will tell us how many elements (addresses, in our example) are currently in the bounded list. We can now determine how much room is available in the bounded list by inquiring how many addresses are already in the list, and then subtracting this from the previously-defined constant. In some cases, as with the bounded list example above, constants are provided more for convenience than necessity. In other cases, such as in the case of encryption algorithms needing a seed value, constants are an absolute requirement. Exceptions A third category of items that can be found in the public interface of objects is exceptions. Exceptions have two different definitions: an event that causes suspension of normal application execution, and a set of information directly relating to the event that caused suspension of normal application execution. Exceptions can be contrasted with an older, less reliable technology: error codes. The idea behind error codes was fairly simple. You would request that an application, or part of an application, accomplish some work. One of the pieces of information that would be returned to the requester would be an error code. If all had gone well, the error code would typically have a value of zero. If any problems had occurred, the error code would have a non-zero value. It was also quite common to associate different non-zero values of an error code with specific errors. Error codes suffered from two major problems: No one was forced to actually check the value of returned error codes. Changes (additions, deletions, and modifications) in the meanings of the special values assigned to error codes were not automatically passed on to interested parties. Tracking the effects of a changed error code value often consumed a significant amount of resources. To understand how exceptions directly address both of these issues, we first need to understand how exceptions typically work: Exceptions may be defined by the environment or by the user. When an exceptional (but not unforeseen) condition occurs, an appropriate exception is activated. (People use different terms to express the activation of an exception. The most common is raise. Less commonly, people use the terms throw or activate.) This activation may be automatic (controlled by the environment) or may be expressly requested by the designer of the object or application. Examples of exceptional conditions include trying to remove something from an empty container, directing an elevator on the top floor to go up, and attempting to cause a date to take on an invalid value like February 31, 1993. Once the exception is activated, normal application execution stops and control is transferred to a locally defined exception handler, if one is present. If no locally defined exception handler is present or if the exception handler is not equipped to handle the exception, the exception is propagated to the next higher level of the application. Exceptions cannot be ignored. An exception will continue to be sent to higher levels of the application until it is either turned off or the application ceases to function. An exception handler checks to see what type of exception has been activated. If the exception is one that the handler recognizes, a specific set of actions is taken. Executing a set of actions in response to an exception is known as handling the exception. Handling an exception deactivates the exception; the exception will not be propagated any further. Unlike error codes, exceptions cannot be ignored. Once an exception has been activated, it demands attention. In object-oriented systems, exceptions are placed in the public interfaces of objects. Changes in the public interfaces of objects very often require an automatic rechecking of all other objects that invoke operations in the changed objects. Thus, changes in exceptions result in at least a partially automated propagation of change information. Object Coupling and Object Cohesion Engineers have known for centuries that the less any one part of a system knows about any other part of that same system, the better the overall system. Systems whose components are highly independent of each other are easier to fix and enhance than systems where there are strong interdependencies among some or all of the components. Highly independent system components are possible when there is minimal coupling among the components, and each component is highly cohesive. Coupling is a measure of the strength of the connection between any two system components. The more any one component knows about another component, the tighter (worse) the coupling is between those two components. Cohesion is a measure of how logically related the parts of an individual component are to each o Concepts of Object Oriented Techniques with OO Issues Concepts of Object Oriented Techniques with OO Issues Abstract Object-oriented frameworks offer reuse at a high design level promising several benefits to the development of complex systems. This paper sought to 1) define the concepts of object oriented techniques in addition with the OO issues, development techniques and concepts of object oriented programming, it is also introduced the UML as an ordinary and key tool for object-oriented design, additionally 2) we look further into the frameworks from the perspective of object-oriented techniques. In this section, it is aimed to define a reasonable promise between object oriented technology and frameworks. At the end, some future horizons for object oriented technology and frameworks are presented. I. Introduction Computing power and network bandwidth have increased dramatically over the past decade. However, the design and implementation of complex software remains expensive and error-prone. Much of the cost and effort stems from the continuous re-discovery and re-invention of core concepts and components across the software industry. In particular, the growing heterogeneity of hardware architectures and diversity of operating system and communication platforms makes it hard to build correct, portable, efficient, and inexpensive applications from scratch. Object-oriented (OO) techniques and frameworks are promising technologies for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. A framework is a reusable, semi-complete application that can be specialized to produce custom applications [19]. In contrast to earlier OO reuse techniques based on class libraries, frameworks are targeted for particular business units (such as dat a processing or cellular communications[1]) and application domains (such as user interfaces or real-time avionics). Frameworks like MacApp, ET++, Interviews, ACE, Microsofts MFC and DCOM, JavaSofts RMI, and implementations of OMGs CORBA play an increasingly important role in contemporary software development. II. Object oriented concepts and techniques History The concept of objects and instances in computing had its first major breakthrough with the PDP-1 system at MIT which was probably the earliest example of capability based architecture. Another early example was Sketchpad created by Ivan Sutherland in 1963; however, this was an application and not a programming paradigm. Objects as programming entities were introduced in the 1960s in Simula 67, a programming language designed for performing simulations, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo. (They were working on ship simulations, and were confounded by the combinatorial explosion of how the different attributes from different ships could affect one another. The idea occurred to them of grouping the different types of ships into different classes of objects; each class of objects being responsible for defining its own data and behavior.) Such an approach was a simple extrapolation of concepts earlier used in analog programming. On ana log computers, mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called simulation. Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions. The ideas of Simula 67 influenced many later languages, especially Smalltalk and derivatives of Lisp and Pascal. The Smalltalk language, which was developed at Xerox PARC[2] (by Alan Kay and others) in the 1970s, introduced the term object-oriented programming to represent the pervasive use of objects and messages as the basis for computation. Smalltalk creators were influenced by the ideas introduced in Simula 67, but Smalltalk was designed to be a fully dynamic system in which classes could be created and modified dynamically rather than statically as in Simula 67. Smalltalk and with it OOP were introduced to a wider audience by the August 1981 issue of Byte magazine. In the 1970s, Kays Smalltalk work had influenced the Lisp community to incorporate object-based techniques which were introduced to developers via the Lisp machine. Experimentation with various extensions to Lisp (like LOOPS and Flavors introducing multiple inheritance and mixins), eventually led to the Common Lisp Object System (CLOS, a part of the first standardized object-oriented programming language, ANSI Common Lisp), which integrates functional programming and object-oriented programming and allows extension via a Meta-object protocol. In the 1980s, there were a few attempts to design processor architectures which included hardware support for objects in memory but these were not successful. Examples include the Intel iAPX 432 and the Linn Smart Rekursiv. Object-oriented programming developed as the dominant programming methodology during the mid-1990s, largely due to the influence of Visual FoxPro 3.0 or possibly C++. Its dominance was further enhanced by the rising popularity of graphical user interfaces, for which object-oriented programming seems to be well-suited. An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective-C, an object-oriented, dynamic messaging extension to C based on Smalltalk. OOP toolkits also enhanced the popularity of event-driven programming (although this concept is not limited to OOP). Some feel that association with GUIs (real or perceived) was what propelled OOP into the programming mainstream. At ETH ZÃ ¼rich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such. The approach is unlike Smalltalk, and very unlike C++. Object-oriented features have been added to many existing languages during that time, including Ada, BASIC, Fortran, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code. More recently, a number of languages have emerged that are primarily object-oriented yet compatible with procedural methodology, such as Python and Ruby. Probably the most commercially important recent object-oriented languages are Visual Basic.NET (VB.NET) and C#, both designed for Microsofts .NET platform, and Java, developed by Sun Microsystems. VB.NET and C# both support cross-language inheritance, allowing classes defined in one language to subclass classes defined in the other language. Just as procedural programming led to refinements of techniques such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modeling languages (such as UML). The term OOPS, which refers to an object-oriented programming system, was common in early development of object-oriented programming. III. Fundamental concepts and features Class Defines the abstract characteristics of a thing (object), including the things characteristics (its attributes, fields or properties) and the things behaviors (the things it can do, or methods, operations or features). One might say that a class is a blueprint or factory that describes the nature of something. For example, the class Dog would consist of traits shared by all dogs, such as breed and fur color (characteristics), and the ability to bark and sit (behaviors). Classes provide modularity and structure in an object-oriented computer program. A class should typically be recognizable to a non-programmer familiar with the problem domain, meaning that the characteristics of the class should make sense in context. Also, the code for a class should be relatively self-contained (generally using encapsulation). Collectively, the properties and methods defined by a class are called members. Object A pattern (exemplar) of a class. The class Dog defines all possible dogs by listing the characteristics and behaviors they can have; the object Lassie is one particular dog, with particular versions of the characteristics. A Dog has fur; Lassie has brown-and-white fur. Instance One can have an instance of a class; the instance is the actual object created at runtime. In programmer jargon, the Lassie object is an instance of the Dog class. The set of values of the attributes of a particular object is called its state. The object consists of state and the behavior thats defined in the objects class. More on Classes, Metaclasses, Parameterized Classes, and Exemplars There are two broad categories of objects: classes and instances. Users of object-oriented technology usually think of classes as containing the information necessary to create instances, i.e., the structure and capabilities of an instance is determined by its corresponding class. There are three commonly used (and different) views on the definition for class: A class is a pattern, template, or blueprint for a category of structurally identical items. The items created using the class are called instances. This is often referred to as the class as a `cookie cutter' view. As you might guess, the instances are the cookies. A class is a thing that consists of both a pattern and a mechanism for creating items based on that pattern. This is the class as an `instance factory' view; instances are the individual items that are manufactured (created) using the classs creation mechanism. A class is the set of all items created using a specific pattern. Said another way, the class is the set of all instances of that pattern. We should note that it is possible for an instance of a class to also be a class. A metaclass is a class whose instances themselves are classes. This means when we use the instance creation mechanism in a metaclass, the instance created will itself be a class. The instance creation mechanism of this class can, in turn, be used to create instances although these instances may or may not themselves be classes. A concept very similar to the metaclass is the parameterized class. A parameterized class is a template for a class wherein specific items have been identified as being required to create non-parameterized classes based on the template. In effect, a parameterized class can be viewed as a fill in the blanks version of a class. One cannot directly use the instance creation mechanism of a parameterized class. First, we must supply the required parameters, resulting in the creation of a non-parameterized class. Once we have a non-parameterized class, we can use its creation mechanisms to create instances. In this paper, we will use the term class to mean metaclass, parameterized class, or a class that is neither a metaclass nor a parameterized class. We will make a distinction only when it is necessary to do so. Further, we will occasionally refer to non-class instances. A non-class instance is an instance of a class, but is itself not a class. An instance of a metaclass, for example, would not be a non-class instance. In this paper, we will sometimes refer to instantiation. Instantiation has two common meanings: as a verb, instantiation is the process of creating an instance of a class, and as a noun, an instantiation is an instance of a class. Some people restrict the use of the term object to instances of classes. For these people, classes are not objects. However, when these people are confronted with the concepts of metaclasses and parameterized classes, they have a difficulty attempting to resolve the problems these concepts introduce. For example, is a class that is an instance of a metaclass an object even though it is itself a class? In this paper, we will use the term object to refer to both classes and their instances. We will only distinguish between the two when needed. Black Boxes and Interfaces Objects are black boxes. Specifically, the underlying implementations of objects are hidden from those that use the object. In object-oriented systems, it is only the producer (creator, designer, or builder) of an object that knows the details about the internal construction of that object. The consumers (users) of an object are denied knowledge of the inner workings of the object, and must deal with an object via one of its three distinct interfaces: The public interface. This is the interface that is open (visible) to everybody. The inheritance interface. This is the interface that is accessible only by direct specializations of the object. (We will discuss inheritance and specialization later in this chapter.) In class-based object-oriented systems, only classes can provide an inheritance interface. The parameter interface. In the case of parameterized classes, the parameter interface defines the parameters that must be supplied to create an instance of the parameterized class. Another way of saying that an item is in the public interface of an object is to say that the object exports that item. Similarly, when an object requires information from outside of itself (e.g., as with the parameters in a parameterized class), we can say that the object needs to import that information. Aggregation It is, of course, possible for objects to be composed of other objects. Aggregation is either: The process of creating a new object from two or more other objects, or An object that is composed of two or more other objects. For example, a date object could be fashioned from a month object, a day object, and a year object. A list of names object, for example, can be thought of as containing many name objects. A monolithic object is an object that has no externally-discernible structure. Said another way, a monolithic object does not appear to have been constructed from two or more other objects. Specifically, a monolithic object can only be treated as a cohesive whole. Those outside of a monolithic object cannot directly interact with any (real or imagined) objects within the monolithic object. A radio button in a graphical user interface (GUI) is an example of a monolithic object. Composite objects are objects that have an externally-discernible structure, and the structure can be addressed via the public interface of the composite object. The objects that comprise a composite object are referred to as component objects. Composite objects meet one or both of the following criteria: The state of a composite object is directly affected by the presence or absence of one or more of its component objects, and/or The component objects can be directly referenced via the public interface of their corresponding composite object. It is useful to divide composite objects into two subcategories: heterogeneous composite objects and homogeneous composite objects: A heterogeneous composite object is a composite object that is conceptually composed of component objects that are not all conceptually the same. For example, a date (made up of a month object, a day object, and a year object) is a heterogeneous composite object. A homogeneous composite object is a composite object that is conceptually composed of component objects that are all conceptually the same. For example, a list of addresses is a homogeneous composite object. The rules for designing heterogeneous composite objects are different from the rules for designing homogeneous composite objects. Specialization and Inheritance Aggregation is not the only way in which two objects can be related. One object can be a specialization of another object. Specialization is either: The process of defining a new object based on a (typically) more narrow definition of an existing object, or An object that is directly related to, and more narrowly defined than, another object. Specialization is usually associated with classes. It is usually only in the so-called classless object-oriented systems that we think of specialization for objects other than classes. Depending on their technical background, there are a number of different ways in which people express specialization. For example, those who are familiar with an object-oriented programming language called Smalltalk refer to specializations as subclasses and to the corresponding generalizations of these specializations as superclasses. Those with a background in the C++ programming language use the term derived class for specialization and base class for corresponding generalizations. It is common to say that everything that is true for a generalization is also true for its corresponding specialization. We can, for example, define checking accounts and savings accounts as specializations of bank accounts. Another way of saying this is that a checking account is a kind of bank account, and a savings account is a kind of bank account. Still another way of expressing this idea is to say that everything that was true for the bank account is also true for the savings account and the checking account. In an object-oriented context, we speak of specializations as inheriting characteristics from their corresponding generalizations. Inheritance can be defined as the process whereby one object acquires (gets, receives) characteristics from one or more other objects. Some object-oriented systems permit only single inheritance, a situation in which a specialization may only acquire characteristics from a single generalization. Many object-oriented systems, however, allow for multiple inheritance, a situation in which a specialization may acquire characteristics from two or more corresponding generalizations. Our previous discussion of the bank account, checking account, and savings account was an example of single inheritance. A telescope and a television set are both specializations of device that enables one to see things far away. A television set is also a kind of electronic device. You might say that a television set acquires characteristics from two different generalizations, device that enables one to see things far away and electronic device. Therefore, a television set is a product of multiple inheritance. Abstract Classes We usually think of classes as being complete definitions. However, there are situations where incomplete definitions are useful, and classes that represent these incomplete definitions are equally useful. For example, in everyday conversation, we might talk about such items as bank accounts, insurance policies, and houses. In object-oriented thinking, we often isolate useful, but incomplete, concepts such as these into their own special classes. Abstract classes are classes that embody coherent and cohesive, but incomplete, concepts, and in turn, make these characteristics available to their specializations via inheritance. People sometimes use the terms partial type and abstract superclass as synonyms for abstract class. While we would never create instances of abstract classes, we most certainly would make their individual characteristics available to more specialized classes via inheritance. For example, consider the concept of an automobile. On one hand, most people know what an automobile is. On the other hand, automobile is not a complete definition for any vehicle. It would be quite accurate to describe automobile as the set of characteristics that make a thing an automobile, in other words, the essence of automobile-ness. Operations The public interface of an object typically contains three different categories of items: operations (sometimes referred to as method selectors, method interfaces, messages, or methods), constants, and exceptions. An operation in the public interface of an object advertises a functional capability of that object. For example, deposit would be an operation in the public interface of a bank account object, what is current temperature would be an operation in the public interface of a temperature sensor object, and increment would be an operation in the public interface of a counter object. The actual algorithm for accomplishing an operation is referred to as a method. Unlike operations, methods are not in the public interface for an object. Rather, methods are hidden on the inside of an object. So, while users of bank account objects would know that they could make a deposit into a bank account, they would be unaware of the details as to how that deposit actually got credited to the bank account. We refer to the operations in the public interface of an object as suffered operations. Suffered operations are operations that meet two criteria: they are things that happen to an object, and they are in the public interface of that object. For example, we can say that a bank account suffers the operation of having a deposit made into it. The bank account can also suffer the operation of being queried as to its current balance. Some people also refer to suffered operations as exported operations. There are three broad categories of suffered operations, i.e.: A selector is an operation that tells us something about the state of an object, but cannot, by definition, change the state of the object. An operation that tells us the current balance of a bank account is an example of a selector operation. A constructor is an operation that has the ability to change the state of an object. For example, an operation in the public interface to a mailbox object that added a message to the mailbox would be a constructor operation. (Please note that some people restrict the definition of the term constructor to those operations that cause instances of a class to come into existence.) In the context of a homogeneous composite object, an iterator is an operation that allows its users to visit (access) each of the component objects that make up the homogeneous composite object. If we have a list of addresses, for example, and we wish to print the entire list, an iterator would allow us to visit each address object within the list and then, in turn, to print each address. Iterators can be further divided into two broad categories: active (open) iterators and passive (closed) iterators. Active iterators are objects in their own right. Passive iterators are implemented as operations in the interface of the object over which they allow iteration. Passive iterators are further broken down into selective iterators and constructive iterators. Passive selective iterators do not allow their users to change the object over which the iteration takes place. Passive constructive iterators do allow users to change the object over which iteration takes place. We can also describe suffered operations as primitive or composite. A primitive operation is an operation that cannot be accomplished simply, efficiently, and reliably without direct knowledge of the underlying (hidden) implementation of the object. As an example, we could argue that an operation that added an item to a list object, or an operation that deleted an item from a list object were primitive operations with respect to the list object. Suppose that we wanted to create a swap operation, an operation that would swap in a new item in a list, while at the same time swapping out an old item in the same list. This is not a primitive operation since we can accomplish this with a simple combination of the delete operation (deleting the old item) followed by the add operation (adding the new item). The swap operation is an example of a composite operation. A composite operation is any operation that is composed, or can be composed, of two or more primitive operations. Sometimes objects need help in maintaining their characteristics. Suppose, for example, that we wanted to create a generic ordered list object. An ordered list is a list that must order its contents from the smallest to the largest. Specifically, every time we add an item to our ordered list, that item would have to be placed in its proper position with respect to all the other items already in the list. By generic, we mean a template that can be instantiated with the category (class) of items we wish to place in the ordered list. It would not be unreasonable to implement this object as a parameterized class. Obviously, one of the parameters would be the category of items (e.g., class) that we desired to place in the list. For example, could instantiate (make an instance) the generic ordered list with a name class resulting in the creation of an ordered list of names class. There is a problem, however. Given that we could instantiate the generic ordered list with just about any category of items, how can we be sure that the ordered lists will know how to properly maintain order no matter what we use to instantiate the generic ordered list? Suppose, for example, that we wanted an ordered list of fazoomas. How could the generic list class tell if one fazooma was greater than or less than another fazooma? A solution would be for the generic ordered list to require a second parameter, a parameter over and above the category of items (class) that we desired to place in the list. This second parameter would be a The Constants In addition to suffered operations, the public interface of an object can also contain constants. Constants are objects of constant state. Imagine that we want to create a bounded list of addresses class. A bounded list is a list that has a fixed maximum number of elements. A bounded list can be empty, and it can contain fewer than the maximum number of elements. It can even contain the maximum number of elements, but it can never contain more than the defined maximum number of elements. Assume that we place a constant in the public interface of our bounded list of addresses. This constant represents the maximum number of elements that can be placed in the bounded list. Assume also that there is a suffered operation that will tell us how many elements (addresses, in our example) are currently in the bounded list. We can now determine how much room is available in the bounded list by inquiring how many addresses are already in the list, and then subtracting this from the previously-defined constant. In some cases, as with the bounded list example above, constants are provided more for convenience than necessity. In other cases, such as in the case of encryption algorithms needing a seed value, constants are an absolute requirement. Exceptions A third category of items that can be found in the public interface of objects is exceptions. Exceptions have two different definitions: an event that causes suspension of normal application execution, and a set of information directly relating to the event that caused suspension of normal application execution. Exceptions can be contrasted with an older, less reliable technology: error codes. The idea behind error codes was fairly simple. You would request that an application, or part of an application, accomplish some work. One of the pieces of information that would be returned to the requester would be an error code. If all had gone well, the error code would typically have a value of zero. If any problems had occurred, the error code would have a non-zero value. It was also quite common to associate different non-zero values of an error code with specific errors. Error codes suffered from two major problems: No one was forced to actually check the value of returned error codes. Changes (additions, deletions, and modifications) in the meanings of the special values assigned to error codes were not automatically passed on to interested parties. Tracking the effects of a changed error code value often consumed a significant amount of resources. To understand how exceptions directly address both of these issues, we first need to understand how exceptions typically work: Exceptions may be defined by the environment or by the user. When an exceptional (but not unforeseen) condition occurs, an appropriate exception is activated. (People use different terms to express the activation of an exception. The most common is raise. Less commonly, people use the terms throw or activate.) This activation may be automatic (controlled by the environment) or may be expressly requested by the designer of the object or application. Examples of exceptional conditions include trying to remove something from an empty container, directing an elevator on the top floor to go up, and attempting to cause a date to take on an invalid value like February 31, 1993. Once the exception is activated, normal application execution stops and control is transferred to a locally defined exception handler, if one is present. If no locally defined exception handler is present or if the exception handler is not equipped to handle the exception, the exception is propagated to the next higher level of the application. Exceptions cannot be ignored. An exception will continue to be sent to higher levels of the application until it is either turned off or the application ceases to function. An exception handler checks to see what type of exception has been activated. If the exception is one that the handler recognizes, a specific set of actions is taken. Executing a set of actions in response to an exception is known as handling the exception. Handling an exception deactivates the exception; the exception will not be propagated any further. Unlike error codes, exceptions cannot be ignored. Once an exception has been activated, it demands attention. In object-oriented systems, exceptions are placed in the public interfaces of objects. Changes in the public interfaces of objects very often require an automatic rechecking of all other objects that invoke operations in the changed objects. Thus, changes in exceptions result in at least a partially automated propagation of change information. Object Coupling and Object Cohesion Engineers have known for centuries that the less any one part of a system knows about any other part of that same system, the better the overall system. Systems whose components are highly independent of each other are easier to fix and enhance than systems where there are strong interdependencies among some or all of the components. Highly independent system components are possible when there is minimal coupling among the components, and each component is highly cohesive. Coupling is a measure of the strength of the connection between any two system components. The more any one component knows about another component, the tighter (worse) the coupling is between those two components. Cohesion is a measure of how logically related the parts of an individual component are to each o

Saturday, January 18, 2020

Preventing Central Line Blood Infections Health And Social Care Essay

National Patient Safety Goals ( NPSG ) were introduced in 2002 in order to assist turn to some of the issues that were responsible for doing a bulk of the state of affairss that were responsible for making patient safety issues. These ends were implemented in order to set concentrate on what were deemed to be the most preventable of these issues. One of these ends is the bar of cardinal line-associated blood watercourse infections ( Lyles, Fanikos, & A ; Jewell, 2009 ) .Literature ReviewCentral venous catheters ( CVC ) are indispensable in the attention of critically sick patients. While widely utilized the usage of CVC is non without hazard. Catheter-associated blood stream infections ( CA-BSI ) are common healthcare-associated infections in intensive attention unit ( ICU ) patients and have been estimated to happen in 3 % -7 % of all patients with CVC ( Warren, et al. , 2006 ) . It is good documented that intravascular catheter related complications are associated with widening hos pital length of stay, increasing direct costs and increasing ICU mortality. Clinicians insert about 7 million cardinal venous entree devices ( CVAD ) yearly in the United States, and of these, 1 in 20 is associated with a CA-BSI, despite the usage of the best available sterile techniques during catheter interpolation and care. Overall, an estimated 250,000 CVAD-related CA-BSI occur yearly, with an attributed mortality of 12.5 % to 25 % per happening. The national cost of handling CA-BSI peers $ 25,000 per infection, severally, or $ 296 million to $ 2.3 billion in entire. While the figure of CA-BSI has remained comparatively steady, vascular entree device usage has drastically increased, particularly in nonhospital scenes ( Rosenthal, 2006 ) . A huge sum of research is directed toward cut downing these complications in an attempt to better patient outcomes. A reappraisal of the literature provides an overview of current recommendations refering intravascular catheter attention and research sing the usage of instruction plans to advance recommended pattern. The Centers for Disease Control and Prevention ( CDC ) published the Guidelines for the Prevention of Intravascular Catheter-Related Infections in 2002, which is the benchmark for all intravascular catheter attention recommendations. The guidelines for CVC suggest the replacing of dressings every 7 yearss or when soiled or loosened, endovenous tube alterations every 72 hours, and the replacing of tubing used to administrate blood merchandises and lipid emulsions within 24 hours of extract induction ( East & A ; Jacoby, 2005 ) . Harmonizing to the CDC, about 53 % of grownup patients in intensive attention units have a cardinal venous catheter on any given twenty-four hours ( Rupp, et al. , 2005 ) . Skin cleaning of the interpolation site is regarded as one of the most of import steps for forestalling catheter-related infection. Historically, povidone-iodine is an antiseptic that has been used during the interpolation and care of the intravascular devices. It works by perforating the cell wall of the micro-organism. More late, chlorhexidine has been studied and found to be more effectual as a skin antiseptic to forestall catheter-related infection. It works in less clip, retains its antibacterial consequence against vegetation thirster, is non inactivated by the presence of blood or human protein, and causes minimum skin annoyance. Chlorhexidine works by interrupting the microbial cell wall. It is active against many Gram-positive and to a somewhat lesser degree Gram-negative bacteria ( Astle & A ; Jensen, 2005 ) . A multistep procedure is recommended to forestall CA-BSI that includes: educating staff, utilizing maximum barrier safeguards ( e.g. a unfertile gown and baseball mitts, mask, cap, and big unfertile curtain ) , executing infection surveillance, and replacing occlusive dressing every 7 yearss or when needed ( Buttes, Lattus, Stout, & A ; Thomas, 2006 ) . Other strongly recommended patterns include proper manus hygiene by all staff using the CVC and turning away of everyday catheter alterations. Catheters impregnated with antimicrobic agents are recommended when infection rates are high or when catheters will stay in topographic point for a considerable clip ( Krein, et al. , 2007 ) . Education of staff on the proper attention of CVC is paramount in cut downing the sum of CA-BSI. This is possibly one of the most cost-efficient methods of cut downing CA-BSI ( Ramritu, Halton, Cook, Whitby, & A ; Graves, 2007 ) .ExecutionA staff instruction plan was initiated for the nursing forces that chiefly deal with CVC. This instruction plan was aimed at developing the ICU and step-down unitaa‚Â ¬a„?s nursing staff proper attention and care of the CVC. Education focused on proper attention of the CVC, including when dressing alterations should be performed e.g. every 7 yearss or when the dressing is soiled. Nurses were besides trained in how to suitably help with CVC arrangement and the certification tool that infection control utilizes to measure attachment to interpolation guidelines. Posters were besides placed in the nurseaa‚Â ¬a„?s interruption and conference countries that had educational stuff related to proper attention of CVC. Documentation was besides placed in the physicianaa‚Â ¬a„?s lounges that bucked up use of maximum barrier safeguards during CVC interpolation. The installation that was observed presently utilizes a few different agencies of measuring with respects to CA-BSI. First, a checklist is utilised during CVC interpolation that evaluates attachment to interpolation guidelines by the staff. This checklist is sent to infection control and entered into a database which is correlated with patient informations sing CA-BSI. Second, in patients that are identified as holding a CA-BSI, after catheter remotion, laboratory microbiological surveies of the catheter, blood, and interpolation site swabs are performed to place causality of the infection.Execution Compared to Literature SuggestionsPractices that cut down the hazard of CA-BSI include the undermentioned: ( 1 ) usage of maximum barrier safeguards during CVC interpolation ( i.e. , a surgical mask, unfertile gown, unfertile baseball mitts, and big unfertile curtains ) , ( 2 ) arrangement of the catheter in the subclavian vena instead than the internal jugular or femoral vena, ( 3 ) alte ring catheters merely when necessary, and ( 4 ) altering dressings on CVC issue sites when they become nonocclusive, soiled, or bloody. These patterns have been incorporated into national guidelines. Presently, the Healthcare Infection Control Practices Advisory Committee ( HICPAC ) of the Centers for Disease Control and Prevention ( CDC ) recommends that infirmaries implement comprehensive educational plans that teach proper CVC interpolation and care techniques ( Warren, et al. , 2006 ) . These patterns are largely in line with what is implemented at the ascertained installation. One difference, which is non in line with these recommendations, is that the ascertained installation has a high figure of internal jugular interpolations compared with the figure of subclavian vena interpolations. When asked about this, many of the doctors stated that entree was easier to place utilizing ultrasound during interpolation and they preferred this method over subclavian interpolation.Recommen ded ChangesFirst, execution of an instruction plan for suppliers that is focused on infection control, particularly the recommendation of using the subclavian vena interpolation for CVC arrangement as a first pick in patients that have no contraindications to this arrangement. Second, securing the second-generation antiseptic catheter, coated with chlorhexidine and Ag sulfadiazine on the internal and external surfaces, to more efficaciously prevent microbic colonisation in patients that are identified as being at hazard. Decreased bacterial colonisation, a critical measure in the pathogenesis of catheter-associated infection, may correlate with bar of catheter-related bacteriemia ( Rupp, et al. , 2005 ) . Third, instruction and preparation demands to be expanded to any nurses that may be responsible for caring for a patient with a CVC. These countries include non-critical attention countries such as paediatric and medical floors. Larger Numberss of patients with CVC are now found in non-ICUs than in ICUs and that CA-BSI rates in those scenes are higher. Catheter types and interpolation sites vary greatly among scenes. For illustration, jugular and femoral interpolation sites are common in ICUs ; subclavian and peripheral sites are more common elsewhere. So schemes for cut downing CA-BSI must be tailored to the scene ( Hadaway, 2006 ) .

Friday, January 10, 2020

Proposal of Student Jnformation System

CHAPTER 1 INTRODUCTION Proposed Research Topic: Shortcoming of IFM Student Management System Meaning of Student information system Student information system is a software application for education establishments to manage student data. Also known as student information management system(SIMS),student record system(SRS), student management system(SMS). Objective of proposal: IFM’s students claim that student management system is very inconvenient to them as the end users of the system during day to day operations.Due to this fact, we will concentrate on enhancing the system functionalities that have proved to have weakness such as to enable the system to calculate GPA at the end of each semester and make the system reliable and available for student to view their results and fee payment. Background: The background of student information system starts from manual management of information like the result to be provided to the notes board where as the area of student to access t he result.This were difficult for the student to access the information due to increase number of student, and the system were moved to computerized that start with SARIS and now SIS but there are a sort of problem. Not only student but also management increased their performance due to shifting from manual operations to computerized operations. Therefore, this project shall be conducted in team work by four members in the IFM (The Institute Of Finance Management)premises which I located at city center opposite to national Museum.The first member is a team leader and he is specialized in projects management, the second member is specialized in research and data analysis, the rest two members are specialized in system development and maintenance process. Shortcoming of Student Management System IFM student management system has proved to have a several problems (shortcoming) regarding to the user who are students. The system seems to be very inconvenient to the users as it is viewed from its different functionalities as demonstrated below: Lack of relevance informationLack of relevance information such as in the module section, because it contains non-relevant subject for example for Bsc. IT module, Audit has been indicated as one of the subject to be selected during second year study where as it not part of subject to be selected or studied by IT student so it lead to confusion and inconvenience during selection of module. It also has poor organization of necessary information, module should be divided based on semester and not year.It should enable user to see the overview/content of each subject for example in case of† IS project† it should shoe the content of this subject so as student should get a picture of what is going to cover regarding to the subject, this will enable student to be aware when selecting an option subject. In case of GPA The system should calculate the students’ GPA at the end of each semester. This shall make student aware of his academic performance so helping him/her to make strategic plan on how to improve his/her performance and enhance seriousness of the student System reliabilityThe system is not reliable because when maintenance or updating information in one of its functionality negatively affect the other functionality for example during uploading of result, student may not even be able to access other functions such as fee payment, home as well as student profile despite the fact that only function that deal with result is maintained. Instead message that says †system is undergoing maintenance† appear and no any function can be accessed. Poor interfaceSystem interface should not require user to scroll down or up so as to access some information instead all information should be arranged in a manner that all features appear to fit to the screen width and height. In results and payment link Information are not integrity, this problem show that the data can be changed at any time when the system used or accessed, for example on result you can look the result on this time are not the same when you will check again it can be good result or bad result but that does not matter, it needed to get expected result.Also in payment link you can check the payment status on this time you are not debt but any time the status will show you are debt. In the student profile link The update of information to the student profile are not reliable, for example the timetable it can be better when a particular student check the timetable in his/her profile to avoid disturbance or any information are needed to be uploaded in student profile to show the accuracy of student to get new or particular information.Also there is problem when you editing information in your profile are not accuracy because you can edit and the system are not respond to make changes or sometime the changes are accepted. In the communication link In case of communication link there is no feedback/notif ication which can make you to know you request are sent or fail. For example you can send the email to the lecture, when you send the email have no notification which show you the email now is sent and there is no feedback from the lecturer to you, from example to tell you your request is on processed wait for a hour or a day.CHAPTER 2 LITERATURE REVIEW Literature review refers to the survey of important articles, books and other sources pertaining to your research topic. This review of the professional literature relevant to your research question will help to contextualize, or frame, your research. It will also give readers the necessary background to understand your research (Joffrey hoffer ). According to Student Management System of IFM we reviewed the whole system, the system tried to accomplish some of the need of the students and management but other task where not ell introduced. The system should be integrate means that the accuracy and consistency of stored data, indicate d by any absence of any alteration in data between two updates of data record (joffrey Hoffer). now the student management system of IFM not integrated due to the reason that the available information are not consistent. User friendly refers as application, equipment, facility, process, or system that is compatible with its intended user’s ability to use it easily and successfully (Balasubramanian,D 2001).According to IFM student management the system failed to maintain user friendly because there is a lot of scrolling in order for the user to see the other information which can reduce user intention. Feedback refers as the process in which the effect or output of an action is ‘returned’ (fed-back) to modify the next action. Feedback is essential to the working and survival of all regulatory mechanisms found living and non-living nature, and in man-made system such as education system (www. businessdictionary. com).In case of IFM student management system, the sy stem does not provide any information when the student provides the communication to the management. CHAPTER 3 METHODOLOGY According to the problem or shortcoming demonstrated above, there are various ways that can be followed to investigate the real solution to the above problems but for this case â€Å"Rapid Application Development† and Conduct a literature review are the best methodologies to be used to accomplish the proposed project due to the following reasons * Methodologies radically decrease design and implementation time. Close collaboration between users, analysts and managers. System Development Methodology is a standard process followed in an organization to conduct all the steps necessary to analyze, design, implement, and maintain information systems. We suggest using Rapid Application Development (RAD) Methodology RAD is a software development methodology, which involves iterative development and the construction of prototypes. It involves extensive user invol vement, prototyping, JAD sessions, integrated CASE tools, and code generators.Joint Application Design (JAD) is structured process involving users, analysts, and managers. Several-day intensive workgroup sessions. It uses customer involvement and group dynamics to accurately depict the user's view of the business need and to jointly develop a solution. REFERENCES * Modern system analysis and design sixth edition by Jeffrey A. Hoffer, Joey F. George, Joseph S. Valacich. * www. businessdictionary. com * IFM Student Management System * Computer installation and servicing Balasubramanian,D 2001

Thursday, January 2, 2020

The Star Made Knight - Original Writing - 1959 Words

Before he became the Star-Made-Knight, he was a boy with dreams of swords and armour. What little else he could remember was gradually fading. The body of that boy, now a man grown, was forged anew and now inhabited Pelinal. He was still that man with dimming memories of the life he d once lead, but he was also the Star-Made-Knight--a crusader from a period that had yet to pass. An Ada. And there was no place where that man ended and Pelinal began; they were one the same. Pelinal wasn t man; he wasn t god. He was something else--something with a name that had yet to be created perhaps. But he was a living embodiment of rage, wielding pure fury and ready to strike at any elf that was to be seen. The only thing he knew was hatred, no†¦show more content†¦It was when themselves and their companions ventured through the West Weald that Huna came across it. A particularly rare flower; only growing in that region. Bright blue, and it was as though it was glowing in the darkness, casting out all the shadows that gathered in their small tent. It s going to die, Pelinal accidently mumbled aloud. A habit of his, speaking out thoughts. Huna shifted his head to a more comfortable place on Pelinal s chest, which would indefinitely be covered with a tunic, or cuirass. There was no heart beneath, but a diamond-shaped cavity that pulsed with energy. Huna was unbeknownst to this; he couldn t know what Pelinal was--not yet. What is? The Alkanet flower? he d replied sleepily. Eh. All things die eventually. We just need to savour the time we have to appreciate them, I suppose. Pelinal felt tears swelling in his eyes, an emotion new to him still. It was all about death in his lives and death resided in his mind always. If the man he loved only knew the true degree of which his words came to, Pelinal wondered if Huna would ever have voiced them. Would he force ignorance of it upon himself, like Pelinal was doing? What a fool he was. What a damned fool. ~†¢Ã¢â‚¬ ¢Ã¢â‚¬ ¢~ We must talk. The girl had been ignoring Perrif for the past few days. Haaska, her name was, and Perrif wondered if she had yet embraced it. For it would mean the that girl wouldShow MoreRelatedThe On The Planet Of Tatooine1882 Words   |  8 PagesA long time ago, in a galaxy far, far away... on the planet of Tatooine – a desolate place seemingly made of solely sand, ruled not just by one sun but two – a young slave boy born to no father, spends his free time piecing together crafts from rusted junk to race in the lawless pod-races. Cursed with a name (at the time) of no significance, Anakin Skywalker is blind to the midi-chlorians racing through his veins and to the fact that he holds the greatest energy the force has ever seen. That is,Read MoreThe Problem With Science Fiction Movies Today1095 Words   |  5 PagesMovies Today â€Å"May The Force Be With You.† These are the words that made Star Wars a phenomenon and broke ground in science fiction movies. Science Fiction has been around for such a long time and a director puts a lot of passion with the material. Although there have been many great science fiction movies, there are many bombs, and that has been especially the case with recent ones. (NOTE: For this I’m mainly going to stick with original Sci-Fi not franchises) The major problem with science fictionRead MoreEssay on Aaliyah - Original Writing1652 Words   |  7 PagesAaliyah - Original Writing I dont think about my success. Im happy that the work Ive done in the past has been very successful. All I can do is leave it in Gods hands and hope my fans feel where Im coming from. I took the time to give my all. - Aaliyah Haughton. As I sit listening to the infectious, sensuous harmonies of Aaliyahs smooth R B, I wonder why it had to happen. Why did someone so young with such amazing talent, strength and the potential to carryRead More17 Essay1277 Words   |  6 Pagesthing to imagine or watch. Not to mention the scene where the protagonist is smoking a cigarette at night, looks to the woods in the distance, and then some guy runs out of the woods towards him at full sprint. Hell no. Split M. Night Shymalan has made a few good movies, but he really derailed in recent years. I love Avatar: The Last Airbender, but he managed to take that property, put it to film, and rub the dirt from all the earthbenders all over it. Thankfully, he went back to his roots and deliveredRead MoreEssay Favorite Instrument1474 Words   |  6 Pagesbeing made entirely of brass, the saxophone is considered a woodwind because it utilizes a reed to create its sound. It looks smooth and sexy, yet the sound is rich and strong. Although it is more commonly found in jazz, military and marching bands than in orchestras, it is occasionally found in some classical music. 1. History and Manufacturers: A. http://library.thinkquest.org. This website was wonderfully rich in information. On this website, it is revealed that the original saxophoneRead MoreSpeech : Speech Therapy 1776 Words   |  8 Pageslearned slower than the other kids at this time in life. Now instead of being the physically handicapped like before I couldn’t help, but feel mentally impaired to top it off. This in turn trapped me in â€Å"Speech Therapy†. A wretched place that was made to undermine students reducing their confidence and overwhelming their brains with childish talk. It took the whole year to be released of that horrid place. Now it was to be the third grade and I was determined step out of my comfort zone and getRead MoreIs Christopher Nolan A Modern Hollywood Auteur?1497 Words   |  6 Pagesby taking on several roles in the filmmaking process and by maintaining personnel consistency over time. Nolan notoriously not just directs his films but also frequently writes or co-writes his scripts. In fact, Nolan has h ad at least a part in writing each of his films with the exception of Insomnia. Nolan also frequently produces his own films – often in collaboration with his wife and/or brother. In addition, Nolan maintains the same technicians from film to film in order to preserve a cohesiveRead MoreBusiness Assignment : Advertising Industry2269 Words   |  10 Pagesbranded product in media, usually without explicit reference to the product. Most commonly, branded products are featured in movies, television shows and video games.† (Whatis.com, 2013). Product placement is not an uncommon thing nowadays since Ofcom made it legal in February 2011 for UK channels to include product placement as long as it sticks to Ofcom rules and guidelines. Product placement is used more now than we may realise, â€Å"ITV said it had shown about 4,000 hours of programming with productRead MoreFemale And Female Gender Roles3513 Words   |  15 Pagessuch as horror and terror. Not only does the gothic exaggerate the stereotypes, but it also allows them to be contravened, due to the transgressive nature of the genre. The psychoanalytical aspect of this genre, allows for repressed desires to be made eminent and therefore characters can transgress and in the process, cross their contemporary gender boundaries. Keats uses the gothic device of Negative capability in order to conceal the transgression of the females in his poetry, Carter revised gothicRead MoreLeonardo Da Vinci s Life1778 Words   |  8 Pagesscience fascinated Leonardo, and he brought the two together in a way that captivated many since his death.2 He explored these topics with great curiosity and interest, and in his time encountered many amazing ideas, which he exchanged through his writings and sketches. Born on April 15th, 1452 in Anchiano, Tuscany, Leonardo da Vinci was the illegitimate son of Ser Piero da Vinci, a notary of Florence, and Caterina da Vinci, a local slave woman. Leonardo’s childhood is mostly unknown, as he wrote