SOFTWARE ENGINEERING REQUIREMENTS ANALYSIS AND SPECIFICATION. Saulius Ragaišis.

Size: px
Start display at page:

Download "SOFTWARE ENGINEERING REQUIREMENTS ANALYSIS AND SPECIFICATION. Saulius Ragaišis."

Transcription

1 SOFTWARE ENGINEERING REQUIREMENTS ANALYSIS AND SPECIFICATION Saulius Ragaišis

2 CSC2008 SE Requirements Specifications Learning Objectives: Apply key elements and common methods for elicitation and analysis to produce a set of software requirements for a mediumsized software system. Discuss the challenges of maintaining legacy software. Use a common, non-formal method to model and specify (in the form of a requirements specification document) the requirements for a medium-size software system. Conduct a review of a software requirements document using best practices to determine the quality of the document. Translate into natural language a software requirements specification (e.g., a software component contract) written in a formal specification language.

3 SYSTEM ENGINEERING

4 Definition A computer-based system is a set or arrangement of elements that are organized to accomplish some predefined goal by processing information.

5 System elements Software Hardware People Procedures Database Documentation

6 System modeling Define the processes that serve the needs of the view under consideration. Represent behavior of the processes and the assumptions on which the behavior is based. Explicitly define both exogenous and endogenous input to the model. Represent all linkages (including output) that will enable the engineer to better understand the view.

7 Restraining factors Assumptions Simplifications Limitations Constraints Preferences

8 Business process engineering A goal of BPE is to define architectures that will enable a business to use information effectively. The architectures must be analyzed and designed within the context of business objectives and goals: Data architecture Applications architecture Technology infrastructure

9 Product engineering The goal of product engineering is to translate the customer s desire for a set of defined capabilities into a working product. To achieve this goal product engineering should derive: architecture encompasses 4 distinct system components: software, hardware, data (and databases), and people; infrastructure is established and includes the technology required to tie the components together and the information (e.g., documents) that is used to support the components.

10 Interesting reading Cathleen Shamieh Systems Engineering For Dummies, IBM Limited Edition Wiley Publishing, Inc., available for download

11 SOFTWARE REQUIREMENTS ENGINEERING

12 What is it? Requirements engineering helps software engineers to better understand the problem they will work to solve. It encompasses the set of tasks that lead to an understanding of: what the business impact of the software will be, what the customer wants, and how end-users will interact with the software.

13 What are the steps? Inception - a task that defines the scope and nature of the problem to be solved Elicitation - a task that helps the customer to define what is required Elaboration - where basic requirements are refined and modified Negotiation - what are the priorities, what is essential, when it is required Specification Validation Management

14 What is the work product? The intent of the requirements engineering process is to provide all parties with a written understanding of the problem. This can be achieved though a number of work products: user scenarios, functions and features lists, analysis models, or specification.

15 Initiating RE process Identifying the stakeholders Recognizing multiple viewpoints Working towards collaboration Asking the first questions

16 Requirements elicitation Standish Group listed Lack of User Input as most common factor of challenged projects. Requirements Elicitation is the process of discovering the requirements for a system by communication with customers, system users and other stakeholders. Development teams have to take the initiative.

17 Difficulties in requirements elicitation Problems of scope. Problems of understanding. Problems of volatility.

18 Challenges of requirements elicitation Yes, But syndrome Undiscovered Ruins syndrome User and Developer syndrome The sins of your predecessors syndrome

19 Yes, But syndrome First time users see the system the first reaction is either, wow this is so cool or Yes, but, hm, now that I see it, what about this? Wouldn t it be nice? Users reaction is simply human nature. Need to employ techniques that get the yes, buts out early. Anticipate that there will be yes, buts and add time and resources to plan for feedback. Tends to be user interface centric, these tend to be the touch points of the system by the users.

20 Undiscovered Ruins syndrome Teams struggle with determining when they are done with requirements elicitation. Is done when all the requirements are elicited or have they found at least enough? Like asking an archeologist how many undiscovered ruins are there? First scope the requirements elicitation effort by defining the problem or problems that are to be solved with the system. Employ techniques that help find some of those ruins and have the stakeholders buy-into the requirements.

21 User and the Developer syndrome Characteristic Users do not know what they want, or they know what they want but cannot articulate it. Users think they know what they want until developers give them what they said they wanted. Analysts think they understand user problems better than users do. Everybody believes everybody else is politically motivated. Response Recognize and appreciate the user as domain experts; try different techniques. Provide alternative elicitation techniques earlier; storyboard, role playing, prototypes, and so on. Put the analyst in the users place. Try role playing for an hour or a day. Yes, its part of human nature, so lets get on with the program.

