SOFTWARE ENGINEERING

Similar documents
SOFTWARE ENGINEERING

Tonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering?

Registration Workshop. Nov. 1, 2017 CS/SE Freshman Seminar

Software Reliability and Reusability CS614

One of Canada s leading schools of Engineering ÉTS motto is Engineering for Industry. Roughly 5000 students, 125 professors, 25 internal senior

SWEBOK. The Emerging Consensus on the Software Engineering Body of Knowledge. A. Abran, NSERC Ottawa, February 18, 2002

Level: M.Ed. Credit Hour: 3 (2+1) Semester: Second Teaching Hour: 80(32+48)

CRITERIA FOR ACCREDITING COMPUTING PROGRAMS

PRO1-I2O23 - Programming I

A comparison of computer science and software engineering programmes in English universities

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

SOFTWARE ENGINEERING. Curriculum in Software Engineering. Program Educational Objectives

Computing Curricula 2005

School of Computing and Information Sciences

ASSIUT UNIVERSITY. Faculty of Computers and Information Department of Information Technology. on Technology. IT PH.D. Program.

School of Computing and Information Sciences. Course Title: Mobile Application Development Date: 8/23/10

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

ITE 205 Software Design and Programming I

Computers Are Your Future Prentice-Hall, Inc.

Comparing Two Program Contents with Computing Curricula 2005 Knowledge Areas

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca

School of Computing and Information Sciences

An international Consensus on the Software Engineering Body of Knowledge

Compulsory course in Computer Science

Module Documentation

Day Hour Timing pm am am am

Software Engineering: The Imperative and the Resistance

Computer Networks (Redes de Computadores)

Academic Course Description

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

Computer Networks IT321

Introduction. Software Trends. Topics for Discussion. Grid Technology. GridForce:

Database Management Systems Their Place in Nursing Informatics Education

PI - Internet Protocols

Developing a Software Industry with TSP and PSP

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

Computing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS

ASSIUT UNIVERSITY. Faculty of Computers and Information Department of Information Systems. IS Ph.D. Program. Page 0

Course Administration

الجهة المدققة: عمادة التطوير والجودة عدد صفحات النموذج: Course Syllabus. Credit hours: 3. Academic Staff Specifics Office Number and Location IT 313

Academic Reference Standards (ARS) for Electronics and Electrical Communications Engineering, B. Sc. Program

INSTITUTE OF INFORMATION TECHNOLOGY UNIVERSITY OF DHAKA

Ensuring a Rigorous Curriculum: Practices and Goals

LESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS

Database Management System Implementation. Who am I? Who is the teaching assistant? TR, 10:00am-11:20am NTRP B 140 Instructor: Dr.

The Nature of Software. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.) WITH A CONCENTRATION IN CYBERSECURITY

Software Development Methodologies

Course Design Document: IS202 Data Management. Version 4.5

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

COLLEGE OF THE DESERT

PROGRAM OF ORGAMIC FARMING Faculty of Agriculture Ain Shams University

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Communication Networks

CATALOG 2018/2019 BINUS UNIVERSITY. Computer Science. Introduction. Vision. Mission

Formal Specification of Software Systems

Network Architecture I

Part A: Course Outline

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Module specification

Software Development Fundamentals (SDF)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

Lecture 2: Software Engineering (a review)

The CERT Survivability and Information Assurance Curriculum Building Enterprise Networks on a Firm Educational Foundation

One of Canada s leading schools of Engineering ÉTS motto is Engineering for Industry. Roughly 5000 students, 125 professors, 25 internal senior

Master Course in Computer Science Orientation day

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

Software Engineering

Introduction to Software Engineering (ESE : Einführung in SE) Prof. O. Nierstrasz

INTE-C5O44 - Internet

Object Oriented Programming

Module Documentation

Designed in collaboration with Infosys Limited

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

The University of Jordan. Accreditation & Quality Assurance Center. COURSE Syllabus

Summary of Contents LIST OF FIGURES LIST OF TABLES

COURSE OUTLINE. Faculty of Computing, Universiti Teknologi Malaysia

SWEBOK. Software Engineers: What does industry expect them to know & master? Alain Abran. SPIN-CHENNAI India

Eight units must be completed and passed to be awarded the Diploma.

Janice Sipior, Villanova Joe Valacich, Washington State. Panelists:

Model Curriculum for K-12 Computer Science: Draft Report of the ACM K-12 Task Force Curriculum Committee*

CALIFORNIA STATE POLYTECHNIC UNIVERSITY, POMONA ACADEMIC SENATE ACADEMIC PROGRAMS COMMITTEE REPORT TO THE ACADEMIC SENATE AP

MBA (Part Time) Batch Program Structure

City University of Hong Kong Course Syllabus. offered by Department of Computer Science with effect from Semester A 2017/18

