Software Design and Implementation. Example Architecture KIWC

Size: px
Start display at page:

Download "Software Design and Implementation. Example Architecture KIWC"

Transcription

1 Software Design and Implementation Example Architecture KIWC

2 Previously on SDI What is design? What is traceability? What is architecture? Why architectures are important? Architectural styles

3 KWIC The KWIC index system accepts an ordered set of lines, each line is an ordered set of words, and each word is an ordered set of characters. Any line may be circularly shifted by repeatedly removing the first word and appending it at the end of the line. The KWIC index system outputs a listing of all circular shifts of all lines in alphabetical order.

4 KWIC: Sample input/output HOW ARCHITECTURE WINS TECHNOLOGY WARS THE ART OF SYSTEMS ARCHITECTING Input HOW ARCHITECTURE WINS TECHNOLOGY WARS ARCHITECTURE WINS TECHNOLOGY WARS HOW WINS TECHNOLOGY WARS HOW ARCHITECTURE TECHNOLOGY WARS HOW ARCHITECTURE WINS WARS HOW ARCHITECTURE WINS TECHNOLOGY THE ART OF SYSTEMS ARCHITECTING ART OF SYSTEMS ARCHITECTING THE OF SYSTEMS ARCHITECTING THE ART SYSTEMS ARCHITECTING THE ART OF ARCHITECTING THE ART OF SYSTEMS ARCHITECTING THE ART OF SYSTEMS ARCHITECTURE WINS TECHNOLOGY WARS HOW ART OF SYSTEMS ARCHITECTING THE HOW ARCHITECTURE WINS TECHNOLOGY WARS OF SYSTEMS ARCHITECTING THE ART SYSTEMS ARCHITECTING THE ART OF TECHNOLOGY WARS HOW ARCHITECTURE WINS THE ART OF SYSTEMS ARCHITECTING WARS HOW ARCHITECTURE WINS TECHNOLOGY WINS TECHNOLOGY WARS HOW ARCHITECTURE Output

5 KWIC Requirements Functional requirements Non functional requirements Modifiability changes in processing algorithm changes in data representation Extendibility Enhancement of functionality Additional functionality Performance Space Time Reusability

6 How to solve problem? (Potentially huge) design space Many solutions of the problem How to select good solution?

7 KWIC Architecture Alternative 1: Shared data solution Master control Input Circular Shift Alphabetizer Output Characters Index Alphabetized Index Input medium Output medium

8 KWIC Architecture Alternative 1 Modifiability - algorithm Line shifting As it reads line All at one time On demand (lazy) when alphabetization is needed Modifiability data Storing words and lines Compressed Uncompressed 1d/2d array, linked list Extendibility Eliminate noise words (eg. a, the, and, ) Performance Reusability

9 Architecture Alternative 1 Recap. Style: Shared Data Components: Processes & Data Connectors: Direct Data (Memory) Access, Subprogram call Constrains: Data communication between the components trough shared storage Rationale: Some intuitive appeal, as distinct computational aspect are isolated in different modules Shared data still very present. Where? OO approach getting popular

10 KWIC Architecture Alternative 2: Abstract Data Type Master control Input Output setc(i,w,j,c) getc(i,w,j) Words(i) cssetup getc(i,w,j) words(i) alph Ith(i) Lines Input medium Circular Shifter Alphabetizer Output medium

11 KWIC Architecture Alternative 2 Modifiability - algorithm Line shifting As it reads line All at one time On demand (lazy) when alphabetization is needed Modifiability data Storing words and lines Compressed Uncompressed 1d/2d array, linked list Extendibility Eliminate noise words (eg. a, the, and, ) Performance Reusability

12 Architecture Alternative 2 Recap. Style: Abstract Data Type (ADT) Components: Objects & Data Connectors: Messages Constrains: Other components can access data only by invoking interface (information hiding) Rationale: If selected, usually because of non functional requirements

13 KWIC Architecture Alternative 3: Implicit invocation Master control Input Circular Shift Alphabetizer Output Insert I-th Control I-Lines CS-Lines A-Lines I-th Input medium Output medium

14 KWIC Architecture Alternative 3 Modifiability - algorithm Line shifting As it reads line All at one time On demand (lazy) when alphabetization is needed Modifiability data Storing words and lines Compressed Uncompressed 1d/2d array, linked list Extendibility Eliminate noise words (eg. a, the, and, ) Performance Reusability

