CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Agile Project Management with Scrum
Object-oriented Analysis and Design
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Iterative development and The Unified process
4. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the elements of project management and the responsibilities of a.
COMP 350: Object Oriented Analysis and Design Lecture 2
CHAPTER 17 Building Software to Support an Agile Organization
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
Elements of Software Architecture
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.
Chapter 2 The process Process, Methods, and Tools
Transforming Organizations
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Process Models.
Eighth Hour Lecture 7:30 – 8:20 pm, Thursday, September 13 Workflows of the Process (from Chapter 8 of Royce’ book)
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
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Lecture 3 – Agile Approach
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Process Models.
Dr. Rob Hasker. Should every project use Scrum?  When might Scrum not be an appropriate model?  What are some of its limitations? Hard to get the big.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
TK2023 Object-Oriented Software Engineering
Object-oriented Analysis and Design
Process 4 Hours.
Flight Software Conference 2016
Methodologies and Algorithms
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Software Engineering Process
Agile Software Development Brian Moseley.
Software Process Models
Requirements and the Software Lifecycle
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
How to Successfully Implement an Agile Project
Lecture 2 Revision of Models of a Software Process
CSCI 360: Software Architecture & Design
Presentation transcript:

CSPC 464 Fall 2014 Son Nguyen

1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown 3. An Introduction to Software Architecture, David Garlan and Mary Shaw 4. Software Architecture, A. Bijlsma, B.J. Heerendr., E.E> Roubtovair, S. Stuurman 2

 Attendance/Roster  Review Tuesday’s topics  Today’s topics: Process of Architecting ◦ Method Content  Work products  Tasks  Roles ◦ Types of Process  Waterfall  Iterative  Agile

 What is an architecture?  What is software architecture?  What is the role of the architect?  What is architecting?

5

 Use SW and Systems Process Engineering Metal Model Specification (SPEM) standard  An effective SW development method should describe who does what, how, and when ◦ Roles: The Who ◦ Work products: The What ◦ Tasks: The How ◦ Phases, iterations, and activities: The When

 A SW development project typically moves through several phases  Each phase is divided into several iterations  Within each iteration, there are various activities that reference ◦ Tasks  performed by roles  Produces work product

 Defines the responsibilities of an individual or a set of individuals working together as a team  Responsible for one or more work products and performs a set of tasks ◦ Requirement Analyst ◦ Project manager ◦ Lead architect ◦ Application architect ◦ Infrastructure architect ◦ Data Architect

 A piece of information or physical entity that is produced/used during execution of the process  The SPEM defines three types: ◦ Artifact: document, model, source code, executable ◦ Deliverable: content packaged for delivery to a stakeholder ◦ Outcome: a result or state as the result of task execution

 An activity represents a group of tasks  The architect performs tasks within the activities: creating logical architecture (chapter 8) and creating physical architecture (chapter 9)  A task is a unit of work that provides a meaningful result ◦ Has a clear purpose (e.g., document architecture decisions) ◦ Performed by appropriate roles ◦ May be repeated several times, especially when an iterative development approach is taken

 The application of the method content in terms of sequence in which they are applied  Three types of process: ◦ Waterfall ◦ Iterative ◦ Agile

 Each discipline is deemed to be complete when all the appropriate work products for that discipline have been created and signed off on  The requirements discipline considered to be complete when all the requirements have been identified in detail, and reviewed. Then the outputs from requirements flows into the architecture discipline

15 Requirements Design Code & Unit Test Integration Test (Validation & Verification) Maintenance

 This approach is widely used in: ◦ the development of a system involves a relative small amount of risk ◦ projects represent minor enhancements of an existing system  This approach can be problematic for ◦ Greenfield projects where architect starts from a scratch ◦ Projects are changing extensively for several reasons.

 Major Problems: ◦ Project progress cannot be measured accurately  Focus on creation of work products, not achievement of results  Completing requirements without doing any architecture, development, or testing will NOT give you an accurate indication of how long project would take ◦ User feedback cannot obtained until late in the project – when the system is available for use ◦ Resolution of certain risks (e.g., activity identifies flaws in design or requirements) is deferred until late in the project – after the system is built, integrated, and tested ◦ Project that follow a waterfall approach are prone to schedule slippage

 Iteration: ◦ A short and set duration of a project ◦ Allow to demonstrate incremental value ◦ Obtain early and continuous feedback  A pass is made through each of disciplines  Each iteration results in ◦ Better understanding of requirements ◦ A more robust architecture ◦ A more experienced development org ◦ A more complete implementation  More productive and successful

 Phases – OpenUP defines four sequential phases: ◦ Inception Phase:  Where the business case and objectives for project is established  Where the focus is on ensuring project is valuable and feasible ◦ Elaboration phase:  Where the architecture is established  Where the architect expends the most effort ◦ Construction Phase:  Where the remaining requirements are clarified  Where development of the system is completed on the baselined architecture ◦ Transition Phase:  Where the system is deployed in user’s environment for acceptance testing  Where project should be to closed out by the end

 Phases and iterations together provide foundation for an iterative development process  Objectives of each phase are achieved by executing one or more iterations within the phase  Each phase concludes with a major milestone  Successful assessment allows the project to move to the next phase

 An iterative development process is result- driven (vs. work-product driven), providing more accurate measures of project progress  An iterative approach: ◦ allows early user feedback through execution of incremental releases ◦ Integration and testing occur within each iteration and executable release is produced ◦ Risks are detected early on

 Agile Manifesto (2009) states the following values: ◦ Individuals and interactions over processes and tools. ◦ Working software over comprehensive documentation. ◦ Customer collaboration over contract negotiation. ◦ Responding to change over following a plan.  Scrum is a management and control process that cuts through complexity to focus on building software to meet business needs. Scrum is superimposed on top of and wraps existing engineering practices, development methodologies and standards. [Schwaber 2002]

 Scrum focuses on: ◦ Content of an iteration (Sprint) ◦ Prioritized requirements to be considered in iteration (Sprint Backlog) ◦ A Short daily meeting (a Scrum)  Scrum methodology will be discussed in more detail later in Oct 9 lecture

 Next week, we will take a look at ◦ Elements of Software Architecture ◦ Architectural Design Process  Homework assignments this week – read chapter 1, 2, and 3 in The Process of Software Architecting  Any questions? 24