Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Similar documents
03. Perspective Process Models

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

Sistemi ICT per il Business Networking

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

Chapter 3 Software Process Model

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Introduction to Software Engineering

The Top Thrill Dragster

Pertemuan 2. Software Engineering: The Process

A New Divide & Conquer Software Process Model

Chapter 1 Systems Development in an Organization Context

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Software Life Cycle. Main Topics. Introduction

Quality Management of Software and Systems: Processes and QM

Unifying Systems and Software Teams: A Holistic Approach to Systems Development

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Analyze, Design, and Develop Applications

SUSE Unified Delivery Process

Waterfall model is the earliest SDLC approach that was used for software development.

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

[Name] [ ID] [Contact Number]

Object-Oriented and Classical Software Engineering

2/14/2013. Software Engineering. Session 3 Sub-Topic. 1 Strategy Alignment Elicitation Methodology. Dr. Jean-Claude Franchitti

Chapter. Redesigning The Organization With Information Systems

Software Lifecycle Models

The Unified Software Development Process

Object-Oriented & Classical Soft Engineering

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Requirements Engineering and Agile Methodology

Development Environment Definition

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

An Oracle White Paper February Oracle Unified Method (OUM) Oracle s Full Lifecycle Method for Deploying Oracle-Based Business Solutions

Software development activities

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

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

vramanujam Page 1 5/22/2014 TESTING MANUAL VARUN RAMANUJAM

SDLC Models- A Survey

Inception. Describe the vision and business case for this project. Determine if the enterprise should build or buy the necessary system.

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

Chapter 1 Software Process

IEEE and Agile Process- Create Architecture Description through Agile Architecture Framework

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

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Satisfying DoD Contract Reporting With Agile Artifacts

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

Software Development Life Cycle:

Component-based Development Process and Component Lifecycle

Software Construction

How Business Analysis Can Improve Sales and Marketing Outcomes

The Ten Essentials of RUP

A Hybrid Approach Using RUP and Scrum as a Software Development Strategy

Scrum, Creating Great Products & Critical Systems

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

Requirements Engineering and Software Architecture Project Description

White paper. Alan Radding, Technology Consultant

INF5181: Process Improvement and Agile Methods in Systems Development

Overcoming challenges to ensure success of outsourcing/offshore projects

RESEARCHERS and practitioners have realized that

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

David. Director of Rational Requirements and Quality Management Products

The Macro Process Is the Micro Process

Umeå University Department of Computing Science SE UMEÅ SWEDEN

The IBM Rational Software Delivery Platform Product Overview

Design and Assessment for Agile Auditing Model: The Case of ISO 9001 Traceability Requirements

Architecture Development Methodology for Business Applications

Redesigning the Organization with Information Systems

A lifecycle approach to systems quality: because you can t test in quality at the end.

SEI Architecture Techniques complementary to the RUP Stuart Kerrigan, Richard van Schelven Principal Engineers Data Networks

SOFTWARE ENGINEERING

Choose an Agile Approach

Software Reviews Since Acquisition Reform Architecture-Driven Considerations

Pearson Education 2007 Chapter 1 (RASD 3/e)

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Copyright Software Engineering Competence Center

CMMI-DEV V1.3 CMMI for Development Version 1.3 Quick Reference Guide


FREQUENTLY ASKED QUESTIONS

Software Engineering II - Exercise

Installation and Maintenance of Health IT Systems

TOWARDS DEFINING SOFTWARE DEVELOPMENT PROCESSES IN DO-178B WITH OPENUP

REQUIREMENT DRIVEN TESTING. Test Strategy for. Project name. Prepared by <author name> [Pick the date]

CHAPTER 2: IMPLEMENTATION PHASES AND OFFERINGS

PROJECT MANAGEMENT KNOWLEDGE RETRIEVAL: PROJECT CLASSIFICATION

Software Engineering COMP 201

NDIA th Annual Systems Engineering Conference. MBSE to Address Logical Text-Based Requirements Issues. Saulius Pavalkis, PhD, No Magic, Inc.

Reducing Business Risk

Introduction to Systems Analysis and Design

Information Systems Development

Certified Tester. Expert Level. Modules Overview

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

