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
- Introduction
- Requirements Analysis
- More Requirements Analysis
- Software Design 1
- Software Design 2
- Software Design 3
- Program Design
- Mid-term Exam
- Testing
- More Testing
- Coding
- Maint/Coding/Integration
- Quality Assurance and Traceability
- 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