Information Technologies Fundamentals: Musalasoft

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 45

MusalaSoft

Information Technologies
Fundamentals
Agenda
• What is Software?
• Software Types
• Software Development Process
• Software Architectures
• Our Expertise
– Enterprise Application Integration
– Portal Solutions
– Quality Assurance Automation
Information Concepts
Information System

• A set of interrelated components that collect,


manipulate & disseminate data & information &
provide feedback to meet an objective.

• Examples: ATMs; airline reservation systems;


course reservation systems
Information Concepts
Data vs. Information

• Data: raw facts


• Information: collection of facts organized in such a way
that they have value beyond the facts themselves

The Process of Transforming Data into Information


Computer-Based Information
Systems (CBIS)
CBIS Components
• Hardware - computer equipment used to perform input,
processing, and output activities.

• Software - computer programs that govern the operation


of the computer.

• Database - an organized collection of facts and


information, typically consisting of two or more related
data files.

• People - the most important element in most computer-


based information systems.

• Procedures - include the strategies, policies, methods,


and rules for using the CBIS.
Business Information Systems
• Electronic Commerce
– Business-to-business
– Business-to-consumer
– Consumer-to-consumer
• Transaction Processing Systems and ERP
• Information and Decision Support Systems
• Special-Purpose Business Information
Systems: Artificial Intelligence, Expert
Systems, and Virtual Reality
Classifying Computers
• Mainframes: Largest computer, massive memory, rapid processing power

• Midrange computers: Less powerful, less expensive, and smaller than a mainframe

• Server: Provides software and other resources to computers over a network

• Minicomputers: Middle-range computer, used in universities, factories, or research


laboratories

• Server Farm: Large group of servers maintained by a commercial vendor, available


for electronic commerce and other activities

• Personal Computer (PC): Small desktop or portable computer

• Workstation: Desktop computer with powerful graphics and mathematical


capabilities

• Supercomputer: Highly sophisticated and powerful, performs complex computations


Computer Networks and
Client/Server Computing

• Distributed processing: Distribution of


processing work among multiple computers

• Centralized processing: Accomplished by one


large central computer

• Client/server computing: Splits processing


between “clients” and “servers” on network
Client/server computing

In client/server computing, computer processing is split between client


machines and server machines linked by a network.
Users interface with the client machines.
ST Fundamentals

“Software is a generic term for organized


collections of computer data and instructions,
often broken into two major categories: system
software that provides the basic non-task-
specific function of the computer, and
application software which is used by users to
accomplish specific tasks.”
Software Classification
Software Classification
SYSTEM SOFTWARE INCLUDES

1. Operating systems software, including


• Client and network operating systems
2. Network software, including
• Network management software
• Server software
• Security and encryption software
• Middleware
• Etc.
3. Database management software
4. Development tools and programming language software,
including
• Software testing tools and testing software
• Program development tools
• Programming languages software
5. Other system software
Software Classification
APPLICATION SOFTWARE INCLUDES

1. General business productivity applications, including


• Office suite applications
• Word processors
• Spreadsheets
• Simple databases
• Graphics applications
• Project management software
• Etc.
2. Home use applications, including
• Games
• Reference
• home education
• Etc.
Software Classification
APPLICATION SOFTWARE INCLUDES – continues

3. Cross-industry application software, including


• Professional accounting software
• Human resource management
• Customer relations management software
• Geographic Information System software
• Web page/site design software
• Etc.
4. Vertical market application software
• Software for a specific industry (manufacturing, healthcare, telecom, etc.)
5. Utilities software, including
• Compression programs
• Antivirus
• Search engines
• Font
• File viewers
• voice recognition software
6. Other application software
The major types of software
Software Development Process
• Requirements Analysis 
– Extracting the requirements of a desired software product is the first task
in creating it. While customers probably believe they know what the
software is to do, it may require skill and experience in software
engineering to recognize incomplete, ambiguous or contradictory
requirements.

• Specification 
– Specification is the task of precisely describing the software to be written,
in a mathematically rigorous way. In reality, most successful specifications
are written to understand and fine-tune applications that were already
well-developed. Specifications are most important for external interfaces,
that must remain stable.

• Design and Architecture 


– Design and architecture refer to determining how software is to function in
a general way without being involved in details. Usually this phase is
divided into two sub-phases.
Software Development Process
• Coding 
– Reducing a design to code may be the most obvious part of the software
engineering job, but it is not necessarily the largest portion.

• Testing 
– Testing of parts of software, especially where code by two different
engineers must work together, falls to the software engineer.

• Documentation 
– An important (and often overlooked) task is documenting the internal
design of software for the purpose of future maintenance and
enhancement. Documentation is most important for external interfaces.

• Maintenance 
– Maintaining and enhancing software to cope with newly discovered
problems or new requirements can take far more time than the initial
development of the software. Not only may it be necessary to add code
that does not fit the original design but just determining how software
works at some point after it is completed may require significant effort by a
software engineer.
SDP Models
Waterfall processes
• The best-known and oldest process is the waterfall model, where developers
(roughly) follow these steps in order. They state requirements, analyze them,
design a solution approach, architect a software framework, develop code,
test, deploy, and maintain.

Iterative processes:
• Iterative development prescribes the construction of initially small but ever
larger portions of a software project to help all those involved to uncover
important issues early before problems or faulty assumptions can lead to
disaster.
• Agile software development -Agile processes use feedback, rather than
planning, as their primary control mechanism. The feedback is driven by
regular tests and releases of the evolving software.
• Extreme Programming, XP - The (intentionally incomplete) first pass through
the steps might take a day or a week, rather than the months or years of each
complete step in the Waterfall model. First, one writes automated tests, to
provide concrete goals for development. Next is coding (by a pair of
programmers), which is complete when all the tests pass, and the
programmers can't think of any more tests that are needed. Design and
architecture emerge out of Refactoring, and come after coding.
SDP Models
Rapid application development
• The methodology involves iterative development, the construction of
prototypes, and the use of Computer-aided software engineering (CASE)
tools. Traditionally the rapid application development approach involves
compromises in usability, features, and/or execution speed

