BE COMPS RAIT, NERUL - HOME - BE



Department of Computer Engineering

LAB MANUAL

Semester-VII

Software Architecture

Institute Vision, Mission & Quality Policy

[pic]

[pic]

Department Vision & Mission

[pic]

[pic]

Departmental Program Educational Objectives (PEOs)

1. Learn and Integrate

To provide Computer Engineering students with a strong foundation in the mathematical, scientific and engineering fundamentals necessary to formulate, solve and analyze engineering problems and to prepare them for graduate studies.

2. Think and Create

To develop an ability to analyze the requirements of the software and hardware, understand the technical specifications, create a model, design, implement and verify a computing system to meet specified requirements while considering real-world constraints to solve real world problems.

3. Broad Base

To provide broad education necessary to understand the science of computer engineering and the impact of it in a global and social context.

4. Techno-leader

To provide exposure to emerging cutting edge technologies, adequate training & opportunities to work as teams on multidisciplinary projects with effective communication skills and leadership qualities.

5. Practice citizenship

To provide knowledge of professional and ethical responsibility and to contribute to society through active engagement with professional societies, schools, civic organizations or other community activities.

6. Clarify Purpose and Perspective

To provide strong in-depth education through electives and to promote student awareness on the life-long learning to adapt to innovation and change, and to be successful in their professional work or graduate studies.

Program Outcomes

a. Foundation of computing - An ability to apply knowledge of computing, applied mathematics, and fundamental engineering concepts appropriate to the discipline.

b. Experiments & Data Analysis - An ability to understand, identify, analyze and design the problem, implement and validate the solution including both hardware and software.

c. Current Computing Techniques – An ability to use current techniques, skills, and tools necessary for computing practice.

d. Teamwork – An ability to have leadership and management skills to accomplish a common goal.

e. Engineering Problems – An ability to identify, formulates, and solve engineering problems.

f. Professional Ethics – An understanding of professional, ethical, legal, security and social issues and responsibilities.

g. Communication – An ability to communicate effectively with a range of audiences in both verbal and written form.

h. Impact of Technology – An ability to analyze the local and global impact of computing on individuals, organizations, and society.

i. Life-long learning – An ability to recognize the need for, and an ability to engage in life-long learning.

j. Contemporary Issues – An ability to exploit gained skills and knowledge of contemporary issues.

k. Professional Development – Recognition of the need for and an ability to engage in continuing professional development and higher studies.

l. Entrepreneurship – An ability to match the industry requirements in the domains of Database management, Programming and Networking with the required management skills.

Index

|Sr. No. |Contents |Page No. |

|1. |List of Experiments |1 |

|2. |Course Outcomes and Experiment Plan |2 |

|3. |Study and Evaluation Scheme |3 |

|4. |Experiment No. 1 |5 |

|5. |Experiment No. 2 |11 |

|6. |Experiment No. 3 |19 |

|7. |Experiment No. 4 |25 |

|8. |Experiment No. 5 |33 |

|9. |Experiment No. 6 |39 |

|10. |Experiment No. 7 |45 |

|11. |Experiment No. 8 |57 |

|12. |Experiment No. 9 |61 |

|13. |Experiment No. 10 |67 |

List of Experiments

|Sr. No. |Experiments Name |

|1 |Modeling using xADL with ArchStudio Tool. |

|2 |Identifying the Architectural Style of any existing proprietary Software Applications |

|3 | Case Study of any Two open source application architectures, identifying their connectors. |

|4 |Implementation of KLAX game in C2 architectural style. |

|5 |Creating a Web Service as Service Oriented Architecture using SOAP/ REST. |

|6 |ATAM - Architecture Trade-off Analysis Method for a case study. |

|7 |Development of an application using existing components atop middleware such as CORBA, COM, JavaBeans etc |

|8 |Architectural Analysis of B E Project. |

|9 |Re-designing the architecture of B E Project, to improve on non functional requirements ( Quality Attributes). |

|10 |Study of IEEE 1471 conceptual architecture framework. |

Course Outcome & Experiment Plan

Course Outcomes:

|CO1 |A basic understanding of networks using TCP/IP. |

|CO2 |An understanding of the design considerations in building network applications |

|CO3 |An in depth knowledge of sockets and the system calls needed to support network programming |

Experiment Plan:

|Module |Week |Experiments Name |Course |Weightage (%) |

|No. |No. | |Outcome | |

