CSCI222. Revision Questions. 1. Characterize walkthroughs and reviews ( inspections ) and their use in the software development process.



Similar documents
The most suitable system methodology for the proposed system is drawn out.

CS4507 Advanced Software Engineering

Basic Unified Process: A Process for Small and Agile Projects

3C05: Unified Software Development Process

Increasing Development Knowledge with EPFC

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Life Cycles and Configuration Management

Classical Software Life Cycle Models

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Software Engineering I (02161)

Plan-Driven Methodologies

An Iterative and Agile Process Model for Teaching Software Engineering

SOFTWARE PROCESS MODELS

Development Methodologies

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software processes that are:

Software Engineering

Unit 1 Learning Objectives

Karunya University Dept. of Information Technology

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

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Applying 4+1 View Architecture with UML 2. White Paper

Developing SOA solutions using IBM SOA Foundation

Business Analysis From Yes-M Systems LLC Length: Approx 7 weeks/55 hours Audience: Students with or without IT experience or knowledge Student

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

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

RUP for Software Development Projects

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

Surveying and evaluating tools for managing processes for software intensive systems

How To Understand The Software Process

How Silk Central brings flexibility to agile development

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Software Project Management using an Iterative Lifecycle Model

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

Alternative Development Methodologies

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

What is a life cycle model?

}w!"#$%&'()+,-./012345<ya

Abstract. 1 Introduction

Software Lifecycles Models

The Unified Software Development Process

How we work. Digital Natives working methods

Title: Topic 3 Software process models (Topic03 Slide 1).

Chap 1. Introduction to Software Architecture

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

TOGAF usage in outsourcing of software development

D25-2. Agile and Scrum Introduction

General Problem Solving Model. Software Development Methodology. Chapter 2A

Introduction to OpenUP (Open Unified Process)

Family: Iterative Enhancement Origin: Ivar Jacobson, James Rumbaugh, Grady Booch, 1996 Defines process framework that is adaptable to

COMP 354 Introduction to Software Engineering

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Software Process and Models

Supporting Workflow Overview. CSC532 Fall06

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

A complete software development process of a general report publication service implemented using Web Services

Software Process Models. Xin Feng

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

A Survey of Service Oriented Development Methodologies

AN EVOLUTION PROCESS FOR SERVICE-ORIENTED SYSTEMS

Oracle Unified Method (OUM)

Software Design Models, Tools & Processes *

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

The Rap on RUP : An Introduction to the Rational Unified Process

Making the Most of the Software Development Process

6 Contracts and Scenarios in the Software Development Process

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

Software Process for QA

Chapter 4 Software Lifecycle and Performance Analysis

Visual Paradigm product adoption roadmap

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Development Life Cycle (SDLC)

Hamid Faridani March 2011

I219 Software Design Methodology

Object-Oriented Systems Analysis and Design

Requirements Management im Kontext von DevOps

Zen of VISIO Leona Rubin WebTechNY User Group Date: September, 2008

Leveraging Agile and CMMI for better Business Benefits Presented at HYDSPIN Mid-year Conference Jun-2014

Enhancing The ALM Experience

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

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Atomate Development Process. Quick Guide

A Framework for Software Product Line Engineering

Announcements. Project status demo in class

Software Engineering and Scientific Computing

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Lecture 03 ( ) Quality of the Software Development Process

To introduce software process models To describe three generic process models and when they may be used

Comparison and problems between Traditional and Agile software development methods

Software Development Methodologies

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Time Monitoring Tool Software Development Plan. Version <1.1>

How To Design An Information System

Masters of Science in Software & Information Systems

Transcription:

CSCI222 Revision Questions 1. Characterize walkthroughs and reviews ( inspections ) and their use in the software development process. 2. Describe the roles of participants and the proper organization of a code review (inspection). 3. Summarize your understanding of the purpose, structure, and conduct of a software review. 4. Explain the concepts of black box testing white box testing and describe their role in the software development process. 5. Explain the principles of the unit test approach. 6. Explain the role of each of the following elements of a xunit testing framework such as cppunit: TestFixture TestSuite TestCase TestRunner 7. Martin Fowler s commentary on JUnit: "Never in the field of software development was so much owed by so many to so few lines of code" Explain why the response to the unit testing approach has been so strongly favourable. 8. Test-twice, code once: The style here is to write a few lines of code, then a test that should run, or even better, to write a test that won't run, then write the code that will make it run. Explain why this approach is held to be advantageous. 9. Test Driven Development is not about testing, it is about design. Explain the basis of this claim.

