Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

System Integration Verification and Validation
Architecture. Outline Example Decomposition Style Activity 1.
Apache Struts Technology
Overview of IS Controls, Auditing, and Security Fall 2005.
Development of a Web Based B&B Reservation System Elizabeth Gates 22July04.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
E-business Architecture.NET vs J2EE Judith Molka-Danielsen Feb.27, 2004.
Evaluating Architectures Quality control: rarely fun, but always necessary
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Non-functional requirements
Lecture 3.
N-Tier Architecture.
UNIT-V The MVC architecture and Struts Framework.
Software Project Management Fifth Edition
Managing Software Quality
Product Quality, Testing, Reviews and Standards
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Requirements specification Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
CSE 303 – Software Design and Architecture
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
One of you play the role of lead system designer. 1 person is a note taker. 1 or 2 customer(s) : based on the feedback you can choose. Based on the prototypes.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Evaluating Architectures Quality control: rarely fun, but always necessary
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
16 1 Installation  After development and testing, system must be put into operation  Important planning considerations Costs of operating both systems.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
CSE 219 Computer Science III Program Design Principles.
Approaching a Problem Where do we start? How do we proceed?
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Evaluating Architectures Quality control: rarely fun, but always necessary
Object-Oriented Design Principles and Patterns. © 2005, James R. Vallino2 How Do You Design? What principles guide you when you create a design? What.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
McGraw-Hill/Irwin © 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 7 Storing Organizational Information - Databases.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
 Apache Airavata Architecture Overview Shameera Rathnayaka Graduate Assistant Science Gateways Group Indiana University 07/27/2015.
Ashley Montebello – CprE Katie Githens – SE Wayne Rowcliffe – SE Advisor/Client: Akhilesh Tyagi.
Software Architecture
John D. McGregor Class 4 – Initial decomposition
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Quality Factors Chapter Three. Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Conceptual design Tells the customer what the system will do Tells the customer what the system will do Answers: Answers: Where will the data come from?
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Software Development Life Cycle (SDLC)
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Non Functional Testing. Contents Introduction – Security Testing Why Security Test ? Security Testing Basic Concepts Security requirements - Top 5 Non-Functional.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
CSE 219 Final exam review.
CSCE 548 Secure Software Development Risk-Based Security Testing
Testing Tutorial 7.
N-Tier Architecture.
Software Quality Assurance Software Quality Factor
Evaluating Architectures
Design and Maintenance of Web Applications in J2EE
Rekayasa Perangkat Lunak
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Presentation transcript:

Evaluating Architectures

Quality Control Rarely fun, but always necessary 1

Four Ways to Evaluate Architectural Designs 1.Compare against desired quality attributes 2.Check for problematic failure modes 3.Walk through use cases 4.Verify conformance to checklist of principles The goal is NOT to “prove” that the architecture is perfect, but rather to identify opportunities for improvement. 2

Example from Previous Lecture 3 Mainframe User DB User Edit Login Info JSP Login JSP Edit Purchase Info JSP Java Servlet

Four Ways to Evaluate Architectural Designs 1.Compare against desired quality attributes 2.Check for problematic failure modes 3.Walk through use cases 4.Verify conformance to checklist of principles The goal is NOT to “prove” that the architecture is perfect, but rather to identify opportunities for improvement. 4

Quality Attributes of Great Software Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability 5

Checking Against Quality Attributes Maintainability How hard will it be to make anticipated changes? Efficiency Can the system respond quickly? Scale to high loads? 6

Checking Against Quality Attributes Reliability Will it perform under assumed conditions? Integrity Is it possible to put the system into a bad state? 7

Checking Against Quality Attributes Usability Can real users complete their goals with the system? Testability Can you (semi-)automatically test if the system is right? 8

Checking Against Quality Attributes Flexibility How easily can the system adapt to unusual conditions? Portability Could you get the system to run on a new platform? 9

Checking Against Quality Attributes Reusability What parts of the system could you use in the new system? Interoperability Can the system talk to other relevant systems? 10

Checking Against Key Quality Attributes Integrity: security Are all communicates and databases encrypted? Is credit card info stored in any risky location? Integrity: another consideration What happens when a credit card expires? Efficiency What platform is used to run the servlet & JSPs? What throughput and response times likely? 11

Four Ways to Evaluate Architectural Designs 1.Compare against desired quality attributes 2.Check for problematic failure modes 3.Walk through use cases 4.Verify conformance to checklist of principles The goal is NOT to “prove” that the architecture is perfect, but rather to identify opportunities for improvement. 12

