Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 12 Review Questions
Chapter 13 Review Questions
Design Concepts and Principles
Software Requirements Engineering
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Requirements and Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Revision Session 4 Systems and Software Design. Software Design-related Topics What are the key characteristics of a quality software design and how can.
Objects First With Java A Practical Introduction Using BlueJ Designing object-oriented programs How to write code in a way that is easily understandable,
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
03/12/2001 © Bennett, McRobb and Farmer Class Design Based on Chapter 14 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
COMP1007 Intro to Requirements Analysis © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to Requirements Analysis Object Oriented.
03/12/2001 © Bennett, McRobb and Farmer Transition to Design Based on Chapter 12 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
© Bennett, McRobb and Farmer 2005
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
© Copyright Eliyahu Brutman Programming Techniques Course.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Chapter 24 - Quality Management
The chapter will address the following questions:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Managing Software Quality
Introduction to Object-oriented programming and software development Lecture 1.
Objects and Components. The adaptive organization The competitive environment of businesses continuously changing, and the pace of that change is increasing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Lecture # 06 Design Principles II
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
CSE 303 – Software Design and Architecture
Design (1) Design involves decisions on how to deliver the agreed functionality to the users. Design involves development of a clear, unambiguous and consistent.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Creator: ACSession No: 15 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Software Quality Assurance & Software Quality Control.
SE: CHAPTER 7 Writing The Program
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Cohesion and Coupling CS 4311
CSE 303 – Software Design and Architecture LECTURE 4.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Developing Business/IT Solutions Chapter 12 McGraw-Hill/IrwinCopyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
CSE 303 – Software Design and Architecture
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
7. Modular and structured design
The Development Process of Web Applications
Lecture 9- Design Concepts and Principles
TIM 58 Chapter 8: Class and Method Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Improving the Design “Can the design be better?”
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Lecture 9- Design Concepts and Principles
Software Design Lecture : 8
Software Design Lecture : 14.
An Introduction to Software Architecture
Systems Analysis and Design I
Presentation transcript:

Systems Design

Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and getting the requirements clear. Design is about how the new system will meet the requirements.

Good analysis Correct scope – clearly understood, documented and agreed with clients. Completeness – everything within scoped system should be documented. Correct content – documentation correct and accurate Consistency – no ambiguity

Design is about translating the analysis model into a design model that effectively implements the requirements. The focus here is on the technology side and thus effective design should make a system easier to build and more usable and functional for the end-users.

Design Quality The designer will be working within a framework of quality criteria, design and development standards, constraints, and be trying to achieve measurable objectives that are specific to the particular system.

Aspects of Design OO Detailed Design – software design Database Design User Interface Design Systems (architectural) design

Design can take place at several levels. System design is more concerned with architecture Detailed software design is concerned with coding User interface design is concerned with usability Database design is concerned with data integrity, avoiding duplication, and performance

Objectives of Software Design Functional – does what is required Efficient – in terms of time and resources Economical – in terms of money and system resources Reliable – hardware/software failure, data integrity – testing important here Secure Flexible – configurability, modifiability Portability- easy to adapt to different platforms General – is the system general purpose? Build-able- easy to code and build Manageable Maintainable- easy to fix, change, adapt Usable- easy to use, can achieve desired goals, efficient Re-usable- code can be re-used easily

How can re-usability, flexibility, maintainability etc. be achieved? 2 core principles of software design Coupling and Cohesion

Basic Software Design Criteria: Cohesion Cohesion is a measure of the degree to which an element adheres to a single purpose. Good cohesion –software modules ( sections of code) carry out a clearly defined process or group of processes that are functionally related to one another. It does what it says on the tin … and nothing else.

Basic Software Design Criteria: Coupling – degree of interconnectedness or dependency between modules. Coupling should be minimal. The aim is to produce modules which are independent and can be amended without producing knock-on effects to the rest of the system.

Cohesion in an Object Oriented Design Cohesion is the extent to which a class or operation relates to a single purpose. Operation cohesion – degree to which an operation focuses on a single functional requirement. Class cohesion reflects the degree to which a class is focused on a single requirement. Specialisation cohesion – the semantic cohesion of inheritance hierarchies. Liskov Substitution Principle – should be able to treat a derived object as if it were a base object.

Coupling in an Object-Oriented Design Coupling is the interconnectedness between components. This is reflected by the number of links an object has and the degree of interaction an object has with other objects. Inheritance coupling describes the degree to which a subclass actually needs the features it inherits. Interaction coupling measures the amount of message types an object sends to other objects and the number of parameters passed with these message types. Minimising coupling makes reuse easier : Why?

address Number Street Town County Country postcode Person Name Age gender Company Name Income profit Poor Specialisation cohesion (Mc Bennett et al p385)

Is this cohesive? Vehicle Serial number Model Year Getdetails() New Vehicle Name Manufacturer Base Cost Getdetails() Trade in vehicle Make Getdetails()

Does the patient need the features it inherits? Staff member Name Address Dob Role Salary patient condition doctor roster

Is this cohesive? Bank account ID number balance Getbalance() Lodge() Withdraw() Current account Overdraft limit Interest_rate setoverdraft() Chargeinterest() Deposit account Deposit interest rate addinterest()

Is this cohesive? Does it show inheritance coupling? Current account ID number balance Overdraft limit Interest_rate Getbalance() Lodge() Withdraw() setoverdraft() Chargeinterest() Deposit account Deposit interest rate addinterest()

Logical and Physical design Design of the systems architecture will determine some of the choices that are made at lower levels.

Summary

Design needs measurable objectives SMAC