Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

Similar documents
Software Engineering with Objects and Components Open Issues and Course Summary

CSCU9T4: Managing Information

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

Software Engineering

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

Introduction to Software Engineering

CPSC 427a: Object-Oriented Programming

w3.ualg.pt/~jvo/poo

Presenter: Dong hyun Park

1: Software Development and.net. An approach to building software

Principles of Software Construction: Objects, Design and Concurrency. Just enough UML. toad

Introduction - SENG 330. Object-Oriented Analysis and Design

Quality-Driven Architecture Design Method

SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software

Software LEIC/LETI. Lecture 10

Software Design and Analysis CSCI 2040

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Unit 1 Introduction to Software Engineering

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

Unit-3 Software Design (Lecture Notes)

Requirements and Design Overview

Patterns and Testing

CSC Advanced Object Oriented Programming, Spring Overview

Components Based Design and Development. Unit 3: Software Design Quick Overview

Design of Embedded Systems

Integrating Software Lifecycle Models into a uniform Software Engineering Model

SOFTWARE ENGINEERING

Systems Analysis and Design in a Changing World, Fourth Edition

Principles of Software Construction: Objects, Design and Concurrency. Introduction to Design. toad

Object Design II: Design Patterns

Introduction to UML. (Unified Modeling Language)

SOFTWARE ENGINEERING

Geog 469 GIS Workshop. System Requirements - Data

Seng 480b/CSC 586b Building Web Applications

BDSA Introduction to OOAD. Jakob E. Bardram

Principles of Software Construction: Objects, Design, and Concurrency

CS 292 Software Development

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Chapter 6 System Design: Decomposing the System

1 OBJECT-ORIENTED ANALYSIS

Chapter 1: Principles of Programming and Software Engineering

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

.NET & Web Services. Mike Lockyer, Gary Griffiths, Briony Oates, Barry Hebbron School of Computing. University of Teesside

5 Object Oriented Analysis

Pattern-Based Architectural Design Process Model

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

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

Chapter 4 Requirements Elicitation

Getting a Quick Start with RUP

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

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

Software Architecture

Object-Oriented Systems Analysis and Design Using UML

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

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

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Object-Oriented Software Engineering Using UML, Patterns, And Java (3rd Edition) By Bernd Bruegge READ ONLINE

Incremental development A.Y. 2018/2019

Creating and Analyzing Software Architecture

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

UNIT-I Introduction of Object Oriented Modeling

Reusable General Component in Unknown Domain

Adopting Agile Practices

Best Practices for Collecting User Requirements

The Process of Software Architecting

Object Oriented Software Engineering Using Uml Patterns And Java Pearson New International Edition

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

Object Oriented Software Engineering Ivar Jacobson

Introduction to UML. Danang Wahyu utomo

Pattern for Structuring UML-Compatible Software Project Repositories

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

Tracing Requirements in Object-Oriented Software Engineering

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

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

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Business Process Modeling. Version 25/10/2012

Using the UML to Describe Design Patterns

Object-Oriented Design

Announcements. How to build a UML model. Rational Unified Process. How RUP builds a model. UI design. Architect

Appendix A - Glossary(of OO software term s)

Week 9 Implementation

Introduction to Object Oriented Analysis and Design

Learning objectives. Unified Modeling Language (UML) crash course. Note well. Intro. Understand the concepts of UML model and UML diagram

10조 이호진 이지 호

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

A Proposal to Develop a Testing Framework for Agile Software Process

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

CS3205: Task Analysis and Techniques

CSE 70 Final Exam Fall 2009

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Lecture 13 Introduction to Software Architecture

Business Process Modeling. Version /10/2017

Software architecture in ASPICE and Even-André Karlsson

Object-Oriented Software Engineering: Using UML, Patterns And Java (2nd Edition) By Allen H. Dutoit, Bernd Bruegge

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Analysis and Design with UML

Combining UML and Z in a Software Process

Requirement Model for Mechanical, Electrical and Software Integrated Products Using SysML

Transcription:

Review of Basic Software Design Concepts Fethi Rabhi SENG 2021 1

Topics The development process Planning Designing Implementing 2

