1 / 15

Software Engineering

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

sheera
Download Presentation

Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering CS 3733 2009 B Prof. George Heineman

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. TicTacToe Experimenter CS 509 : Design of Software Systems

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. Class Solitaire Discussion • What needs to be modeled CS 509 : Design of Software Systems

More Related