Vous êtes sur la page 1sur 53

SYSTEM PROGRAMMING AND TESTING

Click to edit Master subtitle style 7/25/12

WHAT IS SYSTEM PROGRAMMING?


7/25/12

The activity ofprogramming system software.

The primary distinguishing characteristic of systems programming when compared toapplication programmingis thatapplicationprogramming aims to produce software which provides services to the user (e.g.word processor), whereas systems programming aims to produce software which Click to edit Master subtitle style provides services to thecomputer hardware(e.g.disk defragmenter).

It requires a greater degree of hardware awareness.


7/25/12

In system programming more specifically: theprogrammerwill make assumptions about the


hardware and other properties of the system that the program runs on, and will often exploit those properties (for example by using analgorithmthat is known to be efficient when used with specific hardware)

usually a low-level programming language or programming language dialect is used that:

can operate in resource-constrained environments is very efficient and has littleruntimeoverhead has a smallruntime library, or none at all allows for direct and "raw" control over memory access andcontrol flow programmer write parts of the program

lets 7/25/12the

Debuggingcan be difficult if it is not possible to run the program in a debugger due to resource constraints. Running the program in asimulated environmentcan be used to reduce this problem. Systems programming is sufficiently different from application programming that programmers tend to specialize in one or the other.

7/25/12

In system programming, often limited programming facilities are available. The use ofautomatic garbage collectionis not common anddebuggingis sometimes hard to do. Theruntime library, if available at all, is usually far less powerful, and does less error checking. Because of those limitations,monitoringandloggingare often used;operating systemsmay have extremely elaborated logging sub systems. Implementing certain parts in operating system and networking requires systems programming (for example implementing Paging (Virtual Memory) or adevice driverfor an operating system). 7/25/12

Several Programming Language Available


PROCEDURAL LANGUAGE
A procedural language is a programming language in which everything is processed in the order it appears to the computer. In contrast, an object-oriented language is a language in which everything is processed depending on what happens in the program -- user input, errors, or other events. PHP is both a procedural and object-oriented language, depending on the way it is used.
7/25/12

Procedural language is a programming language that requires programming discipline, such as C/C+ +, Java, COBOL, FORTRAN, Perl and JavaScript. Also called an "imperative language," programmers writing in such languages must develop a proper order of actions in order to solve the problem, based on knowledge of data processing and programming
7/25/12

Event-Driven Language

It is not procedural but external actions or events that are initiated. By the user dictates the control flow of the program.

Example: Visual Basic


7/25/12

VISUAL BASIC

Visual Basic is one of the most widely used programming languages in the world. The major reason for its popularity is that it allows programmers to create Windows applications quickly and easily. The origins of Visual Basic are found in a programming language created in 1964 by John Kemeny and Thomas Kurtz. BASIC (Beginners All-purpose Symbolic Instruction Code) was originally an interpreted language that was designed to simplify the programming process and make programming more accessible to the world at large. Using that philosophy, Microsoft integrated a BASIC interpreter into its operating system MS-DOS. Despite its wide distribution and relative simplicity, BASIC was not able to compete with faster, compiled languages such as C or C++. Thus, BASIC was commonly used for trivial or educational purposes, whereas "real" applications were usually developed in other languages.
7/25/12

OBJECT-ORIENTED LANGUAGE (OOL)

object-oriented language (OOL)A programming language used inobject-oriented programming. In such a system the concept of procedure and data, which is embodied in conventional programming systems, is replaced by the concepts ofobjectsand messages: an object is a package of information and a description of its 7/25/12 manipulation, and a message is a

MODULAR PROGRAMMING

A programming style that breaks down program functions into modules, each of which accomplishes one function and contains all the source code and variables needed to accomplish that function. Modular programming is a solution to the problem of very large programs that are difficult to debug and maintain. By segmenting the program into modules that perform clearly defined functions, you can determine the source of program errors more easily. Object-orientated programming languages, such as Small Talk and Hyper Talk, incorporate modular 7/25/12 programming principles.

