Chapter 16: Analysis and Design (a short introduction) ● As engineers in other desciplines do, it necessary for real projects to “analyse” and “design”

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

K. Ingram1November 2000 Object Orientated Analysis and Design - Contents When to use OO? What is OO? Unified Modelling Language OO Methodologies: –Object.
Software Processes.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Lecture # 2 : Process Models
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
Part 1: Introducing User Interface Design Chapter 1: Introduction –Why the User Interface Matters –Computers are Ubiquitous –The Importance of Good User.
03/12/2001 © Bennett, McRobb and Farmer Development Process Based on Chapter 5 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
1 CMPT 275 Software Engineering Software life cycle.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Understand Application Lifecycle Management
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prepared by Afra`a Sayah. Introduction. Weekly Tasks. Plane Phase. Analysis Phase. Design Phase. Report Rules. Conclusion. 2.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
© 2010 Bennett, McRobb and Farmer1 Development Process Based on Chapter 5 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.
An Introduction to Software Engineering
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
The principles of an object oriented software development process Week 04 1.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Development Process Based on Chapter 5 Bennett, McRobb and Farmer
Software Engineering cosc 4359 Spring 2017.
Announcements/Assignments
Software Development - Methodologies
Software Development.
Methodologies and Algorithms
Software Prototyping.
The Basics of OOP Design
CS 389 – Software Engineering
Chapter 1: Introduction to Systems Analysis and Design
SNS College of Engineering Coimbatore
Software Processes (a)
Software Process Models
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
Introduction to Software Engineering
Object Oriented Analysis and Design
Chapter 2 – Software Processes
Chapter 2 Software Processes
Software Design Lecture : 15.
CS310 Software Engineering Lecturer Dr.Doaa Sami
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Presentation transcript:

Chapter 16: Analysis and Design (a short introduction) ● As engineers in other desciplines do, it necessary for real projects to “analyse” and “design” before (or in parallel to) coding ● There are many methodolgies that have been introduced for full life-cycle of software: – Waterfall – Rational Unified Process – Extreme Programming – Interaction design – etc. ● However, we can recognise some phases (deciplines) which are usally done for any methodology

Phase 0 – Make a plan ● Before starting any real project we should have a plan for building it. ● A plan says things like following to us: – Statement of work (mission) – Tasks and times for each – Resources – Deliverables

Phase 1- What we are making (a.k.a. Requirement analysis and specification) ● In OOP we normally create use case diagrams and use case specifications for this phase. Those diagrams specify following: ● Who will use the system (Actors) ● What can those actors do with the system ● How does this actor do that with the system ● What problems may happen when doing this with the system

Use case diagram example

Phase 2: how we build this ● We should create a solution for each use case. ● Solutions are provided by: ● Designing classes (interfaces) ● Specifying relationships between classes (class diagrams) ● Providing a solution for a use case with the use of designed classes (Sequence diagrams or collaboration diagrams)

Object design stages 1. Object discovery. 2. Object assembly. 3. System construction. 4. System extension. 5. Object reuse.

Phase 3: build the core ● Establishing core of the system architecture that needs to be implemented to have a running system ● This is an initial framework that you can build on with further iterations ● For example we may only produce user interfaces with little or no functionality ● This helps find any misunderstandings, errors and problems in specification or design

Phase 4: Iterate the use cases ● At each iteration, we add some functionality to the core ● Then we build the (new) system, test it and will be ready for next iteration ● An iteration is a 1 to 3 weeks period ● It is better to start with critical parts of the system at the early iterations: ● Parts that maybe not well understood ● Those that needs some sophisticated algorithm/protocol ● Part that the team is not well suited with it

Phase 5: Evolutions (AKA maintenance) ● This includes following activities: ● Adding new functionality to the system ● Changing functionality ● Debugging ● Code re-factoring ● For better performance ● To make library of reusable components

Extreme programming idioms ● Write tests first: ● This helps to find missing functionalities ● Also helps in finding misunderstandings ● Pair programming ● One person types the code ● Other one watches him/her and notify problems (thinker) ● The value is that thinker creates a big picture in mind while the other one is coding ● There is less chance that tests left behind