16.453 / 16.553 Software Engineering University of Massachusetts at Lowell Class Meeting #5 Instructor: Joe Russell Website:

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

A Systems Approach To Training
Test process essentials Riitta Viitamäki,
System Development Life Cycle (SDLC)
Prescriptive Process models
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Process Models
EYYUP ORAK Material requirements planning (MRP) is a computer-based inventory management system designed to assist production managers in.
Case studies1. 2 Automating a law office Case studies3 Lessons learned Good intuition and technical skills are not enough to guarantee success Marketing.
Alternate Software Development Methodologies
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
QUALITY MANAGEMENT DEFINITIONS AND CONCEPTS QUALITY MANAGEMENT TOOLS QA / QC PROCESS COMPUTERS AND PROJECT QUALITY.
System Design and Analysis
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Software Testing
VENDORS, CONSULTANTS AND USERS
An Agile View of Process
Software Life Cycle Model
Software Development, Programming, Testing & Implementation.
Introduction to Computer Technology
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction to Systems Analysis and Design Trisha Cummings.
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
Project Management Chapter 5, PG 92. Introduction Why is software management particularly difficult?  The product is intangible Cannot be seen or touched.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
TESTING.
Chapter 2 The process Process, Methods, and Tools
Architecture Business Cycle
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
© Andrew IrelandSoftware Design F28SD2 Function-oriented Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh.
Software Development Process and Management (or how to be officious and unpopular)
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
1 Introduction to Software Engineering Lecture 1.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 3: Software Project Management Metrics
Experiences from Representing Software Architecture in a Large Industrial Project Using Model Driven Development Andres Mattsson 1 Björn Lundell 2 Brian.
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.
Systems Development Life Cycle
Developed by Reneta Barneva, SUNY Fredonia The Process.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Lecture # 1.
Software Project Management Iterative Model & Spiral Model.
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.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering CE 501 Prepared by : Jay Dave.
CASE Tools and their Effect on Software Quality
 System Requirement Specification and System Planning.
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Managing the Project Lifecycle
Introduction to System Analysis and Design
Software development life cycle models
Software Process Models
VENDORS, CONSULTANTS AND USERS
Introduction to Software Testing
Software life cycle models
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Agile Development – a new way of software development?
Presentation transcript:

/ Software Engineering University of Massachusetts at Lowell Class Meeting #5 Instructor: Joe Russell Website:

/ Software Engineering2 Case Studies Structured Analysis and Structured Design

/ Software Engineering3 Topics  Case Study: Automating a Law Office  Case Study: Incremental Delivery  Structured Analysis / Structured Design

/ Software Engineering4 Case Study Automating a Law Office

/ Software Engineering5 Case Study: Automating a Law Office  Leaders of a SW Company realized that law offices such as title companies were poorly automated  They felt a need for an integrated office automation tool could lead to more efficiency in the law office Standard headers in documents Standard headers in documents Pull relevant data out of a database Pull relevant data out of a database Calculate fields within a document Calculate fields within a document Etc… Etc…

/ Software Engineering6 Case Study: Automating a Law Office  Market Analysis Contacted personal acquaintances in the field to determine whether they would be interested in the product. Contacted personal acquaintances in the field to determine whether they would be interested in the product. Contacted members of a professional committee to see whether there was interest in the product Contacted members of a professional committee to see whether there was interest in the product Asked for feedback as to which features would be most desireable Asked for feedback as to which features would be most desireable

/ Software Engineering7 Case Study: Automating a Law Office  Market Analysis (cont ’ d) Although the SW Company ’ s behavior seems natural, there are problems with the analysis Although the SW Company ’ s behavior seems natural, there are problems with the analysis Sample of potential customers selected was biased. It did not represent a scientific sampling of the market.Sample of potential customers selected was biased. It did not represent a scientific sampling of the market. Market analysis was performed by “ pure software engineers ” who had little background in the marketing fieldMarket analysis was performed by “ pure software engineers ” who had little background in the marketing field

/ Software Engineering8 Case Study: Automating a Law Office  Economic and Financial Planning Requires the ability to forecast future sales and the ability to estimate costs Requires the ability to forecast future sales and the ability to estimate costs Influenced by one’s knowledge of both the price at which the product can be sold and the number of items soldInfluenced by one’s knowledge of both the price at which the product can be sold and the number of items sold It was difficult for the SW Company to perform this analysis because it was driven by SW engineers who were technically savvy but not economically and financially competent It was difficult for the SW Company to perform this analysis because it was driven by SW engineers who were technically savvy but not economically and financially competent