15 Architecture Alternative 3 Recap. Style: Implicit invocation Components: Processes & Data Connectors: Implicit invocation Constrains: Computations are invoked implicitly as data is modified, based on active data model Rationale: If selected, usually because of non functional requirements Can be difficult to control the order of processing

16 KWIC Architecture Alternative 4: Pipes and Filters Input Circular Shift Alphabetizer Output Input medium Output medium

17 KWIC Architecture Alternative 4 Modifiability - algorithm Line shifting As it reads line All at one time On demand (lazy) when alphabetization is needed Modifiability data Storing words and lines Compressed Uncompressed 1d/2d array, linked list Extendibility Eliminate noise words (eg. a, the, and, ) Performance Reusability

18 Architecture Alternative 4 Recap. Style: Pipes and Filters Components: Filters Connectors: Pipes Constrains: Data can be shared only trough pipes, no direct access Rationale: If selected, because of component reusability Possible performance lost

19 KWIC Architecture: Summary Shared Data ADT Implicit Invocation Pipes and Filters Modifiability Algorithm Data repr Extendibility Performance Space Time Reusability

20 Administration: Dates of examinations Possible dates 19 th January: Normal Examination 27 th January: Repetitive Examination

21 Software Design and Implementation (R)UP

22 Imagine the world Where there are no directions for making software Where most projects fail Where each project and every company has its own notation Where customer cannot read plans Where developers cannot read specifications Where software is not developed iteratively

23 What is process? A process defines Who is doing What, When and How to reach a certain Goal. In software engineering the goal is to build a software product or to enhance an existing one New or changed requirements Software Engineering Process New or changed system

24 Waterfall Development Requirements Analysis Design Code & Unit Testing Subsystem Testing System Testing T I M E

25 Waterfall Development: Risk vs. Time R I S K Requirements Analysis Design Code & Unit Testing Subsystem Testing System Testing T I M E

26 (Rational) Unified Process ((R)UP) Three in one Software development approach Well-defined and well-structured software engineering process Process product provided with customizable process framework

27 Rational Unified Process (RUP) Unifies best practices from many disciplines into a consistent full lifecycle process Premier process for the UML, developed by the company that brought you the UML Applicable to a wide variety of applications and industries Decreases Time To Market Increases Predictability

28 Rational Unified Process: Geneology Requisite Requirements Mgmt Objectory Use Cases OO Analysis Rational Abstraction Encapsulation Iterative Devel OO Architecture Visual Modeling UML RUP Verdix Cross-development Pure-Atria SQA Automated Testing Automated Branch/Merge Dynamic Views Replication Runtime Error Detection

29 RUP Increase of team productivity All team members share 1 knowledge base 1 process 1 view how to develop process 1 modeling language

30 UML Definition OMG-endorsed standard (Object Management Group) UML Semantics Document inside-view specifies semantics of constructs UML Notation Guide outside-view specifies notation for expressing constructs Object Constraint Language specification document definition of a (textual) language for expressing logical constraints

31 O Que é a UML? Unified Modeling Language é a linguagem para: Especificar Visualizar Construir Documentar os artefatos de software de um sistema

32 UML is For For Problems Specifying Visualizing Promoting Understanding Documenting For Problem Solving Capturing Attempts Communicating Attempts Leveraging Knowledge For Solutions Specifying Visualizing Evaluating Constructing Documenting

33 Some Parts of UML Class Diagrams models Object Diagrams example models Use Case Diagrams document who can do what in a system Sequence Diagrams shows interactions between objects used to implement a use case Collaboration Diagrams same as above, different style Statechart Diagrams possible states and responses of a class and what transitions them Activity Diagrams describe the behaviour of a class in response to internal processing Component Diagrams Organization of and dependencies amongst software implementation components Deployment Diagrams Describe the mapping of software implementation components onto processing nodes

34 This Course and UML You will use UML for the project UML Has its warts Good enough when augmented by written explanation Cover only the most useful subset of UML Mainly class/object/use case/sequence charts. UML is still evolving (still upcoming 2.0, some proposals for 3.0) -

35 RUP Overview Unified Process is component based system is built using software components interconnected using well defined interfaces Unified Process uses Unified Modeling Language (UML) Unified Process is distinguished by being use-case driven architecture-centric iterative and incremental Based around the 4Ps - People, Project, Product, Process

