487-390 Main 487-371 Rice 1 487-390 Main 487-371 Rice 2 3 - - PowerPoint PPT Presentation

487 390 main 487 371 rice
SMART_READER_LITE
LIVE PREVIEW

487-390 Main 487-371 Rice 1 487-390 Main 487-371 Rice 2 3 - - PowerPoint PPT Presentation

487-390 Main 487-371 Rice 1 487-390 Main 487-371 Rice 2 3 Data Design Transform the information domain (created in analysis) into Data structures. Architectural Design: Defines the relationship between major structural


slide-1
SLIDE 1

1

487-390 Main 487-371 Rice

slide-2
SLIDE 2

2

487-390 Main 487-371 Rice

slide-3
SLIDE 3

3

slide-4
SLIDE 4

4

  • Data Design

– Transform the information domain (created in analysis) into Data structures.

  • Architectural Design:

– Defines the relationship between major structural elements of the software. – The design patterns that can be used to achieve the goal

  • Interfaces Design - How the system interfaces:

– With itself (procedure calls) – With other systems – With users (Screens)

  • Components Design

– Structural elements into procedural description

slide-5
SLIDE 5

5

  • Abstraction - Each step of the SW process

refines the solution and removes levels of abstraction:

– High level – user and environment – Low levels – code

slide-6
SLIDE 6

6

  • Describes:

– the structure of a program:

  • how the modules interact

– the structure of the data.

slide-7
SLIDE 7

7

  • Organization of the modules within a

program

– Does not show sequence of processes – It shows how modules call each other

  • Hierarchy of Control
  • TreeLike Notation

– Represents hierarchical control for call and return architecture (example Pressman Page 347)

slide-8
SLIDE 8

8

  • A good module has functional

independence.

  • It is achieved by developing modules with

"single-minded" function

  • Functional Independence is measured

by looking at the cohesion and coupling

  • f the modules.
slide-9
SLIDE 9

9

  • Each module should have a central theme or

purpose.

– Should be able to describe a cohesive module using a sentence with one subject and one verb

  • High cohesion is good. Low cohesion is to be

avoided.

slide-10
SLIDE 10

10

  • Coincidentally cohesive (worst):

– module performs tasks that are related loosely or maybe not at all. – Example: divide the monolithic program into modules using a ruler

  • Logically Cohesive (low):

– Logically related tasks in one module – Example: A module that does all errors processing tasks.

  • Temporal cohesion (low):

– tasks of a module are related because they must be executed in the same time span. – Example: Clean up tasks at the end of processing

slide-11
SLIDE 11

11

  • Communicational cohesion (moderate):

– all processing elements concentrate on one area

  • f a data structure.

– Update the record in the database and add to audit trial.

– module performs one distinct task. – Example: a Procedure that computes the shipping cost of an order.

slide-12
SLIDE 12

12

  • Refers to the degree of

interconnectedness between modules

  • Minimize coupling to reduce the ripple

effect when changes are made.

  • The goal is to reduce connection paths

between modules.

  • High coupling limits reuse.
  • lowest possible coupling
slide-13
SLIDE 13

13

  • Data coupling (low):

– Only simple data items are passed

  • Stamp coupling (low):

– A structure is passed, even though only a portion of the data items are needed.

  • Control coupling (moderate):

– a "control flag", variable that controls decisions in a subordinate or super-ordinate module is passed.

  • External coupling (high):

– modules are tied to an environment. I/O ties modules to a specific device, formats and communication protocols.

slide-14
SLIDE 14

14

  • Common coupling (high)

– modules reference a global data area.

  • Content coupling (highest):

– when one module makes use of data or control information maintained within the boundary of another module.

  • This should always be avoided
slide-15
SLIDE 15

15

  • Data Design

– Transform the information domain (created in analysis) into Data structures.

  • Architectural Design:

– Defines the relationship between major structural elements of the software. – The design patterns that can be used to achieve the goal

  • Interfaces Design - How the system interfaces:

– With itself (procedure calls) – With other systems – With users (Screens)

  • Components Design

– Structural elements into procedural description

slide-16
SLIDE 16

16

Chapter 14

slide-17
SLIDE 17

17

  • To View and Evaluate the system as a

whole before moving to component design.

– Blueprint of a house

  • 1st the foot print of the house is designed
  • Then plumping and electrical plans are drawn.
slide-18
SLIDE 18

18

  • Data Design

– Transforms data elements in the Requirement Specification (ERD, data dictionary) into data structures. – Represent the data component of the architecture

  • Architectural Design

– Define a family of system in terms of a pattern of structural organization

  • i.e. Ranch vs. Victorian House.

– Focuses on the structure of the SW components

  • Properties and
  • interactions
slide-19
SLIDE 19

19

