Course Organization. Lecture 1/Part 1

Similar documents
Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Software Processes 1

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

SWE 211 Software Processes

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

The software process

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

System and Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Software Engineering

Pertemuan 2. Software Engineering: The Process

Software Engineering

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

The Systems Development Lifecycle

Software Engineering COMP 201

INFORMATION SYSTEMS ANALYSIS AND DESIGN

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

Software Engineering COMP 201

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Software processes. Software Applications A.Y. 2018/2019

Development Process Bennett, McRobb and Farmer 1

Software Engineering. Lecture 1: Introduction

Credit where Credit is Due. Lecture 2: Software Engineering (a review) Goals for this Lecture. What is Software Engineering

Learning Approach. Evaluation. Text Book. - Written Test : 20% - Assignment/Project : 30%

(c) Addison Wesley Chapter 1. ! Software production is an art. ! Two groups. ! Main causes of software failures

Essentials of IBM Rational Requirements Composer, v3. Module 4: Creating a use-case model

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

03. Perspective Process Models

Chapter 3 Prescriptive Process Models

CSE320 :: Gurbakash Phonsa: Assistant Professor : CSE. Software Engineering

Prerequisites It is recommended that the participants have a working knowledge of traditional Business Analysis tasks and techniques.

CSE 435 Software Engineering. Sept 14, 2015

Object-Oriented Modeling: A Roadmap

Note 10: Software Process

Requirements Engineering and Software Architecture Project Description

Joined-up Requirements: Business Goals to System Tests

SE310 Analysis and Design of Software

Introduction to Software Engineering

Contents 1 Introduction 2 Is the Old-Established Software Engineering Paradigm Entirely Out of Date?

Software Engineering. Quiz with Explainations. Hans-Petter Halvorsen, M.Sc.

Functional requirements and acceptance testing

Software LEIC. Lecture 23

Course title: SOFTWARE ANALYSIS AND DESIGN

A Comparative Study on Software Development Life Cycle Models

Software Engineering in the Agile World. Table of contents

Requirements Engineering

CS 501: Software Engineering. Lecture 2. Software Processes

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

CHAPTER 2 LITERATURE SURVEY

understand, in outline, the activities involved in software requirements engineering, software development, testing and evolution;

Requirements Engineering

Explore Comparative Analysis Software Development Life Cycle Models

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Introduction to Software Engineering

A Comparison Between Two Software Engineering Processes, RUP And Waterfall Models

Modern Systems Analysis and Design Seventh Edition

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Development Methodologies

TOGAF usage in outsourcing of software development

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Software Engineering & Architecture

Rapid software development

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Chapter 16 Software Reuse. Chapter 16 Software reuse

Software Engineering I (02161)

Chapter 16 Software Reuse. Chapter 16 Software reuse

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

REQUIREMENTS ENGINEERING

Redesigning the Organization with Information Systems

Software Engineering. What is Software Engineering? What does SE do? CS / COE 1530

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

Sistemi ICT per il Business Networking

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas

Chapter 3 Software Process Model

Software development processes: from the waterfall to the Unified Process

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Chapter 1. Contents. 1.1 What is Software Engineering! Solving Problems. Objectives. What is Software Engineering

A Review Paper on Software Testing

IMPLEMENTATION, EVALUATION & MAINTENANCE OF MIS:

SYLLABUS. What is Agility, What is an Agile Process, Agile Process Models.

Business Process Modeling Information Systems in Industry ( )

SE300 Software Engineering Practices

Objectives. Topics covered. Software project management. Management activities. Software management distinctions. Project management

Software Development Software Development Activities

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Chapter. Redesigning The Organization With Information Systems

BCS Certificate in Systems Development Essentials Syllabus

Software Engineering II - Exercise

EE 446 EMBEDDED ARCHITECTURE Embedded System in UML

Rational Unified Process (RUP) in e-business Development

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

Requirements Engineering and Software Architecture Project Description

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Software Engineering Third Year CSE( Sem:I) 2 marks Questions and Answers

Transcription:

Course Organization Lecture 1/Part 1 1

Outline About me About the course Lectures Seminars Evaluation Literature 2

