Software Engineering from a

Similar documents
OO Analysis and Design with UML 2 and UP

A Conceptual Model of the UML

Introduction to Software Engineering. 5. Modeling Objects and Classes

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Model Driven Development Unified Modeling Language (UML)

Representing System Architecture

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

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UML 2.0 State Machines

The UML Extension Mechanisms

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

Lecture 2: Software Engineering (a review)

Introduction to Software Engineering. 5. Modeling Objects and Classes

Objectives. UML Extension Mechanisms. What is UML? Is the UML enough? UML Extension Mechanisms. Specifications. By Jasmine Farhad

UNIT-II Introduction to UML

UNIT-I Introduction of Object Oriented Modeling

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Software Service Engineering

Introduction to UML. Danang Wahyu utomo

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

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Software Development Methodologies

References: Jacquie Barker,Beginning Java Objects; Martin Fowler,UML Distilled, 1/13/ UML

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

UML Unified Modeling Language

Introduction to UML Dr. Rajivkumar S. Mente

CISC 322 Software Architecture

Object-Oriented Systems Development: Using the Unified Modeling Language

Developing Dependable Systems Using Aspect-Oriented Modeling Techniques: Promises & Challenges

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

Architectural Blueprint

References: Jacquie Barker,Beginning Java Objects; Martin Fowler,UML Distilled, 9/25/ UML

02291: System Integration

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

Unified Modelling Language

UNIT V *********************************************************************************************

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. Chapter 5: Modelling with Classes

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Chapter 6 Architectural Design. Chapter 6 Architectural design

INTRODUCING THE UML. Chapter 2

UNIT 5 - UML STATE DIAGRAMS AND MODELING

Basic Structural Modeling. Copyright Joey Paquet,

Software Development. Modular Design and Algorithm Analysis

Introduction to Unified Modelling Language (UML)

Index. Add Diagram > Sequence Diagram command,

COSC 3351 Software Design. An Introduction to UML (I)

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

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

Rational Software White paper

Unified Modeling Language

Object Oriented System Development

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

Introduction to the UML

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

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

Requirements and Design Overview

Unified Modeling Language

MechEng SE3 Lecture 7 Domain Modelling

administrivia today UML start design patterns Tuesday, September 28, 2010

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Software Design Methodologies and Testing. (Subject Code: ) (Class: BE Computer Engineering) 2012 Pattern

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

CSC Advanced Object Oriented Programming, Spring Overview

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

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

Pattern for Structuring UML-Compatible Software Project Repositories

Unified Modeling Language I.

Designing Component-Based Architectures with Rational Rose RealTime

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

In this Lecture you will Learn: Object Design. Information Sources for Object Design. Class Specification: Attributes

Allenhouse Institute of Technology (UPTU Code : 505) OOT Notes By Hammad Lari for B.Tech CSE V th Sem

TTool Training. I. Introduction to UML

SUMMARY: MODEL DRIVEN SECURITY

2 UML for OOAD. 2.1 What is UML? 2.2 Classes in UML 2.3 Relations in UML 2.4 Static and Dynamic Design with UML. UML for OOAD Stefan Kluth 1

Agent-Oriented Software Engineering

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture

Software Engineering

Applying UML to System Engineering Some Lessons Learned Murray Cantor Principal Consultant

IS 0020 Program Design and Software Tools

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.

UML Primer. -Elango Sundaram

Recalling the definition of design as set of models let's consider the modeling of some real software.

Creating and Analyzing Software Architecture

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

An Introduction to MDE

Orthographic Software Modeling A Practical Approach to View Based Development

Design and UML Class Diagrams

02291: System Integration

Object-Oriented and Classical Software Engineering

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures

Use Case Model. Static Structure. Diagram. Collaboration. Collaboration. Diagram. Collaboration. Diagram. Diagram. Activity. Diagram.

bahmanzamani.com Computer Engineering i Dept. University of Isfahan

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

Model-based Transition from Requirements to High-level Software Design

Contents(1) Basic Concepts to represent the world Basic Concepts for Reuse Information Hiding Principle and Java Program Superiority of OOT

Requirements to models: goals and methods

Research Review on Basic Principles of Unified Modelling Language

Transcription:

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 and analysis! Robert B. France 2

Quality assurance Business value concerns Security, safety, concerns robustness concerns Regulatory concerns Why is software development difficult? Developers need to balance multiple, interdependent design concerns such as availability, performance, survivability, fault tolerance, and security. Robert B. France 3

Problem solving view of SE SE is the discipline of resolving problems with software solutions. (B.Blum). Blum). Focus is on solving complex problems. Problem solving involves analyzing problems and synthesizing solutions. Analysis of complex problems involves decomposing the problem into subproblems that can be understood on their own Solutions for the subproblems can be developed in a relatively independent manner and then composed (synthesized) to create a complete solution. Robert B. France 4

