Fundamentals of Software
Engineering
Lecture 1
26 Feb 2017
Course Curriculum
 Course Description
 This course intended to provide students with
theoretical and practical aspects of
fundamentals of Software engineering.
 Topics to be dealt with are:
 Overview of Software Engineering;
 Software Engineering challenges;
 development paradigms;
 process models;
 requirements analysis;
 requirements modeling;
 requirements specification ,
 system design;
 software architecture;
 coding and programming practices;
 software testing techniques:
 structural and functional testing;
 testing process;
 software metrics:
 analysis metrics,
 design metrics,
 code metrics;
 software maintenance issues.
Course Content Outline
 Chapter One: Introduction
 What is software?
 Types of software
 Characteristics of Software
 Attributes of good software
 Software engineering and its challenges
 Chapter Two: Managing Software Projects
 Project planning
 Estimating costs
 Project scheduling
 Risk management
 Managing people
Test 1
Course Content Outline conn…
 Chapter Three: Software
Development Process Models
 The generic software lifecycle
 What is a process model?
 Types of process models
 Chapter Four: Software Requirement
Analysis and Specification
 Software requirements
 Types of software requirements
 Domain requirements
 Overview of techniques
 User requirements
 Elicitation and analysis of requirements
Test 2
Course Content Outline conn…
 Chapter Five: Software Design
 Design concepts
 Abstraction
 Architecture
 Function oriented design
 Patterns
 Modularity
 Design notations
 Chapter Six: Software Testing
 Verification and validation
 Techniques of testing
 Levels of testing
 Design of test cases
Test 3
Course Content Outline conn…
 Chapter Seven: Software
Maintenance
 Types of maintenance
 Re-engineering
 Configuration Management
 Final exam
 Evaluation methods
 Tests (3) -------------10% each
 Projects (3) ----------10% each
 Final exam-----------40%
References
 Ian Sommerville (2006), Software Engineering 7th edition, Addison-Wesley.
 Roger S. Pressman (2005) Software Engineering: A practitioner's approach, 6th
edition, McGraw-Hill, International edition.
 Pankaj Jalote (2005), An Integrated Approach to Software Engineering (3rd
ed) , Springer
 K.K. Aggarwal, Yogesh Singh (2008) Software Engineering, 3rd edition New
age international publishers
Chapter one: Introduction
 What is software?
 Software is computer programs and associated documentation.
 Software products may be developed for a
particular customer or
general market.
 We can’t run the modern world without software.
 National infrastructures and utilities are controlled by computer-based systems
and most electrical products include computer are controlled by software.
 Industrial manufacturing and distribution is completely computerized,
 Entertainment, including the music industry, computer games, and film and
television, is software intensive.
 Therefore, software engineering is essential for the functioning of national and
international societies.
Software products
 Software engineers are concerned with developing software products
 There are two kinds of software products: (Generic and Customized)
 Generic products:
 These are stand-alone systems that are produced by a development
organization
 sold on the open market to any customer who is able to buy them.
 Examples
software for PCs such as databases, word processors, drawing
packages, and project-management tools, CAD System etc.
It also includes so-called vertical applications designed for some
specific purpose such as library information systems, accounting
systems, or systems for maintaining dental records.
Software products conn…
 Customized (or bespoke) products:
 These are systems that are commissioned by a particular customer.
 A software contractor develops the software especially for that
customer.
 Examples
control systems for electronic devices,
systems written to support a particular business process,
air traffic control systems.
embedded control systems,
traffic monitoring systems.
Product specification
 Generic products
 The specification of what the software should do is owned by the
software developer and decisions on software change are made
by the developer.
 Customized products
 The specification of what the software should do is owned by the
customer for the software and they make decisions on software
changes that are required.
Frequently asked questions about software engineering
What is software?
• Computer programs and associated
documentation
• Software products may be developed
for a particular customer or may be
developed for a general market.
What are attributes of Good
Software?
• Should deliver the required
functionality and performance to
the end user or customer
• Maintainable
• Secure
• Usable
• Efficient
• Dependable
Frequently asked questions about software engineering
What is software
Engineering?
• Software engineering is an
engineering discipline that is
concerned with all aspects of
software production.
What are the Fundamental
software Engineering
activities?
• Software specification,
• software development,
• software validation
• software evolution.
Frequently asked questions about software engineering
What is the difference
between software engineering
and computer science?
• Computer science focuses on theory
and fundamentals; more associated
with algorithm development
• Software engineering is concerned
with the practicalities of developing and
delivering useful software.
What is the difference
between software engineering
and system engineering?
• System engineering is concerned with
all aspects of computer-based systems
development including hardware,
software and process engineering.
• Software engineering is part of this
more general process.
Frequently asked questions about software engineering
What are the key challenges
facing software engineering?
• Coping with increasing diversity,
• Demands for reduced delivery times
• Developing trustworthy software.
What are the costs of
software engineering?
• Roughly 60% of software costs are
development costs,
• 40% are testing costs.
• For custom software, evolution costs
often exceed development costs.
Importance of software engineering
 More and more, individuals and society rely on advanced software
