Exercises Engenharia de Software (cod. 5386 & 6633 )



Similar documents
How To Design An Information System

Chapter 8 Software Testing

Software Engineering OFSE Study Guide

What is a requirement? Software Requirements. Descriptions and specifications of a system

A Reference Architecture for Distributed Software Deployment

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

TDDC88 Lab 2 Unified Modeling Language (UML)

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

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

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

Source Code Translation

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

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Chapter 13: Program Development and Programming Languages

Requirements document for an automated teller machine. network

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Software testing. Objectives

Chapter 13 BUILDING INFORMATION SYSTEMS. How does building new systems produce organizational change?

Why the need for set of rules in Microsoft Outlook?

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

CREDIT CARD PROCESSING

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

Enhancement of Openbravo POS system

Software development process

How To Understand Software Engineering

Writing Use Case Scenarios for Model Driven Development

Lab Manual. Advanced Pr I IT 314

UML-based Test Generation and Execution

How To Create A Diagram On Rational Software Development Platform

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

Course Registration Case Study

Architecture Design Version1.0. Architecture Design CUSTOMER RELATION MANAGEMENT SYSTEM Version 1.0

How To Use The Dcml Framework

Introduction to Automated Testing

RFID Based 3D Indoor Navigation System Integrated with Smart Phones

Software Requirements

CMSC 435: Software Engineering Course overview. Topics covered today

Using Use Cases on Agile Projects

Online air-tickets booking system

User Manual - CFR Online Ticket. User Manual CFR Online Ticket

How To Understand The Software Development Lifecycle

Chapter 4 Software Lifecycle and Performance Analysis

MANAGING USER DATA IN A DIGITAL WORLD

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Unit Testing Scenario and Sample Unit Test Plan

Test-King.CTAL-TA_Syll2012_60,Q&A

Six ways to accelerate Android mobile application development

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

Chapter 13: Program Development and Programming Languages

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

User experience storyboards: Building better UIs with RUP, UML, and use cases

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

Classical Software Life Cycle Models

The Impact of Transaction-based Application Performance Management

Research on China New Generation of Ticketing System Based On Cloud Computing

ConPaaS: an integrated runtime environment for elastic cloud applications

Automation using Selenium

Software Architecture Document

CTI Higher Certificate in Information Systems (Engineering)

Fall Andrew U. Frank, October 23, 2011

Advanced Test-Driven Development

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Moving the Web Security Log Database

Agile Software Engineering Practice to Improve Project Success

Rapid Software Development

Software Engineering. System Modeling

Development of a generic IT service catalog as pre-arrangement for Service Level Agreements

Basic Trends of Modern Software Development

Accessing Your Database with JMP 10 JMP Discovery Conference 2012 Brian Corcoran SAS Institute

ASCETiC Whitepaper. Motivation. ASCETiC Toolbox Business Goals. Approach

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Cloud Services Catalog with Epsilon

The Universe of Discourse Design with Visible Context

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

A Database Re-engineering Workbench

Chapter 1: Key Concepts of Programming and Software Engineering

Using templates and Quick Parts to deal with common queries

XTendTraders.com Trading room simulator

BUSINESS RULES AND GAP ANALYSIS

IV. Software Lifecycles

Stock Trader System. Architecture Description

How to Design and Maintain a Secure ICS Network

Java Application Developer Certificate Program Competencies

SupportPac CB12. General Insurance Application (GENAPP) for IBM CICS Transaction Server

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

Karunya University Dept. of Information Technology

Service Oriented Architecture

1. Introduction 1.1 Methodology

Enterprise Architecture: Practical Guide to Logical Architecture

Transcription:

Exercises Engenharia de Software (cod. 5386 & 6633 ) Departamento de Informática Universidade da Beira Interior Ano lectivo 2010/2011 These exercises are taken from Software Engineering, 9th edition, Pearson Education, 2011. Simão Melo de Sousa Chapter 1. Introduction to Software Engineering 1. What is the most important dierence between generic software product development and custom software development? What might this mean in practice for users of generic software products? 2. What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant. 3. Apart from the challenges of heterogeneity, business and social change and trust and security, identify other problems and challenges that software engineering is likely to face in the 21st century (hint: think about the environment). 4. Based on your own knowledge of some of the application types discussed in section 1.1.2, explain, with examples, why dierent application types require specialized software engineering techniques to support their design and development. 5. Discuss whether professional engineers should be certied in the same way as doctors or lawyers. Chapter 2. Software Processes 1. Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems: 1

