Introduction 1-1
Chapter 1
Introduction
By: Tekalign B.
Adapted from Ian Sommerville 2006, Software
Engineering, 8th edition. Chapter 1
Introduction
Chapter 1: Objectives
 To introduce software engineering and to explain its
importance.
 To set out the answers to key questions about software
engineering.
 To introduce ethical and professional issues and to explain
why they are of concern to software engineers.
1-2
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-3
Introduction
1.1 Overview
 Software engineering
The economies of ALL developed nations are dependent on
software.
More and more systems are software controlled.
Software engineering is concerned with theories, methods and
tools for professional software development.
1-4
Introduction
Cont’d
 Software costs
Software costs often dominate computer system costs.
 The costs of software on a PC are greater than hardware
cost.
Software costs more to maintain than it does to develop.
Software engineering is concerned with cost effective
software development.
1-5
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-6
Introduction
1.2 what is software?
1-7
Introduction
1.2 what is software?
 Computer programs and associated documentation such as requirements,
design models and user manuals.
 Software may be developed for a particular customer or for a general market.
 Software products may be
 Generic- developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
 Bespoke (custom)- developed for a single customer according to their
specification.
e.g. control systems for electronic devices,
air traffic control systems.
1-8
Introduction
cont’d…
 New software can be created by:
 developing new programs, configuring generic software or reusing existing
software.
 Types of software based on potential application
 System software. (ex: operating system,…)
 Real-time Software. (ex: Browser,…)
 Business Software
 Artificial intelligence (adding extra functionality to computers)
1-9
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-10
Introduction
1.3 What is software engineering?
1-11
Introduction
1.3 What is software engineering?
 Is an engineering discipline that is concerned with all aspects of
software production.
 Software engineers should
 Adopt a systematic and organized approach to their work.
 Use appropriate tools and techniques depending on the problem to be
solved, the development constraints and the resources available.
 Not only concerned with the technical processes of software development
but also with activities such as software project management and with the
development of tools, methods and theories to support software production.
1-12
Introduction
Well-Engineered Software
 is one that has the following characteristics:
 It is reliable / consistent
 It has good user-interface
 It has acceptable performance
 It is of good quality
 It is cost-effective
1-13
Introduction
Stake holders in software engineering
 Users: The end user of the software.
 Customers: Those who pay for the software.
 Software developer: Software engineer.
 Development managers: manage production
process-
 Planning
 Timing(delivery)
 Budgeting
 Human resource, etc.
1-14
Introduction
Quality of software engineer
 Problem solving skill quality.
 Programming skill (for coding).
 Design approach: - translation of requirements into
prototype.
 Software technologies: - update themselves with new
technologies.
 Project management quality:
 Modeling: - application of software modeling tools.
1-15
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-16
Introduction
1.4 What is the difference between software
engineering and computer science?
 Computer science is concerned with theory and fundamentals;
 Software engineering is concerned with the practicalities of
developing and delivering useful software.
 Some knowledge of computer science is essential for software
engineers in the same way that some knowledge of physics is
essential for electrical engineers
1-17
Introduction
Cont’d…
1-18
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-19
Introduction
1.5 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 process concerned with
developing the software infrastructure, control, applications and
databases in the system.
1-20
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-21
Introduction
1.6 What is a software process?
 A set of activities whose goal is the development or evolution of
software.
 Generic activities in all software processes are:
 Specification - what the system should do and its development constraints.
 Development – production of the software system
 Validation - checking that the software is what the customer wants
 Evolution - changing the software in response to changing demands
1-22
Introduction
Cont’d…
1-23
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-24
Introduction
1.7 What is a software process model?
 A simplified representation of a software process, presented from a
specific perspective.
 Examples of process perspectives are:
 Workflow perspective - sequence of activities along with their input,
output and dependencies;
 Data-flow perspective - information flow: represents the process as set of
activities;
 Role/action perspective – who does what.
 Generic process models
 Waterfall, Iterative development, Component-based software engineering
