Highlights of data design and

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Design Phase What’s design?
Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Architectural Design.
What is Software Architecture?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Fall 2005
Chapter 10 Architectural Design
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
An Introduction to Software Architecture
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
Lecture 9: Chapter 9 Architectural Design
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Chapter 13 Architectural Design
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 6 System Engineering Overview of System Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Chapter : 9 Architectural Design
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Chapter 13 Architectural Design
Architectural Design.
Chapter 13 Architectural Design
Software Quality Engineering
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CS 8532: Advanced Software Engineering
Highlights of data design and
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 9 Architectural Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
CS 8532: Advanced Software Engineering
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Chapter 6: Architectural Design
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Highlights of data design and Chapter 10 Architectural Design Highlights of data design and architectural styles

Mapping OO Analysis to Design Design Patterns (domain Objects) Responsibilities Design Subsystem Design Class/Object Design Message Use Cases Object Behavior Model Class Model Object Relatio- nships Attributes Operations Collaborators

Business/Domain level Data Design - 1 Data design is defining data structures and their relationships. Business/Domain level Data Modeling (SRS) Data Warehouses Data Structures Databases Component level Application level Data warehouse: Large and independent database that has access to data stored in databases that serve a set of applications required by a specific business domain (Data Mining area).

Data Design - 2 Data design steps (at component level): - Refine data objects (from ERD or Analysis Classes of SRS) and develop a set of data abstractions (user’s view of data objects). (e.g., attributes of student data object) - Implement data object attributes as one or more data structures (this influenced by attributes, their relationships, and their use in the program). (e.g., student_record: name, ID, Address, Phone#) - Review data structures to ensure that appropriate relationships have been established. (e.g., student_record and class_list) - Simplify data structures as needed.

Software Architecture - Data Design: Represents the data component of the architecture - Architectural Design: Represents the structure of software components and their interactions (i.e., high-level organization of components and how they work together). - The architecture is not the operational! It is a representation that enables a software engineer to: 1) analyze the design effectiveness for meeting system requirements 2) consider architectural alternatives early on so that design changes can be made at low cost 3) reduce the risks associated with building the operational software. 4) facilitates ease of implementation 5) facilitates future updates 6) promote communications between all stakeholders

Architectural Styles (1) The architecture is a representation of the structure of components and their interactions. That is, how components (processing elements or modules) are organized (arranged) and how they interact with each other. An architecture (architectural style) has four elements: - Components: processing elements that transform inputs to outputs, and data components. - Connectors: the “glue” or interfaces that hold the processing elements together. - Constraints: rules of how components interact with each other. - Semantic models: information for understanding the system. (Think of house architecture regardless of it style)

Architectural Styles (2) An architectural style is a pattern of structural organization of components in the architecture. Each style requires different design details. Examples: Data-Centered Data-Flow Call-and-Return Layered OO

Data-Centered Architecture Promotes independent components (integrateability) Example: Airline reservation system

Data Flow Architecture Data transformation (pipe and filter) model. Input/output formats are required. Example: Engineering or Scientific applications

Call and Return Architecture Promotes modular design (easy to modify and scale) Can be: - Main/Sub architecture - RPC - OO Example: Any I-P-O application (survey processing)

Layered Architecture Layer of components are defined for specific tasks Example: Client/Server applications

Architectural Patterns An architectural pattern represents a repeated aspect of the style. The architectural style may include a number of patterns. Examples: Concurrency: Applications must handle multiple tasks in a manner that simulates parallelism (e.g.,OS process management pattern and task scheduler pattern) Persistence: Data persists if it survives past the execution of the process that created it. (e.g., DBMS storage and retrieval capability pattern and application level persistence pattern that builds persistence features into the application architecture) Distribution: Communicates among systems (or components of a system) in a distributed environment (e.g., a broker that acts as a “middle-man” between the client and a server)

Architectural Design - 1 1. The software must be placed into context. That is, the design should define external entities (other systems, devices, people) that the software interacts with and the nature of the interaction. See page 267 for roles. (figure 10.6, page 268) target system: Security Function uses peers homeowner Safehome Product Internet-based system surveillance function sensors control panel

Architectural Design - 2 2. Define architectural “archetypes” - An archetype is an abstraction (abstract class) that represents one element of system behavior. - They are derived from the analysis model. - They require further refinement. (figure 10.7, page 269) C o n t r l e N d D c I i a Communicates with

Architectural Design - 3 3. Define and refine software components that implement each archetype. (figure 10.8, page 270) S a f e H o m E x c u t i v r n l C M g G U I F s y p d

Architectural Design - 4 More refinement (Instantiation of Components) (Refinement of SafeHome Example) (figure 10.9, page 271) s e n o r E x t a l C m u i c M g G U I f S y p d K P h H v