A system to control anti-lock braking in a car A virtual reality system to support software maintenance A university accounting system that replaces an existing system An interactive travel planning system that helps users plan journeys with the lowest environmental impact 2. Consider the reuse-based process model shown in Figure 2.3. Explain why it is essential to have two separate requirements engineering activities in the process. 3. Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process. 4. Explain why change is inevitable in complex systems and give examples (apart from prototyping and incremental delivery) of software process activities that help predict changes and make the software being developed more resilient to change. 5. What are the advantages of providing static and dynamic views of the software process as in the Rational Unied Process? Chapter 3. Agile Software Development 1. Explain how the principles underlying agile methods lead to the accelerated development and deployment of software. 2. When would you recommend against the use of an agile method for developing a software system? 3. Extreme programming expresses user requirements as stories, with each story written on a card. Discuss the advantages and disadvantages of this approach to requirements description. 4. Suggest four reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually. 5. It has been suggested that one of the problems of having a user closely involved with a software development team is that they âgo nativeâ. That is, they adopt the outlook of the development team and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid this problem and discuss the advantages and disadvantages of each approach. Chapter 4. Requirements Engineering 1. Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system: 2

An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identication number. The rail ticket is issued and their credit card account charged. When the user presses the start button, a menu display of potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card. Its validity is checked and the user is then requested to input a personal identier. When the credit transaction has been validated, the ticket is issued. 2. Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time. 3. Suggest how an engineer responsible for drawing up a system requirements specication might keep track of the relationships between functional and non-functional requirements. 4. Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system. 5. When emergency changes have to be made to systems, the system software may have to be modied before changes to the requirements have been approved. Suggest a model of a process for making these modications that will ensure that the requirements document and the system implementation do not become inconsistent. Chapter 5. System Modelling 1. How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system? 2. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrolment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to nd out about available courses 3. Look carefully at how messages and mailboxes are represented in the email system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an e-mail message. 4. Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine. 5. You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development? 3

Chapter 6. Architectural Design 1. When describing a system, explain why you may have to design the system architecture before the requirements specication is complete. 2. Explain why design conicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements. 3. Explain how you would use the reference model of CASE environments (available on the bookâs web pages) to compare the IDEs oered by different vendors of a programming language such as Java. 4. Using the generic model of a language processing system presented here, design the architecture of a system that accepts natural language commands and translates these into database queries in a language such as SQL. 5. Using the basic model of an information system as presented in Figure 6.16, suggest the components that might be part of an information system that allows users to view information about ights arriving and departing from a particular airport. Chapter 7. Design and Implementation 1. Using the structured notation shown in Figure 3 of chapter 7, specify the weather station use cases for Report status and Recongure. You should make reasonable assumptions about the functionality that is required here. 2. Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects. (a) a telephone (b) a printer for a personal computer (c) a personal stereo system (d) a bank account (e) a library catalogue 3. Draw a sequence diagram showing the interactions of objects in a group diary system, when a group of people are arranging a meeting. 4. Using examples, explain why conguration management is important when a team of people are developing a software product. 5. A small company has developed a specialized product that it congures specially for each customer. New customers usually have specic requirements to be incorporated into their system, and they pay for these to be developed. The company has an opportunity to bid for a new contract, which would more than double its customer base. The new customer also 4

wishes to have some involvement in the conguration of the system. Explain why, in these circumstances, it might be a good idea for the company owning the software to make it open source. Chapter 8. Software Testing 1. Explain why testing can only detect the presence of errors, not their absence. 2. You have been asked to test a method called catwhitespace in a Paragraph object that, within the paragraph, replaces sequences of blank characters with a single blank character. Identify testing partitions for this example and derive a set of tests for the catwhitespace method. 3. What is regression testing? Explain how the use of automated tests and a testing framework such as JUnit simplies regression testing. 4. Write a scenario that could be used to help design tests for the wilderness weather station system. 5. What do you understand by the term stress testing? Suggest how you might stress test the MHC-PMS. 5