630 likes | 662 Views
CS 4312 Software Engineering Requirements. Luiz Marcio Cysneiros Fall 2006. Textbook. Requirements engineering : processes and techniques Gerald Kotonya and Ian Sommerville. Publication info: Chichester ; New York : J. Wiley & Sons, c1998. ISBN: 0471972088. Classes Tuesday/Thursday
E N D
CS 4312 Software Engineering Requirements Luiz Marcio Cysneiros Fall 2006
Textbook Requirements engineering : processes and techniques Gerald Kotonya and Ian Sommerville. Publication info: Chichester ; New York : J. Wiley & Sons, c1998. ISBN: 0471972088
Classes Tuesday/Thursday • Time 4:00 PM – 5:30 PM • Room CSB 129 • Mid-term Exam TBA • Final Exam TBA
Scoring Assignments 10 points each (2) Mid-term exam 35 points Final exam 45 points
Assignments Policy Due dates To be specified • Since Assignments are in groups of no less than 3 and no more than 4, late assignments won’t be accepted
Final and Round up • Final = Everything goes on it • No Round up • Ex: 49.8 = E
Directions email cysneiro@yorku.ca office TEL Building 3051 Office Hours – Tuesday and Wednesdays and 11:00 A.M. - Noon
The Course at a Glance • Introduction • Elicitation • Modelling • Analysis • Management
Requirement: (Macmillan English Dictionary) • something that is needed in order for something to happen: • Check the car’s fuel requirements. • Good insulation can cut the energy requirements of a house by more than half. • something that a rule, law, contract, etc. states that you must do: • Do these goods comply with our safety requirements? • requirement of: It is usually a requirement of banks and investors that a new company is formed to effect the management buy-out. • requirement for: Applicants must satisfy the requirements for admission to the university.
System: (Macmillan English Dictionary) System: a set of interrelated components, or sub-systems, with a particular purpose. 1) there are 2 components at least, 2) each of which is related (directly or indirectly) to every other component and, 3) no sub set of which is unrelated to any other subset. Ackoff, Russell L., (1971). Towards a System of Systems Concepts. Management science, 17(11), 661-71. • [count] a set of connected things that work together for a particular purpose: • a central heating system I decided to install a security system to prevent any break-ins. • the capital’s inadequate public transportation system
Context • Software crises continues • Denver Airport • More than 50 millionUS $ due to errors in the baggage control system • London Ambulance Service • The system was deactivated one day after its deployment due to many errors. Most of them related to non-functional requirements such as: Safety, Reliability and Usability
High costs Unhappy Clients Software Crises • Flaws in the Production Process
Europe • Questionnaire sent to 3.805 companies showed: • For the Analysts Major problems are: • Requirements specification (53%) • Requirements Management (43%) • Documentation (36%) • Test (35%)
USA • Requirements Management (Also know as Requirements Engineering – RE) is seen as one of the most important problems to be overcome in order for companies to achieve level 2 in the SEI’s (Software Engineering Institute – Carnegie Mellon) CMM (Capability Maturity Model) • SEI has recently released a package aiming to transfer technology in RE to facilitate companies’ certification
“26% of the Software projects were considered a success.” Standish Group, CHAOS Report, 2000 Good News …
Meaning that 74% have FAILED! Standish Group, CHAOS Report, 2000 Bad News…
Tom De Marco “56% of the errors in a software can be traced back to the requirements phase” • The later an error is detected the more expensive is to fix it. • Many errors are done during Requirements elicitation and analysis
Many errors in requirements can (and should) be detected early in the software development life cycle. • Typical errors include: Use of incorrect facts, omission, inconsistency and ambiguity. • Errors in requirements specification are one of the major concerns for software industry.
200 x Cost to Repair Analysis Design Code Unit Test Integration Test Maintenance Stage when the Error is found
Definition “ Requirements engineering is a sub-area of Software Engineering that studies the process of defining the requirements for a software-to-be. It is a new area started in 1993 when the 1st International Symposium on RE was organized. This Year we had the 13th edition of this congress. The process for defining requirements is an interface between the desires and the needs of the clients and a future implementation of these requirements as a software.”
Another Definition • RE is: “The development and use of technology effective to elicit, specify and analyse requirements from stakeholders (clients/users) that shall be performed by a software system.”
Goals • Understand the needs and support the client’s desires. • Provide the Software Engineer with methods, techniques and tools to help on the process of understanding and registering what a software must do.
Fred Brook’s • Brook adds: “The most difficult part of building a software system is to decide, precisely, what must be built. No other part of the work can undermine so badly the resulting software if not done correctly. No other part is so difficult to fix later.”
Brief History • Requriements Engineering as a discipline: 1993 • RE (93, 95, 97, 99. 01) • ICRE (94, 96, 98, 00) • WER (98, 99, 00, 01) • Requirements Engineering Journal • Past : System Analysis • Today : A network of processes • Pressure from the market for quality(CMM e ISO) • Books (Sommerville, Jackson, Loucopoulos, …) • Tools (Doors, Requisite-Pro, Caliber-RM)
Books • Requirements Engineering: Processes and Techniques by Ian Sommerville, Gerald Kotonya (September 1998) John Wiley & Son Ltd; ISBN: 0471972088 Amazon.com Sales Rank: 188,502 • System Requirements Engineering by Pericles Loucopoulos, Vassilios Karakostas (June 1995) McGraw Hill Text; ISBN: 0077078438 Amazon.com Sales Rank: 1,067,908 • Software Requirements & Specifications : A Lexicon of Practice, Principles and Prejudices by Michael Jackson (July 1995) Addison-Wesley Pub Co; ISBN: 0201877120 Amazon.com Sales Rank: 38,607
More Books • Exploring Requirements : Quality Before Designby Donald C. Gause and Gerald M. Weinberg (September 1989) Dorset House; ISBN: 0932633137 Amazon.com Sales Rank: 13,641 • Mastering the Requirements Process by Suzanne Robertson, James Robertson (May 4, 2000) Addison-Wesley Pub Co; ISBN: 0201360462 ; Dimensions (in inches): 0.93 x 9.50 x 7.66 Amazon.com Sales Rank: 7,392 • Managing Software Requirements: A Unified Approach (The Addison-Wesley Object Technology Series)by Dean Leffingwell, Don Widrig (November 1999),Addison-Wesley Pub Co; ISBN: 0201615932 Dimensions (in Inches): 1.13 x 9.46 x 7.76 Amazon.com Sales Rank: 14,447
Links for Information on RE • http://www.telelogic.com/products/doorsers • http://www.starbase.com/ • http://www.rational.com/products/reqpro/index.jtmpl • http://www.cs.ucl.ac.uk/research/renoir/ • http://www.shu.ac.uk/tfre/ • http://www.re01.org http://www.re05.org • http://link.springer.de/link/service/journals/00766/index.htm
Factors influencing requirements • Personality and status of stakeholders • The personal goals of individuals within an organisation • The degree of political influence of stakeholders within an organisation
Process improvement • Process improvement is concerned with modifying processes in order to meet some improvement objectives • Improvement objectives • Quality improvement • Schedule reduction • Resource reduction
Planning process improvement • What are the problems with current processes? • What are the improvement goals? • How can process improvement be introduced to achieve these goals? • How should process improvements be controlled and managed?
RE process problems • Lack of stakeholder involvement • Business needs not considered • Lack of requirements management • Lack of defined responsibilities • Stakeholder communication problems • Over-long schedules and poor quality requirements documents • Many confuse it with Design • Pressure from the Market • “It has to be ready next week” • Clients keep adding and changing things
Process maturity • Process maturity can be thought of as the extent that an organization has defined its processes, actively controls these processes and provides systematic human and computer-based support for them. • The SEI’s Capability Maturity Model is a framework for assessing software process maturity in development organizations
RE process maturity levels • Initial level • No defined RE process. Suffer from requirements problems such as requirements volatility, unsatisfied stakeholders and high rework costs. Dependent on individual skills and experience. • Repeatable level • Defined standards for requirements documents and policies and procedures for requirements management. • Defined level • Defined RE process based on good practices and techniques. Active process improvement process in place.
Maturity levels • Managed level • Detailed measurements of both process and product quality are collected and used to control the process. • Optimizing level • The organisation has a continuous process improvement strategy, based on objective measurements in place.
Good practice for RE process improvement • RE processes can be improved by the systematic introduction of good requirements engineering practice • Each improvement cycle identifies good practice guidelines and works to introduce them in an organisation
Software Development System Establish goals Manage the SDS MANAGEMENT Produce software Build a team Create systems PEOPLE give feedback Support creative work METHODS Implement policies Keep the state of the art organize systems INFORMATION support methods process information TOOLS Guarantee policies are followed reuse information Measure the process record software
Most Common Scenario • Structured Analisys • Structured Project • Essential Analysis • Entity-Relationship Model • Objects • CASE • Automatic Genaration of Applications
Abstraction X Formalism Abstract Very High Level Ideal Conventional Concrete/Abstract High Level Low Level Goal MachineLevel Concrete Talk Specification Code Informal Linguistic Level Formal
Why Requirements Engineering? Von Neumann: “There is no sense in being precise when you don’t even know what you are talking about”
Problems • Management Support • Availability of Processes • Integration of Platforms • Education vs Ignorance • Cost
The Context of RE • Information System • Engineering Systems • Organizations Producing Software • Models
So, What are Requirements? Clients Users Needs Limitations Impossibilities Technological Infra-Structure
Types of Requirements • Customized Systems • Built inside the organization (in house) • Built by third parties • General Products • Production and selection • Specific Products • Production and selection