Complexity Fred Brooks: The Mythical Man Month Essential complexity: inherent in the problem and cannot be eliminated by technological or methodological means E.g., making airplanes fly Accidental complexity: unnecessary difficulty introduced by a technology or method E.g., building construction without using power tools or, translating designs (models) into programs without the help of computers Robert B. France 5

The software problem implementation gap A problem-implementation gap exists when software is implemented using abstractions that are different than those used to conceptualize the problem when the gap is wide significant effort is required to implement solutions bridging a wide gap using manual techniques introduces significant accidental complexities Robert B. France 6

If software developers built pyramids Robert B. France 7

Model Driven Engineering (MDE) is concerned with ih reducing accidental complexities associated with bridging wide problem implementation gaps through use of technologies that support systematic transformation of abstractions to software implementations MDE is concerned with developing software to support the work of software developers Robert B. France 8

Why modeling techniques? Software development is a modeling activity Programmers build and evolve (mentallyheld) models of problems and solutions as they develop code Programmers express solutions in terms of abstractions provided d by a programming language How can we better leverage modeling techniques? Robert B. France 9

What is a model? A description of an aspect of a softwarebased system that may or may not yet exist. A model is created to serve one or more purposes. p Robert B. France 10

Engineering models Engineering model: A reduced representation of some system that highlights the properties of interest from a given viewpoint Modeled system Functional Model We don t see everything at once We use a representation (notation) that is easily understood for the purpose on hand

Key SE principles p supported by MDE Formality and rigor Separation of concerns Incrementality Robert B. France Intro-12

Why is modeling difficult? Or why modeling seems to add accidental complexity Tools Many existing modeling tools do introduce significant accidental complexity Dissatisfaction with current toolset is sometimes the basis for dismissing MDE Education is the key (not tools!) Learning a modeling language is not enough Software developers need to develop ability to identify the right abstractions Robert B. France 13

Why model? Modeling should be purpose driven Using models as a means to explore a problem or solution Models as sketches (informal) Models as analyzable artifacts (formal) Using models to communicate aspects of a problem or solution Models as documentation artifacts Using models to generate implementations Robert B. France 14

Modeling challenges How do we decompose a problem or solution? What information should be in a model and at what level of abstraction should it be expressed? How can we determine if the abstractions we use are fit for purpose? There is a need for software engineering methodologies that explicitly address these and other modeling issues Robert B. France 15

Modeling aptitude Hypothesis: A good modeler is a good programmer; a good programmer is not always a good modeler Modeling requires programming and abstraction skills Abstraction skills amplify development skills programs produced by developers with good abstraction skills should be of significantly better quality Robert B. France 16

INTRODUCTION TO THE UML Slightly modified versions of slides provided by Arlow and Neustadt Robert B. France 17

1.2 What is UML? Unified Modelling Language g (UML) is a general purpose, p mostly graphical, modelling language Can support all existing lifecycles Intended ddto be supported by tools Unifies past modelling techniques and experience Incorporates current best practice in software engineering UML is not a methodology! UML is a language Unified Process (UP) is a methodology Clear View Training 2010 v2.6 18

1.3 UML history Prehistory Schlaer/ Mellor Booch Fusion 1 st unification attempt OMT, Booch, CRC UML work begins Object Management Group RFP UML proposal accepted by OMG UML 1.x UML 2.0 Rumbaugh (OMT) Jacobson (Objectory) Coad/ Yourdon 1994 1995 1996 1997 Booch & Rumbaugh (OMT) join Rational Jacobson (Objectory) joins Rational UML becomes an industry standard 2003 2004 Ongoing UML development A major upgrade to UML at the end of 2003: Greater consistency More precisely defined semantics New diagram types Backwards compatible Clear View Training 2010 v2.6 19

1.4 UML and MDA Development of UML is linked to the OMG MDE initiative called Model Driven Architecture (MDA) MDA Platform Independent Model map Platform Specific Model generate Code deploy Clear View Training 2010 v2.6 20

1.6 Objects and the UML UML models systems as collections of objects that interact to deliver benefit to outside users Static structure What kinds of objects are important What are their hirelationships Dynamic behaviour Lifecycles of objects Object interactions to achieve goals Clear View Training 2010 v2.6 21

1.8 UML building blocks Things Modelling elements (e.g., class, state, activity) Relationships Tie things together (e.g., association, transition, control flow) Diagrams Views showing interesting collections of things Provide views of the modeled system Clear View Training 2010 v2.6 22

1.8.1 Things Structural things nouns of a UML model Class, interface, collaboration, use case, active class, component, node Behavioural things verbs of a UML model Interactions, state machine Grouping things Package Models, frameworks, subsystems Annotational things Notes Tagged values package Some Information about a thing Clear View Training 2010 v2.6 23

