Software Engineering with Objects and Components Open Issues and Course Summary

Similar documents
Unified Modelling Language

Requirements and Design Overview

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Chapter 1: Programming Principles

Object-Oriented Design

defined. defined. defined. defined. defined. defined. defined. defined. defined.

CS487 Midterm Exam Summer 2005

Object-Oriented Analysis and Design Using UML (OO-226)

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Incremental development A.Y. 2018/2019

OMG MDA Implementers Conference. UML 2.0 Support for MDA in Dynamic Models: How Practical is Execution from Behavioral Models?

Chapter 1: Principles of Programming and Software Engineering

Object-Oriented Analysis and Design Using UML

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Lecture 7: Software Processes. Refresher: Software Always Evolves

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

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

5 Object Oriented Analysis

Introduction to UML. Danang Wahyu utomo

What's New in UML 2.0

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

Unit Wise Questions. Unit-1 Concepts

Topic : Object Oriented Design Principles

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

Object-Oriented Software Engineering Practical Software Development using UML and Java

Testing in the Agile World

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

Outline of Unified Process

09. Component-Level Design

Software Design and Implementation. Example Architecture KIWC

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

Systems Analysis and Design in a Changing World, Fourth Edition

PROJECT DOCUMENTATION WITH ENTERPRISE ARCHITECT

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

CMPE/SE 135 Object-Oriented Analysis and Design

Objectives. Connecting with Computer Science 2

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

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

10조 이호진 이지 호

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

History of object-oriented approaches

Chapter 8: Class and Method Design

Business Process Modelling

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

CS 575: Software Design

UNIT-I Introduction of Object Oriented Modeling

Enterprise Architect Training Courses

Elementary Concepts of Object Class

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Index. : (colon), 80 <<>> (guillemets), 34, 56

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Unit 1 Introduction to Software Engineering

Topic 3 Unified Modeling Language UML. Objective: Student will use UML to represent relationshiops between objects, its structure and dynamics.

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language?

Answers NOT TO BE PRINTED

Software Process. Software Process

"Charting the Course... Agile Database Design Techniques Course Summary

SysML, It s Coming Are You Prepared?

System context. Usage facet. IT system facet. Core activities

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development.

Architecture-Centric Evolution in Software Product Lines:

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Defining Domain-Specific Modeling Languages

CHAPTER 9 DESIGN ENGINEERING. Overview

USING THE UNIFIED MODELING LANGUAGE (UML) TO REPRESENT ARTEFACTS IN THE ZACHMAN FRAMEWORK. Mini-dissertation by LYNETTE REGINA ELS ( )

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

OO Analysis and Design with UML 2 and UP

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Introduction to Software Engineering (ESE : Einführung in SE)

Design and Evolution of an Agent-Based CASE System for OOAD

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

BDSA Introduction to OOAD. Jakob E. Bardram

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

QUIZ #5 - Solutions (5pts each)

Object-Oriented Design

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

MechEng SE3 Lecture 7 Domain Modelling

Design Pattern Detection

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Design of Embedded Systems

Architectural Blueprint

bahmanzamani.com Computer Engineering i Dept. University of Isfahan

VO Software Engineering

This course includes 14 lessons and 5 Course Activities. Each lesson contains one or more Lesson Activities. The lessons cover the following topics:

IS 0020 Program Design and Software Tools

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

Automated Acceptance Testing

Notation Part 1. Object Orientated Analysis and Design. Benjamin Kenwright

Review Software Engineering October, 7, Adrian Iftene

ASSURING DATA INTEROPERABILITY THROUGH THE USE OF FORMAL MODELS OF VISA PAYMENT MESSAGES (Category: Practice-Oriented Paper)

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

Workshop Data Modelling [en]

Principles of Software Construction: Objects, Design, and Concurrency

Integrating Software Lifecycle Models into a uniform Software Engineering Model

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

Software Development Methodologies

Transcription:

Software Engineering with Objects and Components Open Issues and Course Summary Massimo Felici

