Chapter 4

Chapter 4

Chapter 7: Design: Architecture and Methodology Design Topics Covered 1. Architectural .vs. Detailed design 2. Common architectural styles, tactics and reference architectures 3. Basic techniques for detailed design 4. Basic issues with user-interface design Design Starts mostly from/with requirements (evolving

mostly from functionalities and other nonfunctional characteristics) How is the software solution going to be structured? What are the main components --- (functional comp) Often directly from Requirements Functionalities (use Cases) How are these components related ? possibly re-organize the components (composition/decomposition) Two main levels of design: Architectural (high-level) Detailed design

How should we depict design--notation/language? Relationship between Architecture and Design Detailed Design come from Requirements & Architecture Software Architecture Structure(s) of the solution, comprising:

1. 2. 3. Major Software Elements Their externally visible properties Relationships among elements Every software system has an architecture May have Multiple structures !

multiple ways of organizing elements, depending on the perspective External properties of components (& modules) Component (Module) interfaces Component (Module) interactions, rather than internals of components and modules

Views and Viewpoints View Representation of a system structure 4+1 views (by Krutchen) Logical (OO decomposition key abstractions) Process (run-time, concurrency/distribution of functions) Subsystem decomposition Physical architecture +1: use cases

Other classification (Bass, Clements, Kazman) Module Run-Time Allocation (mapping to development environment) Different views for different people Architectural Styles/Patterns We discuss Architectural Styles/Patterns as reusable starting point for Design activities 1. 2. 3. 4.

5. 6. 7. Pipes-and-Filters Event-Driven Client-Server Model-View-Controller (MVC) Layered Database Centric Three tier Pipe-Filter architecture style The high level design solution is decomposed into 2 generic parts (filters and pipes):

Filter is a service that transforms a stream of input data into a stream of output data Pipe is a mechanism or conduit through which the data flows from one filter to another Input time cards Prepare for Check processing Process Checks ** Reminds one of DFD without the data store or source sink ** Problems that require batch file processing seem to fit this architecture: e. g. payroll, compilers, month-end accounting

Event-Driven (Realtime) The high level design solution is based on an event dispatcher which manages events and the functionalities which depends on those events. These have the following characteristics: Events may be a simple notification or may include associated data Events may be prioritized or be based on constraints such as time Events may require synchronous or asynchronous processing Events may be registered or unregistered by components text msg Phone processing

voice call Personal (device) dispatcher Image keypad Txt processing Image processing

Problems that fit this architecture includes real-time systems such as: airplane control; medical equipment monitor; home monitor; embedded device controller; game; etc. - - - try a commercial flight control system - - - Basic Client-Server Style Application split into client component and server component Client-Server Style Client may connect to more than one server (servers are usually independent) Model View Control (MVC) Style Separates model (data) from view Controller often integrated with view

nowadays View 1 Controller 1 View 2 Controller 2 Model most of the internet web applications fall under this style

Layered Style The outer layer can only ask for service from the inner layer or upper layer can only ask for service from lower layer. - strict layering----- only directly inside or below layers - relaxed layering---- any inside or below layers Shared Data (DB) centric style Patient processing Room Scheduling Hospital DB

Purchasing . . Nurses Scheduling Very popular within the business applications community Three tier style (mixture) Clients do not access DB directly

Better Flexibility, integrity (why?) Client 1a Client 1b DB Business Tier Client 2 Reminds one of Client-Server or MVC ? Architectural Tactics Tactics (in contrast to architectural style) are for solving smaller, specific problems

Do not affect overall structure of system Example: we add specific functionalities or component (e.g. to increase reliability) in the design for fault detection ---- especially for distributed systems: heartbeat ping / echo Reference Architectures Full-fledged architectures Serves as templates or as a reference for a class of systems Example: J2EE Reference Architecture (MVC2) Client1a

DB Business Tier (EJB) Web Tier Client1b Client2 There also are application domain specific reference architectures

Detailed Design Further Refine Architecture and match with Requirements How detailed ? How formal ? Maybe of different levels of detail for different views Functional Decomposition Technique Dates back to structured programming [now (non-OO)Web apps with PHP tool] Start with: main (task/requirements) -> module Refine into sub-modules There are alternative decompositions

Possible Decomposition of (student- course management app) 0. Main 1.Student 2.Courses 3. Sections 4. Registration 1.1 Add

2.1 Add 3.1 Add 4.1 Register 1.2 Modify 2.2 Modify 3.2 Modify 4.2 Drop 1.3 Delete

2.3 Delete 3.3 Delete Alternative Decomposition/Composition Relational Database Design Most databases use relational technology Relations (tables) Two-dimensional sets Rows (tuples), Columns (attributes) A Row may be an entity, Columns may be relationship or attributes

Primary key (unique identifier) for search Foreign keys (connects tables) Database Design Conceptual modeling (done during analysis/requirement phase) produces ER diagram Logical design (to relational) Physical design (decide data types, etc.) Deployment/maintenance Low-level physical (which hard-drive etc) Adjustment of indexes Entity-Relationship diagrams

Entities (rectangles) Weak double lines Relationships (diamonds) Attributes (ovals) Multi-valued - double lines Identifying - underlined ER diagram Logical DB Design- Entities Table per entity Flatten composite attributes For weak entities, add the primary key of the strong entity

Course Section Course Number CourseNumber Title SectionNumber CreditHours Semester

Year Time Location Logical DB Design Multi-valued New table needed for multi-valued attributes STUDENT Id Name Gender E-MAIL StudentId

