0% found this document useful (0 votes)
17 views55 pages

UNIT-I SWE Part-1

SOFTWARE ENGINNERING
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views55 pages

UNIT-I SWE Part-1

SOFTWARE ENGINNERING
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

UNIT-I

KCS-601
SOFTWARE ENGINEERING
PART-I

Software Engineering
Syllabus
Software Engineering
Software engineering (SE) is the application of
a systematic, disciplined, quantifiable approach to
the design, development, operation, and
maintenance of Software, and the study of these
approaches; that is, the application of engineering to
Software.
Classification Of Software
◻ Custom Software
◻ For a specific customer
◻ Generic Software
⮚ Sold on open market
⮚ Often called
⮚ COTS (Commercial Off The Shelf)
⮚ Shrink-wrapped

◻ Embedded Software
⮚ Built into hardware
⮚ Hard to change
Types Of Software

◻ System Software-This Software includes


the operating system and all utilities that enable
the computer to function.
◻ Application Software-These consist of
programs that do real work for users. For
example, word processors, spreadsheets, and
database management systems fall under the
category of applications Software.
Types Of Software
Software Myth
It is Defined in these categories-
◻ Management Perspectives

◻ Customer Perspectives

◻ Practitioners (Developer) Perspectives


Software Myths
◻ Software is Easy to Change.
◻ Computer Software provides the greater reliability than the
device they replaced.
◻ Testing Software Can remove all errors.
◻ Reusing Software increase safety.
◻ Software with more features is better Software.
◻ Once we write the program and get it to work, our job is
done.
◻ The only deliverable work product for a successful
project is the working program.
Software Myth
Software Myths
◻ “If my project is behind the schedule, I
always can add more programmers to it
and catch up …”(a.k.a. “The Mongolian Horde

concept”)
“ already have a book of standards and
We
procedures for building software. It does provide
my people with everything they need to know …”
◻ “If I decide to outsource the software project to a
third party, I can just relax: Let them build it, and
I will just pocket my profits …”
Software Components

◻ Off-the Self Components.

◻ Full Experience Components.

◻ Partial Experience Components.

◻ New Components.
Software Components

◻ Program=Source code + object code


◻ Software=Program + Documentation + Operating Procedures
Software Components
Documentation consists of different types of manuals are:
Documentation consists of different types of manuals are:
Importance of Software
Computer Software has become a driving force-
◻ It is the engine that drives business decision making.

◻ It serves as thebasis formodern scientific


investigation and engineering problem-solving.
◻ It is embedded in all kinds of systems, such as
transportation, medical, telecommunications, military,
industrial processes, entertainment, office products,
etc.
Software
Characteristic(important)
Important Characteristics are-
◻ Software does not wear out.

◻ Software is Flexible and Reliable.

◻ Software is Engineered, Not Manufactured.

◻ Reusability Of Components.
Software does not wear
out-
Software does not wear
out-
Wear vs. Deterioration
Software deteriorates (Become worse)
over time
Software Crisis

Software crisis is a term used in the early days of computing science for the
difficulty of writing useful and efficient computer programs in the required time.
Problems faced by Customers due to
S/W Crisis
Software Crisis

S/W crisis from programmer point of view:-


i)Problem of compatibility.
ii)Problem of Portability.
iii)Proclaiming documentation.
iv)Problem of pirated s/w.
v)Problem in co-ordination of work of different people.
vi)Problem of proper maintenance.
S/W crisis from user point of view:-
i) s/w cost is very high.
ii)Price of h/w grows down.
iii)Lack of development specification.
iv)Problem of different s/w versions.
v)Problem of bugs or errors.
Causes and Solution of S/W Crisis
The causes of the software crisis were linked to the overall complexity of hardware and
the software development process. The crisis manifested itself in several ways:
1. Projects running over-budget
2. Projects running over-time
3. Software was very inefficient
4. Software was of low quality
5. Software often did not meet requirements
6. Projects were unmanageable and code difficult to maintain
7. Software was never delivered
The main cause is that improvements in computing power had outpaced the ability of
programmers to effectively utilize those capabilities.

Possible Solution:
Various processes and methodologies have been developed over the last few decades to
improve software quality management such as procedural programming and object-
oriented programming. However software projects that are large, complicated, poorly
specified, and involve unfamiliar aspects, are still vulnerable to large, unanticipated
problems.
Software Engg: Layered
Approach
Goals Of Software Engg
Challenges In Software Engg
Software Engg. Process
◻ Sequence of steps required to develop or
maintain software.
◻ A Software process is the related set of activities
and processes that are involved in developing and
evolving a Software system.
◻ A set of activities whose goal is the development
or evolution of Software.
◻ A Software process is a set of activities and associated
results, which produce a Software product.
◻ A process defines who is doing what, when and how to
reach a certain goal.
Fundamental Software Process Activities
Common to All Software process-
◻ Software Specifications-
The functionality of the Software and constraints
on its operation must be defined.
◻ Software Development-
Software that meets the specifications must be produced.
◻ Software Validation-
The Software must be validated to ensure that it does what the
customer wants.
◻ Software Evaluation-
The Software must be develop to meet changing
customer needs.
Software Process Framework
CSE@HCST4/27/2016
Software Engg.Process

Five Generic Common Process Framework