36 RUP Overview II Provides disciplined approach to assigning tasks and responsibilities Guide for how to use Unified Modeling Language (UML) effectively Activities create and maintain (UML) models Is a configurable process

37 Iterative and Incremental

38 Iterative Development Initial Planning Planning Requirements Management Environment Analysis & Design Implementation Deployment Evaluation Each iteration results in an executable release Test

39 Risk Profile of an Iterative Development Transition Transition Risk Risk Inception Inception Elaboration Elaboration Construction Construction Preliminary Preliminary Iteration Iteration Architect. Architect. Iteration Iteration Architect. Architect. Iteration Iteration Devel. Devel. Iteration Iteration Devel. Devel. Iteration Iteration Devel. Devel. Iteration Iteration Transition Transition Iteration Iteration Transition Transition Iteration Iteration Post- Postdeployment deployment Waterfall Waterfall Time Time Staffing Risk Risk

40 Iterative Development Characteristics Critical risks are resolved before making large investments Initial iterations enable early user feedback Testing and integration are continuous Objective milestones provide short-term focus Progress is measured by assessing implementations Partial implementations can be deployed

41 Iterative and Incremental Controlled iterative development is superior to the traditional waterfall approach for many reasons: Handle changing requirements Continuous integration Risk mitigation Allows for tactical changes Facilitates reuse Results in a more robust architecture Learning Process refinement

42 Iterative and Incremental Divides all work into smaller iterations Early iterations are prototypes They serve as trail blazers for both projects planning and technologies Early architectural prototypes define the core architecture The time-sequential order of iterations is critical and based on use case prioritizations and risks Results in incremental releases of the system Develop the software iteratively One or more iterations leads to a new increment of the system Iterations may be concurrent

43 Iterative Development Process Components Requirements Analysis Design Architecture Level Class Level Inception Phases Elaboration Construction Transition One iteration Implementation Test Supporting Components Project Management Process Configuration preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 iter. #m iter. #m+1 Iterations

44 Use Case Driven

45 Use Case Driven All process components, from requirements capture to test, are driven by use cases Analyze Capture, Clarify and Validate the Use Cases Design and Implementation Realize the Use Cases Test Verify that the Use Cases are fulfilled Use cases bind these work steps together

46 Use-Case-Driven Development The use cases defined for a system are the basis for the entire development process. The use cases drive the development: In requirements analysis the use cases are used to capture the requirements In design you identify classes from the usecases In implementation you implement the use cases In test you verify the use cases during test The use cases constitute test cases

47 Process Components and Models Requirements Analysis realized by Each process component is associated with a particular model. Design Implementation Use-Case Model Design Model implemented by verified by Test Implementation Model Test Model

48 Use-Case-Driven Development Use cases play several roles during the software-engineering process. They are used as a basis for iterative development They form a foundation for what is described in user manuals They may be used as ordering units For example, a customer can get a system configured with a particular mix of use cases

49 Organizing Work Assignments are on a per use case basis Analysis Design and Implementation Testing Domain Experts System Architects Senior Designers Programmers Senior System Integrators and Testers

50 Architecture-Centric

51 Architecture-Centric Focuses on finding the the architecture baseline up-front A systematic approach to defining a good architecture Derived from top rank use cases Balanced with component legacies: platform technology, frameworks, patterns, and Balanced with performance, trade-offs,... Designed to make the system more resilient to future changes Designed for and with substantial reuse Intuitively understandable

52 Architecture is Multi-Dimensional Logical View Component View Use Cases Collaboration View Deployment View

53 Architecture - How and When Process Components Requirements Analysis Design Architecture Level Class Level Inception Phases Elaboration Construction Transition Architecture iteration Implementation Test Supporting Components Project Management Process Configuration preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 iter. #m iter. #m+1 Iterations

54 Summing Up

55 Putting It All Together Process Components Requirements Analysis Design Architecture Level Class Level Inception Phases Elaboration Construction Transition Implementation Test Supporting Components Project Management Process Configuration preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 iter. #m iter. #m+1 Iterations

56 There is NO Universal (OO) Process! organization products people skills configurable process tools configurable and open application domain An Integrated set of Tools to Support Process & People

57 RUP Is a Process Framework A set of pluggable components

