Software Design and Engineering using UML January 15, 2000.

Slides:



Advertisements
Similar presentations
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Advertisements

OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 3: Requirements Overview Module 3 - Requirements Overview.
Information Resources Management January 23, 2001.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Practical Business Modeling in the Unified Process Tom Morgan Software Architect, Fidelity National Information Services
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
TCS2411 Software Engineering1 System Engineering and Analysis “What is the role of the software product?”
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Requirements Analysis Concepts & Principles
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Introduction to Software Engineering Dr. Basem Alkazemi
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 Business Models Modeling. 2 Why Model the Business Business modeling is a technique to help answer critical questions, such as: What do the workers.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Software Engineering CS B Prof. George Heineman.
Requirements Analysis
Rational Unified Process (Part 1) CS3300 Fall 2015.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Architecture Business Cycle
Business Analysis and Essential Competencies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
Chapter 11 Analysis Concepts and Principles
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Approaching a Problem Where do we start? How do we proceed?
1 Introduction to Software Engineering Lecture 1.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Requirement Handling
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
CS Rational Unified Process zThe Unified Software Development Process by Ivar Jacobson, Grady Booch, and James Rumbaugh zThe Rational Unified Process:
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3: Introducing the UML
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
UML - Development Process 1 Software Development Process Using UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Fundamentals of Information Systems, Sixth Edition
Object-Oriented Analysis and Design
Unified Modeling Language
Business Models Modeling.
Business System Development
Unified Modeling Language
Software Design Lecture : 15.
Appendix 3 Object-Oriented Analysis and Design
UML Design for an Automated Registration System
Presentation transcript:

Software Design and Engineering using UML January 15, 2000

Agenda zAdministrivia zCourse Overview zFailures - “Design Manifesto” zSystem Development zModeling zAnalysis - Preliminary Study zHomework 1 & Project

Administrivia zSyllabus zDoing it in Seven zWaivers zPresentations

Presentations zreview of the assigned chapter(s) zreview of the profile at the end of the chapter (if appropriate) zexample of a "well designed" web site or software package zreasons why you consider it "well designed"

Course Overview zAnalysis and Design of Information Systems zUML (Unified Modeling Language) z“What” not “How” to make zCore, GSIA course zHomework (teams) zProject & Final (solo)

In Class Exercise zGroups of 3 zMost Frustrating/Annoying Application zWhat makes it that way? zWhat would fix it? zExample: Forwarded WebTV mail & Mulberry

Failures zTechnology Failures zKapor - “Design Manifesto” zCost of Changes

Technology Failures A technology failure occurs when a system fails to meet expectations. zSystem zExpectations zFails to meet

“System” zSoftware zHardware/Technology zProcedures/Business Process

Whose Expectations? z“Stakeholders” yTop Management yLine Management yIS Management yUsers yShareholders - Market yIS Developers

What Expectations? Explicit Documented Implicit Unwritten Expectations can be contradictory Explicit Expectations can be incorrect

Expectations about What? zAnything yCost yPerformance yFunctionality yReliability y……

“Fails to Meet” zUser Survey as Measure of Quality yGood Idea? zRange of satisfaction yNot always binary

Causes of Failures zNumerous zRight System yWrong place or time yWrong process zMissed Expectations

Cost of Failures zInitial, Complete Failure yTotal Development Cost yRework/Reengineering yRetraining z“Minor” Failures yCost to fix driven by when need for change is identified

Cost of Changes

Preventing Failures zCorrectly capturing and determining how to meet everyone's expectations ySoftware (System) Designer (Winograd) xOne foot in world of people & processes xOne foot in world of technology zCorrectly meeting expectations ySoftware (System) Engineer

Design Manifesto zMitch Kapor yFounded Lotus yDesigner of zNeed for Design zWhat is Design zTraining Designers

Need for Design zLarge MIS Departments z“Conspiracy of silence” z“Secret shame of the industry” zSystems are hard to use zUsers learn minimum to get by

What is Design zPeople, Process, Technology zNot just interface design zArchitects not Construction Engineers yCreating buildings yDefining public spaces yKnowledge of use and function zProfile 1 (where the analogy falls short)

Well Designed zFirmness - no bugs zCommodity - useful for intended purpose zDelight - use is pleasurable

Training Designers zTechnical Knowledge zHuman-Computer Interaction zDesign Studio yPractice yApprentice zIntegration of design into development

Goals for Course zWhat to make not how to make it zUML - communication tool zExposure to design issues and ideas zShift focus from technology to understanding people and processes

System Development zGoals zPhases zCommon Characteristics zObject-Oriented Development

