CS-701 Software Architecture Manual
CS-701 Software Architecture Manual
Software Architectures
(CS-701)
For
1
Department of Computer Science and Engineering
III. Our graduates will exhibit team-work and leadership qualities to meet stakeholder
business objectives in their careers.
IV. Our graduates will evolve in ethical and professional practices and enhance
socioeconomic contributions to the society.
2
Programme Outcomes (POs):
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern engineering and IT tools including prediction and modeling to complex
engineering activities with an understanding of the limitations.
6. The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent
responsibilities relevant to the professional engineering practice.
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of the engineering practice.
12. Life-long learning: Recognize the need for, and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological
change.
4
Course Outcomes
Software Architectures
(CS-701)
CO2 : Understand the fundamental principles for software architecture model and architectural styles.
CO3 : Use implementation techniques of Software architecture for effective software development
CO4 : To understand and compare Software Architecture analysis and design methods
CO5 : Prepare and create the software architecture documentation for enterprise application
development.
CO
PSO1
PSO2
PSO3
PO10
PO11
PO12
PO2
PO7
PO8
PO9
PO1
PO3
PO4
PO5
PO6
Atta
inm
Course Course Outcomes ent
CS701.1 Describe the Fundamentals of 2 1 0 0 0 0 0 0 0 0 0 0 - -
software architecture, qualities
and terminologies.
CS701.2 Understand the fundamental 2 1 0 0 0 0 0 0 0 0 0 0 - - -
principles for software
architecture model and
architectural styles.
CS701.3 Use implementation techniques of 1 1 0 0 1 0 0 0 0 0 0 0 1 -
Software architecture for effective
software development
CS701.4 To understand and compare 2 1 0 0 0 0 0 0 0 0 0 0 - - -
Software Architecture analysis
and design methods
CS701.5 Prepare and Create the software 1 1 0 0 0 0 0 0 0 0 0 0 1 -
architecture documentation for
enterpriseapplication development.
Average
5
LIST OF PROGRAMS
6
Program-01
ATM APPLICATION SYSTEM
1. ABSTRACT
2. FEATURES
3. ADVANTAGES AND DISADVANTAGES
4. REQUIREMENTS
4.1 FUNCTIONAL REQUIREMENTS
4.2 NON-FUNCTIONAL REQUIREMENTS
4.3 TECHNICAL REQUIREMENTS
5. DIAGRAMS
7
ABSTRACT
Using an ATM, customers can access their bank deposit or credit accounts in order
to make a variety of financial transactions, most notably cash withdrawals and
balance checking, as well as transferring credit to and from mobile phones. ATMs
can also be used to withdraw cash in a foreign country. If the currency being
withdrawn from the ATM is different from that in which the bank account is
denominated, the money will be converted at the financial institution's exchange
rate.
The automated teller machine consists of mainly two input devices and four output
devices that are:
Input Devices
Card reader
Keypad
Output Devices
Speaker
Display Screen
Receipt Printer
Cash Depositor
8
FEATURES
Transfer funds between linked bank accounts.
Receive account balance.
Prints recent transactions list.
Change your pin.
Deposit your cash.
Prepaid mobile recharge.
Bill payments.
Cash withdrawal.
Advantages of ATM Application
Fraud. Criminals can fit skimming devices and small cameras to ATMs. ...
Fees. Banks and machine owners draw a huge source of
revenue from ATM fees. ...
Theft Risk. If you go to a bank, you're likely walking into a secured
area watched by multiple cameras or a life guard. ...
Card Retention. ATMs give, but they can also take.
Cannot be provided in rural areas: In a country like India, where banks are
having large number of rural and non-computerized branches, ATM services
cannot be provided.
Limitation of cash withdrawals: Again, there is a limitation of cash
withdrawals from ATM. For example, many banks do not permit withdrawal
of more than 25,000 at a time.
Possibility of misusing ATM card: ATM card, if misplaced, lost or stolen,
may be misused. There are number of such reported incidences now a day.
9
REQUIREMENTS:
Functional requirements
1. Secure registration and profile management facilities for Customers
2. Secured mechanism for Payment
3. Account management
Non-functional requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script
6. HTML &CSS
10
ATM Scenario Use Case Diagram:
A use case diagram at its simplest is a representation of a user's interaction with the
system that shows the relationship between the user and the different use cases in
which the user is involved.
11
ATM Scenario Sequence Diagram:
12
ATM Scenario Collaboration Diagram:
Component UML diagrams can help break down the system into smaller
components. Sometimes it is hard to depict the architecture of a system because it
might encompass several departments or it might employ different technologies.
13
ATM Scenario Deployment Diagram:
Deployment diagrams are a set of nodes and their relationships. These nodes are
physical entities where the components are deployed. The deployment view
represents the arrangement of runtime component instances on node instances.
State chart diagrams, are used to describe the different states of a component
within a system. It takes the name state machine because the diagram is essentially
a machine that describes the several states of an object and how it changes based
on internal and external events.
14
Program-02
1. ABSTRACT
2. FEATURES
3. ADVANTAGES AND DISADVANTAGES
4. REQUIREMENTS
4.1 FUNCTIONAL REQUIREMENTS
4.2 NON-FUNCTIONAL REQUIREMENTS
4.3 TECHNICAL REQUIREMENTS
5. DIAGRAMS
15
ABSTRACT
Weather stations transmit their data to the area computer in response to a request
from that machine. The area computer system validates the collected data and
integrates the data from different sources. The integrated data is archived and,
using data from this archive and a digitized map database, a set of local weather
maps is created.
Typically, the weather data collection system establishes a modem link with the
weather station and requests transmission of the data.
The data sent to the weather data collection system are the maximum, minimum
and average ground temperatures, the maximum, minimum and average air
pressures, the maximum, minimum, and average wind speeds.
Weather stations are usually asked to report once per hour but this frequency may
differ from one station to another and be modified in the future.
FEATURES
Functional requirements
1. Secure registration and profile management facilities
2. Secured mechanism
3. Weather Management
Non-functional requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script 17
6. HTML &CSS
Use-Case Diagram of The System
18
Sequence Diagram of This System
19
Sequence Diagram for Weather Station User
20
Program-03
1. ABSTRACT
2. ADVANTAGES AND DISADVANTAGES
3. FEATURES
4. REQUIREMENTS
4.1 FUNCTIONAL REQUIREMENTS
4.3 NON-FUNCTIONAL REQUIREMENTS
4.3 TECHNICAL REQUIREMENTS 5.
DIAGRAMS
21
ABSTRACT
A Library Management System is a software built to handle the primary
housekeeping functions of a library. Libraries rely on library management systems to
manage asset collections as well as relationships with their members. Library
management systems help libraries keep track of the books and their checkouts, as
well as members’ subscriptions and profiles.
Library management systems also involve maintaining the database for entering new
books and recording books that have been borrowed with their respective due dates. It
provides familiar and attractive interface with inserting and reporting capabilities.
. It is a term for computer-based system that manage the catalogue of a library. The
main purpose of this system is to manage library daily operation efficiently
Advantages
Avoid frustration and tediousness by providing students with 24/7 access to library
resources from anywhere, anytime. Library Management Software allows the
librarian to maintain all types of books, eBooks, journals, photos, videos, and create
events.
Automate, simplify and deploy library database seamlessly to make it easy for your
institution to benefit from secure cloud services. Improve efficiency with the
automation of various library tasks including acquisition, cataloging, serials
management, circulation and reference.
22
4. Highly Secure, Scalable & Reliable
College libraries benefit from scalable infrastructure, role-based secure access, high
performance and reliable to ensure seamless access to library database.
5. Mobile Access
The library management system provides mobile access to search the library catalog,
schedules, books and resources from anywhere, at any given time via smartphones
and tablets.
7. Error-free
The automated library software is user-friendly, powerful and developed for easy
entry of data, makes library operations free from errors.
8. Innovation
Students can search, write articles, upload photos and videos, manage email, send
messages, but also help them to keep up with the librarian and other students via chat,
discussion forums, and social media.
9. Cost-effective
Disadvantages
1. The data stored is prone to cyber hacks. Opting for a reliable online
system eliminates the risk
2. Costly and Expensive
3. Complicated to operate
4. Online Systems require high-speed internet connectivity
5. Risk of computer virus
6. The automation feature is not available in offline/ open-source systems
thus, requires manual action to perform operations
23
Features
REQUIREMENTS:
Functional Requirements
1. A new user which is not registered in the system. Registration form must
be available. Details must be correct.
2. Member must be registered against unique ID
3. Books must be available
4. We must have librarian account which manages the whole system.
Non-functional requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script
6. HTML &CSS
24
Diagram
Class Diagram
25
Object Diagram
26
USECASE DIAGRAM
27
ACTIVITY DIAGRAM
28
State Chart Diagram
29
Sequence Diagram
COLLABORATION DIAGRAM
30
DEPLOYMENT DIAGRAM
Deployment diagrams are a set of nodes and their relationships. These nodes are
physical entities where the components are deployed. The deployment view
represents the arrangement of runtime component instances on node instances.
31
Program -04
Online Book Shop
1. ABSTRACT
2. REQURIMENT :
2.1 FUNCTIONAL REQUIREMENTS
2.2 NON-FUNCTIONAL REQUIREMENTS
2.3 TECHNICAL REQUIREMENTS
3. DIAGRAMS
32
Abstract
The main objective of the project is to create an online book store that allows
users to search and purchase a book online based on title, author and subject. The
selected books are displayed in a tabular format and the user can order their books
online through credit card payment. Using this Website, the user can purchase a book
online instead of going out to a book store and wasting time.
Online Book store is an online web application where the customer can purchase
books online. Through a web browser the customers can search for a book by its title
or author, later can add to the shopping cart and finally purchase using credit card
transaction. The user can login using his account details or new customers can set up
an account very quickly.
The Online Book Store Website provides customers with online shopping through a
web browser. A customer can, create, sign in to his account, place items into a
shopping cart and purchase using his credit card details.
The Administrator will have additional functionalities when compared to the common
user. He can add, delete and update the book details, book categories, member
information and also confirm a placed order.
The main objective of the project is to create an online book store that allows users
to search and purchase a book based on title, author and subject. The selected
books are displayed in a tabular format and the user can order their books online
through credit card payment. The Administrator will have additional functionalities
when compared to the common user.
Interest to develop a good user-friendly website with many online transactions using a
database.
To gain expertise using Data Grid, Data Set, Data Table, Data Adapter and Data
Readers.
33
REQUIREMENTS:
Functional Requirements
1. A new user which is not registered in the system. Registration form must
be available. Details must be correct.
2. Member must be registered against unique ID
3. Books must be available
4. We must have librarian account which manages the whole system.
Non-functional Requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical Requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script
6. HTML &CSS
34
DIAGRAMS:
CLASS DIAGRAM
35
Use Case Diagram
ACTIVITY DIAGRAM
36
STATE CHART DIAGRAM
Sequence Diagram
37
Component Diagram
Deployment Diagram
38
Program-05
1 ABSTRACT
2 REQUIREMENTS:
1. FUNCTIONAL REQUIREMENTS
2. NON-FUNCTIONAL REQUIREMENTS
3. TECHNICAL REQUIREMENTS
3 DIAGRAMS:
1. CLASS DIAGRAM
2. OBJECT DIGRAM
3. USE CASE DIAGRAM
4. ACTIVITY DIAGRAM
5. STATECHART DIAGRAM
6. SEQUENCE DIAGRAM
7. COLLABORATION DIAGRAM
8. DEPLOYMENT DIAGRAM
39
ABSTRACT
The railway reservation system is software for the purpose of reserving train
seats at any time and from anywhere. This application provides us complete
information about a train between specified source and destination.
This application gives current status of reservations of particular train, fares for
different classes of train and also waiting status. For this application, a visitor must
register to avail the service. In this system, train records are maintained and retrieved.
Administrator monitors all users and their transactions.
Administrator has complete access to database and can add train or cancel train or add
station for particular train or skip a station for train. There are several payment
options for user like credit card, debit card and a user can also cancel ticket. This
application also provides current position of train i.e., name of stations between
which the train is currently running.
It provides familiar and attractive interface with inserting and reporting capabilities.
40
REQUIREMENTS:
Functional requirements
1. Secure registration and profile management facilities for Customers
2. Secured mechanism for Payment
3. 3 Account management
Non-functional Requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical Requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script
6. HTML &CSS
41
CLASS DIAGRAM:
42
OBJECT DIAGRAM:
Object diagram describes the static structure of the system at any instant. In our
case a registered users “Rites” and “Rajendra” access the database to see the
details of book ticket. Rites books a ticket from pine to Mumbai by Sahyadri
express. Rajendra books a ticket from Delhi to Mumbai by Rajdhani express.
Pondlike is administrator with Admin_id = 1.
43
USE CASE DIAGRAM:
44
Activity Diagram
45
STATECHART DIAGRAM
46
STATES:
1. Authentication and logged in
2. Train availability
3. Book ticket
4. Payment
5. Show ticket
6. History
7. Cancel ticket
8. Refund
9. Logout
TRANSITIONS:
1. Authenticate - Logged in
2. Logged in – Enter train details – Train availability – Enter passenger details
– Booking ticket – Enter payment info – Pay – Show ticket - Logout
3. Logged in – Check previous tickets – Cancel ticket – Refund - Logout
47
SEQUENCE DIAGRAM:
48
COLLABORATION DIAGRAM:
49
DEPLOYMENT DIAGRAM:
Deployment diagrams are a set of nodes and their relationships. These nodes are
physical entities where the components are deployed. The deployment view
represents the arrangement of runtime component instances on node instances.
A node is a runtime resource, such as a computer, device, or memory. This view
permits the consequences of distribution and resource allocation to be assessed.
Deployment diagrams are used for visualizing deployment view of a system.
This is generally used by the deployment team. So, the deployment diagrams are
used to describe the static view of system. When we are going to build a
software intensive system, you have to consider both its logical and physical
dimensions. On the logical side, you'll find things such as classes, interfaces,
collaborations, interactions, and state machines. On the physical side, we'll find
components and node which are used in the deployment diagram.
50
Program-06
Banking
System
1 ABSTRACT
2 REQUIREMENTS:
2.1FUNCTIONAL REQUIREMENTS
2.2NON-FUNCTIONAL REQUIREMENTS
2.3TECHNICAL REQUIREMENTS
3. DIAGRAMS:
3.1 CLASS DIAGRAM
3.2 USE CASE DIAGRAM
3.3 SEQUENCE DIAGRAM
3.4 COLLABORATION DIAGRAM
3.6 STATECHART DIAGRAM
3.7 ACTIVITY DIAGRAM
3.8 COMPOMENT DIAGRAM
3.9 DEPLOYMENT DIAGRAM
51
ABSTRACT
This project aims at creation of a secure Internet banking system. This will be
accessible to all customers who have a valid User Id and Password. This is an
approach to provide an opportunity to the customers to have some important
transactions to be done from where they are at present without moving to bank. In
this project we are going to deal the existing facts in the bank i.e.; the transactions
which takes place between customer and bank. We provide a real time
environment for the existing system in the bank. We deal in the method transaction
in the bank can be made faster and easier that is our project is an internet based
computerized approach towards banking.
52
REQUIREMENTS:
Functional Requirements
Purpose To register a new customer.
Inputs The required data for registration of a new customer in the bank (Like
Name, Address, Designation etc.).
A Success Message be displayed on successful registration or else an
error message will be displayed.
Non-functional Requirements
1. Performance
2. Quality
3. Secure access of confidential data (user’s details).
4. 24 X 7availability
Technical Requirements
1. Browser
2. Server
3. My SQL
4. PHP
5. Java script
6. HTML &CSS
53
Class Diagram
54
Sequence Diagram
Collaboration Diagram
55
State chart Diagram
Activity Diagram
56
Component Diagram
Deployment Diagram
57
Program -07
To design a Document Editor
58
Design Problems
59
Document Structure
Lexi's user interface should let users manipulate these substructures directly. For
example, a user should be able to treat a diagram as a unit rather than as a
collection of individual graphical primitives. The user should be able to refer to a
table as a whole, not as an unstructured mass of text and graphics. That helps make
the interface simple and intuitive. To give Lexi's implementation similar qualities,
we'll choose an internal representation that matches the document's physical
structure.
In addition to these goals are some constraints. First, we should treat text and
graphics uniformly. The application's interface lets the user embed text within
graphics freely and vice versa. We should avoid treating graphics as a special case
of text or text as a special case of graphics; otherwise, we'll end up with redundant
formatting and manipulation mechanisms. One set of mechanisms should suffice
for both text and graphics.
60
Glyphs
We'll define a Glyph abstract class for all objects that can appear in a document
structure.3 Its subclasses define both primitive graphical elements (like characters
and images) and structural elements (like rows and columns). Figure depicts a
representative part of the Glyph class hierarchy, and presents the basic glyph
interface in more detail using C++ notation.
Responsibility Operations
appearance virtual void Draw (Window*)
virtual void Bounds (Rect&)
hit detection virtual bool Intersects (const Point&)
structure virtual void Insert (Glyph*, int)
virtual void Remove (Glyph*)
virtual Glyph* Child(int)
virtual Glyph* Parent ()
61
Formatting
By the way, we'll restrict "formatting" to mean breaking a collection of glyphs into
lines. In fact, we'll use the terms "formatting" and "line breaking" interchangeably.
The techniques we'll discuss apply equally well to breaking lines into columns and
to breaking columns into pages.
We'll define a Compositor class for objects that can encapsulate a formatting
algorithm. The interface lets the compositor know what glyphs to format and
when to do the formatting. The glyphs it formats are the children of a special
Glyph subclass called Composition. A composition gets an instance of a
Compositor subclass (specialized for a particular line breaking algorithm) when it
is created, and it tells the compositor to Compose its glyphs when necessary, for
example, when the user changes a document. Figure depicts the relationships
between the Composition and Compositor classes.
Responsibility Operations
62
Figure: Composition and Compositor class relationships
An unformatted Composition object contains only the visible glyphs that make up
the document's basic content. It doesn't contain glyphs that determine the
document's physical structure, such as Row and Column. The composition is in
this state just after it's created and initialized with the glyphs it should format.
When the composition needs formatting, it calls its compositor's
Compose operation. The compositor in turn iterates through the composition's
children and inserts new Row and Column glyphs according to its line breaking
algorithm.7 Figure shows the resulting object structure. Glyphs that the compositor
created and inserted into the object structure appear with gray backgrounds in the
figure.
Monoglyph
We can apply the concept of transparent enclosure to all glyphs that embellish
other glyphs. To make this concept concrete, we'll define a subclass of Glyph
called MonoGlyph to serve as an abstract class for "embellishment glyphs," like
Border . MonoGlyph stores a reference to a component and forwards all requests to
it. That makes MonoGlyph totally transparent to clients by default. For example,
MonoGlyph implements the Draw operation like this:
63
Figure: MonoGlyph class relationships
Notice how Border::Draw effectively extends the parent class operation to draw the
border. This is in contrast to merely replacing the parent class operation, which
would omit the call to MonoGlyph::Draw.
64
Visitor Pattern
What we've described here is an application of the Visitor (331) pattern. The
Visitor class and its subclasses described earlier are the key participants in the
pattern. The Visitor pattern captures the technique we've used to allow an open-
ended number of analyses of glyph structures without having to change the glyph
classes themselves. Another nice feature of visitors is that they can be applied not
just to composites like our glyph structures but to any object structure. That
includes sets, lists, even directed-acyclic graphs. Furthermore, the classes that a
visitor can visit needn't be related to each other through a common parent class.
That means visitors can work across class hierarchies.
An important question to ask yourself before applying the Visitor pattern is, Which
class hierarchies change most often? The pattern is most suitable when you want to
be able to do a variety of different things to objects that have a stable class
structure. Adding a new kind of visitor requires no change to that class structure,
which is especially important when the class structure is large. But whenever you
add a subclass to the structure, you'll also have to update all your visitor interfaces
to include a Visit... operation for that subclass. In our example that means adding a
new Glyph subclass called Foo will require changing Visitor and all its subclasses
to include a VisitFoo operation. But given our design constraints, we're much more
likely to add a new kind of analysis to Lexi than a new kind of Glyph. So the
Visitor pattern is well-suited to our needs.
Concluding Remarks
design reuse
uniform design vocabulary
understanding, restructuring, & team
communication provides the basis for automation
a “new” way to think about design
65