Analyzing Architectural Designs - 1 Methods for evaluating alternative architectural design: - Architecture Trade-off Analysis Method (ATAM): It is six steps approach developed by SEI It is qualitative approach. It is elimination process. A set of steps is applied to alternative architectures to assess design trade-offs, and identify “sensitive points” to quality attributes. See page 272 for analysis steps. - Quantitative Guidance for Architectural Design: (not in the book) Evolving research area that focus on defining quantitative techniques for assessing quality attributes of an architecture (design dimensions: such as performance, reliability, security, maintainability, flexibility, testability, portability, interoperability, reusability, etc…).

Analyzing Architectural Designs - 2 - Architectural Complexity: It is the degree of coupling (dependency) among architecture elements (sharing, flow, constrained (control flow) dependencies) Architectural Description Language (ADL): ADLs provide syntax and semantic description of the design (diagrammatic and textual) Example ADL tools: Rapide, UniCon, ACME, Aesop, UML, … Please see Software Tools Box, page 275.

10.6: Structured Design (self-reading) Issue: There is no one particular approach for mapping requirements to design. Common approaches are Structured Design and OO Design. Structured (data-flow) design is a method for deriving Call-and-Return architecture from data flow diagrams. (i.e., using information flow for mapping requirements to design). Objective: to derive a top-down architecture that is partitioned and modular. Approach: - the DFD is mapped into a program architecture (modules) - the PSPEC and STD are used to indicate the content of each module (component level design, Ch-12)

Structured Design (self-reading) Derivation methods: - Transform Mapping: It is based on flow of data items between processes on the DFD. - Transaction Mapping: It is based on transaction flow between processes. A transaction is a data item that triggers data flow along different paths (think of a menu system). Notation: Structure chart

Mapping Method (self-reading) Program Architecture DFD Transformation Or Transaction Mapping

* Source: Software Engineering, 2nd ed., by David Budgen Design and Quality issues* The quality of the design determines the success and quality of the system to be built. A quality system is that performs required tasks within specified constraints. Unlike physical products, software design does not have physical properties that can be assessed against established measures (length, weight, height, thickness, etc…) A software design is assessed based on quality factors (called “ilities”) including reliability, efficiency, maintainability, usability. * Source: Software Engineering, 2nd ed., by David Budgen

Reliability Factor Reliability is related to the behaviour of the system. The designer tries to ensure that the system is - complete: does it handle all combinations of events and states? - consistent: is the system behavior as expected and is it repeatable? - robust: a failure in one component should not “hung” the entire system (ensure graceful termination in case of a failure) In safety-critical systems, this factors is Dominant. Multiple versions of the system (designed by different teams) may be used (auto-pilot system)

Efficiency Factor Efficiency is related to resource allocation (CPU time, memory, disk space, network access, etc…) The designer tries to predict the system needs of each identified resource. Some resources are more important than others for a particular system. Efficiency is difficult to deal with since it is based the designer's projection of resource needs from the design.

Maintainability Factor Maintainability is related to the life time of the system, which relates to its cost. The designer tries to structure the system such that future modifications are easy to conduct. Other elements that affect maintainability include names (variables and procedures), documentation standards, presentation forms, etc… Implementation (coding) also affects maintainability (Inline comments, documentation, headers, coding style, etc…)

Usability Factor Usability is related to user interface design. The designer tries to ensure that interfaces - are easy to use and navigate - provide the user with control - reduce “user memory load” - are consistent A “bad” interface makes a “good” system look “bad” from user perspective. Other factors such as testability, portability, and reusability have special purposes in specific systems.

Quality Attributes of Design Other quality factors are assessed by identifying quality attributes in the design, such as simplicity, modularity, coupling, cohesion, information hiding, accuracy, consistency, completeness, etc… For a given system and for a specific purpose (operations, update, transfer, etc…), quality attributes must be identified for each quality factors. (see examples next slides).

Example - 1 Quality factors and attributes for a real-time control system. Accuracy Completeness Consistency … Storage Organization CPU Utilization, … Modularity Structuredness … . . . Operation Revision Reliability Efficiency Maintainability Testability Purpose Quality Factor Quality Attributes

Example - 2 Quality factors and attributes for a compiler software. Purpose Quality Factor Quality Attributes Accuracy Completeness Consistency Accessibility Legibility Modularity Structuredness Machine Independence . . . Operation Revision Transfer Reliability Usability Maintainability Testability Portability Reusability

Suggested Problems 10.1, 10.3, 10.4, 10.5, and 10.6. Consider working the following problems from chapter 10, textbook, page 290: 10.1, 10.3, 10.4, 10.5, and 10.6. NO submission is required. Work them for yourself!

Last Slide End of Chapter 10