Software Engineering Introduction - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Software Engineering Introduction

Description:

the manner in which these components interact, the structure of data that are used by the components. Software Engineering Introduction ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 17
Provided by: Salv9
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering Introduction


1
Software Engineering Introduction
  • DESIGN ENGINEERING
  • Software design is an iterative process through
    which requirements are translated into a
    blueprint for constructing software.
  • A design must implement all of the explicit
    requirements contained in the analysis model, and
    it must accommodate all of the implicit
    requirements desired by the customer.
  • A design must be a readable, understandable guide
    for those who generate code and those who test
    and subsequently support the software.
  • The design should provide a complete picture of
    the software, addressing, the data, functional,
    and behavioral domains from an implementation
    perspective.

2
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    Performance, and Supportability.

3
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    performance, and supportability.
  • Functionality assessed by evaluating
  • the feature set
  • capabilities of the program.

4
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    Performance, and Supportability.
  • Usability - assessed by considering
  • human factors,
  • overall aesthetics,
  • consistency,
  • end-user documentation.

5
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    Performance, and Supportability.
  • Reliability is evaluated by measuring
  • the frequency and severity of failure,
  • the accuracy, of output results,
  • the mean-time-to-failure,
  • the ability to recover from failure,
  • the predictability of the program.

6
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    Performance, and Supportability.
  • Performance is measured by
  • processing speed,
  • response time,
  • resource consumption,
  • throughput,
  • efficiency

7
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FURPS Functionality, Usability, Reliability,
    Performance, and Supportability.
  • Supportability combines
  • the ability to extend the program
    (extensibility),
  • adaptability,
  • serviceability
  • testability,
  • compatibility,
  • configurability.

8
Software Engineering Introduction
  • DESIGN ENGINEERING
  • Abstraction is one of the fundamental ways that
    we as humans cope with complexity. Grady Booch
  • What kinds of things do we abstract?

9
Software Engineering Introduction
  • DESIGN ENGINEERING
  • Abstraction is one of the fundamental ways that
    we as humans cope with complexity. Grady Booch
  • What kinds of things do we abstract?
  • data
  • objects
  • procedures
  • modules
  • just about anything

10
Software Engineering Introduction
  • DESIGN ENGINEERING
  • Abstraction is one of the fundamental ways that
    we as humans cope with complexity. Grady Booch
  • What kinds of things do we abstract?
  • data
  • objects
  • procedures
  • modules
  • just about anything

11
Software Engineering Introduction
  • DESIGN ENGINEERING
  • ARCHITECTURE
  • Software architecture alludes to the overall
    structure of the software and the ways in which
    that structure provides conceptual integrity for
    a system.
  • Architecture is
  • the structure or organization of program
    components (modules),
  • the manner in which these components interact,
  • the structure of data that are used by the
    components.

12
Software Engineering Introduction
  • DESIGN ENGINEERING
  • PATTERNS
  • A pattern is a named nugget of insight which
    conveys the essence of a proven solution to a
    recurring problem within a certain context amidst
    competing concerns.
  • Each pattern describes a problem which occurs
    over and over again in our environment, and then
    describes the core of the solution to that
    problem, in such a way that you can use this
    solution a million times over, without ever doing
    it the same way twice. Christopher Alexander

13
Software Engineering Introduction
  • DESIGN ENGINEERING
  • MODULARITY
  • Software is divided into separately named and
    addressable components, sometimes called modules,
    that are integrated to satisfy problem
    requirements.

14
Software Engineering Introduction
  • DESIGN ENGINEERING
  • INFORMATION HIDING
  • Modules should be specified and designed so that
    information (algorithms and data) contained
    within a module is inaccessible to other modules
    that have no need for such information.
  • This means that inadvertent errors introduced
    during modification are less likely to propagate
    to other locations within the software.
  • Changes to the internal representation of one
    module should have not have an effect on other
    modules.

15
Software Engineering Introduction
  • DESIGN ENGINEERING
  • FUNCTIONAL INDEPENDENCE
  • Functional independence is achieved by developing
    modules with single-minded function and an
    aversion to excessive interaction with other
    modules.
  • We want to design software so that each module
    addresses a specific subfunction of requirements
    and has a simple interface when viewed from other
    parts of the program structure.
  • Independence is assessed by using two qualitative
    criteria
  • Cohesion How related a module is to itself. It
    should perform a single task and require little
    interaction with the rest of the program.
  • Coupling is an indication of the interconnectoin
    among modules in a software structure.

16
Software Engineering Introduction
  • DESIGN ENGINEERING
  • REFINEMENT
  • Stepwise refinement is when a program is
    developed by successively refining levels of
    procedural detail.
  • Refinement is actually the process of
    elaboration.
  • REFACTORING
  • Refactoring is a reorganizational technique that
    simplifies the design )of code) of a component
    without changing its function or behavior.
Write a Comment
User Comments (0)
About PowerShow.com