/ Software Engineering9 Case Study: Automating a Law Office  Economic and Financial Planning (cont’d) Difficulty in estimating cost is that SW doesn’t necessarily get produced faster simply by adding more people to the project Difficulty in estimating cost is that SW doesn’t necessarily get produced faster simply by adding more people to the project No risk analysis was performed No risk analysis was performed No precautions were taken to control any known critical activities No precautions were taken to control any known critical activities When it was apparent that the estimates were flawed, nobody proposed a plan to correct When it was apparent that the estimates were flawed, nobody proposed a plan to correct Only day-by-day actions were undertakenOnly day-by-day actions were undertaken The lesson? Short-term decisions overwhelm long- term planning … this is a very common management mistake! The lesson? Short-term decisions overwhelm long- term planning … this is a very common management mistake!

/ Software Engineering10 Case Study: Automating a Law Office  Technical Planning and Management No analysis was performed to determine whether all of the product’s features were needed No analysis was performed to determine whether all of the product’s features were needed Anticipation of change principle was not considered in the design Anticipation of change principle was not considered in the design Strong pressure was applied to have code running as early as possible Strong pressure was applied to have code running as early as possible No precautions taken to minimize damages due to personnel turnover No precautions taken to minimize damages due to personnel turnover

/ Software Engineering11 Case Study: Automating a Law Office  Technical Planning and Management Designers were attracted by the most interesting features of the new product Designers were attracted by the most interesting features of the new product Sophisticated features for the automatic computation of invoices were designed, but no attention was paid to standard office operations, e.g., filing large number of documents. Sophisticated features for the automatic computation of invoices were designed, but no attention was paid to standard office operations, e.g., filing large number of documents. Supposedly the employees in the company knew they were making these classical SE mistakes, but nonetheless the mistakes were made. Supposedly the employees in the company knew they were making these classical SE mistakes, but nonetheless the mistakes were made.

/ Software Engineering12 Case Study: Automating a Law Office  Project Monitoring After six months, some technical and management mistakes became apparent After six months, some technical and management mistakes became apparent Lack of clear definition of product’s functionalityLack of clear definition of product’s functionality Some important features had been neglectedSome important features had been neglected Getting in touch with more potential users showed that not all the features were needed … since the architecture was not modular, this posed problemsGetting in touch with more potential users showed that not all the features were needed … since the architecture was not modular, this posed problems

/ Software Engineering13 Case Study: Automating a Law Office Project Monitoring (cont’d)Project Monitoring (cont’d) How did the SW Company attempt to fix these project problems?How did the SW Company attempt to fix these project problems? More effort put forth to try to fix the problemsMore effort put forth to try to fix the problems SW patches were made wildlySW patches were made wildly No systematic error and correction logs were kept in order to save timeNo systematic error and correction logs were kept in order to save time Communication among designers occurred almost exclusively orally in an attempt to save timeCommunication among designers occurred almost exclusively orally in an attempt to save time

/ Software Engineering14 Case Study: Automating a Law Office Project Monitoring (cont’d)Project Monitoring (cont’d) Manager’s Attitude? Since “we are almost done,” “we just need a little more financing and can accept almost any terms.”Manager’s Attitude? Since “we are almost done,” “we just need a little more financing and can accept almost any terms.” What could have been done?What could have been done? A critical and careful analysis of the mistakes that were done in the projectA critical and careful analysis of the mistakes that were done in the project A replanning and/or redesign of the project as a wholeA replanning and/or redesign of the project as a whole

/ Software Engineering15 Case Study: Automating a Law Office  Initial Delivery It was decided that income could be generated by delivering “first versions” of the product or as soon as new contracts could be signed It was decided that income could be generated by delivering “first versions” of the product or as soon as new contracts could be signed In return, the customer might be a good reference resulting in increased salesIn return, the customer might be a good reference resulting in increased sales This backfired because many of the early customers had problems with the product since the product was never clearly defined This backfired because many of the early customers had problems with the product since the product was never clearly defined This caused internal problems because it was not clear whether the activity fell under product development or user assistanceThis caused internal problems because it was not clear whether the activity fell under product development or user assistance