Approaches to Selecting an Architectural Design for a system

  • Analyze the needs of the system

– Requirements, – Constraints, and the – Environment

  • Evaluate different architectures

– Pick the best

  • Map requirements of your system into the

selected architecture.

slide-20
SLIDE 20

20

  • Is a pattern for construction:

– Should guide the builder – Ranch style, Victorian Style will give you a general idea on the architecture of the system – Each style encompasses a set of Categories

slide-21
SLIDE 21

21

  • They Define the Architectural Style:

– Components that perform a function

  • Database, simple computational modules, clients, servers and

filters.

– Connectors, enable communications

  • Define how the components communicate, coordinate and

cooperate

– Call, event broadcasting, pipes

– Constraints

  • Define how the system can be integrated

– Semantic Models

  • Specify how to determine a system’s overall properties from

the properties of its parts.

slide-22
SLIDE 22

22

  • Data Flow Systems: (Figure Page 373 )

– Batch Sequential – Pipes and Filters

  • Call-and-Return systems

– Main program and sub-programs – Object Oriented Systems – Hierarchical layers

slide-23
SLIDE 23

23

  • Independent Components:

– Communication Processes – Event Systems

  • Virtual Machines

– Interpreters – Rule based Systems

  • Data-Centered Systems (Figure on page 372):

– Databases – HTML Systems

slide-24
SLIDE 24

24

  • Components : Filters

– Each Filter transforms the data

  • Connectors : Pipes

– Transmit data from one filter to the next

  • Constraints :

– Each Filter works independently – Each filter expects Input and should produce Output.

  • Page 373 for Model
slide-25
SLIDE 25

25

  • Is a Pipes and Filters model with ONE flow
  • Page 373 for Model
slide-26
SLIDE 26

26

  • Components : Main and Sub-Components
  • Communication : Main calls sub-programs
  • Constraints : Main act as a Driver

Main Sub2 Sub1

slide-27
SLIDE 27

27

  • Components: Database elements (tables,

queries, etc.)

  • Communication: Relationships
  • Constraints : Client request info from

Server

slide-28
SLIDE 28

28

  • Data Design

– Transform the information domain (created in analysis) into Data structures.

  • Architectural Design:

– Defines the relationship between major structural elements of the software. – The design patterns that can be used to achieve the goal

  • Interfaces Design – (Chapter 13) How the system

interfaces:

– With itself (procedure calls) – With other systems – With users (Screens)

  • Components Design

– Structural elements into procedural description

slide-29
SLIDE 29

29

  • User Model

– Depicts the profile of end users – Should be related to user characteristics:

  • Age
  • Gender
  • Education
  • Special Needs

– Types of users:

  • Knowledgeable frequent
  • Knowledgeable infrequent
  • Never seen a computer before
slide-30
SLIDE 30

30

  • Design Issues:

– Response Time – Help Facility – Error Messages

  • Expressed in user terms
  • Extended help for action
  • Provide more info on sequences
  • Non-Judgmental

– Command Labeling

  • menus
slide-31
SLIDE 31

31

  • Guidelines

– Be Consistent – Easy to use screens - Be SIMPLE – Offer Meaningful feedback – Permit easy reversal of most actions – Reduce the amount of information that must be memorized

  • Use Pull-down-menus

– Keep help at all levels

slide-32
SLIDE 32

32

  • Guidelines

– Meaningful Titles – Get user feedback

  • Listen to users
  • Ask for suggestions
  • Prototype and get feedback again and again until the

user says “This is the best”

  • Don’t be too technical
slide-33
SLIDE 33

33

  • Data Design

– Transform the information domain (created in analysis) into Data structures.

  • Architectural Design:

– Defines the relationship between major structural elements of the software. – The design patterns that can be used to achieve the goal

  • Interfaces Design - How the system interfaces:

– With itself (procedure calls) – With other systems – With users (Screens)

  • Components Level Design (Chapter 16)

– Structural elements into procedural description

slide-34
SLIDE 34

34

  • Also known as Procedural Design
  • The intent is to translate the design model into

code like language.

  • Represent the design at a level of abstraction that

is close to Code

ARCHITECTURE DATA INTERFACES

PROCEDURAL DESIGN

slide-35
SLIDE 35

35

  • Establish the algorithmic detail required to:

– Manipulate data structures – Define components interfaces – Implement the processing algorithms for each component.

  • Its an opportunity to verify your design

correctness

slide-36
SLIDE 36

36

  • Graphical

– Flowchart (Page 425)

  • Tabular Design Notation

– Decision Table (Page 429)

  • Text

– Program Design Language “Pseudo-Code” (Page 431)

slide-37
SLIDE 37

37

  • Title Page

– Title, – Team Members Indicate Team Leader and – Logo.

  • 1. Introduction and Scope