Rational Unified Process


• An iterative software development process created by the Rational Software
Corporation, now a division of IBM. The RUP is recognized as particularly
applicable to larger software development teams working on large projects.

Spiral model
• A software development process combining elements of both design and
prototyping-in-stages, in an effort to combine advantages of top-down and
bottom-up concepts.
SDP Models

Another software development methods:

• Bottom Up
• Chaos model
• Evolutionary prototyping
• Prototyping
• Top-Down Model
• V model
Software Architectures
There are many common ways of designing computer software modules and
their communications, among them:

• Client-server - Client/Server is a network architecture which separates the


client (often a graphical user interface) from the server.

• Distributed computing - An example of a distributed system is the World


Wide Web.

• Peer-to-peer - The concept of peer to peer is increasingly evolving to an


expanded usage as the relational dynamic active in distributed networks, i.e.
not just computer to computer, but human to human.

• Blackboard - Blackboard systems, in the field of Artificial Intelligence, are


comprised of a central global workspace, and a collection of software agents
which act upon it.

• Implicit invocation - Implicit invocation is used by some authors for a style


of software architecture in which a system is structured around event
handling, using a form of callback.
Software Architectures

• Monolithic system - A monolithic architecture is where processing, data


and the user interface all reside on the same system.

• Three-tier model - Three-tier is a client-server architecture in which the


user interface, functional process logic ("business rules"), data storage and
data access are developed and maintained as independent modules.

• Structured - module-based but usually monolithic within modules

• Software componentry - strictly module-based, usually object-oriented


programming within modules, slightly less monolithic

• Service-oriented architecture – The Service-Oriented Architecture (SOA)


expresses a perspective of software architecture that defines the use of
services to support the requirements of software users. An example is
Enterprise Application Integration.
A 3-tier Architecture
A multitiered architecture for
e-commerce and e-business

This multitiered architecture has middle layers for servicing Web page
requests and for providing services to link user clients with a back-end layer
of corporate systems and their data. In this particular architecture, the
application server runs on its own dedicated hardware.
Enterprise application integration

EAI software (a) uses special middleware that creates a common


platform through which all applications can freely communicate with
each other. EAI requires much less programming than traditional point-
to-point integration (b).
Our Expertise
• Enterprise Application Integration
• Portal Solutions
• QA Automation
Enterprise Application Integration
• Enterprise Application Integration (EAI) is defined as
the use of software and computer systems architectural
principles to bring together (integrate) a set of enterprise
computer applications.

• Enterprise Application Integration is related to


middleware technologies such as message-oriented
middleware (MOM), and data representation
technologies such as XML. Newer EAI technologies
involve using web services as part of service-oriented
architecture as a means of integration.

• Enterprise Application Integration tends to be data


centric.
EAI - Example
EAI - Example
Case Study - BRAIN
• BRAIN – Business Rules Application Integration
Node is an application in the special pricing area
of HP’s Order Management application
environment.

• BRAIN is middleware application that integrates


the order management and discount
management processes.

• Technologies used - BEA WebLogic Integration


Server, J2EE, EJB, XML, Web Services
EAI – BRAIN Example
Portal Solutions

• Portal technology is an effective way of


enabling data sharing and content
management.

• Enterprise portals are classified as


information portals, collaboration portals,
expertise and knowledge portals,
operations portals, etc.
Portal - Example
Portal Solutions – services to
integrate
Service Types
• Services to Integrate
– Content / Document management
– Collaboration
– Search
– Enterprise applications
– Productivity tools
– Device transcoding (Voice, PDA, Cell ..)
– Business process integration (workflow)
– Security / Identity management
Case Study –
Gutenberg News Portal

• The Gutenberg News Portal solution is an


Internet news portal that provide
centralized access to news from various
data sources

• Technologies used: IBM Websphere


Porta, IBM DB2, Java Script, WAP
Portal – Gutenberg Example
Portal – Gutenberg Example
Quality Assurance Automation
Automation Aspects
• Test Specification – automation of tests – special
developed test programs using programming language
(custom test programs) or using specific test tools

• Result analyzer – automation of results of test execution


– comparators of expected and actual test results

• Test Management – estimation, controlling and


monitoring of QA activities

• Static Analysis – the tools for source code analysis


Quality Assurance Automation

• Automation is commonly used and is high


beneficial in automation of following test
types:
– User Interface Testing
– Regression Testing
– Unit Testing
– Load, Performance and Stress Testing
GUI Testing Automation Example

Steps:
• Recording of user actions into scripts
• Modification of scripts to include specific
cases
• Execution of recorded scripts
• Analysis of results – passed/failed tests
Rational Functional Tester Example
• Every UI object is stored in
object map

• Test inputs are defined for each


object.
Example: For “Quantity” field
object, are defined inputs 1, 0, -1,
100, etc. Each of these inputs
forms separate test cases.

• For each test case are defined


expected results – the actions
returned from tested system after
test case execution.
Rational Functional Tester Example

• Automation is organized by:


– Script recording – visually selecting of objects
– Using Java for writing test tasks and
scenarios
– Runtime execution of tests

• Technologies used – IBM Rational


Functional Tester, Java, ANT
Summary
• Hardware and Software Components
• The difference between System Software and
Application Software
• The process of Software Development and
different approaches/models
• Software Architectures
• Our Expertise with examples – EAI, Portals,
QA Automation
IT Fundamentals

Q&A

You might also like