1. The development process How to organise activities related to the creation, delivery and maintenance of software There are some fairly common processes Traditional methods: Waterfall Agile methods: Scrum 3 major steps: A. Requirements analysis B. Design Our focus is here C. Build and Deploy 3

A. Requirements analysis and specification Can involve Formal specifications (B-specification) Use cases (UML use cases) Epics and Stories (Scrum) Which one(s) to use Can be a mixture Depends on type of system 4

Use case diagrams Stories about using the system Can be expressed in varying degrees of detail and commitment to design decisions (essential vs real use cases) Development cycles are organised around use cases they need to be ranked Use cases determine some preliminary classes (domain classes) 5

User stories Similar to use cases but smaller/more informal Examples A bank customer can change his PIN. Acceptance Criteria:. As a student, I can find my grades online so that I don t have to wait until the next day to know whether I passed. Acceptance Criteria:. As a book shopper, I can read reviews of a selected book to help me decide whether to buy it. Acceptance Criteria:. As an author, I want the spell checker to ignore words with numbers so that only truly misspelled words are indicated. Acceptance Criteria:. 6

B. Design Next phase after requirements analysis First step in building the system Design is a process Design operates according to a specific methodology (e.g. OO) The design can be represented using a notation (e.g. UML) Methodologies/notations are usually supported by tools 7

There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies C.A.R. Hoare 8

Software architecture Requirements analysis Detailed design Design Implementation Testing Maintenance 9

Software architectures Equivalent to design at the highest level Essential for large applications: defines parts of the system and how these parts are assembled Architecture satisfies design goals e.g.: Extensibility (ability to add new features) Adaptability (accommodating changing reqs.) Simplicity (ease of understanding/implementing) Efficiency (time/space) 10

Decomposition criteria Decomposition into modules/components/packages etc. is of critical importance in the design activity Cohesion is the degree to which communication takes place among the module s elements Coupling describes the degree to which modules communicate with each other. Low coupling/high cohesion is essential for managing changes 11

Not one but many! Detailed Design Successions of refinements from the overall architecture Involves modelling of certain elements to make implementation easier Design coverage Function Structure Behaviour Information 12

Detailed Design Detailed design is usually closely associated with the implementation language used If using an OO language (e.g. Java) Some design elements can be expressed in the Unified Modelling Language (UML) UML is an OMG standard UML contains lots of notations If using a database Information structure can be modelled using a conceptual modelling notation 13

UML Notations Use case view Software Architecture Design view Process view Implementation Deployment Class/ Object diagrams Sequence/Statechart /Activity diagrams Use-case diagrams Component/ Package diagrams Deployment diagrams UML 14

Typical OO design Expand use cases (real use cases) Develop collaboration or sequence or statechart diagrams (just use 1 of them!) Defining classes (in parallel) Each class needs responsibilities assigned to it 15

Data modelling Identify domain objects, their attributes and associations between objects Normally, combination ERdiagram/sequence diagrams Relational models (for SQL databases) Formal methods: more powerful and unambiguous 16

User Interface and visualisation design Helping users to interact with systems Intuitive interfaces Diversity in user devices Easy to learn Visualisation Viewing complex data Infographics 17

C. Build and Deploy phase Start thinking about implementation Identify languages/platforms to be used Packaging of classes into programs. Allocating packages to platforms (deployment) 18

Design tools Functions Modelling design artefacts Managing/sharing models Tools For architecture, people tend to use a drawing tool For detailed design, several UML tools exist (e.g. https://www.draw.io/) Benefits: consistency checks, automatic code generation Disadvantages: steep learning curve 19

Conclusions Design is next activity after requirement analysis Divided into 2 stages: architectural design and detailed design Architectural design facilitated by the use of design patterns Detailed design is an iterative activity: check requirements satisfaction, think about implementability 20

Focus of this workshop System Scope and Specification Interface Design Software Architecture Software Design Implementation Considerations 21

Further reading Braude, Software Engineering: An Object-Oriented Perspective, J. Wiley, 2001 [Chapter 5] Buschmann et al., Pattern-Oriented Software Architecture: A System of Patterns, J. Wiley, 1996. Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. Larman, Applying UML and Patterns: an Introduction to Object-Oriented Analysis and Design, Prentice Hall, 1998. Bruegge and Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice Hall, 2000. 22