se_lectures/.DS_Store
__MACOSX/se_lectures/._.DS_Store
se_lectures/Day15/WeatherMonitoringSystem.docx
Weather Monitoring System
Requirements Definition
The system shall provide automatic monitoring of various weather conditions. Specifically, it must measure:
· Wind speed and direction
· Temperature
· Barometric pressure
· Humidity
The system shall also provide the following derived measurements:
· Wind chill
· Dew point temperature
· Temperature trend
· Barometric pressure trend
The system shall interface with the following hardware: keypad, wind-direction sensor, temperature sensor, clock (on-board clock), humidity sensor, wind-speed sensor, pressure sensor, and LCD display (capable of processing a simple set of graphics primitives, including messages for drawing lines and arcs, filling regions, and displaying text).
The system shall have a means of determining the current time and date, so that it can report the highest and lowest values of any of the four primary measurements during the previous 24-hour period. The sampling rates are: every 0.1 second for wind direction, every 0.5 seconds for wind speed, and every 5 minutes for temperature, barometric pressure, and humidity.
The system shall have a display that continuously indicates all eight primary and derived requirements, as well as the current time (hour, minutes, second) and date (day, month, year).
Through the use of a keypad, the user shall be able to direct the system to display the 24-hour high or low value of any one primary measurement, together with the time of the reported value.
The user shall be able to choose either a 12- or 24-hour format for the time.
The system shall allow the user to calibrate its sensors against know values, and to set the current time and date. The wind direction sensor requires neither calibration nor history.
Assume that each temperature sensor value is represented by a fixed-point number, whose low and high points can be calibrated to fit known actual values. Intermediate numbers shall be translated to their actual temperatures by simple linear interpolation between the two points.
Trends shall be expressed as a floating numbers between –1 and 1, representing the slope of a line fitting a number of values over some interval of time.
__MACOSX/se_lectures/Day15/._WeatherMonitoringSystem.docx
se_lectures/Day15/.DS_Store
__MACOSX/se_lectures/Day15/._.DS_Store
se_lectures/Day15/Collaborations and Hierarchies.pptx
Collaborations and Hierarchies
Outline
Collaborations
Identifying collaborations
Recording collaborations
Hierarchies
Hierarchy graphs
Venn diagrams
Continuing Practice
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
-Rich Cook
Motivation for Collaborations
Two ways a class performs responsibilities
Knows something
Does something
Collaboration is
Request f ...
The document discusses various aspects of the design phase of software development including:
1. The design phase builds upon artifacts created in the analysis phase like use cases and conceptual models. Interaction diagrams are created to show how objects communicate and collaborate.
2. Real use cases describe detailed interface designs. Class diagrams summarize class definitions and relationships. Responsibilities are assigned to classes using patterns like expert, controller, and others.
3. Interaction diagrams illustrate object interactions and are dependent on prior artifacts. Collaboration and sequence diagrams represent different notation for the same interactions. Guidelines are provided for creating interaction diagrams.
This document outlines the components required for a case tools laboratory project. The project must include 9 components: developing a problem statement, use cases, a domain model with class diagram, sequence diagrams, state charts and activity diagrams, an architecture diagram, and testing each layer of the system. It also provides 15 suggested domains for mini-projects and lists recommended modeling tools.
The document discusses patterns for representing value objects in Java. It introduces the concept of value objects which represent simple domain elements like strings, dates, and money amounts, as opposed to entity objects which represent more complex persistent elements. It then describes several patterns for implementing value objects in Java, including using whole value classes to represent domain quantities clearly, defining value classes to meet user expectations, providing factory methods for value classes, and representing fixed sets of values as immutable enumeration value objects.
The document discusses the differences between software analysis and design. It provides details on:
- Analysis focuses on clarifying requirements and exploring the problem domain to identify concepts and analysis classes.
- Design starts with exploring the solution domain to formulate the system design using tools like class and object diagrams.
- Key outcomes of analysis include requirement specifications while design outcomes include low-level system design documentation.
- Analysis involves system analysts and end users while design involves system architects and developers.
The document discusses static UML diagrams and provides an example of a class diagram for an ATM system. It begins by defining a class diagram and its key components - classes, attributes, operations, and relationships. It then explains different types of class relationships like inheritance, association, aggregation, and composition. The document concludes by providing a full class diagram example for an ATM system to demonstrate how all the concepts discussed come together in a diagram.
This document discusses various UML diagrams including class diagrams, domain models, associations, attributes, and sequence diagrams. It provides guidance on how to draw class diagrams from different perspectives (conceptual, specification, implementation). It also covers how to create domain models by finding conceptual classes, description classes, and relationships. Sequence diagrams and their relationship to use cases is explained, specifically how system sequence diagrams show the system events for a use case scenario.
The document discusses the Unified Modeling Language (UML) which is a general-purpose modeling language used to visualize, specify, construct, and document software systems. UML uses graphical notation to represent the design of software projects including concepts like use case diagrams, class diagrams, sequence diagrams, and more. It provides a standard way to visualize a system from different perspectives including structural and behavioral views.
The document discusses various aspects of the design phase of software development including:
1. The design phase builds upon artifacts created in the analysis phase like use cases and conceptual models. Interaction diagrams are created to show how objects communicate and collaborate.
2. Real use cases describe detailed interface designs. Class diagrams summarize class definitions and relationships. Responsibilities are assigned to classes using patterns like expert, controller, and others.
3. Interaction diagrams illustrate object interactions and are dependent on prior artifacts. Collaboration and sequence diagrams represent different notation for the same interactions. Guidelines are provided for creating interaction diagrams.
This document outlines the components required for a case tools laboratory project. The project must include 9 components: developing a problem statement, use cases, a domain model with class diagram, sequence diagrams, state charts and activity diagrams, an architecture diagram, and testing each layer of the system. It also provides 15 suggested domains for mini-projects and lists recommended modeling tools.
The document discusses patterns for representing value objects in Java. It introduces the concept of value objects which represent simple domain elements like strings, dates, and money amounts, as opposed to entity objects which represent more complex persistent elements. It then describes several patterns for implementing value objects in Java, including using whole value classes to represent domain quantities clearly, defining value classes to meet user expectations, providing factory methods for value classes, and representing fixed sets of values as immutable enumeration value objects.
The document discusses the differences between software analysis and design. It provides details on:
- Analysis focuses on clarifying requirements and exploring the problem domain to identify concepts and analysis classes.
- Design starts with exploring the solution domain to formulate the system design using tools like class and object diagrams.
- Key outcomes of analysis include requirement specifications while design outcomes include low-level system design documentation.
- Analysis involves system analysts and end users while design involves system architects and developers.
The document discusses static UML diagrams and provides an example of a class diagram for an ATM system. It begins by defining a class diagram and its key components - classes, attributes, operations, and relationships. It then explains different types of class relationships like inheritance, association, aggregation, and composition. The document concludes by providing a full class diagram example for an ATM system to demonstrate how all the concepts discussed come together in a diagram.
This document discusses various UML diagrams including class diagrams, domain models, associations, attributes, and sequence diagrams. It provides guidance on how to draw class diagrams from different perspectives (conceptual, specification, implementation). It also covers how to create domain models by finding conceptual classes, description classes, and relationships. Sequence diagrams and their relationship to use cases is explained, specifically how system sequence diagrams show the system events for a use case scenario.
The document discusses the Unified Modeling Language (UML) which is a general-purpose modeling language used to visualize, specify, construct, and document software systems. UML uses graphical notation to represent the design of software projects including concepts like use case diagrams, class diagrams, sequence diagrams, and more. It provides a standard way to visualize a system from different perspectives including structural and behavioral views.
The document discusses software architecture, including definitions, principles, patterns, and modeling techniques. It defines architecture as the structure of a system comprising software elements and relationships. Some key principles discussed are single responsibility, open/closed, and dependency inversion. Common patterns like MVC, layered, and multitier architectures are explained. The document also introduces Unified Modeling Language (UML) for modeling systems using diagrams like class, component, and package diagrams.
DIRECTIONS READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE I.docxlynettearnold46882
DIRECTIONS: READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE ITS CONTENT. PLEASE CITE ALL REFERENCES
Katie Kessler
Unit 2 Discussion 1
Top of Form
The word “noir” is used to remember the scaling of measurement in psychology (Embretson, 2004). In short, the letters stand for nominal, ordinal, interval and ratio (Embretson, 2004). To give a brief introduction of what each scale measures, “nominal is the simplest way to measure” because it focuses on categorizing measurements on a scale of category, according to Embretson (2004). An example of nominal is eye color. “Ordinal measures in terms of ranking, interval measures scores of tests that focus on unobservable mental functioning and ratio focuses on measuring activities in the physical world, such as someone’s running time” (Embretson, 2004). With different scales of measurement, there are two methods to compare sets of data. These include norm-referenced and criterion-referenced testing. According to Embretson (2004) norm-referenced testing “yields information on a testtaker’s standing or ranking relative to some comparison group of testtakers.” In other words, it focuses on the performance of peers. Criterion-referenced testing is a little different because it focuses on examining individual’s scores to a set standard (Embretson, 2004).
The ability for ordinal measurement scale to be utilized on a standardized test as a norm-referenced test is high since an ordinal scale is based upon ranking and norm-referenced testing gathers information on the examinees ranking compared to a group of testtakers. For example, a study conducted on decision making with the use of ordinal variables states that ordinal measurement scales has the ability to be utilized by norm-referenced testing (Barua, Kademane, Das, Gubbiyappa, Verma, & Al-Dubai, 2014).On the other hand, ordinal scaling would not be a strong measurement for criterion-referenced testing because it focuses on the ranking rather than the measurement of the scores to be close to a set standard.
Ratio scaling directs its focus on measuring objects and activities in the physical world which would be beneficial for criterion-referenced testing instead of norm-referenced testing. Imagine a marathon runner who was trying to beat the world’s fastest time running a marathon. Criterion-referenced testing allows the runner to be aware of the set standard the marathon runner needs to beat to be the best and set a new standard. Norm-referenced testing would not be as useful because the marathon runner would not have the standard measurement he or she needs to beat. However, the marathon runner would be aware of the relative time he or she needs to beat to be the best. That is not as helpful as the criterion-referenced testing because runners need an exact number instead of a relative number in comparison to other runners.
Norm-referenced data would be collected by “the standards relative to a group, such as means and standard deviation.
This document discusses various modeling techniques used during the analysis phase of software engineering. It covers scenario-based modeling including use cases, activity diagrams, and swimlane diagrams. It also discusses flow-oriented modeling using data flow diagrams and grammars. Additionally, it discusses class-based modeling including identifying analysis classes, class diagrams, and the class-responsibility-collaborator technique. Finally, it discusses behavioral modeling including identifying events and creating state and sequence diagrams.
The document discusses object-oriented analysis and design (OOAD). It states that OOAD is a process of creating abstractions to meet system requirements independently of the programming language. Objects encapsulate state and behavior and communicate via message passing. While OOAD may increase development time, it facilitates reuse, maintenance, and verification. The document also discusses OO principles, the iterative analysis-design-implementation process, object-oriented analysis to identify classes and objects, and techniques for OOAD like use cases, domain modeling, CRC cards, and UML.
The document discusses different approaches and methods for synchronizing team members during software development projects. It describes static waterfall and agile iterative development processes. It also introduces Unified Modeling Language (UML) diagrams for visually representing software architecture and interactions, including activity diagrams, sequence diagrams, and use case diagrams. These diagrams use standardized symbols and notation to clearly depict processes, objects, messages, and functionality.
The document discusses various diagram types used in the Unified Modeling Language (UML) for modeling software systems. It describes class diagrams, which show classes, relationships between classes, and class properties and methods. It also summarizes sequence diagrams, use case diagrams, state machine diagrams, activity diagrams, component diagrams, and deployment diagrams. The diagrams are used at different stages of software development for visualization, specification, construction, and documentation.
The document provides an overview of the Unified Modeling Language (UML) including what UML is, why it is used, common UML diagrams, and tools for UML modeling. UML is a standard modeling language used to visualize, specify, construct and document artifacts of a software system. Common UML diagrams include use case diagrams, class diagrams, sequence diagrams, state diagrams and collaboration diagrams. Popular UML modeling tools mentioned are ArgoUML, Rational Rose, UML Studio and TogetherSoft Control Center.
The objective is to explain how a software design may be represented as a set of interacting objects that manage their own state and operations and to introduce various models that describe an object-oriented design.
This document introduces object-oriented design concepts. It discusses how software design can be represented using interacting objects that manage their own state and operations. Various models for describing object-oriented design are introduced, including class diagrams, sequence diagrams, and state machine diagrams. Design patterns are also introduced as a way to reuse knowledge about solving common design problems.
The document provides an introduction to the Unified Modeling Language (UML). It discusses what modeling is and defines UML as an industry-standard graphical language used to specify, visualize, construct and document the artifacts of software systems. The document outlines the basic concepts of UML including UML diagrams, history and modeling tools. It describes common UML diagram types such as use case diagrams, class diagrams and sequence diagrams.
The document discusses various modeling techniques used to model complex software systems, including UML diagrams. It describes different types of UML diagrams like class diagrams, object diagrams, sequence diagrams, and collaboration diagrams. It explains concepts like classes, associations, generalizations, aggregations, and interfaces. It provides examples of how these diagrams can be used to model different types of relationships between classes and objects.
Software Engineering Tools and Practices.pdfMeagGhn
This document discusses software engineering practices and tools, including the software crisis and issues like increasing complexity, poor quality, high costs and delays. It introduces Unified Modeling Language (UML) as a standard way to visually model software systems using diagrams. It describes different types of UML models including structural, behavioral and architectural modeling. It also discusses concepts like the software development life cycle, configuration management, revision control systems and how to create UML diagrams like use case diagrams and sequence diagrams.
The document discusses parallel computing over the past 25 years and challenges for using multicore chips in the next decade. It aims to provide context to scale applications effectively to 32-1024 cores. Key challenges include expressing inherent application parallelism while enabling efficient mapping to hardware through programming models and runtime systems. Future work includes developing methods to restore lost parallelism information and tradeoffs between programming effort, generality and performance.
This document discusses algorithms and data structures. It covers the requirements of algorithms including inputs, outputs, unambiguousness, generality, correctness, being finite, and efficiency. It also discusses representing algorithms through pseudo-code and flowcharts. Some key aspects of pseudo-code are described such as its purpose to define algorithms simply and its use of limited vocabulary and English-like notation. Common control structures like sequence, selection, and repetition are explained. Examples of bubble sort, selection sort, and insertion sort algorithms are also mentioned.
The document provides an overview of 7 management tools: Affinity Diagram, Interrelationship Diagraph, Tree Diagram, Matrix Diagrams, Prioritization Matrix, Process Decision Program Charts (PDPC), and Activity Network Diagrams. It defines each tool, explains how to use it through examples, and illustrates the tools with diagrams. The tools are designed to help structure thinking, simplify complex problems, improve analysis, and facilitate planning and decision making.
Class and object diagrams are commonly used in UML to model the static design view of a system. A class diagram shows the classes, interfaces, and relationships in a system, while an object diagram shows the instances of classes at a specific point in time. Class diagrams are important for visualizing, specifying, documenting, and constructing systems through forward and reverse engineering. Object diagrams can model snapshots of object structures in a running system and are useful for modeling complex data structures. Both diagrams indicate which elements know about others and what type of relationships exist between them.
This document provides an overview of various operations research (OR) models, including: linear programming, network flow programming, integer programming, nonlinear programming, dynamic programming, stochastic programming, combinatorial optimization, stochastic processes, discrete time Markov chains, continuous time Markov chains, queuing, and simulation. It describes the basic components and applications of each model type at a high level.
Senior Seminar in Business Administration BUS 499Coope.docxWilheminaRossi174
Senior Seminar in Business Administration
BUS 499
Cooperative Strategy
Hitt, M.A., Ireland, R.D., & Hoskisson, R.E. (2009). BUS499: Strategic management: Competitiveness and globalization, concepts and cases: 2009 custom edition (8th ed.). Mason, OH: South-Western Cengage Learning.
Welcome to Senior Seminar in Business Administration.
In this lesson we will discuss Cooperative Strategy.
Please go to the next slide.
ObjectivesUpon completion of this lesson, you will be able to:Identify various levels and types of strategy in a firm
Upon completion of this lesson, you will be able to:
Identify various levels and types of strategy in a firm.
Please go to the next slide.
Supporting TopicsStrategic alliancesCooperative strategiesCompetitive risks
In order to achieve this objective, the following supporting topics will be covered:
Strategic alliances;
Cooperative strategies; and
Competitive risks.
Please go to the next slide.
Strategic AlliancesCooperative strategyStrategic allianceCombination of resources and capabilitiesExchange and sharing of resourcesFirms leverage existing resourcesCornerstone of many firms’ competitive strategy
Recognized as a viable engine of firm growth, cooperative strategy is a strategy in which firms work together to achieve a shared objective. Thus, cooperating with other firms is another strategy firms use to create value for a customer that exceeds the cost of providing that value and to establish a favorable position relative to competition.
A strategic alliance is a cooperative strategy in which firms combine some of their resources and capabilities to create a competitive advantage. Thus, strategic alliances involve firms with some degree of exchange and sharing of resources and capabilities to co-develop, sell, and service goods or services. Strategic alliances allow firms to leverage their existing resources and capabilities while working with partners to develop additional resources and capabilities as the foundation for new competitive advantages. To be certain, the reality today is that strategic alliances have become a cornerstone of many firms’ competitive strategy.
Please go to the next slide.
Strategic Alliances, continuedJoint ventureEquity strategic allianceNonequity strategic alliance
The three major types of strategic alliances include joint venture, equity strategic alliance, and nonequity strategic alliance.
A joint venture is a strategic alliance in which two or more firms create a legally independent company to share some of their resources and capabilities to develop a competitive advantage. Joint ventures, which are often formed to improve firms’ abilities to compete in uncertain competitive environments, are effective in establishing long-term relationships and in transferring tacit knowledge. Because it can’t be codified, tacit, or implied, knowledge is learned through experiences such as those taking place when people from partner firms work together in a join.
Select two countries that have been or currently are in confli.docxWilheminaRossi174
Select two countries that have been or currently are in conflict.
Compare the two countries using the cultural dimensions interactive index.
Briefly describe the two countries that you selected and the conflict in which they are engaged. Explain why you selected them.
Compare the two countries on the following dimensions: collectivism-individualism, masculinity-femininity, power distance, long-term orientation, and uncertainty avoidance.
Explain what insights you had or conclusions that you might now draw about the countries and/or the conflict between them based on your comparison.
Explain the role that culture plays in this conflict and how dimensions of culture might influence the resolution of the conflict.
"Hofstede's Cultural Dimensions: Understanding Workplace Values Around the World." Notice the differences between each dimension of culture.
.
More Related Content
Similar to se_lectures.DS_Store__MACOSXse_lectures._.DS_Storese_
The document discusses software architecture, including definitions, principles, patterns, and modeling techniques. It defines architecture as the structure of a system comprising software elements and relationships. Some key principles discussed are single responsibility, open/closed, and dependency inversion. Common patterns like MVC, layered, and multitier architectures are explained. The document also introduces Unified Modeling Language (UML) for modeling systems using diagrams like class, component, and package diagrams.
DIRECTIONS READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE I.docxlynettearnold46882
DIRECTIONS: READ THE FOLLOWING STUDENT POST AND RESPOND EVALUATE ITS CONTENT. PLEASE CITE ALL REFERENCES
Katie Kessler
Unit 2 Discussion 1
Top of Form
The word “noir” is used to remember the scaling of measurement in psychology (Embretson, 2004). In short, the letters stand for nominal, ordinal, interval and ratio (Embretson, 2004). To give a brief introduction of what each scale measures, “nominal is the simplest way to measure” because it focuses on categorizing measurements on a scale of category, according to Embretson (2004). An example of nominal is eye color. “Ordinal measures in terms of ranking, interval measures scores of tests that focus on unobservable mental functioning and ratio focuses on measuring activities in the physical world, such as someone’s running time” (Embretson, 2004). With different scales of measurement, there are two methods to compare sets of data. These include norm-referenced and criterion-referenced testing. According to Embretson (2004) norm-referenced testing “yields information on a testtaker’s standing or ranking relative to some comparison group of testtakers.” In other words, it focuses on the performance of peers. Criterion-referenced testing is a little different because it focuses on examining individual’s scores to a set standard (Embretson, 2004).
The ability for ordinal measurement scale to be utilized on a standardized test as a norm-referenced test is high since an ordinal scale is based upon ranking and norm-referenced testing gathers information on the examinees ranking compared to a group of testtakers. For example, a study conducted on decision making with the use of ordinal variables states that ordinal measurement scales has the ability to be utilized by norm-referenced testing (Barua, Kademane, Das, Gubbiyappa, Verma, & Al-Dubai, 2014).On the other hand, ordinal scaling would not be a strong measurement for criterion-referenced testing because it focuses on the ranking rather than the measurement of the scores to be close to a set standard.
Ratio scaling directs its focus on measuring objects and activities in the physical world which would be beneficial for criterion-referenced testing instead of norm-referenced testing. Imagine a marathon runner who was trying to beat the world’s fastest time running a marathon. Criterion-referenced testing allows the runner to be aware of the set standard the marathon runner needs to beat to be the best and set a new standard. Norm-referenced testing would not be as useful because the marathon runner would not have the standard measurement he or she needs to beat. However, the marathon runner would be aware of the relative time he or she needs to beat to be the best. That is not as helpful as the criterion-referenced testing because runners need an exact number instead of a relative number in comparison to other runners.
Norm-referenced data would be collected by “the standards relative to a group, such as means and standard deviation.
This document discusses various modeling techniques used during the analysis phase of software engineering. It covers scenario-based modeling including use cases, activity diagrams, and swimlane diagrams. It also discusses flow-oriented modeling using data flow diagrams and grammars. Additionally, it discusses class-based modeling including identifying analysis classes, class diagrams, and the class-responsibility-collaborator technique. Finally, it discusses behavioral modeling including identifying events and creating state and sequence diagrams.
The document discusses object-oriented analysis and design (OOAD). It states that OOAD is a process of creating abstractions to meet system requirements independently of the programming language. Objects encapsulate state and behavior and communicate via message passing. While OOAD may increase development time, it facilitates reuse, maintenance, and verification. The document also discusses OO principles, the iterative analysis-design-implementation process, object-oriented analysis to identify classes and objects, and techniques for OOAD like use cases, domain modeling, CRC cards, and UML.
The document discusses different approaches and methods for synchronizing team members during software development projects. It describes static waterfall and agile iterative development processes. It also introduces Unified Modeling Language (UML) diagrams for visually representing software architecture and interactions, including activity diagrams, sequence diagrams, and use case diagrams. These diagrams use standardized symbols and notation to clearly depict processes, objects, messages, and functionality.
The document discusses various diagram types used in the Unified Modeling Language (UML) for modeling software systems. It describes class diagrams, which show classes, relationships between classes, and class properties and methods. It also summarizes sequence diagrams, use case diagrams, state machine diagrams, activity diagrams, component diagrams, and deployment diagrams. The diagrams are used at different stages of software development for visualization, specification, construction, and documentation.
The document provides an overview of the Unified Modeling Language (UML) including what UML is, why it is used, common UML diagrams, and tools for UML modeling. UML is a standard modeling language used to visualize, specify, construct and document artifacts of a software system. Common UML diagrams include use case diagrams, class diagrams, sequence diagrams, state diagrams and collaboration diagrams. Popular UML modeling tools mentioned are ArgoUML, Rational Rose, UML Studio and TogetherSoft Control Center.
The objective is to explain how a software design may be represented as a set of interacting objects that manage their own state and operations and to introduce various models that describe an object-oriented design.
This document introduces object-oriented design concepts. It discusses how software design can be represented using interacting objects that manage their own state and operations. Various models for describing object-oriented design are introduced, including class diagrams, sequence diagrams, and state machine diagrams. Design patterns are also introduced as a way to reuse knowledge about solving common design problems.
The document provides an introduction to the Unified Modeling Language (UML). It discusses what modeling is and defines UML as an industry-standard graphical language used to specify, visualize, construct and document the artifacts of software systems. The document outlines the basic concepts of UML including UML diagrams, history and modeling tools. It describes common UML diagram types such as use case diagrams, class diagrams and sequence diagrams.
The document discusses various modeling techniques used to model complex software systems, including UML diagrams. It describes different types of UML diagrams like class diagrams, object diagrams, sequence diagrams, and collaboration diagrams. It explains concepts like classes, associations, generalizations, aggregations, and interfaces. It provides examples of how these diagrams can be used to model different types of relationships between classes and objects.
Software Engineering Tools and Practices.pdfMeagGhn
This document discusses software engineering practices and tools, including the software crisis and issues like increasing complexity, poor quality, high costs and delays. It introduces Unified Modeling Language (UML) as a standard way to visually model software systems using diagrams. It describes different types of UML models including structural, behavioral and architectural modeling. It also discusses concepts like the software development life cycle, configuration management, revision control systems and how to create UML diagrams like use case diagrams and sequence diagrams.
The document discusses parallel computing over the past 25 years and challenges for using multicore chips in the next decade. It aims to provide context to scale applications effectively to 32-1024 cores. Key challenges include expressing inherent application parallelism while enabling efficient mapping to hardware through programming models and runtime systems. Future work includes developing methods to restore lost parallelism information and tradeoffs between programming effort, generality and performance.
This document discusses algorithms and data structures. It covers the requirements of algorithms including inputs, outputs, unambiguousness, generality, correctness, being finite, and efficiency. It also discusses representing algorithms through pseudo-code and flowcharts. Some key aspects of pseudo-code are described such as its purpose to define algorithms simply and its use of limited vocabulary and English-like notation. Common control structures like sequence, selection, and repetition are explained. Examples of bubble sort, selection sort, and insertion sort algorithms are also mentioned.
The document provides an overview of 7 management tools: Affinity Diagram, Interrelationship Diagraph, Tree Diagram, Matrix Diagrams, Prioritization Matrix, Process Decision Program Charts (PDPC), and Activity Network Diagrams. It defines each tool, explains how to use it through examples, and illustrates the tools with diagrams. The tools are designed to help structure thinking, simplify complex problems, improve analysis, and facilitate planning and decision making.
Class and object diagrams are commonly used in UML to model the static design view of a system. A class diagram shows the classes, interfaces, and relationships in a system, while an object diagram shows the instances of classes at a specific point in time. Class diagrams are important for visualizing, specifying, documenting, and constructing systems through forward and reverse engineering. Object diagrams can model snapshots of object structures in a running system and are useful for modeling complex data structures. Both diagrams indicate which elements know about others and what type of relationships exist between them.
This document provides an overview of various operations research (OR) models, including: linear programming, network flow programming, integer programming, nonlinear programming, dynamic programming, stochastic programming, combinatorial optimization, stochastic processes, discrete time Markov chains, continuous time Markov chains, queuing, and simulation. It describes the basic components and applications of each model type at a high level.
Senior Seminar in Business Administration BUS 499Coope.docxWilheminaRossi174
Senior Seminar in Business Administration
BUS 499
Cooperative Strategy
Hitt, M.A., Ireland, R.D., & Hoskisson, R.E. (2009). BUS499: Strategic management: Competitiveness and globalization, concepts and cases: 2009 custom edition (8th ed.). Mason, OH: South-Western Cengage Learning.
Welcome to Senior Seminar in Business Administration.
In this lesson we will discuss Cooperative Strategy.
Please go to the next slide.
ObjectivesUpon completion of this lesson, you will be able to:Identify various levels and types of strategy in a firm
Upon completion of this lesson, you will be able to:
Identify various levels and types of strategy in a firm.
Please go to the next slide.
Supporting TopicsStrategic alliancesCooperative strategiesCompetitive risks
In order to achieve this objective, the following supporting topics will be covered:
Strategic alliances;
Cooperative strategies; and
Competitive risks.
Please go to the next slide.
Strategic AlliancesCooperative strategyStrategic allianceCombination of resources and capabilitiesExchange and sharing of resourcesFirms leverage existing resourcesCornerstone of many firms’ competitive strategy
Recognized as a viable engine of firm growth, cooperative strategy is a strategy in which firms work together to achieve a shared objective. Thus, cooperating with other firms is another strategy firms use to create value for a customer that exceeds the cost of providing that value and to establish a favorable position relative to competition.
A strategic alliance is a cooperative strategy in which firms combine some of their resources and capabilities to create a competitive advantage. Thus, strategic alliances involve firms with some degree of exchange and sharing of resources and capabilities to co-develop, sell, and service goods or services. Strategic alliances allow firms to leverage their existing resources and capabilities while working with partners to develop additional resources and capabilities as the foundation for new competitive advantages. To be certain, the reality today is that strategic alliances have become a cornerstone of many firms’ competitive strategy.
Please go to the next slide.
Strategic Alliances, continuedJoint ventureEquity strategic allianceNonequity strategic alliance
The three major types of strategic alliances include joint venture, equity strategic alliance, and nonequity strategic alliance.
A joint venture is a strategic alliance in which two or more firms create a legally independent company to share some of their resources and capabilities to develop a competitive advantage. Joint ventures, which are often formed to improve firms’ abilities to compete in uncertain competitive environments, are effective in establishing long-term relationships and in transferring tacit knowledge. Because it can’t be codified, tacit, or implied, knowledge is learned through experiences such as those taking place when people from partner firms work together in a join.
Select two countries that have been or currently are in confli.docxWilheminaRossi174
Select two countries that have been or currently are in conflict.
Compare the two countries using the cultural dimensions interactive index.
Briefly describe the two countries that you selected and the conflict in which they are engaged. Explain why you selected them.
Compare the two countries on the following dimensions: collectivism-individualism, masculinity-femininity, power distance, long-term orientation, and uncertainty avoidance.
Explain what insights you had or conclusions that you might now draw about the countries and/or the conflict between them based on your comparison.
Explain the role that culture plays in this conflict and how dimensions of culture might influence the resolution of the conflict.
"Hofstede's Cultural Dimensions: Understanding Workplace Values Around the World." Notice the differences between each dimension of culture.
.
Serial KillersFor this assignment you will review a serial kille.docxWilheminaRossi174
Serial Killers
For this assignment you will review a serial killer's case in depth. The killer you choose to review will also be the subject of your Week 5 final assignment, so keep your research material handy.
First, choose
one
of the following serial killers:
David Berkowitz ("Son of Sam") taunted police over a year and shot 15 people (6 died) in New York City. The movie "Summer of Sam" was about this time.
Gary Ridgway (the "Green River Killer") holds the American record for most victims. He confessed to killing 48 over a 16-year period but is suspected of having killed many more!
Wayne B. Williams is believed to be the killer of 24 children and young men in Atlanta, though there is still some doubt.
John Allen Muhammad and Lee Boyd Malvo were the "DC snipers" who shot 13 people (ten died) over three weeks in the Washington DC area in 2002.
Ted Bundy: Confessed to almost 30 murders (there may have been more). He was known for being smart and good-looking, and acted as his own lawyer.
Jeffrey Dahmer: His case captured worldwide attention after his capture, mostly due to his habit of keeping parts of his victims long after their deaths, as well as cannibalism and necrophilia.
Kristen Gilbert: An example of a female serial killer, she was a nurse who killed hospital patients in her care.
For this assignment, create a report in Microsoft Word that covers the following points:
Summarize the case: time period, location, number of victims, etc.
Describe the killer's background, methods, and area of operation.
How did the killer select his or her victims? Was there anything that the victims did to provoke the killer?
By analyzing all of the above information, you should now be able to propose a
three-part typology
and explain your analysis. Your typology should describe the killer's
motivation, location, and organized or disorganized factors. For instance, John Wayne Gacy might be described as a
Power/Control, local, organized killer.
.
SESSION 1Michael Delarosa, Department ManagerWhat sugg.docxWilheminaRossi174
SESSION 1
Michael Delarosa, Department Manager
What suggestions do you have for improvement in regards to training new supervisors?
Make sure there are opportunities for hands on problem solving. Too much of our training is theory
and supervisors need to be focused on the real-world problems that come up.
What challenges do supervisors in our plants encounter that training would help them resolve?
I'd say that a lot of the challenges we see relate to the diversity on the line. There are a lot of different
types of people working at CapraTek and they don't always play well together.
What are the most important abilities for supervisors in our plants?
Well… the first thing that comes to mind is the ability to find information. Whether it's technical
information or answers for the people who report to you. Another key ability though is the ability to
acquire technical expertise. No one comes in knowing it all, but the ability to gain necessary
knowledge is very important.
What knowledge does a new supervisor need?
A solid understanding of the job itself. Supervisors provide a lot of training to new employees, so they
need to know our systems and processes inside and out.
Should training be conducted face to face, online, or a combination of both?
I'd say a combination. There are some topics that don't really need a classroom experience, but
others where the face-to-face interaction provides as much as the actual training materials. If it had to
be one or the other, I'd definitely say face to face.
Leland Butler, Shift Supervisor
What suggestions do you have for improvement in regards to training new supervisors?
Don't think you can cover this stuff once and be done with it. I went through supervisor training when I
was promoted, but I've gotta admit, I don't remember much of it. That kind of stuff doesn't always
stick unless you're doing it. Having an opportunity to be in the job and then get training on what you're
actually dealing with is better than sitting in a training room listening to someone talk about theories
and policies.
What challenges do supervisors in our plants encounter that training would help them resolve?
Well… like I said, being able to apply the leadership and supervisory ideas in realistic situations. I'm a
hands-on kind of person and it's always better if I can do something, so maybe like getting training on
performance reviews or some of the paperwork we're all dealing with. That would be helpful.
What are the most important abilities for supervisors in our plants?
Communication and flexibility. Hands down. You need to be able to shift gears decisively and
communicate with your team.
What knowledge does a new supervisor need?
He or she needs to know what the role of their team is to the division. How it all fits together. A good
supervisor needs to be able to communicate to the people who report to him what's going on and why
things are the way they are. So, he's got to be in .
Selecting & Implementing Interventions – Assignment #4
image1.png
image2.png
image3.png
Behavioral Interventions
Behav. Intervent. 19: 205–228 (2004)
Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/bin.161
MODIFICATIONS TOBASIC FUNCTIONAL
ANALYSIS PROCEDURES IN SCHOOL
SETTINGS: A SELECTIVE REVIEW
Janet Ellis* and Sandy Magee
University of North Texas, Denton, TX, USA
This review describes applied behavioral research involving functional analyses conducted in public
school settings. Functional analyses in public school settings often require added conditions. The
modified conditions described herein include changes to experimental designs, antecedent changes that
include task variation, tasks included, idiosyncratic variables, physiological conditions, and modified
escape conditions. Finally, consequent modifications cover peer attention, tangibles, varied attention,
and altered escape. Copyright # 2004 John Wiley & Sons, Ltd.
INTRODUCTION
The primary body of functional analysis (FA) literature has historically focused on
persons with developmental disabilities in institutional/residential settings who
engaged in severe self-injurious behavior (SIB). Mace and Lalli (1991) noted that
interventions based on FAs conducted in experimental settings under highly
controlled analog conditions may be effective only to the extent that those analog
conditions match the subject’s natural environment. Johnston (1993) recommended
that, once a procedure has been experimentally developed, its value and applicability
should be assessed under practical/natural conditions. Further, passage of Public Law
105-17, Individuals with Disabilities Education Act (IDEA), in 1997 mandated that a
‘functional behavioral assessment’ be conducted on students who exhibit significant
behavior and adjustment problems. For at least these reasons, FA research has moved
beyond the tightly controlled laboratory setting and into more natural environments
involving more diverse populations. Development of behavioral assessments of
problem behavior in school settings had empirical roots—for example, 36 years ago
Thomas, Becker, and Armstrong (1968) noted that classroom teacher’s disapproval
increased rates of student’s disruptive behavior. These assessments allowed effective
Copyright # 2004 John Wiley & Sons, Ltd.
*Correspondence to: Janet Ellis, Department of Behavior Analysis, University of North Texas, P.O. Box 310919,
Denton, TX 76203-0919, USA. E-mail: [email protected]
1099078x, 2004, 3, D
ow
nloaded from
https://onlinelibrary.w
iley.com
/doi/10.1002/bin.161 by B
ehavior A
nalyst C
ertification, W
iley O
nline L
ibrary on [14/11/2022]. See the T
erm
s and C
onditions (https://onlinelibrary.w
iley.com
/term
s-and-conditions) on W
iley O
nline L
ibrary for rules of use; O
A
articles are governed by the applicable C
reative C
om
m
ons L
icense
behavior change procedures to be implemented in t.
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/299831446
A Case Study of Global Leadership Development
Best Practice
Article · April 2016
CITATIONS
0
READS
1,059
4 authors, including:
Some of the authors of this publication are also working on these related projects:
Refreshing leadership development for the 21st century View project
Sebastian Salicru
University of Technology Sydney
13 PUBLICATIONS 4 CITATIONS
SEE PROFILE
All content following this page was uploaded by Sebastian Salicru on 07 April 2016.
The user has requested enhancement of the downloaded file.
https://www.researchgate.net/publication/299831446_A_Case_Study_of_Global_Leadership_Development_Best_Practice?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_2&_esc=publicationCoverPdf
https://www.researchgate.net/publication/299831446_A_Case_Study_of_Global_Leadership_Development_Best_Practice?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_3&_esc=publicationCoverPdf
https://www.researchgate.net/project/Refreshing-leadership-development-for-the-21st-century?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_9&_esc=publicationCoverPdf
https://www.researchgate.net/?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_1&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Sebastian_Salicru2?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Sebastian_Salicru2?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/University_of_Technology_Sydney2?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Sebastian_Salicru2?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_7&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Sebastian_Salicru2?enrichId=rgreq-605d143faf7dd6b0822af2ad7df3fbfc-XXX&enrichSource=Y292ZXJQYWdlOzI5OTgzMTQ0NjtBUzozNDgxMzIzODc5MDE0NDFAMTQ2MDAxMjYzNzU4Nw%3D%3D&el=1_x_10&_esc=publicationCoverPdf
A Case Study of Global
Leadership Development
Best Practice
“GLD is a challenging task that has become more imp.
Shared Reading FrameworkFollow this framework when viewing the v.docxWilheminaRossi174
Shared Reading Framework
Follow this framework when viewing the video lessons for Days 1,2, & 3 from Ms. Chan’s class. Compare and contrast Ms. Chan’s teaching to what is listed on this page.
(Whole)
Read aloud a shared or big book to the students. Label each step and clearly state how you will accomplish this.
·
Introduce the book: Explain what you will say to the students to introduce the book to them, if you choose to point out concepts of book, concepts of print, predicting, etc.
·
Picture Walk: Explain what you will do to provide a Picture Walk for the students, telling all that you will say to the students.
·
Read the book aloud: Explain how you will read the book aloud to the students, will you stop, on what pages, what will you say.
·
Students’ Responses: Develop a set of both literal and higher-order thinking questions to elicit student responses, use Bloom’s or Webb’s as a guide to questions.
(PART)
Direct Instruction (Name the reading skill and explain what it means)
· Explain:
(I do) Explain to the students what they will be learning and why they should learn it. Explain the skill they will be learning and explain “how it works” Summarize the skill in your own words. Teacher tells students everything you want them to learn
(objectives).
· Demonstrate
: (I do) Show the students what you would like them to do. Demonstrate to them what they will be doing to help them learn the skill. You must explain what you will do to demonstrate the skill you will be teaching. PROVIDE EXAMPLES and link to your explain step.
· Guide:
(We do, more teacher responsibility, some student responsibility) Guide the students to discuss and/or attempt the skill you just demonstrated. Explain how you will guide the students to allow them opportunities to try to apply the skill. Give support and feedback. Teacher brings students into discussion about objective and gives guidance and feedback
. (Feedback must be accurate, positive and encouraging, but also firm.)
· Practice:
(We do, more student responsibility) Explain specifically how you will guide the students to practice applying the skill by allowing them to work together with less teacher support but still feedback.
(WHOLE)
· Application:
(You do) (Read the book again and this time ask the students to apply what they learned about the reading skill to the book you are rereading.) Explain what you will have the students do to apply the skill to the text. The students should demonstrate that they can meet objective in this step.
· Students Reflect:
(You do) Develop a set of 6 – 8 questions you would ask the students to reflect on what they learned about the reading skill and what they learned from the book you read to them. This is a good time to ask questions that would meet.
Self-disclosureDepth of reflectionResponse demonstrates an in.docxWilheminaRossi174
Self-disclosure/Depth of reflection
Response demonstrates an in-depth reflection on, and personalization of, the theories, concepts, and/or strategies presented in the course materials to date. Viewpoints and interpretations are insightful and well supported. Clear, detailed examples are provided, as applicable. Demonstrates an open, non-defensive ability to self-appraise, discussing both growth and frustrations as they related to learning in class, as well as implications for future learning.
Analysis/Connection to reading and outside experiences
In-depth synthesis of thoughtfully selected aspects of experiences related to the course topics. Makes clear connections between what is learned from readings, outside experiences and the topics. The reflection is an in-depth analysis of the learning experience, the value of the derived learning to self or others, and the enhancement of the student’s appreciation for the discipline. Demonstrate further analysis and insight resulting from what you have learned from readings, includes reference to at least two readings other than those assigned for class.
Connection to course objectives and BSN outcomes
Synthesize, analyze and evaluate thoughtfully selected aspects of ideas or issues from the class discussion as they relate to the course learning outcomes and the BSN program outcome. (Review your syllabus and students handbook to help make connections)
Structure, organization and grammar
Writing is clear, concise, and well organized with excellent sentence/paragraph construction. Thoughts are expressed in a coherent and logical manner. There are no more than three spelling, grammar, or syntax errors per page of writing.
APA format, page limitations and spelling
Follows APA professional writing style of using 12 point Times New Roman
font, 1inch margins all around, correct
APA headings, and correct format of title page.
.
Seemingly riding on the coattails of SARS-CoV-2, the alarming sp.docxWilheminaRossi174
Seemingly riding on the coattails of SARS-CoV-2, the alarming spread of monkeypox across western Europe and the United States has filled the news cycle through the summer of 2022. Monkeypox is an orthopoxvirus, similar in presentation to smallpox and chickenpox (Varicella zoster). In contrast to the related poxviruses, monkeypox has been reported to spread by sexual contact and direct skin-to-skin contact, as well as through the traditional respiratory droplet route. While there is currently no effective treatment for infected individuals, two vaccines with good efficacy are available to help stem the spread of the disease. Likewise, individuals that have been vaccinated against smallpox with vaccinia virus have some protection against contracting monkeypox. While changes in sexual behavior among vulnerable populations has so far limited the outbreak, the disease is still spreading throughout the country and has caused a handful of deaths.
What is the life cycle of monkeypox, and how exactly is it spread? What does the fact that vaccination against smallpox provides some protection against monkeypox indicate about this virus? Also, what does the spread of monkeypox reveal about the susceptibility of the population to smallpox, a disease that has been considered eradicated worldwide since the late 1980s?
In addition to your original response, you will need to respond to at least two other students’ original posts. Responses should be substantive in nature instead of just reiterating what the original poster stated, or a “good job explaining” or “me too” type of post.
Please note that in your response, plagiarism is not allowed. Please do NOT simply cut and paste information from books, journals, websites, or other sources. In addition, direct quotation of sources, regardless of whether or not the source is cited, is not allowed. Please summarize the material and what you have learned in your own words.
.
See the attachment of 1 Article belowPlease answer all the que.docxWilheminaRossi174
See the attachment of 1 Article below
Please answer all the questions below in 1-2 pages (in MLA)
1) the important concepts and terms of the readings
2) the most important arguments of the readings
3) the parts of the readings they found confusing or unclear
4) how this reading relates to previous class readings, lectures, and discussions
You do not need to have a work cited page unless you have outside materials. Please let me know if you have questions.
.
SHAPING SCHOOL CULTURE BY LIVING THE VISION AND MISSIONNameI.docxWilheminaRossi174
SHAPING SCHOOL CULTURE BY LIVING THE VISION AND MISSION
Name
Institution
Date
School
Hello everyone and welcome to today’s presentation. The school in focus is Highland High School which has 9 to 12th grade.
2
Name
Highland High School
Grade levels
9 to 12
Mission
The mssion of the school is to “Empower students to use knowledge, skills, and strategies to become productive members of society who use higher level thinking”. The vision of the school is Students will “Own Their learning”
3
Mission statement
“Empower students to use knowledge, skills, and strategies to become productive members of society who use higher level thinking”
Vision statement
Students will “Own Their learning”
Strategies that embed the mission and vision
It is possible for a school to convey its ethos, mission, goals, and values to its students, staff, and parents in a variety of different methods. A school's prospectus or handbook should present information in a way that is clear and easy to comprehend, taking into account the diverse ethnic group in the area and maybe translating the text into many languages. The website of the school is the spot that makes the most sense to transmit any sort of information regarding the institution as a whole, including its ethos and so on. The internet is the first place that people search for information in this day and age since it can be accessed from anywhere in the world and every school now has its own personal website. Again, in order to experience the true environment of the school, it is necessary to combine this mode of communication with a trip to the location itself.
4
Strategy 1
Communication
Repetitive communication of the mission and vision ensures it is embedded (Jensen et al., 2018)
Communications will target all stakeholders
Technology tools will be used to facilitate communication to all stakeholders
Strategies that embed the mission and vision cont…
A well-defined statement that provides an explanation of the line of work that an individual plans to pursue over the entirety of his career is an example of a career objective. It is essential for each and every student to articulate their aspirations for their future careers. They are able to devise more efficient action plans as a result of this.
5
Strategy 2
Helping students establish career goals
Students will be encouraged to work hard to actualize the goals
Successful careers enable students to become productive members of the society (Şenol & Lesinger, 2018)
Strategies that embed the mission and vision cont…
Finding and employing the appropriate faculty members is possibly the single most significant factor that will determine the institution's long-term success. Even though conducting interviews and making hires is seen by many as an art form, there are tried-and-true strategies that the school may employ to boost its chances of finding the proper people to work there. These approaches are suppo.
Select a healthcare legislature of interest. Discuss the historica.docxWilheminaRossi174
Select a healthcare legislature of interest. Discuss the historical background of the legislation. For example, the person(s) who presented the bill. The committees the bill went through, and revision of the bill until it was passed into law. For example, health insurance is a problem within the USA. The ACA bill was created and pass into law.
.
See discussions, stats, and author profiles for this publicati.docxWilheminaRossi174
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/13998136
Self-management within a token economy for students with
learning disabilities
Article in Research in Developmental Disabilities · May 1997
DOI: 10.1016/S0891-4222(96)00045-5 · Source: PubMed
CITATIONS
17
READS
1,084
3 authors, including:
Some of the authors of this publication are also working on these related projects:
Self-regulation View project
Animal Assisted Physical Activity View project
Al Cavalier
University of Delaware
29 PUBLICATIONS 491 CITATIONS
SEE PROFILE
Ralph P Ferretti
University of Delaware
46 PUBLICATIONS 1,276 CITATIONS
SEE PROFILE
All content following this page was uploaded by Al Cavalier on 30 June 2018.
The user has requested enhancement of the downloaded file.
https://www.researchgate.net/publication/13998136_Self-management_within_a_token_economy_for_students_with_learning_disabilities?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_2&_esc=publicationCoverPdf
https://www.researchgate.net/publication/13998136_Self-management_within_a_token_economy_for_students_with_learning_disabilities?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_3&_esc=publicationCoverPdf
https://www.researchgate.net/project/Self-regulation-5?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_9&_esc=publicationCoverPdf
https://www.researchgate.net/project/Animal-Assisted-Physical-Activity?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_9&_esc=publicationCoverPdf
https://www.researchgate.net/?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_1&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Al_Cavalier?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_4&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Al_Cavalier?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_5&_esc=publicationCoverPdf
https://www.researchgate.net/institution/University_of_Delaware?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_6&_esc=publicationCoverPdf
https://www.researchgate.net/profile/Al_Cavalier?enrichId=rgreq-db53aece611d16c3ef6017901d8bec29-XXX&enrichSource=Y292ZXJQYWdlOzEzOTk4MTM2O0FTOjY0MzI5NDUxNDEyNjg0OEAxNTMwMzg0NzcyNTky&el=1_x_7&_esc=publicationCoverPdf
https://ww.
Segmented Assimilation Theory and theLife Model An Integrat.docxWilheminaRossi174
Segmented Assimilation Theory and the
Life Model: An Integrated Approach to
Understanding Immigrants and Their Children
Lissette M. Piedra and David W Engstrom
The life model offers social workers a promising framework to use in assisting immigrant
families. However, the complexities of adaptation to a new country may make it difficult
for social workers to operate from a purely ecological approach. The authors use segmented
assimilation theory to better account for the specificities of the immigrant experience. They
argue that by adding concepts from segmented assimilation theory to the life model, social
workers can better understand the environmental Stressors that increase the vulnerabilities
of immigrants to the potentially harsh experience of adapting to a new country. With these
concepts, social workers who work with immigrant families will be better positioned to
achieve their central goal: enhancing person and environment fit.
KEY WORDS: acculturation; assimilation; immigrants; life model; second generation
Nearly a century ago,Jane Addams (1910)
observed that immigrants needed help
integrating their European and American
experiences to give them meaning and a sense of
relation:
Power to see life as a whole is more needed in
the immigrant quarter of the city than anywhere
else Why should the chasm between fathers
and sons, yawning at the feet of each generation,
be made so unnecessarily cruel and impassable
to these bewildered immigrants? (p. 172)
The inability of some immigrant families to
integrate the cultural capital from the world left
behind with the demands of the new society creates
a gulf of experience between immigrants and their
children that can undermine the parental relation-
ship. Today, the issue of family cohesion in the face
of acculturative Stressors remains central to the im-
migrant experience and creates a sense of urgency
because it is so linked with the success of the second
generation. The size of the immigrant population
and the role their children \vill play in future labor
markets (Morales & Bonilla, 1993; Sullivan, 2006)
moves the problem from the realm of the person
to the status of a larger public concern.
Immigrant families are rapidly becoming the
"typical" American family. More than one in seven
families in the United States is headed by a foreign-
born adult. Children of immigrant parents are the
fastest growing segment of the nation's child popula-
tion (Capps, Fix, Ost, Reardon-Anderson, & Passel,
2004).The U.S. Census Bureau (2003) reported that
slightly more than 14 million children (approxi-
mately one in five) live in immigrant families; the
percentage is even higher (22 percent) for children
under the age of six (U.S. Census Bureau, 2001).
At a structural level, these changing demographics
create large-scale and long-range effects that bear
on many social services and many issues of social
pohcy (Sullivan, 2006). Specifically, the population
growth of native-born children in nonwhite.
Select a local, state, or national public policy that is relev.docxWilheminaRossi174
Select a local, state, or national public policy that is relevant today in the local, regional, or national news
Examples:
Local: community or urban growth (examples: results of rezoning, reuse of public structures, closed down school/public buildings that will convert to private business enterprise).
State: Private land converted to public spaces (examples: airports, road, or highway usage).
Federal: Gun policy, drug policy, immigration (examples: effects on jobs, background checks, cultural changes in communities).
Identify how the policy was formulated from a historical standpoint and identify which stakeholders were involved in the process.
Appraise the position whether the policy creates a benefit for one group (or stakeholder) while other groups experience disadvantages or negative challenges because of public policy implementation.
.
School of Community and Environmental HealthMPH Program .docxWilheminaRossi174
School of Community and Environmental Health
MPH Program
Epidemiology: MPH 746
(
Second
Assignment
)
(
Type in you name here as
First Name , Last Name
)
Read the Paper below and answer the following questions. Your answer should be typed in below; and the submitted document should be in Microsoft Word document. The answer for any question should not exceed one paragraph (5-6 lines). The deadline for submission is 11:59 pm EST Nov. 9th, 2022.
(
Ellison LF, Morrison HI:
Low serum cholesterol concentration and risk of suicide
.
Epidemiology
2001,
12
(2):168-172.
)
Question1 (Max. 0.5 point)
What is the purpose of the study?
Question2 (Max. 0.5 point)
What is the study design? What is the exposure? What is the outcome?
Question3 (Max. 2 points)
How the exposure was measured? How the outcome was measured?
Question4 (Max. 1.5 points)
From Table II, calculate the Crude Rate Ratio for serum total cholesterol <4.27 mmol/l compared to >5.77 mmol/l. (must show the details of calculation)
Question5 (Max. 1.5 points)
What is the meaning of this crude Rate Ratio?
Question6 (Max. 1.5 points)
In Table 3, what is the meaning of age and sex adjusted RR of serum total cholesterol <4.27 mmol/l compared to serum total cholesterol >5.77 mmol/l. Was there confounding by age and sex, why or why not? Is the RR statistically significant? What is the meaning of the 95%CI for the RR?
Question7 (Max. 0.5 points)
Was the ascertainment of the outcome as complete as possible? Was there a follow chart?
Question8 (Max. 0.5 points)
The authors stated in the discussion “The possibility of under-ascertainment of suicide deaths is always a concern, although it is probably unlikely that ascertainment varied by serum total cholesterol level”
Explain what the authors meant by their statement.
Question9 (Max. 0.5 points)
Were those who measured the outcome blinded from the exposure status?
Question10 (Max. 0.5 points)
Have the exposures been well measured, or is there any random or systematic misclassification?
Question11 (Max. 5 points)
Do the “exposed” differ from the “unexposed” with respect to other factors? Have these differences taken into account in the design or analysis? i.e. How the authors dealt with confounding?
1
image1.png
Students will synthesize the information they have gathered during the course to formulate a presentation advocating for a practice change in relation to an area of interest to NP practice.
Creating a Professional PowerPoint PresentationDownload Creating a Professional PowerPoint Presentation
In a PowerPoint Presentation, address the following.
1.
Title Slide
2.
Introduction (1 slide): Slide should identify concepts to be addressed and sections of the presentation. Include speaker’s notes that explain, in more detail, what will be covered.
.
School Effects on Psychological Outcomes During Adolescence.docxWilheminaRossi174
School Effects on Psychological Outcomes During Adolescence
Eric M. Anderman
University of Kentucky
Data from the National Longitudinal Study of Adolescent Health were used to examine school-level
differences in the relations between school belonging and various outcomes. In Study 1, predictors of
belonging were examined. Results indicated that belonging was lower in urban schools than in suburban
schools, and lower in schools that used busing practices than those that did not. In Study 2, the relations
between belonging and psychological outcomes were examined. The relations varied depending on the
unit of analysis (individual vs. aggregated measures of belonging). Whereas individual students’
perceptions of belonging were inversely related to depression, social rejection, and school problems,
aggregated belonging was related to greater reports of social rejection and school problems and to higher
grade point average.
Research on school-level differences during adolescence often
has focused on nonpsychological outcomes, such as academic
achievement and behavioral issues, instead of on psychological
outcomes (Roeser, 1998). Indeed, research on school-level differ-
ences in nonacademic variables is quite rare. The purpose of the
present research was to examine school-level differences in a
variety of psychological outcomes, using a large nationally repre-
sentative sample of adolescents.
School Effects on Student Outcomes
Although there is an abundant literature on effective schools,
most of the research in this literature has focused on academic
variables, such as achievement, dropping out, and grade point
average (GPA; e.g., Edmonds, 1979; Miller, 1985; Murphy, Weil,
Hallinger, & Mitman, 1985). This literature generally indicates
that schools that are academically effective have certain recogniz-
able characteristics.
Some of these studies have examined differences between pub-
lic schools and other types of schools. For example, some research
indicates that students who attend public schools achieve more
academically than do students who attend other types of schools
(e.g., Coleman & Hoffer, 1987). Other research suggests that there
may be a benefit in terms of academic achievement for students
who attend Catholic schools compared with non-Catholic schools
(Bryk, Lee, & Holland, 1993). Lee and her colleagues (Lee,
Chow-Hoy, Burkam, Geverdt, & Smerdon, 1998) found that stu-
dents who attended private schools took more advanced math
courses than did students who attended public schools. However,
they also found specific benefits for Catholic schools: Specifically,
in Catholic schools, there was greater school influence on the
courses that students took, and the social distribution of course
enrollment was found to be particularly equitable.
In recent years, psychologists have started to become interested
in the effects of schooling on mental health outcomes (e.g., Boe-
kaerts, 1993; Cowen, 1991; Roeser, Eccles, & Strobel, 1998;
Rutter,.
Search the gene belonging to the accession id you selected in week 2.docxWilheminaRossi174
Search the gene belonging to the accession id you selected in week 2. Use both Ensembl
https://useast.ensembl.org/index.html
and UCSC
https://genome.ucsc.edu/cgi-bin/hgGateway
genomic browsers to get these genomic/sequence features.
For transcript information including UTRs. provide:
Chromosome
Gene location
Coordinates (exons and introns) these are positions in the sequence
Total exon count -> state if this was the same as what you retrieved from NCBI. Note it could be different because it is a different organism.
ORF Strand: some tools present with signs such as -/+, others will state positive/negative or forward/reverse
promoter region
Coding Region
Coordinates (start and end sequence positions)
coding exon count (this may differ from the total count).
positions for coding exons
Compare and contrast the level of information provided by the two genomic browsers against each other and against the information you were able to get from NCBI resources
.
Main Java[All of the Base Concepts}.docxadhitya5119
This is part 1 of my Java Learning Journey. This Contains Custom methods, classes, constructors, packages, multithreading , try- catch block, finally block and more.
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...PECB
Denis is a dynamic and results-driven Chief Information Officer (CIO) with a distinguished career spanning information systems analysis and technical project management. With a proven track record of spearheading the design and delivery of cutting-edge Information Management solutions, he has consistently elevated business operations, streamlined reporting functions, and maximized process efficiency.
Certified as an ISO/IEC 27001: Information Security Management Systems (ISMS) Lead Implementer, Data Protection Officer, and Cyber Risks Analyst, Denis brings a heightened focus on data security, privacy, and cyber resilience to every endeavor.
His expertise extends across a diverse spectrum of reporting, database, and web development applications, underpinned by an exceptional grasp of data storage and virtualization technologies. His proficiency in application testing, database administration, and data cleansing ensures seamless execution of complex projects.
What sets Denis apart is his comprehensive understanding of Business and Systems Analysis technologies, honed through involvement in all phases of the Software Development Lifecycle (SDLC). From meticulous requirements gathering to precise analysis, innovative design, rigorous development, thorough testing, and successful implementation, he has consistently delivered exceptional results.
Throughout his career, he has taken on multifaceted roles, from leading technical project management teams to owning solutions that drive operational excellence. His conscientious and proactive approach is unwavering, whether he is working independently or collaboratively within a team. His ability to connect with colleagues on a personal level underscores his commitment to fostering a harmonious and productive workplace environment.
Date: May 29, 2024
Tags: Information Security, ISO/IEC 27001, ISO/IEC 42001, Artificial Intelligence, GDPR
-------------------------------------------------------------------------------
Find out more about ISO training and certification services
Training: ISO/IEC 27001 Information Security Management System - EN | PECB
ISO/IEC 42001 Artificial Intelligence Management System - EN | PECB
General Data Protection Regulation (GDPR) - Training Courses - EN | PECB
Webinars: https://pecb.com/webinars
Article: https://pecb.com/article
-------------------------------------------------------------------------------
For more information about PECB:
Website: https://pecb.com/
LinkedIn: https://www.linkedin.com/company/pecb/
Facebook: https://www.facebook.com/PECBInternational/
Slideshare: http://www.slideshare.net/PECBCERTIFICATION
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
How to Make a Field Mandatory in Odoo 17Celine George
In Odoo, making a field required can be done through both Python code and XML views. When you set the required attribute to True in Python code, it makes the field required across all views where it's used. Conversely, when you set the required attribute in XML views, it makes the field required only in the context of that particular view.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
The simplified electron and muon model, Oscillating Spacetime: The Foundation...RitikBhardwaj56
Discover the Simplified Electron and Muon Model: A New Wave-Based Approach to Understanding Particles delves into a groundbreaking theory that presents electrons and muons as rotating soliton waves within oscillating spacetime. Geared towards students, researchers, and science buffs, this book breaks down complex ideas into simple explanations. It covers topics such as electron waves, temporal dynamics, and the implications of this model on particle physics. With clear illustrations and easy-to-follow explanations, readers will gain a new outlook on the universe's fundamental nature.
हिंदी वर्णमाला पीपीटी, hindi alphabet PPT presentation, hindi varnamala PPT, Hindi Varnamala pdf, हिंदी स्वर, हिंदी व्यंजन, sikhiye hindi varnmala, dr. mulla adam ali, hindi language and literature, hindi alphabet with drawing, hindi alphabet pdf, hindi varnamala for childrens, hindi language, hindi varnamala practice for kids, https://www.drmullaadamali.com
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
1. se_lectures/.DS_Store
__MACOSX/se_lectures/._.DS_Store
se_lectures/Day15/WeatherMonitoringSystem.docx
Weather Monitoring System
Requirements Definition
The system shall provide automatic monitoring of various
weather conditions. Specifically, it must measure:
· Wind speed and direction
· Temperature
· Barometric pressure
· Humidity
The system shall also provide the following derived
measurements:
· Wind chill
· Dew point temperature
· Temperature trend
· Barometric pressure trend
The system shall interface with the following hardware: keypad,
wind-direction sensor, temperature sensor, clock (on-board
clock), humidity sensor, wind-speed sensor, pressure sensor,
and LCD display (capable of processing a simple set of graphics
primitives, including messages for drawing lines and arcs,
filling regions, and displaying text).
The system shall have a means of determining the current time
and date, so that it can report the highest and lowest values of
any of the four primary measurements during the previous 24-
hour period. The sampling rates are: every 0.1 second for wind
2. direction, every 0.5 seconds for wind speed, and every 5
minutes for temperature, barometric pressure, and humidity.
The system shall have a display that continuously indicates all
eight primary and derived requirements, as well as the current
time (hour, minutes, second) and date (day, month, year).
Through the use of a keypad, the user shall be able to direct the
system to display the 24-hour high or low value of any one
primary measurement, together with the time of the reported
value.
The user shall be able to choose either a 12- or 24-hour format
for the time.
The system shall allow the user to calibrate its sensors against
know values, and to set the current time and date. The wind
direction sensor requires neither calibration nor history.
Assume that each temperature sensor value is represented by a
fixed-point number, whose low and high points can be
calibrated to fit known actual values. Intermediate numbers
shall be translated to their actual temperatures by simple linear
interpolation between the two points.
Trends shall be expressed as a floating numbers between –1 and
1, representing the slope of a line fitting a number of values
over some interval of time.
__MACOSX/se_lectures/Day15/._WeatherMonitoringSystem.do
cx
se_lectures/Day15/.DS_Store
__MACOSX/se_lectures/Day15/._.DS_Store
3. se_lectures/Day15/Collaborations and Hierarchies.pptx
Collaborations and Hierarchies
Outline
Collaborations
Identifying collaborations
Recording collaborations
Hierarchies
Hierarchy graphs
Venn diagrams
Continuing Practice
"Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs, and the
Universe trying to produce bigger and better idiots. So far, the
Universe is winning."
-Rich Cook
Motivation for Collaborations
Two ways a class performs responsibilities
Knows something
Does something
Collaboration is
Request from one object to another in order to fulfill a
responsibility.
Motivation (Cont.)
Why identify collaborations?
Collaborations represents the flow of control and information
4. through the system.
May identify misplaced responsibilities, and
May identify missing responsibilities.
In sum, shows dynamics of the system.
Finding Collaborations
Look at each responsibility of each class:
Is the class capable of fulfilling this responsibility by itself?
If not, where can it get what it needs?
Look at each class:
What other classes need what this class does or knows?
Leverage the “Purpose” sentence of the class
Role-play scenarios, which class talks to which class to get the
information?
Finding More Collaborations
Examine relationships between classes, especially:
The “is-part-of” relationship.
The “has-knowledge-of” relationship.
The “depends-on” relationship.
Where do these relationships come from?
“Is-part-of” Relationship
May imply responsibilities for maintaining information.
May fulfill responsibilities by delegating them.
Two relationships (containment):
Composite
Aggregate
5. Which relationship is more likely to require collaborations?
7
Relationships in General
May know other classes that are not in part-of relationships
(i.e., associations in UML).
May imply responsibilities to know information, and thus
collaborations.
Can you think of an example?
Person
Phone book
8
Recording Collaborations
Write the name of the server (or helper) class on the CRC card
of the client.
Write the name directly to the right of the responsibility the
collaboration fulfills.
Class: Person
6. Responsibilities Collaborations
Knows name
Knows address AddressBook
Knows phone number PhoneBook
…
Client
Server
(or helper)
Collaborations
Is there a way to visualize the connections that classes have?
Collaboration Model
Graphical representation of collaborations
Arrow from client to a “contract” of the server, denoted by a
semicircle
Contract: group of responsibilities (more on this later)
Person
AddressBook
1
PhoneBook
2
7. Other Tools - UML
UML interaction diagrams
Sequence diagram (Chapter 10)
Communication diagram (Chapter 15)
Sequence Diagram Example
message
lifetime
control
object
Sequence Diagram
Collaboration
Communication Diagram
object
link
message
8. 15
Communication Diagram
Collaboration
16
Outline
Collaborations
Hierarchies
Hierarchy graph
Venn diagram
Continuing Practice
Review of CRC Process
Exploratory phase
Identify a preliminary list of classes, responsibilities and
collaborations.
Analysis phase
Obtain a more global understanding of the design, e.g., by using
tools such as:
Hierarchy graphs,
Venn diagrams, and
Contracts.
Hierarchy Graph
9. A graphical representation of inheritance between related
classes.
A hierarchy graph is a general tree.
The nodes are classes and the arcs represent inheritance.
Ancestor nodes are superclasses of descendent nodes, which are
subclasses.
As a heuristic, I recommend delaying the identification of
hierarchies until identification of classes is mostly complete.
Example – Hierarchy Graph
CRC notation
Leaf nodes are often concrete classes.
Non-leaf nodes are often abstract classes.
PartTime
FullTime
Employee
All classes can be designated as either abstract or concrete.
Concrete is the default. This means that the class can have
(direct) instances.
In contrast, abstract means that a class cannot have its own
(direct) instances.
10. Abstract classes exist purely to generalize common behavior
that would otherwise be duplicated across (sub)classes.
Ask the question: will the class become alive (as an object)
during runtime? If so, then it should be a concrete class,
otherwise it will be an abstract.
20
In UML …
PartTime
FullTime
Employee
Abstract Classes
Classes that cannot be instantiated.
Designed only to be inherited from, thus allowing reuse and
avoiding duplication.
Used to factor common behaviors among classes.
Finding Abstract Classes
At the exploratory stage, all identified classes are probably
concrete
A few may have been identified as abstract.
But, do you have all your abstract classes? That is, have you
used the power of abstraction (factoring behavior)?
Another Example of Hierarchy Graph
12. Thus, an intersection among classes:
Denotes common responsibilities, and thus
May indicates an abstract superclass
25
Example
PartTime
FullTime
Employee
PartTime
set of responsibilities
Employee
set of classes
PartTime
FullTime
Employee
FullTime
26
Exercise - 5 Minutes!
15. In Sum, Hierarchies …
Facilitate the review of inheritance relationships.
Use hierarchy graphs and Venn diagrams as a notation and an
analysis tool
29
How to build Good Hierarchies?
Model “is-a” relationships.
Factor common responsibilities as high as possible.
“Push” them up
Make sure abstract classes do not inherit from concrete classes.
Eliminate classes that do not add functionality.
Example – Using Venn Diagram To Check a Hierarchy
If B supports only a part of responsibilities defined for A, what
does the Venn diagram look like? How to fix this?
Hint: Model each Venn diagram class as a set of responsibilities
A
B
A
B
A
B
Which is it?????
31
16. The point here is: DON’T FORCE IT
Fixing the Problem
Create an abstract class with all responsibilities common to both
A and B, and have them both inherit from it.
This is called “Factoring”
Not to be confused with “Refactoring”
A
B
C
A
B
C
32
Example – Factoring Responsibilities
You will need at least 2 subclasses to inherit this responsibility
or might as well not even bother.
20. Design Introduction
Outline
Software Design Overview
High-Level
Low-Level
CRC
Identifying Classes
Identifying Responsibilities
Practice
Design Overview
What is Software Design?
Deals with transforming the requirements specifications into a
model that can be implemented using programming languages.
Can be broken down into two types
High-level (i.e., Architecture Design)
Low-level (i.e., Detailed Design)
Software Architecture
What is a Software Architecture?
High Level Design: Software Architecture
The primary way to implement nonfunctional requirements
Requires a deep understanding of the desired quality attributes
of the system, might necessitate negotiation and prioritization
with the stakeholders.
21. Can be difficult to guess right under an agile method.
High-level Vs Low-level
Architecture Design:
High-level deals with overarching nonfunctional goals of the
system.
Requires a complete understanding and prioritization of
nonfunctional requirements.
Detailed Design:
Focuses on the bridge between the functional requirements and
the actual implementation of the system.
Main concern is the maintainability and easy of implementation
of the system.
Software Architecture Issues
Architectures are strictly influenced by the desired
nonfunctional requirements.
Requires a complete understanding of the requirements for the
best architecture selection.
You can’t have your cake and eat it too..
Some quality attributes are mutually exclusive to a certain
degree
e.g., high performance and security, scalability and
availability..
This is why it is so important to prioritize and be able to
negotiate nonfunctional requirements with stakeholders.
Changing an architecture once it is installed is very difficult
Often times it is better to redo the system.
High-level Vs Low-level
Architecture Design:
22. High-level deals with overarching nonfunctional goals of the
system.
Requires a complete understanding and prioritization of
nonfunctional requirements.
Detailed Design:
Focuses on the bridge between the functional requirements and
the actual implementation of the system.
Main concern is the maintainability and easy of implementation
of the system.
Detailed Design
We need a method to convert requirement specifications into an
actual implementation of a software system
There are multiple ways, the book focuses on one approach.
In addition to this, I’ll teach you a different approach.
Class, Responsibility, and Collaborator (CRC) Cards
Invented in 1989 by Kent Beck and Ward Cunningham
A simple yet powerful object-oriented (analysis/design)
technique
Uses a collection of (standard index) cards that are divided into
three sections:
Class
Responsibility
Collaborator
Class, Responsibility, and Collaborator
A class represents a collection of the same objects.
A responsibility is anything that a class knows or does, a
23. service that it provides for the system.
A collaborator is another class that is used to get information
for, or performs actions for the class at hand to support a
responsibility.
Example
More on CRC Cards
3x5 (or 4x6) index cards, post-its, etc.
One class per card
In addition, you can also write superclasses and subclasses.
More on this later..
On the back, write a description of purpose of the class.
It should be one sentence.
Example: The purpose of this class is to represent a person in
the system.
Question
Why use index cards?
Advantages
Portable: cards can be used anywhere, even away from the
computer or office
Anthropomorphic: no computer program can capture the essence
of the interactions forced by passing the cards
Level of involvement felt by each team member increases
Useful throughout the life cycle
24. More Advantages
Provides a basis for a formal analysis and a design method
Serves as input to a formal method (i.e., a starting point)
Ease the transition from process orientation to object
orientation
Most of us (still?) think in a process oriented manner
Provides a general bound on the size of a class
A card
CRC Approach – The Process
Exploratory phase (Today)
Find classes
Determine operations and knowledge for each class
(responsibilities)
Determine how objects collaborate to discharge responsibilities
Analysis phase (Later)
Collect into subsystems
Improve design
How to Find Objects and Their Responsibilities?
Use nouns and verbs in requirement documents as clues
Noun phrases leads to objects
Verb phrases lead to responsibilities
Determine how objects collaborate to fulfill their
responsibilities
To collaborate, objects will play certain roles
Why is this important?
Objects lead to classes
Responsibilities lead to operations or methods
Collaborations and roles lead to associations
25. Identifying Objects (Classes)
Start with a set of requirement specifications
Look for noun phrases.
Separate into obvious classes, uncertain candidates, and
nonsense
Refine to a list of candidate classes.
Guidelines for Refining Candidate Classes
Model physical objects – e.g., disks, printers, station.
Model conceptual objects – e.g., windows, files, transaction,
log.
Choose one word for one concept – what does it mean within
the domain?
Be wary of adjectives – does it really signal a separate class?
Guidelines for Refining (Cont.)
Be wary of missing or misleading subjects – rephrase in active
voice.
Model categories of classes – delay modeling of inheritance.
Model interfaces to the system – e.g., user interface, program
interface.
Model attribute values, not attributes – e.g., customer vs.
customer address.
Example: Mail-Order Software
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
26. ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Example: Mail-Order Software
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Candidate Classes
Candidate Classes (Cont.)
Expect the list to evolve as design proceeds
Record why you decided to include or reject candidates
Candidate class list follows configuration management and
version control
27. A Good Class …
Has a clear and unambiguous name
Has a name that is recognizable by domain experts/stakeholders
Is a singular noun
Has responsibilities
May actively participate in the system
What Are Responsibilities?
The public services that an object may provide to other objects:
The knowledge an object maintains and provides
The actions that it can perform
That is they
Convey a sense of purpose of an object and its place in the
system
Record services that a class provides to fulfill roles within the
system
Record knowledge and manipulation of information in the
system
Knowledge and Action
Knowing responsibilities
Knowing about private encapsulated data
Knowing about related objects
Knowing about things it can derive or calculate
Doing responsibilities
Doing something itself, such as creating an object or performing
a manipulation
Initiating action in other objects
Controlling and coordinating activities of other objects
Identifying Responsibilities
Use mixtures of:
Verb phrase identification. Similar to noun phrase
28. identification, except verb phrases are candidate
responsibilities.
Scenarios and role play. Perform scenario walk-through of the
system where different persons “play” the classes, thinking
aloud about how they will delegate to other objects.
Class enumeration. Enumerate all candidate classes and come
up with an initial set of responsibilities.
Class relationship examination. Examine all classes and their
relationships to compare how they fulfill responsibilities.
Example of Verb Phrase Identification
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Example of Verb Phrase Identification
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
29. The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Candidate Responsibility
Responsibility Types
Identify the types of responsibilities for each class
Behavior – Describes what a class does (i.e. things that meets
the requirements of the system)
Knowledge – Describes what the class knows about itself (i.e.
attributes of the class)
Example
Knowledge or Behavior?
Know balance?
Verify customer?
Know account number?
Authorize transaction?
Track activity?
Last page visited?
Late fee amount?
Print layout?
Assigning Responsibility Types
For knowledge types
30. Match the responsibility with the class who owns the
information
For behavior types
Match the responsibility with the class who can do this
Look at the name and purpose of the class as a guideline
Practice!
ATM Example specifications
Cards
Read
Chapter 12, 13 & 14
Further readings
B. Beck and W. Cunningham, A Laboratory for Teaching
Object-Oriented Thinking, OOPSLA ’89, October 1-6, 1989.
R. Wirfs-Brock, B. Wilkerson and L. Wiener, L., Designing
Object-Oriented Software, Prentice Hall, 1990. (Chapters 3 and
4)
Hans Van Vliet, Software Engineering, Principles and
Practice,3rd edition, John Wiley & Sons, 2008. Sections 10.1.4
& 12.3
__MACOSX/se_lectures/Day14/._Design & Architecture.pptx
se_lectures/Day22/.DS_Store
__MACOSX/se_lectures/Day22/._.DS_Store
se_lectures/Day22/Weather.pptx
31. Weather Monitoring System
Classes
Classes
Sensors
Wind Speed
Wind Direction
Barometric Pressure
Humidity
Derived Measurements
Wind Chill
Dew Point Temp
Trends
Temp Trend
Barometric Trend
Continous Data
Specific Data
Time
Clock
Keypad
LCD
Graphics
Line
Arc
Region
Text
History Logs
Wind Speed
Wind Direction
Barometric Pressure
Humidity
32. Weather Monitoring System
Collaboration Graph
Weather Monitoring System
Contracts
Simple Contracts
Monitor Weather
Get current weather data
Query specific sensor 24 hour hi-lo data
Display graphic data
Capture user input
Get current time and date
Set time and date
Get sensor data
Get derived measurement
Calibrate sensor
Get 24 hour hi-lo for sensor
Generate graphic
36. Low Coupling
Abstractions
A plan for building a system
?
Building a bridge to code
How do we map the work we have done with our detailed
designs into actual code?
We can build classes (we have the cards with the names)
And we have our contracts.
How do we implement these?
Contracts describe interfaces
Classes provide interfaces for other classes to interact through
There are multiple ways to build classes and their routines
Traditional Building of Classes and Routines
Approaches
Ways to plan for implementation of contracts:
Pseudocode Programming Process (PPP)
Design by contract
Test-first
Pseudocode Programming Process
(PPP)
Approach based on using English-like statements to describe
code logic
Language independent
Less training required:
37. We all know English somewhat..
Can be verified without implementing anything
i.e. can be reviewed.
PPP-Design the routine
This can be guided by what we have designed, for example:
Your CRC contract from your detailed design can be the starting
point.
Write Pseudo-code that fulfills that contract.
Review!
PPP-Implement
Write code following your pseudocode.
You don’t have to think much, just read along.
Thoughts?
PPP-Review
Check the code
Can be a review, or be done by unit testing.
PPP-Repeat as necessary
You might encounter optimizations or you might need to clean
up the code.
Might identify factoring out, i.e. identifying new routines to be
extracted out.
PPP
Seems silly
Who needs pseudocode??
38. Only dumb programmers!
Thoughts?
PPP
Seems silly
Who need pseudocode??
However it isn’t just about you
Others can review before you implement potentially finding
issues
Others can understand what you’re going to do and therefore
accommodate their work to match yours
You can build test cases much easier this way
Design by Contract
A different approach:
“Applying Design by Contract,” B. Meyer, IEEE Computer, pp.
40-51, October 1992
Design by Contract
The next logical step after you have created your CRC
contracts.
Enhance them by adding:
Pre-conditions
Post-conditions
What are pre and post conditions?
Pre: What must be true to guarantee the execution of this
contract
Post: What is guaranteed to be true after the execution of this
contract
39. Pre-Condition
Capture the conditions that must be true in order for the method
to execute correctly
Describe the required state of the ADT or object before entering
the function
Written as an expression that is true or false
May consist of statements connected by logical operators (AND,
OR)
Use true when no pre-condition exists – should be rare.
15
Post-Condition
Must clearly state what is true when the method completes
execution
Describe the expected state upon exiting the function
Should be strong enough so that only correct implementations
will satisfy the condition
Think of an evil programmer.
16
Example
40. 17
Example Continued
18
Design by Contract
Pre an post conditions can be written
Use formal methods like
using a specification language
such as:
Z
JML
OCL
And others..
Informally, using English as a language
Pre: The internal private list will not empty and only contain
positive integers.
Post: The Sum() method will iterate through the private list, and
return the addition of all elements within that list.
Semi-formally, using a combination of the above.
Drawbacks of each?
Design by Contract
By writing pre and post conditions we gain the following
benefits:
41. We don’t have to be so defensive on production code (defensive
programming)
We have precise contract agreements that must be fulfilled
We can generate unit and integration testing much easier
Good Pre and Post Conditions
States
What (properties), e.g.,
The property of being square roots
The property of being sorted
The property of appearing in an array
Not how (algorithms), e.g.,
Not how to calculate square roots (linear, binary, Newton)
Not how to sort (bubble, insertion, quick)
Not how to decide whether an item appear in an array
21
21
Test-first
Produce automated tests before you code.
Test-first
Wait.. What?
Create tests and execute them without code??
Test-first
42. Produce automated tests before you code
Start with a small focused unit test
At first it will fail (it should fail, if it doesn’t then something is
already wrong)
Minimally develop code to pass this test
Refactor
Reorganize code without changing it’s behavior.
Repeat with the next test
Where do tests come from?
What is automated testing?
Test-first
Tests come from
Use Cases and Scenarios
CRC contracts
Automated testing is a way to create unit tests that can be
automatically tested
Such tools as NUnit, JUnit
Are a great tool for regression testing (regre-what?)
Benefits of this approach?
Test-first
Benefits:
You are testing as you go
You can fix issues faster because you’re closer to the code
Your testing becomes your abstract pseudocode.
But your code is only going to be as good as your testing
And a lot of effort will be invested in refactoring.
Approaches
43. All 3 approaches are valid
They all serve a purpose
Add …
se_lectures/.DS_Store
__MACOSX/se_lectures/._.DS_Store
se_lectures/Day15/WeatherMonitoringSystem.docx
Weather Monitoring System
Requirements Definition
The system shall provide automatic monitoring of various
weather conditions. Specifically, it must measure:
· Wind speed and direction
· Temperature
· Barometric pressure
· Humidity
The system shall also provide the following derived
measurements:
· Wind chill
· Dew point temperature
· Temperature trend
· Barometric pressure trend
The system shall interface with the following hardware: keypad,
wind-direction sensor, temperature sensor, clock (on-board
clock), humidity sensor, wind-speed sensor, pressure sensor,
and LCD display (capable of processing a simple set of graphics
primitives, including messages for drawing lines and arcs,
filling regions, and displaying text).
The system shall have a means of determining the current time
and date, so that it can report the highest and lowest values of
44. any of the four primary measurements during the previous 24-
hour period. The sampling rates are: every 0.1 second for wind
direction, every 0.5 seconds for wind speed, and every 5
minutes for temperature, barometric pressure, and humidity.
The system shall have a display that continuously indicates all
eight primary and derived requirements, as well as the current
time (hour, minutes, second) and date (day, month, year).
Through the use of a keypad, the user shall be able to direct the
system to display the 24-hour high or low value of any one
primary measurement, together with the time of the reported
value.
The user shall be able to choose either a 12- or 24-hour format
for the time.
The system shall allow the user to calibrate its sensors against
know values, and to set the current time and date. The wind
direction sensor requires neither calibration nor history.
Assume that each temperature sensor value is represented by a
fixed-point number, whose low and high points can be
calibrated to fit known actual values. Intermediate numbers
shall be translated to their actual temperatures by simple linear
interpolation between the two points.
Trends shall be expressed as a floating numbers between –1 and
1, representing the slope of a line fitting a number of values
over some interval of time.
__MACOSX/se_lectures/Day15/._WeatherMonitoringSystem.do
cx
se_lectures/Day15/.DS_Store
45. __MACOSX/se_lectures/Day15/._.DS_Store
se_lectures/Day15/Collaborations and Hierarchies.pptx
Collaborations and Hierarchies
Outline
Collaborations
Identifying collaborations
Recording collaborations
Hierarchies
Hierarchy graphs
Venn diagrams
Continuing Practice
"Programming today is a race between software engineers
striving to build bigger and better idiot-proof programs, and the
Universe trying to produce bigger and better idiots. So far, the
Universe is winning."
-Rich Cook
Motivation for Collaborations
Two ways a class performs responsibilities
Knows something
Does something
Collaboration is
Request from one object to another in order to fulfill a
responsibility.
Motivation (Cont.)
46. Why identify collaborations?
Collaborations represents the flow of control and information
through the system.
May identify misplaced responsibilities, and
May identify missing responsibilities.
In sum, shows dynamics of the system.
Finding Collaborations
Look at each responsibility of each class:
Is the class capable of fulfilling this responsibility by itself?
If not, where can it get what it needs?
Look at each class:
What other classes need what this class does or knows?
Leverage the “Purpose” sentence of the class
Role-play scenarios, which class talks to which class to get the
information?
Finding More Collaborations
Examine relationships between classes, especially:
The “is-part-of” relationship.
The “has-knowledge-of” relationship.
The “depends-on” relationship.
Where do these relationships come from?
“Is-part-of” Relationship
May imply responsibilities for maintaining information.
May fulfill responsibilities by delegating them.
Two relationships (containment):
47. Composite
Aggregate
Which relationship is more likely to require collaborations?
7
Relationships in General
May know other classes that are not in part-of relationships
(i.e., associations in UML).
May imply responsibilities to know information, and thus
collaborations.
Can you think of an example?
Person
Phone book
8
Recording Collaborations
Write the name of the server (or helper) class on the CRC card
of the client.
Write the name directly to the right of the responsibility the
collaboration fulfills.
48. Class: Person
Responsibilities Collaborations
Knows name
Knows address AddressBook
Knows phone number PhoneBook
…
Client
Server
(or helper)
Collaborations
Is there a way to visualize the connections that classes have?
Collaboration Model
Graphical representation of collaborations
Arrow from client to a “contract” of the server, denoted by a
semicircle
Contract: group of responsibilities (more on this later)
Person
AddressBook
1
PhoneBook
2
49. Other Tools - UML
UML interaction diagrams
Sequence diagram (Chapter 10)
Communication diagram (Chapter 15)
Sequence Diagram Example
message
lifetime
control
object
Sequence Diagram
Collaboration
Communication Diagram
object
link
51. Hierarchy Graph
A graphical representation of inheritance between related
classes.
A hierarchy graph is a general tree.
The nodes are classes and the arcs represent inheritance.
Ancestor nodes are superclasses of descendent nodes, which are
subclasses.
As a heuristic, I recommend delaying the identification of
hierarchies until identification of classes is mostly complete.
Example – Hierarchy Graph
CRC notation
Leaf nodes are often concrete classes.
Non-leaf nodes are often abstract classes.
PartTime
FullTime
Employee
All classes can be designated as either abstract or concrete.
Concrete is the default. This means that the class can have
(direct) instances.
In contrast, abstract means that a class cannot have its own
52. (direct) instances.
Abstract classes exist purely to generalize common behavior
that would otherwise be duplicated across (sub)classes.
Ask the question: will the class become alive (as an object)
during runtime? If so, then it should be a concrete class,
otherwise it will be an abstract.
20
In UML …
PartTime
FullTime
Employee
Abstract Classes
Classes that cannot be instantiated.
Designed only to be inherited from, thus allowing reuse and
avoiding duplication.
Used to factor common behaviors among classes.
Finding Abstract Classes
At the exploratory stage, all identified classes are probably
concrete
A few may have been identified as abstract.
But, do you have all your abstract classes? That is, have you
used the power of abstraction (factoring behavior)?
53. Another Example of Hierarchy Graph
Ordered
Collection
Indexable
Collection
Magnitude
Array
Matrix
String
Date
Abstract class
Venn Diagram
Another tool to understand inheritance relationships.
A Venn diagram views a class as a set of responsibilities, then
What does an intersection mean?
Common responsibilities
What might an intersection lead to?
54. Abstract classes
Thus, an intersection among classes:
Denotes common responsibilities, and thus
May indicates an abstract superclass
25
Example
PartTime
FullTime
Employee
PartTime
set of responsibilities
Employee
set of classes
PartTime
FullTime
Employee
FullTime
26
55. Exercise - 5 Minutes!
Ordered
Collection
Indexable
Collection
Magnitude
Array
Matrix
String
Date
Draw a Venn diagram for the following hierarchy graph.
27
Draw a Venn diagram for the following hierarchy graph
57. 28
In Sum, Hierarchies …
Facilitate the review of inheritance relationships.
Use hierarchy graphs and Venn diagrams as a notation and an
analysis tool
29
How to build Good Hierarchies?
Model “is-a” relationships.
Factor common responsibilities as high as possible.
“Push” them up
Make sure abstract classes do not inherit from concrete classes.
Eliminate classes that do not add functionality.
Example – Using Venn Diagram To Check a Hierarchy
If B supports only a part of responsibilities defined for A, what
does the Venn diagram look like? How to fix this?
Hint: Model each Venn diagram class as a set of responsibilities
A
B
A
B
A
B
Which is it?????
58. 31
The point here is: DON’T FORCE IT
Fixing the Problem
Create an abstract class with all responsibilities common to both
A and B, and have them both inherit from it.
This is called “Factoring”
Not to be confused with “Refactoring”
A
B
C
A
B
C
32
Example – Factoring Responsibilities
You will need at least 2 subclasses to inherit this responsibility
or might as well not even bother.
62. se_lectures/Day14/Design & Architecture.pptx
Design Introduction
Outline
Software Design Overview
High-Level
Low-Level
CRC
Identifying Classes
Identifying Responsibilities
Practice
Design Overview
What is Software Design?
Deals with transforming the requirements specifications into a
model that can be implemented using programming languages.
Can be broken down into two types
High-level (i.e., Architecture Design)
Low-level (i.e., Detailed Design)
Software Architecture
What is a Software Architecture?
High Level Design: Software Architecture
The primary way to implement nonfunctional requirements
Requires a deep understanding of the desired quality attributes
of the system, might necessitate negotiation and prioritization
63. with the stakeholders.
Can be difficult to guess right under an agile method.
High-level Vs Low-level
Architecture Design:
High-level deals with overarching nonfunctional goals of the
system.
Requires a complete understanding and prioritization of
nonfunctional requirements.
Detailed Design:
Focuses on the bridge between the functional requirements and
the actual implementation of the system.
Main concern is the maintainability and easy of implementation
of the system.
Software Architecture Issues
Architectures are strictly influenced by the desired
nonfunctional requirements.
Requires a complete understanding of the requirements for the
best architecture selection.
You can’t have your cake and eat it too..
Some quality attributes are mutually exclusive to a certain
degree
e.g., high performance and security, scalability and
availability..
This is why it is so important to prioritize and be able to
negotiate nonfunctional requirements with stakeholders.
Changing an architecture once it is installed is very difficult
Often times it is better to redo the system.
64. High-level Vs Low-level
Architecture Design:
High-level deals with overarching nonfunctional goals of the
system.
Requires a complete understanding and prioritization of
nonfunctional requirements.
Detailed Design:
Focuses on the bridge between the functional requirements and
the actual implementation of the system.
Main concern is the maintainability and easy of implementation
of the system.
Detailed Design
We need a method to convert requirement specifications into an
actual implementation of a software system
There are multiple ways, the book focuses on one approach.
In addition to this, I’ll teach you a different approach.
Class, Responsibility, and Collaborator (CRC) Cards
Invented in 1989 by Kent Beck and Ward Cunningham
A simple yet powerful object-oriented (analysis/design)
technique
Uses a collection of (standard index) cards that are divided into
three sections:
Class
Responsibility
Collaborator
Class, Responsibility, and Collaborator
65. A class represents a collection of the same objects.
A responsibility is anything that a class knows or does, a
service that it provides for the system.
A collaborator is another class that is used to get information
for, or performs actions for the class at hand to support a
responsibility.
Example
More on CRC Cards
3x5 (or 4x6) index cards, post-its, etc.
One class per card
In addition, you can also write superclasses and subclasses.
More on this later..
On the back, write a description of purpose of the class.
It should be one sentence.
Example: The purpose of this class is to represent a person in
the system.
Question
Why use index cards?
Advantages
Portable: cards can be used anywhere, even away from the
computer or office
Anthropomorphic: no computer program can capture the essence
of the interactions forced by passing the cards
66. Level of involvement felt by each team member increases
Useful throughout the life cycle
More Advantages
Provides a basis for a formal analysis and a design method
Serves as input to a formal method (i.e., a starting point)
Ease the transition from process orientation to object
orientation
Most of us (still?) think in a process oriented manner
Provides a general bound on the size of a class
A card
CRC Approach – The Process
Exploratory phase (Today)
Find classes
Determine operations and knowledge for each class
(responsibilities)
Determine how objects collaborate to discharge responsibilities
Analysis phase (Later)
Collect into subsystems
Improve design
How to Find Objects and Their Responsibilities?
Use nouns and verbs in requirement documents as clues
Noun phrases leads to objects
Verb phrases lead to responsibilities
Determine how objects collaborate to fulfill their
responsibilities
To collaborate, objects will play certain roles
Why is this important?
Objects lead to classes
Responsibilities lead to operations or methods
Collaborations and roles lead to associations
67. Identifying Objects (Classes)
Start with a set of requirement specifications
Look for noun phrases.
Separate into obvious classes, uncertain candidates, and
nonsense
Refine to a list of candidate classes.
Guidelines for Refining Candidate Classes
Model physical objects – e.g., disks, printers, station.
Model conceptual objects – e.g., windows, files, transaction,
log.
Choose one word for one concept – what does it mean within
the domain?
Be wary of adjectives – does it really signal a separate class?
Guidelines for Refining (Cont.)
Be wary of missing or misleading subjects – rephrase in active
voice.
Model categories of classes – delay modeling of inheritance.
Model interfaces to the system – e.g., user interface, program
interface.
Model attribute values, not attributes – e.g., customer vs.
customer address.
Example: Mail-Order Software
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
68. Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Example: Mail-Order Software
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Candidate Classes
Candidate Classes (Cont.)
Expect the list to evolve as design proceeds
Record why you decided to include or reject candidates
Candidate class list follows configuration management and
version control
69. A Good Class …
Has a clear and unambiguous name
Has a name that is recognizable by domain experts/stakeholders
Is a singular noun
Has responsibilities
May actively participate in the system
What Are Responsibilities?
The public services that an object may provide to other objects:
The knowledge an object maintains and provides
The actions that it can perform
That is they
Convey a sense of purpose of an object and its place in the
system
Record services that a class provides to fulfill roles within the
system
Record knowledge and manipulation of information in the
system
Knowledge and Action
Knowing responsibilities
Knowing about private encapsulated data
Knowing about related objects
Knowing about things it can derive or calculate
Doing responsibilities
Doing something itself, such as creating an object or performing
a manipulation
Initiating action in other objects
Controlling and coordinating activities of other objects
Identifying Responsibilities
70. Use mixtures of:
Verb phrase identification. Similar to noun phrase
identification, except verb phrases are candidate
responsibilities.
Scenarios and role play. Perform scenario walk-through of the
system where different persons “play” the classes, thinking
aloud about how they will delegate to other objects.
Class enumeration. Enumerate all candidate classes and come
up with an initial set of responsibilities.
Class relationship examination. Examine all classes and their
relationships to compare how they fulfill responsibilities.
Example of Verb Phrase Identification
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Example of Verb Phrase Identification
Imagine that you are developing order-processing software for a
mail order company, a reseller of products purchased from
various suppliers.
Twice a year the company publishes a catalog of products,
which is mailed to customers and other interested people.
Customers purchase products by submitting a list of products
71. with payment to the company. The company fills the order and
ships the products to the customer’s address.
The order processing software will track the order from the time
it is received until the product is shipped.
The company will provide quick service. They should be able to
ship a customer’s order by the fastest, most efficient means
possible.
Candidate Responsibility
Responsibility Types
Identify the types of responsibilities for each class
Behavior – Describes what a class does (i.e. things that meets
the requirements of the system)
Knowledge – Describes what the class knows about itself (i.e.
attributes of the class)
Example
Knowledge or Behavior?
Know balance?
Verify customer?
Know account number?
Authorize transaction?
Track activity?
Last page visited?
Late fee amount?
Print layout?
72. Assigning Responsibility Types
For knowledge types
Match the responsibility with the class who owns the
information
For behavior types
Match the responsibility with the class who can do this
Look at the name and purpose of the class as a guideline
Practice!
ATM Example specifications
Cards
Read
Chapter 12, 13 & 14
Further readings
B. Beck and W. Cunningham, A Laboratory for Teaching
Object-Oriented Thinking, OOPSLA ’89, October 1-6, 1989.
R. Wirfs-Brock, B. Wilkerson and L. Wiener, L., Designing
Object-Oriented Software, Prentice Hall, 1990. (Chapters 3 and
4)
Hans Van Vliet, Software Engineering, Principles and
Practice,3rd edition, John Wiley & Sons, 2008. Sections 10.1.4
& 12.3
__MACOSX/se_lectures/Day14/._Design & Architecture.pptx
se_lectures/Day22/.DS_Store
__MACOSX/se_lectures/Day22/._.DS_Store
73. se_lectures/Day22/Weather.pptx
Weather Monitoring System
Classes
Classes
Sensors
Wind Speed
Wind Direction
Barometric Pressure
Humidity
Derived Measurements
Wind Chill
Dew Point Temp
Trends
Temp Trend
Barometric Trend
Continous Data
Specific Data
Time
Clock
Keypad
LCD
Graphics
Line
Arc
Region
Text
History Logs
Wind Speed
Wind Direction
Barometric Pressure
Humidity
74. Weather Monitoring System
Collaboration Graph
Weather Monitoring System
Contracts
Simple Contracts
Monitor Weather
Get current weather data
Query specific sensor 24 hour hi-lo data
Display graphic data
Capture user input
Get current time and date
Set time and date
Get sensor data
Get derived measurement
Calibrate sensor
Get 24 hour hi-lo for sensor
78. A well designed system
High Cohesion
Low Coupling
Abstractions
A plan for building a system
?
Building a bridge to code
How do we map the work we have done with our detailed
designs into actual code?
We can build classes (we have the cards with the names)
And we have our contracts.
How do we implement these?
Contracts describe interfaces
Classes provide interfaces for other classes to interact through
There are multiple ways to build classes and their routines
Traditional Building of Classes and Routines
Approaches
Ways to plan for implementation of contracts:
Pseudocode Programming Process (PPP)
Design by contract
Test-first
Pseudocode Programming Process
(PPP)
Approach based on using English-like statements to describe
code logic
79. Language independent
Less training required:
We all know English somewhat..
Can be verified without implementing anything
i.e. can be reviewed.
PPP-Design the routine
This can be guided by what we have designed, for example:
Your CRC contract from your detailed design can be the starting
point.
Write Pseudo-code that fulfills that contract.
Review!
PPP-Implement
Write code following your pseudocode.
You don’t have to think much, just read along.
Thoughts?
PPP-Review
Check the code
Can be a review, or be done by unit testing.
PPP-Repeat as necessary
You might encounter optimizations or you might need to clean
up the code.
Might identify factoring out, i.e. identifying new routines to be
extracted out.
PPP
80. Seems silly
Who needs pseudocode??
Only dumb programmers!
Thoughts?
PPP
Seems silly
Who need pseudocode??
However it isn’t just about you
Others can review before you implement potentially finding
issues
Others can understand what you’re going to do and therefore
accommodate their work to match yours
You can build test cases much easier this way
Design by Contract
A different approach:
“Applying Design by Contract,” B. Meyer, IEEE Computer, pp.
40-51, October 1992
Design by Contract
The next logical step after you have created your CRC
contracts.
Enhance them by adding:
Pre-conditions
Post-conditions
What are pre and post conditions?
Pre: What must be true to guarantee the execution of this
contract
Post: What is guaranteed to be true after the execution of this
contract
81. Pre-Condition
Capture the conditions that must be true in order for the method
to execute correctly
Describe the required state of the ADT or object before entering
the function
Written as an expression that is true or false
May consist of statements connected by logical operators (AND,
OR)
Use true when no pre-condition exists – should be rare.
15
Post-Condition
Must clearly state what is true when the method completes
execution
Describe the expected state upon exiting the function
Should be strong enough so that only correct implementations
will satisfy the condition
Think of an evil programmer.
16
Example
82. 17
Example Continued
18
Design by Contract
Pre an post conditions can be written
Use formal methods like
using a specification language
such as:
Z
JML
OCL
And others..
Informally, using English as a language
Pre: The internal private list will not empty and only contain
positive integers.
Post: The Sum() method will iterate through the private list, and
return the addition of all elements within that list.
Semi-formally, using a combination of the above.
Drawbacks of each?
Design by Contract
83. By writing pre and post conditions we gain the following
benefits:
We don’t have to be so defensive on production code (defensive
programming)
We have precise contract agreements that must be fulfilled
We can generate unit and integration testing much easier
Good Pre and Post Conditions
States
What (properties), e.g.,
The property of being square roots
The property of being sorted
The property of appearing in an array
Not how (algorithms), e.g.,
Not how to calculate square roots (linear, binary, Newton)
Not how to sort (bubble, insertion, quick)
Not how to decide whether an item appear in an array
21
21
Test-first
Produce automated tests before you code.
Test-first
Wait.. What?
Create tests and execute them without code??
84. Test-first
Produce automated tests before you code
Start with a small focused unit test
At first it will fail (it should fail, if it doesn’t then something is
already wrong)
Minimally develop code to pass this test
Refactor
Reorganize code without changing it’s behavior.
Repeat with the next test
Where do tests come from?
What is automated testing?
Test-first
Tests come from
Use Cases and Scenarios
CRC contracts
Automated testing is a way to create unit tests that can be
automatically tested
Such tools as NUnit, JUnit
Are a great tool for regression testing (regre-what?)
Benefits of this approach?
Test-first
Benefits:
You are testing as you go
You can fix issues faster because you’re closer to the code
Your testing becomes your abstract pseudocode.
But your code is only going to be as good as your testing
And a lot of effort will be invested in refactoring.
85. Approaches
All 3 approaches are valid
They all serve a purpose
Add …
Name:
________________________________________________
_______________________________
Design of Software
Systems
The following specifications are to be used for
developing a design in this examination:
You have been recently hired by an online company to
develop and implement an online scientific
calculator. The following specifications describe the
initial delivery of the desired system.
The system’s user interface shall be graphical based.
The system’s user interface shall be accessible via an
online webpage.
The system’s user interface shall display buttons to
represent the elements of the calculator, such as
numbers and operations.
The system’s functionality will support entering
numeric digits in the range of 0-9 and up
86. to 32 digits.
The system’s functionality will allow entering decimal
numbers using the “.” to delimit the whole
number
from the fractional number.
The system’s functionality will support the following
arithmetic operations:
• Addition
• Subtraction
• Multiplication
• Division
The system’s functionality will support the following
advanced scientific operations:
• �" • �� • �& • � • log x
• sin x • cos x • tan x • n! • 10"
• arcsin x • arccos x • arctan x • mod x •
inv x
The system’s functionality will support two buttons to
reset operations and clear the transcript:
1. A button labeled “C” which will clear all
operations.
2. A button labeled “CE” which will clear the
last entered operation.
87. The system will display a textbox with a
scrollable bar containing the transcript of
operations as they
execute.
The system will provide a means to email a
transcript of operations to the user’s desired
email address.
1) Why is cohesion and coupling important with respect
to the design of a system? Fully justify
your answer. Take into consideration this answer when
answering the remainder of the exam.
2) Using the CRC Process, create at least 4 classes
(including responsibilities and collaborations) for
the desired system as described above.
88. 3) Define 3 Contracts for 3 different classes that
you created in question 2.
4) Create a collaboration diagram for the classes
you created in questions 2 and 3.
5) Using either a top-down approach or a bottom-
up approach (but just one, and state which one
you are using), sketch a high-level subsystem
collaboration graph.
89. 6) In class we discussed Protocols (Detailed Design) for
contracts. What is their purpose and why
do we do them? For the contract of
multiplication, writethe pre and post conditions.
7) Recall the Strategy Design pattern as shown
below:
What is the problem that this design pattern is
aiming to solve? How will this work with the
implementation of the calculator. Explain using
concrete examples, i.e. you may draw the UML
for this.
8) In class we discussed MVC. What benefits
90. can this provide to us in our calculator
implementation? Justify.