Midterm Exam Study Guide This study guide does

  • Slides: 55
Download presentation
Midterm Exam Study Guide This study guide does not imply that any topics/slides that

Midterm Exam Study Guide This study guide does not imply that any topics/slides that are not mentioned are excluded. The objective is to guide you while studying by focusing on certain topics that might have a high weight with regard to the midterm exam. The midterm exam includes chapters: 1, 2, 4&5, 6, 7, 8, 9, 10 and 11 Please note: MCQ, T/F, and fill in the blank will be from all chapters Short Answer Q. will be from Chapters 2, 6, 7 and 10 Long Answer Q. will be from Chapters 6 and 8 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 1

Chapter 1 n The Nature of Software Slide Set to accompany Software Engineering: A

Chapter 1 n The Nature of Software Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 2

What is Software? n n n Software is developed or engineered, it is not

What is Software? n n n Software is developed or engineered, it is not manufactured in the classical sense. Software doesn't "wear out. " Although the industry is moving toward component-based construction, most software continues to be custom-built. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 3

Wear vs. Deterioration These slides are designed to accompany Software Engineering: A Practitioner’s Approach,

Wear vs. Deterioration These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 4

Product Line Software n n Product line software is a set of software-intensive systems

Product Line Software n n Product line software is a set of software-intensive systems that share a common set of features and satisfy the needs of a particular market These software products are developed using the same application and data architectures using a common core of reusable software components A software product line shares a set of assets that include requirements, architecture, design patterns, reusable components, test cases, and other work products A software product line allow in the development of many products that are engineered by capitalizing on the commonality among all products with in the product lin These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 5

Characteristics of Web. Apps - II n n n Data driven. The primary function

Characteristics of Web. Apps - II n n n Data driven. The primary function of many Web. Apps is to use hypermedia to present text, graphics, audio, and video content to the end-user. Content sensitive. The quality and aesthetic nature of content remains an important determinant of the quality of a Web. App. Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously. Immediacy. Although immediacy—the compelling need to get software to market quickly—is a characteristic of many application domains, Web. Apps often exhibit a time to market that can be a matter of a few days or weeks. Security. Because Web. Apps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application. Aesthetics. An undeniable part of the appeal of a Web. App is its look and feel. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 6

Chapter 2 n Software Engineering Slide Set to accompany Software Engineering: A Practitioner’s Approach,

Chapter 2 n Software Engineering Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 7

Software Engineering n Some realities: n n n a concerted effort should be made