22 The sins of your predecessors syndrome Like it or not your users (marketing) and developers remember what happened in the past. Quality programs that promised things would be different. The last project where requirements were vague and/or were delivered short of expectations. The team unilaterally cut important features out of the last release. Need to build trust, slowly. Do not over commit to features, schedule, or budget. Build success by delivering highest priority features early in the process.

23 Requirements elicitation guidelines Assess system feasibility Be sensitive to organizational and political considerations Identify and consult system stakeholders Record requirements sources Use business concerns to drive requirements elicitation Look for domain constraints Record requirements rationale Collect requirements from multiple viewpoints Prototype poorly understood requirements Use scenarios to elicit requirements Define operational processes Reuse requirements

24 Requirements elicitation techniques Interviewing and questionnaires Requirements workshops Braining storming and idea reduction Storyboards Use cases Role playing Prototyping

25 Interviewing Simple direct technique Context-free questions can help achieve bias-free interviews Then, it may be appropriate to search for undiscovered requirements by exploring solutions. Convergence on some common needs will initiate a requirements repository for use during the project. A questionnaire is no substitute for an interview.

26 Requirements workshop The requirements workshop is perhaps the most powerful technique for eliciting requirements. It gathers all key stakeholders together for a short but intensely focused period. The use of an outside facilitator experienced in requirements management can ensure the success of the workshop. Brainstorming is the most important part of the workshop.

27 Brainstorming Brainstorming involves both idea generation and idea reduction. The most creative, innovative ideas often result from combining, seemingly unrelated ideas. Various voting techniques may be used to prioritize the ideas created. Although live brainstorming is preferred, webbased brainstorming may be a viable alternative in some situations

28 Brainstorming (2) Do not allow criticism or debate. Let your imagination soar Generate as many ideas as possible Mutate and combine ideas Idea Reduction Pruning ideas that are not worthy of further discussion Grouping of similar ideas into one super topic Prioritize the remaining ideas

29 Storyboarding The purpose of storyboarding is to elicit early Yes, But reactions. Storyboards can be positive, active, or inactive. Storyboards identify the players, explain what happens to them, and describes how it happens. Make the storyboard sketchy, easy to modify, and unshippable. Storyboard early and often on every project with new or innovative content.

30 Use cases Use cases, like storyboards, identify the who, what, and how of system behavior. Use cases describe the interactions between a user and a system, focusing on what the system does for the user. The use case model describes the totality of the systems functional behavior. Early stages: After you have an overview of the use cases, perhaps only by a phrase apiece, expand 10% of them in detail. Weakness of use cases -- we miss the quality attributes.

31 Prototyping Prototyping is especially effective in addressing the Yes, But and the Undiscovered Ruins syndromes. A software requirements prototype is a partial implementation of a software system, built to help developers, users, and customers better understand system requirements. Prototype the fuzzy requirements: those that, although known or implied, are poorly defined and poorly understood.

32 Functional and non-functional requirements IEEE definitions: Functional requirement - a requirement that specifies a function that a system/software system or its component must be capable of performing. These are software requirements that define behavior of the system, that is, the fundamental process or transformation that software and hardware components of the system perform on inputs to produce outputs. Nonfunctional requirement - a software requirement that describes not what the software will do, but how the software will do it, for example, software performance requirements, software external interface requirements, software design constraints, and software quality attributes. Nonfunctional requirements are difficult to test; therefore, they are usually evaluated subjectively.

33 Other definitions Functional requirement (FR) defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs. FR may be calculations, technical details, data manipulation and processing and other specific functionality that define what a system is supposed to accomplish. Non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. Other terms for NFR are "constraints", "quality attributes", "quality goals", "quality of service requirements" and "non-behavioral requirements".

34 Uncertainty Principle in SE Uncertainty is inherent and inevitable in software development processes and products.

35 Causes of uncertainty in requirements Incomplete knowledge Imprecise understanding of needs Differing needs among users Changing needs

36 REQUIREMENTS ANALYSIS MODELING TECHNIQUES

37 Requirements analysis (RA) RA results in the specification of software s operational characteristics; indicates software s interface with other system elements; and establishes constraints that software must meet. RA provides the software designer with representation of information function, and behavior that can be translated to architectural, interface, and component level design. The analysis model and the requirements specification provide the developer and the customer with the means to asses quality once software is built.

38 Analysis rules of thumb The model should focus on requirements that are visible within the problem and business domain. The level of abstraction should be relatively high. Each element of the analysis model should add to an overall understanding of software requirements and provide insight into the information domain, function, and behavior of the system.