|1 |W1 |Modeling using XADL WITH Arch studio |CO1 |5 |

|2 |W2 |Architecture style of any existing propriety software application |CO4 |5 |

|3 |W3 |Identifying the connectors for open source applications |CO4 |5 |

|4 |W4 |Implementation of KLAX game in C2 architecture style |CO2 |10 |

|5 |W5 |Creating web service as Service Oriented Architecture using SOAP/REST|CO3 |5 |

|6 |W6 |Study of ATAM |CO5 |10 |

|7 |W7 |Study of CORBA |CO3 |5 |

|8 |W8 | Architectural analysis of BE project |CO6 |5 |

|9 |W9 |Redesigning the architecture of BE project |CO6 |5 |

|10 |W10 |Study of IEEE 1471 conceptual architecture framework. |CO1 |5 |

Mapping of COs with POs:

| |CO \ PO |Pa |Pb |

|CPE70424 |Software Architecture |Theory |

|CPE70424 |Software Architecture |Term Work |Oral |Total |

| | |25 |25 |50 |

Term Work:

1. Term work assessment must be based on the overall performance of the student with every experiment graded from time to time. The grades should be converted into marks as per the Credit and Grading System manual and should be added and averaged.

2. The final certification and acceptance of term work ensures satisfactory performance of laboratory work and minimum passing marks in term work.

Practical & Oral:

An Oral examination is to be conducted based on the above syllabus

Software Architecture

Experiment No. : 1

Modeling using XADL with Arch Studio Tool

Experiment No. 1

1. Aim: Modeling using XADL with Arch Studio Tool

2. Objectives:

• To understand foundational concepts, principles and techniques of software architecture. Also introduces modelling concepts and analysis goals of an existing software system.

• To understand modelling using XADL with Arch Studio Tool.

• To learn the efficient Arch tool to implement modelling.

3. Outcomes:

• The Students will be able to understand principles and techniques of software architecture, also to learn concepts of modelling and analysis goals of an existing software system.

• Student will be able to design and implement the fundamental concepts of software architecture.

4. Hardware / Software Required: Arch Studio Tool (open source).

5. Theory:

XADL:

xADL is a software architecture description language (ADL) developed by the University of California, Irvine for modeling the architecture of software systems. Unlike many other ADLs, xADL is defined as a set of XML schemas. This gives xADL unprecedented extensibility and flexibility, as well as basic support from the many available commercial XML tools.

• The current set of xADL schemas includes modeling support for:

• run-time and design-time elements of a system;

• support for architectural types;

• advanced configuration management concepts such as versions, options, and variants;

• product family architectures;

We plan to extend this set as our research interests evolve. Users of xADL are free to choose elements from this set or create their own extensions as needed. xADL is also an application of xArch, a core XML schema defined jointly by UCI and Carnegie Mellon University. More information about xArch can be found in the next section.

Architecture Studio:

Planning, managing, and executing the activities of system development While most development environments, like Microsoft Visual Studio and Borland JBuilder are code-driven development environments, ArchStudio focuses on software development from the perspective of software and systems architecture.

We define architecture as the set of principal design decisions about a system. This is an intentionally broad definition. Every project in every domain will have different needs and quality goals. This means that every project will have a somewhat different set of design decisions that are considered principal by its stakeholders.

The ArchStudio environment plays two roles in the development of architectures:First, ArchStudio is an architecture development environment. That is, the ArchStudio developers have identified recurring principal design concerns that occur in many domains and projects, and attempted to support these. ArchStudio has built-in support for modeling the hierarchical structure of complex systems, the types of various components, connectors, and interfaces, product-lines of systems that are related by a common base, and so on.

Second, ArchStudio is an architecture meta-modeling environment. ArchStudio is based on the highly-extensible xADL architecture description language. xADL allows stakeholders to define and re-define the language's syntax and semantics to suit their own needs, and ArchStudio provides the tool support for this extensibility. If current modeling tools and notations are not sufficient to capture a particular concern for a particular project, ArchStudio and xADL can be extended to effectively provide support for that concern without having to "re-invent the wheel." As such, ArchStudio provides an ideal platform for domain experts and architecture researchers who want to investigate new ways of modeling architectural concepts without investing an inordinate amount of time in infrastructure development.

ArchStudio Capabilities:

