Lecture 2 Software Engineering and Design

Size: px
Start display at page:

Download "Lecture 2 Software Engineering and Design"

Transcription

1 Lecture 2 Software Engineering and Design Software Engineering ITCS 3155 Spring 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte August 28, 2008

2 Lecture Overview Chapter 1: A Discipline of Software Engineering Design Terminology Software design as problem solving Abstraction Modeling Software lifecycle Software engineering design methods 2

3 The Importance of Software

4 The Impact of Design Design is often the cause of poor quality 85% of problems with mechanical products Poor designs impose costs Customer service Returns Product liability Lost business Good software design is essential! Save costs, but also reduce frustration with pervasive computing and.. safety-critical systems! 4

5 Software Design Terminology Software Any executable entity, such as a program, or its parts Software designers do more than just produce software Software product An entity comprised of one or more programs, data, and supporting materials and services that satisfies client needs Either an independent artifact, or Essential ingredient in some other artifact e.g., motion control module in a robotic arm 5

6 Software Design Software design is the activity of specifying the nature and composition of software products Satisfy client needs Subject to constraints 6

7 Types of Design Product design concerned with styling and aesthetics, function, -bilities Industrial designers, (building) architects, interior designers, graphic designers, etc. Engineering design concerned with technical mechanisms and workings Often have special training in science and math Structural, mechanical, chemical, and electrical engineers Design teams often include both product and engineering designers 7

8 Product Design Software Product Design Specifying software product features, capabilities, and interfaces to satisfy client needs and desires Requires skills in: user interface design communications industrial design marketing 8

9 Engineering Design Software engineering design Specifying parts, structure, behavior of software in a way that meets meet product specifications (i.e., requirements) Requires skills in: Programming Algorithms Data structures Software design principles, practices, processes, techniques Software architectures Software design patterns We ll focus mostly on software engineering design 9

10 Design as Problem Solving Benefits Partitioning information between problem and solution Helps with confusion over what is a requirement of the system and what is the design solution to meet requirements Emphasizes that there may be more than one good solution Not just one perfect design for a software product Suggests techniques to approach the design problem Changing the problem Trial and error Brainstorming Abstraction 10

11 Simplifying through Abstraction Abstraction Suppressing or ignoring some properties of objects, events, or situations Problem simplification Focus on the most important aspects of a problem in (partially) solving it Structuring problem solving Top-down strategy: Solve an abstract version of the problem, then add details (refinement) Bottom-up strategy: Solve parts of a problem and connect them for a complete solution 11

12 Abstraction and Modeling The use of abstraction allows us to model a software design solution Model An entity used to represent another Target parts map to model parts Target relationships map to model relationships Target Model 12

13 Examples of Models ΔTFR = αδ* ln(per Capita GNP) 13

14 The Use of Models in Design Modeling is used for: Problem understanding Design creation Design investigation Documentation A model provides an abstract representation but must capture important and relevant details to be useful! 14

15 Modeling Approaches Static models Represent aspects of programs that do not change during execution Car Wheel Engine Body Piston Valve Door Hood Dynamic models Represent what happens during program execution 15

16 How do we engineer software? Software development process (a.k.a. software lifecycle) A structured set of activities required to develop a software system Requirements specification Design Implementation Validation (a.k.a. testing) Evolution (a.k.a. maintenance) 16

17 Software Process Activity: Requirements Specification Software product requirement Statement that a software product must have a certain feature, function, capability, or property Requirements Specification Activity Capture and document software product requirements Needs and desires of customer Capture and document design constraints Limiting factors: cost, time, size, technology, etc. Results in software requirements specification (SRS) A detailed statement of the problem to solve Product must meet requirements in SRS 17

18 Software Process Activity: Design Design activity Developers determine how to solve the problem Select an overall program structure Determine major parts and subsystems Determine interactions among them Determine how each part will be constructed Determine the parts of the subsystems Determine how they store data and operate Choose data structures and algorithms Results in a design document Presents a solution to problem state in the SRS Usually contains several models (dynamic and static) 18

19 Software Process Activity: Implementation Implementation Activity Developers write code that meets the specifications of the solution in the design document Since design is often high-level, may include: Choice of data types Choice/design of data structures Choice/design of algorithms Results in an executable program 19

20 Software Process Activity: Validation Validation activity Determine if right program was developed Does it meet client needs? Determine if program was developed right Does the program meet the specification? Usually performed bottom-up Test small pieces of functionality first, then their integration Should result in a working program that has acceptable level of performance 20

