CS 121 Midterm Exam Fall 12 CLOSED BOOK THE RULES - PLEASE READ CAREFULLY



Similar documents
What is a life cycle model?

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Requirements / Use Case Specification

Classical Software Life Cycle Models

Quantification and Traceability of Requirements

Project Management Syllabus

How To Model Software Development Life Cycle Models

Chapter 8 Approaches to System Development

Product Development Best Practices

Software Development with Agile Methods

Traditional requirements

4.4 What is a Requirement? 4.5 Types of Requirements. Functional Requirements

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. September 2013 EXAMINERS REPORT

A Social Network perspective of Conway s Law

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

The Business Analyst Role in Agile Projects and How To Do It

Introduction to Agile Software Development Process. Software Development Life Cycles

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Object-Oriented Systems Analysis and Design

JVD Software Development

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Software Engineering 1

Instructional Design Framework CSE: Unit 1 Lesson 1

Sample Exam Foundation Level Syllabus. Mobile Tester

2. Analysis, Design and Implementation

Managing TM1 Projects

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Testing in Agile methodologies easier or more difficult?

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment Marque Browne Manuel Honegger

Agile Software Development Methodologies and Its Quality Assurance

Custom Web Development Guidelines

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

REQUIREMENTS SPECIFICATION AND MANAGEMENT. Requirements Analysis and Specification

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Software Development & Education Center. Microsoft Dynamics

2. Analysis, Design and Implementation

A Review of an MVC Framework based Software Development

Online Algebra 2 Syllabus Fairfax County Public Schools-Online Campus

Sample Exam Foundation Level Syllabus. Mobile Tester

Use Case Diagram. Tom Polanski, Analex Corporation CSCI Object-Oriented Analysis and Design (Spring 2001) Homework #3 Use Cases

SELECTING A DEVELOPMENT APPROACH Original Issuance: February 17, 2005 Revalidated: March 27, 2008

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

Agile Systems Engineering: What is it and What Have We Learned?

Lean vs. Agile similarities and differences Created by Stephen Barkar -

1) Testing of general knowledge 25%. Each right question counts 1. Each wrong counts 0.5. Empty

Sofware Requirements Engineeing

Organizational Requirements Engineering

White Paper IT Methodology Overview & Context

Object-Oriented Design Guidelines

Software Process for QA

Project Management 1/20/2015

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

ECO 250 Economics and Business Statistics I Fall 2009 Online Course

Use Case Diagrams. Tutorial

Software Engineering. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 16

THE PATH TO AGILE LOCALIZATION

IN-MEMORY DATABASES, INDUSTRY KNOW-HOW, AND USABILITY: WHAT REALLY MATTERS IN SUPPLY CHAIN PLANNING

The first program: Little Crab

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Karunya University Dept. of Information Technology

Evaluation of the Iceland State Financial and Human Resource System REPORT OF THE INDIVIDUAL EVALUATOR. Annex 2 SYSTEM AND SOFTWARE QUALITY

Object Oriented Design

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Assignment 1: Your Best Backlog

Work Breakdown Structure (WBS) Emanuele Della Valle

A Framework For Software Quality Assurance Using Agile Methodology

Surveying and evaluating tools for managing processes for software intensive systems

Section C. Requirements Elicitation

2 The first program: Little Crab

Evolutionary BPM. A New Process Methodology. Published: Oct. 17, Authors: Eli Stutz, Bruce Hardy

Software Life Cycle. Management of what to do in what order

AGILE ANALYSIS AVOIDING PARALYSIS: AN INTEGRATED FRAMEWORK FOR RESPONSIVE PROJECT ANALYSIS 1

Scenario-based Requirements Engineering and User-Interface Design

The Importance of Continuous Integration for Quality Assurance Teams

Aerospace Software Engineering

Comparing Agile Software Processes Based on the Software Development Project Requirements

Course Title: Planning and Managing Agile Projects

CSC340: Information Systems Analysis and Design. About the Course

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Object Oriented Programming. Risk Management

Choosing and Working with a Magento Solution Partner

Monfort College of Business Semester Course Syllabus ( )

Software Development Life Cycle (SDLC)

Faculty of Engineering and Science Curriculum - Aalborg University

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

Introduction to Database Systems CS4320/CS5320. CS4320/4321: Introduction to Database Systems. CS4320/4321: Introduction to Database Systems

The Blending of Traditional and Agile Project Management

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

Requirements engineering and quality attributes

COMP61532 Pattern-based Software Development Liping Zhao John Sargeant Comments. Please see the attached.

Chapter 4 Software Lifecycle and Performance Analysis

Controlling Change on Agile Software Development Projects

Transcription:

CS 121 Midterm Exam Fall 12 CLOSED BOOK THE RULES - PLEASE READ CAREFULLY Due Saturday, 13 Oct, 9 PM. Take this test in a SINGLE 1.5 hour setting. This test is: CLOSED Book - NO textbook, NO notes, etc. If you do not understand a question, then write down your understanding along with your answer. You CANNOT use a computer. You CANNOT use course tests, notes, etc., from any previous version of the course. Also, please refrain from discussing any aspect of this exam among students until after the tests are returned Give yourself up to 10 minutes to just read over the test - don t write anything during this period. Immediately afterwards, give yourself up to 1.5 uninterrupted hour to take the test. As soon as you are finished with the test, return it to my bin outside the CS Dept Office or my desk in Sprague. Please fill in the information below. Make sure to sign your exam to indicate that you have taken the exam in accordance with the HMC Honor Code. NAME: Date: Started Taking Test: Finished Taking Test: Signature: 1

