Object Oriented Analysis and Design and Software Development Process Phases



Similar documents
Engineering Process Software Qualities Software Architectural Design

How To Design Software

Plan-Driven Methodologies

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Masters of Science in Software & Information Systems

Chapter 8 Approaches to System Development

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Karunya University Dept. of Information Technology

Reuse and Capitalization of Software Components in the GSN Project

Object Oriented Design

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

Lecture 9: Requirements Modelling

Classical Software Life Cycle Models

IT3205: Fundamentals of Software Engineering (Compulsory)

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

How To Understand Software Engineering

BCS HIGHER EDUCATION QUALIFICATIONS. BCS Level 5 Diploma in IT. Software Engineering 1. June 2015 EXAMINERS REPORT

Abstract. 1 Introduction

UML: Unified Modeling Language

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

3C05: Unified Software Development Process

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

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

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Project Management Step Wise. Sunday, 4 November 12

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

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

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

Object-Oriented Systems Analysis and Design

I219 Software Design Methodology

Chap 1. Introduction to Software Architecture

Requirements engineering

Information systems modelling UML and service description languages

SOFTWARE PROCESS MODELS

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

How To Understand The Software Development Lifecycle

A process-driven methodological approach for the design of telecommunications management systems

Architecture. Reda Bendraou

Time Monitoring Tool Software Development Plan. Version <1.1>

Use Cases. Massimo Felici. Massimo Felici Use Cases c

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

Menouer Boubekeur, Gregory Provan

Component Based Development in Software Engineering

Object-Oriented Design Guidelines

(BA122) Software Engineer s Workshop (SEW)

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

Object Oriented Software Models

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface

Case Study Solutions. This appendix contains the solutions to the Acme Mining Company Case Study.

Software Development: An Introduction

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

LAB 3: Introduction to Domain Modeling and Class Diagram

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

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

A UML Introduction Tutorial

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

Iterative Software Development -

Software Quality Management

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

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

What is a life cycle model?

Agile Modeling and Design of Service-Oriented Component Architecture

Object-oriented design methodologies

Automated Module Testing of Embedded Software Systems

Basic Unified Process: A Process for Small and Agile Projects

Design Issues in a Component-based Software Product Line

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

Software Design Models, Tools & Processes *

Chapter 11, Testing, Part 2: Integration and System Testing

Software Engineering 1

Getting Started Manual: Authors

ETSO Modelling Methodology for the Automation of Data Interchange of Business Processes (EMM)

CHAPTER THREE, Network Services Management Framework

PMI Fundamentals PMI Processes Project Organization. Initial documents. Functional, Project, Matrix Orgs. Statement of Work (SOW) Project Charter

The Master of Health Sciences Degree in Communication Disorders

Scenario-based Requirements Engineering and User-Interface Design

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Software Requirements Specification of A University Class Scheduler

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

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Object-Oriented Design

Designing Real-Time and Embedded Systems with the COMET/UML method

How to contribute to the joint course on software engineering by case studies

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

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

What CMMI Cannot Give You: Good Software

Adapted for a textbook by Blaha M. and Rumbaugh J. Object Oriented Modeling and Design Pearson Prentice Hall, 2005.

Java: Learning to Program with Robots. Chapter 11: Building Quality Software

Software Engineering

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Prof. Paolo Nesi. Lab: DISIT, Sistemi Distribuiti e Tecnologie Internet

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Comparing the Testing Approaches of Traditional, Object-Oriented and Agent- Oriented Software System

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Transcription:

Object Oriented Analysis and Design and Software Development Process Phases 28 pages

Why object oriented? Because of growing complexity! How do we deal with it? 1. Divide and conquer 2. Iterate and increment 3. Reuse and recycle 4. Strong cohesion and low coupling Among different entities 2 of 28

Principles of OO Abstraction Identify essential characteristics 1,2,3 Hierarchy Order of abstractions 1,2 Encapsulation Need to know principle 4,1 Classification Bring similar things together 3,1,4 Polymorphism Classify related differences 3,2 References Object Oriented By UML guys Booch Rumbaugh Jacobson And many others 3 of 28

OO-A/D/P and Processes Business modeling Capture requirements Analysis Design Implementation Testing and validation Deployment Configuration and change Project management 4 of 28

Before and after contract Inception Elucidate requirements Perform a rough OOA + OOD Calculate resources and costs Personnel, Time, COTS Elaboration, construction, transition Detailed OOA & OOD Test planning and testing Lots of documents 5 of 28

