Part-Time Programs in Engineering and Applied Science, Johns Hopkins University

Foundations of Software Engineering
605.401


Course Description
Fundamental software engineering techniques and methodologies commonly used during software development are studied. Topics include various life cycle models, project planning and estimation, requirements analysis, program design, construction, testing, maintenance and implementation, software measurement, and software quality. Emphasized are structured and object-oriented analysis and design techniques, use of process and data models, modular principles of software design, and a systematic approach to testing and debugging. The importance of problem specification, programming style, periodic reviews, documentation, thorough testing, and ease of maintenance are covered.

Syllabus

  1. Introduction
  2. Requirements Analysis
  3. More Requirements Analysis
  4. Software Design 1
  5. Software Design 2
  6. Software Design 3
  7. Program Design
  8. Mid-term Exam
  9. Testing
  10. More Testing
  11. Coding
  12. Maint/Coding/Integration
  13. Quality Assurance and Traceability
  14. Presentation and Final

Prerequisites
There are no specific prerequisites for this course.

Instructor
Louis Gieszl
is a mathematician at the Johns Hopkins Applied Physics Lab (almost 30 years), where his work ranges from simulation development to group systems use and development. He has a B.S. from the University of Houston, and an M.S. from Rice, University of Maryland, and Hopkins.

E-mail the instructor.

Computer Lab Requirements
A class project will be developed on the APLCENMP Sun/MP Unix.

Textbook
Software Engineering: A Practitioner's Approach by Roger Pressman


Return to Computer Science Courses | Computer Science  | Part-Time Engineering

summer 99-2000