58 Two parts of a Harmonized Whole Unified Modeling Language Process Convergence Today Unification leads to standards Convergence in the future Process frameworks through consensus

59 Software Design and Implementation OOA

60 Evolution of Object-Oriented Development Methods Mid to late 1980s Object-Oriented Languages (esp. C++) were very much in vogue However, there was little guidance on how to divide a problem into OO classes. 1990: Object Modeling All at around the same time, many were borrowing an argument from structured design: The best organization for a software systems is one that is cohesive in the problem domain, not in the solution space Tends to isolate changes Tends to make the program easier to understand Developed methods for applying this concept to OO design. Rumbaugh, Coad, Wirfs-Brock, Booch, Jacobson

61 Object Modeling Method Step 1: OOA Analyze the problem domain Identify problem domain classes and relationships between classes Identify attributes and methods Identify states and transitions Sample object structures and interactions Not programming! Abstracting the real-world. Step 2: OOD Use the OOA as the core of a solution to: User interface design Database design OO program design

62 Uses for UML OOA A visual language for, in the problem domain, capturing knowledge about a subject expressing knowledge for the purposes of communication OOD A visual language for, in the solution space, capturing design ideas communicating design ideas Related, but distinct usages Must supplement both with written explanations

63 The World Out There The real world is impenetrably complex e.g., a complete model of you would include DNA, behavior specifications, total history, parents history, influences, for a particular problem, abstracting you as last name first name student ID course final grade may be enough. The Object-Oriented paradigm is one method for simplifying the world.

64 Objects [Rumbaugh] An object is A concept, abstraction, or thing with crisp boundaries and meaning for the problem at hand Objects promote understanding of the real world provide a practical basis for computer implementation Decomposition of a problem into objects depends on Judgment The nature of the problem being solved Not only the domain: two analyses of the same domain will turn out differently depending upon the kind of programs we wish to produce.

65 Classes A class describes a group of objects with similar properties. Class: Instructor Object: Mitja Lenič Object: Jorgel Cardoso Class: Department Object: Department of Computer Science Object: Departamento de Matemática e Engenharias Instructor Department

66 Attributes Data values held by the objects of a class Instructor -name :string -age :int -weight :int

67 Operations A function or a transformation that may be applied to or by objects in a class. Not often used (not often terribly useful) in an OOA Instructor -name :string -age :int -weight :int +teach ():void +grade ():void +listen_to_complaints ():void

68 Links and Associations The means for establishing relationships among objects and classes. link: a connection between two object instances association: a collection of links with common structure and semantics. Instructor Department

69 Object Diagrams Models instances of things contained in class diagrams. Shows a set of objects and their links at a point in time Useful preparatory to deciding on class structures. Useful in order to better explain more complex class diagrams by giving instance examples. DME : Department Mitja :Instructor Jorge :Instructor DCS :Department

70 Multiplicity Used to indicate the number of potential instances involved in the association when the other associated classes are fixed. Instructor * + has Department + teaches for * A given instructor can teach for potentially many departments (or none) A given department employs zero or more instructors

71 Multiplicities Carry Important Messages Used to indicate the number of potential instances involved in the association when the other associated class is fixed. Instructor 1..* + has Department + teaches for 0..2 A given instructor can teach for at most one department at a time, or may not be currently teaching for any department All departments have at least one instructor, but probably more

72 Attributes on Associations pay Instructor teaches for Department

73 Aggregation Indicators (Part-Of) Department Window Implied multiplicity of 1 Student Frame Glass Aggregation (no associated semantics) Composition (strong ownership, coincident lifetime)

74 Generalization (a.k.a. Inheritance, is-a) Shape Rectangle Circle Triangle Square

75 Avoiding Morphing Classes Analysis shown below may not be a good choice, as objects of class SDIInstructor may teach other things and different things next term. Avoid situations where objects will need to morph classes Instructor SDIInstructor

76 Next time on SDI OOA Example OOD

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

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative

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

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

Requirements and Design Overview

Requirements and Design Overview Requirements and Design Overview Robert B. France Colorado State University Robert B. France O-1 Why do we model? Enhance understanding and communication Provide structure for problem solving Furnish abstractions

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

Software design and Implementation 1/6. Software Design and Implementation. Sample Final Exam

