Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 April 7, 2015 Lecture 2-1 Emily.

Similar presentations


Presentation on theme: "Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 April 7, 2015 Lecture 2-1 Emily."— Presentation transcript:

1 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 April 7, 2015 Lecture 2-1 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

2 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 2 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

3 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 3 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

4 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 4 Why does a report say that upgrading the state’s payroll system may not be possible? A.The task is too complex and the responsible agency does not have the right tools. B.State gov’t is less efficient than the private sector. C.State rules require inadequate programming languages to be used. D.The contractor, SAP Public Services, has a flawed management structure. E.No one on the software team took Informatics 43.

5 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 5 Why does a report say that upgrading the state’s payroll system may not be possible? A.The task is too complex and the responsible agency does not have the right tools. B.State gov’t is less efficient than the private sector. C.State rules require inadequate programming languages to be used. D.The contractor, SAP Public Services, has a flawed management structure. E.No one on the software team took Informatics 43.

6 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 6 What is the real problem? The task is incredibly complex: 160 state departments, 40+ medical/dental plans, $100 millions in costs. Software must conform to the reality of payroll contracts and laws. Progress is hard to measure. Part of the goal is to update systems in place since the 1970s.

7 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 7 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

8 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 8 Reminder: Fundamental Principles Rigor and formality Separation of concerns – Modularity – Abstraction Anticipation of change Generality Incrementality

9 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 9 Reminder: Fundamental Principles Rigor and formality Separation of concerns – Modularity – Abstraction Anticipation of change Generality Incrementality These principles apply to all aspects of software engineering

10 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 10 Reminder: Top Software Failure Causes Lack of user input/involvement Incomplete requirements and specifications Changing requirements and specifications Lack of discipline in development processes Lack of methodical usage of metrics Lack of resources

11 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 11 Reminder: Top Software Failure Causes Lack of user input/involvement Incomplete requirements and specifications Changing requirements and specifications Lack of discipline in development processes Lack of methodical usage of metrics Lack of resources Lack of rigor/formality

12 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 12 Reminder: Top Software Failure Causes Lack of user input/involvement Incomplete requirements and specifications Changing requirements and specifications Lack of discipline in development processes Lack of methodical usage of metrics Lack of resources Requirements shortfalls

13 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 13 Why Requirements? “[We] have grown to care about requirements because we have seen more projects stumble or fail as a result of poor requirements than for any other reason” – (Kulak and Guiney, in “Use Cases: Requirements in Context”) Studies show that many of the key contributors to project failures originate or relate to requirements – (The Standish Group CHAOS reports)

14 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 14 Some stats… From those CHAOS reports 31% of projects cancelled before they are even completed – Many others not delivered or not used (“shelfware”) even if completed – Many billions wasted per year on cancelled, unused or unusable projects – 52.7% of projects were more than 189% over budget when delivered Requirements defects are expensive – They represent more than 70% of rework costs – Rework consumes about 30-50% of total project budget – Lack of user input/user involvement listed as most frequent problem

15 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 15 More Stats: Software Life Cycle Costs

16 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 16 More Stats: Cost of Change Progressively Higher

17 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 17 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

18 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 18 Waterfall Operations mode Retirement Req analysis phase Verify Req specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance

19 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 19 Waterfall Operations mode Retirement Req analysis phase Verify Req specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance

20 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 20 The RUP Model Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction Workflows group activities logically In an iteration, you walk through all workflows

21 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 21 Requirements Phase Terminology – Requirements analysis/engineering Activity of discovering/observing/gathering customer’s needs – Requirements specification Activity of describing/documenting customer’s needs Note: requirements address what a customer needs, not what a customer wants – A customer often does not know what they want, let alone what they actually need… – Long and arduous, often educational, process And things change “under our feet” during the requirements process...

22 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 22 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

23 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 23 Techniques for Requirements Analysis Interview customer Create use cases/scenarios Prototype solutions Observe customer Identify important objects/roles/functions Perform research Construct glossaries Question yourself

24 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 24 Today’s Lecture California software fiascos Why requirements? Requirements engineering – Requirements phase – Requirements analysis – Requirements specification (documentation)

25 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 25 Requirements Specification Serves as the fundamental reference point between customer and software producer Defines capabilities to be provided without saying how they should be provided – Defines the “what” – Does not define the “how” Defines environmental requirements on the software to guide the implementers – Platforms, implementation language(s), … Defines constraints on the software – Standards, hardware limitations, … Defines software qualities – maintainability, usability, verifiability

26 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 26 Non-Functional Requirement Types

27 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 27 Why Spend a Lot of Time? A requirements specification is the source for all future steps in the software life cycle – Lays the basis for a mutual understanding Consumer (what they get) Software producer (what they build) – Identifies fundamental assumptions – Potential basis for future contracts Better get it right – Upon delivery, some software is actually rejected by customers Changes are cheap – Better make them now rather than later

28 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 28 Users of a Requirements Document

29 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 29 Document Structure Introduction Executive summary Application context Environmental requirements Functional requirements Software qualities Other requirements Time schedule Potential risks Assumptions Future changes Glossary Reference documents

30 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 30 Introduction What is this document about? Who was it created for? Who created it? Outline

