Distributed Teams Week 13 INFM 603. Agenda Distributed teams Project presentation prep Final exam prep.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

“Systems” ILS, DAMS, and other Acronyms Week 12 LBSC 690 Information Technology.
Requirement Analysis Week 10 INFM 603. Agenda Systems analysis –Required for complex multi-person tasks User-centered design –Multiple stakeholders complicate.
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
Alternate Software Development Methodologies
Agile
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Documenting Requirements using Use Case Diagrams
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Structured Programming and UML Overview Session 2 LBSC 790 / INFM 718B Building the Human-Computer Interface.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
The System Life Cycle Week 12 LBSC 690 Information Technology.
© Copyright Eliyahu Brutman Programming Techniques Course.
Modular Programming and Use Case Models Session 3 LBSC 790 / INFM 718B Building the Human-Computer Interface.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Software Engineering Week 12 INFM 603. The System Life Cycle Systems analysis –How do we know what kind of system to build? User-centered design –How.
CIS 321—IS Analysis & Design
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Are Agile Projects Doomed to Half-Baked Design? Alex Chaffee Leslie Chicoine
Chapter 1: Introduction to Systems Analysis and Design
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Introduction To System Analysis and Design
Requirements Analysis Session 12 INFM 603. Different Perspectives on Design Thanks to Satish Mishra.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Leadership Covenant Manager of Category Development November 12, 2007.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Large Software Projects Deborah Black Vice President, Windows Division Microsoft.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Requirements Analysis Session 12 INFM 603. The System Life Cycle Systems analysis –How do we know what kind of system to build? User-centered design –How.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Final Exam Review Session 14 LBSC 790 / INFM 718B Building the Human-Computer Interface.
UML Use Case Models and Modular Programming Session 3 LBSC 790 / INFM 718B Building the Human-Computer Interface.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
UML (Unified Modeling Language)
UML - Development Process 1 Software Development Process Using UML.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Embedded Systems Software Engineering
Software Development.
Introduction to UML.
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
Object-Oriented Analysis and Design
UML Diagrams Jung Woo.
Requirements Analysis
UML: Unified modeling language
Unified Modeling Language
Object oriented analysis and design
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Distributed Teams Week 13 INFM 603

Agenda Distributed teams Project presentation prep Final exam prep

Strategic Choices Acquisition –Proprietary (“COTS”) –Open source Implementation –Integrate “Best-of-breed” systems –“One-off” custom solution

Global Software Development Barriers Geographic distance Temporal distance Linguistic & cultural distance Fear and trust Organizational structure Process Infrastructure Project Architecture Solutions Cultural ambassadors Configuration management Face to face kickoffs Modularity Well defined interfaces Effective handoffs Win-win strategies

Extreme Programming Planning game Customer involvement Coding standards Simplicity of design Pair programming Continuous integration Refactoring Small functional releases Collective ownership Sustainable pacing Metaphor

Open Source “Pros” More eyes  fewer bugs Iterative releases  rapid bug fixes Rich community  more ideas –Coders, testers, debuggers, users Distributed by developers  truth in advertising Open data formats  Easier integration Standardized licenses

Open Source “Cons” Communities require incentives –Much open source development is underwritten Developers are calling the shots –Can result in feature explosion Proliferation of “orphans” Diffused accountability –Who would you sue? Fragmentation –“Forking” may lead to competing versions Little control over schedule

Total Cost of Ownership Planning Installation –Facilities, hardware, software, integration, migration, disruption Training –System staff, operations staff, end users Operations –System staff, support contracts, outages, recovery, …

Total Cost of Ownership

Open Source Business Models Support Sellers Loss Leader Widget Frosting Accessorizing Sell distribution, branding, and after-sale services. Give away the software to make a market for proprietary software. If you’re in the hardware business, giving away software doesn’t hurt. Sell accessories: books, compatible hardware, complete systems with pre-installed software

Project Presentations Maximum of 25 minutes Goals (from the user’s perspective) Demo Task division between partners Most interesting implementation details Complete list of limitations Lessons learned Project process improvement (optional)

Final Exam 2 hours –Starts at 6:00 sharp (be early) –Ends at 8:00 sharp Take it anywhere –Classroom will be available –Ask me questions by or phone Open everything –But no communication with any other person Available from the Web and by Submitted to me by

Unified Modeling Language Real systems are more complex than anyone can comprehend Key idea: Progressive refinement –Carve the problem into pieces –Carve each piece into smaller pieces –When the pieces are small enough, code them UML provides a formalism for doing this –But it does not provide the process

Unified Modeling Language

Specifying Structure Capturing the big picture –Use case diagram (interactions with the world) –Narrative –Scenarios (examples to provoke thinking) Designing the object structure –Class diagram (“entity-relationship” diagram) –Object diagram (used to show examples)

Specifying Behavior Represent a candidate workflow –Activity diagram (a “flowchart”) Represent object interactions for a scenario –Collaboration diagram (object-based depiction) –Sequence diagram (time-based depiction) Represent event-object interactions –Statechart diagram (a “finite state machine”)

Use Case Design Use Case Diagram –Input-output behavior Use Case Narrative –Explains each use case Use Case Scenario –Activity diagram shows how the use cases are used together

Use Case Diagram

External “actors” –Roles of people –Types of systems Use cases –Top-level functions (solid arrows to/from actors) Relationships among use cases –Always-depends-on (dashed >) –Sometimes-is-depended-on (dashed >) –Inherits-from (solid triangle-arrow)

Thanks to Satish Mishra Activity Diagram: Modeling Decisions

Sequence Diagram Activation Message Thanks to Satish Mishra

Good Uses for UML Focusing your attention –Design from the outside in Representing partial understanding –Says what you know, silent otherwise Validate that understanding –Structuring communication with stakeholders

Avoiding UML Pitfalls Don’t sweat the notation too much –The key is to be clear about what you mean! Don’t try to make massive conceptual leaps –Leverage encapsulation to support abstraction Don’t get to attached to your first design –Goal is to find weaknesses in your understanding