Learning Software Industry Practices with Open Source and Free Software Tools

Learning Software Industry Practices with Open Source and Free Software Tools

Jagadeesh Nandigam (Grand Valley State University, USA) and Venkat N. Gudivada (Marshall University, USA)
DOI: 10.4018/978-1-4666-7230-7.ch048
OnDemand PDF Download:
No Current Special Offers


This chapter describes a pragmatic approach to using open source and free software tools as valuable resources to affect learning of software industry practices using iterative and incremental development methods. The authors discuss how the above resources are used in teaching undergraduate Software Engineering (SE) courses. More specifically, they illustrate iterative and incremental development, documenting software requirements, version control and source code management, coding standards compliance, design visualization, software testing, software metrics, release deliverables, software engineering ethics, and professional practices. The authors also present how they positioned the activities of this course to qualify it for writing intensive designation. End of semester course evaluations and anecdotal evidence indicate that the proposed approach is effective in educating students in software industry practices.
Chapter Preview

Software Engineering Course

Our undergraduate SE course includes a semester-long (about 14 weeks) software development project to provide students hands-on experience with processes, methods, techniques, and tools of software development. The course first provides the necessary theoretical foundation for a broad range of topics – software engineering process models, project management, software requirements elicitation and specification, use case modeling, UML, object-oriented analysis and design, design patterns, test-driven development, version control, system building, software testing, mock object frameworks, software maintenance, software internationalization, SE ethics, and writing skills. Though the topics are quite a few, very focused and conceptually oriented lectures make this task possible. Students gain practical aspects of these topics by working on a realistic project in a team environment.

Students begin the course by writing a short formal paper on a SE ethics topic. The semester-long project involves development of a software product using an iterative and incremental development model. Students use Eclipse IDE (n.d.), and several free and open source tools and plugins available for the Eclipse IDE. The product is delivered incrementally in three releases with each release taking roughly 4 weeks of effort. The course also includes a midterm, a final exam, and several quizzes as part of formative and summative assessments. The weight distribution of various components in the course is: term paper (10%), ethics writing assignment (5%), term project (30%), midterm exam (20%), final exam (25%), and quizzes (10%).

Complete Chapter List

Search this Book: