CSCI 362-02 (11:20 AM) fall 2019

Dr. Bowring

The Good Stuff from CofC CS

Syllabus

Course Description with Outcomes

Textbook Student Resources

Class Share

Schedule:

Date in 2019
Topic Readings due

Assignments due this day

by 11:20 AM

Check This Out Team Project Tasks & Milestones due by 11:20 AM
T 20 Aug
Introductions
  11110101111

OpenSource.com

Y Combinator News

TechNews

Internet of Things

Martin Fowler

Tensegrity

David Schirduan

Joye to the World

H/FOSS

Read this:

Team Term Project Specifications

 

R 22 Aug Overview of Software Engineering

Why SE Blogging?

Chapter 1

No Silver Bullet

Kode Vicious

Google Code Repo

HW0: Create your blog and blog to introduce yourself. Create a GitHub account.

Blog SubTitle = "HW0: Introduction"

Make linked entry on class share to your blog and github account.

HW1: Ex 1.3, 1.8, 1.9, 1.10

Blog SubTitle = "HW1: Chapter 1"

Learn Git

Git videos (short):
What is VC,
What is Git,
Start Git,
Win with Git

Unit Testing Checklist

Form Teams - submit contact info including GitHub account names - via email to bowringj@cofc.edu: names, emails, github account names, etc.; Team names?


Team Exercise
Testing Triangle Program : Test Case Definition

Get familiar with Ubuntu, Git, GitHub, Slack, and VirtualBox

Learn about scripts, beginner bash, advanced bash.

T 27 Aug
Ethical Issues in Software Engineering

Dependable Systems

ACM Code of Ethics


ACM SE Code of Ethics


Making SE more Ethical

Engineering Ethics

Chapter 10

HW2: 500+ word response to No Silver Bullet, Kode Vicious, and Google Code Repo taken together - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW2: Responses"

HW3: Ex 10.6, 10.10 with reference to SE Code of Ethics

Blog SubTitle = "HW3: Chapter 10"

Charleston Digital Corridor

Customize Team repository at GitHub.com.

Create Team Wiki in your team GitHub repository. Use the wiki to document your team and your project, including a timeline. Place a link to your team's github repository on the class share.

Learn about scripts, beginner bash, advanced bash.

R 29

Aug

Reliability and Safety Engineering

Therac-25 Accidents


2010 Radiation Follies


FBI Auto Warning

Chapter 11

Chapter 12

HW4: Ex 11.4, 11.7, 11.9, 12.5

Blog SubTitle = "HW4: Chapters 11 & 12"

37 Epic Software Failures

11 Most Costly Software Errors in History

TERM TEAM PROJECT:

Team Term Project Specifications

Task: Evaluate H/FOSS projects and select 1st, 2nd, 3rd candidates. See Deliverable #1 for criteria. Be sure that the code base is designed to compile and run on Linux (no Windows-only projects).

Report: Document your work on the team wiki. Bring these candidates to class and be prepared to summarize why you chose each one.

Note: Each team will make their choice by the end of this class.

NOTE: You are required to use GitHub team repository to store and track your team deliverables and for your team wiki.

T 03 Sep
Security and Resilience Engineering

Spacecraft Accidents


FBI Fiasco 2005
FBI Fiasco 2010
FBI Success 2012 FBI NotDone 2014

Why Software Projects Fail

Chapter 13

Chapter 14


HW5: 500+ word response to all readings from 29 Aug and 3 Sep including Chapters 13 and 14 - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW5: Reflections"

More Software Failures

Planning for Failure

Team Exercise:

All team projects will be built using an open source unix operating system such as Ubuntu. Your first project is to collaborate as a team using the github repository to write a script myList.[script extension] for Unix that lists the top-level directory contents of its containing directory in an html file displayed in a browser. Post a link to your code in your team wiki along with example outputs. Demo in class today - be sure you have a laptop and required cables.

R 05 Sep Requirements Engineering

Magical Number 7


Tire Pressure Monitoring System

Spy Car Act of 2015


Test-Driven Development

Chapter 4

HW6: Ex 4.5, 4.6, 4.7

Blog SubTitle = "HW6: Chapter 4"

HW7: response to all today's readings - find common concerns in the articles and reflect upon them.

Blog SubTitle = "HW7: Reflections"

Meter Reader Hacks

Hacked Home

Keep Out

 

T 10 Sept

Software Processes

 

Chapter 2


Rapid Development Ch 7

The Future of Programming

HW8: Ex 2.1

Blog SubTitle = "HW8: Chapter 2"

HW9: 500+ word essay on where you think programming and software engineering are headed; do you agree with the Future of Programming - why or why not?

Blog SubTitle = "HW9: Reflections"

Hackathons

Corporate Hackathons

 

R 12 Sep

System Modeling

Team Presentations - work in progress

Chapter 5

HW10: Ex 5.3, 5.5, 5.7, 5.8

Blog SubTitle = "HW10: Chapter 5"

 

DELIVERABLE #1:
Task: Checkout or clone project from its repository and build it - if you do not know how to compile the code, ask! Run existing tests and collect results. Evaluate experience and project so far.

Report: This is Chapter 1 of your Final Report. Report on your chosen project and your experiences executing the task above. Document progress on wiki.

Due: [team-name]_deliverable1.PDF in team's GitHub repository

T 17 Sep

Architectural Design

Chapter 6

HW11: Ex 6.4

Blog SubTitle = "HW11: Chapter 6"

 

 

