Lecture 11 Emily Navarro Todays Lecture Course introduction Getting to know each other Introduction to software engineering Software is everywhere What is software engineering Todays Lecture ID: 639065
Download Presentation The PPT/PDF document "Informatics 43 – March 31, 2015" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Informatics 43 – March 31, 2015
Lecture 1-1
Emily NavarroSlide2
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
What is software engineering?Slide3
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
What is software engineering?Slide4
Course Basics
Course:
Informatics 43 – Introduction to Software Engineering
Professor: Emily Navarro (
emilyo@uci.edu
)
Lecture
: T
Th
5-6:20pm,
EH 1200
Discussion:
Fridays
Starting in week 2
Course
Website:
http://www.ics.uci.edu/~emilyo/teaching/
info43s2015/
index.htmlSlide5
Teaching Staff
Professor
: Emily
Navarro
TAs
Swanand
Pethe
Anirudh
Sethi
Readers
Isley
Gao
Cassie
JeansonneSlide6
Course Basics (II)
My office
hours
Tuesdays 3:45-4:45 DBH 5221
TA office hours
TBD
Questions
and announcements
Piazza (
https://piazza.com/uci/spring2015/
in4matx43
)
Email
or in class
Class email list
Required textbook
Tsui
,
Karam
, Bernal, "Essentials of Software Engineering," Third
EditionSlide7
Quizzes
6 quizzes, most Thursdays (see schedule)
Usually held from 6
:05-6:
20
Additional
quizzes may be given without prior notice, and the time and length of the quizzes may
change
Quiz answers will be given orally, in class, each Tuesday after
a quizSlide8
Grading (I)
Quizzes: 11% (total for all quizzes; each student's lowest quiz score will be dropped)
Midterm: 25%
Final: 25%
Three
homeworks
: 36% (12% each)
Class attendance and participation: 3%
Submitting the EEE course evaluation: 0.5% extra creditSlide9
Grading (II)
Performed by TA/reader and
professor
Resolve disagreements with the TA/reader first
Keep up with the
gradebook
Do not come to me after the quarter is over with a discrepancy—it will be too lateSlide10
Cheating
DON’T DO IT!!
Plagiarism = presenting someone else’s work as your own
All assignments are checked thoroughly for
plagiarism
Looking at someone else’s paper during a quiz/test will be interpreted as cheating
Plagiarism/cheating
consequences
Fail the course
Offense recorded with Student
AffairsSlide11
Late Work
Late work will not be accepted
Truly extenuating circumstances will be evaluated on a case-by-case basis
Must provide official documentation (e.g., doctor’s note)
Exceptions only
granted by the
professor
Contact professor as soon as
possible
Contact professor with valid reasonsSlide12
Questions
When in doubt
ask the TA (or reader)
ask the professor(s
)
E-mail questions
answers
are (generally) copied to everybodySlide13
Rules for Success in Info 43 (I)
Attend every lecture
Take notes
Many quiz and test questions will be drawn from lecture material
Attend every discussion
It is your responsibility to make sure you sign the roll sheet in discussion
Many quiz and test questions will be drawn from discussion assignments
Complete
the assigned readings
Take notes
Some quiz and test questions will be drawn from readingsSlide14
Rules for Success in Info 43 (II)
Check your UCI email daily
Primary method of class announcements outside of lecture
Work hard throughout the quarter
Not just at the end!Slide15
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
What is software engineering?Slide16
Who am I?Slide17
Who are you?
What year of college is this for you?Slide18
Who are you?
What is your major?Slide19
Who are you?
How much do you love software engineering already?Slide20
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
DefinitionsSlide21
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
What is software engineering?Slide22
Software is everywhere: cars
http://
spectrum.ieee.org/green-tech/advanced-cars/this-car-runs-on-code/
“New
cars now frequently carry 200 pounds of electronics and more than a mile of
wiring”
“…if you bought a premium-class automobile recently, it probably contains close to 100 million lines of software code…”Slide23
Software is everywhere: cars
“The radio on many cars talks to the automatic transmission over an in-car network”
“
The airbag accelerometer, parking lights, GPS navigation, cell phone, and door locks also network so that in a serious accident, the car calls for emergency aid, sends the GPS coordinates of the accident, unlocks the doors, and flashes the
car’s
lights
”Slide24
Software is everywhere: medical systemsSlide25
Software is everywhere: gamesSlide26
Software is everywhere: bonusSlide27
Software is everywhere: bonus
The machine also connects to
WiFi
and has
a camera for a QR scanner. They hope that some
day,
coffee bags will
have a QR
code that
the machine will recognize and brew appropriately.Slide28
Today’s Lecture
Course introduction
Getting to know each other
Introduction to software engineering
Software is everywhere
What is software engineering?Slide29
What is Software Engineering?
Software –
Engineering -Slide30
What is Software Engineering?
Software –
Engineering -
Code
Documentation, user manuals
Designs, specifications
Test cases
Plans and schedulesSlide31
What is Software Engineering?
Software –
Engineering -
Code
Documentation, user manuals
Designs, specifications
Test cases
Plans and schedules
Skill and knowledge
Application of scientific principles
Trade-offs, cost / benefit analysisSlide32
Software engineering
“
A broad field that touches upon all aspects of developing and supporting a software system.
” [
Tsui
,
Karam
, Bernal]Slide33
Software engineering
“
A broad field that touches upon all aspects of
developing
and
supporting
a software system.
” [
Tsui
,
Karam
, Bernal]Slide34
Software engineering
“
A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers
.” [
Ghezzi
,
Jazayeri
,
Mandrioli
]Slide35
Software engineering
“
A discipline that deals with the building of software systems which are so
large
that they are built by a
team
or
teams
of engineers
.” [
Ghezzi
,
Jazayeri
,
Mandrioli
]Slide36
Software engineering
“
Multi-person construction of multi-version software
.” [
Parnas
]Slide37
Software engineering
“
Multi-person
construction of
multi-version
software
.” [
Parnas
]Slide38
Software engineering
“
A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs
.
Furthermore, the software must be easy to modify when the user’s needs change
.” [
Schach
]Slide39
Software engineering
“
A discipline whose aim is the production of
fault-free
software, delivered
on-time
and
within budget
, that
satisfies the user’s needs
.
Furthermore, the software must be
easy to modify when the user’s needs change
.” [
Schach
]Slide40
Software engineering
“Given
a problem that can be addressed by a software solution, software engineering consists of the practices that manage the complexity of both the problem and the solution, to create a software product that successfully solves the
problem.” [Navarro]Slide41
Software engineering
“Given
a problem that can be addressed by a software solution, software engineering consists of the practices that
manage the complexity
of both the
problem
and the
solution
, to create a software product that successfully solves the
problem.” [Navarro]Slide42
What is Software Engineering?
Informatics 43:
The process of constructing software.
Phases of development other than programming.
Principles and qualities of enduring value.Slide43
What is Software Engineering?
Informatics 43:
The process of constructing software.
Phases of development other than programming.
Principles and qualities of enduring value.
Also of (lesser) interest (in this course):
Managing & scheduling software development teams.
Making money – business models.
Software’s impact on users, organizations, and society.Slide44
What is Software Engineering?
The process of constructing software.Slide45
What is Software Engineering?
Phases of development other than programming.
Design:Slide46
What is Software Engineering?
Principles and qualities of enduring value.
Correctness!
MODULARITY
Consistency
Efficiency
Adaptability
ReliabilitySlide47
Essential Characteristics of Software Engineering (I)
Software engineering concerns the development of large programs
The central theme is mastering complexity
The efficiency with which software is developed is of crucial importance
Software
evolvesSlide48
Essential Characteristics of Software Engineering (II)
Regular cooperation between people is an integral part of programming-in-the-large
The software has to support its users effectively
Software engineering is a field in which members of one culture create artifacts on behalf of members of another culture
Software engineering is a balancing
actSlide49
Three “Essential
I
ngredients” of Software
E
ngineering
People
who
else would do the work?
range
from novice to very
experienced
Processes
to
organize and manage the efforts of individuals
range
from informal to very
formal
Tools
to
support the people and the processes
range
from simple to very advancedSlide50
People
The single most important factor in the success/failure of a
product
Scarce resource
quality
suitability
c
ost
Many different kinds of people
managers
programmers
technical
writers
…Slide51
Processes
Essential to achieve a quality
product
Scarce resource
quality
suitability
cost
Many different kinds of processes
bug
tracking
change
approval
quality
assuranceSlide52
Tools
Needed to support people and
processes
Scarce resource
quality
suitability
c
ost
Many different kinds of tools
drawing
analysis
project
management
source
code managementSlide53
Programming versus software engineering
Small project
Large to huge project
You
Teams
Build what you want
Build what
they want
One product
Family of products
Few sequential
changes
Many
parallel changes
Short-lived
Long-lived
Cheap
Costly
Small consequences
Large consequences
Programming
Software engineeringSlide54
Next Time
What is software engineering?
Brooks’ “No Silver Bullet”
Complete assigned readings
before Thursday