Decomposition.

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

SCRUM basics Julie Rudder & Claire Stewart. What is scrum (Claire) Scrum roles (Claire) Scrum rhythms and processes (Claire) How to write stories (Julie)
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
NAUG NAUG Knowledge Evening – th February 2007.
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. How To Program.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Software Design Process.
Dr. Nguyen Hai Quan.  Why SCRUM?  What is SCRUM?  Some terms  SCRUM Meetings  Sprint  Estimation  Product backlog  Sprint backlog  Whiteboard.
SCRUM and agile methodologies in Production  What is SCRUM?  “The Agile approach is to iterate on the development of the game and react to the results,
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Who is Gregg? 1 Mile
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
1 Development with Agile methodology Scrum Lifecycle DEVELOPMENT PROCESS IN DROISYS INC.
Software Quality Assurance Chip Ene, February 14, 2015.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Software Development.
Agile Methodology and Scrum
Penn State Project Management Conference
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Game Design For Development
Scrum.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Scrum Management
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
CS 5150 Software Engineering
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
CMSC201 Computer Science I for Majors Lecture 11 – Program Design
Software What Is Software?
Product Backlog List of things that needs to be done to make the product come into existence 
Chapter 3: The Project Management Process Groups: A Case Study
CSCE 741 Software Process Lecture 04 Availability
Demystifying SAFe.
Johanna Rothman Agile Team Measurements Chapter 12
Teaching slides Chapter 1.
Summarizing Our Models to Date
Unit# 9: Computer Program Development
© University of Liverpool
Agile and XP Development
Frameworks in project management
CSCE 741 Software Process Lecture 04 Availability
Sprint Planning April 2018.
Agile and XP Development
Dr. Rob Hasker SE 3800 Note 9 Reviews.
Ainsley Smith Tel: Ex
Algorithms and Problem Solving
Coming up: What is Agile?
Scrum Science NGSS: Engineering, Technology, Applications of Science
Computational Thinking
Scrum in Action.
Agree what we will finish in the sprint
Organizing and Accelerating Your Work with Scrum
Product Development & Planning
Presentation transcript:

Decomposition

Decomposition Strategy for handling complexity Break problems into smaller pieces A n entire program is too much to create all at once, so programmers break a problem apart into pieces. If you master the strategies of decomposition in computer science, you can apply it to problem solving in any area.

Modularity Components each have a function When deciding how to break a problem apart, make the pieces modular if possible. Each modular piece has a function. Each component accomplishes its own function. The pieces can depend on each other with the details of how other components work. In an animal, the heart pumps blood. The kidneys clean the blood. These are separate functions performed by separate components.

Modularity Components connected but independent Reusable Like an animal, computer hardware and software use modular design to break a problem apart into components. If kidneys fail, a dialysis machine can clean the blood; the heart still does its job the same way. This motherboard attaches to each of a computer's components. If a network card breaks, it can be replaced with another one. When designing and creating a network card, engineers don't have to worry about the details of how the computer's memory works; that's a different modular component. Breaking apart a big problem into pieces helps, and it helps a lot if the pieces are modular.

Design process: Agile methodology Method for developing software solutions Frequent deliverable iteration The design process for software is very similar to the design process for other forms of engineering. Programmers often use a design process that we call Agile. Agile methods emphasize frequent presentations to the client, sharing the solution developed so far. This way the client can help clarify the definition of the problem.

Agile methodology Frequent deliverable iteration One cycle called a sprint Each cycle is called a sprint and may last 1-3 weeks for a professional team. We define the problem, strategize, code and test, code and test, code and test, code and test, strategize, code and test, code and test, code and test, try it out with a user, and show the client. Then do another sprint: define, strategize, code and test, code and test, …

Organizing Agile work Backlog Sprint task list First sprint Second sprint Later sprint(s) Prioritized Top of backlog well defined User stories Task #1 for this sprint Task #2 for this sprint Task #3 for this sprint Bite-sized pieces of the top backlog item Programmers usually organize their work using two lists of things to do. One list, called the backlog, has big items on it. Each sprint, the team will try to get 1 or 2 of these backlog items completed. The backlog is prioritized, so that the next items to complete are on top. Because the problem might get redefined, the items lower on the backlog can be poorly defined or too big. The top item on the backlog should be clearly written, though, and small enough to get done in one sprint. At the end of sprint, the backlog is groomed, and items rising to the top must be broken down into clearly defined items of a good size. Each backlog item is written as a user story.

User stories in the backlog User story … ______ wants to _____ so she can _____ User stories are written in a particular format: so-and-so wants to do such-and-such so that she can do such-and-such. By focusing on who the user is and what they want to accomplish, the programmer is more likely to create a product that meets the need. User role Action Purpose

Top backlog item split into tasks Sprint task list First sprint Second sprint Later sprint(s) Task #1 for this sprint Task #2 for this sprint Task #3 for this sprint Bite-sized pieces of the top backlog item The top user story in the backlog is decomposed further into smaller tasks listed on a task list for the current sprint. The pieces are small enough that one or a few can be accomplished in a day of work.