Week 9 Implementation

Size: px
Start display at page:

Download "Week 9 Implementation"

Transcription

1 Week 9 Implementation Dr. Eliane l. Bodanese What is more important From a software engineering perspective: Good Gui? does what customer wants maintainable, extensible, reusable Commented Code? how is this reflected in YOUR project? 2 Page 1

2 Agenda Implementation Purpose of Implementation Role of Implementation in the Software Life Cycle Artifacts Workers Implementation Workflow Library System Example 3 Purpose of Implementation [1] Taking the result from design as input, we now need to implement the system in terms of components (source code, scripts, binaries, executables, etc.) Most of the system s architecture was already captured during design The system is implemented as a succession of small and manageable steps During implementation the system is distributed by mapping executable components onto nodes in the deployment model primarily based on active classes found during design 4 Page 2

3 Purpose of Implementation [1] Design classes and subsystems found during design are now implemented (as file components that contain source code) The components are tested, and then integrated by compiling them and linking them together into one or more executables, before they are sent to integration and system tests Implementation is the focus during the construction iterations Implementation is also done during elaboration phase executable architectural baseline during transition to handle late defects (beta releasing the system) 5 The focus of Implementation [1] Phases Core Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis Design Implementation Test Deployment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iterations Iter. #n+2 Iter. #m Iter. #m+1 6 Page 3

4 Workers and Artifacts Architect System Integrator responsible for responsible for Implementation Model Architecture Description Deployment Model Integration Building Plan 7 Workers and Artifacts Component Engineer responsible for Implementation Subsystem Interface Component 8 Page 4

5 Artifact: Implementation Model The implementation model describes how elements are implemented (source code files, executables) It also describes how the components are organised according to the implementation environment and the programming language how the components depend on each other The implementation model defines a hierarchy (Figure 10.3 [1]) The implementation model is represented by an implementation system that denotes the top-level subsystem of the model 9 Artifact: Implementation Model [1] 1 * * Implementation Model Implementation System Implementation Subsystem * * * * Interface Component 10 Page 5

6 Artifact: Component physical packaging of model elements, such as design classes Some standard stereotypes of components include the following: <<executable>> is a program that may be run on a node <<file>> is a file containing source code or data <<library>> is a static or dynamic library <<table>> is a database table <<document>> is a document 11 Artifact: Component these stereotypes may be modified to reflect what the components actually stand for in the specific implementation environment A component traces the design element it implements The component provides the same interface as the design element 12 Page 6

7 Artifact: Component Stubs A stub is a component with a skeletal or specialpurpose implementation that can be used to develop or test another component [1] Stubs can minimize the number of new components required in each version of the system simplifying integration problems and tests represents a component that is not yet built simple element that responds to a stimlus 13 Artifact: Component (Example) In the Interbank system, the design class Account Transfers is implemented in the AccountTransfers.java source code component This is because it is a convention and common use of Java to create one Java source code file for each class, although this is not enforced This is modelled by a trace dependency between the design and the implementation model (Figure 10.4 [1]). 14 Page 7

8 Artifact: Component (Example) In the lnterbank system, the Account Transfers design class provides a Transfers interface This interface is also provided by the AccountTransfers.java component, which implements the Account Transfers class (Figure 10.5 [1]). Design Model Implementation Model Account Transfers <<trace>> <<file>> AccountTransfers.java Transfers Transfers 15 Artifact: Implementation Subsystem Implementation subsystems may consist of components, interfaces, and other subsystems It provides interfaces (exportation of operations) It depends on the packaging mechanism of the implementation environment, such as A package in Java A project in Visual Basic A directory of files in a C++ project A subsystem in an integrated development environment such as Rational Apex A component view package in a visual modeling tool such as Rational Rose 16 Page 8

9 Artifact: Implementation Subsystem Here we discuss implementation on a generic level, applicable to most implementation environments Implementation subsystems are very strongly related to their traceable design subsystems (dependencies, interfaces, classes and/or inside subsystems) FIGURE 10.8 [1] An implementation subsystem in the implementation model tracing one-to-one to a design subsystem in the design model The subsystems in the different models provide the same interface (α) and is dependent on the same inter face (β) Components in the implementation subsystem implement classes in the design subsystem 17 Artifact: Implementation Subsystem Design Subsystem <trace> (1:1) Implementation Subsystem <<file>> <<file>> α β α β 18 Page 9

10 Artifact: Interface A component that realises an interface must implement all operations defined by the interface in a correct manner An implementation subsystem that provides an interface must also contain components that provide the inter face or other subsystems that provide the interface Example An Implementation Subsystem Providing an Interface The Interbank system has an implementation subsystem called AccountManagement (a Java package), which provides the Transfers interface (Figure 10.10[1]) The java code for the Transfers interface is illustrate in Figure [1] 19 Artifact: Interface Transfers package AccountManagement; //provided interfaces: public interface Transfers { AccountManagement <<Implementation Subsystem public Account create(customer owner, Money balance, AccountNumber account_id); public void Deposit (Money amount, String reason); } public void Withdraw (Money amount, String reason); 20 Page 10

