SlideShare una empresa de Scribd logo
1 de 37
Software Engineering


          by
      Vishal Singh
  (vishal11380@yahoo.com)
Meaning:
Software engineering is the field of computer
science that deals with the building of
software systems which are so large or so
complex that they are built by a team or
teams of engineers.
Software Engineering is the use of
  techniques, methods and
  methodologies to develop high quality
  software which is
 Reliable
 Easy  to understand
 Useful
 Modular
 Efficient
 Modifiable
 Reusable
 Good user interface
 Well documented
 Delivered in cost effective and timely manner
Software engineering goals
 a.  Maintainability
  It should be possible to easily introduce
  changes to the software without increasing
  the complexity of the original system
  design.
 b. Reliability

  The software should prevent failure in
  design and construction as well as recover
  from failure in operation.
 c.  Efficiency
  The software system should use the
  resources that are available in an optimal
  manner.
 d. Understandability
  The software should accurately model the
  view the reader has of the real world. Since
  code in a large, long-lived software system
  is usually read more times than it is written,
  it should be easy to read at the expense of
  being easy to write, and not the other way
  around.
Software engineering principles

 a. Abstraction
  "The essence of abstraction is to extract
  essential properties while omitting
  inessential detail."
 b. Information Hiding
  The code should contain no unnecessary
  detail. Elements that do not affect other
  portions of the system are inaccessible to
  the user
 c. Modularity
  The code is purposefully structured. Components
  of a given module are logically or functionally
  dependent.
 d. Localization
  The breakdown and decomposition of the code is
  rational. Logically related computational units are
  collected together in modules.
 e. Uniformity
  The notation and use of comments, specific
  keywords and formatting is consistent and free
  from unnecessary differences in other parts of
  the code.
 f.Completeness
  Nothing is blatantly missing from any module. All
  important or relevant components are present
  both in the modules and in the overall system as
  appropriate.
 g. Conformability

  The modules of the program can be tested
  individually with adequate rigor. This gives rise
  to a more readily alterable system and enables
  the reusability of tested components.
The Software Life Cycle

  A sample waterfall life cycle model
  comprises the following phases:
 Requirements analysis and
  specification
 Design and specification
 Coding and module testing
 Integration and system testing
 Delivery and maintenance
Classification of Software Qualities

 External versus Internal Qualities
 We can divide software qualities into
 external and internal qualities. The
 external Qualities are visible to the user of
 the system and the internal qualities are
 those that concerns the developer of the
 system.
Representative Qualities
1. Correctness, Reliability, and Robustness
 Correctness: A program is functionally correct if
  it behaves according to the specification of the
  functions it should provide (called functional
  requirements specifications).
 Reliability: Informally, software is reliable if the
  user can depend on it.
 Robustness: A program is robust if it behaves
  "reasonably," even in circumstances that were
  not anticipated in the requirements specification-
  for example, when it encounters incorrect input
  data or some hardware malfunction (say, a disk
  crash).
2. Performance
 Any engineering product is expected to meet a
  certain level of performance. Unlike other
  disciplines, in software engineering we often
  equate performance with efficiency. We will
  follow this practice here. A software system is
  efficient if it uses computing resources
  economically.
 Performance is important because it affects the
  usability of the system. If a software system is
  too slow, it reduces the productivity of the users,
  possibly to the point of not meeting their needs.
3. User Friendliness
 A software system is user friendly if its
  human users find it easy to use.
 For example, a novice user may
  appreciate verbose messages, while an
  experienced user grows to detest and
  ignore them. Similarly, a nonprogrammer
  may appreciate the use of menus, while a
  programmer may be more comfortable
  with typing a command.
