(Further analysis and Refactoring) Larman, chapters 23 and 24 Glenn D. Blank, CSE432.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
Framework is l Reusable Code, often domain specific (GUI, Net, Web, etc) l expressed as l a set of classes and l the way objects in those classes collaborate.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Object-Oriented Analysis and Design CHAPTER 17, 25: GRASP PATTERNS 1.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
ACTIVELY ENGAGING THE STAKEHOLDER IN DEFINING REQUIREMENTS FOR THE BUSINESS, THE STAKEHOLDER, SOLUTION OR TRANSITION Requirements Elicitation.
COMP 350: Object Oriented Analysis and Design Lecture 3 Case Studies, Inception & Use Cases References: Craig Larman Chapters 3-6.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Case Study The NextGen POS System
NJIT 1 Iteration 2 Requirements and More GRASP Chapter 24.
Eva TrosborgSlide no.: 1Elaboration Iteration 2 Object Oriented design and more patterns Fall 2005 UML Tools and UML as Blueprint (chapter 22, p 397)
Domain model: visualizing concepts
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 3 Case Studies.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 25 More Design Patterns.
TK2023 Object-Oriented Software Engineering CHAPTER 6 SYSTEM SEQUENCE DIAGRAMS.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Mapping Designs to Code Larman, Chapter 20 CSE432 Object Oriented Software Engineering.
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
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.
GRASP: Designing Objects with Responsibilities
Domain Model Refinement Larman, chapter 31 CSE 432: Object-Oriented Software Engineering Glenn D. Blank, Lehigh University.
♦ Use Case Model  Detailled use case - Important  Use case diagram- Refactoring Use case diagram  > 1 Last Lectures.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering 1.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Software Engineering 1 Object-oriented Analysis and Design Chap 24 Iteration 2 More Patterns.
OO Methodology Elaboration Iteration 2 - Design Patterns -
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Writing Use Cases: Requirements in Context.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Chapter 8: Iteration 1 - Basics.  We review here the requirements for first iteration of our case studies. They are a subset of the requirements as described.
Summary from previous lectures
T Project Review MalliPerhe Iteration 3 Implementation
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 8. Iteration 1, Elaboration: book view differs from reality for pedagogical reasons not doing “risk-driven” up front uses many OOA/D skills should.
T Project Review Final Demo T Project Review X-TremeIT Valeria, Konstantin, Roman, Olesia, Vladislav, Seppo, Aleksandr 2 Agenda.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Chapter 1: Software and Software Engineering The Nature of Software... Software is intangible  Hard to understand development effort Software.
Object Design Examples with GRASP
Elaboration popo.
Classifications of Software Requirements
Composite Pattern Context:
Chapter 23 Iteration 2.
User Interface Design and Evaluation
Chapter 25 GRASP The other four.
Refactoring.
Chapter 1: Software and Software Engineering
Chapter 25 GRASP The other four.
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Other System Requirements
Chapter 1: Software and Software Engineering
Presentation transcript:

(Further analysis and Refactoring) Larman, chapters 23 and 24 Glenn D. Blank, CSE432

End of iteration-1 (see Larman, p. 402):  For a selected, high risk use case scenario, SSD, domain class diagrams and operation contracts (ADTs) were developed  Software implemented and tested (unit, acceptance, usability)  Customers have evaluated the partial system  Are you there yet?

 Decide what to work on next, resolve questions, identify major tasks: ◦ Reverse engineer from Iteration 1 source code to new class and interaction diagrams: how and why? ◦ Usability analysis for the user interface under way ◦ Database modeling and implementation under way  Another requirements workshop occurs: ◦ Write more use cases in fully dressed format ◦ Decide which use case(s) will be analyzed, designed, implemented and tested in second iteration ◦ How and why should customer be involved in this workshop?

Iteration-2 will handle additional requirements:  Support for third-party external services (i.e., different tax collectors)  Complex pricing rules  GUI window refreshes when sale total changes Constraint: only consider these requirements in context of Process Sale use case

Fig. 24.1

 Expand basic players moving around board scenario to handle some special square rules: ◦ Each player starts with $1500 ◦ When player lands of Go, player receives $200 ◦ When player lands on Go-To-Jail, move to Jail ◦ When player lands on Income-Tax, player pays minimum of $200 or 10% of worth

 What design pattern has been incorporated?  Why is polymorphism a good idea here? ◦ Subclasses (of square) have additional attributes (state) ◦ Subclasses have additional operations

 Refactoring changing a software system by improving its internal structure without changing its external behavior  I.e., restructure code in a disciplined way  Make code easier to understand and cheaper to modify  Counteracts entropy of software by promoting more order  Identify heavily used or time consuming code  Refactoring leads to design patterns: why?  Smalltalk community used refactoring to develop the Model-View-Controller and other frameworks

 When you do a Code Review or Walkthrough ◦ I.e., in subsequent iterations (polymorphism in Monopoly)  When you add a function ◦ Helps you to understand the code you are modifying ◦ Sometimes existing design does not allow you to easily add the feature  When you need to fix a bug ◦ A bug report is a sign code needs refactoring: Why? ◦ Code was not clear enough to see the bug in the first place

 Why does test-driven programming support refactoring?  Code to be refactored should already have tests that we can recheck to assure new design doesn’t break anything!  Begin refactoring by designing a solid test set for anything new in code under analysis