Você está na página 1de 22

1

ASM A SAJID; COLLEGE OF COM PUTER SCIENCE & INFORM ATION STUDIES (C 2SIS), GCUF.
OUTLINE

• Software
• Attributes of Good Software
• Types of Software
• Problems with Software
• Software Failures

2
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
WHAT IS SOFTWARE?
1) Software is a set of instructions to
1) Acquire inputs and to
2) Manipulate/Process the input
3) To produce the desired output in terms of functions and performance
4) As determined by the user of the software.
2) It also include a set of documents, such as the software manual , meant for
users to understand the software system as well as many design documents.
3) Software is described by its capabilities.
4) The capabilities relate to the functions it executes, the features it provides and
the facilities it offers.
5) Difference between a Program and Software?
Think of some Examples of capabilities of: A Sales purchase software….? Website
of a university?

3
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
ATTRIBUTES OF GOOD SOFTWARE?
The software should deliver the required functionality and performance to the user and
should be maintainable, dependable and usable.
Maintainability
 Software must evolve to meet changing needs
Dependability
 Software must be trustworthy
Efficiency
 Software should not make wasteful use of system resources
Usability
 Software must be usable easily by the users for which it was designed
Reliability
 Should provide accurate results each time

And many other factors….

4
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
WHAT IS GOOD SOFTWARE?
Characteristics of Software
1) Software has number of attributes which decide whether it is a good or bad.
2) The definition of a good software changes with the person who evaluates it.
3) The software is required by the customer , used by the end users of an
organization and developed by software engineer . Each one will evaluate
the different attributes differently in order to decide whether the software is
good.
4) Universal definition of A good software is one “Which meets all of user
expectations or requirements.”

5
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
TYPES/CLASSES OF SOFTWARE
Software is classified into two classes:
1) Generic Software: is designed for broad customer market whose
requirements are very common, fairly stable and well understood by
the software engineer.
2) Customized Software: is developed for a customer where
domain , environment and requirements are being unique to that
customer and cannot be satisfied by generic products.
3) Can you think of some examples?
 Windows, Mobile phone apps, MS Office,
 Websites, Database of exam branch, inventory system, Billing system of PTCL.

6
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
TYPES OF SOFTWARE (1)
System Software-

A collection of programs written to service other programs at system level. For example, operating
systems, device drivers, servers, utilities.
Real-time Software-
Programs that monitor/analyze/control real world events as they occur. Radar system, nuclear
missile system, weather monitoring.
Business Software-
Programs that access, analyze and process business information.
Engineering and Scientific Software –
Software using “number crunching” algorithms for different science and applications. System
simulation, computer-aided design.
Programming software
Include tools in the form of programs or applications that software developers use to create,
debug, maintain, or otherwise support other programs and applications, such as compilers,
debuggers, interpreters, linkers.

7
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
TYPES OF SOFTWARE (2)
Embedded Software-
Embedded software resides in read-only memory and is used to control products and systems
for the consumer and industrial markets. It has very limited and functions and control capability.

Artificial Intelligence (AI) Software-


Programs make use of AI techniques and methods to solve complex problems. Active areas are
expert systems, pattern recognition, games.

Internet Software :
Programs that support internet accesses and applications. For example, search engine, browser,
e-commerce software, web traffic monitoring tools.

Software Tools and CASE environment :


Tools and programs that help the construction of application software and systems. For example,
test tools, version control tools.

8
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
PROBLEMS WITH SOFTWARES

Q: What problems have you encountered with softwares of your use ?

 The final Software doesn´t fulfill the needs of the customer.


 Hard to extend and improve: if you want to add a functionality later is mission
impossible.
 Bad documentation.
 Bad quality: frequent errors, hard to use, ...
 Deadlines are not met, which means more time and costs than expected.

9
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
10
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE FAILURES
 Arine 501 : rocket’s guidance computer software just threw an unchecked exception.
 NORAD in 1980, reported that the US was under missile attack.
 Soviet satellite in 1983,reported incoming US missiles.
 The hole in the ozone layer over Antarctica remained undetected for a long
period of time because the data analysis software used by NASA in its project
to map the ozone layer had been designed to ignore values that deviated
greatly from expected measurements.
 Therac-25 medical radiation therapy- many were injured and killed.

How to avoid these accidents ?


PROGRAMMING IS NOT ENOUGH … !
It is not enough to do your best: you must
Know what to do, and THEN do your best.
-- W. Edwards Deming
11
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE FAILURES 2014
10. Software Glitch Sends Bank Statements to the Wrong People
A Swiss bank found themselves in a pinch in early 2014 when they discovered that their software system had issued end-of-
the-year bank statements addressed to the wrong people. Customers of the bank reported receiving, along with their own
statement, a handful of statements containing details for other bank patrons. Uh oh. You may have received your correct
information, but who else received it as well. Source.
9. Bar Exam Software Failure
In August of 2014 thousands of law students across the United States pressed “submit” on their completed exam files only to
find that their tests were not being accepted by the software. None too surprisingly, the Bar Exam software now finds
themselves facing multiple lawsuits filed by disgruntled would-be lawyers. Source.
8. London Airspace Closed Due to Software Malfunction
Typically flights are canceled due to weather concerns – not software. Earlier this December an air traffic control center was
forced to close London Airspace when the software managing the arrivals and departures began to malfunction. While the
software was repaired and running again within record speed, the repercussions were far reaching. Heathrow reported
canceling over 50 flights with multiple flights turned back to their originating destinations. Source.
7. Faulty Casino Software Targets Compulsive Gamblers
Self-identified “compulsive gamblers” registered on a do-not-contact list with an American based entertainment and gaming
company in an attempt to avoid ads that would trigger their addiction. Unfortunately their good intentions backfired when a
software glitch reversed the data and sent promotional gambling emails to the very people they were trying to avoid. Source.
6. Software Glitch Accidentally Releases Prisoners
Over 20 inmates in Dallas, Texas, were mistakenly released this past June during a software transition. The local police force
claims that incorrect information within the new system misled authorities into releasing inmates facing charges from property
crime to domestic violence. Dallas police stated at the time that they are working to relocate and arrest the felons. Source.

