310 likes | 321 Vues
Discover what Software Engineering is, learn about human-centric SE, topics covered, and what you can gain from the course. Explore real-world knowledge to enhance your development skills and prepare for the job market.
E N D
Human-Centric Software Engineering COSC 494/594, Spring 2019, Dr. Austin Henley
Today… • My experience with SE • What is SE? What is human-centric SE? • What topics will we cover? • What will you get out of this? • Course structure
Today… • My experience with SE • What is SE? What is human-centric SE? • What topics will we cover? • What will you get out of this? • Course structure
My SE experience • In undergrad, I made $$$ by making games
My SE experience • In grad school, I did 5 internships
My research • Tools to make software engineers more productive
My research • Tools to make software engineers more productive If you’re interested, I’m hiring PhD students…
Survey! What are your experiences? • Internships? • Full-time jobs lined up? • Have you made $$$ off anything you’ve built?
Today… • My experience with SE • What is SE? What is human-centric SE? • What topics will we cover? • What will you get out of this? • Course structure
What is Software Engineering? • Software engineering is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. • IEEE’s definition
What does SE consist of? Requirements Design Implementation Verification Maintenance
What does SE consist of? Analysis Requirements Design InitialPlanning Implementation Planning Testing Evaluation Deployment
Human error [Tricentis ’17] Software failures cost $1.1 trillion in 2016
The “Software Crisis” Since the 1960s (More like a depression) Of 28,000 projectscompleted in 2000… 2002 Study: 78% of orgs landed in court (Cutter Consortium) (Standish Group)
Although stats improving, challenges remain… More headlines (Oct 2013–Aug 2014) • Tech Problems Plague First Day Of Health Exchange Rollout • Health Exchange Tech Problems Point To A Thornier Issue • It's Easy To Blame The Canadians For HealthCare.gov Problems • Sebelius: Hold Me Accountable For HealthCare.gov Debacle • Add Security To The List Of HealthCare.gov Tech Issues • Oregon's State Exchange May Be Worse Than HealthCare.gov • Could A Tech Giant Build A Better Health Exchange? Maybe Not • Official In Charge Of Creating HealthCare.gov Steps Down • Giving Up On Its Obamacare Exchange No Cure For Oregon's Ills • Oregon Sues Oracle For "Abysmal" Healthcare Website ( ) ( )
You can help save the world! • Anecdotal experience: • New grad? West coast tech will pay $150k salary/stock • Masters degree? Expect around $200k
Human-CentricSoftware Engineering • Devs are people! • All bugs are caused by people. • Flawed requirements • Flawed design • Flawed implementation • So… how do we solve humans?
Today… • My experience with SE • What is SE? • What topics will we cover? • What will you get out of this? • Course structure
Broadly… • Understanding developer behavior • Tools to make developers more productive • Evaluating tools
Example topics • Productivity • Code editors • Debugging • Program comprehension • Version control • Continuous integration • Documentation • API usability • Code reviewing • Collaboration • Software testing • Software metrics • Refactoring • Program analysis • Usability of tools • End-user programming • Visual languages
Today… • My experience with SE • What is SE? • What topics will we cover? • What will you get out of this? • Course structure
Real-world knowledge • State of the practice on dev tools • State of the research on human aspects of dev • Goal: make you a better developer & get that job http://flic.kr/p/9DTDXi
Today… • My experience with SE • What is SE? • What topics will we cover? • What will you get out of this? • Course structure
Course Structure • Presentations • Participation • Project • No exams • Few lectures • How to evaluate dev tools? • How to comprehend a large codebase?
Participation • Class time is based around discussions • Everyone should contribute • You’ll be graded on it! • Discussions will be led a student • Occasional in-class activities • Competition: fix a small bug as fast as possible • Give feedback on each other’s project • May require some effort outside of class (install a tool)
Presentations • Everyone will regularly present • 10-15 minutes • Demo a tool or present a paper • Each week will have a theme • You have some choice in what you present • Based on how many people enrolled… • 1 paper presentation and 2 tool demos • If you aren’t presenting… at least skim the papers!
Who and what gets presented? • Each Friday you can volunteer to present next week • I’ll decide the topic and papers • You can decide which tools to demo for the topic • I’ll provide templates
Example weeks • Monday: 2 paper presentations and discussions • Wed: 3 tool demos and discussions • Fri: 2 tool demos & decide who will present next week • Monday: lecture and activity • Wed: 3 tool demos and discussions • Fri: 2 tool demos & decide who will present next week
Project • Design, implement, and evaluate a dev tool • More details to come…
This course is your oyster • Have an interest in a topic? • Want to try an activity in-class? • Prepping for the job market? Let me know! I might fit it in. This class is meant to benefit you.