review of it

65
REVIEW Introduction to Computing Introduction to Programming Data Structure Database Management System Fundamentals of Algorithms Software Engineering

Upload: maunisa-ahsan-alam

Post on 03-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 1/65

REVIEW•Introduction to Computing

•Introduction to Programming

•Data Structure•Database Management System

•Fundamentals of Algorithms

•Software Engineering

Page 2: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 2/65

What is Software?

The set of instructions that operates various parts of 

the hardware. Also termed as “computer program” 

Page 3: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 3/65

Computer Software

The Hardware needs Software to be useful & the

Software needs Hardware to be useful.

When the user needs something done by the

computer, he/she gives instructions in the form of 

Software to computer Hardware

These instructions need to be written in a language

that is readily understood by computer 

Page 4: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 4/65

 

Machine Language

Machine language, though readily understood by

microprocessors, is very difficult to write in for human

 programmers

Language Translator 

Human programmers write programs in a language that is

easy to understand for them.

They use language translators to convert that program into

machine language – a language that is easy to understand

for the Processor (CPU).

Page 5: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 5/65

Software Development

The Software development process involves many steps, and

coding, that is typing the instructions in a high-level language

is only a small part of that process – taking-up only around

15% of the effort

Page 6: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 6/65

Page 7: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 7/65

Major Types of Software

System Software 

Programs that generally perform the background tasks in a computer.

These programs, many times, talk directly to the Hardware

1. Operating System

2. Device Driver (Modem, Sound, etc )

3. Utility (Disk Operation, Compression etc)

Application SoftwarePrograms that generally interact with the user to perform work that is

useful to the user. These programs generally talk to the Hardware

through the assistance of system Software1. Scientific/Engineering/Graphics

2. Business

3. Productivity

4. Entertainment

5. Educational

Page 8: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 8/65

3 types of Software licensees

1. Proprietary:Most software on a Windows PC or a Macintosh

 belongs to this category 

2. Freeware:Most software on a Linux PC belongs to that

category 

3. Shareware:The category which lies between the above twocategories

Page 9: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 9/65

Proprietary Software License

The user is legally barred from making copies of thelicensed Software. Generally, the license is for the personaluse only

Types of Proprietary Licenses1. Single User License

2. Multi User License

3. Concurrent User License

4. Site License

Open Source Software Licenses1. Linux

Trail Based Software Licenses

Page 10: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 10/65

What is Algorithm?

When faced with a problem:

1. We first clearly define the problem

2. Think of possible solutions

3. Select the one that we think is the best under the prevailing circumstances

4. And then apply that solution

5. If the solution woks as desired, fine; else we go back tostep 2

Page 11: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 11/65

Definition of Algorithm

A precise sequence of a limited number of 

unambiguous, executable steps that terminates in the

form of a solution

Why Algorithm is useful?

Why write Algorithm down?

Page 12: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 12/65

Analysis of Algorithm

1. Computational time

2. Memory

3. Bandwidth

4. Logic functions

Page 13: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 13/65

Golden Principal

1. Break down the problem into small, simple sub-problems

2. Arrange the sub-problems in such an order that each of 

them can be solved without effecting any other 

3. Solve them separately, in the correct order 

4. Combine the solutions of the sub-problems to form the

solution of the original problem

Page 14: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 14/65

Deterministic Algorithm

An algorithm whose behavior can be completely predicted

from the inputs

Randomized Algorithm

Any algorithm whose behavior is not only determined by

the input, but also values produced by a random number 

generator 

Heuristic Algorithm

An procedure that usually, but not always, works or that

gives nearly the right answer 

Syntax and Semantics Errors

Page 15: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 15/65

Algorithm Representation

Generally, Software developers represent them inone of three forms:

1. Pseudo code

1. Typically for algorithms

2. Plain English3. Programming language with syntax errors

2. Flowcharts

A graphical representation of an algorithm, in which graphic

objects are used to indicate the steps & decisions that are

taken as the process moves along from start to finish(Symbols for start, process, condition, loop and finish)

3. Actual code

Programming language with out syntax errors

Page 16: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 16/65

What is Programming?

A sequence of steps is called Programming.Two types of Programming

1. Batch Programming

2. Event Driven Programming

