Software Engineering Fall 2014

Size: px
Start display at page:

Download "Software Engineering Fall 2014"

Transcription

1 Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 09/03/2014

2 Pending Items Due by 09/03/2014 Students: (Pending) Write one page Introduction about yourself and me Project team formulation (4 to 5 members) Selected Project me Team leader Contract, Group Names, and Roles Instructor: the TA details - Done Office Time updates - Done Potential Project list - Done Software Engineering - Fall 2014 CSC4350/ Rao Casturi 2

3 Recap - Class Project Discussion Documents and project list Proposed Project list Project Charter Project Requirement Document Project Grading Peer Review Software Engineering - Fall 2014 CSC4350/ Rao Casturi 3

4 Recap - Class Project Discussion Modeling Problem Solving Software Engineering Rationale Knowledge Acquisition Software Engineering - Fall 2014 CSC4350/ Rao Casturi 4

5 Software Engineering Concepts We talk about Projects Activities Tasks Work Product Software engineering concepts depicted as a UML class diagram. [Bruegge, Dutoit] Software Engineering - Fall 2014 CSC4350/ Rao Casturi 5

6 Roles and Responsibilities Client Provide high level requirements Scope Fund Set delivery time, quality User Provide knowledge about the system Feedback Testing Project Manager Overall management Face to the Client Developer Construction of the system Testing Technical Writer Documentation Reference manual Support Product support Installation Software Engineering - Fall 2014 CSC4350/ Rao Casturi 6

7 Work Product Work Product : Is an artifact produced during the development System Specification Document Operational Manual Status Reports Testing Manual Software Engineering - Fall 2014 CSC4350/ Rao Casturi 7

8 Functional and Non Functional Requirement Functional Specification a system should support Need to have Non Functional Constraint on the System No direct relation to the function of the system Software Engineering - Fall 2014 CSC4350/ Rao Casturi 8

9 Software Engineering Development Activities Requirement Elicitation (Gathering) Analysis System Design Object Design Implementation Testing Requirements Analysis System Design Object Design Implementation Testing Software Engineering - Fall 2014 CSC4350/ Rao Casturi 9

10 Managing Software Development Communication Time consuming activity Critical for the project Rational Management Justification Complex activity Software Configuration Version controls Maintenance Project Management Art Software Life Cycle Putting it all together is the life cycle of the Software Development Software Engineering - Fall 2014 CSC4350/ Rao Casturi 10

11 Questions? Software Engineering - Fall 2014 CSC4350/ Rao Casturi 11

12 Introduction to UML What is UML? Unified Modeling Language History Why is it so important in Software Engineering? Fundamental Notations of UML Software Engineering - Fall 2014 CSC4350/ Rao Casturi 12

13 Reference Wikipedia Software Engineering - Fall 2014 CSC4350/ Rao Casturi 13

14 System Development System Development Functional Model Object Model Dynamic Model Use Case Diagrams Output or produces Class Diagrams Output or produces Interaction, State Machine, Activity Diagrams Software Engineering - Fall 2014 CSC4350/ Rao Casturi 14

15 Basic Notations of UML Requirement Phase Analysis Phase Design Phase Use Case Diagrams Class Diagrams Interactive Diagrams State Machine Diagrams Activity Diagrams Object Design Phase Software Engineering - Fall 2014 CSC4350/ Rao Casturi 15

16 UML Notations (Continued) 1. Use Case Diagram: Definitions : Use Case: Statement of functionality required by software 3 Main components of Use Case ACTOR, ACTION,SUBJECT Use Case is written in specific format Use Case (UC) is a Functional Requirement SYSTEM (action) Action Subject Subject represents the object on which the Action will take place Actor Software Engineering - Fall 2014 CSC4350/ Rao Casturi 16

17 Example of an Use Case Portfolio Manager Risk Manager Trader Balance Portfolio Risk Analysis Set Risk Limits Price The bond << Include>> << Include>> Broker Quote (System Boundary) End of Day Holdings Valuation of the Bond Data Warehouse Broker (Use Case) Software Engineering - Fall 2014 CSC4350/ Rao Casturi 17

18 Format for an Use Case Use Case Name Actors/Participants Flow of Events/Scenario Entry Condition Exit Condition Quality constraints Analyze Bond Risk Risk Manager, Trader 1. Find the historical P&L of the bond 2. Depending on the P&L data decide if we can add this bond to the portfolio or not. 3. If we want to add then set the Risk Target When a Portfolio Manager requests a Bond to be added The Risk appetite set The Risk Limit set should be in line with the other similar instruments Relationships to Reduce Complexity: Communication Relationships (Solid Line) <<Include>> (Dotted Line) <<Extend>> (Dotted Line) Inheritance (Solid Line with Triangl Head) Software Engineering - Fall 2014 CSC4350/ Rao Casturi 18

19 2. Class Diagram: UML Notations (Continued) Describes the structure of the system in terms of Classes and Objects Classes : - Collection of objects Objects: - The Entities to capture the state and behavior of the system Consists of 3 Components Class / Object Name 1. Link : Connection between 2 or more classes 2. Association : Relation between 2 or more classes Roles, Multiplicity (1-1,1-m,m-n) Attributes 3. Aggregation : Hierarchical model 4. Inheritance : Relationship to Root Class to many specialized classes Super Class Sub Class Methods or operations Software Engineering - Fall 2014 CSC4350/ Rao Casturi 19

20 Interaction Diagrams (ID) 3. Interaction Diagrams: Capture Communication between objects Messages between objects (Solid arrows) Timing Diagrams or Sequence Diagrams X Axis Objects Y- Axis Time a b c Alternate i>0 option 1 i< 0 option 2 Loop I = 0 option 3 Software Engineering - Fall 2014 CSC4350/ Rao Casturi 20

21 4. State Machine Diagrams: State Machine Diagrams Describes the sequence of states an object can go through when triggered by an external event. Active, Inactive, Closed etc. Active Active Active Software Engineering - Fall 2014 CSC4350/ Rao Casturi 21

22 5. Activity Diagrams: Activity Diagrams Technique to describe any procedural logic or business process or work flow Like flow charts but support parallel behavior Forks, Joins, Decisions Swim lane diagrams Active Active Active Active Software Engineering - Fall 2014 CSC4350/ Rao Casturi 22

23 Questions? Software Engineering - Fall 2014 CSC4350/ Rao Casturi 23