1.8.2 Relationships relationship UML syntax brief semantics dependency association The source element depends on the target element and may be affected by changes to it. The description of a set of links between objects. aggregation The target element is a part of the source element. composition A strong (more constrained) form of aggregation. containment generalization realization The source element contains the target element. The source element is a specialization of the more general target element and may be substituted for it. The source element guarantees to carry out the contract specified by the target element Clear View Training 2010 v2.6 24

1.8.3 italics indicates an abstract category of diagram types UML has 13 types of diagram normal font indicates an actual type of diagram that you can create Structure diagrams model the structure of the system (the static model) Behavior diagrams model the dynamic behavior of the system (the dynamic model) Each type of diagram gives a different type of view of the model Clear View Training 2010 v2.6 25

1.8.3 UML 2 diagram syntax heading frame contents area heading syntax: <kind> <name> <parameters> N.B. <kind> and <parameters> are optional The heading specifies the kind of diagram, it s name and any information (parameters) needed by elements in the diagram The frame may be implied by a diagram area in the UML tool implied frame Clear View Training 2010 v2.6 26

1.9 UML common mechanisms UML has four common mechanisms that apply consistently throughout the language: Specifications Adornments Common divisions Extensibility mechanisms Clear View Training 2010 v2.6 27

1.9.1 icon or modeling element BankAccount name accountnumber deposit() withdraw() calculateinterest() Specifications semantic backplane Class specification Deposit Use case specification Dependency specification Behind every UML modelling element is a specification which provides a textual statement ofthe syntax andsemantics ofthat element These specifications form the semantic backplane of the model Clear View Training 2010 v2.6 28

1.9.2 Adornments Every UML modelling element starts with a basic symbol to which can be added a number of adornments specific to that symbol We only show adornments to increase the clarity of the diagram or to highlight a specific feature of the model Window Window {author = Jim, status = tested} +size : Area=(100,100) #visibility : Boolean = false +defaultsize: Rectangle #maximumsize : Rectangle -xptr : XWindow* +create() +hide() +display( location : Point ) -attachxwindow( xwin : XWindow*) Clear View Training 2010 v2.6 29

1.9.3 Common divisions Classifier and instance A classifier is an abstraction, an instance is a concrete manifestation of that abstraction BankAccount balance The most common form is class/object eg e.g. a classifier getbalance() might be a BankAccount class, and an instance might be an object representing my bank account «instantiate» Generally instanceshavethesamenotationasclasses the same notation as classes, but the instance name is underlined myaccount:bankaccount balance = 100.0 Interface and implementation An interface declares a contract and an implementation represents a concrete realization of that contract Borrowable LibraryItem Clear View Training 2010 v2.6 30

1.9.4 Extensibility mechanisms constraint note { each Ticket has a unique id } «entity» Ticket {version = 1.1} id stereotype tagged value Stereotypes A stereotype allows us to define a new UML modelling element based on an existing one We define the semantics of the stereotype ourselves Stereotypes add new elements to the UML metamodel Written as «stereotypename» Constraints Extends the semantics of an element by allowing us to add new rules about the element Written as { some constraint } Tagged values Allows us to add new, ad hoc information to an element s specification Written as { tag1 = value1, tag2 = value2 } are attached to a stereotype Clear View Training 2010 v2.6 31

1.9.4.2 Stereotype syntax options stereotype t name «entity» stereotype t in guillemets Ticket preferred stereotype t icon Ticket icon preferred stereotype t name and icon «entity» Ticket stereotyped relationship «control» JobManager «call» Scheduler A stereotype introduces a new modelling element and so we must always define semantics for our stereotypes Each model element can have many stereotypes Clear View Training 2010 v2.6 32

1.9.4.4 UML profiles A profile customizes UML for a specific purposes A UML profile is a collection of stereotypes, tagged values and constraints The tagged values and constraints are associated with stereotypes Stereotypes extend one of the UML meta model elements (e.g. Class, Association) Any element that gets the stereotype also gets the associated tagged values and constraints Clear View Training 2010 v2.6 33

1.10 Architecture "The organisational structure of a software system" UML specification & IEEE Std. 610.12 1990 RUP has a 4+1 view of architecture vocabulary functionality behaviour Design view Process view Implementation view Use case view Deployment view system assembly configuration management The 4+1 View of Architecture, Philippe Kruchten, IEEE Software, 12(6) Nov. 1995, p. 45-50 performance scalability throughput system topology distribution ib i delivery installation Clear View Training 2010 v2.6 34

1.11 Summary The UML is composed of building blocks: Things Relationships Diagrams The UML has four common mechanisms: Specifications Adornments Common divisions Extensibility mechanisms The UML is based on a 4+1 view of system architecture Clear View Training 2010 v2.6 35