I219 Software Design Methodology



Similar documents
3C05: Unified Software Development Process

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

The most suitable system methodology for the proposed system is drawn out.

Unit 1 Learning Objectives

To introduce software process models To describe three generic process models and when they may be used

Software Engineering

Classical Software Life Cycle Models

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

The Unified Software Development Process

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

CS4507 Advanced Software Engineering

SOFTWARE PROCESS MODELS

Course Computer Science Academic year 2012/2013 Subject Software Engineering II ECTS 6

Information systems modelling UML and service description languages

2. Analysis, Design and Implementation

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Development Methodologies

Software Project Management using an Iterative Lifecycle Model

Software Process and Models

What CMMI Cannot Give You: Good Software

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

What is a life cycle model?

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

IES - Introduction to Software Engineering

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Chapter 2 Software Processes

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Software Development Methodologies

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

IT3205: Fundamentals of Software Engineering (Compulsory)

Object-oriented design methodologies

Family: Iterative Enhancement Origin: Ivar Jacobson, James Rumbaugh, Grady Booch, 1996 Defines process framework that is adaptable to

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Software Lifecycles Models

2. Analysis, Design and Implementation

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Plan-Driven Methodologies

An Introduction to the UML and the Unified Process

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

TOGAF usage in outsourcing of software development

Agile Unified Process

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Modelli di sviluppo software. Enrico Giunchiglia

The Rap on RUP : An Introduction to the Rational Unified Process

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

Case Study: Inception Phase. L. ch. 3-5

Software Engineering (CS550)

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Software Development: An Introduction

Chap 1. Introduction to Software Architecture

System development lifecycle waterfall model

Reuse and Capitalization of Software Components in the GSN Project

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Business Modeling with UML

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Modeling Web Applications Using Java And XML Related Technologies

An Approach for assessing the Quality of Software for small and medium sized firms

Software Design Models, Tools & Processes *

A Review of an MVC Framework based Software Development

A Survey of Plan-Driven Development Methodologies

Basic Unified Process: A Process for Small and Agile Projects

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Abstract. 1 Introduction

6 Contracts and Scenarios in the Software Development Process

Chapter 3. Technology review Introduction

Chapter 1 The Systems Development Environment

Ingeniería de Software & Ciclos de Vida. Luis Carlos Díaz Miguel Torres Julián Rodriguez

1. Introduction 1.1 Methodology

Weighted Total Mark. Weighted Exam Mark

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Analysis and Design with UML

Comparison between Traditional Approach and Object-Oriented Approach in Software Engineering Development

CHAPTER. Software Process Models

Research on Risk Analysis and Management in the Software Development Process. Quanzhou Huang

A Comparison of SOA Methodologies Analysis & Design Phases

How To Understand The Software Process

EXTREME PROGRAMMING AND RATIONAL UNIFIED PROCESS CONTRASTS OR SYNONYMS?

UML other structural. diagrams. (Implementation Diagrams UML 1.5) Università di Padova. Facoltà di Scienze MM.FF.NN. Informatica - anno

How To Design Software

2/25/2012. [5]

Software Life Cycle Processes

IV. Software Lifecycles

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

SAPM Overview Semester Summary

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

What Is the Rational Unified Process?

The Rational Unified Process

Transcription:

I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn

Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts in Object-Oriented A&D 2

Teaching Staff Instructor Nguyen V. Vu FIT, HCMUS Email: nvu@fit.hcmus.edu.vn Phone: 090-817-5957 Office hour: Wed, 13:00-13:30 Office: I82 3

Course Description and Objectives This I219 course is a component of JAIST Master s Program Objectives and contents are the same as I219 at JAIST, except Less focus on Object-oriented programming language. Why? 4

Objectives Provides students knowledge and skills to perform Object-Oriented Analysis and Design (OOAD) Modeling using UML Modeling effective software systems (reusable, easy-tomaintain, easy-to-change, etc. software components) Students will also Understand and apply design patterns effectively Provide reasonable and justifiable models 5

Topics Topics to be covered Basic principles and concepts in OOAD Unified Modeling Language (UML) Static and dynamic modeling Architectural design Design patterns 6