Benefits Associated from Modular Approach


PROGRAM EFFICIENCY

Program efficiency is usually considered from the point of view of optimizing code. Selecting a proper data structure can have a remarkable effect on the efficiency of the Click to edit Master subtitle style final program. In this paper it is shown how one problem can be solved in several ways using several different data structures. The efficiency of the programs depends on the data structures selected.
7/25/12

MAINTENANCE EFFICIENCY

Modules are easier to analyze and change which reduce the start up time during the maintenance.

CONTROL

7/25/12

The Advantages Of Using Modular Programming

In modular programming the programmers will split their code into small sections of code. The small sections can be called as modules. Each module is split into sub-modules and the submodules are known as calling modules. It is difficult to debug and maintain very large programs. Modular programming is subdividing such type of large programs into separate subprograms.
7/25/12

The advantages of using modular programming:

It is easy to understand small sections of code in the modular programming. You can store the code across multiple files. Modular programming allows collaborative programming. Collaborative programming means more than one program work in one application at the same time. Duplication of code is not possible in modular programming. The programmers create a single procedure for code. The errors are localized to a subroutine or function and it is easy to find the errors. The code should be used in multiple applications in modular programming.
7/25/12

SYSTEM TESTING

Database and structure created and populated with data equipment is purchased and installed, employees are trained, the system is documented and the new system is installed.

7/25/12

System testingof software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specifiedrequirements. System testing falls within the scope ofblack box testing, and as such, should require no knowledge of the inner design of the code or logic.As a rule, system testing takes, as its input, all of the "integrated" software components that have successfully passedintegration testingand also the software system itself integrated with any applicable hardware system(s). The purpose of integration testing is to detect any inconsistencies between the software units that are integrated together (calledassemblages) or between any of theassemblagesand the hardware. System testing is a more limited type of testing; it seeks to detect defects both within the "inter-assemblages" and also within the system as a whole.

7/25/12

SYSTEM REQUIREMENT SPECIFICATION

The System Requirements Specification (SRS) document describes all data, functional and behavioral requirements of the software under production or development. This 10-section template covers the overall description of the system/software to be implemented, use cases and scenarios, data model, functional and non-functional requirements, interface and behavioral 7/25/12

WHAT IS CASE?
7/25/12

Computer-aided software engineering (CASE) is the application of the computer to the software development process. CASE automates program design and coordinate design specification. It also facilitates screen and report design and writes code. CASE is a rapidly emerging methodology wherein the computer takes over tasks that traditionally where perform manually.
7/25/12

CASE consists of a group of software tools and techniques that may be run of a desktop computer or large mainframe to handle the development task in an environment of maximum programmer productivity. It uses data dictionaries, data models, and other elements. With CASE, software developers can produce software more quickly and at a lower cost.

Click to edit Master subtitle style

7/25/12

EVOLUTION OF PROGRAMMING LANGUAGES


MACHINE LANGUAGE

is the earliest language developed for computers. consisted of code written as strings of ones and zeros that directed the machine to perform specific function
Click to edit Master subtitle style

ASSEMBLER LANGUAGE

Consisted of a group of abbreviation, or mnemonics, known as operation codes or simply op codes.

7/25/12

THIRD-GENERATION OF LANGUAGES (1950s and 60s)

These languages were developed to reflect the way programmers thought and worked. For instance, FORTRAN was patterned after mathematical equations and COBOL after ordinary business english.

COMPILERS

Since computers do not understand english or mathematics for that matter, special conversion programs known as COMPILERS were needed. These COMPILERS converted english or mathematic instructions into machine language. This represented another step toward automation.

7/25/12

THIRD-GENERATION LANGUAGE (1970s and early 80s)

These are refinements and extensions of earlier languages.ADA, Pascal, C and some advanced dialects of BASIC came in to use. These further separated the programmer from the details of the machine.

FOURTH-GENERATION LANGUAGE

It does not require the programmer to adhere strictly to rules of language syntax and structure. These new high-level languages are an attempt to further removed programmers from language details and allow them to focus on the problems being solved.