Software design and Implementation 1/6. Software Design and Implementation. Sample Final Exam Software design and Implementation 1/6 Software Design and Implementation Sample Final Exam 18.11.2004 Conditions: Closed book Duration: 120 min Name: Student ID: 1. /20 2. /20 3. /20 4. /20 5. /20 Total

More information

Analysis and Design with UML

Analysis and Design with UML Analysis and Design with UML Page 1 Agenda Benefits of Visual Modeling History of the UML Visual Modeling with UML The Rational Iterative Development Process Page 2 What is Visual Modeling? Item Order

More information

Software Engineering with Objects and Components Open Issues and Course Summary

Software Engineering with Objects and Components Open Issues and Course Summary 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

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

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

IMPORTANT NOTICE TO STUDENTS

IMPORTANT NOTICE TO STUDENTS IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion KWIC Case Study CS

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

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

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

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

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

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

Practical Model-Driven Development with the IBM Software Development Platform

Practical Model-Driven Development with the IBM Software Development Platform IBM Software Group Practical Model-Driven Development with the IBM Software Development Platform Osmond Ng (ong@hk1.ibm.com) Technical Consultant, IBM HK SWG 2005 IBM Corporation Overview The Challenges

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

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

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

Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? Session 8: UML The Unified Modeling (or the Unstructured Muddling) language? A few observations, opinions, pros & cons COMP 320 / 420 Spring, 2018 Mr. Weisert Where did the UML come from? Object-oriented

More information

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

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc. UML Modeling UML diagrams UML (Unified Modeling Language) is a general purpose visual modeling language that provides different types of diagrammatic techniques and notations to specify, visualize, analyze,

More information

Software Process. Software Process

Software Process. Software Process Software Process What is SW process? Definition, Development, Support phases Process models: Waterfall Prototyping Spiral, Incremental & iterative (best practices) UP process model What is it? How does

More information

Getting a Quick Start with RUP

Getting a Quick Start with RUP Getting a Quick Start with RUP By: Doug Rosenberg and Jeff Kantor, ICONIX Software Engineering, Inc. Abstract Many people want the rigor of an industrial-strength process like the RUP but aren't quite

More information

Lecture 7: Software Processes. Refresher: Software Always Evolves

Lecture 7: Software Processes. Refresher: Software Always Evolves Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)

More information

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

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview CHAPTER 1 Topic: UML Overview After studying this Chapter, students should be able to: Describe the goals of UML. Analyze the History of UML. Evaluate the use of UML in an area of interest. CHAPTER 1:

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

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

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

ADD 3.0: Rethinking Drivers and Decisions in the Design Process ADD 3.0: Rethinking Drivers and Decisions in the Design Process Rick Kazman Humberto Cervantes SATURN 2015 Outline Presentation Architectural design and types of drivers The Attribute Driven Design Method

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

10조 이호진 이지 호

10조 이호진 이지 호 10 조 200910045 이호진 200911415 이지호 According to the IEEE definition, design is.. The process of defining the architecture, components, interfaces, and other characteristics of a system or component 1.

More information

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Examples. Object Orientated Analysis and Design. Benjamin Kenwright Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

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

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram After studying this chapter you should be able to: Define an object. Understand the terms

More information

Software Architecture. Lecture 4

Software Architecture. Lecture 4 Software Architecture Lecture 4 Last time We discussed tactics to achieve architecture qualities We briefly surveyed architectural styles 23-Jan-08 http://www.users.abo.fi/lpetre/sa08/ 2 Today We check

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten Architectural Blueprint The 4+1 View Model of Software Architecture Philippe Kruchten Model What is a model? simplified abstract representation information exchange standardization principals (involved)

More information

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling User Centred Design 09 INTERACTION ARCHITECTURAL MODELING Lecture 9 Interaction Architectureal Modeling PREVIOUS LESSON(S) Synthetizing User Research Personas Actors / User Roles Scenarios Essential Use

More information

Systems Analysis and Design in a Changing World, Fourth Edition

Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development

More information

Lecture 2: Software Engineering (a review)

Lecture 2: Software Engineering (a review) Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is

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

VO Software Engineering

VO Software Engineering Administrative Issues Univ.Prof. Dr. Peter Auer Chair for Information Technology Email: auer@unileoben.ac.at Lecture Thursday 10:15 11:45 Project Lab Montag 16:00 19:00 Literature Helmut Balzert, Lehrbuch

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

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 3 Seminal Object-Oriented Methodologies: A Feature-Focused Review (Part 1) 1 Coad-Yourdon Two-phase introduction: Object-Oriented Analysis

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

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

