Lecture3 Introduction to Software Application

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 26

INTRODUCTION TO SOFTWARE

APPLICATION
Course: Software Engineering
CC3101

Manipal University Jaipur


Learning Objectives
1. Identify and briefly describe the functions of the two basic kinds
of software
2. Outline the role of the operating system and identify the features
of several popular operating systems
3. Discuss how application software can support personal,
workgroup, and enterprise business objectives
4. Identify three basic approaches to developing application
software and discuss the pros and cons of each
5. Identify several key software issues and trends that have an
impact on organizations and individuals
What is Software?
Software means computer instructions or
data. Anything that can be stored
electronically is software, in contrast to
storage devices and display devices which are
called hardware.
A computer system consists of two
components; Hardware (the physical
component of which includes keyboard,
mouse, printer etc) and the software (the
electronic working components). Hence,
software is indispensable for any computer
system
Categories of Software
 System software: Such as compilers, editors, file management
utilities.
 Application software: Stand-alone programs for specific needs. E.g-
MS Suite, Firefox
 Engineering/scientific software: Characterized by “number
crunching” algorithms. such as automotive stress analysis, molecular
biology, orbital dynamics etc. E.g- MATLAB
 Embedded software : Resides within a product or system (key pad
control of a microwave oven, digital function of dashboard display in a
car).
 Product-line software : Focus on a limited marketplace to address
mass consumer market. (word processing, graphics, database
management). E.g- Adobe photoshop
 WebApps (Web applications) network centric software : As web
2.0 emerges, more sophisticated computing environments is supported
integrated with remote database and business applications.
 AI software : Uses non-numerical algorithm to solve complex problem.
Robotics, expert system, pattern recognition, game playing. E.g-
Google Assistant, Cortana
Systems Software
 Device Drivers . A device driver is software that helps a peripheral
device establish communication with a computer. Eg., Windows Device
Manager.
 The Programming Languages refers to coding schemes used to write
both systems and application software
 Hence, systems software refers to the operating system and all utility
programs that manage computer resources at a low level. The system
software serves the application, which in turn serves the user.
 Systems software: coordinates the activities and functions of
hardware and programs
Operating Systems Functions
1. User interface and input/output management
 User interface: allows individuals to access and command the
computer system
 Command-based user interface: requires that text commands
be given to the computer to perform basic activities
 Graphical user interface (GUI): uses icons and menus
displayed on screen to send commands to the computer system
2. Hardware independence
 Application program interface (API): allows applications to
make use of the operating system
3. Memory management
 Control how memory is accessed and maximize available
memory and storage
Operating Systems Functions
(continued)
4. Processing tasks
 Multitasking: more than one program can run at the same time
 Time-sharing: allows more than one person to use a computer system at
the same time
 Scalability: ability of the computer to handle an increasing number of
concurrent users smoothly
5. Networking capability
 Features and capabilities of the OS that aid users in connecting to a
computer network
6. Access to system resources and security
 Protection against unauthorized access
 Logins and passwords

7. File management
 Ensures that files in secondary storage are available when needed and that
they are protected from access by unauthorized users
Software Categories (Systems
Software)

Software

Applicatio
Systems
ns
Software
Software

Program
Operating Device ming
Utilities
Systems Drivers Language
s
Applications Software
 Application software is all the computer software that causes a computer to
perform useful tasks beyond the running of the computer itself. A specific
instance of such software is called a software application, application program,
application or app.
 Applications software comprises programs designed for an end user. Examples
include accounting software enterprise software, graphics software, media
players, and office suites. word processors, database systems, and spreadsheet
programs.
 Figuratively speaking, applications software sits on top of systems software
because it is unable to run without the operating system and systems utilities.
 Application software aids in productivity
 Personal tasks using software
Income tax preparation
Keeping a budget
Internet research
Games
Applications Software
 Many application programs deal principally with documents.
Applications may be bundled with the computer and its system software
or published separately, and can be coded as university projects.
 Application software can also be seen as being either horizontal or
vertical.
 Horizontal applications are more popular and widespread, because they
are general purpose, for example word processors or databases.
 Vertical applications are niche products, designed for a particular type
of industry or business, or department within an organization.
Integrated suites of software will try to handle every specific aspect
possible of, for example, manufacturing or banking systems, or
accounting, or customer service.
Software Categories (Applications
Software)

Software

Applicatio
Systems
ns
Software
Software

Media
Document Graphic Entertain
Developm
Production Art ment
ent
Software Software Software
Software
Applications Software
 There are many types of application software:

 Document Production Software assists you with composing, editing,


designing, printing, and electronically publishing documents.
Examples: Word processing, Desktop publishing, Web authoring

 An application suite consists of multiple applications bundled together.