39 Analysis rules of thumb (2) Delay consideration of infrastructure and other non-functional models until design. Minimize coupling throughout the system. Be certain that the analysis model provides value to all stakeholders. Keep the model as simple as it can be.

40 Domain analysis

41 Analysis modeling approaches Structured analysis considers data and the processes that transform the data as separate entities. Object-oriented analysis focuses on the definition of classes and the manner in which they collaborate with one another to effect customer requirements.

42 Elements of the analysis model Scenario-based elements: use-cases - text, use-case diagrams, activity diagrams, swim lane diagrams. Class-based elements: class diagrams, analysis packages, CRC models, collaboration diagrams. Behavioral elements: state diagrams, sequence diagrams. Flow-oriented elements: data flow diagrams, control flow diagrams, processing narratives.

43 Data modeling concepts Data objects Data attributes Relationships Cardinality and modality

44 Flow-oriented modeling The level 0 data flow (context) diagram should depict the software/system as a single bubble. Primary input and output should be carefully noted. Refinement should begin by isolating candidate processes, data objects, and data stores to be represented at the next level. All arrows and bubbles should be labeled with meaningful names. Information flow continuity must be maintained from level to level. One bubble at a time should be refined.

45 Context DFD (example)

46 Level 1 DFD (example)

47 Other flow-oriented elements Control flow modeling Control specification (CSPEC) Process specification (PSPEC)

48 FORMAL SPECIFICATION TECHNIQUES

49 Formal methods Advantages Disadvantages

50 Definition A method is formal if it has a sound mathematical basis, typically given by a formal specification language. This basis provides a means of precisely defining notions like consistency and completeness, and more relevantly, specification, implementation and correctness. [The Encyclopedia of Software Engineering]

51 Mathematical Fundamentals Relations, Functions, Logical expressions, Quantifiers, Types, Sequences, Tuples, Propositional Logic, Sets, First-Order Logic, and etc.

52 Example: a block handler Block handler is a part of the file system. Files are composed of blocks. Files will be created and deleted. The system should maintain unused (free) blocks and keep track of blocks in use. When blocks of deleted file are released, they are added to a queue of blocks waiting to be added to the reservoir of unused blocks. State of block handler consists of the collection of free blocks, the collection of used blocks, and the queue of returned blocks.

53 Example: a block handler (2) Data invariant is: No block is marked as both used and unused. All the sets of blocks in the queue are subsets of the collection of used blocks. No elements of the queue contain the same block. The collection of used and unused blocks is the total collection of blocks. The collection of unused blocks have no duplicates. The collection of used blocks have no duplicates.

54 Example: a block handler (3) Operations: add() a collection of blocks to the end of the queue; remove() a collection of used blocks from the front of the queue and place them in the collection of unused blocks; check() whether the queue of blocks is empty.

55 Z specification language Z is a model-based specification framework. The idea is to construct an abstract model of the system to be built. It is high level, idealized, does not detail with implementation specifics. The model consists of descriptions of system state space and system operations. State space is the set of all states that the system could be. The state describes the value of each variable (and memory location).

56 Z schemas Z schema is a 2-dimensional graphical notation for describing state spaces and operations. A vertical-form schema is either of the form SchemaName Declarations Predicate 1 ; ; Predicaten or of the form SchemaName Declarations

57 Other Z notations Sets: S : P X S is declared as a set of X S. x S x is a member of S. x S x is not a member of S. S T S is a subset of T: Every member of S is also in T. S T The union of S and T: It contains every member of S or T or both. S T The intersection of S and T: It contains every member of both S and T. S \ T The difference of S and T: It contains every member of S except those also in T. Ø Empty set: It contains no members. {x} Singleton set: It contains just x. N The set of natural numbers 0, 1, 2, S: F X S is declared as a finite set of X S. max (S) The maximum of the nonempty set of numbers S. Functions: f:x Y f is declared as a partial injection from X to Y. dom f The domain of f: the set of values x for which f(x) is defined. ran f The range of f: the set of values taken by f(x) as x varies over the domain of f. f {x y} A function that agrees with f except that x is mapped to y. {x} f A function like f, except that x is removed from its domain. Logic: P Λ Q P Q θ S' = θ S P and Q: It is true if both P and Q are true. P implies Q: It is true if either Q is true or P is false. No components of schema S change in an operation.