Presenter: Dong hyun Park

Presenter: Dong hyun Park Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components

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

OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado

OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado OO Requirements to OO design Csaba Veres Alan M. Davis (1995), Colorado Alan Davis? Guru? Academic and professional www.omni-vista.com? Controversial article on research into requirements engineering Requirements

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

The Analysis and Design of the Object-oriented System Li Xin 1, a

The Analysis and Design of the Object-oriented System Li Xin 1, a International Conference on Materials Engineering and Information Technology Applications (MEITA 2015) The Analysis and Design of the Object-oriented System Li Xin 1, a 1 Shijiazhuang Vocational Technology

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

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

Object Oriented System Development

Object Oriented System Development Object Oriented System Development Ratna Wardani Semester Genap, 2012 2/26/2012 Ratna W/PSBO2012 1 About This Course It shows how to apply OOAD technique to analyze and develop systems.. It gives you an

More information

Object-Oriented Systems Development: Using the Unified Modeling Language

Object-Oriented Systems Development: Using the Unified Modeling Language Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 4: Object-Oriented Methodologies Goals Object-Oriented Methodologies The Rumbaugh et al. OMT The Booch methodology Jacobson's

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

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

Managing Change and Complexity

Managing Change and Complexity Managing Change and Complexity The reality of software development Overview Some more Philosophy Reality, representations and descriptions Some more history Managing complexity Managing change Some more

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

UML- a Brief Look UML and the Process

UML- a Brief Look UML and the Process UML- a Brief Look UML grew out of great variety of ways Design and develop object-oriented models and designs By mid 1990s Number of credible approaches reduced to three Work further developed and refined

More information

Software Architecture and Design I

Software Architecture and Design I Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How

More information

Unified Modelling Language

Unified Modelling Language Unified Modelling Language Phil Robinson What is the UML? A language that unifies the industry s best engineering practices for modelling software systems Goals Simple and extensible Broad application

More information

Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model)

Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach. (problem definition, use case model) Schedule(3/3) March 18th 13:00 Unified Process and Usecase-Driven Approach 14:30 Case Study of Elevator Control System (problem definition, use case model) March 19th 13:00 Case Study of Elevator Control

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

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

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model answer and the answer written by candidate

More information

Introduction to UML. Danang Wahyu utomo

Introduction to UML. Danang Wahyu utomo Introduction to UML Danang Wahyu utomo danang.wu@dsn.dinus.ac.id 085 740 955 623 Evolution of OO Development Methods History of OOAD leading to UML Why Model? Analyse the problem domain - Simplify reality

More information

Software Engineering (CSC 4350/6350) Rao Casturi

Software Engineering (CSC 4350/6350) Rao Casturi Software Engineering (CSC 4350/6350) Rao Casturi Recap 1 to 5 Chapters 1. UML Notation 1. Use Case 2. Class Diagrams 3. Interaction or Sequence Diagrams 4. Machine or State Diagrams 5. Activity Diagrams

More information

Software Engineering Lab Manual

Software Engineering Lab Manual Kingdom of Saudi Arabia Ministry Education Prince Sattam Bin Abdulaziz University College of Computer Engineering and Sciences Department of Computer Science Software Engineering Lab Manual 1 Background:-

More information

What is UML / why. UML is graphical and notational representation for software system requirements analysis and design. (Software Engineering )

What is UML / why. UML is graphical and notational representation for software system requirements analysis and design. (Software Engineering ) What is UML / why UML is graphical and notational representation for software system requirements analysis and design. (Software Engineering ) UML notation represents the state of art in term of Object

More information

UML Primer. -Elango Sundaram

UML Primer. -Elango Sundaram UML Primer -Elango Sundaram About UML UML Can be thought of as a blue print for Software Graphical notation for expressing underlying OOA&D ideas Can be used to design any type of application, hardware,

More information

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam MIDTERM EXAMINATION 2010 Question No: 1 ( Marks: 1 ) - Please choose one By following modern system engineering

More information

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

Lecture 8: Use Case -Driven Design. Where UML fits in Lecture 8: Use Case -Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use Cases 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution

More information

Design of Embedded Systems

