CSC340: Information Systems Analysis and Design. About the Course



Similar documents
Requirements Engineering: A Roadmap

How To Develop Software

Requirements Engineering Process

22C:22 (CS:2820) Object-Oriented Software Development

GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS

Lecture 17: Requirements Specifications

Application Performance Testing Basics

Lecture 9: Requirements Modelling

INFS5991 BUSINESS INTELLIGENCE METHODS

The Battle for the Right Features or: How to Improve Product Release Decisions? 1

MSc Financial Risk and Investment Analysis

Lessons Learned in Software Testing

ASTON UNIVERSITY PROGRAMME SPECIFICATION

Requirements Engineering Processes. Feasibility studies. Elicitation and analysis. Problems of requirements analysis

Midterm Test Department: Computer Science Instructor: Jennifer Campbell Date and Time: 6:10pm, Thursday March 10, 2005

INFS5991 BUSINESS INTELLIGENCE METHODS. Course Outline Semester 1, 2015

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Fundamentals of Computer Programming CS 101 (3 Units)

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

(Refer Slide Time: 01:52)

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

JOURNAL OF OBJECT TECHNOLOGY

The Second International Timetabling Competition (ITC-2007): Curriculum-based Course Timetabling (Track 3)

Multidisciplinary Engineering Systems Graduate Education: Master of Engineering in Mechatronics

PROGRAMME SPECIFICATION POSTGRADUATE PROGRAMME

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Emphasizing Soft Skill Learning and Training as Part of an Engineering Curriculum Revision

University of Macau Undergraduate Electromechanical Engineering Program

Sofware Requirements Engineeing

Story Card Based Agile Software Development

ONLINE PROGRAM LEGAL PROJECT MANAGEMENT

Requirements Engineering Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1

feature requirements engineering

Ten steps to better requirements management.

Course Outline. Fall Session 2015 A03

Ubiquitous, Pervasive and Mobile Computing: A Reusable-Models-based Non-Functional Catalogue

Requirements engineering

MSc in Global Supply Chain and Logistics Management

CMSC 435: Software Engineering Course overview. Topics covered today

Honours Degree (top-up) Computing Abbreviated Programme Specification Containing Both Core + Supplementary Information

IS YOUR DATA WAREHOUSE SUCCESSFUL? Developing a Data Warehouse Process that responds to the needs of the Enterprise.

Managerial Decision Making when values take over rational economical thought

INFS 2603 BUSINESS SYSTEMS ANALYSIS

Bidirectional Tracing of Requirements in Embedded Software Development

Test Data Management Best Practice

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Learning outcomes. Systems Engineering. Software Quality Management. Product reflects Process. Lecture 5. Introduction to Software Quality Management

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

AP Psychology Course Syllabus and Survival Guide

School of Computer Science

Requirements Engineering: Elicitation Techniques

SE403 SOFTWARE PROJECT MANAGEMENT CHAPTER 1 INTRODUCTION. Assist. Prof. Dr. Volkan TUNALI Faculty of Engineering / Maltepe University

Software Engineering Reference Framework

This white paper was written by Csilla Zsigri, The 451 Group, based on the work done by the SmartLM Consortium in business modeling.

Developing software which should never compromise the overall safety of a system

Benefits Realization from IS & IT, and Change Management of roles and the working practices of individuals and teams.

A Discipline for Software Engineering

PROGRAMME SPECIFICATION

ACCT5949 Managing Agile Organisations

Project Risk Management

Basic academic skills (1) (2) (4) Specialized knowledge and literacy (3) Ability to continually improve own strengths Problem setting (4) Hypothesis

Requirements Engineering for Web Applications

Why HTML5 Tests the Limits of Automated Testing Solutions

Resource Planning and Scheduling. CSTM 462 Resource Loading Fall 2012

Advanced Placement Psychology Course Syllabus and Survival Guide Mr. Korek O1-HO Purpose of the Course

A Simple Guide to Material Master Data Governance. By Keith Boardman, Strategy Principal

Chap 1. Introduction to Software Architecture

MATH 1050, College Algebra, QL, 4 credits. Functions: graphs, transformations, combinations and

SYLLABUS PSYCHOLOGY 2C03: SOCIAL PSYCHOLOGY Department of Psychology, Neuroscience, and Behaviour McMaster University Winter 2011