58 Example using Z State of block handler and data invariant: BlockHandler used, free : P BLOCKS BlockQueue : seq P BLOCKS used free = Ø Λ used free = AllBlocks Λ i : dom BlockQueue BlockQueue i used Λ i, j : dom BlockQueue i j => BlockQueue i BlockQueue j = Ø

59 Example using Z: operations RemoveBlocks BlockHandler # BlockQueue >0, used' = used \ head BlockQueue Λ free' = free BlockQueue Λ BlockQueue ' = tail BlockQueue AddBlocks BlockHandler Ablocks? : BLOCKS Ablocks? used BlockQueue' = BlockQueue. Ablocks? Λ used' = used Λ free' = free

60 Object Constraint Language (OCL) OCL is a formal notation used in UML diagrams for more precise specification of their elements. OCL expressions are called constraints; implementation should ensure that constraints always remains true. Expressions involve operators on operating objects but their result is Boolean. The object self is the element of UML diagram in the context of which OCL expression is being evaluated.

61 Key OCL notations OCL notation x.y c >f() and, or, = <> p implies q Meaning Obtain the property y of object x. A property can be an attribute, the set of objects at the end of an association, the result of evaluating an operation, or other things depending on the type of UML diagram. If x is a Set, then y is applied to every element of x; the results are collected into a new Set. Apply the built-in OCL operation f to Collection c itself (as opposed to each of the objects in c). Examples of built-in operations are listed below. Logical and, logical or, equals, not-equals. True if either q is true or p is false. Sample of Operations Specific to Sets s1 >intersection(s2) s1 >union(s2) s1 >excluding(x) The set of those elements found in s1 and also in s2. The set of those elements found in either s1 or s2. The set s1 with object x omitted.

62 Key OCL notations (2) Sample of Operations on Collections (including Sets and Sequences) c >size() The number of elements in Collection c. c >isempty() True if c has no elements, false otherwise. c1 >includesall(c2) True if every element of c2 is found in c1. c1 >excludesall(c2) True if no element of c2 is found in c1. c >forall(elem boolexpr) True if boolexpr is true when applied to every element of c. As an element is being evaluated, it is bound to the variable elem, which can be used in boolexpr. This implements universal quantification, discussed earlier. c >forall(elem1, elem2 boolexpr) Same as above, except that boolexpr is evaluated for every possible pair of elements taken from c, including cases where the pair consists of the same element. c >isunique(elem expr) True if expr evaluates to a different value when applied to every element of c. Sample Operation Specific to Sequences seq >first() The object that is the first element in the sequence seq.

63 Example using OCL No block will be marked as both used and unused: context BlockHandler inv: (self.used -> intersection(self.free)) -> isempty() All the sets of blocks in the queue are subsets of the collection of used blocks: context BlockHandler inv: blockqueue -> forall(ablockset used -> includesall)ablockset)) No elements of the queue contain the same block context BlockHandler inv: blockqueue -> forall(blockset1, blockset2 blockset1 <> blockset2 implies blockset1.elements.number -> excludesall(blockset1.elements.number))

64 SOFTWARE COMPONENT CONTRACT

65 Contract Contract is a collection of assertions that describe precisely what each feature of the component does and does not do. Levels of contract: 1. Basic, or syntactic, contracts are required simply to make the system work. 2. Behavioral contracts improve the level of confidence in a sequential context. 3. Synchronization contracts improve the level of confidence in distributed or concurrency context. 4. Quality-of-service contracts quantify quality of service and is usually negotiable.

66 Basic contracts Interface definition language (IDL), as well as typed object-based or object-oriented languages, let specify: the operations a component can perform, the input and output parameters each component requires, and the possible exceptions that might be raised during operation.

67 Behavioral contracts First implemented under the name design by contract in the Eiffel language. Also they can be found in UML as the Object Constraint Language (OCL). The key assertions in the design by contract technique are of three types: invariants, preconditions, and postconditions.

68 Invariant Invariant is a constraint attached to type that must be held true for all instances of the type whenever an operation is not being performed on the instance. For example, an invariant might state that the value of some attribute is always greater than zero. In the case of component methods, the invariants can be attached to an interface to specify properties of the component objects that implement the interface.

69 Preconditions and postconditions Preconditions and postconditions are assertions attached to an operation of a type. Precondition expresses requirements that any call of the operation must satisfy if it is to be correct. Postcondition expresses properties that are ensured in return by the execution of the call. For example, an operation to delete a record from a collection might have a precondition requiring that a record with that key exists and a postcondition requiring that it no longer be an element of the collection.

70 Synchronization contracts The aim of such contract is to describe the dependencies between services provided by a component, such as sequence, parallelism, or shuffle. They could be expressed by attaching to components special elements called synchronization policies. Java provides a stripped-down version of synchronization through the keyword synchronized.