systems. We need to be able to produce reliable and trustworthy
systems economically and quickly.
 It is usually cheaper, in the long run, to use software engineering
methods and techniques for software systems rather than just write
the programs as if it was a personal programming project. For most
types of system, the majority of costs are the costs of changing the
software after it has gone into use.
Types of Software
Types software
System software
System Development
System Management
Application software
Characteristics of Software
 When hardware is built, the human creative process (analysis,
design, construction, testing) is ultimately translated into a
physical form.
 If we build a new computer, our initial sketches, formal design
drawings, and bread boarded prototype evolve into a physical
product (chips, circuit boards, power supplies, etc.).
 However, software product is logical it is not physical. Therefore,
characteristics of software against hardware is presented as follow
Characteristics of Software conn…
1. Software is developed or engineered, but not manufactured
 Hardware is manufactured not software
2. Software can be reused in many different program
Although the industry is moving toward component-based
assembly, most software continues to be custom built.
Characteristics of Software conn…
3. Software doesn't "wear out.“
 Software doesn't wear out. But it does deteriorate or fail!
 When a hardware component wears out, it is replaced by a spare part.
No spare part for software.
 Every software failure indicates an error in design
 Therefore, software maintenance involves considerably more complexity than
hardware maintenance.
Essential attributes of Software
Characteristic Description
Maintainability
• Software should be written in the way that can meet the changing
needs of customers.
• This is a critical attribute because software change is an expected
requirement of a changing business environment.
Dependability and
security
• Software dependability concerned with reliability, security & safety.
• Dependable software should not cause physical or economic
damage in the event of system failure.
• Malicious users should not be able to access the system.
Efficiency
• It is wise use of system resources (memory and processor)
• Efficiency includes: responsiveness, processing time, memory
utilisation, etc.
Acceptability
• Software must be acceptable to users for which it is designed.
• It includes characteristics such as
• understandable, Usable and
• compatible with other systems that they use.
Thank You for Your Attention!
Software Challenges
Major challenges faced into software
Scale
Quality and Productivity
Consistency and Repeatability
Change
Next Class Topic
End Here for today

