SlideShare a Scribd company logo
1 of 32
Download to read offline
Software Engineering Principles
using Android
(CSE-4141)
Ajit K Nayak, Ph.D.
ajitnayak@soauniversity.ac.in
Lecture – 1 & 2
Introduction to Software
Engineering
Program versus Software
Program Software
• Usually small in size • Large
• Author himself is sole
user
• Large number of users
• Single developer • Team of developers
• Lacks proper user interface • UI is an important aspect
• Lacks proper
documentation
• Well documented & user-
manual prepared
• Ad hoc development • Systematic development
Software Characteristics
• Software is intangible
– Hard to understand development effort
• Software is easy to reproduce
– Cost is in its development
– in other engineering products, manufacturing is the
costly stage
• Software is easy to modify
– People make changes without fully understanding it
• Software does not ‘wear out’
– It deteriorates by having its design changed:
• erroneously, or
• in ways that were not anticipated, thus making it complex
S/W Failure rate
idealized curve
change
actual curve
Failure
rate
Time
increased failure
rate due to side ef fects
Software Engineering - defining
• Engineering approach to develop software.
– It discusses systematic and cost effective techniques
for software development.
• The process of solving customers’ problems by the
systematic development and evolution of large, high-
quality software systems within cost, time and other
constraints
• The application of a systematic, disciplined,
quantifiable approach to the development, operation,
maintenance of software; that is, the application of
engineering to software. (IEEE)
Evolution Pattern
• Every technology in the initial years starts from an art.
• Over time, it graduates to a craft and finally emerges as an
engineering discipline.
– Example: Iron making, paper making, software
development, or building construction.
• i.e. say iron making:
– The esoteric knowledge got transferred from generation
to generation as a family secret
– Slowly a tradesman shared their knowledge with their
apprentices and the knowledge pool continues to grow.
– Much later, through a systematic organization and
documentation of knowledge, and incorporation of
scientific basic, modern steel making technology
emerged.
Evolution of Pattern of Technology
Art
Craft
Engineering
Systematic Use of Past
Experience and Scientific
Basis
Esoteric Past
Experience
Technology
Time
Unorganized Use of
Past Experience
Types of Software - I
• Customized
– For a specific customer according to requirement.
• Generic
– Used by a diverse range of customers
– Sold on open market (Ms. Windows, Oracle, …)
– Often called
• COTS (Commercial Off The Shelf)
• Shrink-wrapped
• Embedded
– Built into hardware
– Hard to change
Types of Software - II
• Real time software
– E.g. control and monitoring systems
– Must react in time
– Safety often a concern
• Data processing software
– Used to run businesses
– Accuracy and security of data
• Some software has both aspects
Generic versus Custom S/W
Generic Custom
• The specification is owned by
the product developer.
• The specification is owned and
controlled by the customer as
the domain, requirement and
environment being unique to
the customer.
• The developer can quickly
decide to change the
specification in response to
some external change.
• changes have to be negotiated
between the customer and the
developer and may have
contractual implications.
• Users of generic products have no control over the software specification so
cannot control the evolution of the product.
• The developer may include/exclude features and change the user interface which
may affect user’s business processes and add extra training costs when new
versions of the system are installed. Again it may limit the customer’s flexibility
to change their own business processes.
Quiz - I
• Classify the following software according to whether it is
likely to be custom, generic or embedded (or some
combination); and whether it is data processing or real-
time.
– A system to control the reaction rate in a nuclear
reactor.
– A program that runs inside badges worn by nuclear plant
workers that monitors radiation exposure.
– A program used by administrative assistants at the
nuclear plant to write letters.
– A system that logs all activities of the reactor and its
employees so that investigators can later uncover the
cause of any accident.
– A program used to generate annual summaries of the
radiation exposure experienced by workers.
– An educational web site containing a Flash animation
describing how the nuclear plant works.
Revision
• Difference between program and software?
• Characteristics of software?
• Art, craft, engineering?
• Customized vs. Generic?
• Real time vs. Data processing?
• Disadvantages of Generic Software?
Stakeholders in Software Engineering
• Users
– Those who use the software
• Customers
– Those who pay for the software
• Software developers
• Development Managers
• All four roles can be fulfilled by the same person
Case Study: ATM stake holders
• Bank customers
• Representatives of other banks
• Bank managers
• Counter staff
• Database administrators
• Security managers
• Marketing department
• Hardware and software maintenance engineers
• Banking regulators
Software Quality
• Usability
– Users can learn it fast and get their job done easily
• Efficiency
– It doesn’t waste resources such as CPU time and
memory
• Reliability
– It does what it is required to do without failing
• Maintainability
– It can be easily changed
• Reusability
– Its parts can be used in other projects, so
reprogramming is not needed
Quiz - II
• Find most and the least important quality attributes
for each of the following systems.
– A web-based banking system, enabling the user to
do all aspects of banking on-line.
– An air traffic control system.
– A program that will enable users to view digital
images or movies stored in all known formats.
– A system to manage the work schedule of nurses
that respects all the constraints and regulations in
force at a particular hospital.
– An application that allows you to purchase any item
seen while watching TV.
Software Quality and the Stakeholders
Quality
Software
Customer:
solves problems at an
acceptable cost in terms of
money paid and resources
used
User:
easy to learn;
efficient to use;
helps get work done
Developer:
easy to maintain;
easy to design;
easy to reuse its parts
Development manager:
pleases customers
sells more and costing
less to develop and
maintain
Software Quality: Conflicts and
Objectives
• The different qualities can conflict
– Increasing efficiency can reduce maintainability or
reusability
– Increasing usability can reduce efficiency
• Setting objectives for quality is a key engineering
activity
– You then design to meet the objectives
– Avoids ‘over-engineering’ which wastes money
• Optimizing is also sometimes necessary
– e.g. obtain the highest possible reliability using a
fixed budget
Quiz- III
• How do you think each of the four types of stakeholders
would react in each of the following situations?
• Problem: A new system that will completely automate the
work of one individual in the customer’s company.
– Case a:
– You discover that the cost of developing the system
would be far more than the cost of continuing to do the
work manually, so you recommend against proceeding
with the project.
– Case b: You implement a system according to the
precise specifications of a customer.
– However, when the software is put into use, the users find
it does not solve their problem.
Software Crisis
• Software products:
– fail to meet user requirements.
– frequently crash.
– expensive.
– difficult to alter, debug, and enhance.
– often delivered late.
– use resources non-optimally.
– Relative Cost of Hardware and Software
Software Crisis
• Imagine: When you buy a software, the hardware on
which the software runs would come free with the
software!!!
Year
Hw cost
Sw cost
Relative Cost of Hardware and Software
1960 2016
Factors contributing to the software
crisis
• Larger problems
• Lack of adequate training in software engineering
• Increasing skill shortage
• Low productivity improvements
Exploratory style of S/W Development
• Also called the “build and fix” style, normally a `dirty'
program is quickly developed.
• The different imperfections that are subsequently noticed
are fixed.
• This style usually results in un-maintainable code.
• It becomes very difficult to use this style in a team
development environment.
Initial briefing
by customer
Initial Coding
Test
Modify Code
Failure
Satisfactory
Development
complete
Exploratory style
• This style causes the perceived difficulty of a problem
to grow exponentially due to human cognitive
limitations.
Program Size
Effort,time,cost
Exploratory
Software
Engineering
Machine
How to Overcome Human Cognitive
Limitations ?
• Mainly two important principles are deployed:
– Abstraction
– Decomposition
Abstraction
• Simplify a problem by omitting unnecessary details.
– Focus attention on only one aspect of the problem and
ignore irrelevant details.
• Case Study: Suppose you are asked to develop an
overall understanding of some country.
– One would meet all the citizens of the country, visit every
house, and examine every tree of the country, etc.
(unlikely)
– One would possibly refer to various types of maps for that
country. (likely)
• A map, in fact, is an abstract representation of a
country.
– Several abstractions are possible for the same object
(country) like political map and physical map
Decomposition
• Decompose a problem into many small independent
parts.
– The small parts are then taken up one by one and
solved separately.
– The idea is that each small part would be easy to
grasp and can be easily solved.
– The full problem is solved when all the parts are
solved.
• Example
– Try to break a bunch of sticks tied together versus
breaking them individually.
Why Study Software Engineering?
• To acquire skills to develop large programs.
– Exponential growth in complexity and difficulty level
with size.
– The ad hoc approach breaks down when size of
software increases.
• Ability to solve complex programming problems:
– How to break large projects into smaller and
manageable parts?
• Learn techniques of:
– specification, design, interface development,
testing, project management, etc.
Evolution of Design Techniques
Object-Oriented
Exploratory
Style
Data flow-based
Data structure-
based
Control flow-
based
Modern S/W Development Practices
• Use of Life Cycle Models
– Software is developed through several well-defined
stages:
• requirements analysis and specification,
• design,
• coding,
• testing, etc.
• Emphasis has shifted from error correction to error
prevention.
• Modern practices emphasize on detection of errors as
close to their point of introduction as possible.
• Unlike exploratory style, now coding is considered
only a small part of program development effort.
Software Engineering: A Layered
Technology
Software Engineering
a “quality” focus
process model
methods
tools
Thank You

More Related Content

What's hot

Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modelingramyaaswin
 
EMC Cloud Management
EMC Cloud ManagementEMC Cloud Management
EMC Cloud ManagementCenk Ersoy
 
Artificial Intelligence Notes Unit 2
Artificial Intelligence Notes Unit 2Artificial Intelligence Notes Unit 2
Artificial Intelligence Notes Unit 2DigiGurukul
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modelingSyed Zaid Irshad
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9Ian Sommerville
 
HCI 3e - Ch 11: User support
HCI 3e - Ch 11:  User supportHCI 3e - Ch 11:  User support
HCI 3e - Ch 11: User supportAlan Dix
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed SystemsDr Sandeep Kumar Poonia
 
Lecture 9 understanding requirements
Lecture 9   understanding requirementsLecture 9   understanding requirements
Lecture 9 understanding requirementsIIUI
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Knowledge representation and Predicate logic
Knowledge representation and Predicate logicKnowledge representation and Predicate logic
Knowledge representation and Predicate logicAmey Kerkar
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptxubaidullah75790
 
States, state graphs and transition testing
States, state graphs and transition testingStates, state graphs and transition testing
States, state graphs and transition testingABHISHEK KUMAR
 

What's hot (20)

Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modeling
 
EMC Cloud Management
EMC Cloud ManagementEMC Cloud Management
EMC Cloud Management
 
Frames
FramesFrames
Frames
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Artificial Intelligence Notes Unit 2
Artificial Intelligence Notes Unit 2Artificial Intelligence Notes Unit 2
Artificial Intelligence Notes Unit 2
 
Software development
Software developmentSoftware development
Software development
 
Requirements analysis and modeling
Requirements analysis and modelingRequirements analysis and modeling
Requirements analysis and modeling
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Ch5- Software Engineering 9
Ch5- Software Engineering 9Ch5- Software Engineering 9
Ch5- Software Engineering 9
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
HCI 3e - Ch 11: User support
HCI 3e - Ch 11:  User supportHCI 3e - Ch 11:  User support
HCI 3e - Ch 11: User support
 
Processes and Processors in Distributed Systems
Processes and Processors in Distributed SystemsProcesses and Processors in Distributed Systems
Processes and Processors in Distributed Systems
 
Lecture 9 understanding requirements
Lecture 9   understanding requirementsLecture 9   understanding requirements
Lecture 9 understanding requirements
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Naming in Distributed System
Naming in Distributed SystemNaming in Distributed System
Naming in Distributed System
 
Knowledge representation and Predicate logic
Knowledge representation and Predicate logicKnowledge representation and Predicate logic
Knowledge representation and Predicate logic
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
Virtual machine
Virtual machineVirtual machine
Virtual machine
 
States, state graphs and transition testing
States, state graphs and transition testingStates, state graphs and transition testing
States, state graphs and transition testing
 

Viewers also liked

Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagramsartgreen
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UMLAjit Nayak
 
Software Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramSoftware Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramAjit Nayak
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagramsAjit Nayak
 
Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Ajit Nayak
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 

Viewers also liked (10)

Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagrams
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
Software Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramSoftware Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagram
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
 
Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 

Similar to Software Engineering an Introduction

Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Software process models
Software process modelsSoftware process models
Software process modelsMalik WaQas
 
Software Engineering pdf
Software Engineering pdfSoftware Engineering pdf
Software Engineering pdfKieveBarreto1
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...GaytriMate
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAAiman Hud
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.KelisKing
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxtaxegap762
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii yearPreeti Mishra
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii yearPreeti Mishra
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process ModelsAjit Nayak
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfutubashaikh26
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 

Similar to Software Engineering an Introduction (20)

Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Software process models
Software process modelsSoftware process models
Software process models
 
Software Engineering pdf
Software Engineering pdfSoftware Engineering pdf
Software Engineering pdf
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...Java learn from basic part chapter_01 short notes to understand the java quic...
Java learn from basic part chapter_01 short notes to understand the java quic...
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
software engineering
software engineeringsoftware engineering
software engineering
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
Kelis king - introduction to s.e.
Kelis king -  introduction to s.e.Kelis king -  introduction to s.e.
Kelis king - introduction to s.e.
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptx
 
Unit 1 importance ofsoftengg_b.tech iii year
Unit 1  importance ofsoftengg_b.tech iii yearUnit 1  importance ofsoftengg_b.tech iii year
Unit 1 importance ofsoftengg_b.tech iii year
 
Unit 1 introduction tosoftengg_mba tech ii year
Unit 1  introduction tosoftengg_mba tech ii yearUnit 1  introduction tosoftengg_mba tech ii year
Unit 1 introduction tosoftengg_mba tech ii year
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 

More from Ajit Nayak

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testingAjit Nayak
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQLAjit Nayak
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part IAjit Nayak
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt IIAjit Nayak
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIIAjit Nayak
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using CAjit Nayak
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPIAjit Nayak
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementAjit Nayak
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-BasicsAjit Nayak
 
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockAjit Nayak
 
Introduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryAjit Nayak
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusAjit Nayak
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-NormalisationAjit Nayak
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER ModelAjit Nayak
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module IIIAjit Nayak
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module IIAjit Nayak
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module IAjit Nayak
 
Object Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIAjit Nayak
 
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IObject Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IAjit Nayak
 

More from Ajit Nayak (20)

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testing
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQL
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part I
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt II
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt III
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using C
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory Management
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-Basics
 
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
 
Introduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and Recovery
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculus
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER Model
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module III
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module II
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module I
 
Object Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part III
 
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IObject Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part I
 

Recently uploaded

High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSsandhya757531
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Substation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHSubstation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHbirinder2
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTSneha Padhiar
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfManish Kumar
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunicationnovrain7111
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESkarthi keyan
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier Fernández Muñoz
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProRay Yuan Liu
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxLina Kadam
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsResearcher Researcher
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHSneha Padhiar
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfDrew Moseley
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Sumanth A
 

Recently uploaded (20)

High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMSHigh Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
High Voltage Engineering- OVER VOLTAGES IN ELECTRICAL POWER SYSTEMS
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Versatile Engineering Construction Firms
Versatile Engineering Construction FirmsVersatile Engineering Construction Firms
Versatile Engineering Construction Firms
 
Substation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHSubstation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRH
 
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTFUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
FUNCTIONAL AND NON FUNCTIONAL REQUIREMENT
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdfModule-1-(Building Acoustics) Noise Control (Unit-3). pdf
Module-1-(Building Acoustics) Noise Control (Unit-3). pdf
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunication
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptx
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision Pro
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptx
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending Actuators
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdf
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
 

Software Engineering an Introduction

  • 1. Software Engineering Principles using Android (CSE-4141) Ajit K Nayak, Ph.D. ajitnayak@soauniversity.ac.in Lecture – 1 & 2 Introduction to Software Engineering
  • 2. Program versus Software Program Software • Usually small in size • Large • Author himself is sole user • Large number of users • Single developer • Team of developers • Lacks proper user interface • UI is an important aspect • Lacks proper documentation • Well documented & user- manual prepared • Ad hoc development • Systematic development
  • 3. Software Characteristics • Software is intangible – Hard to understand development effort • Software is easy to reproduce – Cost is in its development – in other engineering products, manufacturing is the costly stage • Software is easy to modify – People make changes without fully understanding it • Software does not ‘wear out’ – It deteriorates by having its design changed: • erroneously, or • in ways that were not anticipated, thus making it complex
  • 4. S/W Failure rate idealized curve change actual curve Failure rate Time increased failure rate due to side ef fects
  • 5. Software Engineering - defining • Engineering approach to develop software. – It discusses systematic and cost effective techniques for software development. • The process of solving customers’ problems by the systematic development and evolution of large, high- quality software systems within cost, time and other constraints • The application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (IEEE)
  • 6. Evolution Pattern • Every technology in the initial years starts from an art. • Over time, it graduates to a craft and finally emerges as an engineering discipline. – Example: Iron making, paper making, software development, or building construction. • i.e. say iron making: – The esoteric knowledge got transferred from generation to generation as a family secret – Slowly a tradesman shared their knowledge with their apprentices and the knowledge pool continues to grow. – Much later, through a systematic organization and documentation of knowledge, and incorporation of scientific basic, modern steel making technology emerged.
  • 7. Evolution of Pattern of Technology Art Craft Engineering Systematic Use of Past Experience and Scientific Basis Esoteric Past Experience Technology Time Unorganized Use of Past Experience
  • 8. Types of Software - I • Customized – For a specific customer according to requirement. • Generic – Used by a diverse range of customers – Sold on open market (Ms. Windows, Oracle, …) – Often called • COTS (Commercial Off The Shelf) • Shrink-wrapped • Embedded – Built into hardware – Hard to change
  • 9. Types of Software - II • Real time software – E.g. control and monitoring systems – Must react in time – Safety often a concern • Data processing software – Used to run businesses – Accuracy and security of data • Some software has both aspects
  • 10. Generic versus Custom S/W Generic Custom • The specification is owned by the product developer. • The specification is owned and controlled by the customer as the domain, requirement and environment being unique to the customer. • The developer can quickly decide to change the specification in response to some external change. • changes have to be negotiated between the customer and the developer and may have contractual implications. • Users of generic products have no control over the software specification so cannot control the evolution of the product. • The developer may include/exclude features and change the user interface which may affect user’s business processes and add extra training costs when new versions of the system are installed. Again it may limit the customer’s flexibility to change their own business processes.
  • 11. Quiz - I • Classify the following software according to whether it is likely to be custom, generic or embedded (or some combination); and whether it is data processing or real- time. – A system to control the reaction rate in a nuclear reactor. – A program that runs inside badges worn by nuclear plant workers that monitors radiation exposure. – A program used by administrative assistants at the nuclear plant to write letters. – A system that logs all activities of the reactor and its employees so that investigators can later uncover the cause of any accident. – A program used to generate annual summaries of the radiation exposure experienced by workers. – An educational web site containing a Flash animation describing how the nuclear plant works.
  • 12. Revision • Difference between program and software? • Characteristics of software? • Art, craft, engineering? • Customized vs. Generic? • Real time vs. Data processing? • Disadvantages of Generic Software?
  • 13. Stakeholders in Software Engineering • Users – Those who use the software • Customers – Those who pay for the software • Software developers • Development Managers • All four roles can be fulfilled by the same person
  • 14. Case Study: ATM stake holders • Bank customers • Representatives of other banks • Bank managers • Counter staff • Database administrators • Security managers • Marketing department • Hardware and software maintenance engineers • Banking regulators
  • 15. Software Quality • Usability – Users can learn it fast and get their job done easily • Efficiency – It doesn’t waste resources such as CPU time and memory • Reliability – It does what it is required to do without failing • Maintainability – It can be easily changed • Reusability – Its parts can be used in other projects, so reprogramming is not needed
  • 16. Quiz - II • Find most and the least important quality attributes for each of the following systems. – A web-based banking system, enabling the user to do all aspects of banking on-line. – An air traffic control system. – A program that will enable users to view digital images or movies stored in all known formats. – A system to manage the work schedule of nurses that respects all the constraints and regulations in force at a particular hospital. – An application that allows you to purchase any item seen while watching TV.
  • 17. Software Quality and the Stakeholders Quality Software Customer: solves problems at an acceptable cost in terms of money paid and resources used User: easy to learn; efficient to use; helps get work done Developer: easy to maintain; easy to design; easy to reuse its parts Development manager: pleases customers sells more and costing less to develop and maintain
  • 18. Software Quality: Conflicts and Objectives • The different qualities can conflict – Increasing efficiency can reduce maintainability or reusability – Increasing usability can reduce efficiency • Setting objectives for quality is a key engineering activity – You then design to meet the objectives – Avoids ‘over-engineering’ which wastes money • Optimizing is also sometimes necessary – e.g. obtain the highest possible reliability using a fixed budget
  • 19. Quiz- III • How do you think each of the four types of stakeholders would react in each of the following situations? • Problem: A new system that will completely automate the work of one individual in the customer’s company. – Case a: – You discover that the cost of developing the system would be far more than the cost of continuing to do the work manually, so you recommend against proceeding with the project. – Case b: You implement a system according to the precise specifications of a customer. – However, when the software is put into use, the users find it does not solve their problem.
  • 20. Software Crisis • Software products: – fail to meet user requirements. – frequently crash. – expensive. – difficult to alter, debug, and enhance. – often delivered late. – use resources non-optimally. – Relative Cost of Hardware and Software
  • 21. Software Crisis • Imagine: When you buy a software, the hardware on which the software runs would come free with the software!!! Year Hw cost Sw cost Relative Cost of Hardware and Software 1960 2016
  • 22. Factors contributing to the software crisis • Larger problems • Lack of adequate training in software engineering • Increasing skill shortage • Low productivity improvements
  • 23. Exploratory style of S/W Development • Also called the “build and fix” style, normally a `dirty' program is quickly developed. • The different imperfections that are subsequently noticed are fixed. • This style usually results in un-maintainable code. • It becomes very difficult to use this style in a team development environment. Initial briefing by customer Initial Coding Test Modify Code Failure Satisfactory Development complete
  • 24. Exploratory style • This style causes the perceived difficulty of a problem to grow exponentially due to human cognitive limitations. Program Size Effort,time,cost Exploratory Software Engineering Machine
  • 25. How to Overcome Human Cognitive Limitations ? • Mainly two important principles are deployed: – Abstraction – Decomposition
  • 26. Abstraction • Simplify a problem by omitting unnecessary details. – Focus attention on only one aspect of the problem and ignore irrelevant details. • Case Study: Suppose you are asked to develop an overall understanding of some country. – One would meet all the citizens of the country, visit every house, and examine every tree of the country, etc. (unlikely) – One would possibly refer to various types of maps for that country. (likely) • A map, in fact, is an abstract representation of a country. – Several abstractions are possible for the same object (country) like political map and physical map
  • 27. Decomposition • Decompose a problem into many small independent parts. – The small parts are then taken up one by one and solved separately. – The idea is that each small part would be easy to grasp and can be easily solved. – The full problem is solved when all the parts are solved. • Example – Try to break a bunch of sticks tied together versus breaking them individually.
  • 28. Why Study Software Engineering? • To acquire skills to develop large programs. – Exponential growth in complexity and difficulty level with size. – The ad hoc approach breaks down when size of software increases. • Ability to solve complex programming problems: – How to break large projects into smaller and manageable parts? • Learn techniques of: – specification, design, interface development, testing, project management, etc.
  • 29. Evolution of Design Techniques Object-Oriented Exploratory Style Data flow-based Data structure- based Control flow- based
  • 30. Modern S/W Development Practices • Use of Life Cycle Models – Software is developed through several well-defined stages: • requirements analysis and specification, • design, • coding, • testing, etc. • Emphasis has shifted from error correction to error prevention. • Modern practices emphasize on detection of errors as close to their point of introduction as possible. • Unlike exploratory style, now coding is considered only a small part of program development effort.
  • 31. Software Engineering: A Layered Technology Software Engineering a “quality” focus process model methods tools