71 Quality-of-service contracts Common examples: maximum response delay; average response; quality of the result, expressed as precision; result throughput for multiobject answers such as data streams.

72 What we have learned? Main concepts of requirements analysis and specification Overview of structured analysis and formal methods Next (more detailed) Object-oriented analysis

73 QUESTIONS?

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman Chapter 28 Formal Methods 1 Problems with Conventional Specification contradictions ambiguities vagueness incompleteness mixed levels

More information

Chapter : Analysis Modeling

Chapter : Analysis Modeling Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints

More information

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) COURSE STRUCTURE Introduction to Business Analysis Module 1 Needs Assessment Module 2 Business Analysis Planning Module

More information

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona Introduction to Software Specifications and Data Flow Diagrams Neelam Gupta The University of Arizona Specification A broad term that means definition Used at different stages of software development for

More information

CSc 238 Human Computer Interface Design Chapter 5 Designing the Product: Framework and Refinement. ABOUT FACE The Essentials of Interaction Design

CSc 238 Human Computer Interface Design Chapter 5 Designing the Product: Framework and Refinement. ABOUT FACE The Essentials of Interaction Design BBuckley - 1 CSc 238 Human Computer Interface Design Chapter 5 Designing the Product: Framework and Refinement ABOUT FACE The Essentials of Interaction Design Cooper, Reimann, Cronin, and Noessel Requirements

More information

Chapter 4 Objectives

Chapter 4 Objectives Chapter 4 Objectives Eliciting requirements from the customers Modeling requirements Reviewing requirements to ensure their quality Documenting requirements for use by the design and test teams 4.1 The

More information

Lesson 06. Requirement Engineering Processes

Lesson 06. Requirement Engineering Processes Lesson 06 Requirement Engineering Processes W.C.Uduwela Department of Mathematics and Computer Science Objectives To describe the principal requirements engineering activities and their relationships To

More information

Lecture 6: Requirements Engineering

Lecture 6: Requirements Engineering Lecture 6: Requirements Engineering Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV

SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 1 SOFTWARE REQUIREMENTS ENGINEERING LECTURE # 7 TEAM SKILL 2: UNDERSTANDING USER AND STAKEHOLDER NEEDS REQUIREMENT ELICITATION TECHNIQUES-IV 12 th June, 2013 Instructor Information 2 Course Instructor:

More information

Software Engineering Unit 4- Requirement Analysis and Specification

Software Engineering Unit 4- Requirement Analysis and Specification Software Engineering Unit 4- Requirement Analysis and Specification Requirement Engineering The process to gather the software requirements from client, analyze and document them is known as requirement

More information

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Requirements. Requirements. Types of Requirement. What Is a Requirement? Beatrice Åkerblom beatrice@dsv.su.se Everything else in software development depends on the requirements. If you cannot get stable requirements you cannot get a predictable plan... What Is a Requirement?!

More information

06. Analysis Modeling

06. Analysis Modeling 06. Analysis Modeling Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 Overview of Analysis Modeling 1 Requirement Analysis 2 Analysis Modeling Approaches

More information

Lecture 9 Requirements Engineering II

Lecture 9 Requirements Engineering II Lecture 9 Requirements Engineering II Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 23, 2008 Announcements

More information

Lecture 8 Requirements Engineering

Lecture 8 Requirements Engineering Lecture 8 Requirements Engineering Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 18, 2008 Lecture Overview

More information

(Refer Slide Time: 4:00)

(Refer Slide Time: 4:00) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

More information

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements Journal of Software Engineering and Applications, 2016, 9, 112-127 Published Online April 2016 in SciRes. http://www.scirp.org/journal/jsea http://dx.doi.org/10.4236/jsea.2016.94010 The Analysis and Proposed

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Introduction software development projects are large and complex a phased approach to control it is necessary

More information

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam

CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam CS504-Softwere Engineering -1 Solved Objective Midterm Papers For Preparation of Midterm Exam MIDTERM EXAMINATION 2010 Question No: 1 ( Marks: 1 ) - Please choose one By following modern system engineering

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

Ch 4: Requirements Engineering. What are requirements?

Ch 4: Requirements Engineering. What are requirements? Ch 4: Engineering What are? Functional and non-functional The software document specification engineering processes elicitation and analysis validation management The descriptions of what the system should

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2015/2016 Eddy Groen Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

Basics : the Requirements Engineering Process

