Software%20Engineering - PowerPoint PPT Presentation

About This Presentation
Title:

Software%20Engineering

Description:

Software Engineering A Preview Chapter 1 – PowerPoint PPT presentation

Number of Views:167
Avg rating:3.0/5.0
Slides: 25
Provided by: Carlo381
Category:

less

Transcript and Presenter's Notes

Title: Software%20Engineering


1
Software Engineering
  • A Preview
  • Chapter 1

2
Outline
  • My Background
  • Definitions of software engineering (SE)
  • Historical origins of SE
  • SE as part of systems engineering
  • SE consists of many activities in addition to
    programming
  • SE and other disciplines

3
My Background
  • BSc in computer science from Ontario
  • MSc and PhD in computer science at UofR
  • Research specializing in machine learning and
    game theory
  • Avid programmer. First language was Basic in
    1989, last was C 8 months ago ?.

4
Industry Experience
  • Government of Ontario (Web developer)
  • IBM Canada (lead developer of e-commerce site)
  • Dundee Securities (network security analyst)
  • Sask. Watershed Authority (team lead)
  • UofR (programmer analyst I, II)
  • Numerous lab teaching and lecturing appointments

5
Definitions
  • The application of engineering to software
  • Field of computer science dealing with software
    systems
  • large and complex
  • built by teams
  • exist in many versions
  • last many years
  • undergo changes

6
Definitions
  • Application of a systematic, disciplined,
    quantifiable approach to the development,
    operation, and maintenance of software (IEEE
    1990)
  • Multi-person construction of multi-version
    software (Parnas 1978)

7
Role of SE in system design
  • SE part of larger projects
  • Embedded
  • Software requirements to be balanced against
    others
  • e.g., telephone switching systems
  • certain requirements can only be met by hw, sw,
    and special devices

8
History
  • The field of software engineering was born in
    1968 in response to chronic failures of large
    software projects to meet schedule and budget
    constraints
  • Recognition of "the software crisis"
  • Term became popular after NATO Conference in
    Garmisch Partenkirchen (Germany), 1968

9
Role of software engineer
  • Programming skill not enough
  • Software engineering involves "programming-in-the
    large"
  • understand requirements and write specifications
  • derive models and reason about them
  • master software
  • operate at various abstraction levels
  • member of a team
  • communication skills
  • management skills

10
The software lifecycle (a preview)
waterfall model
11
Relationships between SE and other CS disciplines
  • Programming languages
  • Operating systems
  • Data bases
  • Artificial intelligence
  • Theory
  • Management science
  • Systems engineering
  • Others

12
Programming
  • Languages are the central tools used in software
    development.
  • Modularity
  • Separation of implementation and specification
  • Java and packages
  • Exception handling
  • Engineer support for error checking

13
Operating Systems
  • The first large software systems built.
  • Concepts developed in OS are applicable to many
    large-scale software systems
  • Virtual machines, abstraction, separation of
    policy from mechanism
  • Separate the what from the how

14
Databases
  • Concept of data independence
  • Another ex. of separation of specification and
    implementation.
  • Many innovations in database technology were
    required with the design of large-scale software
    systems
  • Storing large structured or unstructured objects.
  • Transaction lengths.

15
Artificial Intelligence
  • Many are large-scale software systems.
  • Necessity of exploratory development since many
    of them were vague on how they worked.
  • SE techniques used in expert systems, a
    modularized system with clear separation between
    facts known and rules used to process facts.
  • Programming assistants.

16
Theoretical Models
  • Many models have been developed that have become
    useful tools in SE
  • Finite State Machines
  • Basis of software specifications and a model for
    software design and structure.
  • Petri Nets
  • Originally used to model hardware, but have been
    adopted to model software.

17
Topics covered in this course
  • Part I SE Overview
  • SE Introduction
  • Software Qualities and Principles
  • Software Design and Architecture
  • Part II Specification Testing
  • Operational and Descriptive specifications
  • Part III Software Production Process
  • Activities and models

18
Group project
  • Comprehensive project that covers major
    deliverables and duties of a real developer team.
  • Groups of 4 should be decided by the end of the
    week.
  • All members of team receive same project mark
  • Tip Pick a well-rounded group of writers,
    testers, and developers.

19
Group project
  • Each group will meet with me at least once midway
    through to discuss project.
  • I will provide a list of available projects, but
    Im also open to ones not on a list if I think
    they are viable.
  • REMEMBER You have 6.5 weeks to finish it,
    starting now!

20
CHAOS Report by Standish Group for 1995
  • Standish Group studied 3682 projects in 365
    companies in 1995
  • Huge investment in software development
  • US 250 billion spent each year on IT development
    of c. 175 000 projects in the US (1995 estimates)
  • Huge losses
  • US 81 billion spent on cancelled projects and
    additional 59 billion on time overruns by US
    companies and government (1995estimates)

21
  • Project success rate
  • Success 16.2
  • Challenged (either late or over budget) 52.7
  • Impaired (cancelled) 31.1
  • Average cost overrun of original estimate was
    189
  • Average time overrun of original estimate was
    222
  • On average only 61 of originally specified
    features and functions were available on these
    projects

22
Challenges of Software Development
  • Productivity
  • Growing demand for new systems and variants
  • Complexity
  • Requirements concerning functionality,
    efficiency, and especially connectivity are
    constantly growing.
  • Quality
  • User expectations of quality are high, and may be
    life critical
  • Maintenance Legacy Systems
  • 20 years or more

23
Programming vs. Software Engineering
  • Small project
  • You
  • Build what you want
  • One product
  • Few sequential changes
  • Short-lived
  • Cheap
  • Small consequences
  • Huge project
  • Teams
  • Build what they want
  • Family of products
  • Many parallel changes
  • Long-lived
  • Costly
  • Large consequences

24
Average cost of software
Object-Oriented and Classical Software Engineer
5th Edition, Schach (2002)
Write a Comment
User Comments (0)
About PowerShow.com