Human-Centric Software Engineering

Slides:



Advertisements
Similar presentations
 Randy Ribler – Lynchburg College  PhD from Virginia Tech  Postdoc at University of Illinois (UIUC)  Many years of industry experience building systems.
Advertisements

IS 214 Needs Assessment and Evaluation of Information Systems Managing Usability © Copyright 2001 Kevin McBride.
CSCD 555 Research Methods for Computer Science
MIS 470: Information Systems Project Yong Choi School of Business Administration CSU, Bakersfield.
Software Engineering Georges Grinstein Olsen 301E Class materials:
Cooking with CHEF Mark Pearson and Manuel Rendon Ingredients : What is CHEF?  CompreHensive collaborativE Framework  Open source Course Management System.
Creating a Web Presence Introduction to WordPress Week 1.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
COMP 523 DIANE POZEFSKY 19 August CHAOS REIGNS.
Chapter 1: Introduction to Project Management
The Guide to the Software Engineering Body of Knowledge
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
FITT Fostering Interregional Exchange in ICT Technology Transfer Communication & Collaboration Tools.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 26 Delivering the System.
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
CS 4311 Software Design and Implementation Spring 2013.
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
GOOGLE TAG MANAGER. INTRODUCTION Google Tag Manager (GTM) is a free solution, introduced in October Google Tag Manager (GTM) is a free solution,
MSc in Advanced Computer Science Induction 2016/17
COMP 4081: Software Engineering
Water and people in a changing world
IST256 : Applications Programming for Information Systems
Intro to ETGG3801.
Scrum and TargetProcess
COMP/EECE 7012/8012: Foundations of Software Engineering
Welcome to Software Engineering!
CSE 331 Software Design & Implementation
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
COMP 523 Diane pozefsky 24 August 2016.
COMP 7012: Foundations of Software Engineering
Delphi or C++ Builder, with Subversion and Jenkins
Informatics 291S Literature Survey in Software Engineering
^ About the.
Software Engineering (CSI 321)
Introduction to Software Engineering
Tools of Software Development
CSCD 434 Network Security Spring 2012 Lecture 1 Course Overview.
EECE 310 Software Engineering
CSE 331 Software Design & Implementation
11/29/2018 Department of Software Engineering and IT Engineering
System Review – The Forgotten Implementation Step
CSE 403, Software Engineering Lecture 2
CSE 303 Concepts and Tools for Software Development
INFO 344 Web Tools And Development
CSE 331 Software Design & Implementation
Managing References and Citations with EndNote
COMP/EECE 7012: Foundations of Software Engineering
Office: ENGR 530 Phone: Emai:
BIT 115: Introduction To Programming
CSCD 434 Network Security Spring 2019 Lecture 1 Course Overview.
COMP 7012: Foundations of Software Engineering
HU-JRNL 1: Ethics Prof. Vaccaro Jobs, Resumes & Branding
Introduction To CPSC 233 James Tam Event driven software
CS Problem Solving and Object Oriented Programming Spring 2019
CSCI 203: Introduction to Computer Science I
Introduction To CPSC 233 James Tam Event driven software
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
UML Design for an Automated Registration System
Software Engineering.
Product Development & Planning
Presentation transcript:

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? Requirements Analysis Design Implementation Planning Requirements Analysis Design Implementation Deployment Testing Evaluation Initial Planning

Software failures cost $1.1 trillion in 2016 Human error Software failures cost $1.1 trillion in 2016 [Tricentis ’17] This not only affects businesses, but everyday people as well…

The “Software Crisis” Since the 1960s (More like a depression) (Standish Group) Of 28,000 projects completed in 2000… (Cutter Consortium) 2002 Study: 78% of orgs landed in court

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-Centric Software Engineering Devs are people! All bugs are caused by people. Flawed requirements Flawed design Flawed implementation So… how do we solve humans? SE includes writing code, design patterns, program analysis, unit testing, code reviewing, etc… Devs write the code. Design patterns help devs. Program analysis points out problems caused by a dev so that the dev can fix it. Human design, implement, and test the software, and often use it too. Too often the human side of things is completely ignored.

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 We will look into a subset of these…

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

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.

Let’s tour the course web page https://tiny.utk.edu/cosc494