CS451 Introduction to Software Engineering - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

CS451 Introduction to Software Engineering

Description:

CS451 Introduction to Software Engineering Yugi Lee FH #560D (816) 235-5932 leeyu_at_umkc.edu www.sce.umkc.edu/~leeyu – PowerPoint PPT presentation

Number of Views:223
Avg rating:3.0/5.0
Slides: 35
Provided by: Yug7
Category:

less

Transcript and Presenter's Notes

Title: CS451 Introduction to Software Engineering


1
CS451Introduction to Software Engineering
  • Yugi Lee
  • FH 560D
  • (816) 235-5932
  • leeyu_at_umkc.edu
  • www.sce.umkc.edu/leeyu

2
Contents
  • Organizational stuff
  • Project
  • Paper Presentation
  • Why software engineering?
  • What is software engineering?

3
General stuff
  • Class M/W 1230 115pm, RHFH460
  • Office hours
  • M/W 330-430 pm or by appointment

4
Course information
  • www.umkc.edu/blackboard
  • Lecture slides will be available in advance
  • Mailing List
  • information will be distributed via the mailing
    list (e.g. hints for assignments, corrections
    etc.)

5
Textbooks
  • Required
  • Software Engineering - A Practitioner's Approach
    - Pressman (McGraw Hill), 6th Edition
  • Additional readings
  • Classical and Object-Oriented Software
    Engineering - Stephen R. Schach (McGraw Hill)
  • UML Distilled - Fowler, Scott (Addison Wesley)
  • IEEE ACM Magazine Papers

6
Course Objectives
  • Have a comprehensive picture of software
    development
  • Gain hands-on experiences on object oriented
    development in software engineering.
  • learn the skill on UML (Unified Modeling
    Language) and tools (National Rose, Project,
    etc).
  • learn object-oriented programming (C, Java or
    C) and Web technologies (XML, .NET ASP, etc)
  • Understand current trends and requirements of
    software systems and applications.

7
Assessment
  • Group Project 40
  • Individual Work
    60
  • Midterm Exam                                     
        15
  • Final Exam                                       
            20
  • Paper Presentation Discussion              5
  • In-Class Exercise Participation             20
  • Both components must be passed in order to pass
    the course.

8
Projects
  • Team project
  • Teams of 3-4 members
  • Development of an entire system following Agile
    software engineering process (feature based
    planning, Unit testing, etc) and OO techniques
    (UML)
  • The overall assignment will be divided into
    several steps that will be marked individually.
  • Project proposal      
    8
  • Skill building Plan                  
    6
  • Increments (4)
    16
  • Project Report Presentations   
    10
  • Being late leads to 10 reduction per day
  • Assignments that are submitted more than three
    days late will no longer be accepted.

9
Goal of the Team Assignment
  • Learning to develop a modular software system
    within a team following an object oriented
    methodology
  • Getting a feeling for the (management) problems
    in software development
  • Getting an idea of your own productivity
  • Having group work experience (work-with-other)

10
Team Assignment
  • The software should be developed following basic
    software engineering principles
  • processes analysis, design, implementation,
    review, and testing phases
  • products requirements and design documents,
    source code, review results, test cases, test
    results, and productivity metrics

11
Potential Projects
  • A community partner - developing a software or a
    database system to track the children in their
    after school programs.

12
Exams (Tentative Schedule)
  • Midterm exam 3/27/06
  • Final examination Final exam period
  • Covers the whole course but will focus on
    the second part

13
Paper Presentation
  • Each student presents one or two papers
  • about 20 minutes
  • sign-up schedule
  • actively involved in discussion
  • IEEE Magazines i.e., Internet Computing, Computer
  • ACM Magazine Communications

14
Introduction to Software Engineering
15
What is Software? Pressman
  • Software is a set of items or objects
  • that form a configuration that
  • includes
  • programs
  • documents
  • data ...

16
Softwares Dual Role Pressman
  • Software is a product
  • Delivers computing potential
  • Produces, manages, acquires, modifies, displays,
    or transmits information
  • Software is a vehicle for delivering a product
  • Supports or directly provides system
    functionality
  • Controls other programs (e.g., an operating
    system)
  • Effects communications (e.g., networking
    software)
  • Helps build other software (e.g., software tools)

