NAME (as it appears on your UF ID): (Please PRINT) CEN Software Engineering

Similar documents
NAME (AS IT APPEARS ON YOUR UF ID): (Please PRINT) CEN Software Engineering

NAME (from your UF ID): UF ID#: (Please PRINT) CEN Software Engineering

Chapter 4 Requirements Engineering

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

CEN Software Engineering Exam 2 Fall 2011

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Software Processes 1

The software process

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Software Design COSC 4353/6353 D R. R A J S I N G H

Chapter 3 Agile Software Development

Software Engineering QUESTION BANK

SWE 211 Software Processes

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Software Engineering Lecture 5 Agile Software Development

Lecture 8 Agile Software Development

The Systems Development Lifecycle

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Agile Manifesto & XP

CS SOFTWARE ENGINEERING QUESTION BANK

A New Divide & Conquer Software Process Model

Software Engineering

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Requirements elicitation: Finding the Voice of the Customer

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Tuesday, October 25. Announcements

Chapter 3 Software Process Model

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Test Management: Part I. Software Testing: INF3121 / INF4121

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Chapter 3 Prescriptive Process Models

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

An Overview of Software Process

Chapter 16 Software Reuse. Chapter 16 Software reuse

Software Process. Overview

Software Engineering Chap.3 - Agile Software Development

8/30/2010. Lecture 1. Topics covered. Functional and non-functional requirements The software requirements document Requirements specification

Pertemuan 2. Software Engineering: The Process

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Chapter 16 Software Reuse. Chapter 16 Software reuse

03. Perspective Process Models

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 11: Managing the Software Process

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

A Holistic Qualitative Approach to Software Reliability

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Agile Software Development

Chapter 3 Agile Software Development. Part 1b

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Agile Development Processes. CSCE Lecture 3-08/31/2017

Software Life Cycle. Main Topics. Introduction

Chapter 4 Document Driven Approach for Agile Methodology

Introduction to Agile and Scrum

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Software Engineering

Requirements Engineering Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 7 Slide 1

18-642: Software Development Processes

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Agile Projects 7. Agile Project Management 21

ABHELSINKI UNIVERSITY OF TECHNOLOGY

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

Agile Methods. Background

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Software Engineering

Processes and Life- Cycles. Kristian Sandahl

Requirements Engineering

2068 I. Attempt any ten questions. (10x6=60)

The Software Life Cycle

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

The ABC of Agile Business Change. James Yoxall BCS 17 September, 2013

Ingegneria del Software Corso di Laurea in Informatica per il Management

What is Continuous Integration. And how do I get there

Address system-on-chip development challenges with enterprise verification management.

Introduction of RUP - The Rational Unified Process

Software LEIC. Lecture 23

Foundations of software engineering

The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Software Engineering in the Agile World. Table of contents

Rapid software development

Software Development Software Development Activities

Transcription:

NAME (as it appears on your UF ID): (Please PRINT) UF Student ID#: ------------------------------- CEN 5035 - Software Engineering ----------------------------- Exam 1 Fall 2011 You have 90 minutes to work on this exam. It is a "closed-book/closed-notes" test. Pay attention to point values, since you may not have time to work all 20 problems. PRINT your name above NOW and sign the pledge at the bottom of the last page, if appropriate, when you are finished. PLEASE PRINT ANSWERS IN THE SPACE PROVIDED ONLY PREFERABLY USING A BALLPOINT PEN TO INCREASE LEGIBILITY. Good luck! 1. (3 pts.) What, according to Sommerville, is the principle distinction between plandriven and agile processes? (Circle ONE only.) a. Agile process activities are iterative in nature while they are sequential in plandriven processes. b. Agile process activities incorporate incremental development while plan-driven process activities do not. c. Plan-driven process activities are planned in advance while planning is incremental in agile processes. d. Agile processes explicitly incorporate risk assessment and resolution while plandriven processes do not. 2. (3 pts.) Sommerville argues that while software engineering is often criticized as being inadequate for modern software development, many so-called software failures are actually a consequence of two (other) factors. One of these is that as new software engineering techniques help us to build larger, more complex systems, demands increase for faster development, even more complexity, and new capabilities previously thought to be impossible. As a result, new software engineering methods must continuously be developed to meet ever increasing demands. Briefly describe the other factor he cites.