11 Artifact Architecture Description The architecture description contains an architectural view* of the implementation model The following artifacts in the implementation model are usually considered architecturally significant: 1. subsystems, their interfaces, and the dependencies between them this decomposition is very significant for the architecture 2. Key components, such as components that trace to architecturally significant design classes *see glossary: Appendix C [1] 21 Artifact: Integration Build Plan The software must be built incrementally in manageable steps so that each step yields small integration or test problems The result of each step is called a build, which is an executable version of the system, normally a part of the system Each build is subject to integration tests (Chapter 11) before the subsequent build is created Each build has a version control so that it is possible to go back to the previous build 22 Page 11

12 Artifact: Integration Build Plan Benefits of this incremental approach: An executable version of the system is created early and can be used to demonstrate system features to internal project members as well as external stakeholders The integration tests start early as well Defects are easier to locate during integration tests Integration tests tend to be more thorough than system wide tests because they can focus on smaller, more manageable parts 23 Artifact: Integration Build Plan In an iterative development, each iteration will result in at least one build The functionality to be implemented in a specific iteration is often too complex to be integrated in a single build a sequence of builds may be created within the iteration, each representing a small increment to the system An integration build plan describes the sequence of builds required in an iteration 24 Page 12

13 Artifact: Integration Build Plan For each build the plan describes: The functionality that is expected to be implemented in the build, listing use cases and/or scenarios or parts of them, and supplemental requirements if needed Which parts of the implementation model are affected by the build, listing the subsystems and components required to implement the functionality expected by the build 25 Worker: Architect The architect is responsible for the integrity of the implementation model and ensures that the model as a whole is correct, consistent, and readable The architect is also responsible for the architecture of the implementation model the architecturally significant parts as depicted in the architectural views of the model The architect is responsible for the mapping of executable components onto nodes architectural view of the deployment model Finally the architect is responsible for the architecture description - Implementation 26 Page 13

14 Worker: Component Engineer The component engineer defines and maintains the source code of one or more file components making sure that each component is correct, i.e., it implements the correct functionality The component engineer also maintains the integrity of one or more implementation subsystems The component engineer needs to make sure that the components of the implementation subsystems are correct, that their dependencies to other subsystems and/or interfaces are correct, and that they correctly implement the interfaces they provide 27 Worker: System Integrator The integration of the system is the responsibility of the system integrator planning the sequence of builds required in each iteration integrating each build when its parts have been implemented The planning results is an integration build plan 28 Page 14

15 System Integrator: Stubs and Drivers Chapter 15 [1] role of stubs and drivers also seen in testing represents a component that is not yet built simple element that responds to a stimlus how might these help your own work (not just SE coursework)? 29 Implementation - Workflow The architect outlines the key components in the implementation model For each iteration, the system integrator plans the system integration supplies the sequence of builds of that iteration The system integrator also describes the functionality that should be implemented in each build and which sub systems and components will be affected by it The subsystems and components are then implemented by component engineers The resulting components are unit tested and passed to the system integrator for integration The system integrator then integrates the new components into a build and passes it to integration testers for integration tests 30 Page 15

16 Architect Architectural Implementation System Integrator Integrate System Implement a Component Engineer Implement a Subsystem Class Perform Unit Test 31 Activity 1. Architectural Implementation The architect has the following activities 1.1 Identify Architecturally significant components Identify executable components from the architectural design (subsystems and interfaces) The implementation trace one-to-one design components 1.2 Map executable components onto Nodes 1.3 Maintain, refine, and update the architecture description and its architectural views of the implementation and deployment models 32 Page 16

17 Design model Architect Component (outlined and mapped onto nodes) Deployment model Architectural Implementation [1] Architect. Description (views of the design and deployment models) Architecture Description 33 Activity 1. Architectural Implementation It is important not to identify too many components at this stage or delve into too many details An initial outline of the architecturally significant components would suffice Identifying Executable Components and Mapping Them onto Nodes Consider the active classes found during design and assign one executable component per active class, denoting a heavyweight process This mapping is very significant to the architecture of the system and should be depicted in the architectural view of the deployment model 34 Page 17

18 Activity 1. Architectural Implementation (Example) In the design model, there is an active class called Payment Request Processing In the implementation, we identify a corresponding executable component called PaymentRequestProcessing An active object of the Payment Request Processing class is allocated to the Buyer server node Since the PaymentRequestProcessing component implements the Payment request processing class, it should also be deployed onto the Buyer server node (Figure 10.19) [1] 35 Activity 1. Architectural Implementation (Example [1]) Design Model Implementation Model Payment Req. Processing <<trace>> <<executable>> PaymentRequestProcessing Node and their active objects Node and their component instances :Buyer Server :Payment Request Processing implies :Buyer Server <<executable>> :PaymentRequestProcessing 36 Page 18

