Chapter 5CSA 217 Design in Construction Chapter 5 1.

Slides:



Advertisements
Similar presentations
Software Engineering Key design concepts Design heuristics Design practices.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 13 Review Questions
Database Systems: Design, Implementation, and Management Tenth Edition
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
Ch 3 System Development Environment
By Justin Hendrix. Design Challenges Design is the activity that links requirements to coding and debugging. Good design is useful on small project and.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
High Quality Code Why it matters. By Ryan Ruzich.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Revision Session 1.UML Overview 2.Detailed software design : operation specification, designing for re-use.
Chapter 2 Data Models Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
The Software Design Process CPSC 315 – Programming Studio Fall 2009.
IMS1805 Systems Analysis Topic 3: Doing analysis (cont from Monday)
Modeling the Processes and Logic
1 Working with Classes Chapter 6. 2 Class definition A class is a collection of data and routines that share a well-defined responsibility or provide.
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
Computer Science 240 Principles of Software Design.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
3 Chapter 3 Entity Relationship (E-R) Modeling Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Object Oriented Software Development
Chapter 6 The Traditional Approach to Requirements
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Design-Making Projects Work (Chapter7) n Large Projects u Design often distinct from analysis or coding u Project takes weeks, months or years to create.
CSE 303 – Software Design and Architecture
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Database Systems: Design, Implementation, and Management Ninth Edition
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Computer Science 240 © Ken Rodham 2006 Principles of Software Design.
Introduction To System Analysis and Design
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Chapter 9 Moving to Design
SE: CHAPTER 7 Writing The Program
Systems Analysis and Design in a Changing World, 3rd Edition
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Chapter 7 What Can Computers Do For Me?. How important is the material in this chapter to understanding how a computer works? 4.
Modern Systems Analysis and Design Third Edition Chapter 2 Succeeding as a Systems Analyst 2.1.
Software Engineering Lecture 10: System Engineering.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Object Oriented Paradigm OOP’s. Problems with Structured Programming As programs grow ever larger and more complex, even the structured programming approach.
Department of Mathematics Computer and Information Science1 CS 351: Database Management Systems Christopher I. G. Lanclos Chapter 4.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
CompSci 280 S Introduction to Software Development
Unified Modeling Language
CS240: Advanced Programming Concepts
Chapter 5 Design in Construction
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Software Design Principles
Presentation transcript:

Chapter 5CSA 217 Design in Construction Chapter 5 1

CSA Design Challenges Turning a specification for computer software into operational software Links requirements to coding and debugging Top-level design provides a structure that can contain multiple lower-level designs 2

Chapter 5CSA 217 Design mistake Example Bridge fell down because of harmonic ripple 3

Chapter 5CSA 2174

Chapter 5CSA 217 Different Designers produce different design for one system Designs evolve and improve through: – design reviews, –informal discussions, –experience writing the code itself, and – experience revising the code 5

Chapter 5CSA Key Design Concepts Role of complexity Desirable characteristics of designs Levels of design. 6

Chapter 5CSA 217 Project Failure Projects fail most often because of –Poor requirements, –Poor planning, or –Poor management –Technical reasons uncontrolled complexity 7

Chapter 5CSA 217 Importance of Managing Complexity the complexity of a problem is reduced by dividing the system into subsystems. Humans understand several simple pieces of information than one complicated piece. The goal of design techniques is to break a complicated problem into simple pieces. More independent the subsystems lead to focusing on one bit of complexity at a time 8

Chapter 5CSA 217 Desirable Characteristics of a Design 1) Minimal complexity –Minimize complexity –Make "simple" and "easy-to-understand" designs –Design should allow you safely ignore of the program when you're working with one specific part. 2) Ease of maintenance –Designing for the maintenance programmer. –Continually imagine the questions a maintenance programmer would ask about the code you're writing 9

Chapter 5CSA 217 Desirable Characteristics of a Design … continue 3) Loose coupling –Connections between the different parts of a program is minimum. –Minimizes work during integration, testing, and maintenance. 4) Extensibility –a piece of a system can be changed without affecting other pieces 10

Chapter 5CSA 217 Desirable Characteristics of a Design … continue 5) Reusability –reuse pieces of the system in other systems. 6) Portability –can easily move the system to another environment 11

Chapter 5CSA 217 Levels of Design Several different levels of detail in a software system is required. –Level 1: Software System –Level 2: Division into Subsystems or Packages –Level 3: Division into Classes –Level 4: Division into Routines –Level 5: Internal Routine Design 12

Chapter 5CSA 21713