Software Requirements Specification (SRS)

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

SOA: The missing link between Enterprise Architecture and Solution Architecture

26. Legacy Systems. Objectives. Contents. Legacy systems 1

Research Project Management Key Concepts. Dr Robin Henderson

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software Engineering. What is a system?

Lectures 2 & 3: Introduction to Modeling & UML. Getting started

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

OCR LEVEL 3 CAMBRIDGE TECHNICAL

JOU4700: Problems and Ethics in Journalism Course Syllabus, Spring 2015 Mondays, 3-6 p.m. Florida Gym, Room 260

Programme Specification: Master of Business Administration

Lecture 10 CS5702. Requirements Engineering. Managing change optimising Value - A bit more about Agile RE. Requirements Engineering.

Lecture 17: Testing Strategies" Developer Testing"

Strategic Marketing is a 15-credit mandatory module which sits within the suite of Level 6 modules.

Applying Lean on Agile Scrum Development Methodology

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Project Management: Back to Basics

ITEC832. Enterprise Application Integration. Contents. S1 Evening Dept of Computing

Transcription:

CSC340: Information Systems Analysis and Design Professor Jennifer Campbell campbell@cs.toronto.edu http://www.cs.toronto.edu/~csc340h/ Acknowledgement: Material Provided by Professor Steve Easterbrook Easterbrook 2004 1 Course website www.cs.toronto.edu/~csc340h/ Textbooks About the Course Lecture Notes Available on the course website prior to each lecture Coursework Carried out in teams of 3 Each team submits one report (per assignment) All team members receive the same grade (exceptions can be negotiated) Deadlines Are very strict (use a U of T medical certificate if you are seriously ill) Daily penalties apply to late work

Course Objectives Examine the state-of-the-art for research & practice in Requirements Engineering. Role of RE in software and systems engineering Current techniques, notations, methods, processes and tools used in RE Gain practical experience in selected RE techniques Especially goal-oriented and object-oriented modelling techniques Understand the essential nature of RE Breadth of skills needed for RE, and the many disciplines on which it draws Contextual factors & practicalities A note about terms: Systems Analysis Requirements Engineering SA typically refers only to information systems RE applies to all software-intensive systems This course is evolving to cover more of RE Easterbrook 2004 3 Assessment 4 team assignments: 1. Conduct an inspection of an existing specification (10%) Report on defects found, overall quality, and inspection stats 2. Perform a feasibility study for an information systems project (15%) Write a feasibility report 3. Perform requirements modelling for the same project (10%) Prepare requirements models 4. Perform a requirements analysis for the same project (10%) Write a requirements specification 2 tests: Midterm test (20%) Final Exam (35%) Must obtain at least 40% on this exam to pass the course.

Software-Intensive Systems Software (on its own) is useless Software is an abstract description of a set of computations Software only becomes useful when run on some hardware we sometimes take the hardware for granted Software + Hardware = Computer System A Computer System (on its own) is useless Only useful in the context of some human activity that it can support we sometimes take the human context for granted A new computer system will change human activities in significant ways Software + Hardware + Human Activities = Software-Intensive System Software makes many things possible It is complex and adaptable It can be rapidly changed on-the-fly It turns general-purpose hardware into a huge variety of useful machines Easterbrook 2004 5 Quality = Fitness for purpose Software technology is everywhere Affects nearly all aspects of our lives But our experience of software technology is often frustrating/disappointing Software is designed for a purpose If it doesn t work well then either: the designer didn t have an adequate understanding of the purpose or we are using the software for a purpose different from the intended one Requirements analysis is about identifying this purpose Inadequate understanding of the purpose leads to poor quality software The purpose is found in human activities E.g. Purpose of a banking system comes from the business activities of banks and the needs of their customers The purpose is often complex: Many different kinds of people and activities Conflicting interests among them

Where are the challenges? Application Domain Machine Domain Easterbrook 2004 7 Complexity of Purpose People and software are closely-coupled Complex modes of interaction Long duration of interaction Mixed-initiative interaction Socially-situated interaction software systems and human activity shape each other in complex ways The problems we d like software to solve are wicked No definitive formulation of the problem No stopping rule (each solution leads to new insights) Solutions are not right or wrong No objective test of how good a solution is (subjective judgement needed) Each problem is unique (no other problem is exactly like it) Each problem can be treated as a symptom of another problem Problems often have strong political, ethical or professional dimensions

