Preparation for the Final Exam -- Weaving the threads together ECEN5043 Software Engineering of Multi-Program Systems University of Colorado, Boulder
Basic constraints You should bring: –paper for writing the exam (and something to write with!) :-) –you may bring a laptop computer for writing the essay. Texts –Notes and any ECEN5043 web site handouts you want These may be electronic but you should not access homework (graded or otherwise) or go to other sources during the exam. –A calculator in case there is an RMA problem –A means of telling time and noting the halfway point... :-)) You should NOT bring -- homework, any other web-accessible device Final exam sessions are 2.5 hrs One part will be essay -- we’ll look at samples today The other part will be based on homework assignments
Help availability Students taking the test on campus -- –Exam is Tuesday, May 8, 4:30 p.m. – 7:00 p.m. in the Circuits Lab, ECEE 275 –Extended office hours: Monday, May 7, 2:00 to 4:00 p.m. Tuesday, May 8, 10:00 – 11:30 a.m. By appointment, if needed. Students taking the test off-campus with a proctor –I will be available for extended office hours and web site discussion-thread help up to the morning before the exam. –I will give you phone numbers where you can reach me if you have questions while you are taking the exam.
If you are a distance student... and you are planning to take the exam on-campus. –Tell me so that I do not send a copy of the exam to your educational officer
Multi-program issues aka Concurrency issues 1.Shared resources a.Support mutually exclusive access b.Avoid deadlock between multiple interacting processes/programs. c.Avoid starvation or unnecessary delay 2.Support condition synchronization or asynchronous exec. 3.Communication -- shared data or message passing 4.Non-determinism -- Produce consistent results despite interleaving of program instructions by the operating system or the CPU. 5.Partial failure (in a single CPU context); e.g. a thread is killed 6.Asynchronous events – interrupts, signals, et al. 7.The CPU and operating system are shared resources
Multi-program issues aka Concurrency issues 8.In general, resource contention impacts responsiveness & scalability. 9. Security requires defensive interface classes. 10.Essential to evaluate architecture quality early in development. 11.Multi-program testing issues 8.Need for sampling -- Analogy to path testing at multi- program system level 9.Some components are not possible to modify -- some legacy programs, off-the-shelf components 10.Can only test at system level what you can verify at system level 11.Some component interactions are too complex to set up at test driver level
Software Engineering Topics a.Requirements engineering -- requirements, constraints, derived requirements; specification notation adapted to multi-program system level Elicitation at system level; at component level Traceability b.Process design Creation, termination, states Interprocess communication User threads vs. kernel threads
Software Engineering Topics (continued) c.System Impact Scheduling and real time scheduling Memory management I/O software and file systems d.Performance e.Security f.Design methodology (development process) g.Notations for communication among project staff h.Testing – static testing test planning of dynamic testing testing interactions at different levels of integration
Sample essay question Pick a topic from the Issues list. For example: –“In a multi-program system, programs/components may be a combination of new, legacy, and off-the-shelf programs.” What considerations does that introduce in sw engineering areas? –Requirements: elicitation, specification notation, traceability –Design: security, performance, process communication, synchronization & scheduling, memory management, file management, i/o, inter-team communication, intra-team communication –Testing: kinds of testing; managing the complexity
Another sample essay question Pick a topic from the Issues list. For example: –“In a multi-program system, some of the programs share a resource.” What considerations does that introduce in sw engineering areas? –Requirements: elicitation, specification notation, traceability –Design: security, performance, process communication, synchronization & scheduling, memory management, file management, i/o, inter-team communication, intra-team communication –Testing: kinds of testing; managing the complexity
Yet another sample essay question Pick a topic from the Issues list. For example: –“ In general, resource contention impacts responsiveness & scalability.” What considerations does that introduce in sw engineering areas? –Requirements: elicitation, specification notation, traceability –Design: security, performance, process communication, synchronization & scheduling, memory management, file management, i/o, inter-team communication, intra-team communication –Testing: kinds of testing; managing the complexity