Reference books Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 2005. James Rumbaugh, Ivar Jacobson, Grady Booch, The Unified Modeling Language Reference Manual, Addison Wesley, 2004. Erich Ganmma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing Company, 1995. 7

Grading Grade Distribution Homework (3) 40% Final presentation and report (1) 30% Final exam (cumulative) 30% 8

Policies Moodle used for material distribution and communication Questions beneficial to both the questioner and others should be posted on Moodle s forum Students encouraged to ask questions in class Late submission policy 15% grade reduction for each day late Zero grade for 4 or more days late Exceptions are given for certain cases, e.g., illness 9

Academic Integrity Students are prohibited from copying from classmates, friends even if allowed from the Internet without proper citation (see below) Students are prohibited from allowing others to copy Other kinds of cheating and plagiarizing How to cite sources properly? If copying verbatim, put copied sentences/phrases in the double quotes If rephrasing a source, put a reference to the source 10

How to cite sources properly? Citing verbatim Citing with rephrasing Reference It is a matter of some urgency that we as a research community define and agree reporting protocols and methods for comparison [1] Shepperd believes that the research community needs to define a reporting protocols and methods for comparison [1] [1] Shepperd M, "Software project economics: a roadmap", Future of Software Engineering (FOSE'07), 2007 11

Violation penalty If the academic integrity violated, serious measures will be taken 1 st violation: zero grade for the assignment violating 2 nd violation and more: students will be failed the class and report to the school 12

Question so far? 13

Traditional Software Process Methods: Recap

Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 15

Waterfall Model Requirements definition System and Software Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance Disadvantage: difficult to handle changes 16

Waterfall Model Problems Inflexible partitioning of the project into distinct stages it is difficult to respond to changing customer requirements This model is may be mostly used for large systems engineering projects where a system is developed at several sites 17

Waterfall Model Revised Requirements definition System and Software Design Implementation and Unit Testing Integration and System Testing Operation and Maintenance 18

Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 19

Process iteration System requirements ALWAYS evolve in the course of a project Iteration can be applied to any of the generic process models Approaches Incremental delivery/development Spiral development Rational Unified Process (RUP) 20

Incremental development (Sommerville 2007) 21

Incremental development (cont d) High priority features can be delivered early so system functionality is available earlier Early increments are prototype to help elicit requirements for later increments Lower risk of overall project failure Highest priority features tend to receive the most testing 22

Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 23

Spiral Model (Boehm 1988) 24

Spiral Model Sectors Objective setting Risk assessment and reduction Development and validation Planning 25

Spiral Development Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required Risks are explicitly assessed and resolved throughout the process 26

Traditional Software Process Methods Waterfall Model Incremental development Spiral Model Rational Unified Process 27

Rational Unified Process (RUP) A modern process model derived from the work on the UML and associated process Developed and introduced by Rational Software, now IBM Rational Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practical perspective that suggests good practice. 28

RUP Activities are grouped into workflows Includes four phases Inception, Elaboration, Construction, and Transition Each phase is divided into one or more iterations 29

RUP Phases Inception Establish the business case for the system. Elaboration Develop an understanding of the problem domain and the system architecture. Construction System design, programming and testing. Transition Deploy the system in its operating environment. 30

RUP Iteration Each phase is divided into one or more iterations Each iteration is considered a waterfall cycle requirements, analysis & design, implementation, testing, and deployment Each iteration has entry and exit criteria or check points Typical number of iterations per phase Inception: 1-2 iterations Elaboration: 1-3 Construction: 2-3 Transition: 2-3 31

RUP Workflows Business modeling The business processes are modeled using business use cases Requirements Actors who interact with the system are identified and uses cases are developed to model the system requirements Analysis and Design Software architecture and design are created and presented via architectural models, component models, object models, etc. Implementation Software components are implemented 32

RUP Workflows (cont d) Testing Includes testing activities performed to verify and validate the product against the requirements Deployment Activities to release and deploy the product and help users to use the product successfully Configuration and Change Management (SCM) Manages changes to the software product Project Management Manages software development Environment Prepares and ensures software tools, processes, and hardware for the development team 33

RUP Good Practices Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software Use tools Use-case driven development Modeling and UML 34

Final Note on Software Process Analysis and Design is an important component of software development 35

References Ian Sommerville, Software Engineering, 8th Edition, Addison-Wesley, 2007 36