Topics include task timing, conditional and timed entry calls, the mysteries of the select statement, mutual exclusion, scheduling, race conditions, semaphores, shared variables, anonymous tasks, task types, dynamic task allocation, inter-task communication, rendezvous, task states, task initialization, activation, and termination, subordinate tasks, sibling tasks, and master tasks. In long class, students will design and implement a system that uses Ada tasks. This is not a programming course. It is language independent. The student will learn several models for software engineering.
Course is structured around goals, principles, methods and tools of software engineering.
Student exercises focus on use of project planning, management, design, development, metrics, team building, maintenance, and follow-up. Great emphasis is placed on the methods for accomplishing the requirements definition process. This class has been taught to graduate software engineering students. Students complete a small project using reusable software components. Management issues related to software reuse will be examined.