Software Engineering--Introduction - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering--Introduction

Description:

Title: No Slide Title Author: Preferred Customer Last modified by: seitzeje Created Date: 6/18/2003 9:08:54 PM Document presentation format: On-screen Show (4:3) – PowerPoint PPT presentation

Number of Views:125
Avg rating:3.0/5.0
Slides: 22
Provided by: Preferr347
Learn more at: https://eecs.ceas.uc.edu
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering--Introduction


1
Software Engineering--Introduction
Software Engineering--Introduction
2
Course Administration
  • Syllabus, grading, schedule--class lab--will
    all be on www.ece.uc.edu/cpurdy
  • Contact information C. Purdy / A. Ravi (TA)
    Prof. J. Seitzer, guest lecturer
  • 3. Java--to be learned in lab--you will develop
    basic skills, expert status not required
  • 4. teams--we will form these by Friday 3-4 per
    team (TURN IN SURVEY please)
  • 5. project--most will be done in lab
  • 6. passing 493/495 you must pass both classes
    if you fail one, you will receive an F in both
    otherwise you will receive a separate grade in
    each of these classes
  • 7. grading 493 495explained on web pages
  • 8. cell phones--for each call you get in class,
    you lose 3 points on your final grade
  • 9. Electronic communication (text messages,
    laptops, etc.)
  • NOT ALLOWED in lecture as these distract from
    class discussions
  • 10. Reading assignments please read BEFORE
    class be ready to discuss in class (there will
    generally be low stakes writing for these)
  • Group work / individual work we will do a lot
    of each--follow rules for each assignment.
  • First lab (Wednesday) please write your name
    and java skill level (5 strong 3 know some
    java 1 little or none) on a piece of paper and
    hand it in to Mr. Ravi this will be used for
    forming pairs for lab 1

3
Course Themes
  • The lectures and assignments in this course will
    focus on developing knowledge and skills for
  • effective teamwork
  • project management
  • software development
  • "lifelong learning"
  • In this course we will be concentrating on the
    process of developing software, not on technical
    skills in specialized areas such as database
    management, wireless computing, etc.
  • The skills we will learn can also be applied to
    hardware projects and to mixed hardware /
    software projects.

4
People, Product, Process--gt Project
what is "software engineering"? the "art" of
building and maintaining software
systems "software engineering is a
discipline whose aim is the production of
fault-free software, delivered on time and within
budget, that satisfies the users
needs. Schach, Object-Oriented and Classical
Software Engineering, 5th ed.,
Mc-Graw-Hill 2002, p. 4
5
People, Product, Process--gt Project
  • Importance of fault-free Software bugs can be
    lethal.
  • The 2003 North America blackout was triggered
    by a local outage that went undetected due to
    a race condition 55 million people were
    without power
  • Smart ship USS Yorktown was left dead in the
    water in 1997 for nearly 3 hours after a divide
    by zero error
  • Y2K problem similarly 2038 problem
    many Unix systems calculate the time in seconds
    since 1 January 1970, and store this figure as
    a 32-bit signed integer, for which the maximum
    possible value is 231-1 (2,147,483,647).

6
People, Product, Process--gt Project
  • "software engineering is a discipline whose aim
    is the production of fault-free software,
    delivered on time and within budget, that
    satisfies the users needs.
  • Schach, Object-Oriented and Classical Software
  • Engineering, 5th ed., Mc-Graw-Hill 2002,
    p. 4
  • components of software system construction (4
    Ps)
  • people
  • product
  • process
  • project

7
Software Life Cycle
8
People (Stakeholders)Roles, Goals, Functions
Role Responsibility Customer High level
requirements, project scope User What tasks
must system carry out? What is level of
expertise? Software salesperson Get
requirements delivery dates, cost Business
Manager Organize, track work Technical
Manager Manage technical issues Developer Design
, implement, test Technical Writer Documentation,
manuals
Goals / Functions conflicts?
9
Questions to Think About
  • some points to ponder
  • "software crisis"--systems become more and more
    complex
  • --what can we automate?
  • --how can we verify/ test such complex systems?
  • "hardware/software" boundary
  • --how can we do "co-design"?
  • --where is the boundary?
  • types of software systems
  • --how do important application-specific systems
    differ?
  • --what impact do differences have on
    development?
  • --which systems will be most important in the
    coming years?

10
Important System Types
  • Some Common System Typeswhat is the
    same/different?
  • Databases
  • Communication systems
  • Entertainment systems
  • Web-based applications
  • Medical systems
  • Manufacturing / transportation systems
  • Simulation programs to support engineering and
    science
  • Parallel/distributed applications
  • Embedded systems
  • Intelligent systems / robots - http//www.youtube.
    com/watch?v7fYMxaBTqls
  • Utility software for computer systems (compilers,
    e.g.)
  • Utility software for general users (spreadsheets,
    e.g.)

11
References
12
Dilbert
13
Dilbert Powerpoint Poisoning
14
Mythical Man-month
15
Mythical Man-Month
16
Why is Managing Programming Hard?
17
System Architect
18
Separate Architecture, Implementation
19
Process Model
20
Productivity
21
What did we do today?
  • Welcome to class (and turn in your Java
    surveys!)
  • Its a process course -- teamwork,
    methodology, lifelong learning ALL in the
    context of good code development
  • The 4 Ps -- people, product , process,
    project
  • Plethora of models plan, do, fix
  • Fred Brooks , et. al Mythical Man Month
Write a Comment
User Comments (0)
About PowerShow.com