CSC 308 Lecture Notes Weeks 1 and 2 Introduction to Software Engineering, Requirements Analysis, and Specification

Similar documents
Implementing a tool to Support KAOS-Beta Process Model Using EPF

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Major Milestones, Team Activities, and Individual Deliverables

ECE-492 SENIOR ADVANCED DESIGN PROJECT

Economics 201 Principles of Microeconomics Fall 2010 MWF 10:00 10:50am 160 Bryan Building

OCR LEVEL 3 CAMBRIDGE TECHNICAL

Test Administrator User Guide

A Pipelined Approach for Iterative Software Process Model

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Tools to SUPPORT IMPLEMENTATION OF a monitoring system for regularly scheduled series

Accounting 380K.6 Accounting and Control in Nonprofit Organizations (#02705) Spring 2013 Professors Michael H. Granof and Gretchen Charrier

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

Software Maintenance

Generating Test Cases From Use Cases

Visit us at:

BENG Simulation Modeling of Biological Systems. BENG 5613 Syllabus: Page 1 of 9. SPECIAL NOTE No. 1:

MARKETING MANAGEMENT II: MARKETING STRATEGY (MKTG 613) Section 007

IT4305: Rapid Software Development Part 2: Structured Question Paper

Measurement & Analysis in the Real World

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

content First Introductory book to cover CAPM First to differentiate expected and required returns First to discuss the intrinsic value of stocks

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

MGMT3403 Leadership Second Semester

Background Information. Instructions. Problem Statement. HOMEWORK INSTRUCTIONS Homework #3 Higher Education Salary Problem

Knowledge management styles and performance: a knowledge space model from both theoretical and empirical perspectives

Rules of Procedure for Approval of Law Schools

Faculty Athletics Committee Annual Report to the Faculty Council September 2014

DEVM F105 Intermediate Algebra DEVM F105 UY2*2779*

Introduction to CRC Cards

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

What is PDE? Research Report. Paul Nichols

STANDARD OPERATING PROCEDURES (SOP) FOR THE COAST GUARD'S TRAINING SYSTEM. Volume 7. Advanced Distributed Learning (ADL)

Nearing Completion of Prototype 1: Discovery

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Guide to Teaching Computer Science

KENTUCKY FRAMEWORK FOR TEACHING

M55205-Mastering Microsoft Project 2016

Unit 7 Data analysis and design

PROCESS USE CASES: USE CASES IDENTIFICATION

ACADEMIC AFFAIRS GUIDELINES

Intermediate Algebra

MASTER S THESIS GUIDE MASTER S PROGRAMME IN COMMUNICATION SCIENCE

An Industrial Technologist s Core Knowledge: Web-based Strategy for Defining Our Discipline

JEFFERSON COLLEGE COURSE SYLLABUS BUS 261 BUSINESS COMMUNICATIONS. 3 Credit Hours. Prepared by: Cindy Rossi January 25, 2014

The open source development model has unique characteristics that make it in some

Practical Research. Planning and Design. Paul D. Leedy. Jeanne Ellis Ormrod. Upper Saddle River, New Jersey Columbus, Ohio

Early Warning System Implementation Guide

Deploying Agile Practices in Organizations: A Case Study

IBM Software Group. Mastering Requirements Management with Use Cases Module 6: Define the System

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

LEARNING THROUGH INTERACTION AND CREATIVITY IN ONLINE LABORATORIES

The Seven Habits of Effective Iterative Development

Field Experience and Internship Handbook Master of Education in Educational Leadership Program

McDonald's Corporation

PREP S SPEAKER LISTENER TECHNIQUE COACHING MANUAL

Knowledge-Based - Systems

Software Development Plan

CHALLENGES FACING DEVELOPMENT OF STRATEGIC PLANS IN PUBLIC SECONDARY SCHOOLS IN MWINGI CENTRAL DISTRICT, KENYA

Prince2 Foundation and Practitioner Training Exam Preparation

Lesson Plan Art: Painting Techniques

School of Basic Biomedical Sciences College of Medicine. M.D./Ph.D PROGRAM ACADEMIC POLICIES AND PROCEDURES

Group Assignment: Software Evaluation Model. Team BinJack Adam Binet Aaron Jackson

DESIGNPRINCIPLES RUBRIC 3.0

Computer Architecture CSC

The functions and elements of a training system

ACCOUNTING FOR LAWYERS SYLLABUS

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

2 Organizational. The University of Alaska System has six (6) Statewide Offices as displayed in Organizational Chart 2 1 :

THE DEPARTMENT OF DEFENSE HIGH LEVEL ARCHITECTURE. Richard M. Fujimoto

Integrating simulation into the engineering curriculum: a case study

March. July. July. September

GACE Computer Science Assessment Test at a Glance

Requirements-Gathering Collaborative Networks in Distributed Software Projects

Execution Plan for Software Engineering Education in Taiwan

Assessment of Student Academic Achievement

Android App Development for Beginners

Delaware Performance Appraisal System Building greater skills and knowledge for educators

Leadership Guide. Homeowner Association Community Forestry Stewardship Project. Natural Resource Stewardship Workshop

Computer Software Evaluation Form

Southern Wesleyan University 2017 Winter Graduation Exercises Information for Graduates and Guests (Updated 09/14/2017)

GOING GLOBAL 2018 SUBMITTING A PROPOSAL

PRINCE2 Practitioner Certification Exam Training - Brochure

TEACHING IN THE TECH-LAB USING THE SOFTWARE FACTORY METHOD *

IMPROVING STUDENTS SPEAKING SKILL THROUGH

Instructor: Khaled Kassem (Mr. K) Classroom: C Use the message tool within UNM LEARN, or

IMPROVING STUDENTS READING COMPREHENSION BY IMPLEMENTING RECIPROCAL TEACHING (A

ENGLISH Training of Trainers

Use of CIM in AEP Enterprise Architecture. Randy Lowe Director, Enterprise Architecture October 24, 2012

For information only, correct responses are listed in the chart below. Question Number. Correct Response

University of Waterloo School of Accountancy. AFM 102: Introductory Management Accounting. Fall Term 2004: Section 4

Kentucky s Standards for Teaching and Learning. Kentucky s Learning Goals and Academic Expectations

Arizona s English Language Arts Standards th Grade ARIZONA DEPARTMENT OF EDUCATION HIGH ACADEMIC STANDARDS FOR STUDENTS

Aclara is committed to improving your TWACS technical training experience as well as allowing you to be safe, efficient, and successful.

Administrative Services Manager Information Guide

Rotary Club of Portsmouth

CERTIFIED PROJECT MANAGEMENT SPECIALIST (CPMS) STUDY GUIDE

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Transcription:

CSC308-W15-L1-2 Page 1 CSC 308 Lecture Notes Weeks 1 and 2 Introduction to Software Engineering, Requirements Analysis, and Specification I. Materials for weeks 1 and 2 of class: A. Syllabus. B. Projects descriptions. C. Milestone 1writeup. D. Specification document outline. E. SVN basics. F. Standard operating procedures, Volume 1. G. These lecture notes. II. Scheduling details for the first two weeks. A. First day s activities (Monday): 1. In lecture: a. Tour of syllabus and other handouts. b. Brief introduction to the software system life cycle and requirements analysis. 2. In lab: a. Choice of project teams and projects. b. Preparation for initial customer interviews. B. Second day s activities (Wednesday): 1. Initial customer interviews with all teams, in both lecture and lab. 2. To provide ample interview time, there will be no normal lecture on this Wednesday. 3. The precise meeting schedule will be determined on the first day of classes. C. Third day s activities (Friday): 1. Normal lecture. 2. Lab introduction to project repository and SVN. D. Fourth day s activities (Monday): 1. Second round of customer interviews. 2. As with preceding Wednesday, nonormal lecture. 3. Precise schedule TBA. E. Third week and beyond: 1. "Normal" lectures. 2. Lab meetings as described in syllabus, specific times TBA, in forthcoming handout. III. What is software engineering? A. The disciplined creation of software. B. Well-known principles of scientific problem solving are applied, including: 1. Defining aproblem clearly before starting its solution. 2. Using a"divide and conquer" strategy to manage the complexity of a problem and its solution. C. Well-known principles of engineering are applied, including:

CSC308-W15-L1-2 Page 2 1. Using formal mathematics to specify a system precisely. 2. Formally verifying that a problem solution meets its specification. IV. The different types of software. A. There are three broad categories of software, based on the application domain, i.e., the general area in which the software is applied. 1. End-user software. a. Used by people to get work done. b. Has a human-computer interface (HCI). 2. System software. a. Provides underlying support to end-user software. b. Has an application programmer interface (API), and perhaps limited HCI. 3. Embedded software a. Used within hardware devices. b. Has no HCI; the interface is directly with the hardware. B. There are two categories of software based on the clientele who purchase it. 1. Off-the-shelf (or shrink-wrap) software is built by software developers who sell it on the open marker. 2. Custom (or bespoke) software is built to satisfy the needs of specific customers, typically an organization of some kind. C. In 308, we are building custom end-user software. V. The people involved with software. A. The following are software "stakeholders", i.e., people who have some interest in a software product and/or its development. 1. end users -- people who will use the software or people who represent those who will use it 2. customers -- people who purchase the software, which they may or may use themselves 3. domain experts -- people who fully understand the application domain in which the software will run 4. analysts -- members of the software development staff who specialize in requirements analysis and specification 5. implementors -- members of the development staff who specialize in software design and implementation 6. testers -- members of the development staff and user community who test the software to ensure that it meets the requirements specification 7. managers -- those who manage the development process, as well as those who manage end users when the software is installed in an organization 8. visionaries -- those who have the "big picture" for what the software is intended to do and how itwill be developed 9. maintainers and operators -- those who conduct post-development maintenance and operations, as necessary 10. other interested parties -- anyone else interested in the software product, such as those with a financial investment B. The first four groups work together as a team to develop the requirements, perhaps with some individuals in more than one group. C. It may be the case that the members of the implementation team do not participate at all in the requirements specification, but rather accept the requirement specification document as input. D. In CSC 308, you will primarily play the roles of analyst and tester, with a secondary roles as domain experts and end users as appropriate.

CSC308-W15-L1-2 Page 3 E. CSC 309 is concerned with project implementation. VI. The software development process. A. For software to be properly engineered, its development must be conducted in an orderly process. B. The diagram in Figure 1 depicts the major stages of the software development process. C. The Analyze step of the process addresses the requirements to be met by the software. 1. For software that is to be used directly by humans, the primary activity of the Analyze phase is to acquire and organize the functional requirements of the human users. 2. This part of the analysis involves a considerable amount of human-to-human communication. D. The Specify step of the process involves the development of a formal model of the requirements. 1. The model represents the requirements in a form that can be mechanically analyzed. 2. Developing the formal specification allows the requirements to be analyzed for completeness and consistency. E. The Design step of the process involves organizing the major components of the software system. 1. The initial design is derived from the components of the formal specification model. 2. The initial design is then refined into an efficient software architecture, consisting of packages, classes, and methods. F. The Implement step fills in the operational details 1. Class data structure details are determined. 2. The code for methods is implemented. G. The following are some noteworthy considerations about the process. 1. Ideally, each step of the process should be completed before the next step is begun. a. If we ignore the upward-pointing dashed arrows in Figure 1, we can view the process diagram as a CSC 308 Analyze Problem Statement Specify CSC 309 Design Problem Solution Implement Figure 1: Major phases of the software development process.

CSC308-W15-L1-2 Page 4 "waterfall chart". b. In this view, information only flows down from higher steps to lower steps. 2. In practice, the ideal waterfall view israrely possible. a. In diagrammatic terms, water sometimes needs to flow uphill (the dashed lines). b. This view allows feed-back from a lower phase to a higher phase. 3. The process we follow incsc 308 and 309 has the following properties: a. There is substantial feedback between the Analyze and Specify steps of the process. b. There is also substantial feedback between the Design and Implement steps. c. The feedback from the Design step back up to the Specify step is limited, and controlled by specification change orders (SCOs). i. The reason is that it is important to have a complete and sound specification before design and implementation begin. ii. Further, itisimportant to control any requirements specification changes during design and implementation. iii. A common source of problems in software system development is that of the "shifting requirements" -- requirements and/or specifications that change significantly once the design and implementation phases have begun. H. Viewing the software process as a problem solving exercise, it is clear why changing requirements and specification are troublesome: 1. The requirements analysis and specification can be considered the "problem statement" phase. 2. The design and implementation are the "problem solution" phase. 3. When the system requirements or specification change after the design and implementation are in progress, it is like changing the problem to be solved while the solution is being developed. VII. Additional "pervasive" steps of the software process. A. Figure 1shows the major steps of the process that are carried out in an ordered, step-by-step manner. B. Even if there is some feedback among the steps, the overall order is first to analyze requirements, then specify, then design, and then implement. C. In addition to the four ordered steps, there are four other steps that are carried out continuously, or"pervasively", throughout the development process. D. The pervasive steps of the process are 1. Manage 2. Configure 3. Test 4. Document 5. Reuse E. The Manage step entails the management of the people involved in the process. 1. Project meetings are scheduled at regular intervals. 2. Project supervisors oversee and evaluate the work of their subordinates. F. The Configure step of the process involves the organization and management of the software artifacts. 1. The Configure step is supported by the use version control and configuration management tools. 2. These tools allow artifacts to be checked in to a software repository, with version changes controlled and documented throughout the ongoing process. G. The Test step of the process ensures that software artifacts being produced meet certain measurable standards. 1. Testing requirements involves careful human inspection, and formal review to ensure that user needs are

CSC308-W15-L1-2 Page 5 being met and properly defined. 2. Testing the specification and design involves formal analysis for completeness, consistency, and other measurable properties. 3. Testing the implementation involves formal functional testing to ensure that execution results meet the specification. H. The Document step produces documentation suitable for everyone involved in the process. 1. A requirements specification document is produced in a form suitable for both end users and system developers. 2. Software maintenance documentation is produced during the design and implementation steps. 3. Various forms of reports are produced for the administrative staff. 4. End user manuals and tutorials are produced for the final delivered software product. I. The Reuse step evaluates existing artifacts to determine if they can be used in whole or in part in a new development project. 1. Reuse from libraries is a normal part of the development process. 2. Reuse of other artifacts involves refining and adapting them to meet current needs. J. The important characteristics of a pervasive process step are the following. 1. Pervasive steps are carried out during each of the ordered steps, and in a manner specifically related to each step. a. For example, testing is carried out during each of the analyze, specify design, and implement steps of the process. b. Further, the form of testing carried out for each ordered step is specifically designed for the kind of software artifact that each ordered step produces. 2. Pervasive steps are typically performed at regularly scheduled intervals. a. For example in CSC 308, we will perform requirements testing on a weekly basis during the second half of the quarter. b. As part of the Manage step, we will have regularly scheduled project meetings and reviews. VIII. Traditional process versus agile processes. A. The process we follow in308 and 309 can be considered traditional in the sense that it is based on a clear set of plans, carried out in a specific way. B. One of the particularly traditional aspects of the class process is the production of a substantial requirements document, which can be considered a plan for subsequent implementation. C. A more incremental process approach, called agile development, does much less up-front requirements analysis, but instead develops requirements in small increments as the process proceeds (see Figure 2). 1. Customers and implementors work very closely together, and a product is deployed to the customers in very small increments. 2. The more traditional steps of specification and design are replaced by incremental "refactoring", which cleans up the incrementally developed code, that has a tendency toget messy along the way. D. Agile development, and its underlying methodology of extreme programming, are relatively new inthe world of software processes. 1. People have reported success using agile methods for small to medium-scale projects, with tight-knit teams of customers and developers. 2. Few solid studies have been done to determine how well agile methods work. 3. At present, there are questions about the efficacy of agile development for large-scale projects for which incremental development is not always feasible. 4. Without question, agile methods have proved successful in many cases.

CSC308-W15-L1-2 Page 6 Analyze Very frequent iterations Specify Analyze Controlled by SCO Implement Controlled by bug report, enhancement request. Very frequent iterations Design Very frequent iterations Deploy Implement Refactor Deploy b. Agile process a. Traditional process Figure 2: Comparing traditional and agile software processes. IX. What is involved in requirements analysis and specification? A. These steps involve precisely specifying the need for a proposed software system. B. In order for a requirements specification to be complete and consistent, it is defined in a requirements specification document. C. The informal sections of the document must be understandable to everyone who will be affected by the computing equipment, so that: 1. Everyone understands precisely how computing will affect their work. 2. Everyone can contribute to the formulation of the requirements. D. The formal sections of the document must be precise enough for use as a contractual instrument for the subsequent development or acquisition of the software.

CSC308-W15-L1-2 Page 7 X. Importance of careful requirements analysis. A. Before an organization procures a software system to meet its computing needs, or before a company builds a software system to meet marketplace needs, the people involved should have a precise understanding of exactly what the needs are. B. This seemingly obvious idea is often overlooked in computer system acquisition and development. C. The lure of technology and/or the skill of the technology vendor often lead to insufficient time being spent on requirements analysis and specification. 1. Vendors may over sell a system, with claims that the system can meet a wide range of needs 2. Marketers may overestimate or misunderstand the needs of a potential marketplace. D. Many org anizations have learned painfully that hastily-acquired computer systems can cause more problems than they solve. E. Companies who have built hastily-specified software products have often found insubstantial markets for their product. F. There is nearly universal agreement among software engineers that thorough requirements analysis is essential for successful software development. XI. Patience is required from all participants A. It may sometimes seem that the requirements analysis process spends a long time specifying the obvious. B. During the requirements, many people may think that they have aclear idea of the needs to be met and what the software is supposed to do. C. Even if many do, it is often the case that not everyone has the same ideas. D. Hence, a precise requirements analysis document serves to help everyone agree on what the needs are, in addition to stating the needs precisely. XII. Major phases of requirements specification A. Requirements analysis with end-user scenarios. 1. The language used is English and pictures. 2. The primary audience is proposed customers and end users. 3. Much user consultation is required to gather necessary data. B. Formal model specification. 1. A formal specification language is used. 2. The primary audience is system designers and implementors; a secondary audience is domain experts. 3. The final version is a very formal document suitable for use as a contractual instrument for the procurement of a computer system. XIII. Details of user consultations and data gathering A. It is critically important to involve end-users in the requirements analysis from the outset and throughout the process. B. With this involvement, the ultimate success of the computer system is far more likely than without it. C. Many serious failures in software development have resulted when the needs of end users are neglected. XIV. Activities of user consultation include: A. User interviews B. User interface scenarios

CSC308-W15-L1-2 Page 8 C. User questionnaires or surveys D. Visits to other similar organizations and computer system installations E. Rapid system prototypes XV. Customer interview techniques. A. For users who are not computer specialists, the analyst should not ask questions using computer jargon or terminology. B. Questions should be specialized to what individual users know best. C. Analysts should use other common sense interview skills, including being prepared, polite, succinct, nonthreatening, diplomatic, and empathetic, as appropriate. XVI. User interface scenarios. A. The goal of this activity is to provide potential users with a concrete view of what the proposed system will be like touse. B. Scenarios begin with the premise "Suppose the system existed already, what would it look like tothe user?" 1. The scenarios describe precisely what a user sees when the system is used. 2. Scenarios define what screens look like, what the user commands are, the format of user-visible data, and all other aspects of the end-user interface. XVII. Rapid system prototyping. A. For some software projects, building an operational prototype can be helpful to capture user requirements. B. A prototype is a version of the software product that has reduced functionality that can be rapidly developed prior to full design and implementation. C. Figure 2shows two views of how prototyping can be integrated into the software development process. 1. In Figure 2a, prototyping is a specific step of the process. a. In this type of process, the prototype is typically a "store front" style of system that allows a user to interact through an operational user interface. b. Behind the interface there is no actual functionality. 2. In Figure 2b, a prototype is constructed by taking one or more initial passes through the complete process. a. As each full-process pass is completed, increasingly more functionality is added. b. When a complete and stable result is produced, the prototype has been transformed to a production software system. c. This kind of process is often called "iterative development". D. In CSC 308, we will take the view ofprototyping shown in Figure 2b. Bythe end of 309, we could have a first-pass prototype of an operational system. XVIII. Establishing genuine user needs. A. The notion of establishing genuine need is quite critical in the analysis process. B. Many computer systems have been for which there is no substantial, demonstrated need. C. When software is being analyzed for a particular organization, a forthright analyst should be prepared to say to customers at the end of the requirements phase: "Hey, you folks really don t need any new software at all. What you already have works fine based on your current needs, or you could buy what you need off the shelf." D. When requirements are being gathered for a general-market software product, marketing analysts must be prepared to conclude that there may not be a substantial market for a piece of software, once the

CSC308-W15-L1-2 Page 9 Analyze Analyze Specify Specify Prototype Design Design Implement Implement a. Prototyping as an explicit step of the process. b. Prototyping as multiple passes of the process. Figure 3: How prototyping fits into the software process. requirements for it are fully understood. XIX. Other important aspects of requirements analysis. A. Identification of users and other operational personnel. 1. Precisely who the end users will be. 2. Who will be operate and maintain the system, as necessary. 3. Others who will be affected by the system. B. Overview ofcurrent and proposed operations. 1. How things work before the proposed software system exists. 2. How things will work after the proposed software system is installed. C. Analysis of relevant existing systems. 1. Are there systems with features similar to those required for the proposed system? 2. What is good and bad about those systems? D. Impact analysis. 1. What positive impacts will the system have on the intended user community? 2. What negative impacts will the system have? XX. Examples of requirements specification

CSC308-W15-L1-2 Page 10 A. In 308, we will study a concrete example similar in size and scope to the projects you are working on; it is an electronic Calendar Tool. B. The example will be presented in phases corresponding to the milestones of the 308 projects covered in the class syllabus. C. The first concrete example covers roughly what Milestone 1 should look like. D. We will go over this example in detail next.