Software Engineering, Computer Engineering, Computer Science Sibling Disciplines with Diverse Cul- Tures

Total Page:16

File Type:pdf, Size:1020Kb

Software Engineering, Computer Engineering, Computer Science Sibling Disciplines with Diverse Cul- Tures AC 2011-862: SOFTWARE ENGINEERING, COMPUTER ENGINEERING, COMPUTER SCIENCE SIBLING DISCIPLINES WITH DIVERSE CUL- TURES Susan E. Conry, Clarkson University Susan E. Conry is Distinguished Service Professor of Electrical and Computer Engineering and Director of Software Engineering at Clarkson University. She is also currently the Chair Elect of the EAC of ABET. She received her Ph.D. from Rice University in Electrical Engineering. Dr. Conry’s research and educational interests cover various areas of computer engineering and software engineering. Her work in multiagent systems has focused on agent negotiation strategies, distributed constraint satisfaction problems, distributed genetic algorithms, and distributed search. Her work related to software engineering is concerned with patterns in hardware/software codesign. Dr. Conry has been designated Fellow of the IEEE, CSAB Fellow, and ABET Fellow. She was also recipient of the 2005 EAB Award for Meritorious Achievement Award in Accreditation Activities. c American Society for Engineering Education, 2011 Software Engineering, Computer Engineering, Computer Science Sibling Disciplines with Diverse Cultures Abstract Every program of study has an institutional context. This institutional context influences its content, its relationships with other programs, and the character of the graduates, among other things. A recent study of the curricula of the 19 software engineering program that were accredited in October 2009 indicated that more than half of these programs were housed in the same department as an accredited computer science program. It also indicated that there is a wide degree of variation in the degree of overlap in content of the software engineering curriculum and that of the computer science curriculum. At some institutions, there was as little as one course overlap between the two programs while at others there was a very large component that was shared. At some of these institutions, computer science and software engineering shared treatment of introductory material while others offered even introductory material to computer science students and software engineering students in different course sequences. This evidence suggests that there may be well be interesting dimensions of commonality and difference among curricula in a broader range of areas that were treated by the Computing Curricula 2005 documents. This paper extends the previous study to the consideration of interrelationships among the curricula of computing programs at a subset of institutions with accredited software engineering programs in October 2010. It considers the computing disciplines more broadly, including software engineering, computer science, and computer engineering programs, as these computing disciplines may be regarded as having stronger interrelationships due to greater commonality in technical topical content. The subset treated includes only those institutions in the United States with accredited software engineering programs at which there are also programs in the other two “major computing disciplines” and does not address the content of other computing disciplines such as information technology, information systems, or management information systems. There are thirteen such institutions. Of these institutions, the majority (eight) involve institutional contexts in which all of the responsible departments are in the same school or college. Within this set of eight institutions, some lodge all three of the disciplines (computer science, software engineering, and computer engineering) in the same department while others house them in different departments. At three of the institutions, computer science is lodged in a school that has no other engineering programs. The remaining two institutions either do not have an administrative structure equivalent to a school or a college or have separate colleges of computing and engineering. Interrelationships in at least three dimensions are discussed in this paper: relationships evidenced by administrative housing within the institution, relationships involving common sets of required courses, and relationships exposed by varying types and degrees of overlap among the programs. Those areas that are distinctive about a given program on a given campus will also be discussed, as they provide just as much insight into the relationships among the programs as areas of commonality do. Introduction Today, computing touches the life of every person on the planet. Practitioners in the computing disciplines are constantly devising systems that have impact on our financial systems, our economy, our understanding of medical issues, progress in discovery of new scientific principles, the way we communicate with one another and the way we relax. The people who work in the computing disciplines have been educated in a variety of disciplinary contexts, three of which are relevant to this study: computer engineering, computer science, and software engineering. There is still come controversy about the relationship among these computing disciplines. This paper is concerned with exploring the relationships between them by focusing on the curricular structure and content of baccalaureate programs in the disciplines that have some commonality in institutional context. Historically, the computer engineering, computer science, and software engineering disciplines emerged at different times and were nourished by different parent disciplines1. Prior to about 1970, someone who wanted to enter the computing profession could study in one of three areas: computer science (if they wanted to focus on software), electrical engineering (if hardware was of interest to them), or information systems (if their focus was on business applications). With the development of microprocessors in the 1960’s, the character of the landscape began to change. Technology changed, creating demand for engineers who understood the hardware and electronics underlying the chips but also were conversant with and capable of developing the software components of a system. It was not possible to adequately treat the topics needed for education of these engineers in the context of a specialization area within an electrical engineering program of study. The first computer engineering program was accredited by the EAC of ABET in 1971, and between about 1970 and 1990, computer engineering emerged as a separate discipline. The last decade of the twentieth century saw computer engineering firmly established as an independent discipline. Computer science programs were in their infancy in the early 1970’s, and there was significant controversy in those early years as to whether or not computer science really was a legitimate academic discipline. Some saw it as an arm of applied mathematics, others saw it as an attempt to provide some venue for educating programmers, and still others saw it as a true academic discipline. Programs in computer science had wildly divergent structure and content. Some were lodged within departments of mathematics and others were not. It was possible for a student to get a degree in computer science in a program that included only coursework involving programming in two or three languages. As the discipline matured, a measure of commonality was fostered by the efforts of the ACM in devising curriculum guidelines and the development of accreditation criteria by guided by the ACM and the IEEE Computer Society through CSAC. The first computer science programs were accredited by CSAC of CSAB in 1986. By the 1990’s, there was no longer controversy concerning legitimacy of the discipline. The term “software engineering” was coined in 1968, and there were isolated courses in software engineering offered on some campuses as early as the mid-1970’s, but the first software engineering programs developed in the United States were graduate programs whose students were expected to already have acquired substantial expertise in computer science. Gradually, as the importance of software engineering topics was recognized, treatment of software engineering concepts filtered into undergraduate programs. Sometimes these concepts were woven into courses in computer engineering and sometimes they were treated in computer science courses. As more experience was gained with software engineering courses within computer science curricula and computer engineering curricula, it was recognized that it took a different experience to educate a software engineer1. Education of a software engineer requires coursework and applied project experience that goes beyond what can be added to a computer science curriculum and it takes inclusion of a larger set of computer science topics than can be added to a computer engineering curriculum. Thus software engineering emerged as an independent discipline. The first baccalaureate programs in software engineering in the United States were developed in the mid to late 1990’s, and programs in software engineering have been accredited by the EAC of ABET since 2002. Clearly, computer engineering, computer science, and software engineering, are closely related disciplines with overlapping content areas. The historical context tells us something about the relationships of these disciplines when taken from a developmental perspective, but the relationships among the disciplines as they exist on university campuses in the United States today are not clear. In the sections that follow, we provide evidence concerning these relationships. We consider those institutional contexts
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]
  • Computer Engineering, Minor (Behrend) 1
    Computer Engineering, Minor (Behrend) 1 COMPUTER ENGINEERING, MINOR (BEHREND) Requirements for a minor may be completed at any campus location offering the specified courses for the minor. Students may not change from a campus that offers their major to a campus that does not offer their major for the purpose of completing a minor. Program Description This program of study provides graduates with a strong background in computer engineering. Upon completion of the minor, graduates will have developed an understanding of the operation and design of computers. This objective is accomplished through a combination of classroom study, computer-related projects, and laboratory experience. Analysis and design of computer hardware and software systems are stressed. The program requires completion of mandatory courses in analog and digital circuits, microprocessors, transistor logic, and computer programming. Students complete the minor by selecting technical electives in computer hardware and software engineering. What is Computer Engineering? Computer engineering is the study of the design, analysis, and implementation of computer systems including processors, memory, embedded devices, and data communication systems for a wide range of application domains. It includes the study of digital systems, computer architecture, and computer networks. It encompasses many design activities spanning from designing individual logic components to designing complete computer systems composed of hardware, software, and hardware-software co-design. Computer engineering drives the development of new computing systems that enable the latest technologies impacting our everyday lives. You Might Like This Program If... • You want to add computing expertise to a more general engineering major program. • You enjoy working with both hardware and software..
    [Show full text]
  • Computer Engineering
    Suggested Course Plan for a UC Riverside Major in COMPUTER ENGINEERING Catalog Year: 2020 Fall Quarter Units Winter Quarter Units Spring Quarter Units To earn a B.S., you must complete all FIRST YEAR College and University requirements. For CS 010A 4 CS 010B 4 CS 010C 4 a complete list: catalog.ucr.edu. C++ Programming I C++ Programming II Intro to Data Struc. & Algorithms ENGLISH COMPOSITION* ENGL 001A 4 ENGL 001B 4 MATH 009C 4 A C or better is required in three quarters of Beginning Composition Intermediate Composition First Year Calculus English Composition courses to satisfy the ENGR 001G 1 MATH 009B 4 MATH/CS 011 4 graduation requirement. ENGR 180W fulfills Professional Dev. & Mentoring First Year Calculus Intro to Discrete Structures the third quarter of English Composition. MATH 009A 4 PHYS 040A 5 PHYS 040B 5 BREADTH REQUIREMENTS First Year Calculus Physics (Mechanics) Physics (Heat/Waves/Sound) For an approved list of Breadth courses: SECOND YEAR http://student.engr.ucr.edu/policies/req CS 061 4 CS 111 4 CS 100 4 uirements/breadth.html. Machine Org. & Assembly Lang. Prog. Discrete Structures Software Construction Humanities: (3 courses) EE 001A & EE 01LA 4 EE 001B 4 CS/EE 120B 4 A. World History: _________ Engineering Circuit Analysis I and Lab Engineering Circuit Analysis II and Lab Embedded Systems B. Fine Arts, Lit., Phil. or Rlst:_________ MATH 046 4 EE/CS 120A 5 EE 020 4 C. Human Persp. on Science:_________ Differential Equations Logic Design Linear Methods for Engr. Analysis Social Sciences: (3 courses) PHYS 040C 5 CHEM 001A/LA or ME 10 4 MATH 010A 4 A.
    [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]
  • Computer Engineering
    COMPUTER ENGINEERING Curriculum and Prerequisites for the Bachelor of Science Degree FRESHMAN SOPHOMORE JUNIOR SENIOR CUM GPA CUM FALL SPRING FALL SPRING FALL SPRING FALL SPRING SEM GPA SEM Chemistry for Engineers General Linear Professional Thermal General Physics II Systems Senior Ethics Systems 3.5CHEM 1050 Physics I Circuits Seminar EGEE 3110 EGGN 3110 EGGN 4010 PHYS 2120 3 Calculus I 0 PHYS 2110 3 . 4 4 Differential EGME 3170 Equations 2 EGEE5 2010 Electronics Calculus II I MATH 1710 MATH 2740 5 EGEE 3210H 3 Discrete Technical Technical Technical MATH 1720 Math & 3 5 Probability Elective Elective Elective The MATH 2520 3 3 3 Engingeering 3 Advanced Profession Engineering Statics & Computer Graphics Dynamics Advanced Digital Architecture EGGN 1110 Logic EGME 1810 EGME 2570 1 Design EGCP 4210 1 3. 3 Micro- Digital Logic EGCP 3010H Design controllers 3 Computer Computer Engineering Engineering Computer Senior Senior EGCP 2120 EGCP3 1010 Architecture 3 Design I Design II C++ Algorithms Program- EGCP 3210H ming 3 EGCP 4810 EGCP 4820 Object Data 4 4 Oriented Structures CS3 3410 Design using JAVA CS 1210 Operating 2 with C++ Computer 3CS 2210 Systems Networks 3CS 1220 3CS 3310 EGCP43103 ENGINEERING ELECTIVES CS ELECTIVES 3350 Found. of Comp. Security EGCP 4110 Dig. Sig. Proc. 3510 Compiler Theory & Prac EGCP 4250 CMOS VLSI Design EGCP 4410 Parallel Comp. Prerequisite on left 3610 Database Org & Design Credit Honors Course 4220 Web Applications Interchangeable 4710 Computer Graphics . Corequesite Course 3hours Hcourse with lab Bible Courses The Bible Old Testa- New Theology I Theology II FromFrom the the OfficeOffice ofof TheThe DeanChair and the ment Testament School ofThe Engineering Elmer W.
    [Show full text]
  • Electrical and Computer Engineering: Past, Present, and Future
    Electrical and Computer Engineering: Past, Present, and Future Randy Berry1, chair, Department of Electrical and Computer Engineering The field of electrical and computer engineering (ECE) has had an enormously successful history. This field has pushed the frontiers of fundamental research, led to the emergence of entirely new disciplines, and revolutionized our daily lives. ECE departments2 are found in nearly every engineering school and have historically been one of the larger departments both in terms of faculty and student enrollments. Academically, a strong ECE department is highly correlated with the reputation of an engineering school. Of the top 10 engineering schools in the latest US News and World Report rankings of graduate programs, nine have top 10 ranked ECE programs. Nevertheless, ECE is a field that finds itself facing challenges. In this paper, we will look to the field’s past issues and note how the field repeatedly reinvented itself to push to new heights. Finally, we argue that the time is ripe for another reinvention and show how aspects of such a reinvention are already emerging. Areas such as machine learning and data science, the Internet of things, and quantum information systems provide promising directions for ECE — and embracing them provides a path to a bright future. The Present Situation In many ways, ECE is a victim of its own successes. Advances such as computer-aided design tools reduce the number of designers needed. The increased integration reflected in Moore’s law means that more functionality can be integrated into a single integrated circuit (IC), replacing the need for engineering to integrate multiple components in custom designs.
    [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]
  • 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]
  • 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]
  • 203 Engineering
    http://www.avc.edu (661) 722-6300 Engineering 203 Definition details) Engineering is concerned with the application of scientific and (Most of these careers require education beyond the two-year college level.) mathematical theories and principles to solve practical technical problems. Program Learning Outcomes Staff Computer Engineering To access faculty and staff, dial (661) 722-6300, then the 4-digit 1. Apply knowledge of math, science, and engineering to extension. identify, define, and solve computer engineering related Dean: problems. Christos Valiotis ext. 6415 2. Design and perform tests/experiments, analyze and interpret Administrative Assistant: data, and prepare technical reports as a member of a group. Wendy Cios ext. 6415 3. Effectively employ techniques, skills, and computational Clerical Assistant III: Suzanne Olson ext. 6415 tools necessary for computer engineering. Department Chair: Electrical Engineering Dr. Alexandra Schroer ext. 6922 1. Apply knowledge of math, science, and engineering to STEM identify, define, and solve electrical engineering related Jamie Jones, Coordinator ext. 6992 problems. Faculty: 2. Design and perform tests/experiments, analyze and interpret Dr. Jonathan Compton ext. 6809 data, and prepare technical reports as a member of a group. Adjunct Faculty: 3. Effectively employ techniques, skills, and computational To access adjunct faculty voice mail, dial (661) 722-6300, then the tools necessary for electrical engineering. 4-digit number. Mechanical Engineering V.M. 1. Apply knowledge of math, science, and engineering to Jose Alvarado 2160 identify, define, and solve engineering problems. Karl Major 2137 2. Communicate effectively and work efficiently in a team Jonathan Over 2135 environment. 3. Design and perform tests/experiments, analyze and interpret Program Description data, and prepare technical reports.
    [Show full text]
  • Electrical Engineering and Computer Engineering AS
    PROGRAM LEARNING OUTCOMES Engineering: Electrical Engineering 1. Apply analysis tools and computer tools in problem solving. 2. Identify interdisciplinary aspects of engineering projects. 3. Apply software engineering principles and procedures. and Computer Engineering AS 4. Do computer algorithm development using C and C++ techniques. 5. Understand the operation and control of electrical measuring equipment. 6. Use computer programming skills to develop software for REQUIRED automation, decision making and control of equipment. 7. Develop test software for evaluation of digital circuits. ENGIN 110 8. Analyze the operation of small scale digital and analog TAKE 1 circuits. Introduction to 9. Design simple operational amplifier circuits. Engineering ENGTC 126 10. Demonstrate knowledge of magnetism and its applications in the design of transformers and actuators. ENGIN 120 Computer Engineering Aided Design 11. Assemble and test digital and analog circuits from circuit Drawing and Drafting – diagrams. AutoCAD COMSC 165 CHEM 120 COMSC 210 ENGIN 230 Advanced Program General pre req Introduction Programming Design College to Circuits and with C and and Data Chemistry I Devices ENGIN 121 C++ Structures ENGIN 135 Engineering Programming Drawing/ DVC II DVC I.B. for Scientists Descriptive pre req and Engineers Geometry Entry Careers in MATH 192 MATH 193 MATH 292 MATH 294 ENGIN 136 • Engineering design in Analytic pre req Analytic pre req Analytic pre req Differential Computer Geometry Geometry and Geometry and multiple disciplines Equations Programming and Calculus I Calculus II Calculus III for Engineers Using MATLAB* DVC I.B. DVC I.B. DVC I.B. DVC I.B. DVC I.C. DVC I.C. DVC I.C.
    [Show full text]
  • Integrated Framework for Software Requirement Analysis
    Integrated Framework for Software Requirement Analysis Andre Rusli, Osamu Shigo Graduate School of Information Environment, Tokyo Denki University, Chiba, Japan {[email protected], [email protected]} Abstract. Requirement elicitation is a very critical step in software develop- ment. In order to develop adequate software which answers to user’s needs, it is essential to understand the real-world environment, the users themselves, goals, constraints, and risks and its possible solutions. Unable to describe correct re- quirements can lead to a massive software development failure. This paper aims to propose an integrated framework for requirement elicitation which combines the characteristics of goal-based requirement engineering methods, Problem Frame (PF), and Message Sequence Chart (MSC). The proposed framework us- es i* framework to describe the dependency relationships between actors, PF to analyze the constraints that exist in the real world, KAOS’ to analyze obstacles, and MSC to show the dynamic behavior of the system. Keywords: Requirement Analysis · Goal Models · i* · Problem Frame · KAOS · Message Sequence Chart 1 INTRODUCTION Requirements engineering (RE) is an engineering activity that ties up the development activities with the real-world problems. It represents a series of engineering decisions that lead from recognition of a problem to be solved to a detailed specification of that problem [6]. Failing to describe the correct requirement can lead to a massive failure in the whole development. However, requirement engineering is not an easy task. It has to keep up with the ever-changing environment which caused it to be a continuous process in a software development. To keep up with changes, requirements must have a base condition, with details that can be changed flexibly without drifting apart from the main objective of the project.
    [Show full text]