Software Engineering n Some realities: n n n a concerted effort should be made to understand the problem before a software solution is developed design becomes a pivotal activity software should exhibit high quality software should be maintainable The seminal definition: n [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 8

A Layered Technology tools methods process model a “quality” focus Software Engineering These slides

A Layered Technology tools methods process model a “quality” focus Software Engineering These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 9

Framework Activities n n n Communication Planning Modeling n n n Construction n Analysis

Framework Activities n n n Communication Planning Modeling n n n Construction n Analysis of requirements Design Code generation Testing Deployment These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 10

Adapting a Process Model n n n n n the overall flow of activities,

Adapting a Process Model n n n n n the overall flow of activities, actions, and tasks and the interdependencies among them the degree to which actions and tasks are defined within each framework activity the degree to which work products are identified and required the manner which quality assurance activities are applied the manner in which project tracking and control activities are applied the overall degree of detail and rigor with which the process is described the degree to which the customer and other stakeholders are involved with the project the level of autonomy given to the software team the degree to which team organization and roles are prescribed These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 11

Hooker’s General Principles n n n n 1: The Reason It All Exists 2:

Hooker’s General Principles n n n n 1: The Reason It All Exists 2: KISS (Keep It Simple, Stupid!) 3: Maintain the Vision 4: What You Produce, Others Will Consume 5: Be Open to the Future 6: Plan Ahead for Reuse 7: Think! These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 12

Chapter 4 & Chapter 5 Important Concepts n Process Models Slide Set to accompany

Chapter 4 & Chapter 5 Important Concepts n Process Models Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 13

The Waterfall Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach,

The Waterfall Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 14

The V-Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e

The V-Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 15

The Incremental Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach,

The Incremental Model These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 16

What is “Agility”? Effective (rapid and adaptive) response to change n Effective communication among

What is “Agility”? Effective (rapid and adaptive) response to change n Effective communication among all stakeholders n Drawing the customer onto the team n Organizing a team so that it is in control of the work performed Yielding … n Rapid, incremental delivery of software n These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 17

An Agile Process n n n Is driven by customer descriptions of what is

An Agile Process n n n Is driven by customer descriptions of what is required (scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple ‘software increments’ Adapts as changes occur These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 18

Chapter 6 n Human Aspects of Software Engineering Slide Set to accompany Software Engineering:

Chapter 6 n Human Aspects of Software Engineering Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 19

Traits of Successful Software Engineers n n n n Sense of individual responsibility Acutely

Traits of Successful Software Engineers n n n n Sense of individual responsibility Acutely aware of the needs of team members and stakeholders Brutally honest about design flaws and offers constructive criticism Resilient under pressure Heightened sense of fairness Attention to detail Pragmatic These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 20

Effective Software Team Attributes n n n Sense of purpose Sense of involvement Sense

Effective Software Team Attributes n n n Sense of purpose Sense of involvement Sense of trust Sense of improvement Diversity of team member skill sets These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 21

Avoid Team “Toxicity” n A frenzied work atmosphere in which team members waste energy

Avoid Team “Toxicity” n A frenzied work atmosphere in which team members waste energy and lose focus on the objectives of the work to be performed. n High frustration caused by personal, business, or technological factors that cause friction among team members. n “Fragmented or poorly coordinated procedures” or a poorly defined or improperly chosen process model that becomes a roadblock to accomplishment. n Unclear definition of roles resulting in a lack of accountability and resultant finger-pointing. n “Continuous and repeated exposure to failure” that leads to a loss of confidence and a lowering of morale. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 22

Factors Affecting Team Structure The following factors must be considered when selecting a software

Factors Affecting Team Structure The following factors must be considered when selecting a software project team structure. . . n n n n the difficulty of the problem to be solved the size of the resultant program(s) in lines of code or function points the time that the team will stay together (team lifetime) the degree to which the problem can be modularized the required quality and reliability of the system to be built the rigidity of the delivery date the degree of sociability (communication) required for the project These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 23

Organizational Paradigms n n closed paradigm—structures a team along a traditional hierarchy of authority

Organizational Paradigms n n closed paradigm—structures a team along a traditional hierarchy of authority random paradigm—structures a team loosely and depends on individual initiative of the team members open paradigm—attempts to structure a team in a manner that achieves some of the controls associated with the closed paradigm but also much of the innovation that occurs when using the random paradigm synchronous paradigm—relies on the natural compartmentalization of a problem and organizes team members to work on pieces of the problem with little active communication among themselves suggested by Constantine [Con 93] These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 24

Impact of Social Media n n n Blogs – can be used share information

Impact of Social Media n n n Blogs – can be used share information with team members and customers Microblogs (e. g. Twitter) – allow posting of realtime messages to individuals following the poster Targeted on-line forums – allow participants to post questions or opinions and collect answers Social networking sites (e. g. Facebook, Linked. In) – allows connections among software developers for the purpose of sharing information Social book marking (e. g. Delicious, Stumble, Cite. ULike) – allow developers to keep track of and share web-based resources These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 25

Chapter 7 n Principles that Guide Practice Slide Set to accompany Software Engineering: A

Chapter 7 n Principles that Guide Practice Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 26

Communication Principles n n Principle #1. Listen. Try to focus on the speaker’s words,

Communication Principles n n Principle #1. Listen. Try to focus on the speaker’s words, rather than formulating your response to those words. Principle # 2. Prepare before you communicate. Spend the time to understand the problem before you meet with others. Principle # 3. Someone should facilitate the activity. Every communication meeting should have a leader (a facilitator) to keep the conversation moving in a productive direction; (2) to mediate any conflict that does occur, and (3) to ensure than other principles are followed. Principle #4. Face-to-face communication is best. But it usually works better when some other representation of the relevant information is present. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 27

Planning Principles n n Principle #1. Understand the scope of the project. It’s impossible

Planning Principles n n Principle #1. Understand the scope of the project. It’s impossible to use a roadmap if you don’t know where you’re going. Scope provides the software team with a destination. Principle #2. Involve the customer in the planning activity. The customer defines priorities and establishes project constraints. Principle #3. Recognize that planning is iterative. A project plan is never engraved in stone. As work begins, it very likely that things will change. Principle #4. Estimate based on what you know. The intent of estimation is to provide an indication of effort, cost, and task duration, based on the team’s current understanding of the work to be done. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 28

Requirements Modeling Principles n n n Principle #1. The information domain of a problem

Requirements Modeling Principles n n n Principle #1. The information domain of a problem must be represented and understood. Principle #2. The functions that the software performs must be defined. Principle #3. The behavior of the software (as a consequence of external events) must be represented. Principle #4. The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered (or hierarchical) fashion. Principle #5. The analysis task should move from essential information toward implementation detail. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 29

Construction Principles n n n The construction activity encompasses a set of coding and

Construction Principles n n n The construction activity encompasses a set of coding and testing tasks that lead to operational software that is ready for delivery to the customer or end-user. Coding principles and concepts are closely aligned programming style, programming languages, and programming methods. Testing principles and concepts lead to the design of tests that systematically uncover different classes of errors and to do so with a minimum amount of time and effort. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 30

Coding Principles n As you begin writing code, be sure you: • • •

Coding Principles n As you begin writing code, be sure you: • • • Constrain your algorithms by following structured programming [Boh 00] practice. Consider the use of pair programming Select data structures that will meet the needs of the design. Understand the software architecture and create interfaces that are consistent with it. Keep conditional logic as simple as possible. Create nested loops in a way that makes them easily testable. Select meaningful variable names and follow other local coding standards. Write code that is self-documenting. Create a visual layout (e. g. , indentation and blank lines) that aids understanding. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 31

Validation Principles n After you’ve completed your first coding pass, be sure you: •

Validation Principles n After you’ve completed your first coding pass, be sure you: • Conduct a code walkthrough when appropriate. • Perform unit tests and correct errors you’ve uncovered. • Refactor the code. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014) Slides copyright 2014 by Roger Pressman. 32

Chapter 8 n Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach,

Chapter 8 n Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 33

Requirements Engineering-I n Inception—ask a set of questions that establish … n n n

Requirements Engineering-I n Inception—ask a set of questions that establish … n n n n basic understanding of the problem the people who want a solution the nature of the solution that is desired, and the effectiveness of preliminary communication and collaboration between the customer and the developer Elicitation—elicit requirements from all stakeholders Elaboration—create an analysis model that identifies data, function and behavioral requirements Negotiation—agree on a deliverable system that is realistic for developers and customers These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 34

Requirements Engineering-II n Specification—can be any one (or more) of the following: n n

Requirements Engineering-II n Specification—can be any one (or more) of the following: n n n Validation—a review mechanism that looks for n n n A written document A set of models A formal mathematical A collection of user scenarios (use-cases) A prototype errors in content or interpretation areas where clarification may be required missing information inconsistencies (a major problem when large products or systems are engineered) conflicting or unrealistic (unachievable) requirements. Requirements management These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 35

Eliciting Requirements n n n meetings are conducted and attended by both software engineers

Eliciting Requirements n n n meetings are conducted and attended by both software engineers and customers rules for preparation and participation are established an agenda is suggested a "facilitator" (can be a customer, a developer, or an outsider) controls the meeting a "definition mechanism" (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room or virtual forum) is used the goal is n n to identify the problem propose elements of the solution negotiate different approaches, and specify a preliminary set of solution requirements These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 36

Non-Functional Requirements n Non-Functional Requirment (NFR) – quality attribute, performance attribute, security attribute, or

Non-Functional Requirements n Non-Functional Requirment (NFR) – quality attribute, performance attribute, security attribute, or general system constraint. A two phase process is used to determine which NFR’s are compatible: n The first phase is to create a matrix using each NFR as a column heading and the system SE guidelines a row labels n The second phase is for the team to prioritize each NFR using a set of decision rules to decide which to implement by classifying each NFR and guideline pair as complementary, overlapping, conflicting, or independent These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 37

Use-Cases n n n A collection of user scenarios that describe thread of usage

Use-Cases n n n A collection of user scenarios that describe thread of usage of a system Each scenario is described from the point-of-view of an “actor”—a person or device that interacts with the software in some way Each scenario answers the following questions: n n n n n Who is the primary actor, the secondary actor (s)? What are the actor’s goals? What preconditions should exist before the story begins? What main tasks or functions are performed by the actor? What extensions might be considered as the story is described? What variations in the actor’s interaction are possible? What system information will the actor acquire, produce, or change? Will the actor have to inform the system about changes in the external environment? What information does the actor desire from the system? Does the actor wish to be informed about unexpected changes? These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 38

Requirements Monitoring Especially needes in incremental development n n n Distributed debugging – uncovers

Requirements Monitoring Especially needes in incremental development n n n Distributed debugging – uncovers errors and determines their cause. Run-time verification – determines whether software matches its specification. Run-time validation – assesses whether evolving software meets user goals. Business activity monitoring – evaluates whether a system satisfies business goals. Evolution and codesign – provides information to stakeholders as the system evolves. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 39

Chapter 9 n Requirements Modeling: Scenario-Based Methods Slide Set to accompany Software Engineering: A

Chapter 9 n Requirements Modeling: Scenario-Based Methods Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 40

Rules of Thumb n n n The model should focus on requirements that are

Rules of Thumb n n n The model should focus on requirements that are visible within the problem or 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. 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. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 41

What to Write About? n n Inception and elicitation—provide you with the information you’ll

What to Write About? n n Inception and elicitation—provide you with the information you’ll need to begin writing use cases. Requirements gathering meetings, QFD, and other requirements engineering mechanisms are used to n n n n identify stakeholders define the scope of the problem specify overall operational goals establish priorities outline all known functional requirements, and describe things (objects) that will be manipulated by the system. To begin developing a set of use cases, list the functions or activities performed by a specific actor. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 42

Use-Cases n n n a scenario that describes a “thread of usage” for a

Use-Cases n n n a scenario that describes a “thread of usage” for a system actors represent roles people or devices play as the system functions users can play a number of different roles for a given scenario These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 43

Reviewing a Use-Case n n Use-cases are written first in narrative form and mapped

Reviewing a Use-Case n n Use-cases are written first in narrative form and mapped to a template if formality is needed Each primary scenario should be reviewed and refined to see if alternative interactions are possible n n n Can the actor take some other action at this point? Is it possible that the actor will encounter an error condition at some point? If so, what? Is it possible that the actor will encounter some other behavior at some point? If so, what? These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 44

Chapter 10 n Requirements Modeling: Class-Based Methods Slide Set to accompany Software Engineering: A

Chapter 10 n Requirements Modeling: Class-Based Methods Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 45

Defining Operations n n Do a grammatical parse of a processing narrative and look

Defining Operations n n Do a grammatical parse of a processing narrative and look at the verbs Operations can be divided into four broad categories: n n (1) operations that manipulate data in some way (e. g. , adding, deleting, reformatting, selecting) (2) operations that perform a computation (3) operations that inquire about the state of an object, and (4) operations that monitor an object for the occurrence of a controlling event. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 46

CRC Models n Class-responsibility-collaborator (CRC) modeling [Wir 90] provides a simple means for identifying

CRC Models n Class-responsibility-collaborator (CRC) modeling [Wir 90] provides a simple means for identifying and organizing the classes that are relevant to system or product requirements. Ambler [Amb 95] describes CRC modeling in the following way: n A CRC model is really a collection of standard index cards that represent classes. The cards are divided into three sections. Along the top of the card you write the name of the class. In the body of the card you list the class responsibilities on the left and the collaborators on the right. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 47

CRC Modeling These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e

CRC Modeling These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 48

Collaborations n Classes fulfill their responsibilities in one of two ways: n n n

Collaborations n Classes fulfill their responsibilities in one of two ways: n n n A class can use its own operations to manipulate its own attributes, thereby fulfilling a particular responsibility, or a class can collaborate with other classes. Collaborations identify relationships between classes Collaborations are identified by determining whether a class can fulfill each responsibility itself three different generic relationships between classes [WIR 90]: n n n the is-part-of relationship the has-knowledge-of relationship the depends-upon relationship These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 49

Associations and Dependencies n Two analysis classes are often related to one another in

Associations and Dependencies n Two analysis classes are often related to one another in some fashion n In UML these relationships are called associations Associations can be refined by indicating multiplicity (the term cardinality is used in data modeling In many instances, a client-server relationship exists between two analysis classes. n In such cases, a client-class depends on the server-class in some way and a dependency relationship is established These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill, 2014). Slides copyright 2014 by Roger Pressman. 50

Chapter 11 n Requirements Modeling: Behavior, Patterns, and Web/Mobile Apps Slide Set to accompany

Chapter 11 n Requirements Modeling: Behavior, Patterns, and Web/Mobile Apps Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 51

State Representations n In the context of behavioral modeling, two different characterizations of states

State Representations n In the context of behavioral modeling, two different characterizations of states must be considered: n n n the state of each class as the system performs its function and the state of the system as observed from the outside as the system performs its function The state of a class takes on both passive and active characteristics [CHA 93]. n n A passive state is simply the current status of all of an object’s attributes. The active state of an object indicates the current status of the object as it undergoes a continuing transformation or processing. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 52

The States of a System n n state—a set of observable circumstances that characterizes

The States of a System n n state—a set of observable circumstances that characterizes the behavior of a system at a given time state transition—the movement from one state to another event—an occurrence that causes the system to exhibit some predictable form of behavior action—process that occurs as a consequence of making a transition These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 53

Patterns for Requirements Modeling n Software patterns are a mechanism for capturing domain knowledge

Patterns for Requirements Modeling n Software patterns are a mechanism for capturing domain knowledge in a way that allows it to be reapplied when a new problem is encountered n n domain knowledge can be applied to a new problem within the same application domain the domain knowledge captured by a pattern can be applied by analogy to a completely different application domain. The original author of an analysis pattern does not “create” the pattern, but rather, discovers it as requirements engineering work is being conducted. Once the pattern has been discovered, it is documented These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 54

Discovering Analysis Patterns n n n The most basic element in the description of

Discovering Analysis Patterns n n n The most basic element in the description of a requirements model is the use case. A coherent set of use cases may serve as the basis for discovering one or more analysis patterns. A semantic analysis pattern (SAP) “is a pattern that describes a small set of coherent use cases that together describe a basic generic application. ” [Fer 00] These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (Mc. Graw-Hill 2014). Slides copyright 2014 by Roger Pressman. 55