Upload
von-loki-riego
View
220
Download
0
Embed Size (px)
Citation preview
8/6/2019 Software Engineering Lecture 1
1/48
Software - is a collection ofcomputer programs and related
data that provide theinstructions for telling acomputer what to do and howto do it.
8/6/2019 Software Engineering Lecture 1
2/48
In other words, software is aconceptual entity which is a
set of computer programs,procedures, and associateddocumentation concerned with
the operation of a dataprocessing system
8/6/2019 Software Engineering Lecture 1
3/48
We can also say softwarerefers to one or more computer
programs and data held in thestorage of the computer forsome purposes. Software is a
set of programs, procedures,algorithms and itsdocumentation
8/6/2019 Software Engineering Lecture 1
4/48
Program software performs thefunction of the program it
implements, either by directlyproviding instructions to thecomputer hardware or by
serving as input to anotherpiece of software.
8/6/2019 Software Engineering Lecture 1
5/48
8/6/2019 Software Engineering Lecture 1
6/48
Software is the easiest wayfor users to interact with the
hardware of a system.W
ithmodern day computers, it wouldbe impossible to accomplish
anything without software. Thebest you could accomplishwithout software would be
8/6/2019 Software Engineering Lecture 1
7/48
clocks (analog and basic digital)and things like that.
Software is what allowscomplicated computations.Everything you use has a
software.Windows/MAC/Linux/UNIX areall software's.
8/6/2019 Software Engineering Lecture 1
8/48
What more? every electronicdevice you use has a software.I
n short, software provide theelectrical instructions to thehardware. Without software,
the computer revolution isundone.
8/6/2019 Software Engineering Lecture 1
9/48
Software evolution - is theterm used in software
engineering (specificallysoftware maintenance) to referto the process of developing
software initially, thenrepeatedly updating it forvarious reasons.
8/6/2019 Software Engineering Lecture 1
10/48
The aim of software evolutionwould be implementing (and
revalidate) the possible majorchanges to the system withoutbeing able a priority to predict
how user requirements willevolve
8/6/2019 Software Engineering Lecture 1
11/48
1. The existing larger systemis never complete and continues
to evolve2. As it evolves, thecomplexity of the system will
grow unless there is a bettersolution available to solve theseissues.
8/6/2019 Software Engineering Lecture 1
12/48
The main objectives ofsoftware evolution are ensuring
the reliability and flexibility ofthe system. During the 20years pasted, the lifespan of a
system could be in average 6-10 years.
8/6/2019 Software Engineering Lecture 1
13/48
However, recently found that asystem should be evolved once
few months to ensure it iscompromised to the real-worldenvironment.
8/6/2019 Software Engineering Lecture 1
14/48
This is due to the rapid growthof World Wide Web and
Internet Resources that makeusers easier to find relatedinformation. The idea of
software evolution leads to opensource development as anybody
8/6/2019 Software Engineering Lecture 1
15/48
could download the sourcecodes and hence modify it. The
positive impact in this case islarge amounts of new ideaswould be discovered and
generated that aims thesystem to have betterimprovement in variety choices.
8/6/2019 Software Engineering Lecture 1
16/48
However, the negative impactis there is no copyright if asoftware product has beenpublished as open source.
8/6/2019 Software Engineering Lecture 1
17/48
Software Components -A computer system consists of
three major components:hardware, software, andhumans (users, programmers,
administrators, operators,etc.).
8/6/2019 Software Engineering Lecture 1
18/48
Software can be furtherdivided into seven layers.
Firmware can be categorized aspart of hardware, part ofsoftware, or both.
The seven layers of softwareare (top to bottom
8/6/2019 Software Engineering Lecture 1
19/48
Programs; System Utilities;Command Shell; System
Services; User Interface;Logical Level; and HardwareLevel. A Graphics Engine
straddles the bottom threelayers
8/6/2019 Software Engineering Lecture 1
20/48
only the bottom two levels arethe operating system, although
even technical persons willoften refer to any level otherthan programs as part of the
operating system
8/6/2019 Software Engineering Lecture 1
21/48
8/6/2019 Software Engineering Lecture 1
22/48
The following are examples ofeach category:Programs: Examples of Programs
include your word processor,spreadsheet, graphics programs,music software, games, etc.
System Utilities: Examples ofSystem Utilities include file copy,hard drive repair, and similar
8/6/2019 Software Engineering Lecture 1
23/48
items. On the Macintosh, allthe Desk Accessories
(calculator, key caps, etc.) andall of the Control Panels areexamples of System Utilities.
8/6/2019 Software Engineering Lecture 1
24/48
Command Shell: The CommandShell on the Macintosh is theFinder and was the first
commercially available graphiccommand shell. On Windows, theCommand Shell is a poorlyintegrated combination of theFile Manager and the Program
Manager.
8/6/2019 Software Engineering Lecture 1
25/48
The command line (C:\ prompt)of MS-DOS or Bourne Shell ofUNIX are examples of the olderstyle text-based commandshells.
System Services: Examples ofSystem Services are built-indata base query
8/6/2019 Software Engineering Lecture 1
26/48
languages on mainframes or theQuickTime media layer of the
Macintosh.User Interface: Until theMacintosh introduced Alan
Kays (inventor of the personalcomputer, graphic userinterfaces, object oriented
8/6/2019 Software Engineering Lecture 1
27/48
programming, and softwareagents) ground breaking ideas
on human-computer interfaces,operating systems didnt includesupport for user interfaces
(other than simple text-basedshells). The Macintosh userinterface is called the
8/6/2019 Software Engineering Lecture 1
28/48
Macintosh Tool Box andprovides the windows, menus,
alert boxes, dialog boxes,scroll bars, buttons, controls,and other user interface
elements shared by almost allprograms.
8/6/2019 Software Engineering Lecture 1
29/48
Logical Level of OperatingSystem: The Logical Level of
the operating system provideshigh level functions, such asfile management, internet and
networking facilities, etc.
8/6/2019 Software Engineering Lecture 1
30/48
Hardware Level of OperatingSystem: The Hardware Level
of the operating systemcontrols the use of physicalsystem resources, such as the
memory manager, processmanager, disk drivers, etc.
8/6/2019 Software Engineering Lecture 1
31/48
Graphics Engine: The GraphicsEngine includes elements at all
three of the lowest levels,from physically displayingthings on the monitor to
providing high level graphicsroutines such as fonts andanimated sprites.
8/6/2019 Software Engineering Lecture 1
32/48
Human users normally interact withthe operating system indirectly,through various programs
(application and system) andcommand shells (text, graphic,etc.), The operating system
provides programs with servicesthrough system programs andApplication Program Interfaces
(API
s).
8/6/2019 Software Engineering Lecture 1
33/48
Characteristic of Software -One of the challenges of
software quality is that"everyone feels they understandit. In addition to more software
specific definitions given below,there are several applicabledefinitions of quality which are
8/6/2019 Software Engineering Lecture 1
34/48
are used in business. Softwarequality may be defined asconformance to explicitly
stated functional andperformance requirements,explicitly documenteddevelopment standards andimplicit characteristics that
8/6/2019 Software Engineering Lecture 1
35/48
that are expected of allprofessionally developed
software. The three keypoints in this definition:1.Software requirements are
the foundations from whichquality is measured.
8/6/2019 Software Engineering Lecture 1
36/48
2. Specified standards define aset of development criteria
that guide the management insoftware engineering.If criteria are not followed
lack of quality will usuallyresult.
8/6/2019 Software Engineering Lecture 1
37/48
3. A set of implicitrequirements often goes
unmentioned, for example easeof use, maintainability etc.If software conforms to its
explicit requirements but failsto meet implicit requirements,software quality is suspected.
8/6/2019 Software Engineering Lecture 1
38/48
Another definitionCharacteristics of Software
it divides software into twopieces: internal and externalquality. External quality
characteristics are those partsof a product that face itsusers,
8/6/2019 Software Engineering Lecture 1
39/48
where internal qualitycharacteristics are those that
do not.Another definition "a productquality is a function of how
much it changes the world forthe better. This can beinterpreted as meaning that
8/6/2019 Software Engineering Lecture 1
40/48
user satisfaction is moreimportant than anything in
determining software quality.Another definition, softwarecharacteristics is value to some
person." This definitionstresses that quality isinherently subjective
8/6/2019 Software Engineering Lecture 1
41/48
subjective - different people willexperience the quality of the samesoftware very differently. One
strength of this definition is thequestions it invites software teamsto consider, such as "Who are the
people we want to value oursoftware?" and "What will bevaluable to them?"
8/6/2019 Software Engineering Lecture 1
42/48
Software applicationsApplication software, also
known as an application or an"app", is computer softwaredesigned to help the user to
perform singular or multiplerelated specific tasks.Examples include enterprise
8/6/2019 Software Engineering Lecture 1
43/48
enterprise software, accountingsoftware, office suites,
graphics software and mediaplayers. Many applicationprograms deal principally with
documents. Apps may bebundled with the computer andits system software, or may
8/6/2019 Software Engineering Lecture 1
44/48
be published separately. Someusers are satisfied with the
bundled apps and need neverinstall one.Application software is
contrasted with systemsoftware and middleware,which manage and integrate
8/6/2019 Software Engineering Lecture 1
45/48
a computer's capabilities, buttypically do not directly apply
them in the performance oftasks that benefit the user.The system software serves
the application, which in turnserves the user.
8/6/2019 Software Engineering Lecture 1
46/48
Similar relationships apply inother fields. For example, ashopping mall does not provide
the merchandise a shopper isseeking, but provides space andservices for retailers that serve
the shopper. Rail tracks similarlysupport trains, allowing thetrains to transport passengers.
8/6/2019 Software Engineering Lecture 1
47/48
Application software applies thepower of a particular computingplatform or system software to a
particular purpose. Some apps suchas Microsoft Office are availablein versions for several different
platforms; others have narrowerrequirements and are thus called,for example, a
8/6/2019 Software Engineering Lecture 1
48/48
Geography application forWindows or an Android applicationfor education or Linux gaming.
Sometimes a new and popularapplication arises which only runson one platform, increasing thedesirability of that platform. Thisis called a killer application.