Τεχνολογία Λογισμικού

Similar documents
Τεχνολογία Λογισμικού

Goals of the Lecture UML Implementation Diagrams

Goals of this Lecture Activity Diagram Example

Modeling a Software Architecture. Paolo Ciancarini

Topics. Instance object. Instance object. Fundamentals of OT. Object notation. How do objects collaborate? Pearson Education 2007 Appendix (RASD 3/e)

What Is Object-Orientation?

Task scenarios Outline. Scenarios in Knowledge Extraction. Proposed Framework for Scenario to Design Diagram Transformation

1 Enterprise Modeler

Goals of the Lecture Object Constraint Language

A SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON

Outline. Research Definition. Motivation. Foundation of Reverse Engineering. Dynamic Analysis and Design Pattern Detection in Java Programs

System and Software Architecture Description (SSAD)

Architectural styles for software systems The client-server style

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Automatic Generation of Minimal and Safe Transactions in Conceptual Database Design

Requirements Analysis

Keywords Software Architecture, Object-oriented metrics, Reliability, Reusability, Coupling evaluator, Cohesion, efficiency

Service Oriented Enterprise Architecture and Service Oriented Enterprise

Code Review Defects. Authors: Mika V. Mäntylä and Casper Lassenius Original version: 4 Sep, 2007 Made available online: 24 April, 2013

Baan Tools User Management

Chapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Appendix D. Controller Implementation

Lecture 3. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

DEFINITION OF CELL BEHAVIOUR. Actions and Behaviour. CELL = a CELL CELL = b CELL

CMSC Computer Architecture Lecture 12: Virtual Memory. Prof. Yanjing Li University of Chicago

Baan Finance Financial Statements

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 13 Control and Sequencing: Hardwired and Microprogrammed Control

What does JFC stand for?

Today s objectives. CSE401: Introduction to Compiler Construction. What is a compiler? Administrative Details. Why study compilers?

% Sun Logo for. X3T10/95-229, Revision 0. April 18, 1998

Structuring Redundancy for Fault Tolerance. CSE 598D: Fault Tolerant Software

BEA Tuxedo. Creating CORBA Client Applications

Workflow Management Systems

Web OS Switch Software

A New Morphological 3D Shape Decomposition: Grayscale Interframe Interpolation Method

Chapter 10. Defining Classes. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Software Architecture. Paolo Ciancarini

Human-Computer Interaction IS4300

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Computers and Scientific Thinking

WYSE Academic Challenge Sectional Computer Science 2005 SOLUTION SET

Chapter 2 Conceptual Data Modeling

POMA: A Pattern-Oriented and Model-Driven Architecture

Interactive PMCube Explorer

Data diverse software fault tolerance techniques

Panel for Adobe Premiere Pro CC Partner Solution

BEA Tuxedo. Creating CORBA Server Applications

Extending The Sleuth Kit and its Underlying Model for Pooled Storage File System Forensic Analysis

INF5120 Modellbasert Systemutvikling Modelbased System development

Chapter 4 Threads. Operating Systems: Internals and Design Principles. Ninth Edition By William Stallings

COP4020 Programming Languages. Compilers and Interpreters Prof. Robert van Engelen

COSC 1P03. Ch 7 Recursion. Introduction to Data Structures 8.1

Threads and Concurrency in Java: Part 1

Threads and Concurrency in Java: Part 1

Java Inheritance. Class ADT (Abstract Data Type) Interface. Classes implement the concept of ADT: Interfaces define interaction contracts: Rui Moreira

Elementary Educational Computer

In this chapter, you learn the concepts and terminology of databases and

The Magma Database file formats

Schema for the DCE Security Registry Server

% Sun Logo for Frame. X3T10/95-229, Revision 2. September 28, 1995

Ones Assignment Method for Solving Traveling Salesman Problem

BEA WebLogic Portal. Guide to Events and Behavior Tracking

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen

Python Programming: An Introduction to Computer Science

GE FUNDAMENTALS OF COMPUTING AND PROGRAMMING UNIT III

Pseudocode ( 1.1) Analysis of Algorithms. Primitive Operations. Pseudocode Details. Running Time ( 1.1) Estimating performance

An Effort Estimation by UML Points in the Early Stage of Software Development

How do we evaluate algorithms?

Chapter 8 Web Services Foundations

Chapter 4 Remote Procedure Calls and Distributed Transactions

COP4020 Programming Languages. Names, Scopes, and Bindings Prof. Robert van Engelen

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

The number n of subintervals times the length h of subintervals gives length of interval (b-a).

Octahedral Graph Scaling