3. (3 pts.) One of the issues of professional and ethical responsibility for software engineers discussed in class was that of "confidentiality." Which ONE of the following, if any, describes the issue as discussed? a. You should normally respect the confidentiality of your employers or clients irrespective of whether a formal confidentiality agreement has been signed. b. You should be aware of local laws governing the required confidentiality of intellectual property such as patents and copyright. c. Software engineers should strive to remain confidential in all areas of software engineering if they are to be respected as professionals. 2 d. Software engineers should always act in a confidential manner that is consistent with the public interest. e. Software engineers should not misrepresent their level of confidentiality or knowingly accept work which is outside their area of confidentiality. f. (none of the above) 4. (3 pts.) Which one of the following best describes what it means to say that a requirement can be validated? (Circle ONE only.) a. The requirement can be changed without large-scale effects on other system requirements. b. Correctness of the system with respect to the requirement can be determined. c. Procurers and end-users of the system can understand the requirement. d. Consistency of the requirement with user needs/desires can be determined. e. The origin of the requirement can be documented. 5. Sommerville notes that to decide on the balance between a plan-based and an agile development approach, one needs to answer a range of technical, human, and organization questions. Two such questions appear below. Briefly explain their relevance to this issue as described by Sommerville. a. (3 pts.) What is the expected system lifetime? b. (3 pts.) How large is the system that is being developed?

