An Introduction to Software Engineering - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

An Introduction to Software Engineering

Description:

An Introduction to Software Engineering – PowerPoint PPT presentation

Number of Views:209
Avg rating:3.0/5.0
Slides: 22
Provided by: freew157
Category:

less

Transcript and Presenter's Notes

Title: An Introduction to Software Engineering


1
  • An Introduction to Software Engineering

2
What is software?
  • Computer instructions or data. Anything that can
    be stored electronically is software.
    The storage devices and display devices
    are hardware.
  • Computer programs and associated documentation
    such as requirements, design models and user
    manuals.
  • Software products may be developed for a
    particular customer or may be developed 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.
  • New software can be created by developing new
    programs, configuring generic software systems or
    reusing existing software.

3
Classes of Software
  • Software is classified into two classes
  • Generic Software
  • is designed for broad
    customer market whose requirements are very
    common, fairly stable and well understood by the
    software engineer.
  • Customized Software
  • is developed
    for a customer where domain , environment and
    requirements are being unique to that customer
    and cannot be satisfied by generic products.

4
Types of software
System Software- Software used to control the
computer and develop and run applications. For
example, compiler, operating systems. Real-time
Software- Programs that monitor/analyze/control
real world events as they occur. Business
Software- Programs that access, analyze and
process business information. Engineering and
Scientific Software - Software using number
crunching algorithms for different science and
applications. System simulation, computer-aided
design. Embedded Software- Embedded software
resides in read-only memory and is used to
control products and systems for the consumer and
industrial markets. It has very limited and
esoteric(posheeda) functions and control
capability. Artificial Intelligence (AI)
Software- Programs make use of AI techniques and
methods to solve complex problems. Active areas
are expert systems, pattern recognition,
games Internet Software - Programs that support
internet accesses and applications. For example,
search engine, browser, e-commerce software,
authoring tools. Software Tools and CASE
environment - Tools and programs that help the
construction of application software and systems.
For example, test tools, version control tools.
5
  • Examples of real time software
  • Real-time software programs can be found in
    various applications. Some of them are known as
    anti-virus programs, which perform scheduled
    maintenance checks, as well as database
    applications like airline database controls, and
    24-hour transaction facilities. Real-time
    software programs are also found in security
    systems and imaging as parts of a database
    application, as well as consumer appliances and
    in graphic editing tools used by multimedia
    artists.
  • Read more Real-Time Software Definition
    eHow.com http//www.ehow.com/about_6177858_real_ti
    me-software-definition.htmlixzz1q44J5uDb

6
What is software engineering?
  • Software engineering is the technologies and
    practices that are used to create computer
    software .Software Engineering is the application
    of science and mathematics by which the
    capabilities of computer are made useful to man
    via computer programs, procedures and associated
    documentation.
  • Software engineering is an engineering discipline
    that is concerned with all aspects of software
    production.
  • Software engineers should adopt a systematic and
    organised approach to their work and use
    appropriate tools and techniques depending on the
    problem to be solved, the development constraints
    and the resources available.

7
Why Software Engineering?
  • Objectives
  • - Identify new problems and solutions in software
    purodction.
  • - Study new systematic methods, principles,
    approaches for system analysis,
  • design, implementation, testing and maintenance.
  • - Provide new ways to control, manage, and
    monitor software process.
  • - Build new software tools and environment to
    support software engineering.

8
Goals of Software Engineering?
  • Major Goals
  • - To increase software productivity and quality.
  • - To effectively control software schedule and
    planning.
  • - To reduce the cost of software development.
  • - To meet the customers needs and requirements.
  • - To enhance the conduction of software
    engineering process.
  • - To improve the current software engineering
    practice.
  • - To support the engineers activities in a
    systematic and efficient manner.

9
What is the difference between software
engineering and computer science?
Computer Science
Software Engineering
is concerned with
Computer science theories are currently
insufficient to act as a complete underpinning
for software engineering, BUT it is a foundation
for practical aspects(roop) of software
engineering
10
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.
  • System engineers are involved in system
    specification, architectural design, integration
    and deployment.

11
Components of Software Engineering
  • SE approach has two components , namely
    systems engineering approach and development
    engineering approach. The software and its
    quality depends upon the system in which it is
    installed.
  • The system here has a broad meanings. The
    understanding of the system can be achieved by
    the System study and Analysis.
  • the System study and Analysis is carried out
    through SEM( Systems Engineering and
    Methodology). The SEM steps are as under
  • Define the Objective of the system
  • Define the boundaries of the system

12
Components of Software Engineering
  • Define relationship in terms of inputs, outputs
    and processes
  • Understand the relationship between various
    components
  • Understand the role of hardware and software
  • Discuss the system with the customer
  • Factories the system into different components
  • Model the system for analysis and development
  • Identify the key operational and functional
    requirements

13
Components of Software Engineering
  • Development Engineering methodology has
    responsibility of translating the system
    requirements as software system goal , and
    proceeds to achieve it through a series of steps.
    The development engineering steps are
  • Requirement definition and specification
  • Design solution to deliver the requirements
  • Determine the architecture for the delivery of
    solution
  • Customer development and planning
  • Software testing components
  • Integration of system components
  • Implementation

14
Components of Software Engineering
  • Software development engineering is carried
    out in two ways
  • Structured System Analysis and Design (
    SSAD)
  • Object Oriented System Analysis and Design (
    OOSAD)
  • Structured System Analysis and Design ( SSAD)
  • The SSAD approach in which the system and its
    requirements are decomposed in structured
    manner. Software development is carried out using
    sub-system structure, tested and integrated and
    implemented.

15
Components of Software Engineering
  • Object Oriented System Analysis and Design (
    OOSAD)
  • In contrast , the OOSAD development approach
    recommended the analysis of domain and builds
    objects of model independent of the system under
    consideration.
  • The object could represents a function ,
    process or document evolved for the organization.
    Each object has attributes that describes the
    methods to perform and relationship to other
    objects.

16
Comparison between SSAD And OOSAD
  • In SSAD the focus is on the functions and the
    data structure designed for those functions.
    Functions , data and processing methods are
    closely coupled. In OOSAD , however , objects and
    processing methods are decoupled from the data.
  • In SSAD , skill lies in decomposing the system
    whereas in OOSAD skill lies in modeling the
    organization and its business in the objects.
  • SSAD and OOSAD are dissimilar in focus but
    similar in that both propose a problem solving
    methodology and a set of techniques and tools to
    assist the S/W engineer analyze , model ,design
    and develop the system.

17
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.

18
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
  • Data-flow perspective - information flow
  • Role/action perspective - who does what.
  • Generic process models
  • Waterfall
  • Iterative development
  • Component-based software engineering.

19
What is CASE (Computer-Aided Software Engineering)
  • Software systems that are intended to provide
    automated support for software process
    activities.
  • CASE systems are often used for method support.
  • Upper-CASE
  • Tools to support the early process activities of
    requirements and design
  • Lower-CASE
  • Tools to support later activities such as
    programming, debugging and testing.

20
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 with other
    systems.

21
What are the key challenges facing software
engineering?
  • Heterogeneity, delivery and trust.
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com