19 Library Example: From Architectural Design <<Design subsystem>> Book Borrower s Management BookBorrower_UI BB_ui BookBorrower_Ctr BB_control Nodes Web Client Web/Lib Server 37 Activity 1. Architectural Implementation (Library Example) Design Model Implementation Model BB_control <<trace>> <<executable>> BB_control Node and their active objects Node and their component instances :Web Server :BB_control implies :Web/Library Server <<executable>> :BB_control 38 Page 19

20 Activity 2. Integrate System (1) Planning a build The build should add functionality to the previous build by implementing complete use cases and/or scenarios (if possible) Scenarios are paths through use cases it is easier to test complete use cases and/or scenarios than fragments of them The build should not include too many new or refined components hard to integrate and perform integration testing some components can be implemented as stubs to minimize the number of new components 39 Activity 2. Integrate System The build should expand upwards and to the sides in the layered subsystem hierarchy Initial builds should start in the lower layers (middleware and system- software layers) Subsequent builds then expand upwards to the applicationgeneral and application-specific layers It is hard to implement components in the upper layers if the lower layers are not already functioning properly 40 Page 20

21 Activity 2. Integrate System When planning a build is crucial to identify the right requirements to be implemented and to leave the rest of the requirements for future builds For each potential use case to be implemented: Consider the design of the use case by identifying its corresponding use-case realisation Identify the design subsystems and classes that participate in the use-case realisation Identify the implementation subsystems and components in the implementation model tracing to those design subsystems and classes 41 Activity 2. Integrate System For each potential use case to be implemented (cont): Consider the impact in implementing these subsystems and components on top of the current build Evaluate whether this impact is acceptable If so, plan to implement the use case in this build Otherwise, leave it for a future build The results should be captured in the integration build plan and communicated to the appropriate component engineers 42 Page 21

22 Activity 2. Integrate System Integrating a Build collect the right versions of the implementation subsystems and components, compile them, and link them into a build The resulting build passes through integration tests If it passes, the build passes through system tests (if it is the last build created within an iteration (Chapter 11)) 43 Activity 3. Implement a Subsystem The component engineer needs to make sure the subsystem implementation fulfils correctly its role in all builds Maintaining the subsystem contents: If the subsystem components were outlined by the architect, probably the component engineer needs to refine them Remember that the implementation keeps the trace one-to-one with the design components The implementation subsystem must contain component(s) or internal subsystem(s) that provide the correct interface (outlined in the design) After these considerations, the component engineer start to implement the components within the subsystem and unit test them. 44 Page 22

23 Integration Build Plan Architecture Description (view of the implement. model) Component Engineer Implementation Subsystem (implemented for a build) Implement a Subsystem Design Subsystem Interface (designed) [1] Interface (implemented for a build) 45 Activity 3. Implement a Subsystem [1] Design Subsystem <trace> (1:1) Implementation Subsystem <<file>> <<file>> Classes required by the current build α β α β 46 Page 23

24 Activity 3. Implement a Subsystem (Example [1]) A Subsystem Providing an Interface The subsystem Buyer s Invoice Management needs to provide the Invoice interface in the current build The component engineer responsible for the subsystem decides to let the Invoice Processing component realise that interface (Figure 10.24) [1] Buyer s Invoice Management Invoice Invoice Processing 47 Activity 3. Implement a Subsystem (Library Example) Printer s Management Print_return_date Print LM s Management ILM_control Member_ID 48 Page 24

25 Activity 4. Implement a Class 4.1 Outlining the File Component The source code that implements a design class resides in a file component You also need to consider the scope of the file component You can code several classes in one file, if the programming environment allows you to do that (java does not -.java ->.class) Design workflow may have used syntax of programming language source code maybe be easily generated However, only the signatures of operations are generated, the operations must still be implemented 49 [1] Design Class Component Engineer (designed) Component Implement a (implemented) Interface Class (provided by the design class) 50 Page 25