About me: Ing. RNDr. Barbora Bühnová, Ph.D. Industrial experience Research Quality of software architecture LaSArIS Teaching Courses on UML, Java,.NET, Automata and grammars, Algorithm design, and others Colaboration with students Seminar tutoring Bachelor/Master theses 3

About the course: PB007 Software Engineering I Lectures 1. Software process, role of the UML language. 2. Functional requirements specification, UML Use Case diagram. 3. Nonfunctional requirements specification, UML Activity diagram. 4. System analysis and design, structured vs. object-oriented A&D. 5. Object oriented analysis, UML Class, Object and Interaction diagrams. 6. Structured analysis, data modelling, ERD. 7. System design and attributes of a high-quality design, UML State diagram. 8. Software architecture, UML Component and Deployment diagram. 9. User interface design. 10. Testing, verification and validation. 11. Operation, maintenance and system evolution. 12. Software development management - processes, tools and frameworks. 13. Advanced software engineering techniques. 4

About the course: PB007 Software Engineering I Seminars 1. Visual Paradigm introduction, project assignment. 2. Project start, initial Use Case diagram. 3. Detailed Use Case diagram, textual specification of UC 4. Specification of use cases (textual if not finished, Activity diagram). 5. Analytical Class diagram, Object diagram. 6. Finalization of analytical Class diagram, Use Case diagram update. 7. Data modelling, Entity Relationship diagram. 8. Refinement of use cases with Interaction diagrams. 9. Finalization of Interaction diagrams, Class diagram update. 10. State diagram. 11. Design-level Class diagram, interfaces, implementation details. 12. User interface design. 13. Packages, Component diagram, Deployment diagram. 5

About the course: PB007 Software Engineering I Lectures 13 teaching weeks + 1 week free Seminars Team project on UML modelling 2-3 students per team Obligatory attendance and weekly task delivery Penalty for absence (-5/-10) and task delivery (-5/-10 points) Evaluation Exam = test (50 points) + on-site modelling (50 points) Grades: 90-100 A, 80-89 B, 70-79 C, 60-69 D, 50-59 E, 0-49 F 6

Literature Software Engineering, 9/E Author: Ian Sommerville Publisher: Addison-Wesley Copyright: 2011 UML 2 and the Unified Process, 2/E Author: Jim Arlow and Ila Neustadt Publisher: Addison-Wesley Copyright: 2005 7

Software process Lecture 1/Part 2 Chapter 2 Software Processes 8

Outline Software engineering Software process activities Software process models Chapter 2 Software Processes 9

Software engineering The economies and human lifes of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned with theories, methods and tools for professional software development. Software engineering is concerned with cost-effective development of high-quality software systems. Chapter 1 Introduction

Frequently asked questions about software engineering Question What is software? What are the attributes of good software? What is software engineering? What are the fundamental software engineering activities? What is the difference between software engineering and computer science? What is the difference between software engineering and system engineering? Answer Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable (among others). Software engineering is an engineering discipline that is concerned with all aspects of software production. Software specification, software development, software validation and software evolution. Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this more general process. Chapter 1 Introduction 11

Software versus System engineering Chapter 10 Sociotechnical Systems 12

Software products Generic products Stand-alone systems that are marketed and sold to any customer who wishes to buy them. Examples PC software such as graphics programs, project management tools; CAD software. Customized products Software that is commissioned by a specific customer to meet their own needs. Examples embedded control systems, air traffic control software, traffic monitoring systems. Chapter 1 Introduction 13

Application types Stand-alone applications Interactive transaction-based applications Embedded control systems Batch processing systems Entertainment systems Systems for modeling and simulation Data collection and monitoring systems Systems of systems Chapter 1 Introduction 14

Software engineering fundamentals Some fundamental principles apply to all types of software system, irrespective of the development techniques used: Systems should be developed using a managed and understood development process. Of course, different processes are used for different types of software. Dependability and performance are important for all types of system. Understanding and managing the software specification and requirements (what the software should do) are important. Where appropriate, you should reuse software that has already been developed rather than write new software. Chapter 1 Introduction 15

The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification Development Analysis and design Implementation Validation Evolution A software process model is an abstract representation of a process from some particular perspective. Chapter 2 Software Processes 16

