Final Exam CISC 475/675 Fall 2004

Similar documents
CS487 Midterm Exam Summer 2005

SOFTWARE LIFE-CYCLE MODELS 2.1

COMP 6471 Software Design Methodologies

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

THE UNIVERSITY OF THE WEST INDIES. Answer ALL questions. Marks for each question are given in the margin. This exam is worth 60 marks

CSE 70 Final Exam Fall 2009

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

17. GRASP: Designing Objects with Responsibilities

1. i. What are the 3 major components of a information system and show their relationship input output

References: Applying UML and patterns Craig Larman

Requirements and Design Overview

Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

a. The following method would allow an object of the static type List<String> to be passed to it as an argument.

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design

Software Modeling & Analysis

Patterns and Testing

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

Object-Oriented Functional Analysis and Design for POS Example

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

APPENDIX M INTRODUCTION TO THE UML

No Source Code. EEC 521: Software Engineering. Specification-Based Testing. Advantages

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Black Box Testing. EEC 521: Software Engineering. Specification-Based Testing. No Source Code. Software Testing

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/10/2015

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

Chapter 10. Testing and Quality Assurance

Software Engineering Fall 2014

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Domain Modeling- 2. Generalization

Best Practices for Model-Based Systems Engineering

Object-Oriented Design II - GRASP

OO Project Management

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

Responsibilities. Using several specific design principles to guide OO design decisions.

Answers NOT TO BE PRINTED

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)

SOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department

Lecture 8: Use Case -Driven Design. Where UML fits in

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Software Testing Interview Question and Answer

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Programming Principles

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

Object-Oriented and Classical Software Engineering

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

GRASP Design Patterns A.A. 2018/2019

Topic : Object Oriented Design Principles

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Chapter 9 Quality and Change Management

Lab # 1. Structuring System Requirements: Diagrams

History of object-oriented approaches

Pearson Education 2007 Chapter 9 (RASD 3/e)

CPSC 310: Sample Final Exam Study Questions 2014S1 (These are in addition to the Study Questions listed at the end of some lectures)

Systems Analysis and Design in a Changing World, Fourth Edition

Information Expert (or Expert)

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

5 Object Oriented Analysis

Using VectorCAST/C++ with Test Driven Development. Whitepaper V

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

Software Engineering (CSC 4350/6350) Rao Casturi

*ANSWERS * **********************************

BDSA Introduction to OOAD. Jakob E. Bardram

From Design Patterns: Elements of Reusable Object Oriented Software. Read the sections corresponding to patterns covered in the following slides.

Object-Oriented Design

Software Testing. Testing: Our Experiences

1: Specifying Requirements with Use Case Diagrams

Certified Tester Foundation Level(CTFL)

Verification and Validation

GRASP 2. CSC 440: Software Engineering Slide #1

Verification and Validation

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1

Four More GRASP Principles CSSE 574: Session 5, Part 2

Premium POS Pizza Order Entry Module. Introduction and Tutorial

Object-Oriented Design I

SE310 Analysis and Design of Software Systems

May Comp-B 11, Advanced Software Design. 3 hours duration

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

Logical Architecture & Design Preliminaries

EmpAnADa Project. Christian Lange. June 4 th, Eindhoven University of Technology, The Netherlands.

Roll No. :. Invigilator's Signature :.. CS/MCA/SEM-4/MCA-401/ SOFTWARE ENGINEERING & TQM. Time Allotted : 3 Hours Full Marks : 70

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

Chapter 7: Software Engineering. Copyright 2015 Pearson Education, Inc.

Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

Facts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development

COMP 6471 Software Design Methodologies

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Introduction - SENG 330. Object-Oriented Analysis and Design

BDSA08 Advanced Architecture

UML for Real-Time Overview

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45

INFO-H-302. Object-Oriented Analysis and Design. Prof. Esteban Zimányi

Chapter 10 Object-Oriented Design Principles

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

How to post a job on Inside Higher Ed