• Architecture Modeling: ArchStudio creates and manipulates architecture descriptions expressed in the xADL architecture description language (ADL). xADL is the first modularly-extensible architecture description language. Rather than having its syntax and semantics defined monolithically, in one huge chunk, xADL breaks up modeling features into modules using standard XML schemas.

• Architecture Visualization: The xADL language defines the structure of architecture description data, but it can be depicted and manipulated in many ways. ArchStudio provides several different visualizations for xADL models. Archipelago, ArchStudio's graphical editor, provides visualizations as symbol graphs - the kind of box-and-arrow models common in tools like Microsoft Visio and OmniGraffle. A screenshot of ArchStudio showing a hierarchical architecture in the Archipelago graphical editor.

[pic]

Figure: Arch studio example snapshot.

• Descriptive Architecture

The Descriptive Architecture describes how the system is realized (build) (as-implemented and as-realized). When a system is initially developed or implemented system is evolved, ideally its prescriptive architecture is first modified and then the descriptive architecture is changed. But, actually this does not happen all the time. The system is directly modified without accounting the prescriptive architecture.

[pic]

Figure: Descriptive Architecture.

6. Conclusion:

xADL is a software architecture description language .xADL is defined as a set of XML schemas. This gives xADL unprecedented extensibility and flexibility, as well as basic support from the many available commercial XML tools. The xADL language defines the structure of architecture description data, but it can be depicted and manipulated in many ways. ArchStudio provides several different visualizations for xADL models.

7. Viva Questions:

• What is Architectural Modeling?

• What is Software Architecture?

• What is the difference between descriptive architecture and prescriptive architecture?

8. References:

1. “Software Architecture: Foundations, Theory, and Practice” by Richard N. Taylor,

Nenad Medvidovic, Eric Dashofy, ISBN: 978-0-470-16774-8

2. M. Shaw: Software Architecture Perspectives on an Emerging Discipline, Prentice-Hall.

3. Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Pearson.

4. “Pattern Oriented Software Architecture” by Frank Buchnan et al, Wiley India.

5. “The Art of Software Architecture” by Stephen T. Albin.

Software Architecture

Experiment No. : 2

Identifying the Architectural Style of any existing proprietary Software Application

Experiment No. 2

1. Aim: Identifying the Architectural Style of any existing proprietary Software Application

2. Objectives:

• To enable students to visualize the software architecture of large software systems.

• To understand the importance of this experiment from existing application point of view.

• To study the effective implementation of existing architectural style.

3. Outcomes:

• To create complete architectural description of an existing system.

• An ability to analyze the local and global impact of computing on individuals, organizations, and society.

• An ability to recognize the need for and an ability to engage in life-long learning.

4. Hardware / Software Required: Oracle 11g, Windows O.S

5. Theory:

Proprietary S/W Application:

1. Oracle 11g

2. Windows Operating System

1. Oracle 11g

Software Application Features:

1. Encryption, compression and preprocessing for external tables in Oracle 11g.

2. Oracle adds a new cache for storing the results of queries. 

3. Generate and read TKProf and OraSRP reports in a single SQL*Plus window (or other IDE of choice) using preprocessor external tables. 

4. A new built-in function for string aggregation. 

5. Oracle completes its dynamic SQL implementation for PL/SQL.

6. Aggregate unique and ordered collection elements with the COLLECT function in 11g. 

7. Various minor language and operability enhancements for PL/SQL in 11g.

8. Turn rows into columns and vice versa with new extensions to the SELECT statement. 

9. Oracle relaxes the long-standing FORALL implementation restriction in 11g.

10. Oracle 11g adds a new REGEXP_COUNT function and extends some of the existing functions. 

[pic]

Figure : Architectural Model of Oracle 11g.

Architectural Style Identified & Why that style:

Data Centered architecture style is used in Oracle 11g. The term refers to systems in which the access and update of a widely accessed data store is their primary goal. Basically, it is nothing more than a centralized data store that communicates with a number of clients. Important for this styles are three protocols: communication, data definition and data manipulation protocol.

2. Windows Operating System

Software Application Features:

1. Speed : Even aside from incompatibilities and other issues that many people had with Vista, one of the most straightforward was speed it just felt too sluggish compared to XP, even on pumped up hardware.

2. Compatibility: In simple terms, compatibility on Windows 7 will be far better than it was with Vista. Many programs that individuals and companies used on Windows XP did not work immediately and required updates, but with Windows 7 almost all applications that work on Vista should still run.

