Software Development. Modular Design and Algorithm Analysis

Similar documents
CISC 322 Software Architecture

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

1 OBJECT-ORIENTED ANALYSIS

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

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

Software Engineering

02291: System Integration

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

Software Service Engineering

1 Introduction. 1.1 Introduction

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

3.0 Object-Oriented Modeling Using UML

OO Analysis and Design with UML 2 and UP

CHAPTER 1. Objects, UML, and Java

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

UML Primer. -Elango Sundaram

Unified Modelling Language

Processes, Methodologies and Tools. Fall 2005

Patterns and Testing

Systems Analysis & Design

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge,

Software Development Methodologies

Introduction to Software Engineering. 5. Modeling Objects and Classes

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

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge,

Course 3 7 March

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

L02.1 Introduction... 2

The Unified Modeling Language User Guide

Research Review on Basic Principles of Unified Modelling Language

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

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

Software Engineering Lab Manual

Unified Modeling Language

UML part I. UML part I 1/41

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

History of object-oriented approaches

UNIT-I Introduction of Object Oriented Modeling

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

Modeling Requirements

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

Lecture 05 ( ) High-Level Design with SysML. Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016

Agenda. Why Model. Why Model? History of OO Modeling Methodologies Object Modeling Technique (OMT) Unified Modeling Language (UML)

BUILDING BLOCKS. UML & more...

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

Software Engineering from a

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

i219 Software Design Methodology 1. Overview of software design methodology Kazuhiro Ogata (JAIST) Outline of lecture

Unified Modeling Language (UML)

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks

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

The Unified Modeling Language (UML)

Engineering Design w/embedded Systems

Introduction to Software Engineering. 5. Modeling Objects and Classes

Index. Add Diagram > Sequence Diagram command,

02291: System Integration

Lecture #2 on Object-Oriented Modeling

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

Model Driven Development Unified Modeling Language (UML)

Mapping UML Component Specifications to JEE Implementations

From Code To Architecture

Software Design And Modeling BE 2015 (w. e. f Academic Year )

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

XVIII. Software Architectures

USDA/ARS. Conservation Planning Support System Software Architecture Document. Version <1.1>

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

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

ACRONYMS AND GLOSSARY

Introduction to Object Oriented Analysis and Design

System Analysis and Design

Representing System Architecture

Object-Oriented Software Development Goal and Scope

Software Engineering

How and Why to Use the Unified Modeling Language. among software components, architectural-based

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

CIS 771: Software Specifications

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

CS 451 Software Engineering

Session 1b: Overview of systems analysis methodology

UML 2.0 State Machines

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

CSC Advanced Object Oriented Programming, Spring Overview

Programming Language Constructs as Basis for Software Architectures

Programming Language Constructs as Basis for Software Architectures. Stefan Resmerita, WS2015

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

Object-Oriented Systems Analysis and Design Using UML

Introduction to Extreme Programming

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

What's New in UML 2.0

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

Software Architecture and Design I

Information Systems Development Methodologies

Cycle: UML FOR MANAGERS (I) 1 Notations and Fundamental Concepts

Integrating Systems and Software Engineering Concepts in AP-233

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

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

1 Reference Material for these slides is taken from many UML reference books. However, the two I most often used are: UML Explained, by Kendall Scott,

Transcription:

Software Development Modular Design and Algorithm Analysis

Functional Decomposition Functional Decomposition in computer science, also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain. There are different types of functional decomposition defined in computer sciences:

In structured programming, algorithmic decomposition breaks a process down into well-defined steps. Structured analysis breaks down a software system from the system context level to system functions and data entities. Object-oriented decomposition, on the other hand, breaks a large system down into progressively smaller classes or objects that are responsible for some part of the problem domain.

Algorithmic decomposition is a necessary part of object-oriented analysis and design, but object-oriented systems start with and emphasize decomposition into classes. More generally, functional decomposition in computer science is a technique for mastering the complexity of the function of a model. A functional model of a system is thereby replaced by a series of functional models of subsystems.

Class-Responsibility-Collaboration Class-responsibility-collaboration (CRC) cards are a brainstorming tool used in the design of object-oriented software. They were originally proposed by Ward Cunningham and Kent Beck as a teaching tool, but are also popular among expert designers and recommended by extreme programming supporters. Martin Fowler has described CRC cards as a viable alternative to UML sequence diagram to design the dynamics of object interaction and collaboration.

CRC cards are usually created from index cards. Members of a brainstorming session will write up one CRC card for each relevant class/object of their design. The card is partitioned into three areas: 1. On top of the card, the class name 2. On the left, the responsibilities of the class 3. On the right, collaborators (other classes) with which this class interacts to fulfill its responsibilities

Using a small card keeps the complexity of the design at a minimum. It focuses the designer on the essentials of the class and prevents her/him from getting into its details and inner workings at a time when such detail is probably counter-productive. It also forces the designer to refrain from giving the class too many responsibilities. Because the cards are portable, they can easily be laid out on a table and re-arranged while discussing a design with other people.

Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose modeling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system. It was created and developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software during 1994 95 with further development led by them through 1996.

In 1997 it was adopted as a standard by the Object Management Group (OMG), and has been managed by this organization ever since. In 2000 the Unified Modeling Language was also accepted by the International Organization for Standardization (ISO) as an approved ISO standard. Since then it has been periodically revised to cover the latest revision of UML

The Unified Modeling Language (UML) offers a way to visualize a system's architectural blueprints in a diagram, including elements such as: Any activities (jobs) Individual components of the system and how they can interact with other software components. How the system will run How entities interact with others (components and interfaces) External user interface Although originally intended solely for objectoriented design documentation, it has been extended to cover a larger set of design documentation.

UML has many types of diagrams which are divided into two categories. Some types represent structural information, and the rest represent general types of behaviour, including a few that represent different aspects of interactions.

Structural UML diagrams Class diagram Component diagram Composite structure diagram Deployment diagram Object diagram Package diagram Profile diagram

Behavioral UML diagrams Activity diagram Communication diagram Interaction overview diagram Sequence diagram State diagram Timing diagram Use case diagram

Activity 3.4 Use the CRC and the UML methodology to decompose two functions for your culminating activity.(one for each method) Save your work as john_s_3_4_oodm under the appropriate folder for your class in the DropOff folder on the X: drive