Software Engineering and Problems with Solutions, Slides of Software Engineering

Explain in that about software engineering, system approach, engineering approach and development of software team.

Typology: Slides

2021/2022

Uploaded on 03/31/2022

anuradha
anuradha 🇺🇸

4.6

(9)

240 documents

1 / 43

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 1
What is Software
Engineering
Shari L. Pfleeger
Joanne M. Atlee
4th Edition
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Partial preview of the text

Download Software Engineering and Problems with Solutions and more Slides Software Engineering in PDF only on Docsity!

Chapter 1

What is Software Engineering Shari L. Pfleeger Joanne M. Atlee 4 th Edition

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 2

Contents

1.1 What is Software Engineering? 1.2 How Successful Have We Been? 1.3 What Is Good Software? 1.4 Who Does Software Engineering? 1.5 A System Approach 1.6 An Engineering Approach 1.7 Members of the Development Team 1.8 How Has Software Engineering Changed?

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 4

1.1 What is Software Engineering

Solving Problems

  • Software products are large and complex
  • Development requires analysis and synthesis
    • Analysis: decompose a large problem into smaller, understandable pieces - abstraction is the key
    • Synthesis: build (compose) a software from smaller building blocks - composition is challenging

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 5

1.1 What is Software Engineering

Solving Problems (continued)

  • The analysis process

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 7

1.1 What is Software Engineering

Solving Problems (continued)

  • Method: refers to a formal procedure; a formal “recipe” for accomplishing a goal that is typically independent of the tools used
  • Tool: an instrument or automated system for accomplishing something in a better way
  • Procedure: a combination of tools and techniques to produce a product
  • Paradigm: philosophy or approach for building a product (e.g., OO vs structured approaches)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 8

1.1 What is Software Engineering

Where Does the Software Engineer Fit In?

  • Computer science: focusing on computer hardware, compilers, operating systems, and programming languages
  • Software engineering: a discipline that uses computer and software technologies as problem-solving tools

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 10

1.2 How Successful Have We Been?

  • Perform tasks more quickly and effectively
    • Word processing, spreadsheets, e-mail
  • Support advances in medicine, agriculture, transportation, multimedia education, and most other industries
  • Many good stories
  • However, software is not without problems

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 11

1.2 How Successful Have We Been?

Sidebar 1.1 Terminology for Describing Bugs

  • A fault: occurs when a human makes a mistake, called an error, in performing some software activities
  • A failure: is a departure from the system’s required behaviour

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 14

1.3 What is Good Software?

  • Good software engineering must always include a strategy for producing quality software
  • Three ways of considering quality
    • The quality of the product
    • The quality of the process
    • The quality of the product in the context of the business environment

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 15

1.3 What Is Good Software?

The Quality of the Product

  • Users judge external characteristics
    • (e.g., correct functionality, number of failures, type of failures)
  • Designers and maintainers judge internal characteristics (e.g., types of faults)
  • Thus different stakeholders may have different criteria
  • Need quality models to relate the user’s external view to developer’s internal view

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 17

1.3 What Is Good Software?

The Quality of the Process

  • Quality of the development and maintenance process is as important as the product quality
  • The development process needs to be modeled
  • Modeling will address questions such as
    • Where to find a particular kind of fault
    • How to find faults early
    • How to build in fault tolerance
    • What are alternative activities

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 18

1.3 What Is Good Software?

The Quality of the Process (continued)

  • Models for process improvement
    • SEI’s Capability Maturity Model (CMM)
    • ISO 9000
    • Software Process Improvement and Capability dEtermination (SPICE)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 20 1.3 What Is Good Software? The Quality in the Context of the Business Environment

  • Business value is as important as technical value
  • Business value (in relationship to technical value) must be quantified
  • A common approach: return on investment (ROI) – what is given up for other purposes
  • ROI is interpreted in different terms: reducing costs, predicting savings, improving productivity, and costs (efforts and resources)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 1. 22

1.4 Who Does Software Engineering?

  • Customer: the company, organization, or person who pays for the software system
  • Developer: the company, organization, or person who is building the software system
  • User: the person or people who will actually use the system