17
Why Software Engineering?
  • ...to get away from ad hoc and unpredictable
    software development towards a systematic,
    understood one...

18
Characteristics of Todays Software Development
  • Development of large complex systems
  • Software systems must fulfill the requirements of
    a client
  • Number of persons involved in the development gt
    1
  • Software systems are expected to live long and be
    used by many people

19
What are the Problems?
  • Increased quality demands on software products
  • High cost and time pressure
  • Shorter time to market
  • Coordination problems within the projects
  • Scarce resources

20
The Software Crisis and Solution
  • 1968 NATO conference in Garmisch-Partenkirchen
  • software crisis (to characterize the situation)
  • software engineering (idea for a solution)

21
Why still Software Engineering?
  • Has the software crisis vanished?
  • No!
  • Software projects still run over time and out of
    budget
  • no break through in quality !!!still art
    instead of engineering discipline

22
Software Crisis?
  • Unacceptably low quality of software
  • Delayed deadlines Average 1 year
  • Over cost limits Average 2X estimate
  • E.g. Air Force Command and Control system
  • Initial estimate
  • 1.5million
  • Winners bid
  • 0.4 million
  • Actual cost
  • 3.7 million
  • After deliver?
  • E.g. U.S Army study of
  • Federal projects
  • Delivered, but not used 47
  • Paid for, but not delivered 29
  • Abandoned or reworked 19
  • Used after changes 3
  • Used as delivered
  • 2

23
Practical Disasters
  • European Space Agency Ariane 5
  • Track control system failure results in self
    destruction
  • Denver Airport
  • Late delivery of software for the baggage system
    delays the opening of the airport by 16 months
  • US study (1995) 81 billion US spend per year
    for failing software development projects

24
Why is Software so Hard?
  • Software is Parnas, 1985
  • Buggy
  • Unreliable
  • Forever changing
  • Unwarrantable

25
Legacy Software
  • Why must it change?
  • software must be adapted to meet the needs of new
    computing environments or technology.
  • software must be enhanced to implement new
    business requirements.
  • software must be extended to make it
    interoperable with other more modern systems or
    databases.
  • software must be re-architected to make it viable
    within a network environment.

26
Management Myths
  • State-of-the-art tools are the solution
  • A fool with a tool is still a fool
  • Getting behind schedule resolved by hiring
    additional programmers
  • adding people to a late software project makes
    it later

27
Management myths
28
Customer Myths
  • A general statement of objectives is sufficient
    to begin writing programs - we can fill in
    details later.
  • Thorough communication between customer and
    developer needed
  • Changes can be easily accommodated because
    software is flexible
  • changes happen as a fact of life
  • late changes are expensive

29
The Impact of Change
Cost to change
30
Practitioners Myths
  • Once we write a program and get it to work, our
    job is done
  • 50-70 of all effort after first delivery
  • Until I get the program running, I really have
    no way in assessing its quality
  • inspections reviews
  • The only deliverable for a successful project is
    the working program
  • documentation (users, maintenance)

31
Definition Software Engineering
  • Software Engineering (1) The application of a
    systematic, disciplined, quantifiable approach to
    the development, operation, and maintenance of
    software that is, the application of engineering
    to software. (2) The study of approaches as in
    (1) IEEE-93

32
Three Ps
People
Processes
Products
33
People, Processes, Products
  • People
  • education
  • skills
  • communication
  • style
  • .....
  • Products
  • requirements
  • design
  • source code
  • executable
  • user documentation
  • test cases
  • test results
  • change request
  • ....
  • Processes
  • planning
  • coordination
  • management
  • measuring
  • analyzing
  • designing
  • coding
  • .....

34
Scope Software Engineering
  • extremely broad
  • the software life cycle
  • team or organization
  • economic aspect
  • legal aspect,
  • etc.
  • various disciplines
  • Mathematics,
  • Computer science,
  • Economics,
  • Management,
  • Psychology
  • etc.
Write a Comment
User Comments (0)
About PowerShow.com