Approaching the Design Stages

grrrgrapeInternet and Web Development

Oct 31, 2013 (3 years and 7 months ago)

83 views

University of Southern California

Center for Systems and Software Engineering

Approaching the Design Stages

Pongtip Aroonvatanaporn

CSCI577 Fall 2010

November 10, 2010

11/10/2010

USC
-
CSSE

1

University of Southern California

Center for Systems and Software Engineering

Outline


Looking back


Moving into Design


Exercise

11/10/2010

USC
-
CSSE

2

University of Southern California

Center for Systems and Software Engineering

Design in Valuation


Less structured


Focus on analyzing system to be built


“Translate” concepts and requirements
into design language


May have mismatches and unresolved
issues


But high risks items must be addressed


Develop at least 1 feasible architecture


TIM or TSM

11/10/2010

USC
-
CSSE

3

University of Southern California

Center for Systems and Software Engineering

For 577


System analysis


System context


Information architecture


Use
-
cases


Only focused on the behavior of the system


What can the system do?


No specific details yet


No actual implementation


11/10/2010

USC
-
CSSE

4

University of Southern California

Center for Systems and Software Engineering

Forward to Foundations


Translate system behavior into detailed
designs and implementations


Convince stakeholders that you have a
stable architecture


Based on risks and values


Commit to 1 architecture for development


Something that is feasible


No unresolved issues or items


No “potential” elements


No unreferenced items (traceability)

11/10/2010

USC
-
CSSE

5

University of Southern California

Center for Systems and Software Engineering

For 577


Polish up the system analysis model


Develop a Technology
-
Specific Design


High risk items


Architecturally significant items


Specify all technologies used


Complete traceability of critical use
-
cases

11/10/2010

USC
-
CSSE

6

University of Southern California

Center for Systems and Software Engineering

Outline


Looking back


Moving into Design


Exercise

11/10/2010

USC
-
CSSE

7

University of Southern California

Center for Systems and Software Engineering

Moving to Design


System analysis focus on:


System context


System users and actors


Persistent data (Artifacts and Information)


Often reflects database schema


Data that are

p敲浡m敮tly


獴sr敤


Design focus on:


System execution architecture


In
-
memory data


Data that are retrieved from database during execution


Data obtained from system during execution

11/10/2010

8

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Software Deployment


An important perspective


Helps determine feasibility of implementation


Hardware and platform support


All software must be deployed


Most 577 projects have trivial deployment
configurations


Few hardware nodes


Rare concerns with mobile

11/10/2010

9

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Deployment Model


Hardware Components


Include the technologies/platform that run on
the hardware


Software Components


Contain the executing classes


Deployment


Placement of executable components on
physical hosts



Instances


of components


11/10/2010

USC
-
CSSE

10

University of Southern California

Center for Systems and Software Engineering

Hardware Components

11/10/2010

11

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Software Components

11/10/2010

12

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Deployment

11/10/2010

13

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Design Classes


Boundary classes


The

end


of the system


What the user sees or interacts with


Control classes


Contains the logic of the system


Entity classes


The entity or data used during execution time



In
-
memory


data

11/10/2010

14

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Association Relationships


Association


Ability for one component to communicate with another
component




11/10/2010

15

class A

{


private: B* itsB;

};

USC
-
CSSE

*
http://ootips.org/uml
-
hasa.html

University of Southern California

Center for Systems and Software Engineering

Composition Relationship


Composition


Components live and die with the parent


11/10/2010

16

class Car {


public: virtual ~Car() {delete itsCarb;}


private: Carburetor* itsCarb

};

USC
-
CSSE

*
http://ootips.org/uml
-
hasa.html

University of Southern California

Center for Systems and Software Engineering

Aggregation Relationship


Aggregation


Whole/part relationship


The same as association, but no cyclic relationship


Part cannot contain its whole


11/10/2010

17

class Node

{


private: vector<Node*> itsNodes;

};

USC
-
CSSE

*
http://ootips.org/uml
-
hasa.html

University of Southern California

Center for Systems and Software Engineering

Sequence Diagram


Logical sequence representation of the
design classes


Only model for major use
-
cases


Include all involved classes


Controller


Entities


Boundaries


Actors


Etc.

11/10/2010

18

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Clock In Sequence

11/10/2010

19

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Notes


Always treat NCS components as external
component or actors


Treat NDI as a component (you do not
know its underlying architecture)


Only design what you can implement

11/10/2010

20

USC
-
CSSE

University of Southern California

Center for Systems and Software Engineering

Outline


Looking back


Moving into Design


Exercise

11/10/2010

USC
-
CSSE

21

University of Southern California

Center for Systems and Software Engineering

Volunteer Tracking System


A system to manage volunteers


Online volunteer application submission


Time tracking system


Job management


Authentication


Volunteer management


Award notifications


Interfaces with two other systems


EventRSVP (authentication interface)


Newsletter Systems (email interface)


Provide Person Management mechanisms


Simplified for this session

11/25/2009

22

University of Southern California

Center for Systems and Software Engineering

Technologies Utilized


Symfony


PHP framework


Implements Model
-
View
-
Controller (MVC)


Provides abstractions between the 3 layers


PHP


MySQL


Apache


FreeBSD


Supports Internet Explorer and Firefox

11/25/2009

23

University of Southern California

Center for Systems and Software Engineering

Information to store


Volunteer information


Employee information


Awards


Time sheet


Jobs


11/25/2009

24

University of Southern California

Center for Systems and Software Engineering

HW/SW Components


Hardware


FreeBSD application server


Windows workstations


Mac OS X workstations


Software components


User Interface components


Time management component


User management component


Job management component

11/10/2010

USC
-
CSSE

25

University of Southern California

Center for Systems and Software Engineering


Ends at 1:10 pm


DEN students: Take 20 mins to evaluate
and answer

University of Southern California

Center for Systems and Software Engineering

Artifacts and Information Diagram

11/25/2009

27

University of Southern California

Center for Systems and Software Engineering

Time Management Class

11/10/2010

USC
-
CSSE

28