1-25
Introduction
What are the costs of software engineering?
 Roughly 60% of costs are development costs, 40% are testing costs.
 Costs vary depending on the type of system being developed and
the requirements of system attributes.
 Distribution of costs depends on the development model that is
used.
 Product development cost:
1-26
Introduction
What are software engineering methods?
 Structured approaches to software development which include system
models, notations, rules, design advice and process guidance.
 Model descriptions
 Descriptions of graphical models which should be produced;
 Rules
 Constraints applied to system models;
 Recommendations
 Advice on good design practice;
 Process guidance
 What activities to follow
1-27
Introduction
What are the attributes of good software?
 The software should deliver the required functionality and performance to the
user and should be maintainable, dependable and acceptable.
 Maintainability
 Software must evolve to meet changing needs;
 Dependability
 Software must be trustworthy;
 Efficiency
 Software should not make wasteful use of system resources;
 Acceptability
 Software must accepted by the users for which it was designed. This means it must be
understandable, usable and compatible.
1-28
Introduction
What are the key challenges facing software
engineering?
 Heterogeneity
 Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
 Delivery
 Developing techniques that lead to faster delivery of software;
 Trust
 Developing techniques that demonstrate that software can be trusted by its
users.
1-29
Introduction
Chapter 1: roadmap
1.1 Overview of software engineering
1.2 What is software?
1.3 What is software engineering?
1.4 What is the difference between software
engineering and computer science?
1.5 What is the difference between software
engineering and system engineering?
1.6 What is a software process?
1.7 What is a software process model?
1.8 Professional and ethical responsibility
1-30
Introduction
Professional and ethical responsibility
 Software engineers must behave in an honest and ethically responsible way if
they are to be respected as professionals.
 Issues of professional responsibility:
 Confidentiality
 Engineers should respect the confidentiality of their employers or clients.
 Competence
 Engineers should not misrepresent their level of competence.
 Intellectual property rights
 They should be aware of laws of intellectual property such as patents, copyright.
 Computer misuse
 Should not use their technical skills to misuse other people’s computers.
1-31
Introduction
Introduction: summary
1-32