Two Level of Programming1. High Level Programming

2. Low Level Programming

Page 17: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 17/65

Object Oriented Design

The designer starts with any component (object) of the

system; designs it as an independent, self-contained system,

and then moves to the design of some other component

Fitting together a collection

Component are kept independent of the over-all system

2 Aspects Object:

State

Behavior 

Page 18: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 18/65

Structured Design

Also called Top down Design

The designer starts by first conceiving a skeleton

high-level design of the system, and then starts

defining features of that over-all design in an ever-

increasing detail

small changes in the functionality

difficult to maintain & understand

Page 19: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 19/65

Software Life-Cycle

• The sequence of phases a Software goes through from theconcept to decommissioning

• It is important to think about all those phases before the

design work starts

• Thinking about the future phases generally results in:

 –  Shorter delivery times

 –  Reduced costs of development

 –  A system of higher quality

S f D l d

Page 20: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 20/65

Software Development and

Maintenance

S ft D l t d

Page 21: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 21/65

Software Development and

Maintenance

Concept: What needs to be done? 

Feasibility: Preliminary exploration of possible solutions,

technologies, suppliers 

User Requirement: The user documents as much as he knows

about the job the system must do 

Developer Specs: Developer analyses users requirement,

 performs further investigation, and produces unambiguous 

specifications Planning: Detailed plan specifying the required resources and

expected deliverables

S ft D l t d

Page 22: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 22/65

Software Development and

MaintenanceArchitecture: Decompose the problem into subsystems and

define their relationships

Detailed Design: Decompose further such that one person can

manage each sub-subsystem

Implementation: Design and code

Integrating Testing: Bring the sub-subsystems together to form

subsystems and test. Bring subsystems together to form the

system and test

Opr.& Maintenance: Use, Enhance, Adapt and Correct

Retirement: Phase it out when the time comes

Page 23: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 23/65

Testing Phases

Page 24: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 24/65

Database Management System

Data: Raw material is called data

Information: useful material is called information

Data Management: Management of data is called

Data Management

Database: A huge quantity of information

Database Management System: A management

system which efficiently access the database

Page 25: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 25/65

Issues in Data Management

Data Entry

Data Updates

Data Integrity

Data Security Data Accessibility

Data Deleting

Database has Flat File Databases in which has someRecords, records has some fields and recorddelimiter.

Page 26: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 26/65

Some Terminologies

Relational DBMS

Primary key

Foreign key

Queries

Forms

Reports

Data Mining

Page 27: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 27/65

Flow Chart Symbols

Start or stop

Process

Continuation mark

Decision

Flow line

Page 28: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 28/65

Flow Chart for if statement

Condition 

Process 

IF 

Then 

Entry point for IF block 

Exit point for IF block 

Note indentation from left to right 

Page 29: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 29/65

What is Data Structure?

Data structures organize data more efficient

 programs

More powerful computers more complex

applications

More complex applications demand more

calculations.

Page 30: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 30/65

Organizing Data

Any organization for a collection of records that can

 be searched, processed in any order, or modified.

The choice of data structure and algorithm can

make the difference between a program running in afew seconds or many days.

Page 31: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 31/65

Efficiency

A solution is said to be efficient if it solves the

 problem within its resource constraints.

Space

Time

The cost of a solution is the amount of resources

that the solution consumes.

Page 32: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 32/65

Selecting a Data Structure

Select a data structure as follows:

Analyze the problem to determine the resource

constraints a solution must meet.

Determine the basic operations that must besupported. Quantify the resource constraints for 

each operation.

Select the data structure that best meets theserequirements.

Page 33: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 33/65

Some Questions to Ask 

Are all data inserted into the data structure at the

 beginning, or are insertions interspersed with other 

operations?

Can data be deleted? Are all data processed in some well-defined order,

or is random access allowed?

Page 34: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 34/65

What is Engineering?

The process of productive use of scientific knowledgeis called engineering 

What is Software Engineering?This is the process of utilizing our knowledge of 

computer science in effective production of software

systems 

Page 35: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 35/65

Well Designed Software

It is reliable

It has good user-interface

It has acceptable performance

It is of good quality

It is cost-effective

Page 36: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 36/65

Software Productivity

Project Management

