To get familiar with methods for doing (large?) projects in
collaborative mode with special emphasis on software development.
We plan to cover: design, analysis and modeling; software requirement
analysis and detailed specifications; design documentation; standard
software development tools; testing; report.
The tools that we plan to cover include:
Standard Unix utilities.
Latex
gcc/g++ - the C pre-processor, header files, #defines; object
files, linking, static and run-time libraries; Makefile.
using and creating libraries, ar and ranlib.
Object oriented style, classes, namespaces etc.
CVS and version control.
debugging and profiling tools
macros and in-line code, loop transformations and un-rolling,
speed-up issues.
Documentation tools like Doxygen.
auto-configuration, Makefile generation and porting issues.
The class will be required to do one or two common projects and one open
project (in groups of three or four). The students are
encouraged to select a topic for their open project in consultation
with faculty and/or Ph. D. and other senior students.
We may also do case studies of one or two large projects.
Design and implement a software package for Engineering drawing.
The package should have the following functionalities:
We should be able to interactively input either i) an isometric
drawing and a 3D object model or ii) projections on to any
cross section.
Given the 3D model description we should be able to generate
projections on to any cross section or cutting plane.
Given one or more projections we should be able to interactively
recover the 3D description and produce an isometric drawing from
any view direction.
Step I: Modeling and analysis
Work out a mathematical model for the problem. Figure out how many
views are necessary? how many are sufficient? How can
one compute projections given the 3D description? How can one
compute the 3D description given one or more projections? What
interactions are necessary?
Define the problem more precisely and submit a report by Aug 17.
Step II: Software requirement specification
Step III: Software design document
Step IV: Implementation and software documentation
Step V: Testing and fine tuning
Step VI: Report
Common project II
Subhashis Banerjee / Dept. Computer Science and Engineering / IIT Delhi /
Hauz Khas/ New Delhi 110016