12
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE FAILURES 2014
5. Software Error Assigns Wrong Pictures to Drivers’ Licenses
Several Arizona residents received drivers’ licenses this summer that contained all the correct information…except for the picture. Investigating the
issue, the problem was linked back to the camera-computer connection being used to take the license pictures – a delay in transferring the saved
image resulted in the photographs being attached to the previous person’s file…and thus Jane received a license looking very much like a Bob.
That is a lot worse than a bad hair day. Source.

4. Software Malfunction Prevents Callers from Reaching 911


A third party call center that directs and assigns calls to the 911 emergency line reported a software malfunction that caused thousands of calls
for help to drop on April 9th. According to reports the software used to track and assign the calls had a built-in counter that maxed out at 40 million
calls. Once the 40 millionth call had been placed, the calls bottlenecked cutting off over 11 million people in over seven states from the
emergency hotline. Source.

3. Thieves Leverage Software Override to Clean Out Casinos


A software override code for a specific brand of video roulette machines was released online, prompting a coordinated group of thieves to pull off
an Ocean’s Eleven-worthy heist. According to reports, the override code caused the machines to dispense money when the numbers 1-9-3-6 were
pressed before pulling the lever. The robbery targeted hundreds of casinos across Germany, some casinos losing as much as €100,000 in a
night. Source.

2. Airline Software Flaw Makes Boarding Passes Accessible to Public


An international airline recently discovered a software security flaw that allows anyone with a computer and valid URL to access (and potentially
change) flight boarding passes. While the airline was able to quickly issue a fix and does not believe that flight security has been compromised, the
issue does raise the question of data security as air travel becomes increasingly reliant on software programs to manage their
complexities. Source.

1. Error in Bitcoin Software Leads to Market Crash


As of February 2014, Mt. Gox, a Bitcoin exchange company based in Japan, closed its doors after declaring bankruptcy, saying it could not account
for its $474 million in Bitcoin and customer investment. While questions still remain as to the cause of Mt. Gox’s dramatic collapse, suspicions
swirl that the company had been slowly bleeding funds to hackers as a result of a previously discovered “transaction malleability” flaw in the
software. Source.

13
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
END

14
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
LECTURE 1 PART 2

15
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE ENGINEERING
• “A systematic approach to the analysis, design, implementation and
maintenance of software.” (The Free On-Line Dictionary of Computing)
• “ The systematic application of tools and techniques in the development of
computer-based applications.” (Sue Conger in The New Software Engineering)
• The IEEE [IEE93] has developed a more comprehensive definition when it
states:
• “Software Engineering is (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software. (2) The study of
approaches as in (1).”
• nkn

16
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE ENGINEERING
• “A Roger Pressman’s view: “Software engineering is a layered technology”

Tools
Methods
Process
A quality Focus

Standards of Software engineering


• Software Engineering Body of Knowledge (SWEBOK)
• http://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/otros-recursos-
1/SWEBOK_Guide_2004.pdf
• Software Engineering Institute (SEI) of Carnegie Mellon University
• http://www.sei.cmu.edu/
• Capability Maturity Model Integration (CMMI)

17
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SWEBOK KNOWLEDGE AREAS (KA)
Software process:
 Software engineering process is the glue that holds:
 - technology together
 - enables rational and timely development of computer software.
 Software engineering process is a framework of a set of key process areas.
 SWEBOK guide define ten knowledge areas (KAs) within the field of software
engineering:

1.Software requirements 6. Software configuration management


2.Software design 7.Software engineering management
3.Software construction 8.Software engineering process
4.Software testing 9.Software engineering tools and methods
5.Software maintenance 10.Software quality

18
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
CMMI LEVELS
CMMI Levels:

19
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
WHY SOFTWARE ENGINEERING?
Major Goals:
- To increase software productivity and quality.
- To effectively control software schedule and planning.
- To reduce the cost of software development.
- To meet the customers’ needs and requirements.
- To enhance the conduction of software engineering process.
- To improve the current software engineering practice.
- To support the engineers’ activities in a systematic and efficient manner.

20
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
SOFTWARE ENGINEERING AND SYSTEM ENGINEERING?

Software engineering is part of System engineering


System engineering is concerned with all aspects of computer-based systems
development including
 hardware,
 software and
 process engineering
System engineers are involved in
 system specification
 architectural design
 integration and deployment

21
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.
FYI
Software Engineer as the best job in the United States in 2006. [6]
And again in 2012, software engineering was ranked as the best job in the
United States, this time by CareerCast.com.

22
ASMA SAJID; COLLEGE OF COMPUTER SCIENCE & INFORMATION STUDIES (C 2SIS), GCUF.

Você também pode gostar