26 Activity 4. Implement a Class 4.2 Implementing operations Each operation of the design class needs to be implemented, unless they are virtual (or abstract) and then they are implemented by the descendants (remember the example in chapter 9 the trade design object page 258 [1]) The term methods denotes the implementation of the operations The implementation of the operation is the coding of the algorithm that realises the operation and the data structures involved 4.3 Making the component provide the right interfaces The component must provide the same interface(s) that its correspondent design component 51 1public class Account 2{ 3 //In this example the Account has a balance only 4 private Money balance = new Money (0); 5 public Money withdraw (Money amount) 6 { 7 // First we must ensure that the balance is at least as big as 8 // the amount to withdraw 9 if balance >= amount 10 // Then we check that we will not withdraw negative amount 11 then 12 { if amount >= 0 design by contract 13 then{ 14 try{ 15 balance = balance amount; 16 return amount 17 } 18 catch (Exception exc) {} 19 //Deal with failures reducing the balance...to be defined 20 } 21 else {return 0} 22 } 23 else {return 0} 24 } 25} (Example [1]) 52 Page 26

27 Activity 5. Performing Unit Test The component engineer tests the implemented components as individual units (Figure [1]) Two types of unit testing are performed: 5.1 Specification testing, or black-box testing verifies the component s behaviour without considering how that behaviour is implemented within the component what output the component will return when given certain input and when starting in a particular state 53 Black Box Testing cont. To consider all possible inputs, starting states, and outputs is impractical Instead, the ranges of inputs, outputs, and states are divided into equivalence classes An equivalence class is a set of input, state, or output values for which an object is supposed to behave similarly [1] By testing a component for each combination of the equivalent classes, it is possible to achieve almost the same test coverage as when testing all individual value combinations This dramatically reduces time and effort 54 Page 27

28 [1] Component (implemented) Component Engineer Interface Perform Unit Test Component (unit tested) 55 Activity 5. Performing Unit Test 5.2 Structure testing, or white-box testing verifies that a component works internally as intended the component engineer should test all code (every statement has to be executed at least once) the component engineer should also test the most interesting paths, most critical paths, the least known paths, and the high risk paths through the code 56 Page 28

29 Activity 5. Specification Testing (Example [1]) Equivalence Classes The state of an account has three equivalence classes: empty, negative balance (perhaps overdrawn), and positive balance. The input arguments can be divided into two equivalence classes: zero and positive numbers. The output arguments fall into two equivalence classes: positive amount withdrawn and nothing withdrawn. The component engineer should choose values for the tests based on heuristics: Normal values in the allowed range for each equivalence class, such as withdrawing 4, 3.14, or 5,923, from an account. Values that are on the boundary of the equivalence classes, such as withdrawing 0, the smallest possible positive number (e.g., ) and the largest possible number. Values outside the eligible equivalence classes, such as withdrawing a value greater or smaller than the possible range. Illegal values, such as withdrawing -14, and A. 57 Activity 5. Specification Testing (Example [1]) When choosing the tests, the component engineer should try to cover all the combinations of input, state, and output equivalence classes, such as withdrawing $14 from An account with $ , resulting in nothing being withdrawn. An account with $0, resulting in nothing being withdrawn. An account with $13.125, resulting in nothing being withdrawn. An account with $15, resulting in $14 being withdrawn. The net result of these four test cases is that all eligible combinations of equivalence classes for state (positive balance and negative balance) and output (positive amount withdrawn and nothing withdrawn) are tested for one value in one equivalence class 58 Page 29

30 Activity 5. Specification Testing (Example [1]) The component engineer should then choose to test cases with similar state (perhaps $ , 0, 3, and 15) and output values ($0 and 14), but with another value from the same input equivalence class, such as Then the component engineer prepares similar ranges of test cases for other equivalence classes of input values, such as trying to withdraw $0, 4, 3.14, 5,923, , 37,000,000,000,000,000,000,000 (If that is the largest possible number), 37,000,000,000,000,000,000,001,-14, and A. 59 Activity 5. Structure Testing (Example [1]) Performing structure test in the code example for Account (Figure [1], reproduced in slide 45) we must ensure that all if-statements evaluate to both true and false, and that all code is executed For example, we may test the following: Withdrawing $50 from an Account with a balance of $100, where the system will execute rows Withdrawing $-50 from an Account with a balance of $10, where the system will execute row 23. Withdrawing $50 from an Account with a balance of $10, where the system will execute row 21. Triggering an exception when the system executes the statement balance = balance - amount, where the system will execute rows Page 30

31 Library System Case Study Now we give a simplified example of the java code implementation for the use case Identify Library Member A dummy class that tests the use case A simplified implementation of the ILM_control and ILM_UI classes An example of the creation and use of an interface (Member_ID). 61 import javax.swing.joptionpane; // JOptionPane - a predefined dialog box // that allows the user to input a value (input dialog) and print a // message (message dialog) public class Identify_LM_test { public static void main (String args[]) { boolean result; ILM_control lmc = new ILM_control(); result = lmc.checklmid(); if (result == true) JOptionPane.showMessageDialog(null, "Your library number was accepted","result", JOptionPane.PLAIN_MESSAGE); else JOptionPane.showMessageDialog(null, "Your library number was refused", "Result", JOptionPane.PLAIN_MESSAGE); } (Library Example for Identify LM) System.exit(0); // Terminates the program } 62 Page 31

32 public class ILM_control extends Object implements Member_ID { private int lm_db[]; //declares the array as private public ILM_control () // public constructor for ILM_control { lm_db = new int [200]; //Allocates memory to the array that will simulate the data base for LM numbers //Emulates a data base, initialising the data base with some Library Numbers for (int i = 0; i < lm_db.length; i++) lm_db[i] = i; } public boolean checklmid() { int lmnumber; boolean result; ILM_UI ilmui = new ILM_UI(); // create an instance of ILM_UI // send request to LM_UI to ask for the Library number of the user lmnumber = ilmui.get_lm_number(); result = false; for (int i = 0; i < lm_db.length; i++) { if ( lmnumber == lm_db[i]) { result = true; break; } (Library Example for Identify LM) } return result; } } 63 (Library Example for Identify LM) // file Member_ID.java public interface Member_ID { // Add method to return the outcome of the LM's ID check // true = okay, false = refuse } public boolean checklmid(); 64 Page 32

33 // JOptionPane - a predefined dialog box that allows the user to input a //value (input dialog) and print a message (message dialog) import javax.swing.joptionpane; public class ILM_UI extends Object{ private String LM_id; //declares the string to contain the LM number private int number; } // public constructor for ILM_UI public ILM_UI () { // read from the keyboard the number entered by the library user LM_id = JOptionPane.showInputDialog ("Enter your Library Number"); } //converts the entered id from type String to type int number = Integer.parseInt(LM_id); public int get_lm_number() { return number; } (Library Example for Identify LM) 65 References [1] Jacobson I., Booch G., Rumbaugh J., The Unified Software Development Process, Chapter 10, Addison- Wesley, Stevens P., Pooley R. Using UML Software Engineering with Objects and Components. Addison- Wesley, Fowler M., Scott K., UML Distilled A Brief Guide to the Standard Object Modelling Language, Addison-Wesley, Further Reading: [1] Chapter 15, Construction Phase 66 Page 33

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Implementation Work Flow. CSC 532: Advanced Software Engineer Louisiana Tech University

Implementation Work Flow. CSC 532: Advanced Software Engineer Louisiana Tech University Implementation Work Flow CSC 532: Advanced Software Engineer Louisiana Tech University Topics to cover Introduction Artifacts Workers Activities Introduction l Fundamental goal is to build a working version

More information

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia Topic: Software Verification, Validation and Testing Software Engineering Faculty of Computing Universiti Teknologi Malaysia 2016 Software Engineering 2 Recap on SDLC Phases & Artefacts Domain Analysis

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

Software Engineering

Software Engineering Software Engineering A systematic approach to the analysis, design, implementation and maintenance of software. Software Development Method by Jan Pettersen Nytun, page 1 Software Engineering Methods Most

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1. Outline of UML and Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule Feb. 27th 13:00 Scope and Goal 14:30 Basic Concepts on Representing the World (object, class, association,

More information

Outline of Unified Process

Outline of Unified Process Outline of Unified Process Koichiro OCHIMIZU School of Information Science JAIST Schedule(3/3) March 12 13:00 Unified Process and COMET 14:30 Case Study of Elevator Control System (problem definition,

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Best Practices for Model-Based Systems Engineering

Best Practices for Model-Based Systems Engineering Seminar / Workshop Best Practices for Model-Based Systems Engineering Hans-Peter Hoffmann, Ph.D. Chief Systems Methodologist, IBM Rational Software hoffmape@us.ibm.com Overview Successfully delivering

More information

UML Views of a System

UML Views of a System UML Views of a System The architecture of a system is the fundamental organization of the system as a whole. The five UML Views: Use Case View: focuses on scenarios Design View: focuses on the vocabulary

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 18 Department of Computer Engineering Implementation Workflow 1 Implementation Workflow Implementation is primarily about creating code. However, the OO analyst/designer

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Rational Software White paper

Rational Software White paper Unifying Enterprise Development Teams with the UML Grady Booch Rational Software White paper 1 There is a fundamental paradox at play in contemporary software development. On the one hand, organizations

More information

Inheritance and Interfaces

Inheritance and Interfaces Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review 1 Responsibility-Driven Design (RDD) Introduced in 1990; a UML-based

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

Introduction - SENG 330. Object-Oriented Analysis and Design

Introduction - SENG 330. Object-Oriented Analysis and Design Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary

More information

index_ qxd 7/18/02 11:48 AM Page 259 Index

index_ qxd 7/18/02 11:48 AM Page 259 Index index_259-265.qxd 7/18/02 11:48 AM Page 259 Index acceptance testing, 222 activity definition, 249 key concept in RUP, 40 Actor artifact analysis and iterative development, 98 described, 97 136 in the

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Index. brief description section (Use Case Specification documents), 138 Browser window (Rational Rose), 257 Business Rules document, 212

Index. brief description section (Use Case Specification documents), 138 Browser window (Rational Rose), 257 Business Rules document, 212 Index A abstract requirements, 10 activity diagram section (Use Case -144 actors identifying, 130-131 relationships, generalization between, 137 use cases, 133-135 Actual completion date attribute actual

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

History of object-oriented approaches

History of object-oriented approaches Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented

More information

EXAM Computer Science 1 Part 1

EXAM Computer Science 1 Part 1 Maastricht University Faculty of Humanities and Science Department of Knowledge Engineering EXAM Computer Science 1 Part 1 Block 1.1: Computer Science 1 Code: KEN1120 Examiner: Kurt Driessens Date: Januari

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

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

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt What

More information

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

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A 1. What is an object? An object is a combination of data and logic; the representation of some realworld

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved Chapter 12 UML and Patterns Copyright 2008 Pearson Addison-Wesley. All rights reserved Introduction to UML and Patterns UML and patterns are two software design tools that can be used within the context

More information

UML Diagrams & And Some Of Their Elements

UML Diagrams & And Some Of Their Elements UML Diagrams 2013, J.P.N., page 1 UML Diagrams & And Some Of Their Elements UML Diagrams 2013, J.P.N., page 2 Building blocks of the UML As part of a model you have: modelling elements relationships between

More information

The Web Service Sample

The Web Service Sample The Web Service Sample Catapulse Pacitic Bank The Rational Unified Process is a roadmap for engineering a piece of software. It is flexible and scalable enough to be applied to projects of varying sizes.

More information

CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I

CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I Introduction to OOAD What is OOAD? What is UML? What are the United process(up) phases - Case study the NextGen POS system, Inception -Use case Modeling

More information

Object Oriented Model of Objectory Process

Object Oriented Model of Objectory Process Object Oriented Model of Objectory Process Characteristics of Original Process The original Objectory Process version 4.0 (demo version, Rational, 1997) is complex, but it is made more manageable by viewing

More information

Anatomy of a Class Encapsulation Anatomy of a Method

Anatomy of a Class Encapsulation Anatomy of a Method Writing Classes Writing Classes We've been using predefined classes. Now we will learn to write our own classes to define objects Chapter 4 focuses on: class definitions instance data encapsulation and

More information

MechEng SE3 Lecture 7 Domain Modelling

MechEng SE3 Lecture 7 Domain Modelling MechEng SE3 Lecture 7 Domain Modelling Simon Gay (slides by Phil Gray) 17 February 2010 1 This week s supplementary reading Zero Balances and Zero Responsibility Michael Bolton http://www.developsense.com/essays/zero.html

More information

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017

CSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017 This week the main activity was a quiz activity, with a structure similar to our Friday lecture activities. The retrospective for the quiz is in Quiz-07- retrospective.pdf This retrospective explores the

More information

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far

Department of Electrical & Computer Engineering, University of Calgary. B.H. Far SENG 421: Software Metrics Software Test Metrics (Chapter 10) Department of Electrical & Computer Engineering, University of Calgary B.H. Far (far@ucalgary.ca) http://www.enel.ucalgary.ca/people/far/lectures/seng421/10/

More information

NIMSAD Evaluation of the Rational Unified Process

NIMSAD Evaluation of the Rational Unified Process ارائه شده توسط: سايت ه فا مرجع جديد مقا ت ه شده از ن ت معت NIMSAD Evaluation of the Rational Unified Process Introduction Element 1: The Problem Situation Element 2: The Methodology User (Intended Problem

More information

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Dr. Marenglen Biba Laboratory Session: Exercises on classes Analogy to help you understand classes and their contents. Suppose you want to drive a car and make it go faster by pressing down

More information

BDSA Introduction to OOAD. Jakob E. Bardram

BDSA Introduction to OOAD. Jakob E. Bardram BDSA Introduction to OOAD Jakob E. Bardram Programming is Fun Developing Quality Software is Hard. Craig Larman in [OOAD] book 2 Object-Oriented Analysis & Design (OOAD) This Lecture Unified Modeling Language

More information

Designing Robust Classes

Designing Robust Classes Designing Robust Classes Learning Goals You must be able to:! specify a robust data abstraction! implement a robust class! design robust software! use Java exceptions Specifications and Implementations

More information

Course PJL. Arithmetic Operations

Course PJL. Arithmetic Operations Outline Oman College of Management and Technology Course 503200 PJL Handout 5 Arithmetic Operations CS/MIS Department 1 // Fig. 2.9: Addition.java 2 // Addition program that displays the sum of two numbers.

More information

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML MSc programme (induction week) Department of Informatics INTRODUCTION TO UML Some of this material is based on Bernd Bruegge and Allen H. Dutoit (2009) Object-Oriented Software Engineering: Using UML,

More information

OO Analysis and Design with UML 2 and UP

OO Analysis and Design with UML 2 and UP OO Analysis and Design with UML 2 and UP Dr. Jim Arlow, Zuhlke Engineering Limited Clear View Training 2008 v2.5 1 UML principles Clear View Training 2008 v2.5 2 1.2 What is UML? Unified Modelling Language

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

COMP-202 Unit 8: Defining Your Own Classes. CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation

COMP-202 Unit 8: Defining Your Own Classes. CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation COMP-202 Unit 8: Defining Your Own Classes CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation Defining Our Own Classes (1) So far, we have been creating

More information

Software Modeling & Analysis

Software Modeling & Analysis Software Modeling & Analysis OOPT (Object Oriented Process with Trace) Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr What is OOPT? OOPT (Object Oriented Process with Trace) A software process based on RUP Revision

More information

Object-Oriented Analysis and Design. Pre-UML Situation. The Unified Modeling Language. Unification Efforts

Object-Oriented Analysis and Design. Pre-UML Situation. The Unified Modeling Language. Unification Efforts Object-Oriented Analysis and Design Analysis vs. Design Analysis Activities Finding the Objects/ Classes An Analysis Example The Unified Modeling Language Pre-UML Situation Early 90s Explosion of OO methods/notations

More information

CSC 111, Test 1 (Fall 2009)

CSC 111, Test 1 (Fall 2009) CSC 111, Test 1 (Fall 2009) Name There are 8 questions, many with sub-questions, as part of this test. Make sure you read and answer each question carefully and fully. Partial credit, while possible, will

More information

Chapter 11, Testing, Part 2: Integration and System Testing

Chapter 11, Testing, Part 2: Integration and System Testing Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 11, Testing, Part 2: Integration and System Testing Overview Integration testing Big bang Bottom up Top down Sandwich System testing

More information

Lecture 13 Introduction to Software Architecture

Lecture 13 Introduction to Software Architecture Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

Combining UML and Z in a Software Process

Combining UML and Z in a Software Process Combining UML and Z in a Software Process Ebba Thora Hvannberg University of Iceland, Reykjavik, Iceland, ebba@hi.is Abstract: Observing students writing specification in UML and Z has motivated the work

More information

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization OBJECT ORIENTED DESIGN with the Unified Process Use Case Realization Objectives Explain the purpose and objectives of objectoriented design Develop design class diagrams Develop detailed sequence diagrams

More information

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java

Objectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem

More information

A Proposed Method in Agile Practices to Create Requirements Documentation and Test Cases

A Proposed Method in Agile Practices to Create Requirements Documentation and Test Cases A Proposed Method in Agile Practices to Create Requirements Documentation and Cases Palash Bera 1 and Abhimanyu Gupta 2 1 Saint Louis University pbera@slu.edu 2 Saint Louis University abhimanyugupta@slu.edu

More information

Introduction to Classes and Objects Pearson Education, Inc. All rights reserved.

Introduction to Classes and Objects Pearson Education, Inc. All rights reserved. 1 3 Introduction to Classes and Objects 2 You will see something new. Two things. And I call them Thing One and Thing Two. Dr. Theodor Seuss Geisel Nothing can have value without being an object of utility.

More information

Comp 249 Programming Methodology Chapter 9 Exception Handling

Comp 249 Programming Methodology Chapter 9 Exception Handling Comp 249 Programming Methodology Chapter 9 Exception Handling Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,

More information

Designing Component-Based Architectures with Rational Rose RealTime

Designing Component-Based Architectures with Rational Rose RealTime Designing Component-Based Architectures with Rational Rose RealTime by Reedy Feggins Senior System Engineer Rational Software Rose RealTime is a comprehensive visual development environment that delivers

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

1 OBJECT-ORIENTED ANALYSIS

1 OBJECT-ORIENTED ANALYSIS UML and Patterns.book Page 3 Sunday, August 9, 200 2:50 PM Chapter OBJECT-ORIENTED ANALYSIS AND DESIGN The shift of focus (to patterns) will have a profound and enduring effect on the way we write programs.

More information

About this exam review

About this exam review Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review

More information

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester Lab Manual Object Oriented Analysis And Design TE(Computer) VI semester Index Sr. No. Title of Programming Assignment Page No. 1 2 3 4 5 6 7 8 9 10 Study of Use Case Diagram Study of Activity Diagram Study

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

Experiment no 4 Study of Class Diagram in Rational Rose

Experiment no 4 Study of Class Diagram in Rational Rose Experiment no 4 Study of Class Diagram in Rational Rose Objective-: To studyclass Diagram in Rational Rose. References-: www.developer.com The Unified Modeling Language User Guide by Grady Booch Mastering

More information

Modeling Requirements

Modeling Requirements Modeling Requirements Critical Embedded Systems Dr. Balázs Polgár Prepared by Budapest University of Technology and Economics Faculty of Electrical Engineering and Informatics Dept. of Measurement and

More information

The Unified Modeling Language (UML)

The Unified Modeling Language (UML) The Unified Modeling Language (UML) A Very Distilled Introduction to The Unified Modeling Language (UML). A quick introduction to UML is given. Thereafter, the surface of class and activity diagrams and

More information

PROGRAMMING FUNDAMENTALS

PROGRAMMING FUNDAMENTALS PROGRAMMING FUNDAMENTALS Q1. Name any two Object Oriented Programming languages? Q2. Why is java called a platform independent language? Q3. Elaborate the java Compilation process. Q4. Why do we write

More information

CMSC 202. Exceptions

CMSC 202. Exceptions CMSC 202 Exceptions Error Handling In the ideal world, all errors would occur when your code is compiled. That won t happen. Errors which occur when your code is running must be handled by some mechanism

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Introduction to Software Development (ISD) Week 3

Introduction to Software Development (ISD) Week 3 Introduction to Software Development (ISD) Week 3 Autumn term 2012 Aims of Week 3 To learn about while, for, and do loops To understand and use nested loops To implement programs that read and process

More information

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram UML Fundamental NetFusion Tech. Co., Ltd. Jack Lee 2008/4/7 1 Use-case diagram Class diagram Sequence diagram OutLine Communication diagram State machine Activity diagram 2 1 What is UML? Unified Modeling

More information

CS112 Lecture: Defining Instantiable Classes

CS112 Lecture: Defining Instantiable Classes CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Introduction INFORMATION SYSTEMS MODELLING, UML AND SERVICE DESCRIPTION

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. Object Oriented Programming

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. Object Oriented Programming BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT Object Oriented Programming Examiner s Report March 2017 A1. a) Explain what is meant by the following terms:

More information

BSc. (Hons.) Software Engineering. Examinations for / Semester 2

BSc. (Hons.) Software Engineering. Examinations for / Semester 2 BSc. (Hons.) Software Engineering Cohort: BSE/04/PT Examinations for 2005-2006 / Semester 2 MODULE: OBJECT ORIENTED PROGRAMMING MODULE CODE: BISE050 Duration: 2 Hours Reading Time: 5 Minutes Instructions

More information

3 CREATING YOUR FIRST JAVA APPLICATION (USING WINDOWS)

3 CREATING YOUR FIRST JAVA APPLICATION (USING WINDOWS) GETTING STARTED: YOUR FIRST JAVA APPLICATION 15 3 CREATING YOUR FIRST JAVA APPLICATION (USING WINDOWS) GETTING STARTED: YOUR FIRST JAVA APPLICATION Checklist: The most recent version of Java SE Development

More information

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class

CS112 Lecture: Defining Classes. 1. To describe the process of defining an instantiable class CS112 Lecture: Defining Classes Last revised 2/3/06 Objectives: 1. To describe the process of defining an instantiable class Materials: 1. BlueJ SavingsAccount example project 2. Handout of code for SavingsAccount

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Engineering Design w/embedded Systems

Engineering Design w/embedded Systems 1 / 40 Engineering Design w/embedded Systems Lecture 33 UML Patrick Lam University of Waterloo April 4, 2013 2 / 40 What is UML? Unified Modelling Language (UML): specify and document architecture of large

More information

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

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 Sample ISTQB examination 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 2 Regression testing should

More information

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802 UNIT-II Lecture Notes On UML IMPORTANCE OF MODELING, BRIEF OVERVIEW OF OBJECT MODELING TECHNOLOGY (OMT) BY RAMBAUGH, BOOCH METHODOLOGY, USE CASE DRIVE APPROACH (OOSE) BY JACKOBSON. KHALID AMIN AKHOON 1

More information

OO Project Management

OO Project Management OO Project Management Twin Cities Java User s Group November 17, 1999 Mary Poppendieck Poppendieck.LLC Object Oriented Development Objects Simulate the Real World Example: Process Control On/Off Switch

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018 Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 1: Types and Control Flow http://courses.cs.cornell.edu/cs2110/2018su Lecture 1 Outline 2 Languages Overview Imperative

More information

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading:

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading: CompSci 280 S2 2107 Introduction to Software Development Today s Agenda Topics: Introduction Activity Diagram Object interaction Sequence Diagram Reading: Booch G.,The Unified Modeling Language User Guide,

More information

APCS Semester #1 Final Exam Practice Problems

APCS Semester #1 Final Exam Practice Problems Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester

More information

Motivation. Compiler. Our ultimate goal: Hack code. Jack code (example) Translate high-level programs into executable code. return; } } return

Motivation. Compiler. Our ultimate goal: Hack code. Jack code (example) Translate high-level programs into executable code. return; } } return Motivation Jack code (example) class class Main Main { { static static int int x; x; function function void void main() main() { { Inputs Inputs and and multiplies multiplies two two numbers numbers var

More information

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques 1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures:

More information

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

CSCI Lab 9 Implementing and Using a Binary Search Tree (BST)

CSCI Lab 9 Implementing and Using a Binary Search Tree (BST) CSCI Lab 9 Implementing and Using a Binary Search Tree (BST) Preliminaries In this lab you will implement a binary search tree and use it in the WorkerManager program from Lab 3. Start by copying this

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

More information