R 19 Sep Agile Software Development

Chapter 3
Ch 1 - 4 of: Mythical Man Month


Agile Manifesto
Agile Methods

HW12: 500+ word response to MMM(1-4)

Blog SubTitle = "HW12: Mythical Man Month"

Why Agile Isn't Working

 

T 24 Sep

Software Testing

 

Chapter 8


Intro to Testing

HW13: Ex 8.7, 8.10

Blog SubTitle = "HW13: Chapter 8"

HW14: Blog reflections on readings.

Blog SubTitle = "HW14: Testing Reflections"

Software Analysis

Mutation Testing

 

R 26 Sep TEST #1
T 01 Oct

Guest Speaker: Joey Baldwin, Software Developer @ Movi Healthcare: 5 Years in Software

Software Reuse

Team Presentations - work in progress

Chapter 15

HW15: Ex 15.10

Blog SubTitle = "HW15: Chapter 15"

Making Reuse Work

DELIVERABLE #2:


Task: Produce a detailed test plan (see p. 217 text) for your project. As part of this plan, you will specify at least 5 of the eventual 25 test cases that you will develop for this software.

Report: This is Chapter 2 of your Final Report. Report on your experiences and provide the details produced in the task above. These details should also include detailed specifications of your test plan and at least 5 of the eventual 25 test cases. Document progress on wiki.

Due: [team-name]_deliverable2.PDF in team's GitHub repository. Be ready to present your testplan in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

R 03 Oct Software Evolution Chapter 9
Legacy Systems

HW16: Ex 9.8, 9.10
Blog SubTitle = "HW16: Chapter 9"

T 08 Oct Component-Based Software Engineering
Chapter 16

HW17-A: Ex 16.9

Blog SubTitle = "HW17-A: Chapter 16"

 

R 10 Oct

Distributed Software Engineering

Chapter 17

HW17-B: Ex 17.10

Blog SubTitle = "HW17-B: Chapter 17"

 

 

T 15 Oct

F A L L B R E A K
R 17 Oct Service-Oriented Architecture
Chapter 18

HW18: Ex 18.4
Blog SubTitle = "HW18: Chapter 18"

   
T 22 Oct Systems Engineering
Chapter 19

HW19: Ex 19.3
Blog SubTitle = "HW19: Chapter 19"

 

R 24 Oct Systems of Systems Chapter 20 HW20: Ex 20.10
Blog SubTitle = "HW20: Chapter 20"
T 29 Oct

 

Team Presentations - work in progress


 

 

HW21: Blog reflections on team progress.

Blog SubTitle ="HW21: Team Progress I"

DELIVERABLE #3:

Preparation: For those teams that have been instructed to re-work their test plans, do so and resubmit with this deliverable.

Task: Design and build an automated testing framework that you will use to implement your test plan per the Project Specifications document.

Report: This is Chapter 3 of your Final Report. Report on your experiences and provide the details produced in the task above. These details should also include an architectural description of your framework, full how-to documentation, a set of at least 5 of the eventual 25 test cases. Document progress on wiki.

Due: [team-name]_deliverable3.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

R 31 Oct Real-time Software Engineering Chapter 21 HW22: Ex 21.4
Blog SubTitle = "HW22: Chapter 21"
 

 

T 05 Nov Project Management
Chapter 22

HW23: Ex 22.6
Blog SubTitle = "HW23: Chapter 22"

Software Mag  
R 07 Nov Project Planning Chapter 23 HW24: Ex 23.6
Blog SubTitle = "HW24: Chapter 23"
   
T 12 Nov Team Presentations - work in progress

HW25: Blog reflections on team progress.

Blog SubTitle = "HW25:Team Progress II"

 

DELIVERABLE #4:

Preparation: Make changes as directed.

Task: Complete the design and implementation of your testing framework as specified in Deliverable #3. You are now ready to test your project in earnest. You will create 25 test cases that your framework will automatically use to test your H/FOSS project.

Report: This is Chapter 4 of your Final Report. Report on your experiences and provide the details produced in the task above. This is your opportunity to get your report organized into a professional-quality deliverable. Document progress on wiki.

Due: [team-name]_deliverable4.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

 

R 14 Nov Quality Management Chapter 24 HW26: Ex 24.6
Blog SubTitle = "HW26: Chapter 24"
 


T 19 Nov

Configuration Management

Chapter 25 HW27: Ex 25.10
Blog SubTitle = "HW27: Chapter 25"

Deliverable #5:

Task: Design and inject 5 faults into the code you are testing that will cause at least 5 tests to fail, but hopefully not all tests to fail. Exercise your framework and analyze the results.

Report: This is Chapter 5 of your Final Report. You will provide a detailed description of exactly what you changed in the code so that I can duplicate the faults and get the same results you do. Identify the tests you are planning to have fail. Report on your experiences and lessons learned. Document progress on wiki.

Due: [team-name]_deliverable5.PDF in team's GitHub repository; Be ready to demonstrate your framework in class.

Note: As you are incrementally building a coherent Final Report with each deliverable as a chapter, you may submit the completed document-to-date with the above-specified name.

R 21 Nov Team Project Presentations   Final Report
T 26 Nov Team Project Presentations    
R 28 Nov T H A N K S G I V I N G
T 10 Dec FINAL: 8:00 AM- 11:00 AM
Tues 10 Dec 6 PM: PDF of BLOG as [lastName]_Blog.PDF; email to bowringj@cofc.edu subject CSCI362