Design Validation CSCI 5801: Software Engineering.

Slides:



Advertisements
Similar presentations
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
Advertisements

Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Requirements and Design
Layered Architectures The objectives of this chapter are: To understand the principles and importance of Layered Architectures To explain the structure.
People Technical AdvisorsAcademic AdvisorFinal Project By Prof. Shlomi Dolev Prof. Ehud Gudes Boaz Hilemsky Dr. Aryeh Kontorovich Moran Cohavi Gil Sadis.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
11 3 / 12 CHAPTER Databases MIS105 Lec14 Irfan Ahmed Ilyas.
Distributed Information Systems - The Client server model
Evaluating Architectures Quality control: rarely fun, but always necessary
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Project Execution & Termination Life Cycle Execution Presented by: Basker George.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Web-based Document Management System By Group 3 Xinyi Dong Matthew Downs Joshua Ferguson Sriram Gopinath Sayan Kole.
N-Tier Architecture.
CSCI 5801: Software Engineering
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Requirements Engineering
Object-oriented Design CSCI 5801: Software Engineering.
Module 3: Table Selection
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
South Dakota Library Network ALEPH v21 Staff User Upgrade Information Circulation and ILL South Dakota Library Network 1200 University, Unit 9672 Spearfish,
1 Advanced Software Engineering Association for Computing Machinery High School Competition System Prof: Masoud Sadjadi Fall 2004 First Deliverable By:
CSE 303 – Software Design and Architecture
Introduction to Sequence Diagrams
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
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.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Evaluating Architectures Quality control: rarely fun, but always necessary
1 OPOL Training (OrderPro Online) Prepared by Christina Van Metre Independent Educational Consultant CTO, Business Development Team © Training Version.
Exploring an Open Source Automation Framework Implementation.
Requirements Documentation CSCI 5801: Software Engineering.
Credit Hours Agenda IntroductionProblem Statement Objectives Project PlanMethodology Work Breakdown Structure Requirements and specificationSoftware Requirements.
Evaluating Architectures Quality control: rarely fun, but always necessary
Advanced Software Engineering Association for Computing Machinery High School Competition System Prof: Masoud Sadjadi Fall 2004 First Deliverable By: Prasad.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
Cohesion and Coupling CS 4311
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
1 DMIS COG Administrator Course DMIS Web Services Release 2.3.
Traffic Management Transit Management Emergency Management Fixed Point-to-Fixed Point Communications Roadway Toll Administration Remote Traveler Support.
Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Class Diagrams.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Ashley Montebello – CprE Katie Githens – SE Wayne Rowcliffe – SE Advisor/Client: Akhilesh Tyagi.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Introduction to Software Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.
KIM: Kuali Abstraction Layer for Identities, Groups, Roles, and Permissions.
11 Software Design CSCU 411 Software Engineering.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Web Application Design. Data –What data is available? –How do we store it or how is it stored in the DB? Schema Data types Etc. –Where is the data?
Institute for the Protection and Security of the Citizen HAZAS – Hazard Assessment ECCAIRS Technical Course Provided by the Joint Research Centre - Ispra.
SCHOOL MANAGEMENT SYSTEM Developed by: Swapnil R. Gohil ( )
Coupling and Cohesion Schach, S, R. Object-Oriented and Classical Software Engineering. McGraw-Hill, 2002.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
 System Requirement Specification and System Planning.
Dept. of Information Systems St. Francis Xavier University
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
7. Modular and structured design
Rekayasa Perangkat Lunak Part-10
Requirements Spec Revisited
Rekayasa Perangkat Lunak
N-Tier Architecture.
Coupling and Cohesion 1.
Rekayasa Perangkat Lunak
Improving the Design “Can the design be better?”
Presentation transcript:

Design Validation CSCI 5801: Software Engineering

Design Validation

Does design match requirements? – Are there components/objects/methods for each step in scenarios? – Are all nonfunctional requirements addressed? Is design good? – Maximal cohesion within a component/class – Minimal coupling between components/classes – Maximum fault tolerance

Design Walkthroughs For each scenario in requirements, walk through step by step – Is there component for each step? – Does that component have a method in its API for the previous component to call? Is needed information passed/returned? – Does each component store the correct data to perform its role in this scenario? – Are there components/methods for each of the exceptions that might occur?

Best Tool: Sequence Diagrams

Example Scenario Add Scenario Description: A student adds a course by entering a course number and selecting a section. Initial Assumption: Student has logged in and navigated to ADD screen, and has selected a course to add.

Example Scenario Normal Steps: System populates dropdown list of courses. Student selects a course from the list. A drop down with open sections (including their times) is populated. The student selects on and presses ADD. The student is added to the course roster. An acknowledgement of the add is displayed. The student may add more courses, or exit to th main menu.

Example Scenario Exceptions: All sections of the selected course may be closed, in which case a message is popped up instead of the drop down being populated. The course may be closed before the student presses ADD, due to other students adding, in which case a message is displayed and the list of open sections displayed again. System State upon Completion: The student ID is added to the roster of the section chosen.

Cohesion and Coupling Cohesion: A component/class should have one purpose – Easier for single design team to implement, maintain Coupling: Different components should have minimal communications – Few public methods with few parameters – Easier to implement/test interfaces Strong cohesion + weak coupling = modular design

Some Types of Cohesion Data cohesion – Component has all responsibility for single major piece of data – Example: All access to class roster Functional cohesion – Component contains related functions – Example: Math library Procedural cohesion – Component handles all steps in single process – Example: Payment component for registration handles all billing steps (parking fees, billing info, payment…)

Some Types of Cohesion Communicational cohesion – Component handles all access to external entity – Example: InventoryDB component handles all communication to Course Inventory, using SQL Temporal cohesion – Component contains all code for specific stage of system – Example: Startup module creates and links all components, loads data from files

Registration Example

Not cohesive – Section information – Section roster Too much coupling – Section component must call course component for all information to display Two different concepts used in two different scenarios

Better Solution

Desired Non-functional Attributes Maintainability – How hard will it be to make anticipated changes? Performance – Can the scale to higher loads if necessary with minor design changes (i.e, more servers)? Testability – Can requirements be tested at component level? – Can automated testing be used? Traceability – Is this component related to some scenario in the requirements?

Desired Non-functional Attributes Flexibility – How easily can the system adapt to unusual conditions? Portability – Could you get the system to run on a new platform? Reusability – What parts of the system could you use in a new system? Interoperability – Can the system talk to other relevant systems?

Fault-Tolerant Design Prevent things from going horribly wrong 1.Identify bad things that can happen – Often involves data integrity/security – Can assign degrees of risk to each 2.Determine whether they can occur in present design 3.If so, improve design to minimize risk

Fault-tolerant Design Examples from registration system: – Can roster database be deleted? High risk! – Can intruder read files (in violation of FERPA)? Medium risk – Can a student add a course but not be added to the roster? Lower risk

Fault-tolerant Design Can roster database be deleted? Yes Possible causes: – Database hacked through web – Database server physically destroyed Design solutions:

Fault-tolerant Design Can student records be read? Yes Possible causes: – Records stored in non-encrypted form Design solutions:

Fault-tolerant Design Can student add course but not be added to roster? Yes Possible causes: – Database server crashes before updated with new course Design solutions: