Software Engineering 2014 (SE2014)

Total Page:16

File Type:pdf, Size:1020Kb

Software Engineering 2014 (SE2014) 1 Software Engineering 2014 Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering A Volume of the Computing Curricula Series 23 February 2015 . Joint Task Force on Computing Curricula IEEE Computer Society Association for Computing Machinery 2 Preface This document was developed through an effort originally commissioned by the ACM Education Board and the IEEE-Computer Society Educational Activities Board to create curriculum recommendations in several computing disciplines: computer science, computer engineering, software engineering and information systems. Other professional societies have joined in a number of the individual projects. Such was the case for the SE2004 (Software Engineering 2004) project, which included participation by representatives from the Australian Computer Society, the British Computer Society, and the Information Processing Society of Japan. SE2004 Development Process The SE2004 project was driven by a Steering Committee appointed by the sponsoring societies. The development process began with the appointment of the Steering Committee co-chairs and a number of the other participants in the fall of 2001. More committee members, including representatives from the other societies were added in the first half of 2002. The following are the members of the SE2004 Steering Committee: Co-Chairs Rich LeBlanc, ACM, Georgia Institute of Technology, U.S. Ann Sobel, IEEE-CS, Miami University, U.S. Knowledge Area Chair Ann Sobel, Miami University, U.S. Pedagogy Focus Group Co-Chairs Mordechai Ben-Menachem, Ben-Gurion University, Israel Timothy C. Lethbridge, University of Ottawa, Canada Co-Editors Jorge L. Díaz-Herrera, Rochester Institute of Technology, U.S. Thomas B. Hilburn, Embry-Riddle Aeronautical University, U.S. Organizational Representatives ACM: Andrew McGettrick, University of Strathclyde, U.K. ACM SIGSOFT: Joanne M. Atlee, University of Waterloo, Canada ACM Two-Year College Education: Elizabeth K. Hawthorne, Union County College, U.S. Australian Computer Society: John Leaney, University of Technology Sydney, Australia British Computer Society: David Budgen, Keele University, U.K. Information Processing Society of Japan: Yoshihiro Matsumoto, Musashi Institute of Technology, Japan IEEE-CS Technical Committee on Software Engineering: J. Barrie Thompson, University of Sunderland, U.K. 3 SE2014 Revision Process This updated version of the curriculum guidelines was created by a joint effort of the ACM and the IEEE-Computer Society: IEEE CS Delegation ACM Delegation Mark Ardis, Chair (Stevens Institute) David Budgen (University of Durham) Greg Hislop (Drexel University) Jeff Offutt (George Mason University) Mark Sebern (Milwaukee School of Engineering) Willem Visser (University of Stellenbosch) 4 Acknowledgements The National Science Foundation, the Association of Computing Machinery, and the IEEE Computer Society have supported the development of this document and its predecessor, SE2004. We thank the many reviewers and technical experts who provided feedback and advice for this update, starting with those who contributed suggestions for improvements to SE2004. An online anonymous survey on that subject yielded 477 responses from software engineering educators and practitioners in 42 different countries. In addition to those participants we thank Jo Atlee and Renee McCauley for their assistance in assessing and planning the revision effort that followed. We thank the many participants at workshops and feedback sessions at SIGCSE 2013, CSEE&T 2013 and ICSE 2013. Their comments were particularly helpful in confirming the revisions that had already been made, and in suggesting additional improvements that we have incorporated into the final document. We are especially thankful for the extensive comments offered by expert reviewers Dennis Frailey, Tom Hilburn, Rich LeBlanc, Andrew McGettrick and Nancy Mead. We thank Steve Chenoweth from Rose-Hulman Institute of Technology, Sarah Lee from Mississippi State University, and Frank Tsui of Southern Polytechnic State University for providing examples of software engineering courses and curricula. We hope that this collection of examples will grow larger on the accompanying website provided by the ACM Education Board. We are grateful for the expert assistance provided by the IEEE- CS Technical Publications staff in producing a more coherent and consistent document. Finally, we thank the members of the ACM and IEEE-CS education boards who supported this effort, especially Andrew McGettrick from the Association for Computing Machinery and Tom Hilburn from the IEEE Computer Society who initiated the project. 5 Table of Contents Preface .................................................................................................................................................. 2 Acknowledgements .......................................................................................................................... 4 Chapter 1. Introduction ..................................................................................................... 7 1.1 Purpose of this Volume ........................................................................................................ 7 1.2 Where This Volume Fits in the Computing Curriculum Context ............................ 7 1.3 Development Process of the SE 2014 Volume .............................................................. 8 1.4 Changes from the Previous Version ................................................................................ 8 1.5 Structure of the Volume ....................................................................................................... 9 Chapter 2: The Software Engineering Discipline ..................................................... 10 2.1 Defining Software Engineering ....................................................................................... 10 2.2 The Evolution of Software Engineering ........................................................................ 12 2.3 The Reference Disciplines for Software Engineering .............................................. 14 2.4 Professional Practice .......................................................................................................... 17 2.5 Foundations and Related Work ...................................................................................... 19 Chapter 3: Guiding Principles ........................................................................................ 20 3.1 Expected Student Outcomes ............................................................................................. 20 3.2 SE 2014 Principles ............................................................................................................... 21 3.3 SE 2014 Goals for the Guidelines .................................................................................... 23 Chapter 4: Overview of Software Engineering Education Knowledge ............. 24 4.1 Process of Determining the SEEK ................................................................................... 24 4.2 Knowledge Areas, Units, and Topics ............................................................................. 24 4.3 Core Material ......................................................................................................................... 24 4.4 Unit of Time ........................................................................................................................... 25 4.5 Relationship of the SEEK to the Curriculum ............................................................... 26 4.6 Selection of Knowledge Areas ......................................................................................... 26 4.7 SE Education Knowledge Areas ....................................................................................... 26 4.8 Computing Essentials ......................................................................................................... 28 4.9 Mathematical and Engineering Fundamentals .......................................................... 29 4.10 Professional Practice ....................................................................................................... 30 4.11 Software Modeling and Analysis .................................................................................. 31 4.12 Requirements Analysis and Specification ................................................................. 31 4.13 Software Design ................................................................................................................. 32 4.14 Software Verification and Validation ......................................................................... 33 4.15 Software Process ............................................................................................................... 34 4.16 Software Quality ................................................................................................................ 35 4.17 Security ................................................................................................................................. 36 Chapter 5: Guidelines for SE Curriculum Design and Delivery ........................... 38 5.1 Developing and Teaching the Curriculum ................................................................... 38 5.2 Constructing the Curriculum ........................................................................................... 39 5.3 Attributes and Attitudes That Should Pervade the Curriculum
Recommended publications
  • Software Development Career Pathway
    Career Exploration Guide Software Development Career Pathway Information Technology Career Cluster For more information about NYC Career and Technical Education, visit: www.cte.nyc Summer 2018 Getting Started What is software? What Types of Software Can You Develop? Computers and other smart devices are made up of Software includes operating systems—like Windows, Web applications are websites that allow users to contact management system, and PeopleSoft, a hardware and software. Hardware includes all of the Apple, and Google Android—and the applications check email, share documents, and shop online, human resources information system. physical parts of a device, like the power supply, that run on them— like word processors and games. among other things. Users access them with a Mobile applications are programs that can be data storage, and microprocessors. Software contains Software applications can be run directly from a connection to the Internet through a web browser accessed directly through mobile devices like smart instructions that are stored and run by the hardware. device or through a connection to the Internet. like Firefox, Chrome, or Safari. Web browsers are phones and tablets. Many mobile applications have Other names for software are programs or applications. the platforms people use to find, retrieve, and web-based counterparts. display information online. Web browsers are applications too. Desktop applications are programs that are stored on and accessed from a computer or laptop, like Enterprise software are off-the-shelf applications What is Software Development? word processors and spreadsheets. that are customized to the needs of businesses. Popular examples include Salesforce, a customer Software development is the design and creation of Quality Testers test the application to make sure software and is usually done by a team of people.
    [Show full text]
  • FUNDAMENTALS of COMPUTING (2019-20) COURSE CODE: 5023 502800CH (Grade 7 for ½ High School Credit) 502900CH (Grade 8 for ½ High School Credit)
    EXPLORING COMPUTER SCIENCE NEW NAME: FUNDAMENTALS OF COMPUTING (2019-20) COURSE CODE: 5023 502800CH (grade 7 for ½ high school credit) 502900CH (grade 8 for ½ high school credit) COURSE DESCRIPTION: Fundamentals of Computing is designed to introduce students to the field of computer science through an exploration of engaging and accessible topics. Through creativity and innovation, students will use critical thinking and problem solving skills to implement projects that are relevant to students’ lives. They will create a variety of computing artifacts while collaborating in teams. Students will gain a fundamental understanding of the history and operation of computers, programming, and web design. Students will also be introduced to computing careers and will examine societal and ethical issues of computing. OBJECTIVE: Given the necessary equipment, software, supplies, and facilities, the student will be able to successfully complete the following core standards for courses that grant one unit of credit. RECOMMENDED GRADE LEVELS: 9-12 (Preference 9-10) COURSE CREDIT: 1 unit (120 hours) COMPUTER REQUIREMENTS: One computer per student with Internet access RESOURCES: See attached Resource List A. SAFETY Effective professionals know the academic subject matter, including safety as required for proficiency within their area. They will use this knowledge as needed in their role. The following accountability criteria are considered essential for students in any program of study. 1. Review school safety policies and procedures. 2. Review classroom safety rules and procedures. 3. Review safety procedures for using equipment in the classroom. 4. Identify major causes of work-related accidents in office environments. 5. Demonstrate safety skills in an office/work environment.
    [Show full text]
  • Top 10 Reasons to Major in Computing
    Top 10 Reasons to Major in Computing 1. Computing is part of everything we do! Computing and computer technology are part of just about everything that touches our lives from the cars we drive, to the movies we watch, to the ways businesses and governments deal with us. Understanding different dimensions of computing is part of the necessary skill set for an educated person in the 21st century. Whether you want to be a scientist, develop the latest killer application, or just know what it really means when someone says “the computer made a mistake”, studying computing will provide you with valuable knowledge. 2. Expertise in computing enables you to solve complex, challenging problems. Computing is a discipline that offers rewarding and challenging possibilities for a wide range of people regardless of their range of interests. Computing requires and develops capabilities in solving deep, multidimensional problems requiring imagination and sensitivity to a variety of concerns. 3. Computing enables you to make a positive difference in the world. Computing drives innovation in the sciences (human genome project, AIDS vaccine research, environmental monitoring and protection just to mention a few), and also in engineering, business, entertainment and education. If you want to make a positive difference in the world, study computing. 4. Computing offers many types of lucrative careers. Computing jobs are among the highest paid and have the highest job satisfaction. Computing is very often associated with innovation, and developments in computing tend to drive it. This, in turn, is the key to national competitiveness. The possibilities for future developments are expected to be even greater than they have been in the past.
    [Show full text]
  • The Roots of Software Engineering*
    THE ROOTS OF SOFTWARE ENGINEERING* Michael S. Mahoney Princeton University (CWI Quarterly 3,4(1990), 325-334) At the International Conference on the History of Computing held in Los Alamos in 1976, R.W. Hamming placed his proposed agenda in the title of his paper: "We Would Know What They Thought When They Did It."1 He pleaded for a history of computing that pursued the contextual development of ideas, rather than merely listing names, dates, and places of "firsts". Moreover, he exhorted historians to go beyond the documents to "informed speculation" about the results of undocumented practice. What people actually did and what they thought they were doing may well not be accurately reflected in what they wrote and what they said they were thinking. His own experience had taught him that. Historians of science recognize in Hamming's point what they learned from Thomas Kuhn's Structure of Scientific Revolutions some time ago, namely that the practice of science and the literature of science do not necessarily coincide. Paradigms (or, if you prefer with Kuhn, disciplinary matrices) direct not so much what scientists say as what they do. Hence, to determine the paradigms of past science historians must watch scientists at work practicing their science. We have to reconstruct what they thought from the evidence of what they did, and that work of reconstruction in the history of science has often involved a certain amount of speculation informed by historians' own experience of science. That is all the more the case in the history of technology, where up to the present century the inventor and engineer have \*-as Derek Price once put it\*- "thought with their fingertips", leaving the record of their thinking in the artefacts they have designed rather than in texts they have written.
    [Show full text]
  • Open Dissertation Draft Revised Final.Pdf
    The Pennsylvania State University The Graduate School ICT AND STEM EDUCATION AT THE COLONIAL BORDER: A POSTCOLONIAL COMPUTING PERSPECTIVE OF INDIGENOUS CULTURAL INTEGRATION INTO ICT AND STEM OUTREACH IN BRITISH COLUMBIA A Dissertation in Information Sciences and Technology by Richard Canevez © 2020 Richard Canevez Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy December 2020 ii The dissertation of Richard Canevez was reviewed and approved by the following: Carleen Maitland Associate Professor of Information Sciences and Technology Dissertation Advisor Chair of Committee Daniel Susser Assistant Professor of Information Sciences and Technology and Philosophy Lynette (Kvasny) Yarger Associate Professor of Information Sciences and Technology Craig Campbell Assistant Teaching Professor of Education (Lifelong Learning and Adult Education) Mary Beth Rosson Professor of Information Sciences and Technology Director of Graduate Programs iii ABSTRACT Information and communication technologies (ICTs) have achieved a global reach, particularly in social groups within the ‘Global North,’ such as those within the province of British Columbia (BC), Canada. It has produced the need for a computing workforce, and increasingly, diversity is becoming an integral aspect of that workforce. Today, educational outreach programs with ICT components that are extending education to Indigenous communities in BC are charting a new direction in crossing the cultural barrier in education by tailoring their curricula to distinct Indigenous cultures, commonly within broader science, technology, engineering, and mathematics (STEM) initiatives. These efforts require examination, as they integrate Indigenous cultural material and guidance into what has been a largely Euro-Western-centric domain of education. Postcolonial computing theory provides a lens through which this integration can be investigated, connecting technological development and education disciplines within the parallel goals of cross-cultural, cross-colonial humanitarian development.
    [Show full text]
  • Research on Programming Technology of Computer Software Engineering Database Based on Multi-Platform
    2019 4th International Industrial Informatics and Computer Engineering Conference (IIICEC 2019) Research on Programming Technology of Computer Software Engineering Database Based on Multi-Platform Wei Hongchang, Zhang Li Jiangxi Vocational College of Mechanical& Electronical Technology Jiangxi Nanchang 330013, China Keywords: Computers, Database, Programming, Software Engineering Abstract: With the rapid development of social science and technology, various trades and industries have also developed. For computer applications, the most important thing is the software system and hardware system in its components. As far as software engineering is concerned, in the construction of engineering chemical methods, the construction methods of engineering chemical should be combined to enhance the value of software application. The development of computer technology has formed a certain scale up to now, and it has dabbled in various fields. However, due to the different requirements of different industries on the performance of computer technology. Through the analysis of software database programming technology, in the creation of software computer structure, as a very important part, it will have a certain impact on the strength of computer computing ability. Aiming at the research of database programming technology in computer software engineering, this paper analyzes the advantages of database programming technology, and expounds the application of database programming technology in computer software engineering. 1. Introduction At the present stage, computing technology has been widely used in today's society and has penetrated into different industries in different fields. The arrival and popularization of computers have been highly valued and widely used. Through the analysis of software database programming technology, as a very important component in the creation of software computer composition structure, it will have a certain impact on the strength of computer computing ability [1].
    [Show full text]
  • From Ethnomathematics to Ethnocomputing
    1 Bill Babbitt, Dan Lyles, and Ron Eglash. “From Ethnomathematics to Ethnocomputing: indigenous algorithms in traditional context and contemporary simulation.” 205-220 in Alternative forms of knowing in mathematics: Celebrations of Diversity of Mathematical Practices, ed Swapna Mukhopadhyay and Wolff- Michael Roth, Rotterdam: Sense Publishers 2012. From Ethnomathematics to Ethnocomputing: indigenous algorithms in traditional context and contemporary simulation 1. Introduction Ethnomathematics faces two challenges: first, it must investigate the mathematical ideas in cultural practices that are often assumed to be unrelated to math. Second, even if we are successful in finding this previously unrecognized mathematics, applying this to children’s education may be difficult. In this essay, we will describe the use of computational media to help address both of these challenges. We refer to this approach as “ethnocomputing.” As noted by Rosa and Orey (2010), modeling is an essential tool for ethnomathematics. But when we create a model for a cultural artifact or practice, it is hard to know if we are capturing the right aspects; whether the model is accurately reflecting the mathematical ideas or practices of the artisan who made it, or imposing mathematical content external to the indigenous cognitive repertoire. If I find a village in which there is a chain hanging from posts, I can model that chain as a catenary curve. But I cannot attribute the knowledge of the catenary equation to the people who live in the village, just on the basis of that chain. Computational models are useful not only because they can simulate patterns, but also because they can provide insight into this crucial question of epistemological status.
    [Show full text]
  • Chapter 3 Software Design
    CHAPTER 3 SOFTWARE DESIGN Guy Tremblay Département d’informatique Université du Québec à Montréal C.P. 8888, Succ. Centre-Ville Montréal, Québec, Canada, H3C 3P8 [email protected] Table of Contents references” with a reasonably limited number of entries. Satisfying this requirement meant, sadly, that not all 1. Introduction..................................................................1 interesting references could be included in the recom- 2. Definition of Software Design .....................................1 mended references list, thus the list of further readings. 3. Breakdown of Topics for Software Design..................2 2. DEFINITION OF SOFTWARE DESIGN 4. Breakdown Rationale...................................................7 According to the IEEE definition [IEE90], design is both 5. Matrix of Topics vs. Reference Material .....................8 “the process of defining the architecture, components, 6. Recommended References for Software Design........10 interfaces, and other characteristics of a system or component” and “the result of [that] process”. Viewed as a Appendix A – List of Further Readings.............................13 process, software design is the activity, within the software development life cycle, where software requirements are Appendix B – References Used to Write and Justify the analyzed in order to produce a description of the internal Knowledge Area Description ....................................16 structure and organization of the system that will serve as the basis for its construction. More precisely, a software design (the result) must describe the architecture of the 1. INTRODUCTION system, that is, how the system is decomposed and This chapter presents a description of the Software Design organized into components and must describe the interfaces knowledge area for the Guide to the SWEBOK (Stone Man between these components. It must also describe these version).
    [Show full text]
  • Cloud Computing and E-Commerce in Small and Medium Enterprises (SME’S): the Benefits, Challenges
    International Journal of Science and Research (IJSR) ISSN (Online): 2319-7064 Cloud Computing and E-commerce in Small and Medium Enterprises (SME’s): the Benefits, Challenges Samer Jamal Abdulkader1, Abdallah Mohammad Abualkishik2 1, 2 Universiti Tenaga Nasional, College of Graduate Studies, Jalan IKRAM-UNITEN, 43000 Kajang, Selangor, Malaysia Abstract: Nowadays the term of cloud computing is become widespread. Cloud computing can solve many problems that faced by Small and medium enterprises (SME’s) in term of cost-effectiveness, security-effectiveness, availability and IT-resources (hardware, software and services). E-commerce in Small and medium enterprises (SME’s) is need to serve the customers a good services to satisfy their customers and give them good profits. These enterprises faced many issues and challenges in their business like lake of resources, security and high implementation cost and so on. This paper illustrate the literature review of the benefits can be serve by cloud computing and the issues and challenges that E-commerce Small and medium enterprises (SME’s) faced, and how cloud computing can solve these issues. This paper also presents the methodology that will be used to gather data to see how far the cloud computing has influenced the E-commerce small and medium enterprises in Jordan. Keywords: Cloud computing, E-commerce, SME’s. 1. Introduction applications, and services) that can be rapidly provisioned and released with minimal management effort or service Information technology (IT) is playing an important role in provider interaction.” [7]. From the definition of NIST there the business work way, like how to create the products, are four main services classified as cloud services which are; services to the enterprise customers [1].
    [Show full text]
  • The Domain-Specific Software Architecture Program
    Special Report CMU/SEI-92-SR-009 The Domain-Specific Software Architecture Program LTC Erik Mettala and Marc H. Graham, eds. June 1992 Special Report CMU/SEI-92-SR-009 June 1992 The Domain Specific Software Architecture Program LTC Erik Mettala DARPA SISTO Marc H. Graham Technology Division, Special Projects Unlimited distribution subject to the copyright. Software Engineering Institute Carnegie Mellon University Pittsburgh, Pennsylvania 15213 This report was prepared for the SEI Joint Program Office HQ ESC/AXS 5 Eglin Street Hanscom AFB, MA 01731-2116 The ideas and findings in this report should not be construed as an official DoD position. It is published in the interest of scientific and technical information exchange. FOR THE COMMANDER (signature on file) Thomas R. Miller, Lt Col, USAF SEI Joint Program Office This work is sponsored by the U.S. Department of Defense. Copyright © 1993 by Carnegie Mellon University. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works. Requests for permission to reproduce this document or to prepare derivative works of this document for external and commercial use should be addressed to the SEI Licensing Agent. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRAN- TIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTIBILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL.
    [Show full text]
  • A Requirements Modeling Language for the Component Behavior of Cyber Physical Robotics Systems
    A Requirements Modeling Language for the Component Behavior of Cyber Physical Robotics Systems Jan Oliver Ringert, Bernhard Rumpe, and Andreas Wortmann RWTH Aachen University, Software Engineering, Aachen, Germany {ringert,rumpe,wortmann}@se-rwth.de Abstract. Software development for robotics applications is a sophisticated en- deavor as robots are inherently complex. Explicit modeling of the architecture and behavior of robotics application yields many advantages to cope with this complexity by identifying and separating logically and physically independent components and by hierarchically structuring the system under development. On top of component and connector models we propose modeling the requirements on the behavior of robotics software components using I/O! automata [29]. This approach facilitates early simulation of requirements model, allows to subject these to formal analysis and to generate the software from them. In this paper, we introduce an extension of the architecture description language MontiArc to model the requirements on components with I/O! automata, which are defined in the spirit of Martin Glinz’ Statecharts for requirements modeling [10]. We fur- thermore present a case study based on a robotics application generated for the Lego NXT robotic platform. “In der Robotik dachte man vor 30 Jahren, dass man heute alles perfekt beherrschen würde”, Martin Glinz [38] 1 Introduction Robotics is a field of Cyber-Physical Systems (CPS) which yields complex challenges due to the variety of robots, their forms of use and the overwhelming complexity of the possible environments they have to operate in. Software development for robotics ap- plications is still at least as complex as it was 30 years ago: even a simple robot requires the integration of multiple distributed software components.
    [Show full text]
  • Software Engineering for Scientific Computing Phillip Colella
    Software Engineering for Scientific Computing Phillip Colella Elements of Scientific Simulation We are mainly interested in scientific computing as it arises in simulation that requires either (1) large software systems, and (2) high-performance computing. Increasingly, (2) (1). However, want to remind you of the larger context. • A science or engineering problem that requires simulation. • Models – must be mathematically well posed. • Discretizations – replacing continuous variables by a finite number of discrete variables. • Software – correctness, performance. • Data – inputs, outputs. Science discoveries ! Engineering designs ! • Hardware. • People. 2 What are the Tools for HPC? The skills and tools to allow you to understand (and perform) good software design for scientific computing. • Programming: expressiveness, performance, scalability to large software systems. • Data structures and algorithms as they arise in scientific applications. • Tools for organizing a large software development effort (build tools, source code control). • Debugging and data analysis tools. 3 Outline of the Talk • A little bit about hardware • Motifs of scientific simulation. • Programming and software design. • A little bit about plumbing: source code control, build systems, debugging, data analysis and visualization. 4 Memory Hierarchy • Take advantage of the principle of locality to: - Present as much memory as in the cheapest technology - Provide access at speed offered by the fastest technology Processor Core Core Core Tertiary core cache core cache core cache Secondary Storage Controller Memory Memory Main Storage Memory (Tape/ Shared Cache Second (Disk/ 6 Cloud O(10 ) (DRAM/ Level FLASH/ FLASH/ Storage) core cache core cache core cache Cache PCM) (SRAM) PCM) Core Core Core 7 10 Latency (ns): ~1 ~5-10 ~100 ~10 ~10 6 Size (bytes): ~10 ~109 ~1012 ~1015 The Principle of Locality • The Principle of Locality: - Program access a relatively small portion of the address space at any instant of time.
    [Show full text]