3. Lower hardware requirements: Vista gained a reputation for making even the beefiest hardware look rather ordinary. Windows 7, however, will run well on lower end hardware, making the transition from Window XP less painful.

4. Search and organization: One of the best things about Windows 7 is the improved search tool, which now rivals Mac OS X’s Spotlight to be able to find what you need quickly and easily.

5. Taskbar/Start menu: At first glance, the task bar looks like nothing has much has changed since Vista. In fact, that’s not the case and it’s a lot more powerful. Microsoft is now making best use of its aero technology.

[pic]

Figure : Architectural Model of Windows Operating System

Architectural Style Identified & Why that style:

Layered Style is used in Windows Operating System. It is to be organized as a hierarchy of layers, each one constructed upon the one below it. All components are loosely coupled .This Architectural Style also makes it possible to configure different levels of security to different components deployed on different boxes.

Layered Architectural style is used for WINDOWS OS and Data Centered Architectural style is used for Oracle 11g.Other Architectural Styles for Windows OS:

1. Blackboard Architecture

2. Component-Based

3. Model-View controller

Other Architectural Style for Oracle 11g:

1. Data Flow

6. Conclusion :

Thus a layered software architecture is a software architecture that uses many layers for allocating the different responsibilities of a software product.Data Center Network (DCN) holds a pivotal role in a data center, as it interconnects all of the data center resources together. DCNs need to be scalable and efficient to connect tens or even hundreds of thousands of servers to handle the growing demands of Cloud computing.

7. Viva Questions:

• What is the reason to choose this architectural style?

• What are the different issues ?

8. References:

1. “Software Architecture: Foundations, Theory, and Practice” by Richard N. Taylor,

Nenad Medvidovic, Eric Dashofy, ISBN: 978-0-470-16774-8

2. M. Shaw: Software Architecture Perspectives on an Emerging Discipline, Prentice-Hall.

3. Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Pearson.

4. “Pattern Oriented Software Architecture” by Frank Buchnan et al, Wiley India.

5. “The Art of Software Architecture” by Stephen T. Albin.

Software Architecture

Experiment No. : 3

Case Study of any two open source application architectures, identifying their connectors according to their type

Experiment No. 3

1. Aim: Case Study of any two open source application architectures, identifying their connectors according to their types.

2. Objectives:

• To understand the concept of domain specific software architectures.

• To understand the importance of this experiment from application point of view.

• To study the domain specific applications and their complexity.

3. Outcomes:

• To create complete architectural description of an existing system.

• An ability to analyze the local and global impact of computing on individuals, organizations, and society.

• Student will be able to exploit gained skills and knowledge of contemporary issues

4. Theory:

• Open Source Applications:

1. Mozilla Firefox

2. Android Operating System

• Software Application Features:

1. Mozila Firefox Features:

1. Extended Tabbed Browsing:

Tabs bring order. By using tabbed browsing it is possible to open lots of websites in only one window of your browser. If Tabs are closed by mistake simply use the history in Mozilla Firefox to restore them.

2. Spell check:

Mozilla Firefox comes with a built-in spell checker to monitor and correct E-Mails and texts automatically.

3. Suggests during search:

Enhanced search box suggests queries as you type to help you achieving better results during your search.

4. Pop-Up Blocker:

Block those annoying Pop-Ups from being displayed on your browser. To avoid missing a Pop-Up that is needed or interesting to you, please find the data related to the Pop-Up in the information bar shown or create a "Allow-List".

5.Open Source:

For better improvement and developing of Mozilla Firefox a huge community of developers and lots of software engineeres and other experts are working together to update the browser in record time.

2. Android Operating System Features

1.Messaging: SMS and MMS are available forms of messaging, including threaded text messaging and Android Cloud To Device Messaging (C2DM) and now enhanced version of C2DM, Android Google Cloud Messaging (GCM) is also a part of Android Push Messaging services.

2. Multi-touch : Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time).Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively.

3. Multitasking: Multitasking of applications, with unique handling of memory allocation, is available.

4. Video calling: Android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 (Gingerbread) and later. Gingerbread allows Nexus S to place Internet calls with a SIP account.

5.Accessibility: Built-in text-to-speech is provided by TalkBack for people with low or no vision. Enhancements for people with hearing difficulties are available, as are other aids.

• Architectural Design:

[pic]

Figure : Architectural Design of Mozilla Firefox

[pic]

Figure : Architectural Design of Android Operating System

5. Conclusion :