Dealing with problem complexity Abstraction Ignore detail to see the big picture Treat objects as the same by ignoring certain differences (beware: every abstraction involves choice over what is important) Decomposition Partition a problem into independent pieces, to study separately (beware: the parts are rarely independent really) Projection Separate different concerns (views) and describe them separately Different from decomposition as it does not partition the problem space (beware: different views will be inconsistent most of the time) Modularization Choose structures that are stable over time, to localize change (beware: any structure will make some changes easier and others harder) Easterbrook 2004 9 Designing for people What is the real goal of software design? Creating new programs, components, algorithms, user interfaces,? Making human activities more effective, efficient, safe, enjoyable,? How rational is the design process? Hard systems view: Software problems can be decomposed systematically The requirements can be represented formally in a specification This specification can be validated to ensure it is correct A correct program is one that satisfies such a specification Soft systems view: Software development is is embedded in a complex organisational context There are multiple stakeholders with different values and goals Software design is part of an ongoing learning process by the organisation Requirements can never be adequately captured in a specification Participation of users and others throughout development is essential Reconciliation: Hard systems view okay if there is local consensus on the nature of the problem

Which systems are soft? Generic software components E.g. Core operating system functions, network services, middleware, Functionality relatively stable, determined by technical interfaces But note that these systems still affect human activity E.g. concepts of a file, a URL, etc. Control Systems E.g. aircraft flight control, industrial process control, Most requirements determined by the physical processes to be controlled But note that operator interaction is usually crucial E.g. accidents caused when the system doesn t behave as the operator expected Information Systems E.g. office automation, groupware, web services, business support, These systems cannot be decoupled from the activities they support Design of the software entails design of the human activity The software and the human activities co-evolve Easterbrook 2004 11 Definition of RE Not a phase or stage! Communication is as important as the analysis Quality means fitness-for-purpose. Cannot say anything about quality unless you understand the purpose Requirements Engineering (RE) is a set of activities concerned with identifying and communicating the purpose of a software-intensive system, and the contexts in which it will be used. Hence, RE acts as the bridge between the real world needs of users, customers, and other constituencies affected by a software system, and the capabilities and opportunities afforded by softwareintensive technologies Need to identify all the stakeholders - not just the customer and user Designers need to know how and where the system will be used Requirements are partly about what is needed and partly about what is possible

Cost of getting it wrong Cost of fixing errors Typical development process: requirements analysis software design programming development testing acceptance testing operation Errors cost more to fix the longer they are undetected E.g. A requirements error found in testing costs 100 times more than a programming error found in testing Causes of project failure Survey of US software projects by the Standish group: Successful Challenged Cancelled 1994 16% 53% 31% 1998 26% 46% 28% Top 3 success factors: 1) User involvement 2) Executive management support 3) Clear statement of requirements Top 3 factors leading to failure: 1) Lack of user input 2) Incomplete requirements & specs 3) Changing requirements & specs Easterbrook 2004 13 What do Requirements Analysts do? Starting point Some notion that there is a problem that needs solving e.g. dissatisfaction with the current state of affairs e.g. a new business opportunity e.g. a potential saving of cost, time, resource usage, etc. A Requirements Analyst is an agent of change The requirements analyst must: identify the problem / opportunity Which problem needs to be solved? (identify problem Boundaries) Where is the problem? (understand the Context/Problem Domain) Whose problem is it? (identify Stakeholders) Why does it need solving? (identify the stakeholders Goals) How might a software system help? (collect some Scenarios) When does it need solving? (identify Development Constraints) What might prevent us solving it? (identify Feasibility and Risk) and become an expert in the problem domain although ignorance is important too -- the intelligent ignoramus

Summary This course covers most of requirements engineering: Analyzing problem situations Studying human activities Formulating requirements so that software solutions can be designed This course is different to most CS courses It is not about how to solve problems using computers It is about how to identify problems worth solving The subject matter is human activity: how to understand it how to support it using software technology Your mileage will vary Comments from students in previous years vary dramatically: At last - a course that actually taught me something useful This course should be scrapped - it s an embarrassment to CS Easterbrook 2004 15