Software process activities Software specification, where customers and engineers define the software and the constraints on its operation. Software analysis and design, where the requirements are refined into system design. Software implementation, where the software is implemented. Software validation, where the software is checked to ensure that it is what the customer requires. Software evolution, where the software is modified to reflect changing customer and market requirements. Chapter 2 Software Processes 17

Software process models The waterfall model Plan-driven model. Separate and distinct phases of specification and development. Incremental development Specification, development and validation are interleaved. May be plan-driven or agile (respecting agile development principles). Reuse-oriented software engineering The system is assembled from existing components. May be plan-driven or agile. In practice, most large systems are developed using a process that incorporates elements from all of these models. Chapter 2 Software Processes 18

The waterfall model Chapter 2 Software Processes 19

Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites, and for generic products. In those circumstances, the plan-driven nature of the waterfall model helps coordinate the work. Chapter 2 Software Processes 20

Incremental development Chapter 2 Software Processes 21

Incremental development benefits The cost of accommodating changing customer requirements is reduced. The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. It is easier to get customer feedback on the development work that has been done. Customers can comment on demonstrations of the software and see how much has been implemented. More rapid delivery and deployment of useful software to the customer is possible. Customers are able to use and gain value from the software earlier than is possible with a waterfall process. Chapter 2 Software Processes 22

Incremental development problems The process is not visible. Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system. System structure tends to degrade as new increments are added. Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. Chapter 2 Software Processes 23

Reuse-oriented software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Process stages Component analysis; Requirements modification; System design with reuse; Development and integration. Reuse is now the standard approach for building many types of business system Chapter 2 Software Processes 24

Reuse-oriented software engineering Chapter 2 Software Processes 25

Key points There are many different types of system and each requires appropriate software engineering tools and techniques for their development. The fundamental ideas of software engineering are applicable to all types of software system. Software engineering is an engineering discipline that is concerned with all aspects of software production. The high-level activities of specification, development (analysis and design, and implementation), validation and evolution are part of all software processes. Chapter 1 Introduction 26

Key points Software processes are the activities involved in producing a software system. Software process models are abstract representations of these processes. General process models describe the organization of software processes. Examples of these general models include the waterfall model, incremental development, and reuse-oriented development. Chapter 2 Software Processes 27

UML in Software Development Lecture 1/Part 3 Chapter 5 System modeling 28

Outline System modeling Structural models Interaction models Behavioral models Chapter 5 System modeling 29

System modeling System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system. System modeling has now come to mean representing a system using some kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML). System modelling helps the analyst to understand the functionality of the system and models are used to communicate with colleagues and customers. Chapter 5 System modeling 30

System perspectives An external perspective, where you model system boundary, the context and/or environment of the system. A structural perspective, where you model the organization of a system or the structure of the data that is processed by the system. An interaction perspective, where you model the interactions between a system and its environment, or between the components of a system. A behavioral perspective, where you model the dynamic behavior of the system and how it responds to events. Chapter 5 System modeling 31

UML diagram types External perspective Use case diagram Structural perspective Class diagram, Object diagram, Component diagram, Package diagram, Deployment diagram, Composite structure diagram Interaction perspective Sequence diagram, Communication diagram, Interaction overview diagram, Timing diagram Behavioral perspective Activity diagram, State diagram Chapter 5 System modeling 32

Popular UML diagrams Use case diagrams, which show the interactions between a system and its environment. Class diagrams, which show the object classes in the system and the associations between these classes. Sequence diagrams, which show interactions between actors and the system and between system components. Activity diagrams, which show the activities involved in a process or in data processing. Chapter 5 System modeling 33

UML Use case diagram: Medical receptionist in health care system Chapter 5 System modeling 34

UML Class diagram: Health care system Chapter 5 System modeling 35

UML Sequence diagram: View patient information in health care system Chapter 5 System modeling 36

UML Activity diagram: Process model of involuntary detention Chapter 5 System modeling 37

Key points A model is an abstract view of a system that ignores system details. Complementary system models can be developed to show the system s context, structure, behavior and interactions. Context models show how a system that is being modeled is positioned in an environment with other systems. Structural models show the organization and architecture of a system. Class diagrams are used to define the static structure of classes in a system and their associations. Interaction models are used to describe the interactions between system elements and Behavioral models to detail the internal dynamic behavior of system elements/processes. Chapter 5 System modeling 38