150 likes | 219 Views
Software Engineering. CS 3733 2009 B Prof. George Heineman. Outline. Course Details Found on Web Expected work-level Java Crash course planned next week A1 division OO Introduction. Course Structure. Task1: Requirements Analysis Document (RAD) Individual Project
E N D
Software Engineering CS 3733 2009 B Prof. George Heineman
Outline • Course Details • Found on Web • Expected work-level • Java Crash course planned next week • A1 division • OO Introduction CS 509 : Design of Software Systems
Course Structure • Task1: Requirements Analysis Document (RAD) • Individual Project • Individual Project (OO coding) • Task2: Implementation • Completed implementation of Task1 RAD • Product-line “Family” with planned extensions • Completed JUnit testing with code coverage metrics • Task3: Add new “Product-line” member • Complete “options packages” specified in Task1 • Document and describe addition. Extension Tutorial • Validate via JUnit testing CS 509 : Design of Software Systems
Software Engineering • Modeling • Represent information in appropriate abstractions • Key: Maintain models as software process progresses • Key: Traceability from start to finish • Problem Solving • Learn how to make important design decisions • Key: Flexibility and Extensibility • Key: Maximize return on investment CS 509 : Design of Software Systems
Software Engineering Process • Problem Statement • Non-Functional Requirements • Functional Model [Use Case] • Analysis • Analysis object model [Class Diagram] • Dynamic model [Sequence Diagram] • System Design • Design Goals • Design object model and Architecture • Sub-system decomposition • Object Design • Object design model [Class Diagram] • Implementation & Test • Final Validation CS 509 : Design of Software Systems
Task 1.1:Requirements Elicitation • Define purpose of system • Actors: external entities that interact with system • Use cases: sequences of events describing actions between actor and system • Describe all functionality from external viewpoint • Use cases fully partition system description System CS 509 : Design of Software Systems
Task 1.1:Requirements Elicitation • Necessary step before Analysis • Represents same information, just structured differently • RE goal • Capture functional model & non-functional reqs • Analysis goal • Construct analysis object model • Determine dynamic model (behavior of system) • In this class, less attention given to [DM] RequirementsSpecification Analysis Model CS 509 : Design of Software Systems
Requirements Elicitation Activities Identify Non-Functional Require-ments Identify Actors Identify Scenarios Identify Use Cases RefineUse Cases time ConsolidateUse Cases CS 509 : Design of Software Systems
TicTacToe Experimenter CS 509 : Design of Software Systems
Modeling • Abstract representation of a system • Focus on relevant details • Hide non-interesting details • Application Domain Model • Model of real-world system, as observed and relevant • Solution Domain Model • Model of the construction of an application CS 509 : Design of Software Systems
Application Domain • Represent all aspects of user’s problem • KombatSolitaire application • Client-side functionality • Server-side functionality • May change (because the world changes) • New type of solitaire plugins • New types of required functionality CS 509 : Design of Software Systems
Solution Domain • Modeling desired system • Produces model that can lead to a number of systems • Rich details • May change (because technology changes) • New languages, tools, standards CS 509 : Design of Software Systems
Object-oriented (OO) Paradigm • Combines Application and solution domain modeling • No longer separate activities • Start with Application Domain Model • Objects and Relationships • Introduce Solution Domain Model as objects • Solution Domain is transformation of Application Domain CS 509 : Design of Software Systems
OO design process • Analyze problem to identify objects • Generalize objects to identify classes • Decompose problem as interacting objects • Encapsulation • Gather into one unit all aspects of the real-world entity modeled by that unit • Data as well as Actions CS 509 : Design of Software Systems
Class Solitaire Discussion • What needs to be modeled CS 509 : Design of Software Systems