software engineering lecture note011.ppt

  • 1.
    Introduction 1-1 Chapter 1 Introduction By:Tekalign B. Adapted from Ian Sommerville 2006, Software Engineering, 8th edition. Chapter 1
  • 2.
    Introduction Chapter 1: Objectives To introduce software engineering and to explain its importance.  To set out the answers to key questions about software engineering.  To introduce ethical and professional issues and to explain why they are of concern to software engineers. 1-2
  • 3.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-3
  • 4.
    Introduction 1.1 Overview  Softwareengineering The economies of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. 1-4
  • 5.
    Introduction Cont’d  Software costs Softwarecosts often dominate computer system costs.  The costs of software on a PC are greater than hardware cost. Software costs more to maintain than it does to develop. Software engineering is concerned with cost effective software development. 1-5
  • 6.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-6
  • 7.
  • 8.
    Introduction 1.2 what issoftware?  Computer programs and associated documentation such as requirements, design models and user manuals.  Software may be developed for a particular customer or for a general market.  Software products may be  Generic- developed to be sold to a range of different customers e.g. PC software such as Excel or Word.  Bespoke (custom)- developed for a single customer according to their specification. e.g. control systems for electronic devices, air traffic control systems. 1-8
  • 9.
    Introduction cont’d…  New softwarecan be created by:  developing new programs, configuring generic software or reusing existing software.  Types of software based on potential application  System software. (ex: operating system,…)  Real-time Software. (ex: Browser,…)  Business Software  Artificial intelligence (adding extra functionality to computers) 1-9
  • 10.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-10
  • 11.
    Introduction 1.3 What issoftware engineering? 1-11
  • 12.
    Introduction 1.3 What issoftware engineering?  Is an engineering discipline that is concerned with all aspects of software production.  Software engineers should  Adopt a systematic and organized approach to their work.  Use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.  Not only concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production. 1-12
  • 13.
    Introduction Well-Engineered Software  isone that has the following characteristics:  It is reliable / consistent  It has good user-interface  It has acceptable performance  It is of good quality  It is cost-effective 1-13
  • 14.
    Introduction Stake holders insoftware engineering  Users: The end user of the software.  Customers: Those who pay for the software.  Software developer: Software engineer.  Development managers: manage production process-  Planning  Timing(delivery)  Budgeting  Human resource, etc. 1-14
  • 15.
    Introduction Quality of softwareengineer  Problem solving skill quality.  Programming skill (for coding).  Design approach: - translation of requirements into prototype.  Software technologies: - update themselves with new technologies.  Project management quality:  Modeling: - application of software modeling tools. 1-15
  • 16.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-16
  • 17.
    Introduction 1.4 What isthe difference between software engineering and computer science?  Computer science is concerned with theory and fundamentals;  Software engineering is concerned with the practicalities of developing and delivering useful software.  Some knowledge of computer science is essential for software engineers in the same way that some knowledge of physics is essential for electrical engineers 1-17
  • 18.
  • 19.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-19
  • 20.
    Introduction 1.5 What isthe 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 process concerned with developing the software infrastructure, control, applications and databases in the system. 1-20
  • 21.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-21
  • 22.
    Introduction 1.6 What isa software process?  A set of activities whose goal is the development or evolution of software.  Generic activities in all software processes are:  Specification - what the system should do and its development constraints.  Development – production of the software system  Validation - checking that the software is what the customer wants  Evolution - changing the software in response to changing demands 1-22
  • 23.
  • 24.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-24
  • 25.
    Introduction 1.7 What isa software process model?  A simplified representation of a software process, presented from a specific perspective.  Examples of process perspectives are:  Workflow perspective - sequence of activities along with their input, output and dependencies;  Data-flow perspective - information flow: represents the process as set of activities;  Role/action perspective – who does what.  Generic process models  Waterfall, Iterative development, Component-based software engineering 1-25
  • 26.
    Introduction What are thecosts of software engineering?  Roughly 60% of costs are development costs, 40% are testing costs.  Costs vary depending on the type of system being developed and the requirements of system attributes.  Distribution of costs depends on the development model that is used.  Product development cost: 1-26
  • 27.
    Introduction What are softwareengineering methods?  Structured approaches to software development which include system models, notations, rules, design advice and process guidance.  Model descriptions  Descriptions of graphical models which should be produced;  Rules  Constraints applied to system models;  Recommendations  Advice on good design practice;  Process guidance  What activities to follow 1-27
  • 28.
    Introduction What are theattributes of good software?  The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.  Maintainability  Software must evolve to meet changing needs;  Dependability  Software must be trustworthy;  Efficiency  Software should not make wasteful use of system resources;  Acceptability  Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible. 1-28
  • 29.
    Introduction What are thekey challenges facing software engineering?  Heterogeneity  Developing techniques for building software that can cope with heterogeneous platforms and execution environments;  Delivery  Developing techniques that lead to faster delivery of software;  Trust  Developing techniques that demonstrate that software can be trusted by its users. 1-29
  • 30.
    Introduction Chapter 1: roadmap 1.1Overview of software engineering 1.2 What is software? 1.3 What is software engineering? 1.4 What is the difference between software engineering and computer science? 1.5 What is the difference between software engineering and system engineering? 1.6 What is a software process? 1.7 What is a software process model? 1.8 Professional and ethical responsibility 1-30
  • 31.
    Introduction Professional and ethicalresponsibility  Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.  Issues of professional responsibility:  Confidentiality  Engineers should respect the confidentiality of their employers or clients.  Competence  Engineers should not misrepresent their level of competence.  Intellectual property rights  They should be aware of laws of intellectual property such as patents, copyright.  Computer misuse  Should not use their technical skills to misuse other people’s computers. 1-31
  • 32.