Basics : the Requirements Engineering Process SEG3101 (Fall 2010) Basics : the Requirements Engineering Process Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides prepared by Gunter Mussbacher with material from: Sommerville & Kotonya

More information

REQUIREMENTS. Michael Weintraub Spring, 2016

REQUIREMENTS. Michael Weintraub Spring, 2016 REQUIREMENTS Michael Weintraub Spring, 2016 Unit Objective Understand what requirements are Understand how to acquire, express, validate and manage requirements Definitions A thing demanded or obligatory

More information

The software lifecycle and its documents

The software lifecycle and its documents The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006 Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

CS485/540 Software Engineering Requirements Modeling (Ch. 6)

CS485/540 Software Engineering Requirements Modeling (Ch. 6) CS485/540 Software Engineering Requirements Modeling (Ch. 6) Cengiz Günay Dept. Math & CS, Emory University Fall 2013 Some slides courtesy of Joan Smith and Roger Pressman Günay (Emory) Requirements Modeling

More information

1. i. What are the 3 major components of a information system and show their relationship input output

1. i. What are the 3 major components of a information system and show their relationship input output Higher National Diploma in Information Technology First Year, Second semesterexamination-2011 IT2005: System Analysis and Design Answer Script No. of pages: 11 1. i. What are the 3 major components of

More information

Object-Oriented Analysis and Design Using UML (OO-226)

Object-Oriented Analysis and Design Using UML (OO-226) Object-Oriented Analysis and Design Using UML (OO-226) The Object-Oriented Analysis and Design Using UML course effectively combines instruction on the software development processes, objectoriented technologies,

More information

Z Notation. June 21, 2018

Z Notation. June 21, 2018 Z Notation June 21, 2018 1 Definitions There are many different ways to introduce an object in a Z specification: declarations, abbreviations, axiomatic definitions, and free types. Keep in mind that the

More information

Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון Object-Oriented Design גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Why Start with Design? Object-oriented thinking begins with objectoriented design It is the easiest way to see the problems of

More information

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships.

Ans 1-j)True, these diagrams show a set of classes, interfaces and collaborations and their relationships. Q 1) Attempt all the following questions: (a) Define the term cohesion in the context of object oriented design of systems? (b) Do you need to develop all the views of the system? Justify your answer?

More information

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches Introduction to Software Engineering ECSE-321 Unit 9 Architectural Design Approaches Requirement Elicitation Analysis (Software Product Design) Architectural Design Detailed Design Architectural Design

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language

More information

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs Administrivia Requirements and Specification CS169 Lecture 4 Wednesday: Groups and one-sentence idea(s) due at class One per group If you have a small group, still submit so that you will be kept together.

More information

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques VANCOUVER Chapter Study Group BABOK Chapter 9 Techniques May 27, 2015 David Ghotbi, CBAP Agenda Chapter 8 Review Pop Quiz Break Chapter 9 Review Pop Quiz Q & A 2 Chapter 9 Techniques Techniques: Alter

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

More information

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria http://www.engr.uvic.ca/~seng321/ https://courses1.csc.uvic.ca/courses/201/spring/seng/321

More information

Chapter 12. Systems Design. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Chapter 12. Systems Design. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 12 Systems Design McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives Describe the design phase in terms of your information building blocks. Identify

More information

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/m_uiiterativeenvironment_jc.jsp Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

More information

CMSC 435: Software Engineering Section 0201

CMSC 435: Software Engineering Section 0201 CMSC 435: Software Engineering Section 0201 Atif M. Memon (atif@cs.umd.edu) 4115 A.V.Williams building Phone: 301-405-3071 Office hours Tu.Th. (11:00am-1:00pm) Don t wait, don t hesitate, do communicate!!

More information

Human Error Taxonomy

Human Error Taxonomy Human Error Taxonomy The Human Error Taxonomy (HET) provides a structure for requirement errors made during the software development process. The HET can be employed during software inspection to help

More information

350 Index 2005 GOAL/QPC

350 Index 2005 GOAL/QPC Index abstract testing, 274 acceptance criteria, 270 acceptance tests, 270 activity diagrams, 113, 114, 174-175, 321 actor catalog, 144 actor description, 144 actor hierarchy, 148 actor map, 59, 114, 144,

More information

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa SE351a: Software Project & Process Management W4.2: Requirements Engineering 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa SE351 Roadmap Introduction to Software Project Management Project Management

More information

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis. SOFTWARE ENGINEERING UML FUNDAMENTALS Saulius Ragaišis saulius.ragaisis@mif.vu.lt Information source Slides are prepared on the basis of Bernd Oestereich, Developing Software with UML: Object- Oriented