7/25/12

EVOLUTION OF PROGRAMMING LANGUAGES


AD A C Microsof t BASIC FORTRAN 77 USC D Pasc al Pasc al ALGO L COB OL ANS COB OL AP L PL/ I

BASI FORTRAN FORT C IV H Click to edit Master subtitle style Macro Assembl er FORTR AN Assembler Language Machine Language

7/25/12

LANGUAGE SELECTION CRITERIA


Wide availability Standardized Structured Oriented to professional programmer Suited to novices Business application Educational application ASSEMBLER ADA BASIC C COBOL FORTRA PASCAL PL/I N X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X

Click to edit Master subtitle style


X X X

Operating system programming Scientific and mathematical applications Interactive application Resembles english

7/25/12

PREPARING SOFTWARE SPECIFICATION


Systems analysts often must prepare software specification before programs are written. A set of specifications is drawn up defining the language, memory limits language standards and other requirements. The software specification should define program length, input and output parameters, computations, to be performed, and documentation requirements. Once a set up specifications has been written it can be turned over to programmers for software development and coding.

Click to edit Master subtitle style

7/25/12

TRADITIONAL SOFTWARE DEVELOPMENT LIFE CYCLE

the traditional software development life cycle begins with a definition of the problem, followed by diagramming. The problem is then coded in a specific language, creating a program. The program is tested to edit Master subtitle style Click and debugged, and then documentation is completed. The steps involved in flowcharting, coding, running and debugging may be repeated many times until a functional program is developed.
7/25/12

DESIGN WALKTHROUGH

Is a procedure in which a programmer or analyst manually checks through each module or block of program coded to check its accuracy and completeness. It detects errors in logic and coding early in the programming cycle so that they can be corrected easily.

Click to edit Master subtitle style

7/25/12

MAJOR STEPS IN CASE PROCESS


1. 2. 3. 4. 5.

Problem definition Construction of data dictionary Construction of screens and reports Analysis code generation Integrated documentation

Click to edit Master subtitle style

7/25/12

ELEMENTS OF CASE PROCESS


PROBLEM DEFINITION

As in traditional programming, the first step is the preparation of a clear problem statements. Before programming can be written, user needs must be assessed and input and output requirements defined.
7/25/12

DATA DICTIONARY
Throughout the process a data dictionary is used to provide consistency of variables, entities, and screens. This is an important distinction between traditional programming and CASE.

Click to edit Master subtitle style

7/25/12

SCREENS AND REPORTS


In this phase prototype screen designs and reports are generated with the help or routines available within the CASE software. The screens are built from entities stored in the data dictionary. This ensures consistent usage of Click to edit Master subtitle style terms, variables, fields, and records.

7/25/12

ANALYSIS
A variety analytical tools are available in Excelerator. For example, a programs logic can be analyzed for inconsistencies, omissions, or redundancies, using available graphics edit Master subtitle Excelerator can techniques. style Click to analyze logic levels and detect programming logic in an exploded module that may properly belong in a lower or higher level module.
7/25/12

CODE GENERATION
One of the most laborious tasks in programming is the actual writing of code. CODE is the conversion of logical steps or screens and report content into instructions that the computer can understand. DATA MAP is consistent with the variable names used, not only on the display screen but throughout the program, and is easily converted to programming code.
7/25/12 Click to edit Master subtitle style

DOCUMENTATION
In traditional programming, documentation is the last step completed in the process, often done after the programmer has forgotten specific details. In CASE, the documentation process automatically begins early in the software development cycle.

Click to edit Master subtitle style

7/25/12

PHYSICA L DESIGN
7/25/12

PHYSICAL DESIGN
The purpose of physical design is to specify all the technological characteristics of the system so that those involved in the implementation phase can concentrate on building the system, not on deciding how the system should be built.

7/25/12

Steps in Physical design:


1.

2.

3.

