Review of IT
-
Upload
maunisa-ahsan-alam -
Category
Documents
-
view
219 -
download
0
Transcript of 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
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”
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
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).
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
7/28/2019 Review of IT
http://slidepdf.com/reader/full/review-of-it 6/65
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
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
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
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
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?
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
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
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
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
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
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
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
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
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
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
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
7/28/2019 Review of IT
http://slidepdf.com/reader/full/review-of-it 23/65
Testing Phases
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
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.
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
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
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
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.
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.
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.
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.
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?
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
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
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
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.
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
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
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
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)
7/28/2019 Review of IT
http://slidepdf.com/reader/full/review-of-it 42/65
Role of Requirement
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
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
7/28/2019 Review of IT
http://slidepdf.com/reader/full/review-of-it 45/65
Several Components of Software
Requirements
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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”.
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
7/28/2019 Review of IT
http://slidepdf.com/reader/full/review-of-it 65/65
Best of luck
for your Viva
-Moonisa