SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Lecture # 2 : Process Models
Software Project Management
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
CS3773 Software Engineering Lecture 01 Introduction.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
Software Testing and Quality Assurance
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Lecture 13 Revision IMS Systems Analysis and Design.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
Introduction to Software Testing
Software Testing & Strategies
Configuration Management
Chapter : Software Process
Guide to the Software Engineering Body of Knowledge Chapter 1 - Introduction.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Chapter 2 The process Process, Methods, and Tools
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
The Guide to the Software Engineering Body of Knowledge
Teaching material for a course in Software Project Management & Software Engineering – part II.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Testing Course Shmuel Ur
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Copyright 2002 Prentice-Hall, Inc. 1.1 Modern Systems Analysis and Design Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 1 The Systems Development.
Lecture 7: Requirements Engineering
1 SWE Introduction to Software Engineering Lecture 4.
Web Engineering and Technology Unit I. Categories/Types of Web-Based Systems CategoryExamples Document centricOnline newspapers, manuals InteractiveRegistration.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
UNIT-1 SOFTWARE PRODUCT AND PROCESS: Introduction – S/W Engineering paradigm – Verification – Validation – Life cycle models – System engineering –
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
The principles of an object oriented software development process Week 04 1.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
The Systems Development Environment Systems Analysis and Design II.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
1 The Software Engineering Education at CSULA Jiang Guo Jose M. Macias June 4, 2010.
Advanced Software Engineering Dr. Cheng
Software Project Configuration Management
Duration: How long will a lecture take?
Chapter 1 The Systems Development Environment
Lecture 0 Software Engineering Course Introduction
CS 389 – Software Engineering
DT249/4 Information Systems Engineering Lecture 0
Chapter 1 The Systems Development Environment
Chapter 2 – Software Processes
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Practical Software Engineering
Software Engineering I
Measurement What is it and why do it? 2/23/2019
Chapter 1 The Systems Development Environment
Overview of BSSE at Rose-Hulman Institute of Technology
Presentation transcript:

SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics

What is Software Engineering? 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. It encompasses all phases of the life cycle of a software system. The life cycle includes requirement analysis and specification, design, construction, testing, and operation and maintenance

Suggested SE courses Advanced Software Development Software Engineering Software Design SE and Formal Specifications Empirical Software Engineering Software Process Improvement Component-Based Computing Programming Environment Safety-Critical Systems

Software Engineering (core lectures) Software design Using APIs Software tools and environments Software processes Software requirements and specifications Software validation Software evolution Software project management

Software Engineering (elective lectures) Component-based computing Formal methods Software reliability Specialized systems development

SE1. Software design (8 hours) Topics : Fundamental design concepts and principles Design patterns Software architecture Structured design Object-oriented analysis and design Component-level design Design for reuse

SE1: Learning objectives / 1 1.Discuss the properties of good software design. 2.Compare and contrast object-oriented analysis and design with structured analysis and design. 3.Evaluate the quality of multiple software designs based on key design principles and concepts. 4.Select and apply appropriate design patterns in the construction of a software application.

SE1: Learning objectives / 2 5. Explain the value of application programming interfaces (APIs) in software development. 6. Use class browsers and related tools during the development of applications using APIs. 7. Design, implement, test, and debug programs that use large-scale API packages.

SE2. Using APIs (5 hours) Topics: API programming Class browsers and related tools Programming by example Debugging in the API environment Introduction to component-based computing

SE2: Learning objectives 1. Explain the value of application programming interfaces (APIs) in software development. 2. Use class browsers and related tools during the development of applications using APIs. 3. Design, implement, test, and debug programs that use large-scale API packages.

SE3. Software tools and environments (3 hours) Topics: Programming environments Requirements analysis and design modeling tools Testing tools Configuration management tools Tool integration mechanisms

