110 likes | 303 Views
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!) :-)
E N D
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 issuesaka Concurrency issues • Shared resources • Support mutually exclusive access • Avoid deadlock between multiple interacting processes/programs. • Avoid starvation or unnecessary delay • Support condition synchronization or asynchronous exec. • Communication -- shared data or message passing • Non-determinism -- Produce consistent results despite interleaving of program instructions by the operating system or the CPU. • Partial failure (in a single CPU context); e.g. a thread is killed • Asynchronous events – interrupts, signals, et al. • The CPU and operating system are shared resources
Multi-program issuesaka Concurrency issues • In general, resource contention impacts responsiveness & scalability. • Security requires defensive interface classes. • Essential to evaluate architecture quality early in development. • Multi-program testing issues • Need for sampling -- Analogy to path testing at multi-program system level • Some components are not possible to modify -- some legacy programs, off-the-shelf components • Can only test at system level what you can verify at system level • Some component interactions are too complex to set up at test driver level
Software Engineering Topics • Requirements engineering -- • requirements, constraints, derived requirements; • specification notation adapted to multi-program system level • Elicitation at system level; at component level • Traceability • Process design • Creation, termination, states • Interprocess communication • User threads vs. kernel threads
Software Engineering Topics(continued) • System Impact • Scheduling and real time scheduling • Memory management • I/O software and file systems • Performance • Security • Design methodology (development process) • Notations for communication among project staff • 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