More information

Requirements. CxOne Standard

Requirements. CxOne Standard Requirements CxOne Standard CxStand_Requirements.doc November 3, 2002 Advancing the Art and Science of Commercial Software Engineering Contents 1 INTRODUCTION... 1 1.1 OVERVIEW... 1 1.2 GOALS... 1 1.3

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

C H A P T E R SYSTEM DESIGN

C H A P T E R SYSTEM DESIGN C H A P T E R SYSTEM DESIGN Chapter Twelve Systems Design Describe the design phase in terms of your information building blocks. Identify and differentiate between several systems design strategies. Describe

More information

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee Chapter 4 Capturing the Requirements Shari L. Pfleeger Joanne M. Atlee 4th Edition It is important to have standard notations for modeling, documenting, and communicating decisions Modeling helps us to

More information

Major Topics. Prototyping and Rapid Application Development

Major Topics. Prototyping and Rapid Application Development Prototyping Major Topics Prototyping concepts Types of prototypes Prototyping and the systems development life cycle Prototype development guidelines Prototype evaluation Rapid application development

More information

SOFTWARE ENGINEERING DESIGN I

SOFTWARE ENGINEERING DESIGN I 2 SOFTWARE ENGINEERING DESIGN I 3. Schemas and Theories The aim of this course is to learn how to write formal specifications of computer systems, using classical logic. The key descriptional technique

More information

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms Standard Glossary of Terms used in Software Testing Version 3.2 Foundation Extension - Usability Terms International Software Testing Qualifications Board Copyright Notice This document may be copied in

More information

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping Coping with change Change is inevitable in all large software projects. Business changes lead to new and changed system requirements New technologies open up new possibilities for improving implementations

More information

Based on the slides available at book.com. Graphical Design

Based on the slides available at   book.com. Graphical Design Graphical Design Graphic Design & User Interfaces Information oriented, systematic graphic design is the use of typography, symbols, color and other static and dynamic graphics to convey facts, concepts

More information

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative

More information

Requirement Analysis

Requirement Analysis Requirement Analysis Requirements Analysis & Specification Objective: determine what the system must do to solve the problem (without describing how) Done by Analyst (also called Requirements Analyst)

More information

Business Architecture Implementation Workshop

Business Architecture Implementation Workshop Delivering a Business Architecture Transformation Project using the Business Architecture Guild BIZBOK Hands-on Workshop In this turbulent and competitive global economy, and the rapid pace of change in

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement? Engineering Establishing what the customer requires from a software system Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 5 and 6 Slide 1 Engineering

More information

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION The for a system are the descriptions of what the system should do the services that it provides and the constraints on its operation. User are statements,

More information

CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018

CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018 CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018 OVERVIEW... 2 SUMMARY OF MILESTONE III DELIVERABLES... 2 1. Blog Update #3 - Low-fidelity Prototyping & Cognitive Walkthrough,

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

A survey of methods and approaches for reliable dynamic service compositions

A survey of methods and approaches for reliable dynamic service compositions SOCA (2014) 8:129 158 DOI 10.1007/s11761-013-0153-3 ORIGINAL RESEARCH PAPER A survey of methods and approaches for reliable dynamic service compositions Anne Immonen Daniel Pakkala Received: 13 June 2013

More information

Why Design by Contract! CS 619 Introduction to OO Design and Development. Design by Contract. Fall 2012

Why Design by Contract! CS 619 Introduction to OO Design and Development. Design by Contract. Fall 2012 Why Design by Contract What s the difference with Testing? CS 619 Introduction to OO Design and Development Design by Contract Fall 2012 Testing tries to diagnose (and cure) defects after the facts. Design

More information

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae CS350 Lecture 2 Requirements Engineering Doo-Hwan Bae bae@se.kaist.ac.kr Contents Overview of Requirements Engineering OO Analysis: Domain modeling, Use-case, sequence, class Structured Analysis: Dataflow

More information

Recalling the definition of design as set of models let's consider the modeling of some real software.

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

Software Design Report

Software Design Report Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase. The SDD shows how

More information

Alignment of Business and IT - ArchiMate. Dr. Barbara Re

Alignment of Business and IT - ArchiMate. Dr. Barbara Re Alignment of Business and IT - ArchiMate Dr. Barbara Re What is ArchiMate? ArchiMate is a modelling technique ("language") for describing enterprise architectures. It presents a clear set of concepts within

More information

Formal Approach in Software Testing