SE3: Learning objectives 1. Select, with justification, an appropriate set of tools to support the development of a range of software products. 2. Analyze and evaluate a set of tools in a given area of software development (e.g., management, modeling, or testing). 3. Demonstrate the capability to use a range of software tools in support of the development of a software product of medium size.

SE4. Software processes (2 hours) Topics: Software life-cycle and process models Process assessment models Software process metrics

SE4: Learning objectives / 1 1. Explain the software life cycle and its phases including the deliverables that are produced. 2. Select, with justification the software development models most appropriate for the development and maintenance of a diverse range of software products. 3. Explain the role of process maturity models.

SE4: Learning objectives / 2 4. Compare the traditional waterfall model to the incremental model, the object-oriented model, and other appropriate models. 5. For each of various software project scenarios, describe the project's place in the software life cycle, identify the particular tasks that should be performed next, and identify metrics appropriate to those tasks

SE5. Software requirements and specifications (4 hours) Topics: Requirements elicitation Requirements analysis modeling techniques Functional and non-functional requirements Prototyping Basic concepts of formal specification techniques

SE5: Learning objectives / 1 1. Apply key elements and common methods for elicitation and analysis to produce a set of software requirements for a medium- sized software system. 2. Discuss the challenges of maintaining legacy software. 3. Use a common, non-formal method to model and specify (in the form of a requirements specification document) the requirements for a medium-size software system.

SE5: Learning objectives / 2 4. Conduct a review of a software requirements document using best practices to determine the quality of the document. 5. Translate into natural language a software requirements specification written in a commonly used formal specification language.

SE6. Software validation (3 hours) Topics: Validation planning Testing fundamentals, including test plan creation and test case generation Black-box and white-box testing techniques Unit, integration, validation, and system testing Object-oriented testing Inspections

SE6: Learning objectives / 1 1. Distinguish between program validation and verification. 2. Describe the role that tools can play in the validation of software. 3. Distinguish between the different types and levels of testing (unit, integration, systems, and acceptance) for medium-size software products

SE6: Learning objectives / 2 4. Create, evaluate, and implement a test plan for a medium-size code segment. 5. Undertake, as part of a team activity, an inspection of a medium-size code segment. 6. Discuss the issues involving the testing of object-oriented software.

SE7. Software evolution (3 hours) Topics: Software maintenance Characteristics of maintainable software Reengineering Legacy systems Software reuse

SE7: Learning objectives / 1 1. Identify the principal issues associated with software evolution and explain their impact on the software life cycle. 2. Discuss the challenges of maintaining legacy systems and the need for reverse engineering. 3. Outline the process of regression testing and its role in release management. 4. Estimate the impact of a change request to an existing product of medium size.

SE7: Learning objectives / 2 5. Develop a plan for re-engineering a medium-sized product in response to a change request. 6. Discuss the advantages and disadvantages of software reuse. 7. Exploit opportunities for software reuse in a given context.

SE8. Software project management (3 hours) Topics: Team management Team organization and decision-making Project scheduling Software measurement and estimation techniques Risk analysis Software quality assurance Software configuration management Project management tools

SE8: Learning objectives 1. Demonstrate through involvement in a team project the central elements of team building and team management. 2. Prepare a project plan for a software project that includes estimates of size and effort, a schedule, resource allocation, configuration control, change management, and project risk identification and management. 3. Compare and contrast the different methods and techniques used to assure the quality of a software product.

SE9. Component-based computing Topics: Fundamentals Basic techniques Applications (including the use of mobile components) Architecture of component-based systems Component-oriented design Event handling: detection, notification, and response Middleware

SE9: Learning objectives 1. Explain and apply recognized principles to the building of high-quality software components. 2. Discuss and select an architecture for a component-based system suitable for a given scenario. 3. Identify the kind of event handling implemented in one or more given APIs. 4. Explain the role of objects in middleware systems and the relationship with components. 5. Apply component-oriented approaches to the design of a range of software including those required for concurrency and transactions, reliable communication services, database interaction including services for remote query and database management, secure communication and access.