Software Engineering with Objects and Components Software development process Lifecycle models and main stages Process management Testing Maintenance and Evolution Introduction to UML Diagrams Use cases Class diagrams CRC cards Interaction diagrams Activity and Statechart diagrams Reuse and components 1

Open Questions 2 Software Engineering with Objects and Components Is software engineering with objects and components a good way of building systems? Why are we doing this? To build good systems What are good systems? Why do we need them?

Why a unified language? A unified language should be (and UML is?) 3 Expressive Easy to use Unambiguous Tool supported Widely used

Software Engineering with Objects and Components 4 Development Processes Development process Architecture-centric and component-based Iteration to control risk Risk management is central (Unified?) design methodology Pros: dependable, assessment, standards Cons: constraints, overheads, generality Unified modelling language combines pros while avoiding cons The unified process Inception, Elaboration, Construction, Transition There are many other processes (e.g., Spiral, Extreme Programming, etc.)

History 5 UML 1989-1994 OO method wars 1994-1995 three Amigos and birth of UML Oct 1996 feedback invited on UML 0.9 Jan 1997 UML 1.0 submitted as RFP (Request for Proposal) to OMG (Object Management Group) Jun 1999 UML 1.3 released Sep 2000 (some UML 2.0 RFPs submitted Feb 2001 UML 1.4 draft specification released UML 1.5; Current Version: UML 2.0. adopted in late 2003

Open Issues 6 UML semantics Tool support OCL (Object Constraint Language) UML

What s new in UML 2.0 7 UML Nested Classifiers: In UML, almost every model building block you work with (classes, objects, components, behaviours such as activities and state machines, and more) is a classifier. In UML 2.0, you can nest a set of classes inside the component that manages them, or embed a behavior (such as a state machine) inside the class or component that implements it. Improved Behavioural Modeling: In UML 1.X, the different behavioural models were independent, but in UML 2.0, they all derive from a fundamental definition of a behaviour (except for the Use Case, which is subtly different but still participates in the new organisation). Improved relationship between Structural and Behavioural Models: UML 2.0 lets you designate that a behaviour represented by (for example) a State Machine or Sequence Diagram is the behaviour of a class or a component.

Requirements Capture 8 Users have different potentially conflicting views of the system Users usually fail to express requirements clearly missing information, superfluous and redundant information, inaccurate information Users are poor at imagining what a system will be like Identifying all the work needing support by the system is difficult

Static Structures 9 Desirable to build system quickly and cheaply Desirable to make system easy to maintain and modify Identifying classes: Data driven design, Responsibility driven design, Use case driven design, Design by contract Class diagrams document: classes (attributes, operations) and associations (multiplicities, generalisations) System is some collection of objects in class model

Validating the Class Model 10 CRC Cards: class, responsibility and collaborators UML interaction diagrams CRC cards and quality: Too many responsibilities implies low cohesion, Too many collaborators implies high coupling CRC cards used to: Validate class model using role play, Record changes, Identify opportunities to refactor

Interactions 11 Sequence and Communication diagrams documents how classes realise use cases, thus, help to validate design Other uses: design patterns, component use, packages Instance versus generic Procedural versus concurrent Law of Demeter Creation and deletion of objects timing

Other UML Diagrams 12 Describing object behaviour Activity diagrams State diagrams Implementation diagrams Package Diagrams Composite Structures Component Diagrams Deployment Diagrams UML

Other Software Engineering Issues 13 Testing Testing strategies: top-down versus bottom-up, black-box versus glass-box, stress testing Categories (unit, integration, acceptance) Regression testing Test plans OO and component issues

Other Software Engineering Issues 14 Reuse and Components Type of reuse: Knowledge (artefacts, patterns), software (code, inheritance, template, component, framework) success stories, pitfalls and difficulties with (component) reuse Reuse not free and requires management

Lecture Notes, Practicals and Resources 15 Software Engineering with Objects and Components Lecture Notes 14 Lecture Notes Industry Presentation and Collaboration Practicals Requirements gathering, UML Design and Java Implementation Group project Different teams in each tutorial group Tutorials Resources References complementing and extending lecture notes Main Tools: NetBeans and UML plugin