CS 3302 Software Engineering - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

CS 3302 Software Engineering

Description:

Having some friends round for a party is different from organizing the Olympic Games ... Communicating and justifying design decisions. ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 11
Provided by: colin91
Category:

less

Transcript and Presenter's Notes

Title: CS 3302 Software Engineering


1
CS 3302Software Engineering
  • Colin Potts
  • Georgia Tech,
  • College of Computing

2
What is Software Engineering?
  • An Exercise List all the ways in which
  • Building a tinkertoy car for fun is different
    from designing a new automobile
  • Building a treehouse is different from the
    architecture of a high-rise office building
  • Having some friends round for a party is
    different from organizing the Olympic Games
  • So, how might software engineering be different
    from writing a 50-line Java applet?

3
Software Engineering CS course projects
  • "instructors" are professional customers or
    company's marketing staff.
  • "assignments" are ill-defined and constantly
    changing.
  • responsible for acquiring tools you need.
  • professional responsibilities.
  • have to be able to work in teams.
  • large project that is far too big to understand
    as a whole.
  • products may last for years or even decades.
  • have to understand the problem domain in which
    software will work.

4
What You Will Learn
  • Understanding, clarifying and documenting the
    requirements for a customer.
  • Planning and managing a project, including effort
    estimation, risk analysis, contingency planning,
    and re-planning if the schedule is not met.
  • Designing a software system at the architectural
    and detailed levels.
  • Communicating and justifying design decisions.
  • Reviewing and testing designs and
    implementations.

5
1. Software Engineering Principles Software
engineering programming. Software lifecycle
models. Complexity management CASE.
Design abstraction, OO devt. SE.
Testing2.Software Engineering Practice
Customer requirements Software
specification Object-oriented analysis
Project planning mgt. Software design.
Translating designs into running code.
Integration Evolution of software.
Course Details
  • See Web page for (currently tentative) schedule,
    information about the textbook, etc.

6
Software Engineering
  • What does designing a big software system most
    resemble?
  • Engineering, architecture planning
  • Designing a car? Constructing a high-rise
    building? Planning a major event?
  • Softwares essence
  • Conceptual complexity
  • what is complexity? Why conceptual?
  • Softness
  • how are software maintenance and TV maintenance
    different?
  • Invisibility
  • just what is software anyway? And how can it be
    engineered?

7
Cost of SE phases
Can this much effort really be maintenance?
8
Software Evolution
  • All engineering artifacts exist in an environment
    for external purposes, e.g
  • bridges / cars transportation
  • sound equipment performing arts
  • But software design usually involves work /
    organization redesign
  • if software codified intent, then new software
    shapes intents is focus of organizational
    change
  • Software engineers are often unwitting change
    agents their systems are treated with suspicion
  • Which means that software evolves gradually as
    the environment/mission evolves

9
Types of Software Maintenance
  • Corrective maintenance
  • Fixing defects (bugs)
  • I.e. correcting design flaws
  • Perfective maintenance
  • Improving the product (enhancements)
  • Because of new requirements
  • Or misunderstood requirement
  • Because of new technological opportunities
  • E.g. increased distribution of a centralized IS
    onto client-server architecture
  • Reflecting changes in the environment
  • Changes to tax laws, changes to ways of working,
    etc.
  • Or unanticipated changes

10
Phases of Software Development(SE as planned
evolution testing of software, not just
developing it)
  • Traditional phases of software generation
  • Requirements
  • Specification
  • Design
  • Implementation
  • Integration
  • Evolution
  • Development and redevelopment throughout process,
    not a phase at the end
  • Testing
  • Reviewing and assessing throughout process, not a
    phase near the end
Write a Comment
User Comments (0)
About PowerShow.com