CS 551 –Prototyping and Architecture

Slides:



Advertisements
Similar presentations
Requirements Specification and Management
Advertisements

SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
Lecture # 2 : Process Models
MIS 2000 Class 20 System Development Process Updated 2014.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
4.1 Blended approaches: Information Engineering IMS Information Systems Development Practices.
Software Engineering 6/e, Chapter 8
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
The Architecture Design Process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Lecture 4 Prototyping CS 540 – Quantitative Software Engineering.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
CS 551 – Requirements and Prototyping Fall 2004 Thanks to Rand Edwards and Ian Summerville for this material.
Lecture Nine Database Planning, Design, and Administration
Database System Development Lifecycle Transparencies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Database Planning, Design, and Administration Transparencies
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
CSI315 Web Technology and Applications
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Database Design - Lecture 1
Chapter 2 The process Process, Methods, and Tools
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
ITEC224 Database Programming
Part3 Database Analysis and Design Techniques Chapter 04- Overview of Database Planning, Design and Administration Database Systems Lu Wei College of Software.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
Software Requirements Engineering CSE 305 Lecture-2.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Database Planning, Design, and Administration Transparencies
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Prototyping Rapid software development to validate requirements.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
 System Requirement Specification and System Planning.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Software life cycle models
Chapter 1 The Systems Development Environment
System Analysis and Design:
Presentation transcript:

CS 551 –Prototyping and Architecture

Prototyping with Reuse Application level development Entire application systems are integrated with the prototype so that their functionality can be shared For example, if text preparation is required, a standard word processor can be used Component level development Components are mutually independent Individual components are integrated within a standard framework to implement the system Framework can be a scripting language or an integration platform. As of 15 Sept.

Key points A prototype can be used to give end-users a concrete impression of the system’s capabilities Prototyping is becoming increasingly used where rapid development is essential Throw-away prototyping is used to understand the system requirements In evolutionary prototyping, the system is developed by evolving an initial version to the final version

Key points Rapid prototyping may require leaving out functionality or relaxing non-functional constraints Prototyping techniques include the use of very high-level languages, database programming and prototype construction from reusable components Prototyping is essential for parts of the system such as the user interface which cannot be effectively pre-specified Users must be involved in prototype evaluation

Harbor Radar CS 551 Senior Design Case History Harbor Radar CS 551 Senior Design

Project Overview To primarily serve boaters in the Hudson River area with a 40 mile radius and inexpensive TV to display weather info, buoy data, and plotted locations Interactive website Accessible to everyone Secure section where admin can control information displayed with ability to plot coordinates and alter broadcast information Difficult time writing requirements and setting scope

Requirements Website Design -Easy to use, clean, intuitive and clearly display maps Reliability High reliability requested by customer Availability Ultimate goal of 24/7, however probably not doable. 20/7 has been suggested

Requirements (cont.) Performance Website will support 50 simultaneous users Reach for goal of 100 Television broadcast(s) place little load on the system Response Time Average of .5s Constraints Television resolution will be an issue Aim to be readable on a 9” screen Support both IE and Netscape, versions TBD

Map Module Screenshots

Larger View Grid Icons

Wrapper Module for TV Screens

Gantt Charts

Systems Architecture CS 551 Lecture 4 P E R F O & M A ERROR RECOVERY N REQUIRE MENTS PROBLEM CS 551 Lecture 4

Software Architecture Lessons A good software architecture may be the single most important characteristic for a successful software development. It is the key framework for all technical decisions. It has a profound influence on the organization of the project. The architecture of the system should be documented in a clear and concise way and communicated to everyone on the project. Use architecture reviews to make sure that the integrity of the architecture is preserved as new features and functions are added. Periodically renew the architecture.

What is Software Architecture? The framework for all technical decisions. A coherent, justified collection of design decisions. Technology and platform selection to match the problem. A vehicle for communication among stakeholders. A balance between features, cost and schedule. A reusable and transferable abstraction of a system. The basis for a product line or product family. A mechanism to insure that the system meets the reliability, capacity, response time and throughput requirements. Simplest satisfactory solution.

Benefits of Good Software Architectures Helps identify and isolate reusable components that can speed implementation and improve system quality. Assists in measuring project impacts of inevitable ongoing technical and business decisions and compromises. Leads to clearly defined organizations with inherent project efficiencies, good communications and decision making.

Architecture in a Project’s Life Cycle It encompasses the requirements, architecture and high level design phases of the typical waterfall diagram. It also continues throughout the life of the project (someone continues to wear the architect’s hat). Planning and Architecture Phase Prospectus Iterative process until consensus is reached Requirements Carries through the life of the project Discovery Review Architecture High Level Design Low Level Architecture Design Review

What we look for in an Architecture The purpose the system is intended to satisfy. The major functional components and/or platforms. The relationship between the components. The fit to function. The dynamic interplay of control and communication between these components. The system’s ease of use. The data storage and flow of data among these components. The resources which are consumed by each component in the performance of its task.

Kruchten’s “4 + 1”Model for Developing Software Architecture + 1 Business Scenario View 1 View 2 Process -- System Integrators Logical -- End Users + 1 Business Scenario View 4 View 3 Execution -- Programmers Physical -- Engineers This is an innovative and comprehensive integration of the abstractions needed to design the structure for writing system requirements. + 1 Business Scenario

Cost of Modifying Modules for Reuse -- NASA Data for 2954 Modules Relative Cost Amount Modified

Open Systems Interconnection Model The Foundation for Distributed Software Systems

ARCHITECTURE REVIEWS Found: Problem Areas Requirements Performance ErrRcvy Other Tech Project Management OA&M

Project Management Findings 1. Aggressive schedule forcing inadequate time and focus on fundamental architecture issues Attempts at working issues in parallel with development often leads to major rework or complete failure 2. Lack of central management or architecture consistency for projects attempting to integrate multiple systems 3. No clear success criteria - multiple, subjective views of customer expectations 4. No clear problem statement - multiple, or conflicting goals 5. No architect (or architecture effort); no central coordination and record of system wide technical decisions 6. Lack of buy-in from all stakeholders on requirements or architecture issues

Requirements Findings Approximate Occurrences

Requirements Findings 1. Lack of Functional Requirements No requirements have been written in key areas Usage scenarios not understood and documented Functionality of the system incomplete Customer unknown or not contacted No acceptance criteria for the system 2. Lack of Performance & Capacity Requirements Number and/or types of users undocumented Transaction and data volumes unknown Night or batch processing unknown 3. Lack of OA&M Requirements No OA&M requirements documented No availability requirements documented Availability requirements not tied to customer needs (e.g. ‘7 X 24’)

Approximate Occurrences Design Findings Approximate Occurrences

Design Findings 1. Performance Engineering Often the performance requirements are not fully understood. “Build it now, tune it later” Processing, memory, disk utilization (such as database transactions) needs are not well understood by the architects. Assumption that the system will scale linearly as the load grows No performance budgets 2. Operations, Administration, Maintenance and Provisioning (OAM&P) These components include installing the system, booting/rebooting, backup and recovery, remote maintenance and diagnostics, initializing the data needed for the system to operate, and tools to provision the growth of the system. Design and implementation often underestimated. Design done late in cycle and inconsistent with remainder of system features. 3. Error Handling and Recovery Lack of a system error strategy for catching, reporting and recovering from both hardware and software failures. Error strategy design is the process to examine error scenarios.

Acknowledgement Thanks to Joe Maranzano, he is the class of software architects.