Transcription:

True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The main idea of the spiral life-cycle model was the introduction of risk management/mitigation as a primary organizing concept. 3. (True/False) In the Unified Process, each phase should have exactly 4 iterations. 4. (True/False) In the Unified Process, the four phases are Requirements, Analysis, Deisgn, and Implementation. 5. (True/False) Because the Chief Programmer Team approach is generally impractical, most organizational managers suggest replacing the chief programmer with both a team leader in charge of technical aspects and a nontechnical team manager. 6. (True/False) In Walkthroughs (as opposed to Inspections), the team is charged with documenting and correcting any faults found. 7. (True/False) A module has Procedural Cohesion if it performs a series of operations related by the sequence of steps to be followed by the product. 8. (True/False: what the client NEEDS!) The primary focus of the Requirements workflow/discipline is determining what the client wants. 9. (True/False) The primary output of the Requirements workflow/discipline are use case diagrams. 10. (True/False) The noun-extraction method is one technique used in the Analysis workflow/discipline. 11. (True/False) In general, Collaboration and Sequence diagrams can be used interchangeably. 12. (True/False) Responsibility-driven design is used to solve the method-assignment problem. 13. (True/False: GLASS-BOX!) Statement, Branch, and Path Coverage are common black-box testing techniques.

Short answer: 14. [2 pts] The main difference between a domain model and a design model is: Class method assignments 15. [2 pts] Name one thing that is better about top-down integration and one thing better about bottom-up integration. Top Down: Fault isolation, stubs not wasted, major design flaws show up early Bottom Up: operational artifacts are thoroughly tested, no fault shielding from above, fault isolation 16. NOT COVERED in 2005 [3 pts] Consider a software system to control an intelligent home. What are the most likely UML stereotypes for the following classes [chosen from the set entity class, boundary class, control class]? a. HotWaterHeater Class Entity b. SecurityProcess Class Control c. FiveDayWeatherForcast Class Boundary 17. [3 pts] List three important components of a use case. CHARACTERISTIC INFORMATION Goal in Context: <a longer statement of the goal, if needed> Scope: <what system is being considered black-box under design> Level: <one of: Summary, Primary task, Subfunction> Preconditions: <what we expect is already the state of the world> Success End Condition: <the state of the world upon successful completion> Failed End Condition: <the state of the world if goal abandoned> Primary Actor: <a role name for the primary actor, or description> Trigger: <the action upon the system that starts the use case, may be time event> ---------------------------------------- MAIN SUCCESS SCENARIO ---------------------- EXTENSIONS -------------------- SUB-VARIATIONS ----------------------

18. [2 pts] What is the difference between coupling and cohesion? coupling BETWEEN modules, cohesion WITHIN. desire LOW coupling, and HIGH cohesion. 19. [2 pts] Give one argument FOR and one argument AGAINST formal correctness proofs for software. NOT COVERED in 2005 FOR: guarentee some properties; safety critical Against: can t know that spec is correct; can t do the code proof automatically 20. [3 pts] Name three unique characteristics of XP (extreme Programming) teams. Pair programming Continuous integration of tasks The computers are put in the center of a large room lined with cubicles A client representative is always present Software professionals cannot work overtime for 2 successive weeks No specialization Refactoring (design modification) 21. [2 pts] Briefly describe the difference between CMM-2 and CMM-5. CMM2 is just starting to apply any process while CMM5 has meta-process in place to learn, adapt, and improve its processes that are already consistently applied, measured and managed. 22. [2 pts] What is the main difference between waterfall lifecycle models and intererate-and-increment lifecycle models? iteration! 23. [2 pts] Briefly explain the cost of fixing a fault vs. the time at which it is detected. Fixing is MUCH more expensive as time goes by.

[10 pts] Draw a simple domain model for the following use case involving a POS (Point Of Sale) terminal: Main Success Scenario (or Basic Flow): 1. Customer arrives at a POS checkout with goods and/or services to purchase. 2. Cashier starts a new sale. 3. Cashier enters item identifier. 4. System records sale line item and presents item description, price, and running total. Price calculated from a set of price rules. Cashier repeats steps 2-3 until indicates done. 5. System presents total with taxes calculated. 6. Cashier tells Customer the total, and asks for payment. 7. Customer pays and System handles payment. 8. System logs the completed sale and sends sale and payment information to the external Accounting (for accounting and commissions) and Inventory systems (to update inventory). 9. System presents receipt. 10.Customer leaves with receipt and goods (if any). Register Item Store Sale Payment ProductCatalog ProductSpecification SalesLineItem Cashier Customer Manager Chapter 10.

[10 pts] Assume you were going to review the following code. You are to inspect it for consistency in naming, formatting, and understandability of style. You also are going to review it for correctness. Identify all of the things you find that you would raise during a code review. Identify each item by specifying the line number (if appropriate) and the problem. (2-pts. for each of the first six, and 4 pts. each for the last two) Only two parameters are identified in the javadoc comments. The comment says side_b, but the argument is b. The args should be named consistently, either side_a, side_b, side_c, or a, b, c. Using the underscore in side_a and the mixed-case method name, triangletype,.are inconsitent naming. Inconsistent use of braces on the if statements. Inconsistent naming of return types, use either TRIANGLE_ or _TRIANGLE. The method will never return EQUILATERAL_TRIANGLE. Never checks for side b and c equality.

[10 pts] Consider the following diagram. What kind of diagram is it? Explain what it shows. NOT COVERED in 2005 msg1 : A 1: msg2 : B 1.1: msg3 2.1: msg5 2: msg4 : C 2.2: msg6 : D Collaboration diagram. Msg1 to object of class A causes msg2 to B, which causes msg 3 to C. Then A sends msg4 to C, and C sends msg 5 to B. Finally C sends msg 6 to D.

[10 pts] Consider a system with the following 4 domain classes: an Order, representing a full customer order, an OrderLineItem representing one line of the full order, a Product, representing something that a customer might purchase as a part of an order, and a class representing the customer themselves. Draw a UML sequence diagram representing the following scenario: We have an order and are going to invoke a command on it to calculate its price. To do that, the order needs to look at all the line items on the order and determine their prices, which are based on the pricing rules of the order line s products. Having done that for all the line items, the order then needs to compute an overall discount, which is based on rules tied to the customer. Full credit for an object-oriented, distributed solution (where the Order passes off the price-calculation to the line, and the line to the Product...) BEST: too centralized:

Two Points each: 24. How are a workflow, an artifact, and a baseline related? A workflow is a set of activities. An artifact is a constituent component of a software product. A workflow creates or modifies one or more artifacts. A baseline is a set of artifacts. 25. What are the differences between walkthroughs and inspections? Inspections much more formal. An inspection is a formal five-step process while a walkthrough has two informal steps; previously acquired fault statistics play an important role in the inspection process; there is a formal component of the inspection process for ensuring that all faults noted are later corrected; if more than a certain fraction of the material is changed then it must be submitted for reinspection. 26. Give an example of a nonfunctional requirement that can be handled without having detailed knowledge about the target software product. The software product must run under Linux. 27. Why are the attributes of classes but not the methods determined during objecto r i e n t e d a n a l y s i s? The principle of stepwise refinement requires as many decisions as possible to be postponed. All the operations that have to be included in the product ( methods ) must eventually appear in the state diagram. However, assigning the methods to specific classes can wait until the design phase. On the other hand, modeling becomes extremely complex unless the attributes are assigned to their specific classes. In fact, there is another good reason to wait until the design phase before allocating methods to classes, namely that the choice of architecture (for example, client-server) will affect where the classes are physically located, and hence may affect how the operations are organized into methods, and which methods should be allocated to which classes. 28. Define any two of the following design patterns: [Information Expert, Creator, Controller, Low Coupling, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Don't Talk to Strangers] see handout.