CPSC 333 SENG 311: Foundations of Software Engineering - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

CPSC 333 SENG 311: Foundations of Software Engineering

Description:

Practically every walk of life: health, education, transportation, government, ... changes happen as a fact of life. late changes are expensive. CPSC 333 / SENG ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 32
Provided by: rosejoshua4
Category:

less

Transcript and Presenter's Notes

Title: CPSC 333 SENG 311: Foundations of Software Engineering


1
CPSC 333 / SENG 311 Foundations of Software
Engineering
Instructors Dr. Rose Joshua, ICT
548 joshuar_at_cpsc.ucalgary.ca Office Hours MTW
12-1pm Dr. Rob Walker, ICT 546 rwalker_at_cpsc.ucalg
ary.ca Office Hours WF 1-2pm
2
Contents / Reading List
  • Organizational stuff
  • Why software engineering?
  • What is software engineering?
  • Read Pressman, Chapter 1

3
General Information
  • Labs start on Mon/Tue, Sept. 15, 2003.
    Participation in the first lab is absolutely
    required

4
Course information
  • http//sern.ucalgary.ca/Courses/CPSC/333/ f03/ind
    ex.html
  • Slides will be available after each class
  • Newsgroup cpsc.courses.cpsc333
  • Use your news reader to subscribe (e.g. Netscape)
  • information will be distributed via the mailing
    list (e.g. hints for assignments, corrections
    etc.)

5
Textbooks
  • See your Course Info Sheet
  • Pressman Software Engineering A Practitioners
    Approach, 2001 (5th. Edition).
  • Beck Fowler Planning Extreme Programming,
    2000.
  • Fowler Scott UML Distilled, 1999.
  • Beck Extreme Programming Explained, 1999.

6
Assessment
  • Lab
  • Individual Assignments 9
  • Group Assignments 31
  • Exams
  • Mid-Term Exam 20 Friday, Oct. 17th, 6pm, ST
    140
  • Final exam 40
  • Both components must be passed in order to pass
    the course.

7
Assignments
  • Team project
  • Teams of 6 8 members
  • Every team will develop their own system.
  • The overall assignment will be split into three
    iterations that will be marked individually
  • Individual Assignments TBA
  • No late submissions will be accepted. Late
    submissions will earn ZERO for the entire group
    affected.

8
Goal of the team assignment
  • Learning to develop a modular software system
    within a team following an object-oriented
    methodology
  • we will use the Java Development Kit and Swing
    for group assignments
  • Getting a feeling for the (management) problems
    in software development
  • Software development is not just coding. A lot
    of planning and resource management goes into the
    creation of any reasonably-sized software
    product.
  • Getting an idea of your own productivity
  • Individuals must contribute positively to their
    group work

9
Team assignment
  • The software should be developed following basic
    software engineering principles
  • processes code, test, design, review
  • products story cards, test cases, test results,
    design documents, source code, review results,
    and productivity metrics

10
Contents
  • Organizational stuff
  • Why software engineering?
  • What is software engineering?

11
What is Software?
  • (Ideally) a structured collection of well
    documented and packaged series of instructions on
    data, that deliver computing power for driving
    practical processes and applications
  • Application areas? Practically every walk of
    life health, education, transportation,
    government, military, , including driving
    hardware devices like cell phones, microwave
    ovens, etc.

12
Characteristics of Software
  • Developed in an evolving process during which
    all pieces are put together
  • Is therefore easier to modify than hardware,
    without upsetting the use of the entire system
  • Doesnt wear out in the same manner as hardware
  • Could however be difficult to maintain, esp. in
    the presence of several defects

13
Characteristics of Software
  • Big RESPONSIBILITY for developers
  • Consider lives at stake in hospital applications,
    for example
  • or more lives in the aviation industry
  • billions of dollars of investment
  • Could be reused
  • Strive for writing reusable modules
  • components-based assembly

14
Why Software Engineering?
  • ...to get away from ad hoc and unpredictable
    software development towards a systematic,
    understood one...
  • to provide an efficient process for creating
    high-quality programs

15
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

16
What are the problems?
  • Increased quality demands on software products
  • Inefficient defect detection / error recovery
  • High cost and time pressure
  • Shorter time to market
  • Coordination problems within the projects
  • Scarce resources
  • These problems are chronic in that they have
    lasted for so long. These problems are caused by
    an interplay of misconceptions by management,
    customers, and developers alike

17
Management myths
  • State-of-the-art tools are the solution
  • A fool with a tool is still a fool. Tools are
    often not used effectively
  • Getting behind schedule resolved by hiring
    additional programmers
  • adding people to a late software project makes
    it later, mostly due to training needs and
    learning curves

18
(No Transcript)
19
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

20
Practitioners myths
  • Once we write a program and get it to work, our
    job is done
  • 60-80 of all effort after first delivery to
    customer
  • 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) guide for
    future work, and good engineering discipline.

21
The software crisis and a solution approach
  • 1968 NATO conference in Garmisch-Partenkirchen
  • software crisis (to characterize the situation)
  • software engineering (idea for a solution)

22
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 an art
    rather than engineering discipline

23
Practical disasters
  • Y2K Lessons learned?
  • European Space Agency Ariane 5
  • Track control system failure results in self
    destruction
  • NASA 1999
  • Incorrect conversion from imperial?metric leads
    to loss of Mars satellite
  • 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 still delivered late?
  • Unrealistic deadlines forced from the outside
  • Unfocused development too many unnecessary
    features, just in case
  • Changed requirements not reflected in schedule
  • Underestimation of effort
  • Risks not considered
  • Unforeseen technical human difficulties
  • Miscommunication among project staff
  • Management fails to see that the project falls
    behind schedule

25
What can you do against unrealistic deadlines?
  • You cannot change them
  • You cannot refuse to do the work
  • Perform detailed estimate
  • Try to use incremental model
  • define critical functionality
  • postpone other functionality to later phases
  • pair programming
  • continuous integration
  • Explain to the customer why you are not able to
    meet the deadline (using estimates based on the
    performance of past projects)

26
Contents
  • Organizational stuff
  • Why software engineering?
  • What is software engineering?

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

28
Three Ps
People
Processes
Products
29
People, processes, products
  • Processes
  • planning
  • testing
  • estimating
  • coordination
  • management
  • measuring
  • designing
  • coding
  • pair programming
  • continuous integration
  • multiple iterations
  • Products
  • stories
  • test cases
  • test results
  • source code
  • executable
  • user documentation
  • change request
  • ....
  • People
  • education
  • skills
  • communication
  • style
  • .....

30
Summary
  • Software engineering is the engineering-like
    development of a software system as the solution
    to an users problem applying the right
    techniques / methods / tools
  • Software engineering is necessary for developing
    reliable complex software
  • Software engineering techniques help to develop
    software in large teams

31
Were Available!
  • Questions?
  • if you have any questions about contents of this
    lecture or other course-related issues, please
    come by during our office hours, or send us email
  • Dr. Joshua MTW, 12-1pm, ICT 548
  • joshuar_at_cpsc.ucalgary.ca
  • Dr. Walker WF, 1-2pm, ICT 546
  • rwalker_at_cpsc.ucalgary.ca
Write a Comment
User Comments (0)
About PowerShow.com