31 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 31 Executive Summary Short, succinct, concise, to-the-point, description – Usually no more than one page Identifies main goals Identifies key features Identifies key risks/obstacles

32 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 32 Application Context Describes the situation in which the software will be used – Home, office, inside, outside, … Identifies all things that the system affects – Objects, processes, other software, hardware, and people

33 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 33 Environmental Requirements Platforms – Hardware Operating systems, types of machines, memory size, hard disk space – Software Is it a Web app? Mobile app? Is it open source? Linux? Apache? PHP/MySQL? Is it enterprise software?.Net? Enterprise Java, J2EE? Programming language(s) Standards

34 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 34 Functional Requirements Identifies all concepts, functions, features, and information that the system provides to its users Provides an abstraction for each of those, characterizing the properties and functions that are relevant to the user – What is the system supposed to do? – What information does the system need? – What is supposed to happen when something goes wrong? An approximate user interface is part of functional requirements

35 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 35 Desired Software “ilities” (Qualities) Correctness Reliability Efficiency Integrity Usability Maintainability Flexibility Portability Reusability Interoperability Robustness Security This section helps developers assess tradeoffs in the system’s implementation

36 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 36 Other Requirements What about cost? What about documentation? What about manuals? What about tutorials? What about on-the-job training? What about requirements that do not fit in any of the previous categories?

37 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 37 Time Schedule By when should all of this be done? – Initial delivery date – Acceptance period – Final delivery date What are some important milestones to be reached? – Architectural design completed – Module design completed – Implementation completed – Testing completed

38 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 38 Potential Risks Risks: “future uncertain events with a probability of occurrence and a potential for loss” (softwaretestinghelp.com) Any project faces risks – new methodology – requirements new to the group – special skills and resource shortage – aggressive schedule – tight funding It is important to identify those risks up-front so the customer and you (!) are aware of them One of the requirements could be to explicitly address the risks

39 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 39 Assumptions Factors that are believed to be true during the life cycle of the project If changed, they may affect the project outcomes negatively Examples – end-user characteristics – known technology infrastructure – resource availability – funding availability

40 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 40 Future Changes Any project faces changes over time – It is important to identify those changes up-front so the customer and you (!) are aware of them – These changes could simply pertain to potential future enhancements to the product One of the requirements could be to build the product such that it can accommodate future changes Note: structure the requirements document in such a way that it easily absorbs changes – Define concepts once – Partition separate concerns – Avoid redundancy – …

41 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 41 Glossary Precise definitions of terms used throughout the requirements document

42 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 42 Reference Documents Pointers to existing processes and tools used within an organization Pointers to other, existing software that provides similar functionality Pointers to literature

43 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 43 Observations Document is structured to address the fundamental principles – Rigor – Separation of concerns Modularity Abstraction – Anticipation of change – Generality – Incrementality Not every project requires every section of the document

44 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 44 Specification Methods Natural language Data flow diagrams – Office automation Finite state machines – Telephone systems – Coin-operated machines Petri nets – Production plants Formulas Objects (in object-oriented methods) Use cases (in UML)

45 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 45 Verification Is the requirements specification complete? Is each of the requirements understandable? Is each of the requirements unambiguous? Are any of the requirements in conflict? Can each of the requirements be verified? Are are all terms and concepts defined? Is the requirements specification unbiased?

46 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 46 Acceptance Test Plan Accompanies a requirements specification Specifies, in an operational way, consistency between the requirements specification and the system that will be delivered Binds a customer to accept the delivered system if it passes all the tests Covers all aspects of the requirements specification May include: – some specific test cases – the number of test cases that must pass

47 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 47 V-Model of Development and Testing Develop Acceptance Tests Acceptance Test ReviewRequirements Review Develop RequirementsExecute System TestsDevelop Integration Tests Integration Tests ReviewDesign Review DesignExecute Integration TestsDevelop Unit Tests Unit Tests ReviewCode Review CodeExecute Unit Tests

48 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 48 Example: Concert ticket purchasing system

49 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 49 Quiz – Thursday, April 9 Closed book, no notes, calculators, phones… Covers all readings and lectures through Tuesday 4/7 No scantrons, no blue books How to study: – Different from other CS courses Software engineering as much about people as it is about software Shifts away from technical thinking of a CS student Many ways to analyze topics, especially definitions, links between different concepts – Attend lecture, take notes, spend time going over them carefully, analyzing, discussing – Do readings carefully, take notes, analyze, and discuss – Focus more on high-level understanding of main points than details of concepts

50 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 50 Quiz – Thursday, April 9 - Topics Memorize one definition of software engineering (word for word) 3 essential ingredients of software engineering Know and understand the 3 perspectives on software engineering we talked about Know and understand the “Inf43 Recurring, Fundamental Principles” of software engineering, and the overall ideas behind the other principles No Silver Bullet – Know and understand the essential difficulties of software engineering – Know and understand the “promising attacks” on the essential difficulties Know and understand software failure causes and how they relate to requirements issues Textbook: High-level understanding of the readings

51 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 51 Quiz – Thursday, April 9 - Topics The quiz will focus on these topics, but I reserve the right to ask about any other lecture/reading information as well

52 Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 52 Other Announcements Discussion tomorrow


Download ppt "Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 April 7, 2015 Lecture 2-1 Emily."

Similar presentations


Ads by Google