e-mail Logical DB Design - Relationships If one side related to just one entity, add foreign key to that side For many-to-many, need new table For ternary, need new table STUDENT SECTION TAKES Id Name

CourseNumber SectionNumber Gender Semester Year Student_id Grade CourseNumber SectionNumber Semester Year

Time Location Physical DB Design Data types for each attribute Check which ones your DBMS support Encoding Decide on Indexes Searches are faster, updates are slower Indexes consume space Can always adjust during deployment Denormalization done sometimes (avoid)

OO Design First step: Review & Refine use cases Decide Which classes to create How are the classes related Use UML as the Design Language Use case diagram Register For Section Add Course Add Section

Student Add Student Choose Section Registrar Class Design Classes represent real-world entities or system concepts Organized into classes: objects in a class have similar characteristics Classes have properties (attributes or data) Classes also have methods (performs functions) Student dateOfBirth : Date

name : String getAgeInYears() : int getAgeInDays() : int UML Class diagrams Association Student 0..* Is Enrolled 1..1 School

Composition School Use no-fill diamond for aggregation Building Bldg-Name: String Bldg_number: int Street-name: string city : String state : String zipCode : int UML Class diagrams - Inheritance

Person Student Employee UML State diagram depicting a students status in school Accepted enroll: graduate:

Active Alumni expel: enroll: fails to enroll: Expelled Inactive UML Sequence Diagram

used to depict a flow of interactions User Interface Design Most apparent to the user Two main issues i) Flow of interactions Ii) Look and feel Types of interfaces Command-Line Text menus Graphical (GUI) Flow of interactions Prototype Screens

1.Registration: Select term 2.Registration: shows term Select first course 3.Registration: shows term, course(s) with schedule and cost Select *Additional course; *Delete course; *Finish registration 4.Registration: shows final schedule Select Confirm or Cancel High Fidelity Prototype

User: Screens: Student selects course and clicks Add Course aStudent Process: User interaction added to the sequence diagram

Normans 7 Stage Model 3 specifies action 2 forms intention 1 user forms goal 4 executes action

5 user perceives feedback 7 evaluates 6 interprets feedback The GOMS Model (an advanced topic for UI) Consider different kinds of users Four factors (for the kind of user)

Goals of the user Operations provided by the system Methods or the sequence of operations Selection Rules for the methods Other UI Issues

Kinds of users Heuristics UI Guidelines Multicultural issues Metaphors Multiplatform software Accessibility Multimedia Interfaces HTML-Script simple example Sample HTML

Username:

Password:

Visual result (possible) Model-View-Controller (MVC) software project Model

SQL database View Controller HTML PHP Object-Relational Impedance Mismatch (an advanced topic) Relational Table

Elem 1 Encapsulated Object ? Elem 2 Elem 3 Elem 4 Elem 5 How do we handle mismatches between object-oriented concepts and Relational DB such as : - typing

- private and public - inheritance and polymorphism - nested structure versus table structure

Recently Viewed Presentations

  • Executive Management Purchasing and Procurement PowerPoint ...

    Executive Management Purchasing and Procurement PowerPoint ...

    Call Cheryl Shaw, Contracts, Procurement, and Risk Management Training Manager at (360) 407-9376. The Department of Enterprise Services is your partner and is here to help you with your procurement needs.
  • Integration of Oracle and Hadoop: hybrid databases affordable

    Integration of Oracle and Hadoop: hybrid databases affordable

    Query Apache Hive/Impala tables from Oracle using a database link. Query offloaded via ODBC gateway to Impala (or Hive) SQL operations that can be offloaded. Filtering predicates are pushed to Hadoop. Problem: grouping aggregates are not pushed. There are techniques...
  • Spelling Scheme of Work Stage 4 All elements

    Spelling Scheme of Work Stage 4 All elements

    Spelling Rules: The suffix '-cian' used instead of '-sion' when the root word ends in 'c' or 'cs' Spelling Rules: Adding '-ly' to create adverbs of manner. These adverbs describe how the verb is occurring.
  • Agenda for 11th Class Handouts  Slides  Readings: Common

    Agenda for 11th Class Handouts Slides Readings: Common

    * Common Law Cases Langridge v Levy Father purchased gun. Seller stated & warranted that gun was safe Implicit that seller knew gun was not safe Son was injured and sued Court: Son can recover damages from seller Injured person...
  • Al-Najah national university Engineering Faculty Civil ...

    Al-Najah national university Engineering Faculty Civil ...

    BuildingStructuralSystem: The main structural system of buildings is moment resisting frame which consists columns, drop beams, in addition to that, the shear walls are used at the staircase and for other locations in the building .Thus, the lateral forces can...
  • Content

    Content

    Content. 8 pillars of Open Science. The role of the Funder. UCL's concept of research-based education. UCL Open Education Roadmap. A role for UCL Press?
  • Advanced Threat Protection Presentation to MTAG January 19,

    Advanced Threat Protection Presentation to MTAG January 19,

    By placing end point software sensors, we can bring the protections to the host components and prevent lateral movement of threats internal to our network. One potential solution is the use of ATP capabilities like those found in Palo Alto's...
  • December 7, 1941 On December 7, 1941, Japan

    December 7, 1941 On December 7, 1941, Japan

    The Battle of Midway was a major naval battle, widely regarded as the most important of the Pacific Campaign of World War II.It took place from 4 June to 7 June 1942, approximately one month after the Battle of the...