Software Engineering: Theory and Practice
Shari Pfleeger & Joanne Atlee
ISBN 0131469134
 

Enterprise Application Development
with Visual C++ 2005
Max Fomitchev
ISBN 1584503920

 

CSE483W: Software Design Methods
Dr. Max I. Fomitchev
Assistant Professor of Computer Science & Engineering
111J IST, Pennsylvania State University, University Park, PA 16803
Email: fomitchev@psu.edu · Phone: (814) 235-9785

Syllabus
doc · Blue Book Description
Philosophy
Learn software engineering by doing: IST lab 117 has been setup for teaching this class in a more hands-on format. Students are expected to spend a bulk of the time working on a team project in a team environment using Microsoft Visual Studio Team System and Team Foundation Server.

The class navigates through all stages of software engineering from requirement gathering, to writing specification, to program design, to coding, to testing, and finally to deployment focusing on rapid application development (RAD) based on modified agile methodology.

Students are also given individual projects for which they must produced a complete software requirement specification: this means that the software has to be thought out in minuscule detail but not coded.

All students are expected to produce a report on current software-development related topic (e.g. software development tool, methodology, technology, industry standard, etc.) and present it to the class.

Prerequisites
CSE 465, ENGL 202C, C++
Past and Current Projects
Spring 2007: Parallel Gravitational N-Body Simulation using MPI and Treecode algorithm
Spring 2008: Secure Biometric Authentication using fingerprints and BioLink SDK
Class Topics
  • Introduction
  • What is Software Engineering? Who Is Involved?
  • Software Systems, Software Lifecycle
  • CASE Tools, Visual Studio, TFS
  • Planning, Keeping Track of Progress
  • Requirements: Gathering, Analyzing Requirements
  • Requirements: Verification, Validation, Specification Lang.
  • Process Modeling, UML
  • Data Modeling, SQL
  • Design: Client-Server, 3-Tier
  • Design: Services, Web Services, XML
  • Design: Scalability, Parallel vs. Serial
  • TEST 1
  • Open Source
  • Objects: OOP
  • Objects: OOD
  • Coding Standard, Best Practices
  • Mid-Term Exam
  • Methodologies: Agile, Extreme
  • Methodologies: Clean Room
  • Testing: Unit Testing
  • Testing: Integration Testing
  • Testing: Acceptance Testing
  • TEST 2
  • Deployment
  • Maintenance
  • Software and Process Evaluation
  • Migration (Transfer), Decision Making, Certification
  • FINAL EXAM
Lecture Notes (PowerPoint)
  1. Introduction into Software Engineering
  2. Software Lifecycle
  3. Planning and Managing
  4. Requirements
  5. Design
  6. Improving Design
  7. Objects
  8. Data Design Rules
  9. Coding Standard
  10. Testing
  11. Integration Testing
  12. System Testing
  13. Maintaining the System
  14. Team Project (N-Body)
  15. Individual Project Template (doc)
Grading Policy
Attendance 20% (each class worth 1%)
Test 1 10%
Test 2 10%
Report 10%
Assignments 10%
Team Project 20%
Individual Project 10%
Mid-Term Exam 10%
Letter Grades
A 95-100%
A- 90-94%
B+ 87-89%
B 83-86%
B- 80-82%
C+ 76-79%
C 70-75%
D 60-69%
F 0-59%