View
221
Download
1
Category
Preview:
Citation preview
Informatics 43
Lecture 0-1September 24, 2015
Emily Navarro
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– What is software engineering?
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– What is software engineering?
Course Basics
• Course: Informatics 43 – Introduction to Software Engineering
• Professor: Emily Navarro (emilyo@uci.edu)• Lecture: T Th 5-6:20pm, BS3 1200• Discussion: Wednesdays– Starting in week 2
• Course Website: http://www.ics.uci.edu/~emilyo/teaching/info43f2015/index.html
Teaching Staff
• Professor: Emily Navarro• TAs– Anirudh Sethi– Arjun Khode– Neeraj Kumar
• Readers– Andrea D’Souza– Sowmya Jain
Course Basics (II)
• My office hours– Tuesdays 2:15-3:15pm DBH 5221
• TA office hours– TBD
• Questions and announcements– Piazza (https://piazza.com/uci/fall2015/in4matx43)– Email or in class– Class email list
• Required textbook– Tsui, Karam, Bernal, "Essentials of Software Engineering,"
Third Edition
Quizzes
• 6 quizzes, most Tuesdays (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 Thursday after a quiz
Grading (I)
• Quizzes: 11% – Lowest score dropped
• Midterm: 25%• Final: 25%• Three homeworks: 36% (12% each)• Class attendance and participation: 3%• Submitting the EEE course evaluation: 0.5%
extra credit
Grading (II)
• Resolve disagreements with the TA/reader first
• Keep up with the gradebook
Cheating
• DON’T DO IT!!• 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 assignment– Offense recorded with Student Affairs
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 reasons
Questions
• When in doubt– ask the TA (or reader)– ask the professor(s)
• E-mail questions– answers are (generally) copied to everybody
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 readings
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!
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– What is software engineering?
Who am I?
Who are you?
• What year of college is this for you?
Who are you?
• What is your major?
Who are you?
• How much do you love software engineering already?
Who are you?
• Have you done any software engineering already?
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– Definitions
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– What is software engineering?
Software is everywhere: cars
• “The average new car has 40 to 50 computers that run 20 million lines of software code, more than a Boeing 787…
• “…experts and lawmakers are warning the auto industry and regulators to move faster to plug holes created by the dozens of new computers and the growing number of Internet connections in today's automobiles.Source: http://www.nytimes.com/aponline/2015/08/05/us/ap-us-autos-hacking.html?_r=1
Software is everywhere: cars
Software is everywhere: medical field
Software is everywhere: medical field
“In the last few weeks of the trial, my heart rate hit 138 beats per minute… This is an aerobic training zone, a rate I haven’t even come close to since being paralyzed while walking in the robot alone, without these interventions. That was a very exciting, emotional moment for me, having spent my whole adult life before breaking my back as an athlete.”Source: http://newsroom.ucla.edu/releases/completely-paralyzed-man-voluntarily-moves-his-legs-ucla-scientists-report
Software is everywhere: medical field“…research conducted over the past half-decade shows that CBT delivered via a website can be just as effective as CBT delivered through an in-person therapist. It seems safe to conclude that guided self-help and face-to-face treatments can have comparable effects. It is time to start thinking about implementation in routine care…”
Source:http://www.businessinsider.com/joyable-helps-to-overcome-social-anxiety-2015-7#ixzz3l0kr5sne
Software is everywhere: medical field
Software is everywhere: elections“…the higher a politician ranks on a page of Internet search results, the more likely you are to vote for them.”
Source: http://news.sciencemag.org/brain-behavior/2015/08/internet-search-engines-may-be-influencing-elections
Software is everywhere: the military
Pirate predictor: “The Navy’s new software creates models combining the best known conditions for pirating plus all available intel on the pirates in question. The name for these models? ‘Pirate replicates.’”
Source: http://gizmodo.com/the-navy-built-an-algorithm-that-predicts-pirates-behav-1724181937?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gizmodo%2Ffull+%28Gizmodo%29
Software is everywhere: disaster response
• “When Katrina hit, social media was in its infancy, people still got a lot of their news from television and radio, and Blackberry and Razr phones were state of the art. These days, 40 percent of Americans use their phones to access government services, and 68 percent of them use phones to keep track of breaking news events…”
• “Social media played a larger role than ever helping FEMA and local organizations communicate to residents during Hurricane Sandy.”
• Robots and drones for search and rescue
Source: http://www.wired.com/2015/08/fema-disaster-tech/
Software is Everywhere: Refugee Crisis
Software is everywhere: Siri saved my life
“Hey Siri, could you call 911 because I’m stuck under a really heavy truck.”
Source: http://www.cnet.com/news/siri-butt-dial-reportedly-saves-teen-trapped-under-truck/#ftag=CAD590a51e
Software is everywhere: games
Software is everywhere: games
“…wireless tracking technology will be embedded in every NFL player’s shoulder pads, and viewers at home can see all that data come to life in the redesigned NFL 2015 app…”Source: http://www.wired.com/2015/08/nfl-players-getting-rfid-chips-season/
Software is everywhere: law enforcement, gangsta rap?
Software is everywhere: college must-haves
Software is everywhere: college must-haves
Software…
• is everywhere• is exciting• is fun• does lots of different things• saves lives• helps people• harms people
Software…
• is everywhere• is exciting• is fun• does lots of different things• saves lives• helps people• harms people
So how is all this software made?
Today’s Lecture
• Course introduction• Getting to know each other• Introduction to software engineering– Software is everywhere– What is software engineering?
What is Software Engineering?
Software –
Engineering -
What is Software Engineering?
Software –
Engineering -
• Code• Documentation, user manuals• Designs, specifications• Test cases• Plans and schedules
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 analysis
Software engineering
• “A broad field that touches upon all aspects of developing and supporting a software system.” [Tsui, Karam, Bernal]
Software engineering
• “A broad field that touches upon all aspects of developing and supporting a software system.” [Tsui, Karam, Bernal]
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]
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]
Software engineering
• “Multi-person construction of multi-version software.” [Parnas]
Software engineering
• “Multi-person construction of multi-version software.” [Parnas]
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]
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]
Software engineering
• “Managing the complexity of both a problem and its solution, to create a software product that successfully solves the problem.” [Navarro]
Software engineering
• “Managing the complexity of both a problem and its solution, to create a software product that successfully solves the problem.” [Navarro]
What is Software Engineering?
Informatics 43:
• The process of constructing software.
• Phases of development other than programming.
• Principles and qualities of enduring value.
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.
What is Software Engineering?
The process of constructing software.
What is Software Engineering?
Phases of development other than programming.
Design:
What is Software Engineering?
Principles and qualities of enduring value.
Correctness!
MODULARITY
ConsistencyEfficiency
Adaptability
Reliability
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 evolves
Essential Characteristics of Software Engineering (II)
• Regular cooperation between people is an integral part of software engineering
• 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 act
Three “Essential Ingredients” of Software Engineering
• People– who else would do the work?
• Processes– to organize and manage the efforts of individuals
• Tools– to support the people and the processes
People• The single most important factor in the success/failure of a product
• Scarce resource– quality– suitability– cost
• Many different kinds of people– managers– programmers– technical writers– …
Processes
• Essential to achieve a quality product
• Scarce resource– quality– suitability– cost
• Many different kinds of processes– bug tracking– change approval– quality assurance– software life cycle
Tools
• Needed to support people and processes
• Scarce resource– quality– suitability– cost
• Many different kinds of tools– drawing– analysis– project management– source code management
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 engineering
Videos
• What is software engineering: https://www.youtube.com/watch?v=ZNMbEbz2dys
• A day in the life of a software engineer: https://www.youtube.com/watch?v=H1zD37rcVSQ
Next Time
• More on “what is software engineering?”• Brooks’ “No Silver Bullet”• Complete assigned readings before Tuesday
Recommended