Designing physical files and Databases: Describes how data will be stored and access in secondary computer memory and how the quality of data will be insured. Designing system and program structures: Describes the various programs and program modules which correspond to the data flow diagrams and other documentation developed in prior life cycle stages. Designing distributed processing strategies: Describes how your system will make data and processing available to users on Click to edit Master subtitle style computer networks within the capabilities of existing computer networks.

7/25/12

Physical File and Database Design


As in logical design, the three steps of the physical design phasephysical file and database design, program and system structure design, and distributed system design-are typically conducted in parallel because of the overlap of issues addressed. Click to edit Master subtitle style

7/25/12

Designing physical files and databases requires certain information that should have been collected and produce during prior SDLC phases. The information needed for physical file and databases includes these requirements: Normalized relations, including volume estimates Definitions of each attribute Descriptions of where and when data are used: entered, retrieved, deleted, and updated (including Click to edit Master subtitle style frequencies) Expectations or requirements for response time and data integrity Descriptions of the technologies used for implementing the files and database so that the range of required decisions and choices for each is known.
7/25/12

The Process of Physical File and Database Design

Designing Fields
A field is the smallest unit of application data recognized by system software, such as a programming language or database management system. In general, you will Click to each attribute representedit Master subtitle style from each normalized relation as one or more fields.

7/25/12

Choosing Data Types and Representations


A data type is a detailed coding scheme recognized by system software for representing organizational data. The bit pattern of coding scheme is usually transparent to you, but the space to store data the speed required to access data are of consequence in the physical file and database design. Click to edit Master subtitle style

7/25/12

Controlling Data Integrity an explicit value is Default Value: The value a field will assume unless
entered for a field. Picture Control: A pattern of codes that restricts the width and possible values for each position within the field. Range Controls: Both numeric and alphabetic data may have a limited set of permissible values. Referential Integrity: The term referential integrity was defined as limiting values for a given attribute to the existing values of another Click to edit Master subtitle style attribute in data model. Null Value Control: Is a special field value, distinct from 0, blank, or any other value, that indicates that the value for the field is missing or otherwise unknown

7/25/12

DESIGNING PHYSICAL RECORDS


A Physical record is a group of fields stored in adjacent memory locations and retrieved together as a unit. A Pages is the amount data read or written in one secondary memory input or output operation.

Click to edit Master subtitle style

7/25/12

related field or record of data. Access method: An operating system algorithm for storing and locating data in secondary memory. File Organizations: A technique for physically arranging the records of a file on secondary storage devices. Sequential File Organizations: The records in the file are stored in sequence according to a primary key value. Indexed file organization: The records are either stored sequentially or non-sequentially and an7/25/12 is created that allows software to locate index

Hashed File Organization


In a hashed file organization, the address of each record is determined using hashing algorithm. A hashing algorithm is a routine that converts a primary key value into a record address. Although there are several variations of hashed files, in most cases the records are located non-sequentially as dictated by the hashing algorithm. Click to edit Master subtitle style

7/25/12

Forward Recovery (roll forward)


An approach to rebuilding a file in which one starts with an earlier version of the file and either reruns prior transactions or replaces a record with its image after each transaction.

Click to edit Master subtitle style

7/25/12

Backward Recovery (roll back)


An approach to rebuilding a file in which before images of changed records are restored to the file in reverse order until some earlier state is achieved.

Click to edit Master subtitle style

7/25/12

Audit Trial
A list of changes to a data files which allows business transactions to be traced. Both the updating and use of data should be recorded in the audit trial, since the consequences of bad data should be discovered and corrected.

Click to edit Master subtitle style

7/25/12

Is the coding or scrambling of data so that they cannot be read by humans.

Encryption

Calculating File Size


Sometimes it is necessary to calculate the potential size of data files. There are two purposes for calculating the total amount of space a file might consume. First, in some computer environments, you must request a fixed amount of space for each file, and you want to ask for enough but not too much. Second, there may be an issue of whether enough space exists, or you may need to determine the size of a hard disk needed for an 7/25/12 application.

7/25/12

Vous aimerez peut-être aussi