They usually have related functions, features and user interfaces, and
may be able to interact with each other, e.g. open each other's files.
Business applications often come in suites, e.g. Microsoft Office,
LibreOffice and iWork, which bundle together a word processor, a
spreadsheet, etc.; but suites exist for other purposes, e.g. graphics or
music.
Applications Software
 Content access software is used primarily to access content without
editing, but may include software that allows for content editing. Such
software addresses the needs of individuals and groups to consume
digital entertainment and published digital content. (Examples include
media players, web browsers and help browsers.)

 Media development software generates print and electronic media for


others to consume, most often in a commercial or educational setting.
This includes graphic-art software, desktop publishing software,
multimedia development software, HTML editors, digital-animation
editors, digital audio and video composition, and many others.
Applications Software
 Product engineering software is used in developing hardware and
software products. This includes computer-aided design (CAD),
computer-aided engineering (CAE), computer language editing and
compiling tools, integrated development environments, and application
programmer interfaces.

 Graphic art software is a subclass of application software used for


graphic design, multimedia development, stylized image development,
technical illustration, general image editing, or simply to access
graphic files. Art software uses either raster or vector graphic reading
and editing methods to create, edit, and view art.
Software—New Categories
 Open world computing : Pervasive, ubiquitous,
distributed computing due to wireless networking. How
to allow mobile devices, personal computer, enterprise
system to communicate across vast network.
 Netsourcing : The Web as a computing engine. How
to architect simple and sophisticated applications to
target end-users worldwide.
 Open source : ”free” source code open to the
computing community
 Other categories :
 Data Mining
 Grid Computing
 Cognitive Machines
FAQ’s about software engineering
Essential attributes of good software
Layers of software engineering
 Process layer as the foundation defines a framework with activities
for the effective delivery of software engineering technology. Establish
the context where products (model, data, report, and forms) are
produced, milestones are established, quality is ensured and change is
managed.
 Method provides technical how-to’s for building software. It
encompasses many tasks including communication, requirement
analysis, design modeling, program construction, testing and support.
 Tools provide automated or semi-automated support for the process
and methods.
Software process

A process is a collection of activities, actions and


tasks that are performed when some work product
is to be created. It is not a rigid prescription for
how to build computer software. Rather, it is an
adaptable approach that enables the people doing
the work to pick and choose the appropriate set
of work actions and tasks.
Purpose of process is to deliver software in a
timely manner and with sufficient quality to satisfy
those who have sponsored its creation and those
who will use it.
Five Activities of a Generic Process framework

 Communication: Communicate with customer to understand


objectives and gather requirements
 Planning: Creates a “map” defines the work by describing the
tasks, risks and resources, work products and work schedule.
 Modeling: Create a “sketch”, what it looks like architecturally,
how the constituent parts fit together and other characteristics.
 Construction: Code generation and the testing.
 Deployment: Delivered to the customer who evaluates the
products and provides feedback based on the evaluation.
 These five framework activities can be used to all software
development regardless of the application domain, size of the
project, complexity of the efforts etc, though the details will be
different in each case.
Umbrella activities in software engineering

 Software project tracking and control: assess progress


against the plan and take actions to maintain the
schedule.
 Risk management: assesses risks that may affect the
outcome and quality.
 Software quality assurance: defines and conducts
activities to ensure quality.
 Technical reviews: assesses work products to uncover
and remove errors before going to the next activity.
 Measurement: define and collect process, project, and
product measures to meet stakeholder needs.
 Software configuration management: manage the
effects of change throughout the software process.
 Reusability management: defines criteria for work
product reuse and establishes mechanisms to achieve
reusable components.
 Work product preparation and production: create work
Software Myths Examples

 Myth 1: Once we write the program and get it to work,


our job is done.
 Reality: the sooner you begin writing code, the longer
it will take you to get done. 60% to 80% of all efforts
are spent after software is delivered to the customer
for the first time.
 Myth 2: Until I get the program running, I have no way
of assessing its quality.
 Reality: technical review are a quality filter that can
be used to find certain classes of software defects from
the inception of a project.
 Myth 3: software engineering will make us create
voluminous and unnecessary documentation and will
invariably slow us down.
 Reality: it is not about creating documents. It is about
Case Studies

A personal insulin pump


 An embedded system in an insulin pump used by
diabetics to maintain blood glucose control.
A mental health case patient management
system
 A system used to maintain records of people
receiving care for mental health problems.
A wilderness weather station
 A data collection system that collects data about
weather conditions in remote areas.
Insulin Pump Control System

Collects data from a blood sugar sensor and


calculates the amount of insulin required to be
injected.
Calculation based on the rate of change of blood
sugar levels.
Sends signals to a micro-pump to deliver the
correct dose of insulin.
Safety-critical systems as low blood sugars can
lead to brain malfunctioning, coma and death;
high-blood sugar levels have long-term
consequences such as eye and kidney damage.
Insulin pump hardware architecture
Activity model of the insulin pump

You might also like