Formal Approach in Software Testing Formal Approach in Software Testing #Abhishek Dixit, #Shivani Goel 1 csed, TIET biodatadixit@yahoo.co.in 2 csed, TIET shivani@tiet.ac.in Abstract Testing is an important activity for checking the correctness

More information

UNIT-II: Requirements Engineering

UNIT-II: Requirements Engineering UNIT-II: Requirements Engineering Syllabus a. ELICITING REQUIREMENTS Collaborative Requirements Gathering Quality Function Deployment Usage Scenarios Elicitation Work Products b. BUILDING THE REQUIREMENTS

More information

Topic # 03. Requirements to Software System: An Overview (Ch. 5 and partially Ch. 6)

Topic # 03. Requirements to Software System: An Overview (Ch. 5 and partially Ch. 6) Topic # 03 Requirements to Software System: An Overview (Ch. 5 and partially Ch. 6) 1 Understanding Requirements: An Overview This topic is an overview of Requirements Engineering (RE), and RE is the initial

More information

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS6403 SOFTWARE ENGINEERING II year/ IV sem CSE (Regulation 2013) UNIT 1- SOFTWARE PROCESS AND PROJECT

More information

Chapter 6 Architectural Design

Chapter 6 Architectural Design Chapter 6 Architectural Design Chapter 6 Architectural Design Slide 1 Topics covered The WHAT and WHY of architectural design Architectural design decisions Architectural views/perspectives Architectural

More information

UNIT-I Introduction of Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling UNIT-I Introduction of Object Oriented Modeling - Prasad Mahale Object Oriented Modeling and Reference Books: Design 1. Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language User Guide,

More information

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6

Lethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6 Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.

More information

Requirements engineering

Requirements engineering engineering Chapter 4 1 Engineering in the textbook 4.1 Functional and non-functional 4.2 The software document 4.4 engineering processes 4.5 elicitation and analysis 4.3 specification 4.6 validation 4.7

More information

Information Management (IM)

Information Management (IM) 1 2 3 4 5 6 7 8 9 Information Management (IM) Information Management (IM) is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information;

More information

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

Requirements Engineering Process

Requirements Engineering Process Requirements Engineering Process Requirement A description of a service that the system is expected to provide and the constraints under which it must operate. 1 Requirement Types Functional Requirement

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS SOFTWARE ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK TWO MARKS UNIT I SOFTWARE PROCESS AND PROJECT MANAGEMENT 1. What is software engineering? Software engineering

More information

Requirements Engineering process

Requirements Engineering process Requirements Engineering process Used to discover, analyze, validate and manage requirements Varies depending on the application domain, the people involved and the organization developing the requirements

More information

User-centered design and the requirement process

User-centered design and the requirement process User-centered design and the requirement process The slides are based on slides by Tuva Solstad and Anne-Stine Ruud Husevåg Outline A general introduction to iterative methodology and user-centered design

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

The Information Technology Program (ITS) Contents What is Information Technology?... 2

The Information Technology Program (ITS) Contents What is Information Technology?... 2 The Information Technology Program (ITS) Contents What is Information Technology?... 2 Program Objectives... 2 ITS Program Major... 3 Web Design & Development Sequence... 3 The Senior Sequence... 3 ITS

More information

Automatic Merging of Specification Documents in a Parallel Development Environment

Automatic Merging of Specification Documents in a Parallel Development Environment Automatic Merging of Specification Documents in a Parallel Development Environment Rickard Böttcher Linus Karnland Department of Computer Science Lund University, Faculty of Engineering December 16, 2008

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

SFU CMPT week 11

SFU CMPT week 11 SFU CMPT-363 2004-2 week 11 Manuel Zahariev E-mail: manuelz@cs.sfu.ca Based on course material from Arthur Kirkpatrick, Alissa Antle and Paul Hibbits July 21, 2004 1 Analytic Methods Advantages can be

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

Formal Specification: Z Notation. CITS5501 Software Testing and Quality Assurance

Formal Specification: Z Notation. CITS5501 Software Testing and Quality Assurance Formal Specification: Z Notation CITS5501 Software Testing and Quality Assurance The Zed Notation, J.M.Spivey. Semester 1, 2017 A Formal Specification Notation A Syntax - often based on set theory and

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

SOFTWARE LIFE-CYCLE MODELS 2.1

SOFTWARE LIFE-CYCLE MODELS 2.1 SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed

More information

Specifying and Prototyping

Specifying and Prototyping Contents Specifying and Prototyping M. EVREN KIYMAÇ 2008639030 What is Specifying? Gathering Specifications Specifying Approach & Waterfall Model What is Prototyping? Uses of Prototypes Prototyping Process

More information