SEF9 - 23 Software Design Architectures (Is the future about Android?)

AS SOFTWARE ENGINEERS AND FUTURE SOFTWARE ENGINEERS,

(1) What do we know about Android?

(2) About Java and its relationship to Android?

(3) About Microsoft Dot Net?

(4) About CORBA?

Read below and see the attachments. Ha ha ha

Nope . Sorry. I mean you must see the attachments first, then read the notes below to make sense.

Wassalam.
WRY

======================================================
MULTI-TIER ARCHITECTURE DESIGN

- N-Tier Software Architecture - Why?
- Separate layers, communication between layers, maintain individual modules/components as technology improves, etc.
- Reuse components/modules for other applications. Write once and use at many places.
- Only implement those modules you need to make your application work.
- Need Application Programming Interface API's (documentation). It tells how to use/interface/call the modules/components.

REASONS FOR MULTI-TIERED DESIGNS

(1) SPECIALIZATION - Every tier or layer in the n-tier application architecture is separated and designed to perform a specific function. For example, the presentation layer is for application presentation, business logic layer is for application logic, database layer is for data storage and retrieval, the communication or network layer is for software component communications, etc. This specialization allows the construction of modular software components, where each module implements its specific functions. The functionality are not mixed up, for example, into one large module.

(2) FLEXIBILITY - The n-tier application architecture provides a model structure to build flexible software applications. Since the layers are separated, different components can be added and/or removed from the layers to suit new requirements. With this separation, improved quality software components can be introduced as technology improves. We cannot easily add new components if our software is structured as a single complex set of codes with mixed-up functionality.

(3) INTER-LAYER COMMUNICATIONS - Normally, each software component on the different layers communicate only with their adjacent layers, that is, the layer above it and the layer below it. We rarely have software components that communicate across several layers. This makes construction of communication codes simple and not complicated because the software focus have been narrowed for each layer.

(4) REUSABILITY - Software components made for specific layers in n-tier architectures can be reused in other applications, sometimes without modifications. Reusability of components is an intentional design. For example, database connection components can be used for just about any application that uses the same database type and version. There is no need to write new software codes.

(5) MAINTAINABILITY - Since software components on different layers perform specific functions, specific components can be modified and maintained without affecting the other software components in the entire n-tier software architecture. We just concentrate on the components that required modifications.

UNIFIED MODELING LANGUAGE (UML) FOR DESIGN
http://en.wikipedia.org/wiki/Unified_Modeling_Language

(1) Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group. It was first added to the list of OMG adopted technologies in 1997, and has since become the industry standard for modeling software-intensive systems.

(2) UML includes a set of graphic (diagram) notation techniques to create visual models of object-oriented software-intensive systems.

(3) UML is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system under development.

(4) UML offers a standard way to visualize a system's architectural blueprints (design).

more ...

The UML 2.2 Standard has fourteen(14) types of diagrams divided into two categories.

(5) Seven(7) UML diagram types represent structural information,

(6) Seven(7) UML diagram types represent general types of behavior.

These diagrams can be categorized hierarchically as shown in the following class diagram.




--
WASSALAM
wruslan.hahaha



--
WASSALAM
wruslan.hahaha

Attachments:
520px-Overview_of_the_Common_Language_Infrastructure.svg.png
Android-Operating-System.jpg
CORBA-401px-Orb.svg.png
Dot-Net-Framework-IC104620.gif
Dot-Net-Framework-Stack.png
Java-Framework-Stack.jpg
UML-Screenshot.png

Full Version with Microsoft Word Version and Attachments
Return to Software Engineering Fundamentals (SEF9MMUWRY)
Previous Topic: 22 Quiz No. 1 for SEF9
Next Topic: 24 Software Design Concepts (Principles)

0 comments:

Post a Comment