Global Information Systems: Development Frameworks. Prof. Dr. Jan M. Pawlowski Autumn 2013

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 10. * Construction, Installation and Operations * Agile Method Software Development

6 Core Building Blocks of a Group Benefits Underwriting Application

Static Code Analysis A Systematic Literature Review and an Industrial Survey

Generalizing Agile Software Development Life Cycle

Transcription:

Software Modeling & Analysis - Fundamentals of Software Engineering - Software Process Model Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr

What is Software Engineering? [ IEEE Standard 610.12-1990 ] Software Engineering: (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 approaches as in (1). [ Fritz Bauer (1969) ] Software Engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. [ Watts Humphrey (1995) ] The disciplined application of engineering, scientific, and mathematical principles and methods to the economical production of quality software. Konkuk University 2

What is Software Engineering? [ Junbeom Yoo (2008) ] All activities to develop and manage software well [ Roger S. Pressman (2005) ] Software engineering is a layered technology. Tools Methods Process A quality focus Konkuk University 3

What is Software Engineering? A layered technology Tools provide automated or semiautomated support for the process and the methods Methods provide the technical how to s for building software Tools Methods Process A quality focus Any engineering approach must rest on an organizational commitment to Quality Konkuk University Process is the glue that holds the technology layers together and enables rational and timely development of software 4

Software Engineering Technologies Requirements Engineering (Elicitation & Specification) Reliability Engineering Safety Analysis Structured Analysis and Design Object-Oriented Analysis and Design Test Driven Development (TDD) XP (extreme Programming) RUP (Rational Unified Process) UML (unified Modeling Language) Software Process Improvement (SPI) Configuration Management Project Management Software Architecture Software Product Line Design Patterns Formal Methods (Formal Verification).NET J2EE XML WEB Tools Methods Process A quality focus Telelogic Tau, ClearCase, ClearQuest, SDL Rational Rose Visual Studio SMV, SPIN, VIS Konkuk University 5

IEEE Software Engineering Standards Process standards IEEE-Std 1074-1997, IEEE Standard for Developing Software Life Cycle Processes IEEE Std 1012-1998, IEEE Standard for Software Verification and Validation Product standards IEEE Std 829-1998, IEEE Standard for Software Test Documentation IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications Konkuk University 6

Software Process Model What is it? Process models define a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer highquality software. Defines Who is doing What, When to do it, and How to reach a certain goal. Process models were originally proposed to bring order to the chaos of software development. Typical Process Models Waterfall Model / Incremental Model Evolutionary Models (Prototyping, Spiral) Specialized Model (Component-Based Development, Formal Methods) Unified Process (RUP) Konkuk University 7

Waterfall Model A classic life cycle model Suggests a systematic, sequential approach to software development The oldest paradigm Useful in situations where requirements are fixed and work is to proceed to completion in a linear manner Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback Konkuk University 8 More Info.: http://en.wikipedia.org/wiki/waterfall_model

Incremental Model What is it? Combines elements of the waterfall model applied in an iterative fashion Delivers a series of releases(increments) that provides progressively more functionality for the customer as each increment is delivered Software Functionality and Features delivery of 1 st increment delivery of 2nd increment delivery of Nth increment Konkuk University Project Calendar Time 9

Evolutionary Model Prototyping Model Used when customer does not indentify detailed requirements Used when developers may be unsure of the efficiency of the algorithm, adaptability of OS, or the form of HMI should take Commonly used within the context of other process models Communication Deployment Delivery Feedback Quick plan Construction of prototype Modeling Quick design Konkuk University 10 More Info.: http://en.wikipedia.org/wiki/software_prototyping

Evolutionary Model Spiral Model Software is developed in a serious of evolutionary releases Excerpted from Software Engineering: A Practitioner s Approach by Roger S. Pressman Konkuk University 11 More Info.: http://en.wikipedia.org/wiki/spiral_model

Specialized Model Component-Based Development (CBD) Use commercial off-the-shelf(cots) software components CBD-based Software development steps: 1. Available component-based products are researched and evaluated 2. Component integration issues are considered 3. A software architecture is designed to accommodate the component 4. Components are integrated into the architecture 5. Comprehensive testing is conducted to ensure proper functionality Let s give your opinion upon CBD!!! Konkuk University 12

Specialized Model Formal Methods Formal Specification : write software requirements mathematically (logically) with support of automatic tools Formal Verification : prove its correctness mathematically Aiming at defect-free software Highly recommended to use to develop safety-critical systems Nuclear Power Plants Railroad Control Satellite Control Aerospace Industry (i.e. NASA) Let s give your opinion upon Formal Methods!!! Konkuk University 13

Unified Process called as Rational Unified Process (RUP) What is it? A Software development approach that is Iterative, Architecture-centric, and Use-case-driven A Well-defined and well-structured software engineering process A Process product that provides you with a customizable process framework for software engineering Konkuk University 14

The Spirit of the RUP Essential Principles Attack major risks early and continuously or they will attack you. Ensure that you deliver value to your customer. Stay focused on executable software. Accommodate change early in the project. Baseline an executable architecture early on. Build your system with components. Work together as one team. Make quality a way of life, not an afterthought. Konkuk University 15

RUP : A Software Development Process An Iterative Development Excerpted from Software Engineering: A Practitioner s Approach by Roger S. Pressman Konkuk University 16

RUP : A Well-Defined Software Engineering Process Dynamic Structure of RUP 1. Inception Phase: Define the scope and lifecycle of the project 2. Elaboration Phase: Mitigate risks and create a stable baseline architecture 3. Construction Phase: Develop the remainder of the system as efficiently as possible 4. Transition Phase: Get customer acceptance of the product Inception Elaboration Construction Transition 17 Lifecycle Objective Milestone Lifecycle Architecture Milestone Konkuk University Initial Operational Capability Milestone Pro Milestone 17

RUP : A Well-Defined Software Engineering Process Static Structure of RUP 1. Role : Who? 2. Activity : How? 3. Artifact : What? 4. Workflow : When? Role Activities Designer Use-Case Analysis Use-Case Design Artifact responsible for Use-case Realization models documents source code Prototype Konkuk University

RUP : A Well-Defined Software Engineering Process Workflow A way to describe meaningful sequences of activities A way to show interactions between roles 2 forms of workflows 1. Disciplines : - High-level workflows 2. Workflow Details : - Workflows within a discipline Excerpted from RUP iteration planning in www.ibm.com Konkuk University 19

RUP : A Well-Defined Software Engineering Process 9 Disciplines Logical containers of all process elements 1. Business modeling 2. Requirements management 3. Analysis and design 4. Implementation 5. Test 6. Deployment 7. Change management 8. Project management 9. Environment Copyright by Rational Rose Corporation Konkuk University 20

RUP : A Well-Defined Software Engineering Process Workflow Details Each workflow creates one or more models implemented with UML Use Case Diagrams Requirements Use Case Model Class Diagrams Analysis Analysis Model Component Diagrams Design Model Deployment Diagrams Design Deployment Model Sequence Diagrams Implementation Implementation Model Collaboration Diagrams Statechart Diagrams Test Test Model All diagrams Activity Diagrams Konkuk University 21

RUP : A Well-Defined Software Engineering Process Major work products produced for each RUP phase Inception phase Vision document Initial use-case model Initial project glossary Initial business case Initial risk assessment Project plan - phases and iterations Business model Prototypes Elaboration phase Use-case model Supplementary requirements - including non-functional Analysis model Software architecture description Executable architectural prototype Preliminary design model Revised risk list Project plan including - iteration plan - adapted workflows - milestones - technical work products Preliminary user manual Construction phase Design model Software components Integrated software increment Test plan and procedure Test cases Support documentation - user manuals - installation manuals - description of current increment Transition phase Delivered software increment Beta test reports General user feedback Konkuk University 22

RUP : A Customizable Process Product To accommodate various needs requiring a process that is adapted to their specific situation 1. Best practices 2. Configuration tools: selecting appropriate best practices 3. Process delivery tools: accessing selected best practices 4. Online community: exchanging artifacts and experiences with others 5. Process authoring tools: adding new best practices to the RUP Rational Unified Process Process Authoring Configuration Tools Best Practices Process Delivery Tools Community / Marketplace Konkuk University 23

Summary What is Software Engineering? What is Software Process Model? Why you have to use the software process model? Can you clarify the difference between typical process models? What is the RUP? What is the relationship between UML and RUP? Konkuk University 24

Recommended Supplementary Text Konkuk University 25