CSSE 492 – Software Dependability

Computer Science and Software Engineering

Seattle University

Winter 2007

 

 

Instructor: Dr. Roshanak Roshandel

Time: T TH 1:30-3:35

Office Hours: T TH 12:15-1:15 pm, Th 5:00-6:00 pm, or by appointment

Office: Enrg 507

Phone: (206) 296-5512

 

Overview

Software fails way too often and recovering from failures takes way too long. With today’s large and complex distributed software systems, building and maintaining dependable software systems is becoming more and more challenging. Dependability is no longer solely a property of mission critical systems. Instead any company needs to ensure dependability of its software systems in order to remain competitive. For too long, dependability attributes such as reliability, availability, performance, safety and security have been treated as an afterthought. However, such an attitude is proving tremendously costly and ineffective. Dependability must be built into the software engineering lifecycle. Such a treatment requires techniques and approaches to planning, specification, modeling, analysis, assessment, and tracking these properties throughout the development life cycle. In this class, we offer an overview of the state of the art and practice in software dependability.

 

Course Objectives

The students after this course:

·           will have a broad understanding and a general knowledge on various principles of software dependability

·           will be able to perform analysis and apply these principles in various phases of software development

 

Project

·           Project Description

 

Resources

·                     Association of Computing Machinery (ACM) Digital Library

·                     IEEE Computer Society Digital Library

·                     International Conference on Software Engineering 2000 - Future of SE Track: Limerick, Ireland

·                     Eclipse 3.2.1 for Windows – An open-source development framework

·                     EASEL – Extensible Architecting Support Environment with Layers      

·                     xADL 2.0 – Highly Extensible Architecture Description Language for Software and Systems

·                     ArchStudio 4 – Software and System Architecture Development Environment

 

 

Schedule (Subject to Change)

 

 

Date

Topics

Readings

Assignments

W1

Thursday 1/4/2007

Introduction and Overview

 

Project Discussion

 

Peter G. Neumann, Risks to the public, ACM SIGSOFT Software Engineering Notes, Volume 31 , Issue 5, September 2006.

 

Jim Gray, Distributed Computing Economics, Microsoft Research Technical Report, 2003.

 

 

W2

Tuesday 1/9/2007

Software Dependability

·      Technical sources of the problem

·      Human sources of the problem

·      Current state of the field

F. P. Brooks, Jr. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer, April 1987.

 

Candea and A. Fox, Crash-Only Software, Proc. 9th Workshop on Hot Topics in Operating Systems, May 2003

 

Thursday 1/11/2007

 

Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, Proc. 4th Symposium on Operating System Design and Implementation, October 2000

 Assignment 1 due

W3

Tuesday 1/16/2007

Reliability & Fault Tolerance

·         Introduction to Reliability and Safety

·         System Reliability Estimation and Prediction

B. Littlewood, L. Strigin, Software reliability and dependability: a roadmap, International Conference on Software Engineering, 2000.    

 

 

 

Thursday 1/18/2007

·          Software Reliability Modeling

·         Project Discussion

 

Roshandel et. al, Estimating software component reliability by leveraging architectural models, Proceeding of the 28th international conference on Software engineering, 2006.

 

W4

Tuesday 1/23/2007

·          Software Reliability Modeling

 

 Paper 1 due

Thursday 1/25/2007

DLS: 1/24/2007

Robert Musson – Microsoft

Predicting Quality in Software Development

W5

Tuesday 1/30/2007

Safety

·      Data Safety

·      Case studies

R. Lutz, Software engineering for safety: a roadmap, International Conference on Software Engineering, 2000.    

 DLS Reflection due

Thursday 2/1/2007

Performance’

·        Queuing Models

 

 

 

 

R. Pooley, Software engineering and performance: a roadmap, International Conference on Software Engineering, 2000.    

 

Project assignment due

W6

Tuesday 2/6/2007

Security and Privacy

·      Cryptography

 

J. Buchmann, A. May, U. Vollmer,  Perspectives for cryptographic long-term security, Communications of the ACM, Privacy and security in highly dynamic systems, Volume 49,  Issue 9, 2006.

 

Thursday 2/8/2007

 

DLS: 2/7/2007

Jeff Lowder – Disney

Software Security

 

W7

Tuesday 2/13/2007

 

Building Security In

 

Cryptography Concepts

 

Common Vulnerabilities

 