21 Software Process Activity: Evolution Evolution activity Enhancing the product with new functions and capabilities May include: Improving user interface Adapting program for new execution platforms Fixing bugs Improving software design for future maintenance and reuse 21

22 Design Across the Lifecycle Software Product Life Cycle Requirements Specification Product Design Design Engineering Design Implementation Validation Evolution Product Redesign and Engineering Redesign 22

23 What Versus How Traditional way to make the distinction between requirements and design activities Not adequate because Sometimes how statements are really requirements Sometimes what statements come up during design 23

24 Design as Problem Solving Instead, distinguish requirements from design based on problem solving Requirements activity formulates a problem Problem is solved in design But can t you say the same thing about overlapping problems and solutions? Design problems within design problems! Still a better metaphor More effectively separates problem as stated by customer from solution Allows us to apply problem solving techniques 24

25 Design Problems and Solutions Software Design Product Design Design Features and Capabilities Design Interactions Problem: Needs, Desires, Constraints Solution: Features and Capabilities Solution: Interactions Engineering Design Create High-Level Design Create Low-Level Design Write Code Solution: SRS Solution: High- Level Design Solution: Low- Level Design Solution: Design Document Solution: Code 25

26 The Big Picture: Design Methods Software design method procedure for generating a precise and complete software design solution that meets clients needs and constraints Design method components Design Process Collection of related tasks that transforms set of inputs into set of outputs Design Notations Symbolic representational system Design Heuristics Rules providing guidance, but no guarantee, for achieving some end Design methods also use design principles stating characteristics of design that make them better or worse 26

27 Coming Up Software Development Processes So far, we ve considered design activities as occurring sequentially Waterfall model Design is not purely sequential activity (and shouldn t be!!!) Next time, we ll talk about more sophisticated approaches Include same set of design process activities 27

28 Next time Software design processes We ll cover: Spiral model Capability Maturity Model Rational Unified Process Read Chapter 2 Take notes! Some material covered will not be in the text book 28

Lecture 13 Introduction to Software Architecture

Lecture 13 Introduction to Software Architecture Lecture 13 Introduction to Software Architecture Software Systems Design and Implementation ITCS/ITIS 6112/8112 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

Lecture 8 Requirements Engineering

Lecture 8 Requirements Engineering Lecture 8 Requirements Engineering Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 18, 2008 Lecture Overview

More information

Lecture 9 Requirements Engineering II

Lecture 9 Requirements Engineering II Lecture 9 Requirements Engineering II Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 23, 2008 Announcements

More information

Lecture 13: Analysis Modeling

Lecture 13: Analysis Modeling Lecture 13: Analysis Modeling Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct. 16, 2008 Announcements Midterms graded

More information

Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures

Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

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

Lecture 17: (Architecture V)

Lecture 17: (Architecture V) Lecture 17: (Architecture V) Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct. 30,

More information

Lecture 16: (Architecture IV)

Lecture 16: (Architecture IV) Lecture 16: (Architecture IV) Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Oct.

More information

CS603 - Software Architecture and Design (Handouts)

CS603 - Software Architecture and Design (Handouts) 1 Week 1 Summery Course Description Aim Course introduces the essential concepts of software architecture and design. Both software architecture and design are important phases of software development.

More information

Lecture 21: Design Patterns III

Lecture 21: Design Patterns III Lecture 21: Design Patterns III Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.

More information

Introduction to the UML

Introduction to the UML c02.qxd p039-048 11/15/01 5:37 PM Page 39 CHAPTER 2 Introduction to the UML Why should I use the UML? What can it contribute to my software development effort? To effectively utilize any technology, we

More information

Enterprise Architecture

Enterprise Architecture Enterprise Architecture Dr. Adnan Albar Faculty of Computing & Information Technology King AbdulAziz University - Jeddah 1 Dimensions of Architectural Modeling Lecture 7 Week 6 Slides King AbdulAziz University

More information

Lecture 19: Introduction to Design Patterns

Lecture 19: Introduction to Design Patterns Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

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

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

CS3205 HCI IN SOFTWARE DEVELOPMENT INTRODUCTION TO PROTOTYPING. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford)

CS3205 HCI IN SOFTWARE DEVELOPMENT INTRODUCTION TO PROTOTYPING. Tom Horton. * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) CS3205 HCI IN SOFTWARE DEVELOPMENT INTRODUCTION TO PROTOTYPING Tom Horton * Material from: Floryan (UVa) Klemmer (UCSD, was at Stanford) READINGS ID Book. Chapter 11 in published book, Design, Prototyping,

More information

Software Engineering Lifecycles. Controlling Complexity

