People and Teams Design.  For me ◦ Team meetings ◦ Next week’s demos  For client ◦ Your responsibility to schedule ◦ Can invite to next week’s presentation.

Slides:



Advertisements
Similar presentations
Where Agile Meets Formal Methods
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Object-Oriented Software Development CS 3331 Fall 2009.
20 September Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Software Testing and Quality Assurance
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Designing a System 4 October Beyond the Technology What will be implemented – external view –“glossy” brochure –Use cases and user types Translation.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1 Principles of Programming and Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
20 February Detailed Design Implementation. Software Engineering Elaborated Steps Concept Requirements Architecture Design Implementation Unit test Integration.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Software Quality Assurance
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
1 Shawlands Academy Higher Computing Software Development Unit.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
Lecture # 06 Design Principles II
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
CSE 303 – Software Design and Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Introduction to Software Engineering Lecture 1.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
ANU comp2110 Software Design lecture 5 COMP2110 Software Design in 2003 lecture 5 Requirements Specifications lecture 3 of 3 The Encounter game case study.
Introduction to Design. What is Design? 2 minutes Pairs.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
The Software Development Process
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
COMP2110 Software Design in 2003 ● a(nother) framework for Software Engineering ● the Software Engineering ideas and concepts in comp2110 ● Organisation.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
1)History of water fall model. 2)Features of water fall model. 3)Phase of water fall model. 4)Brief description of phases. 5)Advantages. 6)Disadvantages.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Chapter 3 AS3 Programming. Introduction Algorithms + data structure =programs Why this formula relevant to application programs created in flash? The.
CS223: 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.
Lectures 2 & 3: Software Process Models Neelam Gupta.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Principles of Programming & Software Engineering
People.
Chapter ? Quality Assessment
Component-Level Design
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Presentation transcript:

People and Teams Design

 For me ◦ Team meetings ◦ Next week’s demos  For client ◦ Your responsibility to schedule ◦ Can invite to next week’s presentation  My checkpoint with clients coming up

 A useful site (with thanks to Sam) ◦  For your amusement For your amusement

 People are primary  Goal-driven human processes are self- healing ◦ Rule-driven processes are fragile  Space ◦ Cave and Commons  Stewart Brand, How Buildings Learn  Public communication

 Forming - polite but untrusting  Storming - testing others  Norming - valuing other types  Performing - flexibility from trust  Adjourning - disengagement Tuckman, Bruce. (1965). Developmental sequence in small groups. Psychological bulletin, 63, Developmental sequence in small groups.

 Core Competency: problem-solving ability  Personal Attributes  Openness  Supportiveness  Action orientation  Positive personal style

 Constructive ◦ for all team members  Productive ◦ brings out the best thinking in all team members  Mutual Understanding ◦ seeking to understand others’ perspectives.  Self Corrective

 Focus ◦ clear about what you are doing  Climate ◦ positive ◦ inclusive ◦ focus on the issue…not the person  Open Communication ◦ Issues identified, ◦ discussed, ◦ prioritized ◦ and acted on

 Collaborator ◦ Works to find a solution that satisfies all concerns  Accomodator ◦ Neglects own concerns to satisfy others  Compromisor ◦ Tries to satisfy others without giving up own concerns  Competitor ◦ Pursues own concerns at other’s expense  Avoider ◦ Evades the situation and never addresses

 Larson and LaFasto ◦ Teamwork: What Must Go Right/What Can Go Wrong ◦ When Teams Work Best  Accumulated information from 600 teams

 Concept (contract, intro on web site)  Requirements (use cases, requirements)  Architecture  Design  Implementation  Unit test  Integration  System test  Maintenance

 Two types of documentation ◦ How the system fits together  Critical to understanding  Not easily captured in the code  External documentation required ◦ The details of the implementation  Captured in the code  Components:  Inline comments  Doxygen Doxygen

 Start with a picture of your architecture  What other models are needed? ◦ Data flow? ◦ Data model? ◦ State transition?  Key considerations ◦ What are the hard parts of the work? ◦ What are the critical areas?

 Build on well understood patterns from the system design  Goal is to prepare the project for implementation  Includes ◦ Module definitions ◦ Processes (if relevant) ◦ Data definitions ◦ Design decisions

A Little Structure…