Requirements Functional What the system should do! Client should be able to withdraw cash Students should be registered Non-functional How it should behave while doing it portability reliability performance testability modifiability security cost presentation reusability understandability acceptance criteria interoperability 6 of 28

Requirements Satisfiability Normal Expected Exciting Criticality Mandatory Desirable Non-critical Stability Stable Non-stable User types Ones that order Ones that use 7 of 28

Requirements Specification Correct. There should be no factual errors. One interpretation only. We have seen a few examples of ambiguous statements above. The SRS should be complete. But requirements do change. So the format should allow changes All requirements must be verifiable (testable). All requirements must be consistent and non-conflicting. The requirements specification should be design neutral Concentrate on what the system should do not on how it should do it. 8 of 28

What should we do? (1) Requirements Requirements specification Construct use cases Is any use case not described in the requirements specification? Are there any conflicts between the descriptions and specification? Iterative Incremental 9 of 28

What should we do? (2) Object oriented analysis Find objects and relations Substantive Brainstorm Checklist Delegate responsibilities of activities to objects What should they do? CRC cards Create Class diagrams Interaction diagrams Sequence diagrams Collaboration diagrams 10 of 28

What should we do? (3) Object oriented design Detail class diagrams Detail interaction diagrams Detail statecharts and/or activity diagrams Create test plans Unit tests Integration tests Implement and Test Note all the activities in the last 3 slides are Iterative incremental 11 of 28

How to find objects Substantives From requirements specification From use cases Brainstorming Free flow of ideas Checklist Roles Facts Situations Interactions Concepts Information Controllers Outer entities Afterwards: classify, group, eliminate, relate them Design patterns are useful here 12 of 28

CRC A standard (handy) way for describing classes Small cards are used Should not support too much text A4 / 4 Class name Responsibilities Collaborations Back side can be used for data attributes ResultRegister Set results Result Create results Grade Search results Student 13 of 28

Testing Can only show that errors exist, not that they don t exist Unit test Module test Whitebox Blackbox Regression Integration test Top down Bottom up System test Against requirements specification Validation & Verification 14 of 28

Example: Course management Requirements Students should be able to register pairwise Students data should be available in the system A course should have different examination moments Every moment has a status out of a grade scale Every such scale should have a passed value Assistants should be able to set grades Data about assistants should be available in the system Examiner + Assistants should be able to get a list of Students that have successfully finished Students that have not finished All students 15 of 28

Use cases Register to lab Student Set grade Get list of passed includes Student Examiner includes Get list of students Get list of not passed Assistant 16 of 28

Find objects Student Assistant Examiner Lab group Lab moment Grade scale Result list Course Result register Person register, Student register 17 of 28

A initial class diagram Define relations Set multiplicity Problems: Grade for group or individual? How do I link moment and grade? Did we find all objects? 18 of 28

More objects to add A result links a student a grade and a moment Grade follows even if moved to another group If a group member resigns the other has the grade 19 of 28

Do an assessment Do we still need some objects? Do we have not necessary ones? Do we still have some new relationships? Do we have some not necessary relationships? Remember Association Generalisation Aggregation Composition 20 of 28

Specialisations of person 21 of 28

Define responsibilities for objects Good objects do one (or a few) things well Otherwise we have to split the object Remember divide and conquer It can be a more complex task That needs several operations Needs collaboration with other objects Classes can have attributes and operations And they represent what? Remember low coupling among objects Strong cohesion within object 22 of 28

Some rules of the thumb The expert If a class has the knowledge to do something then let it do it But not too many things Who creates whom? B creates A if B contains A B is responsible for storing A Uses A (strongly coupled) B has the initialisation data for A Factory? Anyone? Who deals with system functions? The objects used until now are descriptive (contain data) Should we use Course to get the lab registration, set grade, write lists what if a course disappears? Or should we use a controller? Remember design patterns? E.g. StudentHandler 23 of 28

After adding some controller objects 24 of 28

More responsibilities Look at he requirements Look at the use cases assistant sets the grade for a student at a certain moment Handled by assistant handler Who should manipulate the grade? Should the assistant handler create it and send to student? Should the student create it? 25 of 28

Cohesion and coupling again For each communication with a new class the coupling increases Create, return, have as argument, call method Internal data should be private Use interfaces to provide only a part of the object Or use private and protected modifiers A class should not have several strong relationships with two other classes Increases coupling 26 of 28

Coupling example 27 of 28