Kernel (software engineering) - Kernel (software engineering) The kernel is the fundamental part of an operating system. It is a piece of software responsible for providing secure multiplexing and arbitration of a machine's hardware. Kernels usually also implement a set of hardware abstractions that provide a clean interface to the underlying hardware. There are three broad categories of kernels : Monolithic kernels provide rich and powerful abstractions of the underlying hardware. Microkernels provide a small set of simple hardware abstractions and use applications called servers to provide more functionality. Exokernels provide no abstractions but allow the use of libraries to provide more functionality via direct or nearly direct access to hardware. Table of contents showTocToggle("show","hide") 1 Monolithic kernels 2 Microkernels 3 Monolithic kernels vs. microkernels 4 Exokernels 5 See also 6.
Thread (software engineering) - Thread (software engineering) Many programming languages, operating systems, and other software development environments support what are called "threads" of execution. Threads are similar to processes, in that both represent a single sequence of instructions executed in parallel with other sequences, either by time slicing or multiprocessing. Threads is a way for a program to split itself into two or more simultaneously running tasks. A common use of threads is having one thread paying attention to the graphical user interface, while others do a long calculation in the background. As a result, the application more readily responds to user's interaction. Threads are distinguished from traditional multi-tasking processes in that processes are typically independent, carry considerable state information, and interact only through system-provided inter-process communication mechanisms. Multiple threads, on.
Software engineering - Software engineering zh-cn:软件工程 Software engineering is the technologies and practices used to create and maintain computer software, while emphasizing productivity and quality. In the year 2000, these technologies and practices encompass languages, databases, tools, platformss, libraries, standards, patterns, and processes. Software engineering applications include email, embedded software, graphical user interfaces, office suites, operating systems, optimizing compilers, relational databases, robotics controllers, video games, and the world wide web. Other important applications include accounting, airline reservations, avionics, banking, and telephony. These applications embody social and economic value, in that they make people more productive, improve their quality of life, and enable them to do things that would otherwise be impossible. Software engineers are the community of practitioners who create programss. In the year 2000, there were about 640,000.
Software Engineering Institute - Software Engineering Institute The Software Engineering Institute (SEI) is located in the Carnegie Mellon University, Pittsburgh, Pennsylvania USA. They publish books on software engineering for government and military applications and practices. They are most famous for the Software Capability Maturity Model, or "CMM", which claims to identify "mature" software engineering. The SEI is also home of CERT, the federally funded computer security organization. Formerly known as the Computer Emergency Response Team, CERT's work involves handling computer security incidents and vulnerabilities, publishing security alerts, researching long-term changes in networked systems, and developing information and training to help improve security at Internet sites across the country. See also: CMM External Links SEI website: http://www.sei.cmu.edu/ CERT website: http://www.cert.org.
Industrial and manufacturing engineering - Industrial and manufacturing engineering In industrial and manufacturing engineering, engineering principles are utilized to produce an end product. This end product can be a chemical compound or mixture such as soap, gasoline or petrol, or and assembly of products from different manufacturing processes to produce some as complex as an automobile or an airplane. There are a number of things engineers do to make products more manufacturable. Value engineering One is called "value engineering." Value engineering is based on the proposition that in any complex product, 80% of the customers need 20% of the features. By focusing product development, one can produce a superior product at a lower cost for the major part of a market. When a customer needs more features, sell them as options. This approach.
Fields of engineering - Fields of engineering Acoustical engineering Aquatic and environmental engineering Aerospace engineering Agricultural engineering Architectural engineering Astronautical engineering Automotive engineering Biological engineering Biomedical engineering Bioresource engineering Chemical engineering Civil engineering Combat engineering: the use of engineering skills for military purposes Computer engineering Control engineering Electrical engineering Environmental engineering Food process engineering Genetic engineering Geotechnical engineering Industrial and manufacturing engineering Information technology Instrumentation engineering Logistic engineering Marine engineering Materials engineering Mechanical engineering Mechatronics Mining engineering Nanoengineering Naval architecture Nuclear engineering Optical engineering Paper engineering Petroleum engineering Physics engineering Quality engineering Retro-engineering Safety engineering Sewage engineering Software engineering Structural engineering Support Engineering Systems engineering Transport engineering Value engineering see also list of engineering topics.
Electrical engineering - Electrical engineering Electrical engineering is an engineering discipline that deals with the study and application of electricity and electromagnetism. Its practitioners are called electrical engineers. Electrical engineering is a broad field that encompasses many subfields. Subfields Electronics In the subfield of electronics, electrical engineers design and test electrical networks (more commonly known as circuits) that take advantage of electromagnetic properties of electrical components or elements (such as resistors, capacitors, inductors, transistors, diodes, semiconductors) to achieve the desired functionality. Before the invention of the integrated circuit, electronic circuits were constructed purely from discrete components. These circuits consumed much space and electrical power, were more prone to failure, and were limited in speed. The integrated circuit packs large numbers of electrical components, mainly transistors, into a small space, contributing.
Engineering - Engineering Engineering is the application of science to the needs of humanity. This is accomplished through knowledge, mathematics and practical experience applied to the design of useful objectss or processes. Professional practitioners of engineering are called engineers. Table of contents showTocToggle("show","hide") 1 Compared to other professions 2 The task of engineering 2.1 Problem solving 2.2 Use of computers 3 Etymology 4 Connections to other disciplines 5 Tools 6 Methods Compared to other professions Engineering is concerned with the implementation of a solution to a practical problem. A scientist may ask "why?" and proceed to research the answer to the question. By contrast, engineers want to know how to solve a problem how to implement that solution. Otherwise stated, scientists investigate phenomena that already exist, whereas engineers.
Usability engineering - Usability engineering Usability engineering is a field of computer science concerned with the question of how to design software that is easy to use. It is closely related to the field of human-computer interaction and industrial design. See also usability, usability testing. Among the leading proponents of this field of study are Donald Norman and Jakob Nielsen. Nielsen has written a book on the subject, aptly titled Usability Engineering, which was published in 1994. The subject is considered of sufficient importance that a number of universities include a usability engineering course as part of the computer science curriculum..
Avionics software - Avionics software Avionics software is embedded software with legally-mandated safety and reliability concerns. Interestingly, the process is only slightly slower and more costly (perhaps 15 percent) than the normal ad-hoc processes used for commercial software. Since most software fails because of mistakes, eliminating the mistakes at the earliest possible step is also a relatively inexpensive, reliable way to produce software. The basic idea is that each step of the design process has outputs. If these outputs are tested for correctness and fixed, then normal human mistakes can't easily grow into dangerous or expensive problems. Most manufacturers follow the waterfall model to coordinate the design product, but almost all explicitly permit earlier work to be revised. The result is more often closer to a spiral model. For an.
Biomedical engineering - Biomedical engineering Biomedical engineering is a discipline concerned with the development and manufacture of prostheses, medical devices, diagnostic devices, drugs and other therapies. It is more concerned with biological, safety and regulatory issues than other forms of engineering. It may be defined as "The application of engineering principles and techniques to the medical field". Most biomedical devices are either inherently safe, or have added devices and systems so that they can sense their failure and shut down into an unusable, thus very safe state. A typical, basic requirement is that no single failure should cause the therapy to become unsafe at any point during its life-cycle. See safety engineering for a discussion of the procedures used to design safe systems. Many biomedical devices need to be sterilized..
Computer engineering - Computer engineering Computer engineering is a discipline under electrical engineering. A computer engineer is an electrical engineer with a focus on digital logic systems, rather than radio frequency or power electronics. Areas of specialty can include computer architecture, semiconductors, digital control theory, digital signal processing, software and others. Computer engineering degrees have been added to a number of schools' degree programs since the early 1990s. Most of these schools teach computer engineering in the electrical engineering department. Some schools, though, teach it from a software engineering perspective and have it in a combined computer science, software engineering and computer engineering department. These schools tend to have 'engineering' graduates that often don't take all the extra science classes or the standard engineering core classes of statistics, statics, dynamics,.
Safety engineering - Safety engineering Safety engineering is used to assure that a life-critical system behaves as needed even when pieces fail. Fault modeling techniques The two most common fault modeling techniques are called "failure modes and effects analysis" and "fault tree analysis." UML activity diagrams can be used as graphical components in a fault tree analysis. These techniques are just ways of finding problems and of making plans to cope with failures. Failure modes and effects analysis In the technique known as "failure modes and effects analysis", an engineer starts with a block diagram of a system. The engineer then considers what happens if each block of the diagram fails. The engineer than draws up a table in which failures are paired with their effects and an evaluation of.
Social engineering - Social engineering Social engineering has two differing meanings in the fields of political science and security. Political science In its most usual sense, social engineering is a mainly pejorative term used to describe the intended effects of authoritarian systems of government. The implication is that some governments are intending to change or "engineer" their citizens, for example, by the use of propaganda. Laws and tax policies can influence behavior, and progressive politics often become involved socially influential policies. A general meaning is any attempt by a government to alter society. Whether a government is supporting or altering a society depends upon what is the purpose of government. Security Social engineering has been used in the information technology field to mean the art of conning a naive person.
Software crisis - Software crisis Try http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=%22software+crisis%22&btnG=Google+Search and try to summarize them The roots of the software crisis are complexity, expectations, and change. See software engineering. Indeed, the problem of trying to write an encyclopedia is very much like writing software. Both running code and a hypertext/encyclopedia are wonderful turn-ons for the brain, and you want more of it the more you see, like a drug. As a user, you want it to do everything, as a customer you don't really want to pay for it, and as a producer you realize how unrealistic the customers are. Requirements will conflict in functionality vs affordability, and in completeness (get everything in) vs timeliness (meet the deadline). The notion of a software crisis emerged at the end of the 1960s. An.
Software testing - Software testing Software Testing is a process used to identify the correctness, completeness and quality of developed computer software. There are a number of different testing approaches that are used to do this ranging from the most informal ad hoc testing, to formally specified and controlled methods such as automated testing. The quality of the application can and normally does vary widely from system to system but some of the common quality attributes include reliability, stability, portability, maintainability and usability. For a more complete listing of attributes it is suggested that the ISO standard ISO 9126 be consulted. "An effective way to test code is to exercise it at its natural boundaries" --Brian Kernighan A list of software testing activities includes: System functional testing Unit testing.
Software cracking - Software cracking Software cracking is software hacking in order to remove encoded copy protection. Distribution of cracked software (warez) is generally an illegal (or more recently, criminal) act of copyright infringement. Software cracking is most often done by software reverse engineering. The passage of the Digital Millennium Copyright Act made software cracking, as well as the distribution of information which enables software cracking, illegal in the United States. A good example would be a "No CD" crack, which edits the program so that the CD is no longer needed to execute the program. Another example occurs when businesses break the copy protection of programs that they have legally purchased but that are keyed to particular hardware, so that there is no chance of downtime due to.
Software architecture - Software architecture Software architecture underlies the practice of building computer software. In the same way as a building architect sets the principles and goals of a building project as the basis for the draftsman's plans, so too, a software architect sets out the software architecture as a basis for actual system design specifications, per the requirements of the client. Table of contents showTocToggle("show","hide") 1 History 2 Views 3 Architecture Examples 4 Related Concepts 5 See Also 6 References History Software architecture as a concept was touched upon already in the 1960s by (for example) Edsger Dijkstra, but has increased in popularity since the early 1990s, largely due to activity within Rational Software Corporation and within Microsoft. Views Software architecture is commonly organised in views, which are.
Software license - Software license A software license is a type of proprietary or gratiuitious license as well as a memorandum of contract between a producer and a user of computer software — sometimes called an End User License Agreement (EULA) — that specifies the perimeters of the permission granted by the owner to the user. Table of contents showTocToggle("show","hide") 1 Introduction 1.1 Copyright 1.2 Product liability 1.3 Patent 1.4 Trade secret 1.5 Access to network services 1.6 Enforceability Introduction Software licenses are primarily written to deal with issues of copyright law and product liability law. Sometimes the license touches on issues of patent law, trade secret law, and laws pertaining to access to services. Software licenses generally fall into two categories, proprietary software licenses and free software licenses,.
Software component - Software component Software component representations: above the representation used in UML, below the representation commonly used by Microsoft's COM objects. The "lollipops" sticking out from the components are their interfaces. Note the characteristic IUnknown interface of the COM component. Software componentry is a field of study within software engineering. It builds on prior theories of software objectss, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and object-oriented design of all these. It claims that software components, like the idea of a hardware component used e.g. in telecommunication, can be ultimately made interchangeable and reliable. A software component is a software technology for encapsulating software functionality, often in the form of objectss (from Object Oriented Programming), in some binary or.