1. Fundamentals
1.1 Architecture
- Is about system components, their responsibilities and their relationship; and to achieve system development, which is cost effective, replaceable, repeatable, reusable, secured, user friendly, maintainable, understandable, high performance and high availability.
- It is about, conceptual and logical organization of system.Making a choice, so that NFR (Non Functional Requirements) are satisfied.
- NFR includes Quality requirements and Constraints.
- Scope of the Architecture is Component
1.2 Design
Is about detailing of architecture to satisfy stakeholders requirements Scope of the Design is Objects and Classes1.3 UML (Unified Modeling Language)
Universally accepted language for software design blueprints. It is a modeling language to document, visualize and model the software development artifacts.1.4 Design patterns
Best possible (optimum) solution to the problem.2. Object Oriented Concepts
2.1 Object Oriented (OO) programming languages
Examples are Java, C++, Smalltalk2.2 Class
Is the blueprint/classification of the object.2.3 Object
Instance of the class is called an Object.2.4 Interface
Exposed by objects/components to external world to interact with it.2.5 Encapsulation
Hide private data and exposed it using predefined interfaces with necessary validation or security.2.6 Polymorphism
Dynamically decide the object (method) behavior at the runtime.3. Selection of Architecture using Quality Attributes
Select Web Architecture based on the balance between Quality Attributes.4. Types of Requirements
4.1 Functional Requirements
Is about Verb of the systemShould be same for different architectural options
(For example, Calculate Net income)
4.2 Quality Attributes (QA) Refer : ISO25010
Is about Adjective of the systemDiffer as per architectural options (choices)Usability, Performance, Security, Maintainability, Reliability, Portability and Availability
4.3 Constraints
Is about limitations,Such as, System should support IE 10, budget < 10 Million Yen, developed in Java, deployed on on-premises
Non Functional Requirements (NFR) = Quality Attributes + Constraints
5. System Development Life Cycle (SDLC)
- Use various tools at the different level for the better productivity
- SDLC can differ as per type of the Project
6. Practice Question Set 1
Q1. Write definition of Architecture & DesignQ2. Differences between Architecture & Design
Q3. Why Architecture is important
Q4. Create Architectural layers for a web system with related Requirements (all 3)
Q5. Propose Quality Attributes for the ATM machine
Q6. Explain Software Development Life Cycle (SDLC)
Q7. Difference between JDK, JRE and J2EE
Q8. List different Web servers and Application servers with some of their features
Q9. Explain about DMZ
Q10. Write a program in Java, which can read 2 numbers and display the result after addition
7. Modeling
- is about designing of the software application before coding
- is an essential part of the large complex software project
- is like a blueprint
- ensures functional and non-functional requirements
- is the only way to visualize your design against the requirements before the coding and hence increases the chance of project success.
- Allows to work at higher level of abstraction and also provides different views of the same system
Reference:
http://www.uml.org/what-is-uml.htm
8. Unified Modeling Language (UML)
UML is modeling language is used to document the design visually. It provides abstraction of the low level programming languages. Due to its abstract and visual nature, the UML facilitate design discussion among different types of stakeholders, such as technical and non-technical.UML is a unification of many graphical modeling languages emerges from year 1980 to 1990. It is controlled by Object Management Group (OMG), which is open consortium of companies).
❖ OMG
OMG is open consortium of companies to build standards which supports interoperability of Object Oriented (OO) systems.UML can be used as a sketch, blueprint or executable programming language. As per UML 2.0 there are 13 UML Diagram categories into 3 parts,
- Structural Diagrams
- Class Diagram (*)
- Behavioral Diagrams
- Use Case Diagram (*)
- Activity Diagram (*)
- State machine Diagram
- Interaction Diagram
- Sequence Diagram (*)
- Communication Diagram
- Timing Diagram
- Interaction Overview
- Object Diagram
- Component Diagram (*)
- Deployment Diagram (*)
- Composite Structure Diagram
- Package Diagram (*)
9. Calling of API [LAB]
- Download HttpComponents -- https://hc.apache.org/downloads.cgi
9.1 Calling API [LAB]
import java.io.IOException;
import java.util.Scanner;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
public class TestAPIApp {
public static void main(String[] args) throws ClientProtocolException, IOException {
//https://hc.apache.org/downloads.cgi
HttpClient httpClient = HttpClientBuilder.create().build();
HttpGet get = new HttpGet("http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL+FB+TWTR&f=snl1ydr1qp2m5m6m7j1f6xj2s1va2ee7e8e9b4j4p5p6r5s7");
HttpResponse response = httpClient.execute(get);
HttpEntity entity = response.getEntity();
if (entity != null) {
Scanner scanner = new Scanner(entity.getContent());
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
}
}
}
OUTPUT
"GOOG","Alphabet Inc.",994.19,N/A,N/A,N/A,N/A,"+0.64%",71.01,+7.69%,54.03,688.85B,600574000,"NMS",692879000,N/A,211287,1424530,27.59,30.59,40.15,9.61,214.01,32.25B,6.89,4.62,1.62,2.07
"AAPL","Apple Inc.",156.815,1.620,2.520,"8/17/2017","8/10/2017","+0.522%",5.351,+3.533%,-0.893,809.99B,5031551000,"NMS",5165228000,N/A,3898191,27339900,8.808,9.010,11.000,3.800,25.615,70.21B,3.605,6.090,1.470,1.900 "FB","Facebook, Inc.",173.93,N/A,N/A,N/A,N/A,"+0.80%",15.86,+10.03%,3.54,505.13B,2341450000,"NMS",2904196000,N/A,3764486,15857000,4.47,5.34,6.51,1.70,22.92,18.08B,15.11,7.53,1.15,0.97
"TWTR","Twitter, Inc.",18.3799,N/A,N/A,N/A,N/A,"-0.3800%",1.1813,+6.8686%,0.9930,13.47B,645007000,"NYQ",732979000,N/A,3749118,14608000,-0.6270,0.3300,0.3500,0.1000,6.4520,142.67M,5.5080,2.8596,3.5200,3.6300
10. Practice Question Set 2
Q1. List 3 API with usage of eachQ2. What is modeling in software development
Q3. How UML can be used for modeling
Q4. List all UML diagrams and usage for each
Q5. Draw Use Case diagram for Pokémon go or any other game, and list use cases
Q6. Write use case details for above Q5 use cases
Q7. What is the difference between Use case and scenario, give one example
Q8. Draw deployment diagram for the typical web system of your choice
Q9. How Modeling and Quality Attributes are related
Q10. List software development methodologies
11. Analysis and Design
12. Practice Question Set 3
Q1. List different software development methodologies and which one do you prefer and why ?Q2. What is the difference between Object analysis and Object Design
Q3. List steps to build a domain model
Q4. What is the main purpose of sequence diagram ?
Q5. What is the main purpose of deployment diagram ?
Q6. Draw class diagram and sequence diagram for ATM system
Q7. Define domain model for accounting system or system of your choice
Q8. List and describe symbols used to draw UML
Q9. Draw component diagram for ATM system
Q10. List tactics used for Modifiability Quality attribute
13. Component Diagram
- It shows implementation view
- It describes organization and dependencies among the software components It shows relationship among the components
- Is used to model distributable physical unit, which includes components with well-defined interfacesPhysical unit
Physical unit
- In case of software system : source code, Binary, Executable
- In case of Human system : Documents, Vehicle
14. Quality Attribute & Tactic Diagram
15. Architecture Layers
16. Mechanisms
17. Practice Question Set 4
Q1. List Quality Attributes based on IS25010
Q2. List most important QAT (Quality Attributes) for the E-commerce system
Q3. List most important QAT (Quality Attributes) for the email system (such as Yahoo mail)
Q4. Describe Tradeoff analysis ?
Q5. Draw Component diagram for the online chatting system (LINE, Twitter)
Q6. Draw class diagram for the E-commerce system using MVC
Q7. Draw sequence diagram for login use case showing alternate flow (AF)
Q8. Draw deployment diagram for the E-commerce system (Show, Middleware and s/w components)
Q9. Create eclipse project to develop dynamic web project
Q10. List Eclipse plug-ins for the eclipse embedded application server
Q2. List most important QAT (Quality Attributes) for the E-commerce system
Q3. List most important QAT (Quality Attributes) for the email system (such as Yahoo mail)
Q4. Describe Tradeoff analysis ?
Q5. Draw Component diagram for the online chatting system (LINE, Twitter)
Q6. Draw class diagram for the E-commerce system using MVC
Q7. Draw sequence diagram for login use case showing alternate flow (AF)
Q8. Draw deployment diagram for the E-commerce system (Show, Middleware and s/w components)
Q9. Create eclipse project to develop dynamic web project
Q10. List Eclipse plug-ins for the eclipse embedded application server
Project: Online Banking System (OBS)
- View balance
- Transfer money
- Pay with net banking (Phase 2)
The system should be release before December 2017 and support both English and Japanese User interface.
The average response time should be less than 4 seconds during the peak hours and system should be available 24 x 7, except planned maintenance window.
Your tasks
1. Follow SDLC and RUP methodology
2. Create detailed requirements
2.1 Functional Requirements (Using use case model)
2.2 Non-functional Requirements (QAT)
2.3 Constraints
3. Create Sequence diagrams for each use case
4. Create Domain Model
5. Create Component diagram
6. Create Deployment Diagram
7. Do Architectural Tradeoff Analysis (Tactics)
8. Create Infrastructure (using cloud?)
9. Do implementation (testing)
10. Validate the requirements and Document the results