Use Cases, System & Detailed Design 1.Use case3. System Design2. Domain classes 4. Detailed Design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

 Object-oriented paradigm, not implementation  Domain = application specific  Classes defined in natural language ◦ Used to explain the architecture and design  Classes derived from the requirements ◦ Need not match the implementation ◦ Hard to not fall into that trap

 Benefits ◦ Simplicity of mapping  Drawbacks ◦ Later changes  No worse off then if not matched ◦ May be too early for implementation decisions

 Begin with Use Cases  Identify nouns ◦ External agents are not domain classes ◦ Are these key classes for the application? ◦ Are there others?  Identify attributes and functionality for each class  Validate ◦ Walkthrough use cases ◦ Try changes and extensions  Look for ◦ Missing attributes or functions ◦ Changes that reach every where

Bridge Example 1.Use case3. Architecture2. Domain classes 4. Detailed Design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. “Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes.” Auto Road

 Want to identify ◦ Classes ◦ Attributes ◦ Functions

 teacher presented with view with his content  read messages from other teachers and administrators  schedule an assessment ◦ selects class ◦ selects test based on difficulty and subject  create new test ◦ create new question  type of question  introductory text  possible answers  correct answer ◦ edit existing question ◦ edit full test  post message ◦ content ◦ recipient  view class content Classes Attributes Functions

 teacher presented with view with his content  read messages from other teachers and administrators  schedule an assessment ◦ selects class ◦ selects test based on difficulty and subject  create new test ◦ create new question  type of question  introductory text  possible answers  correct answer ◦ edit existing question ◦ edit full test  post message ◦ content ◦ recipient  view class content Classes Attributes Functions

 teacher presented with view with his content  read messages from other teachers and administrators  schedule an assessment ◦ selects class ◦ selects test based on difficulty and subject  create new test ◦ create new question  type of question  introductory text  possible answers  correct answer ◦ edit existing question ◦ edit full test  post message ◦ content ◦ recipient  view class content Classes Attributes Functions

 teacher presented with view with his content  read messages from other teachers and administrators  schedule an assessment ◦ selects class ◦ selects test based on difficulty and subject  create new test ◦ create new question  type of question  introductory text  possible answers  correct answer ◦ edit existing question ◦ edit full test  post message ◦ content ◦ recipient  view class content Classes Attributes Functions

 What are we starting with? ◦ Domain classes ◦ System design models ◦ Use cases  What do we need to do? ◦ Define implementation classes that  realize the domain classes  within the architecture framework  and implement the functions defined in the use cases

Bridge Example Completed 1. Use case “Cars should be able to travel from the top of Smith Hill at 65 mph, travel in a straight line, and arrive at Jones Hollow within 3 minutes.” 3. System Design 2. Domain classes Auto Road Auto Road 4. Detailed Design Smith Hill Cable Jones Hollow Cable Pylon Guardrail Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

 Correctness  Robustness  Flexibility  Reusability  Efficiency

 Always a goal. Others may be negotiable.  Definition: satisfies all of the application’s requirements ◦ How do we know the requirements are correct?  Approaches ◦ Inspections  Readable (“I didn’t have time to write a short letter, so I wrote a long one instead.”)  Modular ◦ Formal verification  Invariants, pre- and post-conditions  Usually used only in critical components

 Ability to handle anomalous situations  Techniques ◦ Verifying input ◦ Initialization ◦ Parameter checking  Range  Constraints  Husk and kernel

 Guided missile cruiser that suffered widespread system failure off the coast of Virginia  Dead in the water for more than two hours  Crew member mistakenly entered a zero in a data field of an application ◦ Divide by zero ◦ Buffer overflow ◦ Shut down the propulsion system

 Requirements changes ◦ Adding more of the same function  New type of member, account, question or game ◦ Adding new type of function  Printing what was only displayed, withdrawing when only depositing was allowed, creating a new game ◦ Changing function  Allowing reverse as well as forward, overdraft protection

 Design issues ◦ Encapsulating things that may change ◦ Late binding ◦ Separation of instruction and data  Examples ◦ Layout of your interface ◦ Description of changeable data

 How to make it reusable ◦ Match real world concepts ◦ Avoid unnecessary coupling ◦ Document  Complete specification (assertions, constraints)  Explanation of function and algorithm ◦ Generic names