Software Engineering Lifecycles. Controlling Complexity Software Engineering Lifecycles Class url:http://laser.cs.umass.edu/courses/cs320.spring11/ Controlling Complexity Separation of Concerns Planning Ahead Do a little work now to make later work easier The

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

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

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards What to Architect? How to Architect? IEEE Goals and Objectives Chartered by IEEE Software Engineering Standards Committee to: Define

More information

Pattern for Structuring UML-Compatible Software Project Repositories

Pattern for Structuring UML-Compatible Software Project Repositories Pattern for Structuring UML-Compatible Software Project Repositories Pavel Hruby Navision Software a/s Frydenlunds Allé 6 2950 Vedbaek, Denmark E-mail: ph@navision.com Web site: www.navision.com/services/methodology/default.asp

More information

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at

More information

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton Lecture 26: Testing Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Dec. 9, 2008 Verification vs validation Verification:

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

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

Lecture 19 Introduction to Pipelining

Lecture 19 Introduction to Pipelining CSE 30321 Lecture 19 Pipelining (Part 1) 1 Lecture 19 Introduction to Pipelining CSE 30321 Lecture 19 Pipelining (Part 1) Basic pipelining basic := single, in-order issue single issue one instruction at

More information

Credit where Credit is Due. Goals for this Lecture. Introduction to Design

Credit where Credit is Due. Goals for this Lecture. Introduction to Design Credit where Credit is Due Lecture 17: Intro. to Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some material presented in this lecture is taken

More information

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

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

3. XML Foundations; Introduction to Modeling

3. XML Foundations; Introduction to Modeling 3. XML Foundations; Introduction to Modeling DE + IA (INFO 243) - 30 January 2008 Bob Glushko 1 of 35 Plan for Today's Lecture XML Foundations for Document Engineering Models and modeling The classical

More information

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043 INFORMATION TECHNOLOGY COURSE DESCRIPTION FORM Course Title Course Code Regulation Course Structure Course Coordinator SOFTWARE

More information

Strategies for Rapid Development in Internet Time. William A. Cunningham December 5, 2000 NYOUG New York, NY

Strategies for Rapid Development in Internet Time. William A. Cunningham December 5, 2000 NYOUG New York, NY Strategies for Rapid Development in Internet Time William A. Cunningham December 5, 2000 NYOUG New York, NY Background - Issues Productivity differences can be 10 to 1 in developing systems in the same

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

Review The Big Picture

Review The Big Picture CS445 - Introduction to Database Management Systems Fall Semester 2015 LECTURE 6 The Entity-Relationship Model Introduction TEXTBOOK REFERENCE: CHAPTERS 2,3 R&G 1 Review The Big Picture Data Modeling Relational

More information

Lecture 20: Design Patterns II

Lecture 20: Design Patterns II Lecture 20: Design Patterns II Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

More information

Lecture 23: Domain-Driven Design (Part 1)

Lecture 23: Domain-Driven Design (Part 1) 1 Lecture 23: Domain-Driven Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Goals for this lecture Introduce the main concepts of Domain-Driven

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

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

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

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

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 15: Refining Analysis Relationships Department of Computer Engineering Sharif University of Technology 1 Refining Analysis Relationships Relationships in analysis are converted

More information

Database Design. 8-4 Drawing Conventions for Readability. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Database Design. 8-4 Drawing Conventions for Readability. Copyright 2015, Oracle and/or its affiliates. All rights reserved. 1 Database Design 8-4 Objectives This lesson covers the following objectives: Apply the Oracle drawing conventions to a data model diagram Identify high volume entities in a data model diagram and explain

More information

UML Component Diagrams A.Y 2018/2019

UML Component Diagrams A.Y 2018/2019 UML Component Diagrams A.Y 2018/2019 Component diagrams Component diagrams are integral to building your software system. Drawn out with UML diagramming software, they help your team understand the structure

More information

Interaction Design. Task Analysis & Modelling

Interaction Design. Task Analysis & Modelling Interaction Design Task Analysis & Modelling This Lecture Conducting task analysis Constructing task models Understanding the shortcomings of task analysis Task Analysis for Interaction Design Find out

More information

Lesson 2: Wireframe Creation

Lesson 2: Wireframe Creation Lesson 2: Wireframe Creation In this lesson you will learn how to create wireframes. Lesson Contents: Case Study: Wireframe Creation Design Intent Stages in the Process Reference Geometry Creation 3D Curve

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

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches Introduction to Software Engineering ECSE-321 Unit 9 Architectural Design Approaches Requirement Elicitation Analysis (Software Product Design) Architectural Design Detailed Design Architectural Design