De La Salle University College of Computer Studies. Course Syllabus

School of Engineering and Computational Sciences

Textbook(s) and other required material: Raghu Ramakrishnan & Johannes Gehrke, Database Management Systems, Third edition, McGraw Hill, 2003.

Auditing and assurance

National Council for Higher Education. Minimum standards for the courses of Study in. Bachelor of Science in Software Engineering

Curriculum for the Bachelor's Degree Programme in Software Development National section

MLR Institute of Technology

Department of Computer Science and Engineering

Ignitia Career and Technical Education Electives. Introduction to Information Technology

Academic Course Description. EC0309A Microprocessors and Micrcontrollers Fifth Semester, (Odd Semester)

Review of Basic Software Design Concepts. Fethi Rabhi SENG 2021

CATALOG 2017/2018 BINUS UNIVERSITY. Cyber Security. Introduction. Vision. Mission

Introduction To Data Processing COMP 153 Business Administration Program/Administrative Studies. Course Outline

Architectural Decomposition Reid Holmes

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

Transcription:

SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt

WHAT IS SOFTWARE ENGINEERING?

First definition Software engineering is the establishment and use of sound engineering principals in order to obtain economically software that is reliable and work efficiently on real machines. Software Engineering: A Report on a Conference Sponsored by the NATO Science Committee, NATO, 1969.

IEEE Computer Society definition 1. The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, that is, the application of engineering to software. 2. The study of the approaches as in (1). IEEE Standard Glossary of Software Engineering Terminology 610.12-1990. In IEEE Standards Software Engineering, 1999 Edition, Volume One: Customer and Terminology Standards. IEEE Press, 1999.

Other definitions (1) The systematic activities involved in the design, implementation and testing of software to optimize its production and support. Canadian Standards Association

Other definitions (2) Use of techniques, methods and methodologies to develop high quality software: reliable, easy to understand, useful, modular, efficient, modifiable, reusable, delivered in cost effective and timely manner, good user interface, well documented. Texas A&M University, Computer Science Department

Other definitions (3) SE is the discipline concerned with the application of theory, knowledge, and practice for effectively and efficiently building software systems that satisfy the requirements of users and customers. SE is applicable to small, medium, and large-scale systems. It encompasses all phases of the life cycle of a software system. The life cycle includes requirements analysis and specification, design, construction, testing, deployment, and operation and maintenance. Computer Science Curriculum 2008: An Interim Revision of CS 2001. ACM and IEEE, 2008.

The Computing Disciplines Computer Engineering Computer Science Information Systems Information Technology Software Engineering Computing Curricula 2005: The Overview Report. ACM and IEEE, 2006.

CC2005: Computer Engineering

CC2005: Computer Science

CC2005: Information Systems

CC2005: Information Technology

CC2005: Software Engineering

CC2005: Software Engineering (2) The development of SE is a response to a very real problem: a shortage of degree programs that produce graduates who can properly understand and develop software systems. many believe that they [CS programs] have not been successful at reliably producing graduates able to work effectively on complex software systems that require engineering expertise beyond the level of programming fundamentals.

SWEBOK (2004) Guide to the Software Engineering Body of Knowledge, 2004 Version, SWEBOK. IEEE, 2004. The software engineering body of knowledge is an all-inclusive term that describes the sum of knowledge within the profession of software engineering. This Guide will seek to identify and describe that subset of the body of knowledge that is generally accepted, even though software engineers must be knowledgeable not only in software engineering, but also, of course, in other related disciplines.

SWEBOK 2004: Knowledge Areas Software requirements Software design Software construction Software testing Software maintenance Software configuration management Software engineering management Software engineering process Software engineering tools and methods Software quality

SWEBOK 2004: Related disciplines Computer engineering Computer science Management Mathematics Project management Quality management Software ergonomics Systems engineering

SWEBOK (2014) SWEBOK v3.0. Guide to the Software Engineering Body of Knowledge. IEEE, 2014. The Software Engineering Body of Knowledge is an all-inclusive term that describes the sum of knowledge within the profession of software engineering. However, the SWEBOK Guide seeks to identify and describe that subset of the body of knowledge that is generally recognized or, in other words, the core body of knowledge.

SWEBOK 2014: Knowledge Areas Software requirements Software design Software construction Software testing Software maintenance Software configuration management Software engineering management Software engineering process Software engineering models and methods Software quality

SWEBOK 2014: Knowledge Areas (2) Software engineering professional practice Software engineering economics Computing foundations Mathematical foundations Engineering foundations

Software Engineering in practice

Software Engineering in practice (2)

COURSE STRUCTURE