/ Software Engineering16 Case Study: Automating a Law Office  Partial Recovery Eventually it was realized the managing of the project was leading to disaster. Steps were made to prevent disaster: Eventually it was realized the managing of the project was leading to disaster. Steps were made to prevent disaster: Responsibilities were clearly defined as to who was responsible for whatResponsibilities were clearly defined as to who was responsible for what Effort made to achieve a clear picture of the state of the product and what was required to fix itEffort made to achieve a clear picture of the state of the product and what was required to fix it The above was done at the expense of slowing down the project, increasing costs, and reducing sales The above was done at the expense of slowing down the project, increasing costs, and reducing sales

/ Software Engineering17 Case Study: Automating a Law Office  Partial Recovery (cont’d) How did things go? How did things go? People had to resist an initial feeling that the restructuring of the project was impeding “real” progress.People had to resist an initial feeling that the restructuring of the project was impeding “real” progress. Over time, improvements became apparentOver time, improvements became apparent Eventually, the company produced a product with full documentationEventually, the company produced a product with full documentation The company shipped the product and earned money although it was far less than initially expected due to the delay of the introduction of the productThe company shipped the product and earned money although it was far less than initially expected due to the delay of the introduction of the product

/ Software Engineering18 Case Study: Automating a Law Office  Lessons Learned Good intuition and technical skills are not enough to guarantee success Good intuition and technical skills are not enough to guarantee success Marketing analysis and process organization must be planned carefully before committing to the project Marketing analysis and process organization must be planned carefully before committing to the project Changes in schedules and project sourcing after serious problems are encountered can be difficult and expensive, if not impossible to implement Changes in schedules and project sourcing after serious problems are encountered can be difficult and expensive, if not impossible to implement

/ Software Engineering19 Case Study Incremental Delivery

/ Software Engineering20 Case Study: Incremental Delivery  A computer manufacturer was building a new computer HWENG working on HW D&D HWENG working on HW D&D SWENG working on SW D&D SWENG working on SW D&D The company decided to use Pascal for all its software developmentThe company decided to use Pascal for all its software development The company was going to need to develop a Pascal compiler with extensions to overcome weaknesses of existing Pascal compilersThe company was going to need to develop a Pascal compiler with extensions to overcome weaknesses of existing Pascal compilers

/ Software Engineering21 Case Study: Incremental Delivery  The company’s language group took a poll of the software engineers to see what extensions would be needed. The Result? Every language feature ever discovered was proposed by at least one person as absolutely necessary for the product! The Result? Every language feature ever discovered was proposed by at least one person as absolutely necessary for the product!

/ Software Engineering22 Case Study: Incremental Delivery  The poll results made it clear that the compiler, with all extensions, could not be delivered by the time other groups were ready to start coding.

/ Software Engineering23 Case Study: Incremental Delivery  The language group decided to use the principle of incrementality The group ranked the needed extensions The group ranked the needed extensions The group scheduled three releases of the compiler: standard Pascal, Pascal with minimal extensions, Pascal with all other extensions The group scheduled three releases of the compiler: standard Pascal, Pascal with minimal extensions, Pascal with all other extensions

/ Software Engineering24 Case Study: Incremental Delivery  Extensions The extensions were first prototyped by implementing a preprocessor for an existing Pascal compiler The extensions were first prototyped by implementing a preprocessor for an existing Pascal compiler Was slow and inefficient, but allowed the engineers to use the extensions and provide feedback to the language group as to the usability of the extensionsWas slow and inefficient, but allowed the engineers to use the extensions and provide feedback to the language group as to the usability of the extensions

/ Software Engineering25 Case Study: Incremental Delivery  Hardware Arrives By this time, a Pascal compiler with minimal extensions is available By this time, a Pascal compiler with minimal extensions is available Allowed engineers to start implementing their software (OS & database) using the compilerAllowed engineers to start implementing their software (OS & database) using the compiler Many people had earlier versions of their software already developed and tested from the prototype compiler … a simple recompile was all that was necessaryMany people had earlier versions of their software already developed and tested from the prototype compiler … a simple recompile was all that was necessary

/ Software Engineering26 Case Study: Incremental Delivery  After Six Months … The language group took another poll of the software engineers and found that NO other extensions were needed! The language group took another poll of the software engineers and found that NO other extensions were needed! However, since the original list didn’t include efficiency-related extensions, a new extension was added to aid in the efficiency (logical operations on integers) However, since the original list didn’t include efficiency-related extensions, a new extension was added to aid in the efficiency (logical operations on integers)