3 6. (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. Boehm s Spiral Development F. RUP B. Throw-away Prototyping G. Incremental DEVELOPMENT C. Incremental DELIVERY H. Extreme Programming D. Reuse-based Development I. Waterfall E. Volere J. COCOMO Plan-driven model with separate and distinct phases of specification and development. Normal approach used in agile methods (but may also be used in plan-driven development) -- the system is developed in increments that are made available for customer evaluation and feedback (but not usually deployed for actual work in the customer s own environment). System integration, in this model, may be part of the development process rather than a separate activity. Hybrid process model that explicitly represents both in-phase and cross phase iteration. A drawback is the difficulty of accommodating change after the process is underway. Combines change avoidance with change tolerance. It assumes that changes are a result of project risks and includes explicit risk management activities to reduce these risks. Difficult to carry out for replacement systems as increments provide less functionality than the system being replaced. Important innovations are the separation of phases and workflows (activities), and the recognition that deploying software in a user s environment is part of the development process. Once the development of an increment is started, its requirements are frozen while requirements for later increments can continue to evolve. Usually leads to reduced cost and faster delivery of software, but requirements compromises may lead to a system that does not meet the real needs of users. 7. (3 pts.) The term information hiding is often associated with the notion of encapsulation. David Parnas, however, suggests a more general interpretation. State his definition of information hiding.

8. (9 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. Mockup F. Experimental Prototyping B. Breadboard G. Back-to-back Testing C. Horizontal Prototyping H. Paper Prototyping D. Vertical Prototyping I. Wizard of Oz Prototyping E. Throw-away Prototyping J. Operational Prototyping 4 Using a validated prototype as the source for expected results during system test. Designed to be highly functional and easily modifiable with little or no emphasis on appearance A potential problem is that developers may be pressurized to deliver the prototype as the final system. Used to evaluate the feasibility or performance of a proposed solution Used to elicit and validate requirements before software specification and development. Emphasis is on breadth of feature coverage as opposed to realism A non-functioning but realistic looking model Very cost-effective way to obtain user reactions to an interface design proposal System responses to user interactions are an illusion created by a person pretending to be the system 9. (9 pts.) Three general open source software licensing models were described in class: the GNU General Public License (GPL), the GNU Lesser General Public License (LGPL), and the Berkley Standard Distribution (BSD) License. Briefly explain how each of the models handles the issue of reciprocity.

10. (16 pts.) Circle either true or false, as appropriate, for each of the following statements concerning Extreme Programming (XP). Note that to compensate for random guessing, you will receive +2 pts. for each correct answer and -2 pts. for each incorrect answer. (The minimum score possible for this problem is 0 pts.) Therefore, DON T CIRCLE AN ANSWER UNLESS YOU ARE MORE THAN 50% SURE THAT IT IS CORRECT! 5 a. XP s focus is on managing iterative development rather than true false specific agile practices or principles. b. An automated unit test framework is used to write tests for true false a new piece of functionality before that functionality itself is implemented. c. Refactoring involves constantly improving documentation true false to increase understandability -- even if there is no immediate need for this. d. Pairs of developers work only on their own areas of the true false system so that expertise that encourages refactoring will develop quickly. Either developer can change anything in the areas of the system they jointly own. e. A representative of the end-users of the system aids in true false identifying requirements, but the development team is isolated from the representative with all communications channelled through the so-called XP master. f. The focus in XP is on people not process through pair true false programming and a process that avoids long working hours. g. Releases of the system are frequent and incrementally true false add functionality. Enough design is carried out to meet the current requirements and no more. h. Instead of employing conventional SE wisdom, which true false cannot be reliably anticipated, XP proposes design for change to make changes easier when they have to be implemented. 11. (3 pts.) Sommerville describes three major configuration management activities. Two of these are version management (keeping track of the different versions of software components) and problem tracking (keeping track of reported bugs, who is working on them, and when they are fixed). Briefly describe the third major configuration management activity identified by Sommerville.

6 12. (14 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. System Goal H. Process Constraint B. User Requirements I. Operational Specification C. System Constraint J. Form/template-based Specification D. System Requirements K. Interface Specification E. Domain Requirement L. Scenario F. System Attribute M. Software Requirements Document G. External Requirement (a.k.a. an SRS ) Example would be: "The development team is required to follow the Rational Unified Process." Example would be: Example would be: "The system shall be fully compliant with will mandatory Nuclear Regulatory Commission standards for fail-safe operation." Example would be: "The automated cooling system must be easy to bypass in case of serious emergencies." Example would be: pre-condition: N 1 post-condition: there exists an i in [1,N] such that BIG=A[i] & for every j in [1,N], BIG A[j] & A is unchanged Example would be: interface PrintServer { // defines an abstract printer server // requires: interface Printer, interface PrintDoc // provides: initialize, print, displayprintqueue, cancelprintjob, switchprinter void initialize ( Printer p ) ; void print ( Printer p, PrintDoc d ) ; void displayprintqueue ( Printer p ) ; void cancelprintjob (Printer p, PrintDoc d) ; void switchprinter (Printer p1, Printer p2, PrintDoc d) ; } //PrintServer Example would be: probability of application unavailability must be.05 Official statement of what is required of system developers; it should include both user and system requirements. (cont d on next page)

7 12. (cont d) Example would be: "The deceleration of the train shall be computed as: D train = D control + D gradient where D gradient is 9.81m/s 2 * compensated gradient/alpha and where the values of 9.81m/s 2 /alpha are known for different types of trains. Statements in natural language plus diagrams of system services and constraints, written primarily for customers. Detailed descriptions of system services and constraints that may serve as the basis for a contract. Example would be: "percentage of target dependent statements" A (partial) example would be: Example would be: Initial assumption: The patient has seen a medical receptionist who has created a record in the system and collected the patient s personal information (name, address, age, etc.). A nurse is logged on to the system and is collecting medical history. Normal: The nurse searches for the patient by family name. If there is more than one patient with the same surname, the given name (first name in English) and date of birth are used to identify the patient. The nurse chooses the menu option to add medical history. The nurse then follows a series of prompts from the system to enter information about consultations elsewhere on mental health problems (free text input), existing medical conditions (nurse selects conditions from menu), medication currently taken (selected from menu), allergies (free text), and home life (form). class ATM { // declarations here public static void main (String args[]) throws InvalidCard { try { thiscard.read () ; // may throw InvalidCard exception pin = KeyPad.readPin () ; attempts = 1 ; while (!thiscard.pin.equals (pin) & attempts < 4 ) { pin = KeyPad.readPin () ; attempts = attempts + 1 ; } if (!thiscard.pin.equals (pin)) throw new InvalidCard ("Bad PIN"); thisbalance = thiscard.getbalance () ; do { Screen.prompt (" Please select a service ") ; service = Screen.touchKey () ; switch (service) { case Services.withdrawalWithReceipt: receiptrequired = true ;

13. (10 pts.) Match each description below to the SINGLE MOST APPROPRIATE ARCHITECTURAL PATTERN OR TYPE among the following. (Note: patterns or types may apply to none, one, or more than one description.) A. Model-View-Controller E. Layered Architecture B. Repository F. Client-server C. Pipe and Filter G. Event Processing D. Transaction Processing H. Language Processing Examples include compilers and command interpreters. 8 Used when building new facilities on top of existing systems or when there is a requirement for multi-level security. Used when data in a shared database has to be accessed from a range of locations across a network. May also be used when the load on a system is variable. The processing of the data in a system is organized so that each processing component is discrete and carries out one type of data transformation. The data flows from one component to another for processing. Used when you have a system in which large volumes of information are generated that has to be stored for a long time. All data can be managed consistently (e.g., backups done at the same time) as it is all in one place. Also know as the abstract machine model. Separates presentation and interaction from the system data. Allows the data to change independently of its representation and vice versa. Commonly used in data processing applications (both batch- and transaction based) where inputs are processed in separate stages to generate related outputs. Systems process user requests for information from a database or to update the database. Examples include E-commerce and reservation systems. Example would be: Issue receipts Receipts Read issued invoices Identify payments Invoices Payments Find payments due Issue payment reminder Reminders

9 14. (3 pts.) One of the advantages of software inspections (over machine based testing) mentioned in class concerned the masking of defects. Briefly explain what it means to say that one defect may mask others in the context of machine based software testing? 15. (3 pts.) In addition to focusing on the interactions among (previously independently tested) components making up a system, system testing also focuses on the functional and non-functional emergent behaviors of a system. Briefly explain what is meant by an emergent behavior in this context and give a concrete example. 16. (3 pts.) Some have suggested that Test-Driven Development (TDD) reflects an element of methodological hyperbole. ( Hyperbole in this context, means a deliberate exaggeration used for dramatic effect.). In particular, the process model includes a step that seems to serve no purpose other than to dramatically reinforce the principle that testable requirements for new functionality should be the focus BEFORE code is written to implement that functionality -- a principle that is already clearly reflected in the process requirement that a test be written and implemented before the functionality is implemented. What is this additional, seemingly hyper bolic step in the TDD process model? 17. (4 pts.) Fowler, et al., suggest that there are stereotypical situations (called bad smells ) in which program code can be improved through refactoring. Examples cited include duplicate code, long methods, switch (case) statements, data clumping, and speculative generality. Briefly describe (a) what the authors mean by data clumping and (b) the possible remedy they identify for this situation.

18. a. (3 pts.) Briefly explain WHAT regression testing is. 10 b. (3 pts.) Briefly explain the PURPOSE of regression testing. 19. a. (3 pts.) Briefly describe Lehman s Law of continuing change. b. (3 pts.) Briefly describe Lehman s Law of increasing complexity (entropy). 20. (3 pts.) Which one of the following best reflects the point Sommerville makes in connection with how team stability can affect maintenance costs? (Circle ONE only.) a. If the maintenance contract is given to a company other than the original system developer, there may be little or no incentive for a development team to write the software so that it is stable and easy to change. b. Maintenance costs can be dramatically reduced if development contracts stipulate that system developers receive group psychotherapy at the very first sign of team instability. c. Unless prior training of maintenance personnel is contractually mandated, a lot of the effort during the maintenance process is taken up with stabilizing the system before changes can be implemented. d. In organizations that still consider development and maintenance to be separate activities, it is normal for development teams to be broken up with their members being assigned to new projects after systems have been delivered. The new individuals who become responsible for maintenance must then spend time trying to understand the system before being able to implement changes to it. e. Contractual requirements related to the use of modern software engineering techniques, system structure, system documentation, configuration management, and other stabilizing factors can significantly impact maintenance costs. 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