Ch4 software architecture and design
Download
1 / 24

Ch4: Software Architecture and Design - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

Ch4: Software Architecture and Design. The role of analysis and design. Software construction may be partitioned into the following phases: Req. analysis: S/w architecture: High-level/early design: Detailed design: Implementation: Testing:. The Role of Analysis and Design. Analysis:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Ch4: Software Architecture and Design' - reed


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

The role of analysis and design
The role of analysis and design

  • Software construction may be partitioned into the following phases:

  • Req. analysis:

  • S/w architecture:

  • High-level/early design:

  • Detailed design:

  • Implementation:

  • Testing:


The role of analysis and design1
The Role of Analysis and Design

  • Analysis:

  • OO Analysis:

  • Design:

  • OO design:


Guidelines for designing classes
Guidelines for designing classes

Specifying “Good” Classes

  • Identifying a good class is hard work

  • A well-defined class is:


Guidelines for design of classes contd
Guidelines for design of classes (contd..)

Understanding the utility of classes

  • Three categories of software in application:

    • Domain independent (20%):

    • Domain-specific (65%):

    • Application-specific (15%):

  • Organizations must strive for domain and organization specific reuse.


Guidelines for designing classes1
Guidelines for designing classes

  • Containment vs. inheritance

    • Class D“Is-A-Kind-Of”classC:

    • Class D“Has-A”class C:

  • Choose

How and when to apply reuse, relationship among classes. Need discussion,

communication and cooperation among engineers.


History of oo design
History of OO design

  • Booch: The Booch method

    • Object-Oriented Design with Application,” Benjamin/Cummings, 1991.

  • Rumbaugh: OMT

    • “Object-Oriented Modeling and Design,” Prentice-Hall, 1991.

  • Meyer: Client/Server contract approach

    • “Object-Oriented Software Construction,” Prentice-Hall, 1988.

  • Jacobson: Use-cases and software engineering

    • “Object-Oriented Software Engineering: A Use Case Driven Approach,” Addison-Wesley, 1992.


History of oo design contd
History of OO design (contd..)

  • Coleman: The Fusion method

    • “Object-Oriented Development - The Fusion Method,” Prentice-Hall, 1994.

  • Lieberherr: Adaptive OO software

    • “Adaptive OO Software: The Demeter Method with Propagation Patterns,” PWS, 1996.

  • Gamma: Design Patterns

    • “Design Patterns: Elements of Reusable Object-Oriented Software,” Addison-Wesley, 1995.

  • Booch and Rumbaugh: UML Predecessor

    • “Unified Method for Object-Oriented Development,” Rational TR, 1995


The emergence of uml
The emergence of UML

  • The Unified Modeling Language (UML) is the object-oriented analysis and design equivalent of Java

  • UML is a language for

    • Web address: http://www.rational.com/uml

  • UML unifies:

    • Object-oriented analysis and design: Grady Booch approach.

    • Object-oriented modeling and design: Jim Rumbaugh

    • Object-oriented SE, A use case drive approach: Jacobson

  • A modeling language provides:


Seven goals of uml
Seven goals of UML

  • Ready-to-use, expressive visual modeling language that promotes development/exchange

  • Extensibility/specialization of core concepts

  • Independent of programming languages and development processes

  • Formal basis for understanding language

  • Encourage growth of OO tools market

  • Support higher level design concepts:

    • Collaborations, frameworks, etc.

    • Collaborations, frameworks, ptterns, etc.

  • Integrate the best practices of all OOD


Characteristics of uml
Characteristics of UML

  • Generic syntax:

  • Syntax is independent of:

  • Flexible syntax:


Uml modeling constructs diagrams
UML modeling constructs/diagrams

  • User interaction diagrams

    • Use-case diagrams

  • Static structure diagrams

    • Class diagrams

    • Object diagrams

  • Behavior diagrams

    • Statechart diagrams

    • Activity diagrams

  • Interaction diagrams

    • Sequence diagram

    • Collaboration diagram

  • Implementation diagrams

    • Component diagram

    • Deployment diagram


Class diagrams
Class diagrams

  • Class in UML:

  • Representation of classes:

  • Designer develops classes as sets of compartments that grow over time to incrementally add functionality and features


Example class diagram
Example class diagram

Name

CustomerAccount

+ Account: Int

+ Name: String

+ Address: String

+ Balance: Float

Attributes

+ AddCustomer()

+ DeleteCustomer()

+ GetBalance()

Operations

“+” indicates that the attribute/operation is public

“-” indicates that the attribute/operation is private

“#” indicates that the attribute/operation is protected


Relationships among classes
Relationships among classes

  • Inheritance

  • Association

  • Aggregation


Generalization specialization inheritance
Generalization/Specialization (Inheritance)

Checking Account and Savings

Account are special cases of

Bank Account

BankAccount

CheckAccount

SavAccount


Generalization specialization inheritance1
Generalization/Specialization (Inheritance)

Employee

Administrative Staff and

Technical Staff are special

cases of the class Employee

Admin_staff

Tech_staff


Association
Association

Relationship among instances of objects of one class and instances of

objects among other classes. Represent using a line, label each end

With how many objects participate in the association.

1 *

Instructor

Course

Multiplicity constraints indicate how many objects participate

in the association.

May be specified as -- upper_bound….lower_bound

1, 1:1 – Only one object

*, 1:* - At least one object

* -- any number of objects between 0 and infinity


Association contd
Association (contd..)

1 1:3

Instructor

Course

Multiplicity 1:3 indicates that each

Instructor teaches at least one course

but no more than three courses.


Association contd1
Association (contd..)

* 1

TechStaff

Project

project_member

1…*

Manager

manages

1


Aggregation
Aggregation

Objects are composed of simpler objects.

5

Store

Depts.

Triangle consists of three points.


Class diagram high tech supermarket system
Class Diagram: High Tech SuperMarket System

Consider the process of updating the inventory in the high-tech supermarket system. Central to the process is an inventory order. An inventory assistant in the HTSS is responsible for managing a inventory order. In addition, each inventory assistant may be involved in managing several inventory orders. An inventory order is associated with a list of items. Each item in the list can be of three types, namely, snack item, liquor item, and canned item. Each inventory order is submitted to three wholesale stores. Each wholesale store caters to a specific set of items. For example, the Liquor Store is responsible for delivering liquor items. These three wholesale stores, are, namely, Liquor Store, Produce Store, and Snack Store. Construct a UML class diagram to model the process of inventory update in the HTSS.


Class diagram htss

InvenAssist

InvenOrder

1

*

1

1

Item

SnStore

ProdStore

WholeStore

LiqStore

NPerishItem

PerishItem

Class diagram: HTSS

1

1…3

ItemList

*

1


Uml tools
UML tools

  • Argo UML

    • http://argouml.tigris.org

  • Object Domain

    • http://www.objectdomain.com/domain/evaluationIntro.html

  • Rational Rose:

    • http://www.rational.com

  • Microsoft Visio


ad