1. How do Iterative and Agile software development models differ from the Waterfall model? Waterfall: A classically linear and sequential approach to software design and systems development, each waterfall stage is assigned to a separate team to ensure greater project and deadline control, important for on-time project delivery. A linear approach means a stage by stage approach for product building. Waterfall requires speculative reasoning/decisions which do not get revisited until far later in the product development cycle. Agile: Four principles that constitute Agile methods are: 1. The reigning supreme of individuals and interactions over processes and tools. 2. As does, working software over comprehensive documentation. 3. Likewise, customer collaboration over contract negotiation. 4. And again, responding to change over plan follow-throughs. Differences To synopsize the difference between the two, one can say the classic waterfall method stands for predictability, while Agile methodology spells adaptability. Agile methods are good at reducing overheads, such as, rationale, justification, documentation and meetings, keeping them as low as is possible. Agile methods benefit small teams with constantly changing requirements, rather more than larger projects. Agile, based on empirical rather than defined methods (i.e., Waterfall) is all about light maneuverability and sufficiency. Agile methodology means cutting down the big picture into puzzle size bits, fitting them together when the time is right e.g. design, coding and testing bits. Since Agile provides flexibility to make changes as per customer requirements it is more inclined towards better client satisfaction. This is a real set back for the Waterfall model which does not allow any modifications once the module has been completed. Under Agile development modular partitioning of the software can be effectively carried. Agile demands repetition/iteration of the various stages while in the Waterfall each stage happens only once. 2. Why are requirements so difficult to specify? Users do not understand what they want or users don t have a clear idea of their requirements Requirements change Users will not commit to a set of written requirements Users insist on new requirements after the cost and schedule have been fixed Communication with users is slow Users often do not participate in reviews or are incapable of doing so Users are technically unsophisticated 2

Users do not understand the software development process Users do not know about present technology 3. Describe the types of requirements denoted by FURPS+. Give an example of each in your Project. If there is no example, explain why? FURPS: Functional - feature set, security Usability - human factors, aesthetics Reliability - accuracy, mean time to failure Performance - speed, efficiency, throughput, Supportability - Testability, adaptability, portability 4. How are requirements created and managed in Agile based software development? Requirements as envisioned in Waterfall, do not exist in Agile. That is: The word requirement carries the connotation of required, absolute, permanence. Agile views the most effective method of conveying information as face-to-face. Agile begins with User Stories from which flexible requirements are created in the form of Use Cases. Some are fixed, e.g., Performance, but most are flexible and re-evaluated. The Goal stack is used to management requirements. 5. What are key components of a Use Case? What is the purpose of each? Full blown Title: Primary Actor Goal in Context Initiator Scenario Scope Level 3

Stakeholders and Interests Precondition Minimal Guarantees Success Guarantees Trigger Main Success Scenario Extensions Technology & Data Variations List Related Information 6. What is the difference between a Domain Model and a Class Model? The domain model identifies the relationships among all the entities within the scope of the problem domain (both behavior and data) and commonly identifies their attributes. The domain model provides a structural view of the domain that can be complemented by other dynamic views, such as use case models. An important advantage of a domain model is that it describes and constrains the scope of the problem domain. The domain model can be effectively used to verify and validate the understanding of the problem domain among various stakeholders. Class diagrams/models are the mainstay of object-oriented analysis and design. Class diagrams show the classes of the system, their interrelationships (including inheritance, aggregation, and association), and the operations (methods( and attributes of the classes. Class diagrams are used for a wide variety of purposes, including both conceptual modeling and detailed design modeling. Class diagrams are the next level of detail below Domain Models. 7. We are building a miniature golf game. When the ball moves I need to detect collisions. Should collision detection be a responsibility of the ball class or its own class or some other class? Justify your answer in terms of good design principles and patterns. Collision detection should be its own class in order to obey the single responsibility principle. The attributes of a ball include, size, color, etc. However a collision is not really an attribute of a ball so it should not be part of the ball class. In addition we might want to include collisions between other entities, and thus collisions within the ball class would violate the principle of DRY. 4

8. The Open Close Principle is a design principle that be applied to classes, modules, and functions. What does it mean? The open/closed principle states software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification ; that is, such an entity can allow its behavior to be modified without altering its source code. The idea was that once completed, the implementation of a class could only be modified to correct errors; new or changed features would require that a different class be created. That class could reuse coding from the original class through inheritance. The derived subclass might or might not have the same interface as the original class. 9. GOMS is used as a model for analysis of UIs. What are the four facets of GOMS. Goals: are what the user intends to accomplish. Operators: are actions that are performed to reach the goal. Methods: are sequences of operators that accomplish a goal. There can be more than one method available to accomplish a single goal; Selection rules: are used to describe when a user would select a certain method over the others. 10. Write a question and answer for any of the Software Development material we have covered. 5