Design of Embedded Systems Design of Embedded Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-01-02 José Costa (DEI/IST) Design of Embedded Systems 1

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

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION http://www.tutorialspoint.com/software_architecture_design/introduction.htm Copyright tutorialspoint.com The architecture of a system describes its major components,

More information

Object-Oriented Analysis and Design Using UML

Object-Oriented Analysis and Design Using UML Object-Oriented Analysis and Design Using UML Student Guide - Volume 1 OO-226 Rev C D61808GC10 Edition 1.0 D62408 Copyright 2003, 2009, Oracle and/or its affiliates. All rights reserved. Disclaimer This

More information

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

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

CS487 Midterm Exam Summer 2005

CS487 Midterm Exam Summer 2005 1. (4 Points) How does software differ from the artifacts produced by other engineering disciplines? 2. (10 Points) The waterfall model is appropriate for projects with what Characteristics? Page 1 of

More information

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. SE Assignment III 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. There are essentially 5 different types of symbols used

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

Software Architecture

Software Architecture Software Architecture Lecture 5 Call-Return Systems Rob Pettit George Mason University last class data flow data flow styles batch sequential pipe & filter process control! process control! looping structure

More information

Architecture-Centric Evolution in Software Product Lines:

Architecture-Centric Evolution in Software Product Lines: Architecture-Centric Evolution in Software Product Lines: Position Paper Hassan Gomaa Department of Information and Software Engineering George Mason University Fairfax, Virginia 22030, USA hgomaa@gmu.edu

More information

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

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML D. Beltran*, LLS, Barcelona, Spain M. Gonzalez, CERN, Geneva, Switzerlan Abstract CELLS (Consorcio para la construcción, equipamiento

More information

Enterprise Architect Training Courses

Enterprise Architect Training Courses On-site training from as little as 135 per delegate per day! Enterprise Architect Training Courses Tassc trainers are expert practitioners in Enterprise Architect with over 10 years experience in object

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable

More information

Week 9 Implementation

Week 9 Implementation 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

More information

17-Design. Jackson System Development (JSD) Step 1: Entity/action step. Student Loan Example. CMPSCI520/620 Design ***DRAFT*** 11/4/04

17-Design. Jackson System Development (JSD) Step 1: Entity/action step. Student Loan Example. CMPSCI520/620 Design ***DRAFT*** 11/4/04 CMPSCI520/620 ***DRAFT*** 11/4/04 17- Readings OOAD Using the UML Copyright 1994-1998 Rational Software, all rights reserved will post Jackson System Development (JSD) Phases the modeling phase Entity/action

More information

Course 3 7 March

Course 3 7 March Course 3 7 March adiftene@info.uaic.ro 1 From Courses 1, 2 Modeling Modeling Languages Graphic Languages UML History UML Definition UML Diagram Types UML Use Case Diagram Actors Use Case UML Class Diagrams

More information

Session 1b: Overview of systems analysis methodology

Session 1b: Overview of systems analysis methodology Session 1b: Overview of systems analysis methodology The system specification (ESD) Ways of documenting an ESD Criteria to be satisfied Historical survey Comp 320 / 420, spring, 2018 Alternative names

More information

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

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 6 UML Introduction Structural diagrams Basics What is? Please explain

More information

1. Software Systems Complexity, OO Paradigm, UML

1. Software Systems Complexity, OO Paradigm, UML 1. Software Systems Complexity, OO Paradigm, UML Software Systems Complexity Inherent Arbitrary Complexity Problem Domain Complexity Expressing the Requirements Changing Requirements System Evolution -

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

A number of optimizations are already in use by the majority of companies in industry, notably:

A number of optimizations are already in use by the majority of companies in industry, notably: 1 Abstract Mechatronics products contain significant amounts of software. Most advances in embedded software development focus on specific phases of the development process. However, very little emphasis

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

Software Development Chapter 1

Software Development Chapter 1 Software Development Chapter 1 1. Introduction Software Applications are increasingly used to tackle problems that concern everyday life : Automatic Bank tellers Airline reservation systems Air traffic

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

3.0 Object-Oriented Modeling Using UML

3.0 Object-Oriented Modeling Using UML 3.0 Object-Oriented Modeling Using UML Subject/Topic/Focus: Introduction to UML Summary: History of OOAD leading to UML UML Diagrams: Overview UML Models in the Objectory Software Development Process Literature:

More information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

More information