Goals zBuild good systems yQuality yCost-effective zWhat people want zWhat people will pay for

Generic Phases zAnalysis zDesign zCoding zTesting zImplementation zMaintenance

Analysis zProblem definition zCurrent state zScope zDescription of solution zRequirements

Design zModel of solution zData structure zInterface design zSystem architecture zProgram details

Coding zWrite it zSearch for reuse zCatalog for reuse z“Unit” testing

Testing zDoes it work? zIntegration/subsystem testing zSystem testing zUsability testing zUser acceptance testing

Implementation zPut the system in place zInstall new hardware/technology zInstall new software zTraining zPackaging and delivery zConversion

Maintenance zError Correction - fix bugs zAdaptation yHardware or operating system changes yNetwork changes yLegal requirements zEnhancement

Common Characteristics zPhases  Activities  Tasks zIncremental yFuture builds on past zMilestones zDeliverables zDifferent skills needed for different development tasks

Object-Oriented Development - The Unified (?) Process zInception zElaboration zConstruction zTransition

Modeling zWhat is a model? zWhy use a model? zAlternative Models zLiddle - Conceptual Models zDrawbacks of Models

What is a Model? zRepresentation zSimplification zAbstraction zFocus/Important Aspects zSemantic Information vs. Notation

Why Model? zSave Time zGenerate Agreement zThinking Tool zCapture Design Decisions zGenerate Useful Product z Organize and Simplify z Explore Alternatives z Master Complexity

Types of Models zIdeal - complete zPartial zTool-Based

Alternative Models zDifferent yViews yAspects yPerspectives yContexts yLevels of Abstraction z Static Model yStructure z Dynamic Model yBehavior

Model Example zXerox Star - User’s Conceptual Model zDesign Process yIdentify Tasks yBuild Scenarios yDesign Graphical Display xDisplay Elements xControls xUser’s Conceptual Model

User’s Conceptual Model zWhat the user thinks zHow the user responds zDesktop Metaphor yabstractions yrecognition over recall yprogressive disclosure

Drawbacks of Models zUnderstandability zOver Simplification zPoor Model Choice zOver Reliance on Model zDifficult Conversion zModel Longer to Develop zMaintenance

Analysis zRequirements zCommunication zActivities zDeliverables

Requirements “Correct and thorough requirements specifications is essential to a successful project.” “No matter how well designed or well coded, a poorly analyzed and specified program will disappoint the user and bring grief to the developer.” “It is indispensable for analysts to get acquainted with the application domain.”

Requirements zA desired feature, property or behavior of a system zExpectations - explicit through implicit zSystem - software, hardware/technology, procedures/business processes z“What” not “How”

Types of Requirements zBusiness Process zSystem Transactions - User’s Perspective z“Look and Feel” zSystem Specific

System Specific Requirements zLimits, Constraints, Priorities zReliability and Quality zSpeed and Response Time zData Volume zError Handling

Quality Function Deployment zMitsubishi zTypes of Requirements yNormal - explicit - satisfied user yExpected - implicit yExciting - “go beyond”

Collecting Requirements zIdentify Users/Stakeholders yDifferent Ones - Different Needs zEstablish Problem Domain yWhat is it? What isn’t it? yHow big is it? yGet to know it zWorkflows - Business Processes yCurrent yFuture

Collecting Requirements zPartitioning yDecompose problem into separate parts yUnderstand relationships between the parts yWay to handle complexity yHierarchy xIncreasing detail with depth

Collecting Requirements zQuestioning zListening zDiscussing

Collecting Requirements Prototyping zPrototype: software model of system zClosed-Ended - throwaway zOpen-Ended - evolutionary zExplorative - identify requirements zExperimental - try options z“Entire” System zKey elements only

Candidates for Prototyping zDynamic visual displays zHeavy user interaction zComplex algorithms or calculations zAmbiguous or conflicting requirements

Prototyping Considerations zUser Resources zDecision Makers zIS Resources - Tools, People zUser Understanding of Prototype yTime to completion yFull functionality yPerformance requirements yClosed-ended z“Paper Prototype” zCommunication Tool (Model)

Analysis Communication Challenges zExplicit Requirements zImplicit Requirements zAll Stakeholders zShared Knowledge zGetting Agreement

Analysis Communication zInterviews zUser Documentation zUser Training zRAD/FAST zModels zProject Documentation/Deliverables zReviews

Interviews zQuestions zOpen-ended questions zSurvey zOne-on-one zObservation of work in progress zFollow up yThank you yMinutes - notes yQuestions

User Materials zTraining yNew employees yManuals zDocumentation yProcedure manuals yException handling yWorkflow documentation y“Unwritten” yForms

