830 likes | 965 Views
Software Design and Engineering using UML. January 15, 2000. Agenda. Administrivia Course Overview Failures - “Design Manifesto” System Development Modeling Analysis - Preliminary Study Homework 1 & Project. Administrivia. Syllabus Doing it in Seven Waivers Presentations.
E N D
Software Design and Engineering using UML January 15, 2000
Agenda • Administrivia • Course Overview • Failures - “Design Manifesto” • System Development • Modeling • Analysis - Preliminary Study • Homework 1 & Project
Administrivia • Syllabus • Doing it in Seven • Waivers • Presentations
Presentations • review of the assigned chapter(s) • review of the profile at the end of the chapter (if appropriate) • example of a "well designed" web site or software package • reasons why you consider it "well designed"
Course Overview • Analysis and Design of Information Systems • UML (Unified Modeling Language) • “What” not “How” to make • Core, GSIA course • Homework (teams) • Project & Final (solo)
In Class Exercise • Groups of 3 • Most Frustrating/Annoying Application • What makes it that way? • What would fix it? • Example: Forwarded WebTV mail & Mulberry
Failures • Technology Failures • Kapor - “Design Manifesto” • Cost of Changes
Technology Failures A technology failure occurs when a system fails to meet expectations. • System • Expectations • Fails to meet
“System” • Software • Hardware/Technology • Procedures/Business Process
Whose Expectations? • “Stakeholders” • Top Management • Line Management • IS Management • Users • Shareholders - Market • IS Developers
What Expectations? Explicit Documented Implicit Unwritten Expectations can be contradictory Explicit Expectations can be incorrect
Expectations about What? • Anything • Cost • Performance • Functionality • Reliability • ……
“Fails to Meet” • User Survey as Measure of Quality • Good Idea? • Range of satisfaction • Not always binary
Causes of Failures • Numerous • Right System • Wrong place or time • Wrong process • Missed Expectations
Cost of Failures • Initial, Complete Failure • Total Development Cost • Rework/Reengineering • Retraining • “Minor” Failures • Cost to fix driven by when need for change is identified
Preventing Failures • Correctly capturing and determining how to meet everyone's expectations • Software (System) Designer (Winograd) • One foot in world of people & processes • One foot in world of technology • Correctly meeting expectations • Software (System) Engineer
Design Manifesto • Mitch Kapor • Founded Lotus • Designer of 1-2-3 • Need for Design • What is Design • Training Designers
Need for Design • Large MIS Departments • “Conspiracy of silence” • “Secret shame of the industry” • Systems are hard to use • Users learn minimum to get by
What is Design • People, Process, Technology • Not just interface design • Architects not Construction Engineers • Creating buildings • Defining public spaces • Knowledge of use and function • Profile 1 (where the analogy falls short)
Well Designed • Firmness - no bugs • Commodity - useful for intended purpose • Delight - use is pleasurable
Training Designers • Technical Knowledge • Human-Computer Interaction • Design Studio • Practice • Apprentice • Integration of design into development
Goals for Course • What to make not how to make it • UML - communication tool • Exposure to design issues and ideas • Shift focus from technology to understanding people and processes
System Development • Goals • Phases • Common Characteristics • Object-Oriented Development
Goals • Build good systems • Quality • Cost-effective • What people want • What people will pay for
Generic Phases • Analysis • Design • Coding • Testing • Implementation • Maintenance
Analysis • Problem definition • Current state • Scope • Description of solution • Requirements
Design • Model of solution • Data structure • Interface design • System architecture • Program details
Coding • Write it • Search for reuse • Catalog for reuse • “Unit” testing
Testing • Does it work? • Integration/subsystem testing • System testing • Usability testing • User acceptance testing
Implementation • Put the system in place • Install new hardware/technology • Install new software • Training • Packaging and delivery • Conversion
Maintenance • Error Correction - fix bugs • Adaptation • Hardware or operating system changes • Network changes • Legal requirements • Enhancement
Common Characteristics • Phases Activities Tasks • Incremental • Future builds on past • Milestones • Deliverables • Different skills needed for different development tasks
Object-Oriented Development - The Unified (?) Process • Inception • Elaboration • Construction • Transition
Modeling • What is a model? • Why use a model? • Alternative Models • Liddle - Conceptual Models • Drawbacks of Models
What is a Model? • Representation • Simplification • Abstraction • Focus/Important Aspects • Semantic Information vs. Notation
Save Time Generate Agreement Thinking Tool Capture Design Decisions Generate Useful Product Organize and Simplify Explore Alternatives Master Complexity Why Model?
Types of Models • Ideal - complete • Partial • Tool-Based
Different Views Aspects Perspectives Contexts Levels of Abstraction Static Model Structure Dynamic Model Behavior Alternative Models
Model Example • Xerox Star - User’s Conceptual Model • Design Process • Identify Tasks • Build Scenarios • Design Graphical Display • Display Elements • Controls • User’s Conceptual Model
User’s Conceptual Model • What the user thinks • How the user responds • Desktop Metaphor • abstractions • recognition over recall • progressive disclosure
Drawbacks of Models • Understandability • Over Simplification • Poor Model Choice • Over Reliance on Model • Difficult Conversion • Model Longer to Develop • Maintenance
Analysis • Requirements • Communication • Activities • Deliverables
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 • A desired feature, property or behavior of a system • Expectations - explicit through implicit • System - software, hardware/technology, procedures/business processes • “What” not “How”
Types of Requirements • Business Process • System Transactions - User’s Perspective • “Look and Feel” • System Specific
System Specific Requirements • Limits, Constraints, Priorities • Reliability and Quality • Speed and Response Time • Data Volume • Error Handling
Quality Function Deployment • Mitsubishi • Types of Requirements • Normal - explicit - satisfied user • Expected - implicit • Exciting - “go beyond”
Collecting Requirements • Identify Users/Stakeholders • Different Ones - Different Needs • Establish Problem Domain • What is it? What isn’t it? • How big is it? • Get to know it • Workflows - Business Processes • Current • Future
Collecting Requirements • Partitioning • Decompose problem into separate parts • Understand relationships between the parts • Way to handle complexity • Hierarchy • Increasing detail with depth