activities are-
◻ Communication
◻ Planning
◻ Modeling
Analysis of requirements
Design
◻ Construction/Development
Code generation
Testing
◻ Deployment
Umbrella Activities (after deployment)
◻ Software project tracking and control.
◻ Formal technical reviews.
◻ Software quality assurance.
◻ Software configuration management.
◻ Work product preparation and production (activities to create
models, documents, logs, forms, lists, etc.).
◻ Reusability management (defines criteria for work product
reuse and establish mechanisms to achieve component reuse).
◻ Measurement.
◻ Risk management.
Identifying a Task Set
◻ A task set defines the actual work to be
done to accomplish the objectives of a
software engineering action.
■ A list of the task to be accomplished
■ A list of the work products to be produced
■ A list of the quality assurance filters to be applied
Process Assessment

◻ SPICE (ISO/IE15504) standard defines a set of


requirements for process assessment

◻ ISO 9001:2000 for Software defines requirements


for a quality management system that will produce
higher quality products and improve customer
satisfaction
Software Process Characteristic
Software Process Characteristics are-
Understandability
Visibility
Robustness
Reliability
Acceptability
Maintainability
Rapidity
Supportability
A Generic Process Model
Software Process
The software process is the way in which we produce software.

Why is it difficult to improve software process ?


• Not enough time
• Lack of knowledge
• Wrong motivations
• Insufficient commitment
Software Process Models

Based on s/w process, s/w products and the role of people involve in s/w engg.
1. Work Flow model
2. Data Flow model
3. Role/Action Model

Most s/w process model are based on one of three general approaches of s/w
development:
1.Waterfall approach
2. Iterative development approach
3. Computer Based S/W Engg. (CBSE) approach
Process Flow
Difference between Conventional and Software Engg
Issue S/W Engg. Conventional Engg.
Foundation Based on CS, IS & Discrete maths. Based on science,maths & emperical
knowledge.

Cost Project cost is higher than h/w. Some projects material cost is high rather
than manufacturing cost

Replication Copy/paste, downloading, CD/DVD Not possible, every time create new unit
possible

Innovation New and untested elements may be Apply known and tested principles
applied

Duration Project lies for some years or Projects endures for centuries e.g. bridges
decade

Blame Engineers blame themselves for Engineers can blame to others


problems

Age SE is about 50 years old CE is thousands of years old


Domain Uses limited no. of concepts Uses unlimited no. of concepts
Research Research the unknown Apply research result in known
Difference between Conventional and
Software Engg.

Software Engineering: Abstract Design ⎯⎯→ Abstract Code

Conventional Engineering: Abstract Design ⎯⎯→ Concrete Products


Some Software failures
Ariane 5
Some Software failures
Some Software failures
CSE@HCST 4/27/2016
Some Terminologies
◻ Deliverables and Milestones.
◻ Product and Process.
◻ Measures, Metrics, and Indicators.
◻ Feasibility.
◻ Requirements.
◻ Requirement elicitation.
◻ Software quality assurance.
◻ Cost analysis.
◻ Scheduling.
Deliverables and Milestones-

◻ Deliverables can be agreements or evaluations, normally


deliverables are objects, such as source code or
user manuals.

◻ Milestones are events that can be used for telling


the status of the project. For example, the event
of completing the user manual could be a milestone.
Product and Process-
◻ What is delivered to the customer is called the
product. It may include source-code
specification documents, manuals, documentation,
etc. Basically, it is nothing but a set of deliverables
only.
◻ Process is the way in which we produce Software.
It is the collection of activities that leads to (a part
of) a product. An efficient process is required
to produce good quality products.
◻ if the process is weak, the end product
will undoubtedly suffer.
Measures, Metrics, and
Indicators-
◻ In Software engineering measures provide a
quantitative indication of amount, dimension,
capacity, or size of a given attribute of a product.
◻ Metrics are a quantitative measure of the degree to
which a system, component, or process possesses
a given attribute of a product.
◻ An indicator is a combination of metrics.
Difference between data and information
Data Information
Data is collection of raw facts and Information is processed data.
figures.
Data is unarranged and unorganized.. Information is arranged and organized

Data is un-meaningful Information is meaningful.


Data is input. Information is output.
Data is used less frequently. Information is used frequently.
Data represents facts before processing Information represents results (
after processing).
Data is not helpful in decision-making. Information is helpful in decision-making.

Data is raw material for information. Information is the final product of data.
Data are unprocessed records Information contains processed records
Data is in large amounts Information is in small amounts
If data is lost, it is very difficult (or If information is lost, it is easily derived
even impossible in some situations) from stored data, again.
to re collect.

Data depends upon the sources Information depends upon data


Feasibility, Requirements, Requirement elicitation, Software
quality assurance, Cost analysis, Scheduling

◻ Feasibility—Determining if the proposed development


is worth while.
◻ Requirements- Determining what functionality the
Software should contain.
◻ Requirement elicitation- Obtaining the requirements
from the user.
◻ Software quality assurance- Determining activities
that will help ensure quality of the product.
◻ Cost analysis—Determining cost estimates.
◻ Scheduling—Building a schedule for the development.
Software Quality Attributes
[FRUEMP]

◻ Software quality is comprised of six main attributes


(called characteristics)-
◻ for Software products, these attributes can be
defined as follows.
Software Quality Attributes-
◻ Functionality: The capability to provide functions which
meet
stated and implied needs when the Software is used.
◻ Reliability: The capability to maintain a specified level
of performance.
◻ Usability: The capability to be understood, learned, and used.
◻ Efficiency: The capability to provide appropriate
performance relative to the amount of resources used.
◻ Maintainability: The capability to be modified for
purposes of making corrections, improvements, or adaptation.
■ Corrective, Adaptive, Perfective.
◻ Portability: The capability to be adapted for different
specified environments without applying actions or means other
than those provided for this purpose in the product.
Role of Management in Software Development(4P’s)
Role of Management in
Software Development
Role of Management in
Software Development

You might also like