CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Lecture 13 Revision IMS Systems Analysis and Design.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
SE 555 – Software Requirements & Specifications Introduction
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
CSC230 Software Design (Engineering)
Defining the Activities. Documents  Goal Statement defines why helps manage expectations  Statement of Work what gets delivered defines scope  Software.
Data Structures and Programming.  John Edgar2.
Introduction to Computer Technology
Effective Methods for Software and Systems Integration
Systems Analysis and Design: The Big Picture
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
INFORMATION SYSTEM APPLICATIONS System Development Life Cycle.
1 Shawlands Academy Higher Computing Software Development Unit.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Software Testing Lifecycle Practice
RUP Fundamentals - Instructor Notes
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Managing the development and purchase of information systems (Part 1)
Software System Engineering: A tutorial
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Feasibility Study.
DISCLAIMER I HEREBY MAKE NO CLAIM THAT THE SAME QUESTIONS WILL BE REPEATED OR ASKED IN THE INTERVIEW AND AS YOU DOWNLOAD THIS POWERPOINT SLIDES IT IS UNDERSTOOD.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Chapter 10 Information Systems Analysis and Design
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Planning a software project. Lack of planning is a primary cause for Schedule slippage Cost overruns Poor quality High maintenance costs of software So.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 systems analysis 1 what is systems analysis? preparation of the system’s requirements/definition,
K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design.
Request for Proposal (RFP)
Professional Certificate in Electoral Processes Understanding and Demonstrating Assessment Criteria Facilitator: Tony Cash.
Rational Unified Process Fundamentals Module 3: Disciplines I.
The Software Development Process
1 Planning a Software Project. 2 Defining the Problem Defining the problem 1.Develop a definitive statement of the problem to be solved. Include a description.
Systems Development Life Cycle
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
CSE 303 – Software Design and Architecture
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Fundamentals of Governance: Parliament and Government Understanding and Demonstrating Assessment Criteria Facilitator: Tony Cash.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
CS223: Software Engineering Lecture 32: Software Maintenance.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
Software Design and Development Development Methodoligies Computing Science.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
 System Requirement Specification and System Planning.
Advanced Software Engineering Dr. Cheng
Introduction to Software Testing
Software Engineering I
System Analysis and Design:
Presentation transcript:

CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall model; reviews and documents.  Some size factors.  Quality and productivity factors. _____ † Material from: David Budgen (course text), and Richard Fairley, Software Engineering Concepts, McGraw-Hill.

CS646: Software Design and Architectures Definitions and descriptions Software Engineering “Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.” Software Design “The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct. The final outcome of designing has to be assumed before the means of achieving it can be explored: the designers have to work backwards in time from an assumed effect upon the world to the beginning of a chain of events that will bring the effect about.”

CS646: Software Design and Architectures The general design process conduct experiments construct theory (model) conduct experiments devise experiments to test theory derive scientific principles (scientific analysis) initial observations more systematic observations predictions from theory experimental observations new predictions experimental observations

CS646: Software Design and Architectures The general design process (cont’d) clarify nature of requirements analyze needs and build black box model of problem validate solution (including use of prototypes) postulate a white box design solution implementation of design plan using a suitable form of software (design) external requirements requirements specification functional specification white box model list of mismatches design plan functional specification

CS646: Software Design and Architectures Universal factors  Concepts.  Languages (one or two dimensional).  Tools.  Process (or methodology, recipe, algorithm). E.g.: 1.Building a house. 2.Building a compiler.

CS646: Software Design and Architectures A general model of design design process requirements specification detailed design constraints: resources, organizational, experience, software reuse, etc. designer’s decisions

CS646: Software Design and Architectures Separating architecture from detailed design design process requirements specification constraints: resources, organizational, experience, software reuse, etc. designer’s decisions detailed design architectural design design process (assignment one) (assignment two)

CS646: Software Design and Architectures The waterfall life-cycle model analysis phase design phase implementation phase system testing maintenance phase Architectural Detailed Coding Unit testing Integration Acceptance Enhance Adapt Fix (verification) Planning Requirements definition PFRSCRsATRPRR PPM SRRADRDDR

CS646: Software Design and Architectures Reviews and documents PFR (product feasibility review) System Definition Project Plan SRR (software requirements review) Software Requirements Specification preliminary Verification Plan preliminary User’s Manual ADR (architectural design review) Architectural Design Document DDR (detailed design review) Detailed Design Document Software Verification Plan User’s Manual SCR (source code review)Walkthroughs and Inspections of the Source Code ATR (acceptance test review) Acceptance Test Plan PRR (production release review) (all of the above) PPM (project post-morten) Project Legacy