J. Boegh, Certifying software component attributes, IEEE Software,  Volume 23,  Issue 3,  May-June 2006

 

 

DLS Reflection due

Thursday 2/15/2007

 L. J. Hoffman, K. Lawson-Jenkins, J. Blum, Trust beyond security: an expanded trust, Communications of the ACM Volume 49, Issue 7, July 2006.

Paper 2 due

W8

Tuesday 2/20/2007

 

Writing Secure Code

 

Dependability and requirements

·      ElderHealth

 

S. Jones et. al., Trust requirements in e-business, Communications of the ACM,Volume 43, Issue 12  December 2000.

Project assignment due

 

Presentation Summary due

 

Quiz

Thursday 2/22/2007

 

 DLS: 2/21/2007

Mario Garzia – Microsoft

Software Reliability

 

 

W9

Tuesday 2/27/2007

Dependability and design

 

Threat Modeling

 

 R. de Lemos, P.A. de Castro Guerra, C.M.F. Rubira, A fault-tolerant architectural approach for dependable systems, IEEE Software,  Volume 23,  Issue 2,  March-April 2006.

 

DLS Reflection due

Thursday 3/1/2007

 Dependability and implementation

·      Verification

·      Writing Secure Code

Dependability and testing

Evolution Issues

 

 

 

 Paper 3 due

 

W10

Tuesday 3/6/2007

Review for Final exam

Student Presentations

Thursday 3/8/2007

DLS: 3/7/2007

TBD

 

Tuesday 3/13/2007

Final Exam

2:00-3:50 pm

 

 

 

Course Requirements

 

Class project: This will be a group project and is designed in multiple phases. You will be using existing open source research tools to implement analysis tools for several dependability attributes. We will discuss this in detail in class.

 

Readings: There is no text book for this class. We will cover a variety of topics using papers and lectures. You are expected to read each reading and be prepared to discuss the content in class.

 

Mini-quizzes: There will be several mini-quizzes (one question, 5 minutes long) at the beginning of the class. The aim is to ensure that you have read the readings.

 

Presentations: Each student will be presenting a 30 minute presentations during the class. The topic of the presentation is based on the course topics and assigned readings. However, you are required to perform additional research on the topic. The goal of these presentations is to familiarize you with the process of researching topics, presenting ideas, and leading discussions in the classroom. We will discuss important presentation skills in class early during the quarter.

 

Papers: There will be several papers that pose a topic related to the ongoing class discussion. You are to answer the question by researching the topic and write a paper. You will need to demonstrate an in-depth  understanding of the assigned topic, along with good technical writing. The topic will be based on the readings and material covered in class.

 

I encourage you to discuss the readings with your classmates. However, you may not discuss the topic of your paper until after you turn it in.  The papers are supposed to only reflect your personal understanding of the topic, and a violation of this will be treated as the violation of the university’s honor code.

 

You should submit your papers electronically to roshanak@seattleu.edu before the start of the class on the due date.  No late submission will be accepted. We will discuss the (interesting) papers during the following week in class.

 

Final exam: The final exam (given during the regular final exam schedule) will be testing for you the concepts covered in the class.

 

Grading

 

·            Mini-quizzes: 10%

·            One-page papers: 20%

·            Class project: 30%

·            Class participation: 10%

·           Presentations 10%

·            Final exam: 20%

 

 

Academic Integrity

Plagiarism is the unacknowledged use of the work or intellectual property of other persons, published or unpublished, presented as one’s own work. All students are expected to work on all individual assignments independently. Collaboration on individual assignments is considered cheating and will be penalized accordingly. Other examples of behavior that is not tolerated in this class include copying all or part of someone else’s work and submitting it as your own, sharing your assignment solution with other students in the class, consulting with another student during an exam, and copying text from published literature without proper attribution. If you have questions about what is allowed, please discuss it with the instructor. All students are responsible for reading and following the Seattle University Academic Honesty Policy. Students who violate University standards of academic honesty are subject to disciplinary sanctions, including failure in the course and suspension from the University.

 

 

 

This is a personal WEB site developed and maintained by an individual and not by Seattle University. The content and link(s) provided on this site do not represent or reflect the view(s) of Seattle University. The individual who authored this site is solely responsible for the site's content. This site and its author are subject to applicable University policies including the Computer Acceptable Use Policy (www.seattleu.edu/policies).