CSCI 360: Software Architecture & Design

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ch 3: Unified Process CSCI 4320: Software Engineering.
CS487 Software Engineering Omar Aldawud
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Object-Oriented Analysis and Design
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Object-oriented Analysis and Design
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
Principles of Object Technology Module 1: Principles of Modeling.
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Object-Oriented Analysis and Design An Introduction.
Iterative development and The Unified process Chapter 2 Applying UML and Patterns -Craig Larman.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
The Rational Unified Process 1 EECS810: Software Engineering.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Software Development Framework
Iterative development and The Unified process
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
The Unified Software Development Process
Elaboration popo.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Process Source & Courtesy: Jing Zou.
UNIFIED PROCESS.
Unified Process (UP).
Software Processes.
Requirements and the Software Lifecycle
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Object Oriented Analysis and Design
Rational Worldwide Software Symposium
Rational Unified Process
Chapter 2 – Software Processes
Rational Worldwide Software Symposium
Software engineering -1
CS310 Software Engineering Lecturer Dr.Doaa Sami
Rational Worldwide Software Symposium
Logical Architecture & UML Package Diagrams
Other System Requirements
Presentation transcript:

CSCI 360: Software Architecture & Design Dr. X

Outline Recap previous class Iterative Development Case Studies Github!

Architecture and Design Architecture: the complex or carefully designed structure of something. (dictionary.com) Design: purpose, planning, or intention that exists or is thought to exist behind an action, fact, or material object. (dictionary.com)

OOAD OOA: find and describe objects in the problem domain. OOD: define objects and how they collaborate to fulfil requirements. OOAD Steps: Define Use Cases Define Domain Model Define Interaction Diagrams Define Design Class Diagrams Use case: stories, scenarios of how product will be used Domain model: noteworthy concepts or objects Interaction: sequence

UML as a sketch

UML as a sketch Is visual modeling a good thing and why?

From Design to Implementation Analysis investigation of the problem Design logical solution Construction code public class Book { public void print(); private String title; } Book Book (concept) title print() Domain concept Representation in analysis of concepts Representation in an object-oriented programming language.

The Unified Process (UP) A process is a set of partially ordered steps intended to reach a goal. What is the goal in Software Engineering? Based on the above definition, what is the software process? The Unified Process (UP) is a process for building object-oriented systems. What is the goal of UP? Software Engineering Goals: Software engineering is the application of engineering to the development of software in a systematic method Readability Correctness Reliability Reusability Extensibility Flexibility Efficiency What is a SW process? In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle. What is the goal of UP? The goal of the UP is to enable the production of high quality software that meets users needs within predictable schedules and budgets.

Iterative Development [iteration N] Requirements – Analysis - Design- Implementation - Testing [iteration N+1] Requirements – Analysis - Design- Implementation - Testing Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1. The system grows incrementally.

Iterative Development How do we organize development? What does an iteration represent? What is the input of an iteration? What is the output of an iteration? Why should we as developers embrace iterative development and change? Is the output of an iteration a throwaway prototype or a production grade subset of a system? If you find yourself in an iterative project where you try to define all the requirements and UML models before programming, then you have fallen in the trap of waterfall thinking! Change is the constant in Sw projects Feedback, adaptation to marketplace and change! Agility: rapid and flexible response to change! The output of an iteration is not an experimental prototype but a production subset of the final system. Each iteration tackles new requirements and incrementally extends the system. An iteration may occasionally revisit existing software and improve it Stakeholders usually have changing requirements. Each iteration involves choosing a small subset of the requirements and quickly design, implement and testing them. This leads to rapid feedback, and an opportunity to modify or adapt understanding of the requirements or design.

Iteration Length and Timeboxing What is the recommendation of UP for iteration length and why? What is timeboxing? How does it manage change or lack of enough time? The UP recommends short iteration lengths to allow for rapid feedback and adaptation. Long iterations increase project risk. Iterations are fixed in length (timeboxed).If meeting deadline seems to be difficult, then remove tasks or requirements from the iteration and include them in a future iteration. The UP recommends that an iteration should be between two and six weeks in duration.

Phases of the Unified Process Inception Elaboration Construction Transition time A UP project organizes the work and iterations across four major phases: Inception - Define the scope of project. Elaboration - Plan project, specify features, baseline architecture. Construction - Build the product Transition - Transition the product into end user community Inception – vision Elaboration – model Construction – coding Transition - testing

Iterations and Milestones Inception Elaboration Construction Transition What is the focus of a release or iteration? What does a milestone review provide? What marks the end of an iteration? Preliminary Iteration Iter. #1 Iter. #2 Milestone Release Final production release Always remember that a phase can have several iterations in it. An iteration does not contain any phases! Each phase and iteration has some risk mitigation focus, and concludes with a well-defined milestone. The milestone review provides a point in time to assess how well key goals have been met and whether the project needs to be restructured in any way to proceed. The end of each iteration is a minor release, a stable executable subset of the final product.

Preliminary Iteration(s) The UP Disciplines Phases Inception Elaboration Construction Transition Process Disciplines Business Modeling Requirements Analysis & Design Implementation Test Deployment Each iteration has a mix of disciplines (requirements, domain, design, code) and so a phase will have several repetitions of a little life cycle. However the mix of disciplines tends to be different in each phase. The disciplines are like tools that are used in many phases. However in the early phases we normally do more business modeling and requirements than Design and Implementation. In later phases this is reversed. Supporting Disciplines Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations

Preliminary Iteration(s) The UP Disciplines In an iteration you walk through all disciplines. Phases Process Disciplines Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Disciplines Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations

Preliminary Iteration(s) The UP Disciplines Focus of this course. Phases Process Disciplines Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Disciplines Although an iteration includes work in most disciplines, the relative effort and emphasis change over time. Early iterations tend to apply greater emphasis to requirements and design, and later ones less so. Figure illustrations are suggestive, not literal. Note that activities and artifacts are optional (except code!) Developers select those artifacts that address their particular needs. Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations

Advantages of an Iterative Process Reduce risks Risks are identified early, progress is easier to see. Get a robust architecture Architecture can be assessed and improve early. Handle evolving requirements Users provide feedback to operational systems. Responding to feedback is an incremental change. Allow for changes System can adapt to problems Attain early learning Everyone obtains an understanding of the different workflows early on.

Agile cake Would you plan to eat it one layer at a time: (1) all the Requirements, (2)all the Design, (3) Code it all and then (4) do the tests

Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/

Fig. 3.1

Case Study: NextGen POS System

Fig. 3.2