CSC2008: Software Engineering CSC2008* defines Software Engineering (SE) course(s) consisting of: Core units (minimum coverage 31 hours); Elective units. * Computer Science Curriculum 2008: An Interim Revision of CS 2001. ACM and IEEE, 2008.

CSC2008 SE: Core units Software Design (8 hours*) Using APIs (5 hours) Tools and Environments (3 hours) Software Processes (2 hours) Requirements Specifications (4 hours) Software Verification and Validation (3 hours) Software Evolution (3 hours) Software Project Management (3 hours) * minimum coverage hours

CSC2008 SE: Elective units Component Based Computing Formal Methods Software Reliability Specialized Systems Risk Assessment Robust and Security-Enhanced Programming

Our SE course topics Introduction Software-life cycle and process models Software Project Management Requirements Analysis and Specification Object-Oriented Analysis UML Fundamentals Software Design Object-Oriented Design Software Verification and Validation Software Process Software Evolution

Our SE course vs. CSC2008 SE Lectures SE course topic hours Introduction 1 CSC 2008 SE Software-life cycle and process models 1 Software Processes 1 Software Project Management 4 Software Project Management + Tools and Environments Requirements Analysis and Specification 3 Requirements Specifications Object-Oriented Analysis 3 + Tools and Environments UML Fundamentals 2 - Software Design 6 Software Design 8 Object-Oriented Design 4 Software Verification and Validation 4 Software Verification and Validation + Tools and Environments Software Process 1 Software Processes 1 Software Evolution 3 Software Evolution 3 - Using APIs CSC min hours Total 32 26 4 5 4

CSC2008 SE unit Using APIs Learning Objectives: Explain the value of application programming interfaces (APIs) in software development. Use class browsers and related tools during the development of applications using APIs. Design, implement, test, and debug programs that use large-scale API packages. This unit will not be covered in our SE course.

REQUIREMENTS

Assessment strategy Small individual assignments (0-10%): grade-points are given for correct and fast problem solving. Teamwork assignments (40-50%): the evaluation takes into account correctness, conformance to requirements, readability, delivery on time, and presentation. Exam (written) (50%); all 3 teamwork assignments should be performed.

Teamwork assignments Team should consist of 4-5 students. It should be the same for all 3 assignments. 1. Project plan (5 th week) 2. Software requirements specification (9 th week) 3. Software design (13 th week) The exact deliverables of each assignment and requirements for them will be defined during laboratory works.

Required reading R. S. Pressman, Software Engineering: a Practitioner s Approach (6th edition), McGraw Hill Higher Education, 2005. ISBN 0071238409 B. Oestereich, Developing Software with UML: Object-Oriented Analysis and Design in Practice (2nd edition). Addison-Wesley Professional, 2002. ISBN 020175603X

Recommended reading I. Sommerville, Software Engineering (8th edition). Addison-Wesley, 2007. ISBN 0321313798 C. Larman, Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development. Prentice Hall, 2010. ISBN 0131489062 A. Cockburn, Writing effective use cases. Addison-Wesley, 2006. ISBN 0201702258

Summary General understanding about Software Engineering Overview of the course Exact information about course requirements and assessment strategy

QUESTIONS?

APPENDIX

Engineering vs. Science: Traditional View Scientists create knowledge study the world as it is are trained in scientific method use explicit knowledge are thinkers Engineers apply that knowledge seek to change the are trained in engineering design use tactic knowledge are doers Steve Easterbrook, Department of Computer Science, University of Toronto

Engineering vs. Science: More realistic View Scientists create knowledge are problem-driven seek to understand and explain design experiments to test theories prefer abstract knowledge but rely on tactic knowledge Engineers create knowledge are problem-driven seek to understand and explain design devices to test theories prefer contingent knowledge but rely on tactic knowledge Steve Easterbrook, Department of Computer Science, University of Toronto

Characteristics of software Software is developed or engineered; it is not manufactured in the classical sense. Software doesn t wear out. Although the industry is moving toward component-based construction, most software continues to be custom built. [Pre2005] R. S. Pressman, Software Engineering: a Practitioner s Approach (6th edition), McGraw Hill Higher Education, 2005.

Software myths: Management myths We already have a book that s full of standards and procedures for building software. Won t that provide my people with everything they need to know? If we get behind schedule, we can add more programmers and catch up. If we decide to outsource the software project to a third party, I can just relax and let that firm build it. [Pre2005]

Software myths: Customer myths General statement of objectives is sufficient to begin writing programs we can fill in the details later. Project requirements continually change, but change can be easily accommodated because software is flexible. [Pre2005]

Software myths: Practitioner s myths Once we write the program and get it to work, our job is done. Until I get the program running, I have no way of assessing its quality. The only deliverable work product for a successful project is the working program. Software engineering will make us create voluminous and unnecessary documentation and invariably slow us down. [Pre2005]