4.Verifiability
 A software is verifiable if its properties can
  be verified easily. For example, the
  correctness or the performances of a
  software system are properties we would
  be interested in verifying.
 Modular design, disciplined coding
  practices and the use of an appropriate
  programming language all contribute to
  verifiability.
 Maintainability
 The  term “software maintenance” is
  commonly used to refer to the
  modifications that are made to a software
  system after its initial release.
 There is evidence that maintenance costs
  exceed 60% of the total costs of the
  software.
 Reusability
 Reusability is an important factor. In
 product evolution, we modify a product to
 build a new version of that same product;
 in. product reuse, we use it-perhaps with
 minor changes-to build another product.
 Reusability appears to be more applicable
 to software components than to whole
 products but it certainly seems possible to
 build products that are reusable.
 Portability
 Software  is portable if it can run in
 different environments. The term
 "environment" can refer to a hardware
 platform or a software environment such
 as a particular operating system. With the
 proliferation of different processors and
 operating systems, portability has become
 an important issue for software engineers.
 Understandability
 Some  software systems are easier to
 understand than others. Of course, some tasks
 are inherently more complex than others. For
 example, a system that does weather
 forecasting, no matter how well it is written, will
 be harder to understand than one that
 prints a mailing list. Given tasks of inherently
 similar difficulty, we can follow certain
 guidelines to produce more understandable
 designs and to write more understandable
 programs.
 Interoperability
 Interoperabilityrefers to the ability of a
  system to coexist and cooperate with
  other systems-for example, a word-
  processor's ability to incorporate a chart
  produced by a graphing package, or the
  graphics package's ability to graph the
  data produced by a spreadsheet, or the
  spreadsheet's ability to process an image
  scanned by a scanner.
 Productivity
 Productivity is a quality of the software
 production process: it measures the
 efficiency of the process and, as we said
 before, is the performance quality applied
 to the process. An efficient process results
 in faster delivery of the product.
 Timeliness
 Timeliness  is a process-related quality that
 refers to the ability to deliver a product on
 time. Historically, timeliness has been
 lacking in software production processes
 leading to the "software crisis," which in
 turn led to the need for-and birth of
 software engineering itself. Even now,
 many current processes fail to result in a
 timely product.
 Visibility
A   software development process is visible
  if all of its steps and its current status are
  documented clearly. The idea is that the
  steps and the status of the project are
  available and easily accessible for
  external examination.
Software Process Models
 SDLC    Models
  There are various software development
  approaches defined and designed which are
  used/employed during development process of
  software, these approaches are also referred as
  "Software Development Process Models".
 Some of the most commonly used Software
  developments models are the following:
 Waterfall model
 Spiral model
 Prototyping model
 Iterative model
Waterfall Model

 Waterfallapproach was first Process
 Model to be introduced and followed
 widely in Software Engineering to ensure
 success of the project. In "The Waterfall"
 approach, the whole process of software
 development is divided into separate
 process phases.
The stages of "The Waterfall Model" are:


 Requirement   Analysis & Definition
 System & Software Design
 Implementation & Unit Testing
 Integration & System Testing
 Operations & Maintenance
Waterfall Model Common Error
 Common Errors in Requirements Analysis


 Problem  1: Customers don't (really) know what
  they want
 Problem 2: Requirements change during the
  course of the project
 Problem 3: Customers have unreasonable
  timelines
 Problem 4: Communication gaps exist between
  customers, engineers and project managers
 Problem 5: The development team doesn't
  understand the politics of the customer's
  organization
Prototype Model
A prototype is a working model that is
 functionally equivalent to a component of
 the product. In many instances the client
 only has a general view of what is
 expected from the software product. In
 such a scenario where there is an
 absence of detailed information regarding
 the input to the system, the processing
 needs and the output requirements, the
 prototyping model may be employed.
The process of prototyping involves the following steps:
 Identify basic requirements
  Determine basic requirements including the input and
  output information desired. Details, such as security, can
  typically be ignored.
 Develop Initial Prototype
  The initial prototype is developed that includes only user
  interfaces.
 Review
  The customers, including end-users, examine the
  prototype and provide feedback on additions or changes.
 Revise and Enhancing the Prototype
  Using the feedback both the specifications and the
  prototype can be improved. Negotiation about what is
  within the scope of the contract/product may be
  necessary. If changes are introduced then a repeat of
  steps #3 ands #4 may be needed.
Advantages of Prototyping

 Reduced   time and costs
 Improved and increased user involvement
Disadvantages of Prototyping
 Insufficient analysis
 User confusion of prototype and finished
  system
 Developer attachment to prototype
 Excessive development time of the prototype
 Expense of implementing prototyping
