CMSC 838P Spring 2004
Software Engineering: Remote Analysis and Measurement of Software Systems
Instructor Adam Porter
CSI 2120 TuTh 9:30pm-10:45pm
Class requirements will primarily be a mid-term, a final, active class participation (including at least one presentation), and a
research project. The results of the research project will be captured in a
This course will count towards the various comprehensive exam requirements. There will be a midterm, a final, and a term paper/project.
I will not assume (nor require) that students have a background in software engineering before taking this class.
Click here for weekly Reading Assignments
Click here for instructions on writing and submitting reviews for each reading assignment
Click here for reading schedule.
Dynamic analyses, such as testing, performance monitoring, and usage profiling, play a keyrole in state-of-art approaches to software development and quality assurance. With rare exception, these analyses are performed in-house, on developer platforms, using developer-provided input workloads. A benefit of in-house analyses is that programs can be instrumented and analyzed at very fine levels of detail since the developers have unrestricted access to the software. The shortcomings are severe, however, including:
The situation has only worsened with the growth of the Internet and the emergence of ubiquitous computing. First, the widespread use of computer systems has caused a dramatic increase in the demand for software, forcing many companies to shorten their software development time and to release software without performing adequate analysis and testing. Second, many of today's software products are run in very complicated and varying environments, and it is often impractical to analyze and test these software products under all possible runtime environments and configurations before releasing them.
There is a need to develop techniques and tools to bridge the existing gap between the way software is analyzed in-house and the way it is used in the field. We believe that those techniques and tools will save a great deal of time, effort, and resources throughout the software industry.
Consequently, we will explore how to achieve the following objectives:
This course will be logically divided into two, roughly-equal, sections.
This course will count towards the various comprehensive exam requirements. There will be a midterm, a final, and a term paper/project.-