Requirement Engineering

Design

Coding Testing

Software Quality Assurance

Software Configuration Management

Software Integration and

Rest of the activities

Page 37: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 37/65

2 major Part of Development

Construction Requirement Gathering

Design Development

Coding

Testing

Management Project Planning and Management

Configuration Management

Software Quality Assurance

Installation and Training

Management

Construction

• Project planning and

management• Configuration

management

• Quality assurance• Installation and

trainingetc.

• Requirements• Design• Coding

• Testing• Maintenanceetc.

Page 38: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 38/65

Software Framework 

Quality Focus

Processes

Methods

Tools

Quality Focus

Process

TOO

LS

Task SetTask Set

MethodMethod

Page 39: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 39/65

Software Development Loop

Problem Definition

Technical Development

Solution Integration

Status Quo ProblemDefinition

SolutionIntegration

TechnicalDevelopment

Status Quo

Page 40: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 40/65

Software Engineering Phases

Vision

Definition

Development

Maintenance

Vision Definition Development MaintenanceVision Definition Development Maintenance

Page 41: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 41/65

Software Requirements

A condition or capability needed by user to solve a

 problem or achieve an objective.

A condition or capability that must be met or 

 possessed by a system or system component tosatisfy a contract, standard, specification, or other 

formally imposed document.

A documented representation of a condition or 

capability as in 1 or 2.

(Defined by IEEE)

Page 42: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 42/65

Role of Requirement

Page 43: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 43/65

Level of Requirements

Business Requirements

User Requirements

Functional Requirements  Non Functional Requirements

Page 44: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 44/65

Requirement Statement Characteristics

Complete

Correct

Feasible

 Necessary

Prioritized

Unambiguous

Verifiable

Page 45: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 45/65

Several Components of Software

Requirements

Page 46: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 46/65

Diagrams

Scope Diagram

Business Process Model

Activity Diagram

State Transition Diagram

Data Flow Diagram

Use Case Diagram

Page 47: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 47/65

Software Design

Managing Complexity of a Software System

Software Design Process

Software Design Strategies

Software Design Qualities Maintainable Design

Coupling and Cohesion

Abstraction and Encapsulation

Object Oriented Design

Page 48: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 48/65

Graphical User Interface

Sketches of Application If requirements are not stable:

System users often judge a system by its interface rather than its

functionality

A poorly designed interface can cause a user to make catastrophic errors

Poor user interface design is the reason why so many software systems

are never used

Pitfalls of using GUIs in Functional Specifications

UIs distract from business process understanding (what) to interfacing

details (how)

Unstable requirements cause frequent modifications in UIs

An extra work to be done at the requirement level each time a GUI

change has to be incorporated

Page 49: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 49/65

Object Oriented Design

The Object and the Class Classification

Object Model

Object Oriented Analysis

Static ModelDynamic Model

UML Object Oriented Notation

Identify Structures

Class Diagram/Object Model

Associations

Aggregations

Page 50: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 50/65

Software Architecture

Architecture is the organizational structure of a

system. An architecture can be recursively

decomposed into parts that interact through

interfaces, relationships that connect parts, andconstraints for assembling parts. Parts that interact

through interfaces include classes, components and

subsystems 

Page 51: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 51/65

Why architecture is important? Mutual Communication

Early Design Discussion

Reusable abstraction of a system

Architecture Attributes Performance

Security

Safety

Availability

Maintainability

Architecture Design Process System Structuring

Control Modeling

Modular Decomposer 

Page 52: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 52/65

Architecture Model

Logical View

End-user 

Functionality 

End-user 

Functionality 

Implementation View

Programmers

Software management 

Process View

Performance

Scalability 

Throughput 

System integrators

Performance

Scalability 

Throughput 

System integrators

Deployment View

System topology 

Delivery, installationCommunication

System engineering

Conceptual Physical

Use Case View

Page 53: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 53/65

Architecture styles

 N Tier architecture

Tree Tier architecture

Pipe and filters architecture

Layered architectureReference architecture

Partitioning architecture

Page 54: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 54/65

Good Programming Practice

Maintainability Code Self Documentation Code

Function size

Identifier Names

Coding Style Guide Classes and Interfaces • Comments in Coding