Spiral Model
 The  spiral model was defined by Barry Boehm in
  his 1988 article
 The Spiral Model

  The spiral model, also known as the spiral
  lifecycle model, is a systems development method
  (SDM) used in information technology (IT). This
  model of development combines the features
  of the prototyping model and the waterfall
  model. The spiral model is intended for large,
  expensive and complicated projects.
The steps in the spiral model can be
generalized as follows:
1.   The new system requirements are defined in
     as much detail as possible. This usually
     involves interviewing a number of users
     representing all the external or internal users
     and other aspects of the existing system.
2.   A preliminary design is created for the new
     system.
3.   A first prototype of the new system is
     constructed from the preliminary design. This
     is usually a scaled-down system, and
     represents an approximation of the
     characteristics of the final product.
4.   A second prototype is evolved by a fourfold procedure:
     (1) evaluating the first prototype in terms of its
     strengths, weaknesses, and risks; (2) defining the
     requirements of the second prototype; (3) planning and
     designing the second prototype; (4) constructing and
     testing the second prototype.
5.   At the customer's option, the entire project can be
     aborted if the risk is deemed too great. Risk factors
     might involve development cost overruns, operating-
     cost miscalculation, or any other factor that could, in
     the customer's judgment, result in a less-than-
     satisfactory final product.
6.   The existing prototype is evaluated in the same
     manner as was the previous prototype, and, if
     necessary, another prototype is developed from it
     according to the fourfold procedure outlined above.
7. The preceding steps are iterated until the
   customer is satisfied that the refined
   prototype represents the final product
   desired.
8. The final system is constructed, based
   on the refined prototype.
9. The final system is thoroughly evaluated
   and tested. Routine maintenance is
   carried out on a continuing basis to
   prevent large-scale failures and to
   minimize downtime.
Advantages of Spiral model
 Estimates (i.e. budget, schedule, etc.)
  become more realistic as work
  progresses, because important issues are
  discovered earlier.
 It is more able to cope with the (nearly
  inevitable) changes that software
  development generally entails.
Disadvantages of Spiral model
 Highly customized limiting re-usability
 Applied differently for each application
 Risk of not meeting budget or schedule

Más contenido relacionado

La actualidad más candente

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSaqib Raza
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Chapter 08
Chapter 08Chapter 08
Chapter 08guru3188
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsGatte Ravindranath
 
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
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance Webtech Learning
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineeringRa'Fat Al-Msie'deen
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineeringRupesh Vaishnav
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 

La actualidad más candente (20)

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Unit1
Unit1Unit1
Unit1
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Rad model
Rad modelRad model
Rad model
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 

Destacado

Knowledge Representation in Artificial intelligence
Knowledge Representation in Artificial intelligence Knowledge Representation in Artificial intelligence
Knowledge Representation in Artificial intelligence Yasir Khan
 
Knowledge representation in AI
Knowledge representation in AIKnowledge representation in AI
Knowledge representation in AIVishal Singh
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationVishal Singh
 
Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representationSravanthi Emani
 
The electronic payment systems
The electronic payment systemsThe electronic payment systems
The electronic payment systemsVishal Singh
 

Destacado (10)

Software Testing
Software TestingSoftware Testing
Software Testing
 
Coding
CodingCoding
Coding
 
Knowledge Representation in Artificial intelligence
Knowledge Representation in Artificial intelligence Knowledge Representation in Artificial intelligence
Knowledge Representation in Artificial intelligence
 
Knowledge representation in AI
Knowledge representation in AIKnowledge representation in AI
Knowledge representation in AI
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Issues in knowledge representation
Issues in knowledge representationIssues in knowledge representation
Issues in knowledge representation
 
Memory management
Memory managementMemory management
Memory management
 
The electronic payment systems
The electronic payment systemsThe electronic payment systems
The electronic payment systems
 
Research report
Research reportResearch report
Research report
 
File management
File managementFile management
File management
 

Similar a Software engineering introduction