Chapter 5CSA 217 Level 1: Software System The first level is the entire system Higher level combinations of classes, such as subsystems or packages 14

Chapter 5CSA 217 Level 2: Division into Subsystems or Packages Identification of all major subsystems deciding how to partition the program into major subsystems defining how each subsystem is allowed to use each other subsystem Within each subsystem, different methods of design might be used rules about how the various subsystems can communicate 15

Chapter 5CSA 217 Subsystems should not communicate with all other subsystems Communication must be restricted Which of the following design is more simple and convenient … 16

Chapter 5CSA 217 This 17

Chapter 5CSA 217 Or this 18

Chapter 5CSA 217 In the first figure, designer can not: change something in the graphics subsystem unless he understands different parts put a new user interface put data storage on a remote machine 19

Chapter 5CSA 217 Common Subsystems Some kinds of subsystems appear regularly in different systems –Business rules : laws, regulations, policies, and procedures that you encode into a computer system –User interface : subsystem to isolate user-interface components –System dependencies: Package operating- system dependencies into a subsystem. –Database access : hide the implementation details of accessing a database. database design structure should be changed without changing most of the program 20

Chapter 5CSA 217 Level 3: Division into Classes identifying all classes in the system the ways in which each class interacts with the rest are specified the aim is making sure that all the subsystems have been decomposed to be implemented as individual classes 21

Chapter 5CSA 21722

Chapter 5CSA 217 Level 4: Division into Routines dividing each class into routines or functions This level of decomposition and design is often left up to the individual programmer, 23

Chapter 5CSA 217 Level 5: Internal Routine Design detailed functionality of the individual routines left to the individual programmer working on an individual routine The design consists of activities such as – writing pseudocode, –looking up algorithms in reference books, –deciding how to organize the paragraphs of code in a routine, and –writing programming-language code 24

Chapter 5CSA 21725

Chapter 5CSA Design Building Blocks Find Real-World Objects The steps in designing with objects are: Identify the objects and their attributes (methods and data). Determine what can be done to each object. Determine what each object is allowed to do to other objects. Determine the parts of each object that will be visible to other objects—which parts will be public and which will be private. Define each object's public interface. These steps aren't necessarily performed in order, and they're often repeated. Each of these steps is summarized below. 26

Chapter 5CSA 217 Computer programs are usually based on real-world entities. Example: you could base a time-billing system on real-world employees, clients, timecards, and bills.  Identify the objects and their attributes 27

Chapter 5CSA 217 Computer programs are usually based on real-world entities. Example: you could base a time-billing system on real-world employees, clients, timecards, and bills.  Identify the objects and their attributes 28

Chapter 5CSA 217  This billing system is composed of four major objects. The objects have been simplified for this example 29

Chapter 5CSA 217 Identifying the objects' attributes is no more complicated than identifying the objects themselves. Each object has characteristics that are relevant to the computer program. For example, in the time-billing system, an employee object has a name, a title, and a billing rate. A client object has a name, a billing address, and an account balance. A bill object has a billing amount, a client name, a billing date, and so on. Objects in a graphical user interface system would include windows, dialog boxes, buttons, fonts, and drawing tools. 30

Chapter 5CSA 217 A variety of operations can be performed on each object. In the billing system, an employee object could have a change in title or billing rate, a client object could have its name or billing address changed, and so on.  Determine what can be done to each object 31

Chapter 5CSA 217 This step is just what it sounds like. The two generic things objects can do to each other are containment and inheritance. Which objects can contain which other objects? Which objects can inherit from which other objects? In in the time-billing system, a timecard object can contain an employee object and a client object, and a bill can contain one or more timecards. In addition, a bill can indicate that a client has been billed, and a client can enter payments against a bill. A more complicated system would include additional interactions.  Determine what each object is allowed to do to other objects 32

Chapter 5CSA 217 One of the key design decisions is identifying the parts of an object that should be made public and those that should be kept private. This decision has to be made for both data and methods.  Determine the parts of each object that will be visible to other objects 33

Chapter 5CSA 217 Define the formal, syntactic, programming- language-level interfaces to each object. The data and methods the object exposes to every other object is called the object's "public interface." The parts of the object that it exposes to derived objects via inheritance is called the object's "protected interface."  Define each object's interfaces 34

Chapter 5CSA 217 Define the formal, syntactic, programming- language-level interfaces to each object. The data and methods the object exposes to every other object is called the object's "public interface." The parts of the object that it exposes to derived objects via inheritance is called the object's "protected interface."  Define each object's interfaces 35