More information

Seminar report Software reuse

Seminar report Software reuse A Seminar report On Software reuse Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science SUBMITTED TO: www.studymafia.com SUBMITTED BY:

More information

To practice UCSD Usability Design

To practice UCSD Usability Design To practice UCSD from principles to process Adds essential UCSD activities and roles to any process. Easy to communicate. Easy to integrate: in organizations and projects. A subset of a development process.

More information

18-642: Software Development Processes

18-642: Software Development Processes 18-642: Software Development Processes 9/6/2017 Coding Is Essentially 0% of Creating Software http://e.ubmelectronics.com/2013embeddedstudy/index.html 2 Old-School Waterfall Development Cycle Bugs SPECIFY

More information

Level 4 Diploma in Computing

Level 4 Diploma in Computing Level 4 Diploma in Computing 1 www.lsib.co.uk Objective of the qualification: It should available to everyone who is capable of reaching the required standards It should be free from any barriers that

More information

SE 2730 Final Review

SE 2730 Final Review SE 2730 Final Review 1. Introduction 1) What is software: programs, associated documentations and data 2) Three types of software products: generic, custom, semi-custom Why is semi-custom product more

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

Dimensions for the Separation of Concerns in Describing Software Development Processes

Dimensions for the Separation of Concerns in Describing Software Development Processes Dimensions for the Separation of Concerns in Describing Software Development Processes Pavel Hruby Navision Software Frydenlunds Allé 6 DK-2950 Vedbæk, Denmark ph@navision.com http://www.navision.com,

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

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

Information System Architecture. Indra Tobing

Information System Architecture. Indra Tobing Indra Tobing What is IS Information architecture is the term used to describe the structure of a system, i.e the way information is grouped, the navigation methods and terminology used within the system.

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6 Moving on to Design Analysis versus Design The purpose of analysis is to figure out what the business needs are. To achieve this, the analysis activities

More information

Introduction - SENG 330. Object-Oriented Analysis and Design

Introduction - SENG 330. Object-Oriented Analysis and Design Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:

More information

The Process of Software Architecting

