Download - 2Basic Concepts
-
8/3/2019 2Basic Concepts
1/42
November 8, 2011 Software Engineering, 2nd Sem. 2011-12
Software EngineeringBasic Concepts
Mrs. Ma. Christina FlorentinoMrs. Ma. Christina Florentino
CITE FacultyCITE Faculty
Sources: 1. Software Engineering & Testing by Agarwal, Tayal, Gupta
2. Software Engineering by Pressman
-
8/3/2019 2Basic Concepts
2/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Introduction to Software
Definition:
It is a set of instructions used to
Acquire inputs
Manipulate inputs to produce output
Includes:
Instructions
Data Structures
Documents that describes the operation and use of theprograms
IEEE: It is a collection of computer programs,
procedure rules and associated documentation
and data
-
8/3/2019 2Basic Concepts
3/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Importance of Software
It is the engine that drives business
decision making
Serves as the basis for modern
scientific investigation and engineering
problem-solving
Embedded in all kinds of systems
-
8/3/2019 2Basic Concepts
4/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Types of Software
2 Categories:
1. System Software. OS and all utilities
that enables the computer the function
2. Application Software. Programs that do
real work for users.
-
8/3/2019 2Basic Concepts
5/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Classes of Software
1. Generic Software. Designed forbroad customer market whose
requirements are very common, fairlystable and well understood by thesoftware engineer.
- sold in the open market
- there could be several competitorsin the market
-
8/3/2019 2Basic Concepts
6/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Classes of Software
2. Customized Software. Developed
for a customer where domain,
environment and requirements are
unique to that customer and cannot
be satisfied by generic products
-
8/3/2019 2Basic Concepts
7/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Generic vs. Customized
Developer manages Generic products;
customer manages customized
product
Requirements and specifications of a
generic product is controlled by the
developer
-
8/3/2019 2Basic Concepts
8/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Introduction to Software Engineering
IEEE Definition:
SE is the application of a systematic,
disciplined, quantifiable approach to the
development, operation and maintenance
of software
-
8/3/2019 2Basic Concepts
9/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Introduction to Software Engineering
Other Definition:
SE deals with cost-effective solutions to
practical problems by applying scientific
knowledge in building software artifacts in
the service of mankind
-
8/3/2019 2Basic Concepts
10/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Introduction to Software Engineering
Other Definition:
SE is a discipline whose aim is the
production of fault free software that
satisfies the users needs and that is
delivered on time and within budget
-
8/3/2019 2Basic Concepts
11/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Principles
PRINCIPLES
METHODSANDTECHNIQUES
METHODOLOGIES
TOOLS
-
8/3/2019 2Basic Concepts
12/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Principles
Rigor and formality
Separation of concernsModularity and decomposition
Abstraction
Anticipation of change
Generality
Incrementality
Scalability
Compositionality
Heterogeneity
-
8/3/2019 2Basic Concepts
13/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Characteristics
1. Most software is custom-built, ratherthan assembled from existing
components.2. Software is developed or engineered;
it is not manufactured in the classicalsense.
3. Software is flexible.
4. Software doesnt wear out.
-
8/3/2019 2Basic Concepts
14/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
The Bathtub Curve
Reliability Studies forHardware Products
-
8/3/2019 2Basic Concepts
15/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Curve
Time
Failure
Intensity
-Software becomesreliable over time
-It becomes
obsolete if the
environment it was
developed changes
-
8/3/2019 2Basic Concepts
16/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
Crisis problems and causes
encountered in the different stages of
software development
-
8/3/2019 2Basic Concepts
17/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
ProblemsSchedules and cost estimates are often grossly inaccurate
The Productivity of software people hasnt kept pace with
the demand for their servicesThe quality of the software is sometimes less thanadequate
With no solid indication of productivity, evaluation isimpossible
Communication between developer and customer is oftenpoor
Software maintenance tasks devour the majority of allsoftware funds
-
8/3/2019 2Basic Concepts
18/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
CausesThe quality of the software is not good becausemost developers use historical data to developthe software
If there is delay in any process or stage thenscheduling does not match the actual timing
Communications can break down because thespecial characteristics of software and problemsassociated with its development aremisunderstood
The software people responsible for tapping thepotential often change when it is discussed andresist change when it is introduced
-
8/3/2019 2Basic Concepts
19/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis from the programmers point of view
Problem of
Compatibility
PortabilityIn documentation
Piracy of software
Coordination of work of differentpeople
Proper maintenance
-
8/3/2019 2Basic Concepts
20/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis from the users point of view
Software cost is very high
Hardware goes down
Problem of different versions ofsoftware
Problem of views
Problem of bugs
-
8/3/2019 2Basic Concepts
21/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Myths
If we get behind schedule, we can add
more programmers and catch up
If we decide to outsource the softwareproduct to a third party, we can just relax
and let that firm build it.
Project requirement continuously changes,
but changes can be easily accommodated
because software is flexible
-
8/3/2019 2Basic Concepts
22/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Myths
The only deliverable work product for a
successful project is the working
program
Software with more features is a better
software
Once we write the program and get itto work, our job is done
-
8/3/2019 2Basic Concepts
23/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Myths
Until we get the program running, we have
no way of assessing its quality
Software engineering will make us createvoluminous and unnecessary
documentation and will invariably slow us
down
A general statement of objectives is
sufficient to begin writing programs; we can
fill in the details later
-
8/3/2019 2Basic Concepts
24/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications
Applications are grouped into 8 areas
1. System Software
2. Real-time Software3. Embedded Software
4. Business Software
5. Personal Computer Software
6. Artificial Intelligence Software7. Web-based Software
8. Engineering and Scientific Software
-
8/3/2019 2Basic Concepts
25/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
System Software
Used to run the system as an
assistance to other software programs
Ex: compilers, editors, utilities, OS
components, drivers, interfaces
-
8/3/2019 2Basic Concepts
26/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Real-Time Software
Deals with the changing environment;it collects input, converts it to digital,
control component that responds tothe external environment and performsactions
Monitors, controls and analyze real-world events as they occur
Ex: Rocket launching, games, etc.
-
8/3/2019 2Basic Concepts
27/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Embedded Software
Written to perform certain functions
under control conditions and is further
embedded into hardware as part of alarge systems
Also called intelligent software
-
8/3/2019 2Basic Concepts
28/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Business Software
Designed to process and drives
business applications through on-line
or real-time mode
Ex: accounting packages, MIS, payroll,
inventory
-
8/3/2019 2Basic Concepts
29/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Personal Computer Software
Ex: word processing, spreadsheets,
computer graphics, etc.
-
8/3/2019 2Basic Concepts
30/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
AI Software
Uses non-numeric algorithms to solve
complex problems
Ex: robotics, expert systems, pattern
recognition, neural networks, theorem
proving, game playing, signal-
processing software
-
8/3/2019 2Basic Concepts
31/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Web-Based Software
Included the languages by which web
pages are processed
-
8/3/2019 2Basic Concepts
32/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Engineering and Scientific Software
Written for specific applications using
the principles and formulae of each
field
-
8/3/2019 2Basic Concepts
33/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Process a series of that steps
involving activities, constraints, and
resources that produce an intendedoutput of some kind.
Software Process a set of activities
whose goal is the development orevolution of software
-
8/3/2019 2Basic Concepts
34/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Four Fundamental process activities:
1. Software Specifications
2. Software Development
3. Software Validation
4. Software Evolution
-
8/3/2019 2Basic Concepts
35/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Software Specifications
The functionality of the software and
constraints on its operation must be
defined
-
8/3/2019 2Basic Concepts
36/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Software Development
Software that meets the specifications
must be produced
-
8/3/2019 2Basic Concepts
37/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Software Validation
The software must be validated to
ensure that it does what the customer
wants
-
8/3/2019 2Basic Concepts
38/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Engineering Processes
Software Evolution
The software must evolve to meet
changing customer needs
-
8/3/2019 2Basic Concepts
39/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Some Terminologies
Deliverables and Milestones
Deliverables are generated during
software development
Milestones are the events that ascertain
the status of the project
-
8/3/2019 2Basic Concepts
40/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Some Terminologies
Product and Process
Product is what is delivered to the
customer (deliverables)
Process is the way we produce software
-
8/3/2019 2Basic Concepts
41/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Some Terminologies
Measure, Metrics, Indicators
Measures provides a quantitative
indication of amount, dimension,capacity, or size of a given attribute of aproduct
Metrics are quantitative measure of the
degree to which a system possesses agiven attribute of a product
Indicators are is a combination of metrics
-
8/3/2019 2Basic Concepts
42/42
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Programs vs. Software Products
Programs Software Product
Developed by individuals for their
personal use
Developed by a group of engineers
working as a team
Small in size Usually large in size
Single user Large number of users
Single developers Team of developers
Lack proper documentation Good documentation support
Adhoc development Systematic development
Lack of user interface Good user interface
Limited functionality More functionality