• Expression and Statement

• Clarity through Modularity

• Performance

• Portability

• Exception Handling

Page 55: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 55/65

Software Verification and Validation

Verification

Does the product meet system specifications?

Have you built the product right?

Validation

Does the product meet user expectations? Have you built the right product?

Defect

A defect is a variance from a desired product attribute. These attributes

may involve system specifications well as user expectation. Anything

that may cause customer dissatisfaction, is a defect

Page 56: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 56/65

Software Testing Objective The correct approach to testing a scientific theory is not to try to verify it,

 but to seek to refute the theory. That is to prove that it has errors. (Popper 1965)

The goal of testing is to expose latent defects in a software system before itis put to use.

A software tester tries to break the system. The objective is to show the presence of a defect not the absence of it.

Testing cannot show the absence of a defect. It only increases your confidence in the software.

This is because exhaustive testing of software is not possible – it is simplytoo expansive and needs virtually infinite resources.

Successful Test“A test is said to be successful if it discovers an errors” by Doctor’sanalogy

Page 57: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 57/65

Issues in Testing

Testing limitations

Test Cases and Test Data

Testing versus Development

Usefulness of Testing

Page 58: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 58/65

Testing and Software Phases

Requirement

Specification 

System

Specification 

System

Design 

Detailed

Design 

Code and

unit test 

Acceptance

Test Plan 

System

Integration

Test Plan 

Sub-system

Integration

Test Plan 

Sub-system

Integration

test 

System

Integration

test 

Acceptance

Test Production 

Page 59: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 59/65

White and Black Box Testing

White box Testing

In structural or white box testing we look inside the system and

evaluate what it consists of and how is it implemented. The inner of asystem consists of design, structure of code and its documentationetc. Therefore, in white box testing we analyze these internal

structures of the program and devise test cases that can test thesestructures.

Black Box Testing

In this type of testing, a component or system is treated as a black

box and it is tested for the required behavior. This type of testing is

not concerned with how the inputs are transformed into outputs. Asthe system’s internal implementation details are not visible to thetester. He gives inputs using an interface that the system providesand tests the output. If the outputs match with the expected results,system is fine otherwise a defect is found.

Al ith C l it

Page 60: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 60/65

Algorithm Complexity

Coverage: Statement Coverage

Branch Coverage

Path Coverage

Sample Codefor (i = 0; i < N; i++) { //1

if (condition1)

// do something here //2

else

// do something here //3

// something here //4

}

Complexity of Algorithm Number of Edges: 6

Number of Nodes: 5

C(G) = 8-6+1 = 3

1

2

4

3

5

Flow Chart

U it T ti

Page 61: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 61/65

Unit Testing

Unit Testing Principal In unit testing, developers test their own code units (modules,

classes, etc.) during implementation.

Normal and boundary inputs against expected results are tested.

Thus unit testing is a great way to test an API.

Quantitative Testing

Repeatable: Unit test cases can be repeated to verify that nounintended side effects have occurred due to some modification inthe code.

Bounded : Narrow focus simplifies finding and fixing defects.

Cheaper : Find and fix defects early

Qualitative Testing Assessment-oriented : Writing the unit test forces us to deal

with design issues - cohesion, coupling.

Confidence-building: We know what works at an early stage.Also easier to change when it’s easy to retest. 

Page 62: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 62/65

Defect Origination Requirements

Design

Coding

User documentation

Testing itself can cause

defects due to bad fixes Change requests at the

maintenance or initialusage time

Inspection Checklist

• Exception Managements

• Fault Classes

• Data Faults

• Control Faults• Input/Output Faults

• Interface Faults

• Storage ManagementFaults 

Page 63: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 63/65

Debugging

“In this world, nothing is certain but death and taxes” 

Debugging is taken as an art but in fact it is a

scientific process.

What is Bug? Software Defects, Software Bugs, Software Problems and

even Software “Features”. 

Page 64: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 64/65

Common Bugs

Memory and Resource Leakage

Logical Errors

Memory over runs

Loop Errors

Pointer Errors

Boolean Errors

Page 65: Review of IT

7/28/2019 Review of IT

http://slidepdf.com/reader/full/review-of-it 65/65

Best of luck

for your Viva

-Moonisa