10. Explain the Test Driven Development approach to software development; your explanation should cover both mechanism and goals. 11. Explain the purpose of, and the mechanisms used in code coverage testing. 12. Explain the role of each of the following testing methodologies: Unit testing Code coverage testing Performance testing Usability testing 13. Explain how source code control systems are used to support professional software developments. 14. Explain the following operations of a source code control system: SCCS s admin / subversion s import Get Update SCCS s delta / subversion s commit 15. Explain the two common strategies locking, and copy-modify-merge that are used to deal with concurrent updates in version management systems. 16. Explain how a typical source code control system such as SCCS (or more modern variants) stores different versions of a file. 17. Explain the advantages that come with the use of network access source control systems, such as CVS and subversion, as compared with systems like SCCS and RCS. 18. Explain the role of trunk, branches, and tags directories in a subversion project. 19. Explain the WebDAV and DeltaV technologies and how they relate to HTTP. 20. Explain how subversion uses the World Wide Web technologies to support remote access to repositories.

21. Describe how your project group utilized subversion in assignments 2 and 3. 22. The sequential waterfall model for software development is often ascribed to Winston Royce (1970). In fact, he was arguing for a different approach. Explain the process model that he envisaged and how and why it represents a more realistic approach than a purely sequential model. 23. Explain how Sod s law of software evolution, If a program is any good, then it will have to be changed, relates to software development. 24. Boehm characterized his software development process (1988) as risk driven in contrast to what he considered to be the document driven approach of a sequential waterfall process. Describe Boehm s proposed approach and explain how it addresses risks in the software development process. 25. Suggest why Rational chose to transfer the definition of its Unified Modelling Language to an independent standards body, but retained its control of its Unified Process approach to software development. 26. What were the changes in programming languages and applications that drove the development of UML and RUP? 27. Describe four characteristic features that are common to the different agile approaches to software development. 28. Explain the following terms as they are used in relation to the SCRUM approach to agile software development: Daily scrum Sprint Burn down Product backlog 29. Characterize projects for which you would recommend the following development approaches: Waterfall Rational Unified Process XP

30. Explain the following features of an XP project: User stories Architectural spike Project velocity Pair programming 31. Explain how the CRC (Classes-Responsibilities-Collaborations) approach suggests that you should refine initial concepts of the classes that you need in your programs. 32. By reference to at least three important example applications, explain the impact of open source software development on the software industry. 33. Explain why many companies, particularly IBM, provide financial sponsorship to assist open source software development. 34. Explain Linus's Law, Given enough eyeballs, all bugs are shallow, and how it relates to open source software development. 35. What do you think are the differences between open source software, as promoted by Raymond, Torvalds, and others, and Stallman s free software foundation. 36. What do you understand by the The 4+1 View Model of Software Architecture? 37. Kruchten has commented that UML is a notation that should be used in most cases simply to illustrate your design and to serve as a general roadmap for the corresponding implementation. Describe how you would utilize UML in designing a roadmap for your next application. 38. Explain what you understand by a use case and comment on the use of includes and extends features in elaborate use cases. 39. What is the role of a use case template and how do these templates relate to the normal concept of use case? 41. The OMG uses a hierarchical classification scheme for the UML diagrams that it proposes with the two main branches being structural diagrams and behavioural

diagrams. Identify four types of structural diagram, and four types of behavioural diagram and state their usage. 42. Describe how different UML diagrams support different views of a software system. 43. Explain the difference between categories and classes and give an account of how categories can be used in the initial steps of class discovery. 44. Explain how, in assignment 3, your group progressed from use cases to the development of class and sequence diagrams. 45. Explain the purpose of each of the following UML structural diagrams: Class diagram Package diagram Component diagram Deployment diagram 46. Explain the purpose of each of the following UML behavioural diagrams: Sequence diagram Communication diagram Activity diagram State machine diagram Timing diagram Interaction overview diagram 47. What do you understand by composition and aggregation of classes? Illustrate your answer with appropriate examples of such usages. 48. Explain how composition and aggregation can be realised in a C++ implementation of a class. 49. Sequence diagrams are a form of pseudo-code. Discuss. 50. At what stage in a project would you make most use of the following models and why would you be using them: Activity diagram Component diagram Deployment diagram Sequence diagram

51. Sketch the diagrammatic form and explain each of the following components from an UML activity diagram (most easily done by creating an activity that involves all the components and then annotating it): Start node Control flow Action Object node Fork Join Decision node Merge node Join node Accept action event node Timing trigger Partition (swimlane) 52. Explain the provided and required interfaces that the OMG added in UML-2; in what diagrams are these extensions used, and how are they represented in these diagrams. 53. What are the four phases of a project as defined by the Rational Unified Process, and what are the most important outputs from each phase? 54. Comment briefly on each of the following principles of the Rational Unified Process, explaining their importance in software development: Attack major risks early and continuously or they will attack you. Accommodate change early in the project. Baseline an executable architecture early on. Build your system with components. 55. Comment briefly on each of the following essentials of the Rational Unified Process, explaining why their importance in software development: Develop a Vision Identify and Mitigate Risks Incrementally Build and Test the Product Verify and Evaluate Results 56. RUP allows some variation in the level of ceremony (degree of detail in the process). Characterize applications that would require less process and those that require more detailed process. 57. Characterize six of the nine RUP disciplines and sketch how the workloads in each discipline would typically vary across the various phases of a RUP project.