SE10. Component-based computing Topics: Formal methods concepts Formal specification languages Executable and non-executable specifications Pre and post assertions Formal verification

SE10: Learning objectives 1. Apply formal verification techniques to software segments with low complexity. 2. Discuss the role of formal verification techniques in the context of software validation and testing. 3. Explain the potential benefits and drawbacks of using formal specification languages. 4. Create and evaluate pre- and post-assertions for a variety of situations ranging from simple through complex. 5. Using a common formal specification language, formulate the specification of a simple software system and demonstrate the benefits from a quality perspective.

SE11. Software reliability Topics: Software reliability models Redundancy and fault tolerance Defect classification Probabilistic methods of analysis

SE11: Learning objectives 1. Demonstrate the ability to apply multiple methods to develop reliability estimates for a software system. 2. Identify and apply redundancy and fault tolerance for a medium-sized application. 3. Explain the problems that exist in achieving very high levels of reliability. 4. Identify methods that will lead to the realization of a software architecture that achieves a specified reliability level.

SE12. Specialized systems development Topics: Real-time systems Client-server systems Distributed systems Parallel systems Web-based systems High-integrity systems

SE12: Learning objectives 1. Identify and discuss different specialized systems. 2. Discuss life cycle and software process issues in the context of software systems designed for a specialized context. 3. Select, with appropriate justification, approaches that will result in the efficient and effective development and maintenance of specialized software systems. 4. Given a specific context and a set of related professional issues, discuss how a software engineer involved in the development of specialized systems should respond to those issues. 5. Outline the central technical issues associated with the implementation of specialized systems development.

Comparison with the current SE syllabus Part I : Introduction to Software Engineering (5 hours) Part II : Requirements engineering (analysis and definition) (19 hours) Part III : Software Design (5 hours) Part IV : Implementation and Testing (10 hours) Part V : Further problems (21 hours)

Part I in CC2001 What is SE (2 lh): N Quality criteria for software products (1 lh): SE4/2 Software process models (1 lh): SE4/1; SE5/4 Basic concepts and software development documents (1 lh) SE1/1; SE2; SE3

Part II in CC2001 / 1 Results of the “Analysis and Definition” phase (1 lh): SE3/2 Cost estimation (2 lh): N Basic concepts of the function-oriented view (1 lh): SE5/5 Basic concepts of data-oriented view (1 lh): SE5/5 Basic concepts of rule-oriented view (1 lh): SE5/5

Part II in CC2001 / 2 Structured analysis (1 lh): SE1/4 Basic concepts of state-oriented view (1 lh): SE5/5 Basic concepts of scenario-oriented view (1 lh): SE5/5 Object-oriented analysis (6 lh): SE1/5 Formal software specification and program verification (3 lh): N

Part III in CC2001 Overview of design activities (2 lh): SE1/6; SE1/7 Structured design (1 lh): SE1/4 Object-oriented design (2 lh): SE1/5

Part IV in CC2001 Implementation (2 lh): SE3/1; SE2 Systematic testing (6 lh): SE3/3; SE6/1 – SE6/6 Functional testing (2 lh): SE3/3

Part V in CC2001 Software metrics (4 lh): SE4/3 Maintenance (2 lh): SE7/1 Reverse engineering (4 lh): SE7/3; SE7/5 Quality of software development process and its standardization (3 lh): SE7/4 Introduction to software ergonomics (4 lh): N Project management (4 lh): SE8

Uncovered CC2001 topics SE2: Using APIs [core] (5 hours) SE5/1: Requirements elicitation SE6: Software validation / Part IV SE9: Component-based computing (III) SE10: Formal methods (in parts) SE11: Software reliability (V 24) SE12: Specialized systems development

Ideas for Our Work Current syllabus the most of core CC2001 topics Small differences can be either neglected or modified during course evolution Uncovered CC2001 topics (SE2) could? replace some of the topics in part II Current course should be implemented!