Checking Against Failure Modes What does it take to case a “very bad thing”? 13

Checking Against Failure Modes Trace the basic events through the “AND” and “OR” gates of the fault tree 14

15 Checking Against Failure Modes G4 : Steal from data store A1 : Unencrypted connection A4 : Unencrypted data from store G1 : Credit card theft G3 : Man-in-middle G2 : Steal credentials A2 : Sniffer A3 : Compromised servlet Note: This tree isn’t exhaustive; it’s just what fits one 1 slide for illustrative purposes.

Strengths and Weaknesses of Alternate Architectures Would the risk of a security breach failure mode have been higher in a peer-to-peer architecture that extended beyond our intranet? Maybe. But for a file-sharing system, total system blackout might be the failure mode of concern, in which case peer-to-peer might reduce the risk of failure 16

Strength and Weaknesses of Alternate Architectures Quality attributes: would performance have been improved by a system fully implemented in EJBs (Enterprise Java Beans)? But would interoperability have been reduced? 17

Four Ways to Evaluate Architectural Designs 1.Compare against desired quality attributes 2.Check for problematic failure modes 3.Walk through use cases 4.Verify conformance to checklist of principles The goal is NOT to “prove” that the architecture is perfect, but rather to identify opportunities for improvement. 18

Walk Through Use Cases Methodically step through each use case Are all the necessary components in the system? Are they connected correctly? Are all your arrows pointing the right direction? Does the system enact the right state changes? Does performing a use case prevent subsequently performing any other use cases? 19

[purchase information is valid] [username and password are valid] 20 Sequence Diagram Helps Prevent Surprises User Servlet Edit Login Info JSP Edit Purchase Info JSP User DB Mainframe Visit site Purchase info (starts empty) Purchase info Login info Purchase info Login info (starts empty) Username & password

Four Ways to Evaluate Architectural Designs 1.Compare against desired quality attributes 2.Check for problematic failure modes 3.Walk through use cases 4.Verify conformance to checklist of principles The goal is NOT to “prove” that the architecture is perfect, but rather to identify opportunities for improvement. 21

Verify Conformance to Checklist Is the architecture modular, well structured, and easy to understand? Can we improve the structure and understandability of the architecture? Is the architecture portable to other platforms? Does the architecture support ease of testing? 22

Verify Conformance to Checklist Does the architecture maximize performance, where appropriate? Does the architecture incorporate appropriate techniques for handling faults and preventing failures? Can the architecture accommodate all of the expected design changes and extensions that have been documented? 23

Example from Previous Lecture 24 Mainframe User DB User Edit Login Info JSP Login JSP Edit Purchase Info JSP Java Servlet

Checking Example System vs. Checklist Modular? “User DB” is a big black box. May need data-oriented decomposition “Mainframe” may need decomposition, too. Understandable? Interaction among servlet and JSP is probably unclear to some programmers. May need some textual specification. 25

Checking Example System vs. Checklist Testable? It depends on how fancy the JSP’s HTML is Mainframe is fully testable Performance? See earlier discussion regarding quality attributes 26

Checking Example System vs. Checklist Portable? Not at all. Do we care? It depends Reusable? Probably only the data. Do we care? Depends Further decomposition might identify more reusable parts 27

Checking Example System vs. Checklist Fault handling and failure prevention? Need to keep people from entering invalid data May need server redundancy All data should be backed up Encrypt communications + data in databases Security audit? More consideration will be needed after the implementation is designed 28

Checking Example System vs. Checklist Maintainable? Separating user interface code into JSPs generally improves maintainability But adding new fields requires changing in many places E.g., Adding another field to purchase info requires updating to servlet, JSP, and mainframe Object-oriented decomposition could have avoided this particular problem 29

Take Note for Improvement Opportunities Encrypt database and connections Improve use case and sequence diagram to cover situations where credit card expires Decompose the database and mainframe Decompose servlet, look for reusable parts 30

Consider Tradeoffs Use DHTML (dynamic HTML) in HTML for JSP? Might improve usability Might hinder testability Specify server redundancy? Might improve fault tolerance and performance Might hinder integrity (keeping servers in sync) Move to object-oriented decompositoin? Might improve maintainability Might hinder interoperability (legacy mainframe) 31

Get to Work!! Homework #2: Evaluating Architecture due Friday!! Vision statement draft #1 due 11/07 32