58. What RUP roles did you fill in the group projects for assignments 2 and 3? What were the principal artefacts for which you were responsible? 59. Explain the benefits of an iterative and incremental approach to software development. 60. Outline the development of a typical RUP project showing the phases, iterations, and typical time expenditures. Identify the four main milestones in development. 61. What activities should you have accomplished in order to reach RUP s Lifecycle Objective Milestone? 62. What activities should you have accomplished in order to reach RUP s Lifecycle Architecture Milestone? 63. Explain the importance of the Software Vision in RUP and other software development processes. 64. Identify and mitigate risks. Risk management is one of the essentials of RUP; identify two common risks and plausible strategies for dealing with such risks. 65. What activities take place during the inception phase of a project and what are the principal artefacts produced in this phase? 66. Why is it so important in a modern system development to baseline an executable architecture at an early stage? 67. What activities take place during the elaboration phase of a project and what are the principal artefacts produced in this phase? 68. Inception broadens the solution space, elaboration narrows down to a product. Explain. 69. Characterize the styles of group meetings that would be expected in inception, elaboration, and construction phases. Did your group meetings follow the expected styles?

70. For one of the RUP roles listed below, sketch a rough activity diagram showing the typical workflow for the role and list the principal artefacts produced: Manager Systems analyst Software architect Designer User interface designer Implementer Tester 71. The recommended reference book, Pollice et al s Software Development for Small Teams: A RUP-centric approach, presented a case study of a software development. This study was discussed in lectures. The work of the construction phase was described in lectures as hacking ; the book authors prefer the term XPstyle. Whatever process was being used in the construction iterations was certainly not RUP. What was the most obvious defect from a RUP perspective? 72. Modern business software systems have evolved from major IBM software projects of the 1960s that lead to transaction systems and hierarchical databases. What is a transaction system? What is the structure of a hierarchical database and how are searches performed in such database systems? 73. By the late 1980s or early 1990s, the formerly centralized IT processing department of most corporations had evolved into an architecture disparagingly termed silo world. Characterize silo world architectures. Explain why this architecture had so commonly evolved. What is the principal disadvantage of silo world from the perspective of the corporation? 74. Explain why client-server architectures became so commonplace in the late 1980s and early 1990s. 75. How do RPC (Remote Procedure Call) and RMI (Remote Method Invocation) systems hide the details of networked inter-process communication. 76. Numerous supporting service processes were identified in the early 1990s and became commonplace by the late 1990s. Describe any four of the following services and how they support computing in the corporate world: Hierarchical database Relational database Transaction monitor Message queue Object request broker

Directory services Trader Web server 77. Briefly characterize any four of the following software architectures : Pipeline Repository Layered Client-server Work-queue Publish and subscribe Blackboard Event-based Transaction 78. Using standard architectural categories, such as those proposed by Garland and Shaw, describe the architecture that your group created for the project in assignment 3. 79. Explain why RUP attaches such a high importance to baselining an executable architecture by the end of the elaboration phase. 80. What do you understand by the term software component? 81. Briefly summarize how the Microsoft Corporation developed its view of software components. 82. Explain the role of plugins illustrate your answer with examples of plugins for web-browsers and web-servers. 83. Explain the container/component architecture and identify one common realization of this architecture. 84. Explain the OMG s concept of component and the various facets of a component such as attributes, event sources and sinks, and receptacles and interfaces. 85. It is often suggested that Requirements Engineering is the most important part of Software Engineering. Explain why requirements engineering is so important.

86. Explain how each of the following requirements elicitation techniques can help in the requirements elicitation process: Interviews Scenarios Prototypes Facilitated meetings 87. Requirements should state what a system should do, without stating how it should do it. Why is this distinction useful? 88. Summarise the issues that need to be addressed to achieve an effective facilitated requirements elicitation meeting. 89. Needs, features, requirements. What are their distinctions? How should you establish needs and then work from needs to requirements? 90. Explain the importance of standard questionnaires and use case templates in the requirements elicitation process. 91. FURPS+: Explain the acronym. Explain how the URPS+ components help define the architecture of a system. 92. Explain the importance of any two of the following Principles for User Interface Design : Metaphors from the real world Direct manipulation Consistency User-control Forgiveness