NAME: ________________________________ (Please PRINT) ----------------------- CEN 5035 - Software Engineering ---------------------Exam 1 -- Spring 2008 You have 90 minutes to work on this closed-book/closed-notes test. Please pay attention to point values since you may not have time to complete all 21 problems. PLEASE PRINT ALL ANSWERS IN THE SPACE PROVIDED ONLY. Print your name above NOW and sign the pledge at the end of the test WHEN YOU FINISH. 1. (3 pts.) Sommerville argues that software engineering in the 21st century faces three key challenges. One of these is the heterogeneity challenge – building dependable software that is flexible enough to operate as distributed systems across networks that include different types of computers and with different kinds of support systems. Briefly describe one of the other two key challenges he identifies. 2. (3 pts.) One of the issues of professional and ethical responsibility for software engineers discussed in class was that of "competence". Which one of the following best describes the issue as discussed? (Circle ONE only.) a. Software engineers should participate in lifelong learning regarding the practice of their profession. b. Software engineers should always act in a manner that is consistent with the public interest. c. Software engineers should not misrepresent their level of competence or knowingly accept work which is outside their competence. d. Software engineers must never use their computer skills to take advantage of inexperienced or incompetent clients. e. Software engineers should strive to remain competent in all areas of software engineering if they are to be respected as professionals. 3. (4 pts.) Briefly describe the main structural differences between the waterfall and evolutionary development process models. 2 4. a. (2 pts.) What, according to Sommerville, are the advantages of the waterfall model? b. (2 pts.) What is its major problem? 5. (8 pts.) Match each description below to the SINGLE MOST APPROPRIATE TERM among the following. (Note: terms may apply to none, one, or more than one description.) A. B. C. D. E. Boehm’s spiral development Throw-away prototyping Mills’ incremental development Reuse-based development Volere F. G. H. I. J. RUP Exploratory development Extreme programming Waterfall model Cleanroom ___ All developers are expected to refactor the code continuously. ___ "A compromise" between the Waterfall model and evolutionary development. ___ The highest priority system services tend to receive the most testing. ___ Utilizes "test-first development" – writing tests before coding helps to clarify requirements. ___ There is no testing for defects in the process; system testing is focused on assessing the system's reliability. ___ Explicitly incorporates risk assessment and resolution throughout the process. ___ Normally described from 3 perspectives: dynamic (showing phases over time), static (showing process activities), and practice (suggesting good practice). ___ Software correctness is demonstrated using a formal approach. 6. (3 pts.) Which one of the following best describes what a software engineering method is? (Circle ONE only.) a. A software system which is intended to provide automated support for software process activities. b. A set of generic activities whose goal is the development or evolution of software. c. An engineering discipline which is concerned with all aspects of software production. d. A “structured” approach to software development which includes system models, notations, rules, design advice, and process guidance. e. A simplified representation of a software process, presented from a specific perspective or viewpoint. 3 7. (8 pts.) The Rational Unified Process (RUP) identifies four discrete phases in the software process: Inception, Elaboration, Construction, and Transition. Unlike the waterfall model, however, RUP phases are more closely related to business rather than technical concerns. Briefly describe the goal(s) of each RUP development phase. Inception: Elaboration: Construction: Transition: 8. (2 pts.) Briefly describe the distinction between CASE Workbenches and CASE Environments. 9. (3 pts.) Fred Brooks, author of The Mythical Man-Month, notes that adding people to a late software project can actually make it later. Why is this so? 10. (3 pts.) What does it mean to say that a requirement is verifiable? (Circle ONE only.) a. Correctness of the system with respect to the requirement HAS BEEN determined. b. Correctness of the system with respect to the requirement CAN BE determined. c. Consistency of the requirement with user needs/wants HAS BEEN determined. d. Consistency of the requirement with user needs/wants CAN BE determined. e. (None of the above.) 11. (3 pts.) Sommerville notes that interactive systems are difficult to represent using the pipelining (data-flow) model. Briefly explain why this is so. 4 12. Consider the activity network below. Note that durations are in “days". 2 start T1 1 1 2 T4 T6 T2 3 4 T5 finish T3 a. (2 pts.) What is the "critical path" for this network? b. (2 pts.) What is the minimum time required to finish the project? c. (3 pts.) For how many days can the following tasks be delayed without causing an overall project schedule slippage? T1: ____ T3: ____ T6: ____ d. (6 pts.) Assume that 3 staff members (Bob, Carol, and Ted) are available to work on the project. Create a Gantt chart (“staff allocation bar chart”) based on the template below which is consistent with the constraints represented in the activity network and which minimizes development time. Each of the three staff should be assigned at least one task. Assume that one and only one staff member can be assigned any given task for the duration of that task. Your Gant chart should show the project beginning on a Monday. Mon Bob Carol Ted Tues Wed Thu Fri Mon Tues Wed Thu Fri 5 13. (10 pts.) Match each description below to the SINGLE MOST APPROPRIATE TERM among the following. (Note: terms may apply to none, one, or more than one description.) A. B. C. D. E. system goal user requirement system constraint SRS domain requirement F. G. H. I. J. system attribute external requirement process constraint PDL functional requirement ___ Official statement of what is required of system developers; it should include both user and system requirements. ___ Especially useful when specifying a process that involves an ordered sequence of actions. ___ Example would be: "By law, must not display student social security numbers to personnel outside of financial aid." ___ Example would be: "Transactions Processed Per Second." ___ Example would be: "Must be simple to install." ___ Example would be: "To avoid freezing, water temperature must be maintained above 0 degrees Celsius." ___ Usually suffers from not being verifiable. ___ Example would be: "Processor utilization must stay above 80%." ___ A high level statement in natural language of a system service or constraint. ___ Example would be: "Must be programmed in Java." 14. Give (a) a MODEL-BASED requirements specification using pre- and postconditions and (b) an OPERATIONAL requirements specification for the following natural language-based program description: The program shall set variable J to the index of the first instance of the value 17 in the non-empty integer array A[1:N]. If A contains NO instances of 17, the program will set J to N+1. a. (7 pts.) model-based specification: pre-condition: post-condition: b. (4 pts.) operational specification: 6 15. (15 pts.) Match each description below to the SINGLE MOST APPROPRIATE TERM among the following. (Note: terms may apply to none, one, or more than one description.) A. B. C. D. E. F. G. mockup breadboard horizontal prototyping vertical prototyping throw-away prototyping evolutionary prototyping experimental prototyping H. I. J. K. L. M. N. user interface prototyping visual programming compound documents component and application assembly LISP, APL, SmallTalk RAD environments incremental development ___ Requires a composition mechanism that includes control facilities and a mechanism for communication. ___ A potential problem is that developers may be pressured to deliver the prototype as the final system. ___ Objective is to validate or derive the system requirements only. ___ Utilize high level languages integrated with a database; used to develop data-intensive business applications. ___ Emphasis is on function as opposed to appearance. ___ Used to reduce requirements risk; the prototype is developed from an initial specification, delivered for experiment, and then discarded. ___ The process starts with and concentrates on those requirements which are poorly understood. ___ Supported by a scripting language where the prototype is developed by creating a user interface from standard items and associating components with these items. ___ Objective is to evaluate a proposed solution for feasibility / performance. ___ Each active element has an associated application which is invoked when that element is selected (as in a spreadsheet). ___ Appropriate when rapid delivery and deployment are more important than long-term software maintainability. ___ Objective is to deliver a working system to end-users at the end of the process. ___ Typeless, interpretive, high-level prototyping languages. ___ The process starts with those requirements which are best understood. ___ Emphasis is on fidelity as opposed to completeness. 7 16. Suppose we wished to develop an algebraic specification for an abstract data type representing arrays. Assume that arrays are collections of elements of generic type "Elem" (including the special element "Undefined"). Individual elements are accessed via their numeric index. Create takes lower and upper index bounds as parameters and creates an array, initializing its values to Undefined. Operations First and Last discover the lower and upper index bounds of an array, respectively. Assign creates a new array which is the same as the input array with the specified element assigned the given value. Eval reveals the value of a specified element. If an attempt is made to access a value outside the bounds of the array, the value is "Undefined". Assume arrays are of type "Array", and that numeric indices are of type "Integer". a. (10 pts.) Give the "signature" part of the specification. b. (3 pts.) Complete the following axioms: First (Create (x, y)) = __________ Last (Assign (a, n, v)) = ___________ c. (5 pts.) Complete the following axiom: Eval (Assign (a, n, v), m) = if m < __________ or m > __________ then __________ else if m = n then __________ else __________ 8 17. (8 pts.) Match each description below to the SINGLE MOST APPROPRIATE TERM among the following. (Note: terms may apply to none, one, or more than one description.) A. B. C. D. E. F. G. H. predicate universal quantifiers constructor operations operational specification axioms pre-condition model-based specification post-condition I. J. K. L. M. N. O. P. CSP Lotos inspection operations component and application assembly existential quantifiers operation signature algebraic specification Z ___ Defines the semantics of operations defined over a sort. ___ A specification approach widely used in industrial projects that defines operations by defining how they affect system state. ___ Used to assert that some predicate holds FOR ALL or FOR EVERY member of a given set. ___ A mature notation for model-based specification that uses sets and relations between sets. ___ This specification approach is particularly well suited for specifying the interfaces of objects and abstract data types. ___ Used to assert that some predicate holds FOR AT LEAST ONE or FOR SOME member of a given set. ___ Provides the name and parameter types for an operation. ___ That part of a schema which defines conditions that are always true. 18. a. (3 pts.) While the fat-client Client/Server (C/S) model distributes processing more effectively than a thin-client model, system management is more complex. Briefly explain why this is so. b. (3 pts.) How has the advent of mobile code (such as Java applets and Active X controls) blurred the distinction between the thin- and fat client C/S models? 9 19. (10 pts.) Match each description below to the SINGLE MOST APPROPRIATE TERM among the following. (Note: terms may apply to none, one, or more than one description.) A. B. C. D. E. call-return model client-server model data-flow model abstract machine model manager model F. G. H. I. J. reference model interrupt-driven model repository model broadcast model generic model ___ Useful control model for integrating sub-systems executing on different computers in a network. ___ This centralized control model is suitable for concurrent systems. ___ Useful for comparing different systems within an application domain. ___ Shared data is held in a central database and may be accessed by all sub-systems. ___ Sub-systems register an interest in specific events. ___ Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downwards. ___ This structural model does not provide for sub-system-specific data management requirements related to backup, access control, and recovery. ___ Usually built "bottom-up" from analyzing real systems within an application domain. ___ In principle, when a layer's interface changes, only the adjacent layer is affected. ___ This control model is particularly suited to real-time systems. 20. (3 pts.) CORBA now defines approximately 15 general services that are likely to be required by many distributed systems. Sommerville describes several examples, including naming and trading services that allow objects to refer to and discover other objects on a network. Briefly describe one other. 21. Service-oriented architectures (SOAs) are a way of developing distributed systems where the components of these systems are stand-alone (often Web based) services. a. (3 pts.) SOAs are now recognized as a significant development, particularly for business application systems that extend beyond company boundaries. To what does Sommerville attribute this success? 10 21. (cont’d) b. (3 pts.) Sommerville describes a “critical distinction” between a service and a software component as defined in CBSE. What is the distinction? c. (3 pts.) What, specifically, does a WSDL (Web Service Description Language) specification define about a Web service? d. (3 pts.) What, according to Sommerville, is the major problem with WSDL? e. (4 pts.) Briefly describe two of the potential problems testers may face when testing service-based systems. On my honor, I have neither given nor received unauthorized aid on this exam and I pledge not to divulge information regarding its contents to those who have not yet taken it. ________________ SIGNATURE