1.1 Goals and objectives Overall goals and software objectives are described. 1.2 Statement of scope A description of the software is presented. Major inputs, processing functionality, and outputs are described without regard to implementation detail. 1.3 Software context The software is placed in a business or product line

  • context. Strategic issues relevant to context are discussed. The intent is

for the reader to understand the 'big picture'. 1.4 Major constraints Any business or product line constraints that will impact the manner in which the software is to be specified, designed, implemented or tested are noted here.

slide-38
SLIDE 38

38

2. Data Design

A description of all data structures including internal, global, and temporary data structures.

2.1 Internal software data structure

Data structures that are passed among components of the software are described.

2.2 Global data structure

Data structures that are available to major portions of the architecture are described.

2.3 Temporary data structure

Files created for interim use are described.

2.4 Database description

Database(s) created as part of the application is(are) described.

slide-39
SLIDE 39

39

3. Architectural and component-level design

A description of the program architecture is presented.

3.1 Program Structure

A detailed description the program structure chosen for the application is presented.

3.1.1 Architecture diagram

A pictorial representation of the architecture is presented.

slide-40
SLIDE 40

40

3.2 Components Description

3.2.1 For each Module in your SW Architecture complete a PSPEC 3.2.2 Component Level Design For each Module: Module ID: Module Name: Input : Output Modifies: Is-called-by: Calls: Algorithmic Model (PDL,Flowcharts) Local Data Structures:

slide-41
SLIDE 41

41

4. User interface design

A description of the user interface design of the software is presented.

4.1 Description of the user interface

A detailed description of user interface including screen images or prototype is presented.

4.1.1 Screen images

Representation of the interface form the user's point of view.

4.1.2 Objects and actions

All screen objects and actions are identified.

4.2 Interface design rules

Conventions and standards used for designing/implementing the user interface are stated.

slide-42
SLIDE 42

42

5.0 Testing Issues

Test strategy and preliminary test case specification are presented in this section.

5.1 Classes of tests

The types of tests to be conducted are specified, including as much detail as is possible at this stage. Emphasis here is on black-box and white-box testing.

5.2 Expected software response

The expected results from testing are specified. Begin to think of test cases and what the results should be. Test cases can be for individual modules (white box testing) or the overall system (black box testing).

5.3 Performance bounds

Special performance requirements are specified.

5.4 Identification of critical components

Those components that are critical and demand particular attention during testing are identified.

slide-43
SLIDE 43

43

  • Code is generated in this Phase
  • The information in the design document is

translated to CODE.

slide-44
SLIDE 44

44

Analysis Analysis Design Design Code Code Test Test Implementation

slide-45
SLIDE 45

45

  • Performs Functionality
  • Readable
  • Meaningful Comments
  • Easy To Maintain
  • Understand-Able
slide-46
SLIDE 46

46

  • 1. Through the use of Structured Coding

– Sequence – One task after the other – Condition – IF Statement – Repetition – Looping

slide-47
SLIDE 47

47

Private Sub Command0_Click() On Error GoTo Err_Command0_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmSchedule" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command0_Click: Exit Sub Err_Command0_Click: MsgBox Err.Description Resume Exit_Command0_Click End Sub If X=0 Then { X = X +1 Else X = X –1 }

For (pnode = linklist :: first() ; pnode; pnode = pnode- >next()) { total_sales += pnode->ret_num; }

slide-48
SLIDE 48

48

Private Sub Command0_Click() On Error GoTo Err_Command0_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmSchedule" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command0_Click: Exit Sub Err_Command0_Click: MsgBox Err.Description Resume Exit_Command0_Click End Sub

If X=0 Then {X = X +1 Else X = X –1 }

For (pnode = linklist :: first() ; pnode; pnode = pnode- >next()){total_sales += pnode->ret_num;}

slide-49
SLIDE 49

49

  • 3. Through Good Program Documentation
  • Program Header
  • Program Name
  • Date : first development date
  • Description
  • Assumptions
  • Changed History:
  • Avoid same line documentation
  • Make meaningful comments
slide-50
SLIDE 50

50

3. Through Good Program Documentation Bad Example

If (linklist::getcount () > 0 ) /* if getcount >0,compute value)*/ return Total_Sales; Else return0;

Good Example

/* if List empty return 0, otherwise compute total sales */ If (linklist::getcount () > 0 ) return Total_Sales; Else return0;

slide-51
SLIDE 51

51

  • 4. Use Meaningful Variable Names

Bad Example

Int X, float Y;

Good Example

Int Total_sales; /* accumulate the sum of all sales */ Float count; /* Count all number in the list */

slide-52
SLIDE 52

52

  • 5. Have Code Standards and enforce it during

Code Review