soft. eng. i, fall 2006dr driss kettani, from i. sommerville1 csc-3324: chapter 6 software design...

23
Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Somme rville 1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Post on 19-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 1

CSC-3324: Chapter 6

Software Design

Section 10.3 (except 10.3.1)

Page 2: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 2

The Typical Waterfall model embeds the

following steps:

Feasibility study

Conceptual Analysis

Design

Implementation

Maintenance.

The Design Phase...

Page 3: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 3

Adapting the conceptual solution identified during

the analysis step to the technology enablers

(Platforms, Programming languages, DBMS, OS,

Devices, etc.) that can/will be used for the project…

Client constraints, Organizational constraints, the

requirements, the software engineer profile, etc;

The Design Phase...

Page 4: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 4

During the Design, we must perform the following tasks and produce their corresponding deliverables:

Choose appropriate technology enablers... Set the functional architecture… Set the system architecture… Set the functions interactions (call, messages, events,

etc.)… Building the DFDs… Building a logical data model... Set the functions interface… Write the algorithms... Design the user interfaces...

The task to be performed...

Page 5: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 5

Choose appropriate technology enablers..

Programming language, Web tools, DBMS, Network protocol, Operating system, User Interface development tool, Platforms Etc.

Page 6: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 6

Set the functional architecture…

A Functional architecture contains, in a tree like hierarchy, all

modules (nodes) and functions (leafs) of your system with

the exact names as they will appear in the code… Directly

derived from the conceptual architecture…

Given the tools that have been selected for the development,

we must adjust the leafs of the conceptual architecture...

This can lead to changing leafs names, adding/dropping

some hierarchical levels...

Page 7: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 7

Set the system architecture… (web oriented architecture…)

Page 8: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 8

Set the system architecture… (web oriented architecture…)

The client presentation layer: In web applications the user most often accesses

this tier through a web browser, but other entry points are possible, such as

desktop applications or entirely different devices using e.g. web services. 

The Server-Side Presentation Layer: contains the logic that allows the user to

navigate the application. In this layer the presentation of the content to the user

is determined.

This Server-Side Business Logic layer: contains the business logic of the

application. The functionality is divided into modular components, called EJBs

(Enterprise Java Beans), and each bean is responsible for a defined area of the

business logic, e.g. price calculation or customer data. 

Enterprise Information System layer: is the database server, containing the raw

data

Page 9: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 9

Protocols of Web architecture

ODBC/ JDBC

Web tier

JSPs under Apache/Tomcat

Windows/Linux

Application server (Business tier)

Business Rules/Logic

J2EE platform

Windows/Linux

Primary ServerOracle/MySQL

Replication Server

Oracle/SQL Server

Replication Data tier

Main Data tier

RPC/RMI

PC Internet

Windows

Touch Screen

Windows

PDAs

JAVA VM

HTTPS

Via GSM /GPRS or an access Point (using IEEE 802.11)

BROWSERS

Page 10: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 10

Set the functions interactions

How the different functions of the architecture

are linked to each other…

Interactions/dynamic model…

Focus on: Time… When is it called?

Sequence… Who calls? To whom the output is

destined?

Inputs/Outputs;

Entrance/exit Conditions...

Page 11: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 11

Set the functions interactions

Control models…

Sequential (Centralized as called by

Somerville) control: The call/return model;

The manager Model;

Event driven programming…

Messages based (OO) interaction…

Page 12: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 12

Set the functions interactions… DFDs

Data Flow Diagrams (DFDs) are a good way to

graphically represent the functions interactions...

A DFD shows the processing steps as data flows

through a system...

We may need separated DFDs and different levels of

abstractions to model all processes…

Based on the CPMs and the functional architecture…

Page 13: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 13

Set the functions interaction… DFDs

• A good DFD, must specify for each function:• The Input data, The Input data, • The entrance conditions (if ever),The entrance conditions (if ever),• The output data,The output data,• The exit conditions (if ever).The exit conditions (if ever).

Page 14: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 14

Set the functions Interaction… DFDs

Completeorder form

Orderdetails +

blankorder form

Valida teorder

Recordorder

Send tosupplier

Adjustavailablebudget

Budgetfile

Ordersfile

Completedorder form

Signedorder form

Signedorder form

Checked andsigned order

+ ordernotification

Orderamount

+ accountdetails

Signedorder form

Orderdetails

Page 15: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 15

Set Functions Interface...

Parameters (type, number,

source); Local/Global Variables; Central/shared Database;

Data structure…

Page 16: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 16

Building your logical data Model...

Database (Relational: E/R- Objects: UML…)

Files... Arrays... Record… Files/Queues...

Page 17: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 17

Writing algorithms...

What is an algorithm? What is the link with programming

languages? What is the link with software

engineering? Basic algorithmic constructs… How to write a good algorithms? Strategies…

Page 18: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 18

Writing algorithms... Basic algorithmic constructs…

Alternatives: If Condition Then Sequence1 Else

Sequence2… Case Condition Switch Sequence Break…

Iterations: For IntervalValues Do Sequence… Repeat Sequence Until Condition… While Condition Do…

Sequences: Begin Inst1 , Inst2, … , Instn End.

Page 19: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 19

Programming your system…

Coding different modules of your system

with respect to the Technology

Enablers…

Component oriented programming…

Structured/Quality programming…

Documented/traceable programming…

Page 20: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 20

Structured/Quality Programming…

All variables used in the program must be: Assigned: must be given a value before being

used; Initialized: must be given a value before being used

in a loop; Precise: must be given sufficient physical space in

accordance with their type; Documented: commented at declaration and at use Auto-descriptive: significant name…

Page 21: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 21

Structured/Quality Programming…

All functions/Modules must be:

Parametrable: all inputs must be given as

parameters;

Encapsulated: does not use global variables;

Generic /Abstract : perform a precise task

that is understandable outside the technical context.

Documented… minimum 10% ratio Code/Comment

Page 22: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 22

Structured/Quality Programming…

General rules: Indention… Alignment… One instruction per line… Avoid spaghetti expressions… No transtyping/Casting… No more than 2 nested Ifs… Use appropriate Iterative/alternative

structures…

Page 23: Soft. Eng. I, Fall 2006Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 6 Software Design Section 10.3 (except 10.3.1)

Soft. Eng. I, Fall 2006 Dr Driss Kettani, from I. Sommerville 23

Design the user interfaces...

See User Interface chapter slides...