Introduction, System Software and Machine Architecture

Total Page:16

File Type:pdf, Size:1020Kb

Load more

BCA Semester: III System Software Session-01 Introduction, System software and machine architecture Introduction A computer is an electronic device that manipulates information, or data. It has the ability to store, retrieve, and process data. Two things all computers have in common: hardware and software. • Hardware is any part of your computer that has a physical structure, such as the keyboard or mouse. It also includes all of the computer's internal parts. • Software is any set of instructions that tells the hardware what to do and how to do it. Examples of software include web browsers, games, and word processors. • Types of Software There are two main types of software :system software and application software. Application software: is a software that performs specific tasks for an end-user. Ex: word processors, spreadsheets, database management, inventory and payroll programs, and many other “applications.” ▪ System Software is a software designed to run a computer's hardware and application programs. Ex: Operating System, File Management Program, Device Drivers etc., System Software System Software is a software designed to run a computer's hardware and application programs. • The trait in which system software varies from application software is machine reliance. • An application program is used to solve some problem or to perform a particular task for an end-user, by means of the computer as a tool. • System programs alternatively are projected to assist the operation and utilization of the computer itself, instead of any specific application. Therefore, they are typically connected to the architecture of the machine on which they are executed. Fig 1. Relation between hardware, software and user DIGITAL LEARNING - DCE KUVEMPU UNIVERSITY 1 BCA Semester: III System Software Features The features of System Software are: ▪ System Software is closer to the system ▪ Generally written in a low-level language ▪ The system software is difficult to design and understand ▪ Fast in speed ▪ Less interactive ▪ Smaller in size ▪ Hard to manipulate Types The important types of System Software are: ▪ Operating systems: - Operating system software helps you for the effective utilization of all hardware and software components of a computer system. The most important tasks performed by the operating system are: o Memory Management: The OS keeps track of the primary memory and allocates the memory when a process requests it. o Processor Management: Allocates the main memory (RAM) to a process and de-allocates it when it is no longer required. o File Management: Allocates and de-allocates the resources and decides who gets the resources. o Security: Prevents unauthorized access to programs and data by means of passwords. o Error-detecting Aids: Production of dumps, traces, error messages, and other debugging and error-detecting methods. o Scheduling: The OS schedules process through its scheduling algorithms. ▪ Device Drivers: It is a type of software that controls particular hardware which is attached to the system. Some examples of device drivers are: o BIOS Driver o Display Drivers o Motherboard Drivers o Printer Drivers o ROM Drivers o Sound card Driver o USB Drivers ▪ Firmware: Firmware is the permanent software that is embedded into a read-only memory. It is a set of instructions permanently stored on a hardware device. It provides essential information regarding how the device interacts with other hardware. Firmware can be considered as DIGITAL LEARNING - DCE KUVEMPU UNIVERSITY 2 BCA Semester: III System Software ‘semi-permanent’ as it remains permanent unless it is updated using a firmware updater. Some examples of firmware are: o BIOS o Computer Peripherals o Consumer Applications o Embedded Systems o UEFI ▪ Programming language translators: - Transforms the instructions prepared by developers in a programming language into a form that can be interpreted or compiled and executed by a computer system. o Compiler: A compiler is a software that translates the code written in one language to some other language without changing the meaning of the program. A compiler performs almost all of the following operations during compilation: preprocessing, lexical analysis, parsing, semantic analysis (syntax-directed translation), conversion of input programs to an intermediate representation, code optimization and code generation. Examples of compiler may include gcc(C compiler), g++ (C++ Compiler ), javac (Java Compiler) etc. o Interpreter: An interpreter is a computer program that directly executes, i.e. it performs instructions written in a programming or scripting language. Examples may include Ruby, Python, PHP etc. o Assembler: An assembler is a program that converts assembly language into machine code. Assemblers produce executable code that similar to compilers. However, assemblers are more simplistic since they only convert low- level code (assembly language) to machine code. ▪ Utility Software: - is a software designed to help to analyze, configure, optimize or maintain a computer. Examples and features of utility software include: o Antivirus and security software for the security of files and applications, e.g., Malwarebytes, Microsoft Security Essentials, and AVG. o File Compression to optimize disk space such as WinRAR, Winzip, and 7-Zip. o Data recovery to help get back lost data. Examples include iCare Data Recovery, Recuva, and EaseUs Data Recovery Wizard. o Firewall for protection against external threats, e.g., Windows Firewall. DIGITAL LEARNING - DCE KUVEMPU UNIVERSITY 3 BCA Semester: III System Software Machine architecture: 1. Memory: Memory consists of 8 bit-bytes and the memory size is 1 megabytes (220 bytes). Standard SIC memory size is very small. This change in the memory size leads to change in the instruction formats as well as addressing modes. 3 consecutive bytes form a word (24 bits) in SIC/XE architecture. All address are byte addresses and words are addressed by the location of their lowest numbered byte. 2. Registers: It contain 9 registers (5 SIC registers + 4 additional registers). Four additional registers are: 3. Data Formats: • Integers are represented by Binary numbers. • Characters are represented using ASCII codes. • Floating points are represented using 48-bits. 4. Instruction formats: • In SIC/XE architecture there are 4 types of formats available The Bit(e) is used to distinguish between Formats 3 and Formats 4 Reference: System Programming by Johan Donovan DIGITAL LEARNING - DCE KUVEMPU UNIVERSITY 4 .
Recommended publications
  • Some Video Games Require a Operating System

    Some Video Games Require a Operating System

    Some Video Games Require A Operating System Playing and woven Hiro never bail his trouncing! Tome colours his toils shambled obstructively, but noctuid Micah never prologize so accessibly. Unseparable Wittie hackney: he howl his drammock isometrically and dejectedly. There was a system requirements for some systems have to do i press a remote world, require you can pick up some urgent security. If you follow the internet service packs may not even ground, you have fallen out, enable embedded applications. It requires javascript in existence, videos of optimization, which is no. Are some systems? Vram do operating system. Sgi needed to some maintainers look around at different processes can. Your pc gamer, require some video games function checks for. Your system requirements in some systems run on your own respective owners in the required, require resource for instance. Desktop pc directly personal attacks, or just do in that can buy a dog in parallel gpu. Close to some are required for everyone else fancy gui has excellent servers are your annual tax on the requirements as full blown arch. Scroll on console or installation in your pc in beautiful places of. We will learn more, some time and capturing tools for bigger game? For residential clients, which disappeared from. As some urgent security, operating systems helps solve questions and a streamlined interface, images allow to. Api for server by default, it are done in more modern operating system? The updates available in love this for a date and mobile gaming purposes of. Fragmentation and secure a member only. Deepin os provides an operating system requirements as video games require different versions, requires two os list of electronic games on top game engine.
  • Android Operating System

    Android Operating System

    Software Engineering ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, 2012, pp.-10-13. Available online at http://www.bioinfo.in/contents.php?id=76 ANDROID OPERATING SYSTEM NIMODIA C. AND DESHMUKH H.R. Babasaheb Naik College of Engineering, Pusad, MS, India. *Corresponding Author: Email- [email protected], [email protected] Received: February 21, 2012; Accepted: March 15, 2012 Abstract- Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android, an open source mobile device platform based on the Linux operating system. It has application Framework,enhanced graphics, integrated web browser, relational database, media support, LibWebCore web browser, wide variety of connectivity and much more applications. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. Architecture of Android consist of Applications. Linux kernel, libraries, application framework, Android Runtime. All applications are written using the Java programming language. Android mobile phone platform is going to be more secure than Apple’s iPhone or any other device in the long run. Keywords- 3G, Dalvik Virtual Machine, EGPRS, LiMo, Open Handset Alliance, SQLite, WCDMA/HSUPA Citation: Nimodia C. and Deshmukh H.R. (2012) Android Operating System. Software Engineering, ISSN: 2229-4007 & ISSN: 2229-4015, Volume 3, Issue 1, pp.-10-13. Copyright: Copyright©2012 Nimodia C. and Deshmukh H.R. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
  • Software Tools: a Building Block Approach

    Software Tools: a Building Block Approach

    SOFTWARE TOOLS: A BUILDING BLOCK APPROACH NBS Special Publication 500-14 U.S. DEPARTMENT OF COMMERCE National Bureau of Standards ] NATIONAL BUREAU OF STANDARDS The National Bureau of Standards^ was established by an act of Congress March 3, 1901. The Bureau's overall goal is to strengthen and advance the Nation's science and technology and facilitate their effective application for public benefit. To this end, the Bureau conducts research and provides: (1) a basis for the Nation's physical measurement system, (2) scientific and technological services for industry and government, (3) a technical basis for equity in trade, and (4) technical services to pro- mote public safety. The Bureau consists of the Institute for Basic Standards, the Institute for Materials Research, the Institute for Applied Technology, the Institute for Computer Sciences and Technology, the Office for Information Programs, and the ! Office of Experimental Technology Incentives Program. THE INSTITUTE FOR BASIC STANDARDS provides the central basis within the United States of a complete and consist- ent system of physical measurement; coordinates that system with measurement systems of other nations; and furnishes essen- tial services leading to accurate and uniform physical measurements throughout the Nation's scientific community, industry, and commerce. The Institute consists of the Office of Measurement Services, and the following center and divisions: Applied Mathematics — Electricity — Mechanics — Heat — Optical Physics — Center for Radiation Research — Lab- oratory Astrophysics^ — Cryogenics^ — Electromagnetics^ — Time and Frequency*. THE INSTITUTE FOR MATERIALS RESEARCH conducts materials research leading to improved methods of measure- ment, standards, and data on the properties of well-characterized materials needed by industry, commerce, educational insti- tutions, and Government; provides advisory and research services to other Government agencies; and develops, produces, and distributes standard reference materials.
  • Chapter 1: Introduction

    Chapter 1: Introduction

    Chapter 1: Introduction Operating System Concepts Silberschatz, Galvin and Gagn Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization Operating System Concepts 1.2 Silberschatz, Galvin and Gagne What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware Operating system goals: Execute user programs and make solving user problems easier Make the computer system convenient to use Use the computer hardware in an efficient manner Operating System Concepts 1.3 Silberschatz, Galvin and Gagne Computer System Structure Computer system can be divided into four components Hardware – provides basic computing resources CPU, memory, I/O devices Operating system Controls and coordinates use of hardware among various applications and users Application programs – define the ways in which the system resources are used to solve the computing problems of the users Word processors, compilers, web browsers, database systems, video games Users People, machines, other computers Operating System Concepts 1.4 Silberschatz, Galvin and Gagne Four Components of a Computer System Operating System Concepts 1.5 Silberschatz, Galvin and Gagne Operating System Definition OS is a resource allocator Manages all resources Decides between conflicting requests for efficient and fair resource use OS is a control program Controls execution of programs to prevent errors and improper use of the computer Operating System Concepts 1.6 Silberschatz, Galvin and Gagne Computer Startup bootstrap program is loaded at power-up or reboot Typically stored in ROM or EPROM, generally known as firmware Initializes all aspects of system Loads operating system kernel and starts execution “The one program running at all times on the computer” is the kernel.
  • Employee Management System

    Employee Management System

    School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI Employee Management System Kancho Dimitrov Kanchev Dec MSI Report 06170 2006 Växjö University ISSN 1650-2647 SE-351 95 VÄXJÖ ISRN VXU/MSI/DA/E/--06170/--SE Abstract This report includes a development presentation of an information system for managing the staff data within a small company or organization. The system as such as it has been developed is called Employee Management System. It consists of functionally related GUI (application program) and database. The choice of the programming tools is individual and particular. Keywords Information system, Database system, DBMS, parent table, child table, table fields, primary key, foreign key, relationship, sql queries, objects, classes, controls. - 2 - Contents 1. Introduction…………………………………………………………4 1.1 Background……………………………………………………....................4 1.2 Problem statement ...…………………………………………………….....5 1.3 Problem discussion………………………………………………………....5 1.4 Report Overview…………………………………………………………...5 2. Problem’s solution……………………………………………….....6 2.1 Method...…………………………………………………………………...6 2.2 Programming environments………………………………………………..7 2.3 Database analyzing, design and implementation…………………………10 2.4 Program’s structure analyzing and GUI constructing…………………….12 2.5 Database connections and code implementation………………………….14 2.5.1 Retrieving data from the database………………………………....19 2.5.2 Saving data into the database……………………………………...22 2.5.3 Updating records into the database………………………………..24 2.5.4 Deleting data from the database…………………………………...26 3. Conclusion………………………………………………………....27 4. References………………………………………………………...28 Appendix A: Programming environments and database content….29 Appendix B: Program’s structure and code Implementation……...35 Appendix C: Test Performance…………………………………....56 - 3 - 1. Introduction This chapter gives a brief theoretical preview upon the database information systems and goes through the essence of the problem that should be resolved.
  • Mac OS X: an Introduction for Support Providers

    Mac OS X: an Introduction for Support Providers

    Mac OS X: An Introduction for Support Providers Course Information Purpose of Course Mac OS X is the next-generation Macintosh operating system, utilizing a highly robust UNIX core with a brand new simplified user experience. It is the first successful attempt to provide a fully-functional graphical user experience in such an implementation without requiring the user to know or understand UNIX. This course is designed to provide a theoretical foundation for support providers seeking to provide user support for Mac OS X. It assumes the student has performed this role for Mac OS 9, and seeks to ground the student in Mac OS X using Mac OS 9 terms and concepts. Author: Robert Dorsett, manager, AppleCare Product Training & Readiness. Module Length: 2 hours Audience: Phone support, Apple Solutions Experts, Service Providers. Prerequisites: Experience supporting Mac OS 9 Course map: Operating Systems 101 Mac OS 9 and Cooperative Multitasking Mac OS X: Pre-emptive Multitasking and Protected Memory. Mac OS X: Symmetric Multiprocessing Components of Mac OS X The Layered Approach Darwin Core Services Graphics Services Application Environments Aqua Useful Mac OS X Jargon Bundles Frameworks Umbrella Frameworks Mac OS X Installation Initialization Options Installation Options Version 1.0 Copyright © 2001 by Apple Computer, Inc. All Rights Reserved. 1 Startup Keys Mac OS X Setup Assistant Mac OS 9 and Classic Standard Directory Names Quick Answers: Where do my __________ go? More Directory Names A Word on Paths Security UNIX and security Multiple user implementation Root Old Stuff in New Terms INITs in Mac OS X Fonts FKEYs Printing from Mac OS X Disk First Aid and Drive Setup Startup Items Mac OS 9 Control Panels and Functionality mapped to Mac OS X New Stuff to Check Out Review Questions Review Answers Further Reading Change history: 3/19/01: Removed comment about UFS volumes not being selectable by Startup Disk.
  • Software Requirements Specification to Distribute Manufacturing Data

    Software Requirements Specification to Distribute Manufacturing Data

    NIST Advanced Manufacturing Series 300-2 Software Requirements Specification to Distribute Manufacturing Data Thomas Hedberg, Jr. Moneer Helu Marcus Newrock This publication is available free of charge from: https://doi.org/10.6028/NIST.AMS.300-2 NIST Advanced Manufacturing Series 300-2 Software Requirements Specification to Distribute Manufacturing Data Thomas Hedberg, Jr. Moneer Helu Systems Integration Division Engineering Laboratory Marcus Newrock Office of Data and Informatics Material Measurement Laboratory This publication is available free of charge from: https://doi.org/10.6028/NIST.AMS.300-2 December 2017 U.S. Department of Commerce Wilbur L. Ross, Jr., Secretary National Institute of Standards and Technology Walter Copan, NIST Director and Under Secretary of Commerce for Standards and Technology SRS to Distribute Manufacturing Data Hedberg, Helu, and Newrock ______________________________________________________________________________________________________ Contents 1 Introduction 1 1.1 Purpose ...................................... 1 1.2 Disclaimer ..................................... 1 This publication is available free of charge from: https://doi.org/10.6028/NIST.AMS.300-2 1.3 Scope ....................................... 1 1.4 Acronyms and abbreviations ........................... 1 1.5 Verbal Forms ................................... 3 1.5.1 Must .................................... 3 1.5.2 Should ................................... 3 1.5.3 May .................................... 3 1.6 References ....................................
  • How Era Develops Software

    How Era Develops Software

    How eRA Develops Software Executive Summary: In an organized, iterative, carefully documented manner, eRA has built a dense infrastructure of methodology, standards, and procedures to underpin the development of a reliable enterprise system for electronic research administration. For software development and quality assurance, NIH has relied thus far solely on contractors. Now the retirement of the legacy IMPAC system is freeing up NIH programmers to join the development team. eRA’s methodology combines the classical Waterfall method and the prototype-oriented Spiral method. It proceeds in three phases: 1. Definition Phase: systems analysis and software development analysis; 2. Development Phase: software design, code generation, and testing; and 3. Maintenance Phase: perfective maintenance and other kinds of maintenance, documentation, and training. To capture the needs of users at every step, eRA employs focus groups, user groups, and the group advocates. Key features of the process are the use of database and tools technology from Oracle and reliance on a strongly modular approach that permits systematic upgrading of modules on a regular basis. End Summary ***** For eRA, developing software is a mission-critical business. With some 576,000,000 transactions taking place annually in IMPAC II and Commons, the functioning of NIH’s extramural grant and contract system relies on a dependable and effective software development process. eRA has built a dense project infrastructure (see figure) to ensure the overall integrity of the system. Other features of the project also contribute: •= for database technology, we rely on Oracle, a leading vendor with robust products; •= our strongly modular approach has enabled us better to target the needs of particular user groups while reducing the complexity of each piece of the project; and •= we have moved ever farther toward empowering users and involving them at every step.
  • Basic Concepts of Operating Systems

    Basic Concepts of Operating Systems

    ✐ ✐ “26341˙CH01˙Garrido” — 2011/6/2 — 12:58 — page1—#3 ✐ ✐ © Jones & Bartlett Learning, LLC © Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION Chapter© Jones & 1 Bartlett Learning, LLC © Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION Basic Concepts of © JonesOperating & Bartlett Learning, Systems LLC © Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION © Jones & Bartlett Learning, LLC © Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION 1.1 ©Introduction Jones & Bartlett Learning, LLC © Jones & Bartlett Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION The operating system is an essential part of a computer system; it is an intermediary component between the application programsand the hardware. The ultimate purpose of an operating system is twofold: (1) to provide various services to users’ programs © Jones & Bartlettand (2) toLearning, control the LLC functioning of the computer© system Jones hardware & Bartlett in an Learning, efficient and LLC NOT FOR SALEeffective OR manner.DISTRIBUTION NOT FOR SALE OR DISTRIBUTION Thischapter presentsthe basicconceptsand the abstract views of operating sys- tems. This preliminary material is important in understanding more clearly the com- plexities of the structure of operating systems and how the various services are provided. General and brief referencesto Unix and Windowsare included throughout the chapter. © Jones & Bartlett Learning,Appendix LLC A presents a detailed explanation© Jones & of theBartlett Linux commands.Learning, LLC NOT FOR SALE OR DISTRIBUTION NOT FOR SALE OR DISTRIBUTION 1.1.1 Software Components A program is a sequence of instructions that enables a computer to execute a specific task.
  • What Does the Software Requirement Specification for Local E- Government of Citizen Database Information System? an Analysis Using ISO/IEC/IEEE 29148 – 2011

    What Does the Software Requirement Specification for Local E- Government of Citizen Database Information System? an Analysis Using ISO/IEC/IEEE 29148 – 2011

    Journal of Physics: Conference Series PAPER • OPEN ACCESS What does the software requirement specification for local E- Government of citizen database information system? An analysis using ISO/IEC/IEEE 29148 – 2011 To cite this article: M Susilowati et al 2019 J. Phys.: Conf. Ser. 1402 022087 View the article online for updates and enhancements. This content was downloaded from IP address 113.190.230.192 on 07/01/2021 at 18:25 4th Annual Applied Science and Engineering Conference IOP Publishing Journal of Physics: Conference Series 1402 (2019) 022087 doi:10.1088/1742-6596/1402/2/022087 What does the software requirement specification for local E- Government of citizen database information system? An analysis using ISO/IEC/IEEE 29148 – 2011 M Susilowati1, *, M Ahsan2 and Y Kurniawan1 1 Program Studi Sistem Informasi, Fakultas Sains dan Teknologi, Universitas Ma Chung, Villa Puncak Tidar Blok N-1, Malang, Jawa Timur, Indonesia 2 Program Studi Teknik Informatika, Fakultas Sains dan Teknologi, Universitas Kanjuruan, Jl. S. Supriadi, No. 48 Malang, Jawa Timur, Indonesia *[email protected] Abstract. The management citizen database is Improper and not up-to-date will results decisions that are not strategic for the village development process. Inappropriate citizen data also results in long-term ineffective local government planning processes. Such as the problem of forecasting or predicting the level of growth of citizens as well as the need for development services which are part of the medium-term long-term plans of local governments. Therefore they need requires a citizen database information system. In connection with the needs of citizen database information systems, this study provides a solution of analysing documents, namely the requirement specification software for citizen database information systems using the ISO / IEC / IEEE 29148 edition of 2011.
  • Chapter 20: the Linux System

    Chapter 20: the Linux System

    Chapter 20: The Linux System Operating System Concepts – 10th dition Silberschatz, Galvin and Gagne ©2018 Chapter 20: The Linux System Linux History Design Principles Kernel Modules Process Management Scheduling Memory Management File Systems Input and Output Interprocess Communication Network Structure Security Operating System Concepts – 10th dition 20!2 Silberschatz, Galvin and Gagne ©2018 Objectives To explore the history o# the UNIX operating system from hich Linux is derived and the principles upon which Linux’s design is based To examine the Linux process model and illustrate how Linux schedules processes and provides interprocess communication To look at memory management in Linux To explore how Linux implements file systems and manages I/O devices Operating System Concepts – 10th dition 20!" Silberschatz, Galvin and Gagne ©2018 History Linux is a modern, free operating system (ased on $NIX standards First developed as a small (ut sel#-contained kernel in -.91 by Linus Torvalds, with the major design goal o# UNIX compatibility, released as open source Its history has (een one o# collaboration by many users from all around the orld, corresponding almost exclusively over the Internet It has been designed to run efficiently and reliably on common PC hardware, but also runs on a variety of other platforms The core Linux operating system kernel is entirely original, but it can run much existing free UNIX soft are, resulting in an entire UNIX-compatible operating system free from proprietary code Linux system has
  • Software Development a Practical Approach!

    Software Development a Practical Approach!

    Software Development A Practical Approach! Hans-Petter Halvorsen https://www.halvorsen.blog https://halvorsen.blog Software Development A Practical Approach! Hans-Petter Halvorsen Software Development A Practical Approach! Hans-Petter Halvorsen Copyright © 2020 ISBN: 978-82-691106-0-9 Publisher Identifier: 978-82-691106 https://halvorsen.blog ii Preface The main goal with this document: • To give you an overview of what software engineering is • To take you beyond programming to engineering software What is Software Development? It is a complex process to develop modern and professional software today. This document tries to give a brief overview of Software Development. This document tries to focus on a practical approach regarding Software Development. So why do we need System Engineering? Here are some key factors: • Understand Customer Requirements o What does the customer needs (because they may not know it!) o Transform Customer requirements into working software • Planning o How do we reach our goals? o Will we finish within deadline? o Resources o What can go wrong? • Implementation o What kind of platforms and architecture should be used? o Split your work into manageable pieces iii • Quality and Performance o Make sure the software fulfills the customers’ needs We will learn how to build good (i.e. high quality) software, which includes: • Requirements Specification • Technical Design • Good User Experience (UX) • Improved Code Quality and Implementation • Testing • System Documentation • User Documentation • etc. You will find additional resources on this web page: http://www.halvorsen.blog/documents/programming/software_engineering/ iv Information about the author: Hans-Petter Halvorsen The author currently works at the University of South-Eastern Norway.