Mozilla Firefox (known simply as Firefox) is a free open source web browser developed by the Mozilla foundation and its subsidiary. Firefox is available for windows OS,x and Linux OS, with its mobile versions available for Android and Firefox OS.

6. Viva Questions:

• What are different types of connectors?

• What are the different roles of connectors?

7. References:

1. “Software Architecture: Foundations, Theory, and Practice” by Richard N. Taylor,

Nenad Medvidovic, Eric Dashofy, ISBN: 978-0-470-16774-8

2. M. Shaw: Software Architecture Perspectives on an Emerging Discipline, Prentice-Hall.

3. Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Pearson.

4. “Pattern Oriented Software Architecture” by Frank Buchnan et al, Wiley India.

5. “The Art of Software Architecture” by Stephen T. Albin.

Software Architecture

Experiment No. : 4

Implementation of KLAX game in C2 Architectural style

Experiment No. 4

1. Aim: Implementation of KLAX game in C2 Architectural style

2. Objectives:

• To be able to design systems in C2 architectural styles.

• To learn efficient Implementation of KLAX game.

• To understand the importance of this experiment from gaming application point of view.

3. Outcomes:

• To understand C2 architectural styles and evaluate architectural documentation for quality and completeness.

• Student will be able to use current techniques, skills, and tools necessary for computing practice..

4. Hardware / Software Required: Arch Studio Tool (open source).

5. Theory:

Klax is a 1989 computer puzzle game designed by Dave Akers and Mark Stephen Pierce. The object is to line up colored blocks into rows of similar colors to make them disappear, to which the object of Columns is similar. Atari Games originally released it as a coin-op follow up to Tetris, about which they were tangled in a legal dispute at the time.

Klax features a conveyor belt at the top of the screen. It constantly rolls toward the playing area, delivering a steady supply of blocks. The player controls a small device which sits at the interface between the conveyor belt and the playing area, and can be moved left and right to catch the blocks and either deposit them in the playing area (which can hold 25 blocks in a 5X5 arrangement) or push them back up the conveyor belt. The device can hold up to five blocks. A block which is not caught and placed in the playing area or pushed back up the belt is considered a drop. The blocks are solid colors, but there is also a flashing block which can be used as a wildcard on any color.

The game ends when:

• The player exceeds the allowable number of drops (the drops are cumulative through a series of five levels, or six when a warp is successful, but are reset to zero once the last level in the series is successfully completed)

• The player fills the entire playing area with blocks and cannot complete any Klaxes

• Or the player successfully completes Level 100.

Program:

private static final int SCORE_Y = 20;

private static final int MISSES_X = APPLET_WIDTH - 100;

private static final int MISSES_Y = 20;

private static final int TIME_X = APPLET_WIDTH - 130;

private static final int TIME_X = APPLET_WIDTH - 150;

private static final int TIME_Y = APPLET_HEIGHT;

private static final int CAUGHT_BRICK_SCORE = 5;

private static final int DIAGONAL_KLAX_SCORE = 5000;

private static final int NUM_PADDLE_BRICKS = 3;

private static final int PAUSED = 1;

private static final int RUNNING = 2;

private final Random rand = new Random();

private final int stack[][] = new int[NUM][NUM];

private final Brick[] paddleBrick = new Brick[NUM_PADDLE_BRICKS];

private int topPaddleBrick = -1;

private Date startTime = null;

private long totalTime = 0;

private int paddlePosition;

private int score = 0;

private int misses = 0;

private int status;

@Override

public void init() {

addKeyListener(this);

public void init() {

// The position of the paddle.

paddlePosition = 2;

status = PAUSED;

}

@Override

public void start() {

startTime = new Date();

// Initializes the timer.

public void init() {

}

@Override

public void start() {

public void stop() {

timer.cancel();

}

@Override

public void paint(Graphics g) {

this.g = g;

g.setColor(Color.BLACK);

checkForKlax();

if (status == RUNNING) {

checkForKlax();

+ }

drawBackground();

drawFallingBrick();

drawPaddle();

public void paint(Graphics g) {

drawScore();

drawMiss();

drawTime();

drawMessage();

}

/**

private void checkForKlax() {

*/

private void drawBackground() {

g.setFont(new Font("TimesRoman", Font.PLAIN, 20));

g.drawString("KLAX", 300, 50);

g.drawString("KLAX", 350, 50);

// stacks

for (int i = 0; i ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download