CS646: Software Design and Architectures Contents of system definition 1.Problem definition. 2.System justification. 3.Goals for the system and the project. 4.Constraints on the system and the project. 5.Functions to be provided by hardware, software and people. 6.User characteristics. 7.Development, operating and maintenance environments. 8.Solution strategy. 9.Priorities for system features. 10.System acceptance criteria. 11.Sources of information. 12.Glossary of terms.

CS646: Software Design and Architectures Contents of project plan 1.Life-cycle model (e.g., terminology, milestones and work products). 2.Organizational structure (i.e., management structure, team structure, work breakdown structure and statements of work). 3.Preliminary staffing and resource requirements, including staffing and resource schedule. 4.Preliminary development schedule (e.g., CPM graph and Gantt charts). 5.Preliminary cost estimate. 6.Project monitoring and control mechanisms. 7.Tools and techniques to be used. 8.Programming languages. 9.Testing requirements. 10.Supporting documents required.

CS646: Software Design and Architectures Contents of project plan (cont’d) 11.Manner of demonstration and delivery. 12.Training schedule and materials. 13.Installation plan. 14.Maintenance considerations. 15.Method and time of delivery. 16.Method and time of payment. 17.Sources of information.

CS646: Software Design and Architectures Contents of software requirements specification 1.Product overview and summary. 2.Development, operating and maintenance environments. 3.External interfaces and behavior (e.g., user display and report formats, user command summaries, high-level data flow diagrams, logical data sources and sinks, external data views and logical data dictionary) 4.Functional specifications. 5.Performance requirements. 6.Exception handling. 7.Early subsets and implementation priorities. 8.Foreseeable modifications and enhancements. 9.Acceptance criteria. 10.Design hints and guidelines. 11.Cross-reference index.

CS646: Software Design and Architectures Contents of architectural design document 1.Data flow diagrams for the software product. 2.Conceptual specification of relevant data; specification of data sources. 3.Names, interface specifications and functional descriptions of subsystems and major modules. 4.Interconnection structure of the subsystems, major modules and data sources. 5.Timing constraints. 6.Exception conditions and handling.

CS646: Software Design and Architectures Contents of detailed design document 1.Concrete internal design for relevant data. 2.Detailed algorithms. 3.Adaptations of existing code that will be reused. 4.Specific programming techniques required to solve unique problems. 5.Initialization procedures. 6.Detailed exception handling. 7.Task breakdown, including time estimates. 8.Integration test plan (e.g., test and schedule priority charts, CPM graphs and Gantt charts).

CS646: Software Design and Architectures Contents of verification plan 1.Requirements to be verified. 2.Design verification plan. 3.Source-code test plan. 4.Test completion criteria. 5.Document verification plan. 6.Tools and techniques to be used.

CS646: Software Design and Architectures Contents of user’s manual 1.Introduction (i.e., product overview and rational, terminology and basic features, summary of display and report formats and outline of the manual). 2.Getting started (e.g., sign-on, help mode, sample run). 3.Modes of operation; commands, dialogues and reports. 4.Advanced features. 5.Command syntax and system options.

CS646: Software Design and Architectures Contents of acceptance test plan 1.Requirements to be verified. 2.Test cases for each requirement. 3.Expected outcome of each test case. 4.Capabilities demonstrated by each test.

CS646: Software Design and Architectures Contents of project legacy 1.Project description. 2.Initial expectations. 3.Current status of the project. 4.Remaining areas of concern. 5.Activities/time log. 6.Technical lessons learned. 7.Managerial lessons learned. 8.Recommendations for future projects.

CS646: Software Design and Architectures Relative effort Analyze and Design 16% Implement 8% Test 16% Adapt 12% Enhance 36% Fix 12% Observations  Development/Maintenance:40/60  A&D/Code&UT/Int&Acc:40/20/40  Adapt/Enhance/Fix: 20/60/20 (development) (maintenance)

CS646: Software Design and Architectures Software size categories Category Number of programmersDuration Product size (LOC) Trivial11–4 weeks500 Small11–6 months1K–2K Medium2–51–2 years5K–50K Large5–202–3 years50K–100K Very large100–10004–5 years1M Extremely large2000–50005–10 years>1M

CS646: Software Design and Architectures How programmers spend their time † __________ † Bell Labs Study (1964, 70 programmers)  Writing programs:13%  Reading programs and manuals:16%  Job communication:32%  Personal:13%  Miscellaneous:15%  Training: 6%  Mail: 5%

CS646: Software Design and Architectures Quality and productivity factors  Individual ability.  Team communication.  Product complexity.  Choice of languages and notations.  Systematic approaches.  Stability of requirements.  Level of reliability.  Problem understanding.  Required skills.  Facilities and resources.  Required training.  Management skills.  Available time.  Product size.

CS646: Software Design and Architectures Some quality attributes  Portability.  Reliability.  Correctness.  Efficiency.  Testability.  Understandability.  Modifiability.  Accuracy.  Ease of use.  Accountability.  Completeness.  Robustness.