Evaluation scheme for Tracking in AMI

Getting Started. Getting Started - 1

Chapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

Lecture 2. RTL Design Methodology. Transition from Pseudocode & Interface to a Corresponding Block Diagram

One advantage that SONAR has over any other music-sequencing product I ve worked

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

n We have discussed classes in previous lectures n Here, we discuss design of classes n Library design considerations

Outline n Introduction n Background o Distributed DBMS Architecture

27 Refraction, Dispersion, Internal Reflection

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Deploying 32-bit ASNs

Multi-Threading. Hyper-, Multi-, and Simultaneous Thread Execution

Model Based Design: develpment of Electronic Systems

Chapter 9. Pointers and Dynamic Arrays. Copyright 2015 Pearson Education, Ltd.. All rights reserved.

An Improved Shuffled Frog-Leaping Algorithm for Knapsack Problem

Transitioning to BGP

CMSC Computer Architecture Lecture 3: ISA and Introduction to Microarchitecture. Prof. Yanjing Li University of Chicago

What are Information Systems?

Python Programming: An Introduction to Computer Science

Basic allocator mechanisms The course that gives CMU its Zip! Memory Management II: Dynamic Storage Allocation Mar 6, 2000.

CIS 121. Introduction to Trees

Bayesian approach to reliability modelling for a probability of failure on demand parameter

Introduction to Pattern Oriented Analysis and Design (POAD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

Common Grid Model Exchange Specification (CGMES) Version 2.5 Draft IEC Part 1, Edition 2

Chapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved.

top() Applications of Stacks

Transcription:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τεχνολογία Λογισμικού, 7ο/9ο εξάμηνο 2018-2019 Τεχνολογία Λογισμικού Ν.Παπασπύρου, Αν.Καθ. ΣΗΜΜΥ, ickie@softlab.tua,gr Β.Βεσκούκης, Αν.Καθ. ΣΑΤΜ, v.vescoukis@cs.tua,gr Κ.Σαΐδης, ΠΔ 407, saiko@softlab.tua.gr

Εισαγωγή στη UML (1/2)

Uified Modelig Laguage OMG Stadard, Object Maagemet Group Based o work from Booch, Rumbaugh, Jacobso UML is a modelig laguage to express ad desig documets, software, systems ad more Created with OO aalysis ad desig, but has evolved to cover more tha software systems UML is NOT a methodology, process, etc Idepedet of implemetatio laguage

Uified Modelig Laguage Ope Stadard, Graphical otatio for Software Systems, from iitial coceptio to detailed desig, across the etire software lifecycle specificatio visualizatio costructio documetatio Support uderstadig of software to customers ad developers Support for diverse applicatio areas Based upo experiece ad eeds of the user commuity

History

UML cocepts Systems, Models, Views A model is a abstractio describig a subset of a system A view depicts selected aspects of a model A otatio is a set of graphical or textual rules for depictig views Views ad models of a sigle system may overlap each other Example System: Aircraft Models: Flight simulator, scale model Views: All blueprits, electrical wirig, fuel system

UML models, views, diagrams UML defies may diagrams, each of which is a view ito a model Diagram preseted from the aspect of a particular stakeholder Provides a partial represetatio of the system Is sematically cosistet with other views

UML diagrams Static views Dyamic views

UML diagrams Visual Paradigm CE Visual Paradigm olie

UML views: focus o what s eeded Not all systems require all views Sigle executio ode: drop deploymet view Sigle process: drop process view Very small program: drop implemetatio view A system might eed additioal views Data view, security view, Idetificatio of useful views depeds o the cotext ad iteded use of the UML model of a system Commuicatio with the cliet System specificatio System desig

A key cocept: stereotypes Stereotype: A mechaism for extedig the vocabulary (ad thus, the expressive power) of UML Why exted the vocabulary? Ecosystem- / stack- / framework- specific termiology Comprehesive architecture visualizatio Use with measure! actor boudary etity cotrol

Basic UML modelig Use Cases Capture requiremets Domai Model Capture process, key classes Desig Model Capture details ad behaviors of use cases ad domai objects Add classes that do the work ad defie the architecture

Basic UML modelig Use Case Diagrams Class Diagrams / Package Diagrams Iteractio Diagrams Sequece Diagrams Collaboratio (a.k.a. Commuicatio Diagrams) Activity Diagrams / State Trasitio Diagrams Compoet Diagrams / Deploymet Diagrams

Use Case diagrams What is a Use Case key cocepts Use cases represet a sequece of iteractio(s) for a type of fuctioality Actors represet roles. A role is a type of user of the system, ad ca eve be aother system (exteral system) Used durig requiremets elicitatio to represet exteral behavior The use case model is the set of all use cases. It is a complete descriptio of the fuctioality of the system ad its eviromet

Use cases vs. Requiremets A Use Case usually groups some requiremets together i the cotext of a iteractio of the system with some exteral etity. The graularity of the requiremets defiitio determies the level of groupig requiremets i use cases

Use Cases ad Actors A actor models a exteral etity which commuicates with the system ad triggers some of its fuctioality: User Exteral system Physical eviromet A actor has a uique ame ad a optioal descriptio Examples: Passeger: A perso issuig a ticket GPS device: Provides the system with GPS coordiates

Use Cases ad Actors A use case represets a class of fuctioality provided by the system as a evet flow A use case cosists of: Uique ame Participatig actors Etry coditios Flow of evets Exit coditios Special requiremets

Use Case: example Uique ame Υποβολή δεδομένων xls(x) Participatig actors Διαχειριστής dashboard Etry coditios xls(x) file is available; server has eough disk space free Flow of evets User drags file to desigated area; file is uploaded to the server Exit coditios File is saved o the server

Use Case diagrams: <<iclude>> ad <<exted>> Iclude: Behavior that has bee factored out of the Use Case, so that it ca be reused Arrow poits to the usig Use Case Exteds Exceptioal, rarely ivoked Use Cases Arrow poits to the exteded Use Case

Use Case Diagrams are useful for Determiig requiremets New use cases ofte geerate ew requiremets as the system is aalyzed ad the desig takes shape. Commuicatig with cliets Their otatioal simplicity makes use case diagrams a good way for developers to commuicate with cliets. Geeratig test cases The collectio of scearios for a use case may suggest a suite of test cases for those scearios. Use case descriptios provide the ifo eeded: ot use case diagrams! All use cases eed to be described for the model to be useful.

Use Case Diagrams A complete Use Case model (diagram)

Class Diagrams A Class Diagram Gives a overview of a system by showig its classes ad the relatioships amog them. class diagrams are static they display what iteracts but ot what happes whe iteractios occur Also shows attributes ad operatios of each class Good way to describe the overall architecture of system compoets

Class Diagram: Perspectives We draw Class Diagrams uder three perspectives m m m m Coceptual Software idepedet Laguage idepedet Specificatio Focus o the iterfaces of the software Implemetatio Focus o the implemetatio of the software

Classes: Not Just for Code A class represet a cocept A class ecapsulates state (attributes) ad behavior (operatios). Each attribute has a type. Each operatio has a sigature. The class ame is the oly madatory iformatio.

Istaces A istace represets a pheomeo (= a specific object). The ame of a istace is uderlied ad ca cotai the class of the istace. The attributes are represeted with their values. Class diagram Object diagram

UML Class Notatio A class is a rectagle divided ito three parts Class ame Class attributes (i.e. fields, variables) Class operatios (i.e. methods) Modifiers Private: - Public: + Protected: # Static: Uderlied (i.e. shared amog all members of the class) Abstract class: ame i italics

UML Class Notatio: Relatioships Associatio A relatioship betwee istaces of two classes, where oe class must kow about the other to do its work, e.g. cliet commuicates to server Idicated by a straight lie or arrow Aggregatio A associatio where oe class belogs to a collectio Idicated by a empty diamod o the side of the collectio Members ca exist idepedetly of the aggregate ("paret") e.g.: studets exist eve if there is o class scheduled

Associatio Details Ca assig ames to the eds of the associatio to give further iformatio Team -members: Employee -group -idividual 1 * Employee -Name : strig +ID : log #Salary: double -adfaf :bool +getname() : strig +setname() -calciteralstuf(fi x : byte, i y :decima)l

UML Class Notatio Compositio Strog form of Aggregatio Lifetime cotrol: compoets caot exist without the aggregate (e.g.: parts of a aircraft) Idicated by a solid diamod o the side of the collectio Iheritace Iheritace represets a "is-a" relatioship Key elemet of object orietatio Idicated by a hollow arrowhead poitig to the superclass ("paret")

UML Class diagram otatio

UML Multiplicities Liks o associatios to specify more details about the relatioship Multiplicities Meaig 0..1 zero or oe istace... m idicates to m istaces. 0..* or * zero to ulimited istaces 1 exactly oe istace 1..* at least oe istace

UML Class Diagram example

UML Class Diagram Example

Class diagram: Software architecture Architecture Descriptio 101 19 Remember: The map is ot the territory

Class diagram: OCG Simple Features Std