Similar a Software engineering introduction (20)

Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
Sepm t1
Sepm t1Sepm t1
Sepm t1
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
Itc chapter # 7
Itc   chapter # 7Itc   chapter # 7
Itc chapter # 7
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
SE-Lecture-2.pptx
SE-Lecture-2.pptxSE-Lecture-2.pptx
SE-Lecture-2.pptx
 
Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)Software Engineering (Short & Long Questions)
Software Engineering (Short & Long Questions)
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
Basics of software engineering
Basics of software engineeringBasics of software engineering
Basics of software engineering
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 

Último

THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 

Último (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 

Software engineering introduction

  • 1. Software Engineering by Vishal Singh (vishal11380@yahoo.com)
  • 2. Meaning: Software engineering is the field of computer science that deals with the building of software systems which are so large or so complex that they are built by a team or teams of engineers.
  • 3. Software Engineering is the use of techniques, methods and methodologies to develop high quality software which is  Reliable  Easy to understand  Useful  Modular  Efficient  Modifiable  Reusable  Good user interface  Well documented  Delivered in cost effective and timely manner
  • 4. Software engineering goals  a. Maintainability It should be possible to easily introduce changes to the software without increasing the complexity of the original system design.  b. Reliability The software should prevent failure in design and construction as well as recover from failure in operation.
  • 5.  c. Efficiency The software system should use the resources that are available in an optimal manner.  d. Understandability The software should accurately model the view the reader has of the real world. Since code in a large, long-lived software system is usually read more times than it is written, it should be easy to read at the expense of being easy to write, and not the other way around.
  • 6. Software engineering principles  a. Abstraction "The essence of abstraction is to extract essential properties while omitting inessential detail."  b. Information Hiding The code should contain no unnecessary detail. Elements that do not affect other portions of the system are inaccessible to the user
  • 7.  c. Modularity The code is purposefully structured. Components of a given module are logically or functionally dependent.  d. Localization The breakdown and decomposition of the code is rational. Logically related computational units are collected together in modules.  e. Uniformity The notation and use of comments, specific keywords and formatting is consistent and free from unnecessary differences in other parts of the code.
  • 8.  f.Completeness Nothing is blatantly missing from any module. All important or relevant components are present both in the modules and in the overall system as appropriate.  g. Conformability The modules of the program can be tested individually with adequate rigor. This gives rise to a more readily alterable system and enables the reusability of tested components.
  • 9. The Software Life Cycle A sample waterfall life cycle model comprises the following phases:  Requirements analysis and specification  Design and specification  Coding and module testing  Integration and system testing  Delivery and maintenance
  • 10.
  • 11. Classification of Software Qualities External versus Internal Qualities We can divide software qualities into external and internal qualities. The external Qualities are visible to the user of the system and the internal qualities are those that concerns the developer of the system.
  • 12. Representative Qualities 1. Correctness, Reliability, and Robustness  Correctness: A program is functionally correct if it behaves according to the specification of the functions it should provide (called functional requirements specifications).  Reliability: Informally, software is reliable if the user can depend on it.  Robustness: A program is robust if it behaves "reasonably," even in circumstances that were not anticipated in the requirements specification- for example, when it encounters incorrect input data or some hardware malfunction (say, a disk crash).
  • 13. 2. Performance  Any engineering product is expected to meet a certain level of performance. Unlike other disciplines, in software engineering we often equate performance with efficiency. We will follow this practice here. A software system is efficient if it uses computing resources economically.  Performance is important because it affects the usability of the system. If a software system is too slow, it reduces the productivity of the users, possibly to the point of not meeting their needs.
  • 14. 3. User Friendliness  A software system is user friendly if its human users find it easy to use.  For example, a novice user may appreciate verbose messages, while an experienced user grows to detest and ignore them. Similarly, a nonprogrammer may appreciate the use of menus, while a programmer may be more comfortable with typing a command.
  • 15. 4.Verifiability  A software is verifiable if its properties can be verified easily. For example, the correctness or the performances of a software system are properties we would be interested in verifying.  Modular design, disciplined coding practices and the use of an appropriate programming language all contribute to verifiability.
  • 16.  Maintainability  The term “software maintenance” is commonly used to refer to the modifications that are made to a software system after its initial release.  There is evidence that maintenance costs exceed 60% of the total costs of the software.
  • 17.  Reusability  Reusability is an important factor. In product evolution, we modify a product to build a new version of that same product; in. product reuse, we use it-perhaps with minor changes-to build another product. Reusability appears to be more applicable to software components than to whole products but it certainly seems possible to build products that are reusable.
  • 18.  Portability  Software is portable if it can run in different environments. The term "environment" can refer to a hardware platform or a software environment such as a particular operating system. With the proliferation of different processors and operating systems, portability has become an important issue for software engineers.
  • 19.  Understandability  Some software systems are easier to understand than others. Of course, some tasks are inherently more complex than others. For example, a system that does weather forecasting, no matter how well it is written, will be harder to understand than one that prints a mailing list. Given tasks of inherently similar difficulty, we can follow certain guidelines to produce more understandable designs and to write more understandable programs.
  • 20.  Interoperability  Interoperabilityrefers to the ability of a system to coexist and cooperate with other systems-for example, a word- processor's ability to incorporate a chart produced by a graphing package, or the graphics package's ability to graph the data produced by a spreadsheet, or the spreadsheet's ability to process an image scanned by a scanner.
  • 21.  Productivity  Productivity is a quality of the software production process: it measures the efficiency of the process and, as we said before, is the performance quality applied to the process. An efficient process results in faster delivery of the product.
  • 22.  Timeliness  Timeliness is a process-related quality that refers to the ability to deliver a product on time. Historically, timeliness has been lacking in software production processes leading to the "software crisis," which in turn led to the need for-and birth of software engineering itself. Even now, many current processes fail to result in a timely product.
  • 23.  Visibility A software development process is visible if all of its steps and its current status are documented clearly. The idea is that the steps and the status of the project are available and easily accessible for external examination.
  • 25.  SDLC Models There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as "Software Development Process Models".  Some of the most commonly used Software developments models are the following:  Waterfall model  Spiral model  Prototyping model  Iterative model
  • 26. Waterfall Model  Waterfallapproach was first Process Model to be introduced and followed widely in Software Engineering to ensure success of the project. In "The Waterfall" approach, the whole process of software development is divided into separate process phases.
  • 27. The stages of "The Waterfall Model" are:  Requirement Analysis & Definition  System & Software Design  Implementation & Unit Testing  Integration & System Testing  Operations & Maintenance
  • 28. Waterfall Model Common Error Common Errors in Requirements Analysis  Problem 1: Customers don't (really) know what they want  Problem 2: Requirements change during the course of the project  Problem 3: Customers have unreasonable timelines  Problem 4: Communication gaps exist between customers, engineers and project managers  Problem 5: The development team doesn't understand the politics of the customer's organization
  • 29. Prototype Model A prototype is a working model that is functionally equivalent to a component of the product. In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed.
  • 30. The process of prototyping involves the following steps:  Identify basic requirements Determine basic requirements including the input and output information desired. Details, such as security, can typically be ignored.  Develop Initial Prototype The initial prototype is developed that includes only user interfaces.  Review The customers, including end-users, examine the prototype and provide feedback on additions or changes.  Revise and Enhancing the Prototype Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. If changes are introduced then a repeat of steps #3 ands #4 may be needed.
  • 31. Advantages of Prototyping  Reduced time and costs  Improved and increased user involvement Disadvantages of Prototyping  Insufficient analysis  User confusion of prototype and finished system  Developer attachment to prototype  Excessive development time of the prototype  Expense of implementing prototyping
  • 32. Spiral Model  The spiral model was defined by Barry Boehm in his 1988 article  The Spiral Model The spiral model, also known as the spiral lifecycle model, is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects.
  • 33. The steps in the spiral model can be generalized as follows: 1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system. 2. A preliminary design is created for the new system. 3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
  • 34. 4. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype. 5. At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating- cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than- satisfactory final product. 6. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
  • 35. 7. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired. 8. The final system is constructed, based on the refined prototype. 9. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.
  • 36. Advantages of Spiral model  Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses, because important issues are discovered earlier.  It is more able to cope with the (nearly inevitable) changes that software development generally entails.
  • 37. Disadvantages of Spiral model  Highly customized limiting re-usability  Applied differently for each application  Risk of not meeting budget or schedule