The Process of Software Architecting IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation Agenda IBM Software Group Rational software Introduction Architecture,

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

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams)

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams) Download FirstOODesignPractice from SVN A Software Engineering Technique: (Class Diagrams) public class TicTacToe { private final int rows; private final int columns; private String[][] board; /** * Constructs

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

Software Architecture

Software Architecture Software Systems Architecture, Models, Methodologies & Design - Introduction Based on slides and information from a variety of sources Including Booch Software Architecture High level design of large software

More information

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key Part 1. Each question is worth 4 points. 1. Define what a system is. Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key A system is a construct or collection

More information

Lecture 6: Requirements Engineering

Lecture 6: Requirements Engineering Lecture 6: Requirements Engineering Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

Architecture of Business Systems Architecture and the Role of the Architect

Architecture of Business Systems Architecture and the Role of the Architect Sandro Schwedler Wolfram Richter Architecture of Business Systems Architecture and the Role of the Architect Lecture Outline Introduction (W) Lecture Overview Architecture & role of the Architect Views

More information

Architectural Design. CSCE Lecture 12-09/27/2016

Architectural Design. CSCE Lecture 12-09/27/2016 Architectural Design CSCE 740 - Lecture 12-09/27/2016 Architectural Styles 2 Today s Goals Define what architecture means when discussing software development. Discuss methods of documenting and planning

More information

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

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Viewpoint-based Test Architecture Design

Viewpoint-based Test Architecture Design Viewpoint-based Test Architecture Design MaSST 2012 (International workshop on Metrics and Standards for Software Testing) in conjunction with SERE 2012 Washington D.C. NISHI, Yasuharu The university of

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

Using the UML for Architectural Description Rich Hilliard

Using the UML for Architectural Description Rich Hilliard Using the UML for Architectural Description Rich Hilliard rh@isis2000.com Outline What is IEEE P1471? The IEEE P1471 Conceptual Framework Requirements on Architectural Descriptions Using the UML in the

More information

Database Design. 6-1 Artificial, Composite, and Secondary UIDs. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Database Design. 6-1 Artificial, Composite, and Secondary UIDs. Copyright 2015, Oracle and/or its affiliates. All rights reserved. Database Design 6-1 Objectives This lesson covers the following objectives: Define the different types of unique identifiers (UIDs) Define a candidate UID and explain why an entity can sometimes have more

More information

UML: Unified Modeling Language

UML: Unified Modeling Language UML: Unified Modeling Language 1 Modeling Describing a system at a high level of abstraction A model of the system Used for requirements and specification Many notations over time State machines Entity-relationship

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

Entity Relationship Modelling

Entity Relationship Modelling Entity Relationship Modelling Overview Database Analysis Life Cycle Components of an Entity Relationship Diagram What is a relationship? Entities, attributes, and relationships in a system The degree of

More information

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model IBM Software Group Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model 1 Objectives Simplify the maintenance of the requirements without sacrificing clarity or comprehension

More information

System Design and Modular Programming

System Design and Modular Programming CS3 Programming Methodology Lecture Note D1, 2 November 2000 System Design and Modular Programming System design involves meeting competing requirements and satisfying constraints on the system and the

More information

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p. Preface p. xv Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p. 8 Specification and Design Aspects p.

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

1.264 Midterm Exam Solutions Fall, Name:

1.264 Midterm Exam Solutions Fall, Name: 1.264 Midterm Exam Solutions Fall, 2006 Name: Exam guidelines: 1. 80 minutes are allowed to complete the exam. 2. Open notes, open book. 3. No laptop computers or calculators are allowed. 4. No cell phones

More information

Basic Reliable Transport Protocols

Basic Reliable Transport Protocols Basic Reliable Transport Protocols Do not be alarmed by the length of this guide. There are a lot of pictures. You ve seen in lecture that most of the networks we re dealing with are best-effort : they

More information

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1)

Topics. Verilog. Verilog vs. VHDL (2) Verilog vs. VHDL (1) Topics Verilog Hardware modeling and simulation Event-driven simulation Basics of register-transfer design: data paths and controllers; ASM charts. High-level synthesis Initially a proprietary language,

More information

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE Agile Software Development Agile UX Work Kati Kuusinen Researcher @ TUT / Pervasive / IHTE kati.kuusinen@tut.fi Contents 1. Introduction / Motivation 2. Agile software development 3. User experience work

More information

Fully Optimize FULLY OPTIMIZE YOUR DBA RESOURCES

Fully Optimize FULLY OPTIMIZE YOUR DBA RESOURCES Fully Optimize FULLY OPTIMIZE YOUR DBA RESOURCES IMPROVE SERVER PERFORMANCE, UPTIME, AND AVAILABILITY WHILE LOWERING COSTS WE LL COVER THESE TOP WAYS TO OPTIMIZE YOUR RESOURCES: 1 Be Smart About Your Wait

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification

More information

The OO Solution. Objects

The OO Solution. Objects C870: Cheng The OO Solution The OO model closely resembles the problem domain Base your model on the objects in the problem domain Iteratively refine the high-level model until you have an implementation

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Human-Computer Interaction: An Overview. CS2190 Spring 2010

Human-Computer Interaction: An Overview. CS2190 Spring 2010 Human-Computer Interaction: An Overview CS2190 Spring 2010 There must be a problem because What is HCI? Human-Computer interface Where people meet or come together with machines or computer-based systems

More information

Planning in Mobile Robotics

Planning in Mobile Robotics Planning in Mobile Robotics Part I. Miroslav Kulich Intelligent and Mobile Robotics Group Gerstner Laboratory for Intelligent Decision Making and Control Czech Technical University in Prague Tuesday 26/07/2011

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

1 OBJECT-ORIENTED ANALYSIS

1 OBJECT-ORIENTED ANALYSIS UML and Patterns.book Page 3 Sunday, August 9, 200 2:50 PM Chapter OBJECT-ORIENTED ANALYSIS AND DESIGN The shift of focus (to patterns) will have a profound and enduring effect on the way we write programs.

More information

Learning objectives: Software Engineering. CSI1102: Introduction to Software Design. The Software Life Cycle. About Maintenance

Learning objectives: Software Engineering. CSI1102: Introduction to Software Design. The Software Life Cycle. About Maintenance CSI1102: Introduction to Software Design Chapter 10: Introduction to Software Engineering Learning objectives: Software Engineering The quality of the software is a direct result of the process we follow

More information

CS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP. See also: Chapter 6. The Stagewise Model

CS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP. See also: Chapter 6. The Stagewise Model CS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP See also: Chapter 6 The Stagewise Model The Waterfall Model The Spiral Method Extreme Beach Volleyball Programming

More information

Congruence Arithmetic

Congruence Arithmetic Module 4 Congruence Arithmetic Popper 4 Introduction to what is like Modulus choices Partitions by modulus Mod 5 Mod 7 Mod 30 Modular Arithmetic Addition Subtraction Multiplication INTEGERS! Mod 12 Cayley

More information