Veternary Medicene Data management tool for ppt

  • 1.
  • 2.
    Course Curriculum  CourseDescription  This course intended to provide students with theoretical and practical aspects of fundamentals of Software engineering.  Topics to be dealt with are:  Overview of Software Engineering;  Software Engineering challenges;  development paradigms;  process models;  requirements analysis;  requirements modeling;  requirements specification ,  system design;  software architecture;  coding and programming practices;  software testing techniques:  structural and functional testing;  testing process;  software metrics:  analysis metrics,  design metrics,  code metrics;  software maintenance issues.
  • 3.
    Course Content Outline Chapter One: Introduction  What is software?  Types of software  Characteristics of Software  Attributes of good software  Software engineering and its challenges  Chapter Two: Managing Software Projects  Project planning  Estimating costs  Project scheduling  Risk management  Managing people Test 1
  • 4.
    Course Content Outlineconn…  Chapter Three: Software Development Process Models  The generic software lifecycle  What is a process model?  Types of process models  Chapter Four: Software Requirement Analysis and Specification  Software requirements  Types of software requirements  Domain requirements  Overview of techniques  User requirements  Elicitation and analysis of requirements Test 2
  • 5.
    Course Content Outlineconn…  Chapter Five: Software Design  Design concepts  Abstraction  Architecture  Function oriented design  Patterns  Modularity  Design notations  Chapter Six: Software Testing  Verification and validation  Techniques of testing  Levels of testing  Design of test cases Test 3
  • 6.
    Course Content Outlineconn…  Chapter Seven: Software Maintenance  Types of maintenance  Re-engineering  Configuration Management  Final exam  Evaluation methods  Tests (3) -------------10% each  Projects (3) ----------10% each  Final exam-----------40% References  Ian Sommerville (2006), Software Engineering 7th edition, Addison-Wesley.  Roger S. Pressman (2005) Software Engineering: A practitioner's approach, 6th edition, McGraw-Hill, International edition.  Pankaj Jalote (2005), An Integrated Approach to Software Engineering (3rd ed) , Springer  K.K. Aggarwal, Yogesh Singh (2008) Software Engineering, 3rd edition New age international publishers
  • 7.
    Chapter one: Introduction What is software?  Software is computer programs and associated documentation.  Software products may be developed for a particular customer or general market.  We can’t run the modern world without software.  National infrastructures and utilities are controlled by computer-based systems and most electrical products include computer are controlled by software.  Industrial manufacturing and distribution is completely computerized,  Entertainment, including the music industry, computer games, and film and television, is software intensive.  Therefore, software engineering is essential for the functioning of national and international societies.
  • 8.
    Software products  Softwareengineers are concerned with developing software products  There are two kinds of software products: (Generic and Customized)  Generic products:  These are stand-alone systems that are produced by a development organization  sold on the open market to any customer who is able to buy them.  Examples software for PCs such as databases, word processors, drawing packages, and project-management tools, CAD System etc. It also includes so-called vertical applications designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records.
  • 9.
    Software products conn… Customized (or bespoke) products:  These are systems that are commissioned by a particular customer.  A software contractor develops the software especially for that customer.  Examples control systems for electronic devices, systems written to support a particular business process, air traffic control systems. embedded control systems, traffic monitoring systems.
  • 10.
    Product specification  Genericproducts  The specification of what the software should do is owned by the software developer and decisions on software change are made by the developer.  Customized products  The specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required.
  • 11.
    Frequently asked questionsabout software engineering What is software? • Computer programs and associated documentation • Software products may be developed for a particular customer or may be developed for a general market. What are attributes of Good Software? • Should deliver the required functionality and performance to the end user or customer • Maintainable • Secure • Usable • Efficient • Dependable
  • 12.
    Frequently asked questionsabout software engineering What is software Engineering? • Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the Fundamental software Engineering activities? • Software specification, • software development, • software validation • software evolution.
  • 13.
    Frequently asked questionsabout software engineering What is the difference between software engineering and computer science? • Computer science focuses on theory and fundamentals; more associated with algorithm development • Software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? • System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. • Software engineering is part of this more general process.
  • 14.
    Frequently asked questionsabout software engineering What are the key challenges facing software engineering? • Coping with increasing diversity, • Demands for reduced delivery times • Developing trustworthy software. What are the costs of software engineering? • Roughly 60% of software costs are development costs, • 40% are testing costs. • For custom software, evolution costs often exceed development costs.
  • 15.
    Importance of softwareengineering  More and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly.  It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the programs as if it was a personal programming project. For most types of system, the majority of costs are the costs of changing the software after it has gone into use.
  • 16.
    Types of Software Typessoftware System software System Development System Management Application software
  • 17.
    Characteristics of Software When hardware is built, the human creative process (analysis, design, construction, testing) is ultimately translated into a physical form.  If we build a new computer, our initial sketches, formal design drawings, and bread boarded prototype evolve into a physical product (chips, circuit boards, power supplies, etc.).  However, software product is logical it is not physical. Therefore, characteristics of software against hardware is presented as follow
  • 18.
    Characteristics of Softwareconn… 1. Software is developed or engineered, but not manufactured  Hardware is manufactured not software 2. Software can be reused in many different program Although the industry is moving toward component-based assembly, most software continues to be custom built.
  • 19.
    Characteristics of Softwareconn… 3. Software doesn't "wear out.“  Software doesn't wear out. But it does deteriorate or fail!  When a hardware component wears out, it is replaced by a spare part. No spare part for software.  Every software failure indicates an error in design  Therefore, software maintenance involves considerably more complexity than hardware maintenance.
  • 20.
    Essential attributes ofSoftware Characteristic Description Maintainability • Software should be written in the way that can meet the changing needs of customers. • This is a critical attribute because software change is an expected requirement of a changing business environment. Dependability and security • Software dependability concerned with reliability, security & safety. • Dependable software should not cause physical or economic damage in the event of system failure. • Malicious users should not be able to access the system. Efficiency • It is wise use of system resources (memory and processor) • Efficiency includes: responsiveness, processing time, memory utilisation, etc. Acceptability • Software must be acceptable to users for which it is designed. • It includes characteristics such as • understandable, Usable and • compatible with other systems that they use.
  • 21.
    Thank You forYour Attention!
  • 22.
    Software Challenges Major challengesfaced into software Scale Quality and Productivity Consistency and Repeatability Change Next Class Topic End Here for today

Editor's Notes

  • #3 Gantt Chart Network diagram
  • #18 Wear out: replace by spare part