RAD/FAST zRAD yRapid Application Development yRapid Analysis and Design zFAST yFacilitated Application Specification Technique

RAD/FAST zStructured Workshop zAll stakeholders yusers, developers, support areas, management zDecision Makers zEstablished Rules and Agenda zInterviews and Other Data Collection First zCareful Documentation on Decisions zMultiple Meetings - Several Days/Weeks zPrototyping Possible zReview Results

Analysis Models zCommunication Tool zModel drawbacks raised earlier zUser training in understanding modeling method and meaning

Project Documentation zWritten for user review zWritten for management review zWritten for next development phase zEverything on paper (disk) zGlossary: technical & business zOutstanding issues

Review zFormal or Informal zAlong the way and after Analysis “complete” zGoal is agreement zSign offs

Preliminary Study zOverview zAssumptions/Issues zContext Diagram zBusiness Process Models zIs-State zDescription of Actors zDescription of Interfaces zRequirements zPrioritized List of Use Cases zRecommendation zAppendices

Preliminary Study zOverview yDescription of project, goals, benefits, possible risks, summary of recommendation zAssumptions/Issues yOpen issues, unanswered questions, assumptions made throughout rest of document zRecommendation yShould development proceed? If so, how? What decisions need to be made? What is the project team’s recommendation for those decisions?

Context Diagram zDiagram showing the relationship between the system and all external entities ySystem - large circle yExternal entity - box xProducer or consumer of information that resides outside the system (user or another system) yRelationship - line with arrow showing direction of flow labeled with data

Context Diagram Student Enrollment System Student Billing System Registrar Dept Desired Courses Available Courses Roster Available Courses Student Billing Room Assignments Unassigned Courses Schedule

Business Process Model zModel of existing business processes zModel of new/changed business processes zShows procedure or workflow zEmphasis is individual activities yObject state when significant zRelationship, precedence, timing of activities zResponsibilities (swim lanes) zActivity Diagrams (pp )

Activity Diagrams Start Finish Activity Condition [cond]

Activity Diagrams Synchronization Constraints Splitting Multiple Transitions {AND}{OR}{XOR} * for each/all

Activity Diagrams Object State To State Required State Object [state] Object [state] Object [state]

Register for Courses Sign OnEnter Courses Sign Off Check Preqs Check Avail Add to Waitlist Add Student Billing [paid] Billing [due] * each course * all courses Display Schedule [ok] [avail] [full] {AND}

“Is-State” zDescription of current “system” zBusiness Process Models zText Descriptions zIdentify current problems zTotally New Development ycompetitors, alternatives

Preliminary Study zDescription of Actors yBrief description of each actor - who does what xActor: abstraction for external entities (user or system) that interact directly with the system xDetermined by role not person zDescription of Interfaces yBrief description of external systems that only provide data to the system but do not interact with it yExternal entities that are not actors

Documenting Requirements zSpecification - representation (model) of requirements (explicit) yText description/narrative yOutline (1, 1.1, 1.1.1, etc…) yBusiness Process Models yPrototypes ySample forms, reports, screens

Documenting Requirements zUnderstandable to all zFormat and content relevant to problem zInformation should be nested zDiagrams should be consistent zRevisable

Prioritized List of Use Cases zUse Case: specification of sequence of actions that a system can perform by interacting with actors zScenarios zTransactions zBusiness Event or Operation zComprehensive

Prioritizing Use Cases zDifference between “normal” and “exciting” requirements zWhat must be done right away? zWhat can wait? zNeeded versus Desired zDifferent users have different priorities yRAD/FAST to help determine zCost/Complexity y80/20 Rule

Appendices zArchitectural Model yWhat hardware, software and other technology will be needed for this project? yHow experienced is the team with this technology? yWhat special tools or training will be needed to develop the project? yAre there any other technical considerations that should be noted?

Appendices zInformation Sources yWhat were the sources of information used in creating the Preliminary Study? zAlternative Solutions yWhat are the alternative solutions to the recommended one? yWhy was each alternative not selected? yMake vs. Buy Decision

Appendices zTechnical Glossary yDefinition and description of technical terms or terms that have specialized meanings y“technical” in technology sense y“technical” in business sense

Homework zTVList.com zDocument Assumptions zFill in “blanks” zTeam Effort - Be both user and developer zMade Consistent zHomework #1 yPreliminary Study

Project zIndividual Effort zComputing or Technology Failure zCauses and Prevention zBooks on Reserve - Go Beyond Them zThree Parts yOverview - 2/5 yPresentation - 2/26 yWritten Report - 2/26