/ Software Engineering27 Case Study: Incremental Delivery  Over Time … Several other compiler releases occurred Several other compiler releases occurred More sophisticated level of code optimizationMore sophisticated level of code optimization More extensions addedMore extensions added  Incremental Delivery allowed users to have access to useful functionality and allowed the compiler developers to enhance the compiler on the basis of explicit and definitive user feedback!

/ Software Engineering28 Case Study: Incremental Delivery  Lessons Learned Prototyping is possible Prototyping is possible A throw-away prototype may be used by clients to start on their project while they await the final product A throw-away prototype may be used by clients to start on their project while they await the final product A throw-away prototype enables parallel development by clients and developers A throw-away prototype enables parallel development by clients and developers A throw-away prototype may be used to prune an initial set of requirements on the basis of actual usage and need for features. A throw-away prototype may be used to prune an initial set of requirements on the basis of actual usage and need for features.

/ Software Engineering29 Organizing The Software Process  Organizing the software process is a critical activity involving everything from the management of people to the management of all products Involves definition of appropriate methods and their combination within methodologies Involves definition of appropriate methods and their combination within methodologies

/ Software Engineering30 Methods and Methodologies  According to Webster’s New World Dictionary (1977): Method – A way of doing anything, especially in an orderly way Method – A way of doing anything, especially in an orderly way Methodology – A system of methods Methodology – A system of methods

/ Software Engineering31 Appeal of Methodologies  Methodologies that guide programmers in their work in all phases of development: Increase people’s confidence in what they are doing Increase people’s confidence in what they are doing Teaches inexperience people how to solve problems in a systematic way Teaches inexperience people how to solve problems in a systematic way Encourages a uniform, standard approach to problem solving Encourages a uniform, standard approach to problem solving

/ Software Engineering32 Structured Analysis / Structured Design (SA/SD)  In Requirements an Analysis phase, SA/SD suggests three major conceptual tools for constructing system models Data Flow Diagrams (DFDs) Data Flow Diagrams (DFDs) Used for specifying the functional requirements of the systemUsed for specifying the functional requirements of the system Data Dictionaries (DDs) Data Dictionaries (DDs) Centralized definitionsCentralized definitions Structured English (SE) Structured English (SE) To describe transformation of terminal bubblesTo describe transformation of terminal bubbles  SA/SD is Function-Oriented and its modules represent functional abstractions

/ Software Engineering33 Data Flow Diagram  Used for specifying the functional requirements of the system Function represented by bubbles Function represented by bubbles Data flows represented by arrows Data flows represented by arrows direction is with respect to the range of the function represented by the bubbledirection is with respect to the range of the function represented by the bubble Data stores are represented by open boxes Data stores are represented by open boxes two horizontal lines with data store name enclosedtwo horizontal lines with data store name enclosed Input/Output represented by special I/O boxes Input/Output represented by special I/O boxes Describe data acquisition and generation during human- computer interactionDescribe data acquisition and generation during human- computer interaction

/ Software Engineering34 Data Flow Diagram

/ Software Engineering35 Analysis of office work

/ Software Engineering36 Automated Portion of Office Work

/ Software Engineering37 From Analysis and Requirements to Design  The preceding DFDs specify the functional requirements of the office work  The “Design”, i.e., the decomposition of the system into modules, is based directly on the DFDs and is documented using Structured Diagrams (SDs)

/ Software Engineering38 Structured Diagrams  A Structured Diagram is a Directed Acyclic Graph (DAG)-like structure Nodes represent modules Nodes represent modules Each module represents a functional abstraction to be implemented later by a subprogram Each module represents a functional abstraction to be implemented later by a subprogram  The method to transform DFDs into SDs should aim to: minimize coupling minimize coupling maximize cohesion maximize cohesion

/ Software Engineering39 Structured Diagrams  SDs may be decorated with additional notations Show parameter flow between modules by arrow and parameter name Show parameter flow between modules by arrow and parameter name Show control patterns governing the calls of subordinate modules Show control patterns governing the calls of subordinate modules Diamond represents selection between modules to callDiamond represents selection between modules to call Curved arrow represents loops of calls to a moduleCurved arrow represents loops of calls to a module

/ Software Engineering40 Structured Diagrams   A Directed Acyclic Graph of functional modules Direction of arrow is implicitly downward

/ Software Engineering41 Decorated Structured Diagram M 1 abstract input M 2 transformation M 3 abstract output

/ Software Engineering42 Decorated Structured Diagram SD for the “Automated Portion" DFD LEGEND T = Type of Letter Q = Quantity AE = Addressee L = Letter Form A = Address