Introduction to Software Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Software Engineering

Description:

Engineering (Continued) There are many disciplines of engineering traditionally. Civil engineering ... Software engineering is used to build software systems ... – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Slides: 25
Provided by: supr2
Learn more at: http://web.cecs.pdx.edu
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Software Engineering


1
Introduction to Software Engineering
  • CS-300 Fall 2005
  • Supreeth Venkataraman

2
Introduction to Software Engineering
  • The art of building things is nothing new.
  • Humans realized the practical aspect of building
    and designing things very early in the history of
    the world.
  • The structured approach of building things got
    refined through the ages, and in the modern era
    was given the term Engineering.

3
Engineering
  • The textbook defines engineering as the art or
    science of making practical application of the
    knowledge of pure sciences
  • http//www.engr.washington.edu/score/engineers.htm
    l defines engineering as Engineering is the
    science and art of applying scientific and
    mathematical principles, experience, judgment,
    and common sense to design things that benefit
    society.

4
Engineering (Continued)
  • There are many disciplines of engineering
    traditionally
  • Civil engineering
  • Mechanical engineering
  • Electrical engineering etc.
  • What do all these have in common?
  • What about management?

5
Software? What on earth is that?
  • Lets talk about this for a while.
  • How would you define software?
  • ?????

6
Software (continued)
  • Software is a term that is used to refer to a
    computer program or a set of computer programs
    that work towards the solution of problems of
    different nature on a computer.
  • Software development is the process of
    transforming a problem statement into a form that
    can be executed on a computer for solving the
    problem.
  • So what makes software unique?

7
The uniqueness of software
  • Can you imagine the world without software today?
  • Software is present everywhere. Cell phones,
    automobiles, space shuttles, X-ray machines...
  • Software is used both as an end product and also
    in the development of other products.
  • Software provides us with all the information we
    need through the medium of the Internet.

8
What makes software different?
  • For starters, software cannot be touched or felt
    unlike other engineering products.
  • Software can have an extremely high complexity
    that makes it difficult to comprehend and leaves
    an extremely large space for human errors.
  • Software development is a nightmare if not
    approached in the proper way.

9
What is software engineering?
  • Consider this scenario. John Doe is given a
    problem to solve on the computer. John sits at
    his computer in his garage, and spews out a few
    hundred lines of code, and gets the required
    output somehow. (Haven't we all done this? ? )
  • My question is, Is software engineering the same
    as computer programming?

10
Software Engineering (continued)
  • Writing a program on a computer is not software
    engineering.
  • Computer programming is but one aspect of
    software engineering. It is the implementation of
    a possible solution to the problem at hand, and
    not the solution itself.

11
Finally...
  • Software engineering is a structured approach for
    developing software.
  • Software engineering uses the orderliness and
    discipline of traditional engineering to craft a
    solution to a given problem.
  • This process is called the software development
    lifecycle.

12
Software Systems
  • Software engineering is used to build software
    systems
  • A software system is a set of components that
    interact with each other to produce the solution
    for which the software system was developed. Each
    component is usually termed a module.
  • Modules communicate with each other using
    interfaces. (Think of one function calling
    another)

13
The structured process
  • If we were to attempt to solve a problem, how
    would we go about it in a structured way?
  • We need to know what the problem is
  • We need to determine how to solve the problem
  • We need to implement a possible solution
  • We need to verify that the solution implemented
    is correct.

14
The structured process of software development
  • The task of software development is divided into
    well-defined tasks called phases.
  • Each phase ends in a milestone.
  • The phases of software development put together
    form the process, also called the software
    development lifecycle.
  • We will study each component of the lifecycle in
    detail in this course.

15
The phases in software development
  • Phase I Information exchange between
    developer and end user.
  • Phase II Complete problem description
    (developer only)
  • Phase III Break down into detailed
    assignments for programming.
  • Phase IV Programming
  • Phase V Testing
  • Phase VI Changing the program

16
Information exchange between developer and end
user.
  • This phase involves discussions between the end
    user (customer) and the developers.
  • The customers tell the developers what features
    they want.
  • This is the most important phase of development.
    (Why?)
  • This phase culminates in a document called the
    requirements document.

17
Complete Problem Description (Developer Only)
  • The requirements document is now expressed in a
    form that is understandable and familiar to
    developers.
  • The corresponding product is called the
    specifications.
  • Specifications state exactly what the software is
    supposed to do from the perspective of the
    developers, and not how the functionality will be
    achieved.
  • Requirements state EXACTLY the same, except that
    they are stated in terms that the customer can
    understand.

18
Break down into detailed assignments for
programming
  • Based on the specifications, the system is broken
    down into components, and each component is
    described.
  • Every component has an interface to the other
    components
  • The goal is to be able to give well defined
    programming assignments to individual developers.
  • The milestone of this phase is called the design
    document.

19
Programming
  • Do I need to say what it is? ?
  • This phase transforms the design document into
    working code.
  • Ideally this phase should be all mechanical work.
  • The milestone of this phase is an executable
    program that can run on computers.

20
Testing
  • Testing is the process of checking whether the
    software is doing what it is supposed to do.
  • Does the software correspond to the requirements
    completely?
  • This involves trying out different input values
    on the program and examining the output to check
    if the expected output is obtained.
  • The milestone of the testing phase is the tested
    software.

21
Changing the program
  • What happens when the software is deployed?
  • Usually, the customers start finding
    inconsistencies in the software (Hey, this is not
    what I asked for!)
  • The software has to be patched in order to get
    it working as needed
  • When the program is changed, it means that it has
    to be tested again.
  • And so life goes on

22
Words of Wisdom
  • Thanks to Charlotte Mahoney for this slide
  • Writing software is an art, as well as a science.
  • Software engineering researchers
  • Design computer systems and write programs to
    perform tasks on those systems, which requires a
    great deal of art, ingenuity, and skill.
  • A software engineer is responsible for solving a
    given problem through careful design and
    analysis, before beginning to implement the
    solution.

23
Conclusion
  • Software engineering uses a structured process
    for software development
  • Like any other form of development, resource
    management (people, equipment, money) is
    essential for software development
  • Management issues are as important as development
    issues.

24
Study Questions
  • Why is software engineering different from other
    types of engineering?
  • What is the difference between software
    engineering and computer programming?
  • What are the products of each phase in the
    software development lifecycle?
  • Give me a name for each of the phases in the
    lifecycle.
Write a Comment
User Comments (0)
About PowerShow.com