Don't Erase by Caballero!!!!

download Don't Erase by Caballero!!!!

of 53

Transcript of Don't Erase by Caballero!!!!

  • 7/31/2019 Don't Erase by Caballero!!!!

    1/53

    Click to edit Master subtitle style

    7/25/12

    SYSTEMPROGRAMMING

    AND TESTING

  • 7/31/2019 Don't Erase by Caballero!!!!

    2/53

    7/25/12

    WHAT IS

    SYSTEMPROGRAMMING?

  • 7/31/2019 Don't Erase by Caballero!!!!

    3/53

    Click to edit Master subtitle style

    7/25/12

    The activity of programming system software. The primary distinguishing characteristic of systemsprogramming when compared to applicationprogramming is that application programmingaims to produce software which provides services tothe user (e.g. word processor), whereas systemsprogramming aims to produce software whichprovides services to the computer

    hardware (e.g. disk defragmenter).It requires a greater degree of hardware awareness.

  • 7/31/2019 Don't Erase by Caballero!!!!

    4/53

    7/25/12

    In system programming morespecifically:

    the programmer will make assumptions about thehardware and other properties of the system that theprogram runs on, and will often exploit those properties(for example by using an algorithm that is known to beefficient when used with specific hardware)

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

    can operate in resource-constrained environments is very efficient and has little runtime overhead has a small runtime library, or none at all allows for direct and "raw" control over memory

    access and control flow

    lets the programmer write parts of the programdirectl in assembl lan ua e

  • 7/31/2019 Don't Erase by Caballero!!!!

    5/53

    7/25/12

    Debugging can be difficult if it is notpossible to run the program in a debuggerdue to resource constraints. Running theprogram in a simulated environment canbe used to reduce this problem.

    Systems programming is sufficientlydifferent from application programmingthat programmers tend to specialize in one

    or the other.

  • 7/31/2019 Don't Erase by Caballero!!!!

    6/53

    7/25/12

    In system programming, often limitedprogramming facilities are available. The useof automatic garbage collection is notcommon and debugging is sometimes hardto do. The runtime library, if available at all,is usually far less powerful, and does lesserror checking. Because of thoselimitations, monitoring and logging areoften used; operating systems may haveextremely elaborated logging sub systems.

    Implementing certain parts in operatingsystem and networking requires systemsprogramming (for example implementingPaging (Virtual Memory) or a devicedriver for an operating system).

  • 7/31/2019 Don't Erase by Caballero!!!!

    7/53

    7/25/12

    Several ProgrammingLanguage Available

    PROCEDURAL LANGUAGEA procedural language is a programming language inwhich everything is processed in the order it appears

    to the computer.

    In contrast, an object-oriented language is a languagein which everything is processed depending on whathappens in the program -- user input, errors, or otherevents.

    PHP is both a procedural and object-oriented language,depending on the way it is used.

  • 7/31/2019 Don't Erase by Caballero!!!!

    8/53

    7/25/12

    Procedural language is a

    programming language that requiresprogramming discipline, such as C/C++, Java, COBOL, FORTRAN, Perl and

    JavaScript. Also called an "imperativelanguage," programmers writing insuch languages must develop a properorder of actions in order to solve the

    problem, based on knowledge of dataprocessing and programming

  • 7/31/2019 Don't Erase by Caballero!!!!

    9/53

    7/25/12

    Event-Driven Language It is not procedural but external

    actions or events that are initiated.

    By the user dictates the control flowof the program.Example:

    Visual Basic

  • 7/31/2019 Don't Erase by Caballero!!!!

    10/53

    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 applicationsquickly and easily.

    The origins of Visual Basic are found in a programminglanguage created in 1964 by John Kemeny and Thomas

    Kurtz. BASIC (Beginners All-purpose Symbolic InstructionCode) was originally an interpreted language that wasdesigned to simplify the programming process and makeprogramming more accessible to the world at large. Usingthat philosophy, Microsoft integrated a BASIC interpreter into

    its operating system MS-DOS. Despite its wide distributionand relative simplicity, BASIC was not able to compete withfaster, compiled languages such as C or C++. Thus, BASICwas commonly used for trivial or educational purposes,whereas "real" applications were usually developed in other

    languages.

  • 7/31/2019 Don't Erase by Caballero!!!!

    11/53

    7/25/12

    OBJECT-ORIENTED LANGUAGE(OOL)

    object-oriented language (OOL) Aprogramming language usedin object-oriented programming. Insuch a system the concept of procedure and data, which isembodied in conventional

    programming systems, is replaced bythe concepts of objects andmessages: an object is a package of information and a description of itsmanipulation, and a message is a

  • 7/31/2019 Don't Erase by Caballero!!!!

    12/53

    7/25/12

    MODULAR PROGRAMMING A programming style that breaks down

    program functions into modules, each of whichaccomplishes one function and contains all thesource code and variables needed toaccomplish that function. Modularprogramming is a solution to the problem of very large programs that are difficult to debugand maintain. By segmenting the program intomodules that perform clearly defined functions,you can determine the source of programerrors more easily. Object-orientatedprogramming languages, such as Small Talkand Hyper Talk, incorporate modularprogramming principles.

  • 7/31/2019 Don't Erase by Caballero!!!!

    13/53

    Click to edit Master subtitle style

    7/25/12

    Benefits Associated fromModular Approach

    PROGRAM EFFICIENCY

    Program efficiency is usually considered fromthe point of view of optimizing code. Selecting

    a proper data structure can have aremarkable effect on the efficiency of thefinal program. In this paper it is shown howone problem can be solved in several waysusing several different data structures. Theefficiency of the programs depends on thedata structures selected.

  • 7/31/2019 Don't Erase by Caballero!!!!

    14/53

    7/25/12

    CONTROL

    MAINTENANCE EFFICIENCYModules are easier to analyze and change whichreduce the start up time during the maintenance.

  • 7/31/2019 Don't Erase by Caballero!!!!

    15/53

    7/25/12

    The Advantages Of Using ModularProgramming

    In modular programming theprogrammers will split their code intosmall sections of code. The small sectionscan be called as modules. Each module issplit into sub-modules and the sub-modules are known as calling modules. Itis difficult to debug and maintain very

    large programs. Modular programming issubdividing such type of large programsinto separate subprograms.

  • 7/31/2019 Don't Erase by Caballero!!!!

    16/53

    7/25/12

    The advantages of using modularprogramming:

    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 oneprogram work in one application at the same time.

    Duplication of code is not possible in modularprogramming. The programmers create a single procedurefor code.

    The errors are localized to a subroutine or function and itis easy to find the errors.

    The code should be used in multiple applications inmodular programming.

  • 7/31/2019 Don't Erase by Caballero!!!!

    17/53

    7/25/12

    SYSTEM TESTING

    Database and structure createdand populated with dataequipment is purchased andinstalled, employees are trained,the system is documented andthe new system is installed.

  • 7/31/2019 Don't Erase by Caballero!!!!

    18/53

    7/25/12

    System testing of software or hardware is testingconducted on a complete, integrated system to evaluatethe system's compliance with itsspecified requirements. System testing falls within thescope of black box testing, and as such, should requireno knowledge of the inner design of the code orlogic. As a rule, system testing takes, as its input, all of the "integrated" software components that have

    successfully passed integration testing and also thesoftware system itself integrated with any applicablehardware system(s). The purpose of integration testingis to detect any inconsistencies between the softwareunits that are integrated together (called assemblages)or between any of the assemblages and the hardware.System testing is a more limited type of testing; it seeksto detect defects both within the "inter-assemblages"and also within the system as a whole.

  • 7/31/2019 Don't Erase by Caballero!!!!

    19/53

    7/25/12

    SYSTEM REQUIREMENT SPECIFICATION

    The System RequirementsSpecification (SRS) document describesall data, functional and behavioralrequirements of the software underproduction or development. This 10-section template covers the

    overall description of thesystem/software to be implemented, usecases and scenarios, data model,functional and non-functional

    requirements, interface and behavioral

  • 7/31/2019 Don't Erase by Caballero!!!!

    20/53

    7/25/12

    WHAT ISCASE?

  • 7/31/2019 Don't Erase by Caballero!!!!

    21/53

    7/25/12

    Computer-aided software engineering(CASE) is the application of thecomputer to the software developmentprocess. CASE automates programdesign and coordinate design

    specification. It also facilitates screenand report design and writes code.CASE is a rapidly emergingmethodology wherein the computertakes over tasks that traditionallywhere perform manually.

  • 7/31/2019 Don't Erase by Caballero!!!!

    22/53

    Click to edit Master subtitle style

    7/25/12

    CASE consists of a group of software tools and techniques that maybe run of a desktop computer or large mainframe to handle thedevelopment task in an environment of maximum programmerproductivity. It uses data dictionaries, data models, and otherelements. With CASE, software developers can produce softwaremore quickly and at a lower cost.

  • 7/31/2019 Don't Erase by Caballero!!!!

    23/53

    Click to edit Master subtitle style

    7/25/12

    EVOLUTION OFPROGRAMMING LANGUAGESMACHINE LANGUAGE

    is the earliest language developed for computers. consisted of code written as strings of ones and

    zeros that directed the machine to performspecific function

    ASSEMBLER LANGUAGE Consisted of a group of abbreviation, or

    mnemonics, known as operation codes orsimply op codes.

  • 7/31/2019 Don't Erase by Caballero!!!!

    24/53

    7/25/12

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

    These languages were developed to reflectthe way programmers thought and worked.For instance, FORTRAN was patterned aftermathematical equations and COBOL afterordinary business english.

    COMPILERS Since computers do not understand english or

    mathematics for that matter, special conversionprograms known as COMPILERS were needed.

    These COMPILERS converted english ormathematic instructions into machinelanguage. This represented another steptoward automation.

  • 7/31/2019 Don't Erase by Caballero!!!!

    25/53

    7/25/12

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

    These are refinements and extensions of earlierlanguages.ADA, Pascal, C and some advanceddialects of BASIC came in to use.

    These further separated the programmer fromthe 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 attemptto further removed programmers from languagedetails and allow them to focus on the problemsbeing solved.

  • 7/31/2019 Don't Erase by Caballero!!!!

    26/53

    Click to edit Master subtitle style

    7/25/12

    EVOLUTION OF PROGRAMMING LANGUAGES

    BASIC

    ADAUSCDPascal

    MacroAssembler

    FORTRAN

    FORTRANIV

    Microsof t

    BASIC

    ALGOL

    PL/I

    APL

    FORTH

    MachineLanguage

    AssemblerLanguage

    ANSCOBOL

    FORTRAN77

    C

    Pascal

    COBOL

  • 7/31/2019 Don't Erase by Caballero!!!!

    27/53

    Click to edit Master subtitle style

    7/25/12

    ASSEMBLER ADA BASIC C COBOL FORTRAN

    PASCAL PL/I

    Wide availability X X X X

    Standardized X X X X X XStructured X X XOriented to professionalprogrammer

    X X X X X X

    Suited to novices X XBusiness application X X X

    Educational application X X X

    Operating systemprogramming

    X X X

    Scientific and mathematicalapplications

    X X X

    Interactive application X X X X X

    Resembles english X X X

    LANGUAGE SELECTION CRITERIA

  • 7/31/2019 Don't Erase by Caballero!!!!

    28/53

    Click to edit Master subtitle style

    7/25/12

    PREPARING SOFTWARE SPECIFICATION

    Systems analysts often must prepare software specification beforeprograms are written. A set of specifications is drawn up defining thelanguage, memory limits language standards and other requirements.

    The software specification should define program length, input andoutput parameters, computations, to be performed, and documentationrequirements. Once a set up specifications has been written it can beturned over to programmers for software development and coding.

  • 7/31/2019 Don't Erase by Caballero!!!!

    29/53

    Click to edit Master subtitle style

    7/25/12

    TRADITIONAL SOFTWARE DEVELOPMENT LIFECYCLE

    the traditional software development lifecycle begins with a definition of theproblem, followed by diagramming. Theproblem is then coded in a specificlanguage, creating a program. The programis tested and debugged, and thendocumentation is completed. The steps

    involved in flowcharting, coding, runningand debugging may be repeated manytimes until a functional program isdeveloped.

  • 7/31/2019 Don't Erase by Caballero!!!!

    30/53

    Click to edit Master subtitle style

    7/25/12

    DESIGN WALKTHROUGH

    Is a procedure in which a programmer or analyst manuallychecks through each module or block of program coded tocheck its accuracy and completeness.

    It detects errors in logic and coding early in the programmingcycle so that they can be corrected easily.

  • 7/31/2019 Don't Erase by Caballero!!!!

    31/53

    Click to edit Master subtitle style

    7/25/12

    MAJOR STEPS IN CASE PROCESS

    1.

    Problem definition2. Construction of data dictionary3. Construction of screens and reports4. Analysis code generation5. Integrated documentation

  • 7/31/2019 Don't Erase by Caballero!!!!

    32/53

    7/25/12

    ELEMENTS OF CASE PROCESS

    PROBLEM DEFINITION

    As in traditional programming,the first step is thepreparation of a clear problemstatements. Beforeprogramming can be written,user needs must be assessedand input and outputrequirements defined.

  • 7/31/2019 Don't Erase by Caballero!!!!

    33/53

    Click to edit Master subtitle style

    7/25/12

    DATA DICTIONARY

    Throughout the process a data dictionary is used to provideconsistency of variables, entities, and screens. This is an importantdistinction between traditional programming and CASE.

  • 7/31/2019 Don't Erase by Caballero!!!!

    34/53

    Click to edit Master subtitle style

    7/25/12

    SCREENS AND REPORTS

    In this phase prototype screen designs andreports are generated with the help or routinesavailable within the CASE software. The screensare built from entities stored in the datadictionary. This ensures consistent usage of terms, variables, fields, and records.

  • 7/31/2019 Don't Erase by Caballero!!!!

    35/53

    Click to edit Master subtitle style

    7/25/12

    ANALYSIS

    A variety analytical tools are available inExcelerator. For example, a programs logiccan be analyzed for inconsistencies,omissions, or redundancies, using availablegraphics techniques. Excelerator cananalyze logic levels and detect

    programming logic in an exploded modulethat may properly belong in a lower orhigher level module.

  • 7/31/2019 Don't Erase by Caballero!!!!

    36/53

    Click to edit Master subtitle style

    7/25/12

    CODE GENERATIONOne of the most laborious tasks inprogramming is the actual writing of code.

    CODE is the conversion of logical steps orscreens and report content into instructionsthat the computer can understand.

    DATA MAP is consistent with the variablenames used, not only on the display screenbut throughout the program, and is easilyconverted to programming code.

  • 7/31/2019 Don't Erase by Caballero!!!!

    37/53

    Click to edit Master subtitle style

    7/25/12

    DOCUMENTATIONIn traditional programming, documentation is the last stepcompleted in the process, often done after the programmer hasforgotten specific details. In CASE, the documentation processautomatically begins early in the software development cycle.

  • 7/31/2019 Don't Erase by Caballero!!!!

    38/53

    7/25/12

    PHYSICALDESIGN

  • 7/31/2019 Don't Erase by Caballero!!!!

    39/53

    7/25/12

    PHYSICAL DESIGN

    The purpose of physical design is to specifyall the technological characteristics of thesystem so that those involved in theimplementation phase can concentrate onbuilding the system, not on deciding how thesystem should be built.

  • 7/31/2019 Don't Erase by Caballero!!!!

    40/53

    Click to edit Master subtitle style

    7/25/12

    Steps in Physical design:1. Designing physical files and Databases: Describes how datawill be stored and access in secondary computer memory and

    how the quality of data will be insured.2. Designing system and program structures: Describes the

    various programs and program modules which correspond tothe data flow diagrams and other documentation developed in

    prior life cycle stages.3. Designing distributed processing strategies: Describes how

    your system will make data and processing available to userson computer networks within the capabilities of existingcomputer networks.

  • 7/31/2019 Don't Erase by Caballero!!!!

    41/53

    Click to edit Master subtitle style

    7/25/12

    Physical File and Database

    DesignAs in logical design, the three steps of the physical design phase-physical file and database design, program and system structuredesign, and distributed system design-are typically conducted in

    parallel because of the overlap of issues addressed.

    The Process of Physical File and

  • 7/31/2019 Don't Erase by Caballero!!!!

    42/53

    Click to edit Master subtitle style

    7/25/12

    The Process of Physical File andDatabase Design

    Designing physical files and databases requires certain

    information that should have been collected and produceduring prior SDLC phases. The information needed forphysical 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 (includingfrequencies)

    Expectations or requirements for response time

    and data integrity Descriptions of the technologies used for

    implementing the files and database so that therange of required decisions and choices for each isknown.

  • 7/31/2019 Don't Erase by Caballero!!!!

    43/53

    Click to edit Master subtitle style

    7/25/12

    Designing Fields

    A field is the smallest unit of applicationdata recognized by system software, such

    as a programming language or databasemanagement system. In general, you willrepresent each attribute from eachnormalized relation as one or more fields.

  • 7/31/2019 Don't Erase by Caballero!!!!

    44/53

    Click to edit Master subtitle style

    7/25/12

    Choosing Data Types

    and RepresentationsA data type is a detailed coding scheme recognized by systemsoftware 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 thephysical file and database design.

    Controlling Data

  • 7/31/2019 Don't Erase by Caballero!!!!

    45/53

    Click to edit Master subtitle style

    7/25/12

    Controlling DataIntegrity

    Default Value: The value a field will assume unless an explicit value isentered for a field.

    Picture Control: A pattern of codes that restricts the width and possiblevalues for each position within the field.

    Range Controls: Both numeric and alphabetic data may have a limitedset of permissible values.

    Referential Integrity: The term referential integrity was defined aslimiting values for a given attribute to the existing values of anotherattribute in data model. Null Value Control: Is a special field value, distinct from 0, blank, or anyother value, that indicates that the value for the field is missing orotherwise unknown

  • 7/31/2019 Don't Erase by Caballero!!!!

    46/53

    Click to edit Master subtitle style

    7/25/12

    DESIGNING PHYSICALRECORDS

    A Physical record is a group of fields stored in adjacent memorylocations and retrieved together as a unit.

    A Pages is the amount data read or written in one secondary memoryinput or output operation.

    related field or record of data.

  • 7/31/2019 Don't Erase by Caballero!!!!

    47/53

    7/25/12

    related field or record of data.

    Access method: An operating system algorithmfor storing and locating data in secondarymemory.

    File Organizations: A technique for physicallyarranging the records of a file on secondarystorage devices.

    Sequential File Organizations: The records inthe file are stored in sequence according to aprimary key value.

    Indexed file organization: The records areeither stored sequentially or non-sequentially andan index is created that allows software to locate

    H h d Fil

  • 7/31/2019 Don't Erase by Caballero!!!!

    48/53

    Click to edit Master subtitle style

    7/25/12

    Hashed FileOrganization

    In a hashed file organization, the address of each record is determinedusing hashing algorithm.

    A hashing algorithm is a routine that converts a primary key valueinto a record address. Although there are several variations of hashedfiles, in most cases the records are located non-sequentially asdictated by the hashing algorithm.

  • 7/31/2019 Don't Erase by Caballero!!!!

    49/53

    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 earlierversion of the file and either reruns prior transactions or replacesa record with its image after each transaction.

  • 7/31/2019 Don't Erase by Caballero!!!!

    50/53

    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 untilsome earlier state is achieved.

  • 7/31/2019 Don't Erase by Caballero!!!!

    51/53

    Click to edit Master subtitle style

    7/25/12

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

  • 7/31/2019 Don't Erase by Caballero!!!!

    52/53

    7/25/12

    Encryption Is the coding or scrambling of data so that

    they cannot be read by humans.

    Calculating File SizeSometimes it is necessary to calculate thepotential size of data files. There are twopurposes for calculating the total amount of space a file might consume. First, in somecomputer environments, you must request afixed amount of space for each file, and youwant to ask for enough but not too much.Second, there may be an issue of whetherenough space exists, or you may need todetermine the size of a hard disk needed for an

    application.

  • 7/31/2019 Don't Erase by Caballero!!!!

    53/53