Software Lifecycle Activities

Slides:



Advertisements
Similar presentations
UML an overview.
Advertisements

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
UML – Class Diagrams.
Feb. 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #9 Tuesday, Feb. 13, 2001.
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
Use Case Analysis – continued
Unified Modeling Language
Object-Oriented Analysis and Design
COP 3331 OBJECT-ORIENTED ANALYSIS AND DESIGN Bob Myers Department of Computer Science Week 6 Lecture.
程建群 博士(Dr. Jason Cheng) 年03月
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Object Modeling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 5: Analysis, Object Modeling.
Lab 04.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Chapter 16 Applying UML and Patterns Craig Larman
Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
UML Diagrams: The Static Model Class Diagrams. The Static Model Define the static structure of the logical model Represent classes, class hierarchies.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
What is a Structural Model?
Lecture 1: UML Class Diagram September 12, UML Class Diagrams2 What is a Class Diagram? A class diagram describes the types of objects in the system.
Design Jon Walker. More UML ● What is UML again?
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
Relationships Relationships between objects and between classes.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 26, 2001 Analysis.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
1 SWE Introduction to Software Engineering Lecture 14 – System Modeling.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
Object Oriented Analysis System modeling = Functional modeling + Object modeling + Dynamic modeling Functional modeling = Use cases Object modeling =class.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 5, Analysis: Object Modeling.
DOMAIN CLASSES – PART 1 BTS430 Systems Analysis and Design using UML.
Review of last class Software Engineering Modeling Problem Solving
CHAPTER
UML Diagrams: Class Diagrams The Static Analysis Model
Business System Development
UML Class Diagrams (more notation)
Object-Oriented Analysis and Design
Review for Midterm, Fall 2009
Chapter 8 Analysis & Modeling
The Object Oriented Approach to Design
Chapter 4, Requirements Elicitation
Object-Oriented Analysis
UML Diagrams: The Static Model Class Diagrams
Object Oriented Analysis and Design
Software Engineering Lecture #11.
Systems Analysis and Design With UML 2
UML Class Diagram.
SYS466 Domain Classes – Part 1.
IMPORTANT NOTICE TO STUDENTS:
Software Design Lecture : 15.
Chapter 5, Analysis: Object Modeling
Requirements Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
Software Lifecycle Activities
Presentation transcript:

Software Lifecycle Activities Requirements Elicitation Requirements Analysis System Design Object Design Implemen- tation Testing Use Case Model Verified By Implemented By Realized By Structured By Expressed in Terms Of Application Domain Objects SubSystems Implementation Domain Objects class... Source Code Test Cases ? class.... November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

From Use Cases to Objects Le v el 1 Level 1 Use Case Le v el 2 Le v el 2 Level 2 Use Cases Le v el 3 Le v el 3 Le v el 3 Level 3 Use Cases Le v el 4 Le v el 4 Operations A B Participating Objects November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

Definition: Object Modeling Main goal: Find the important abstractions What happens if we find the wrong abstractions? Iterate and correct the model Steps during object modeling: 1. Class identification (based on the fundamental assumption that we can find abstractions) 2. Find the attributes 3. Find the methods 4. Find the associations between classes (Order of steps is secondary, only a heuristic) November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

Do UML associations have direction? An association between two classes is by default a bi-directional mapping. A B Class A can access class B and class B can access class A Both classes play the agent role. November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

Do UML associations have direction? If you want to to make A a client, and B a server, you can make the association unidirectional. The arrowhead points to the server role: A B access  Class A ( the “client”) accesses class B (“the server”). B is also called navigable November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Aggregation Models "part of" hierarchy Useful for modeling the breakdown of a product into its component parts (sometimes called bill of materials (BOM) by manufacturers) UML notation: Like an association but with a small diamond indicating the assembly end of the relationship. November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Aggregation weight Automobile serial number year manufacturer model color drive purchase Engine horsepower volume on off Battery amps volts charge discharge 3,4 Wheel diameter number of bolts 2 Brakelight on off 2,4 Door open close November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Inheritance Models "kind of" hierarchy Powerful notation for sharing similarities among classes while preserving their differences UML Notation: An arrow with a triangle Cell NerveCell BloodCell MuscleCell Red White Smooth Striate Cortical Pyramidal November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

Aggregation vs. Inheritance Both associations describe trees (hierarchies). Aggregation tree describes “part-of” relationships (also called and-relationship) Inheritance tree describes "kind-of" relationships (also called or-relationship) Aggregation relates instances (involves two or more different objects) Inheritance relates classes (a way to structure the description of a single object) November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Other Associations “Uses”: A subsystem uses another subsystem (System Design) “Contains”: Sometimes called “spatial aggregation” ... contains ... Example: A UML package contains another UML package Parent/child relationship: ... is father of ... ... is mother of ... Seniority: ... is older than ... ... is more experienced than ... November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Object Types Entity Objects: Represent the persistent information tracked by the system (Application domain objects, “Business objects”) Boundary Objects: Represent the interaction between the user and the system Control Objects: Represent the control tasks performed by the system November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

Example: 2BWatch Objects UML provides several mechanisms to extend the language UML provides the stereotype mechanism to present new modeling elements <<entity>> Year <<control>> ChangeDateControl <<boundary>> ButtonBoundary <<entity>> Month <<boundary>> LCDDisplayBoundary <<entity>> Day November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Roles A role name is the name that uniquely identifies one end of an association. A role name is written next to the association line near the class that plays the role. November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Roles When do you use role names? Necessary for associations between two objects of the same class Also useful to distinguish between two associations between the same pair of classes When do you not use role names? If there is only a single association between a pair of distinct classes, the names of the classes serve as good role names November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Example of Role Problem Statement: A person assumes the role of repairer with respect to another person, who assumes the role of inspector with respect to the first person. Person Creates Workorders Person inspector repairperson November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Roles in Associations Client Role: An object that can operate upon other objects but that is never operated upon by other objects. Server Role: An object that never operates upon other objects. It is only operated upon by other objects. Agent Role: An object that can both operate upon other objects and be operated upon by other objects. An agent is usually created to do some work on behalf of an actor or another agent. November 10, 2016 CS410 – Software Engineering Lecture #18: UML II

CS410 – Software Engineering Lecture #18: UML II Qualification The qualifier improves the information about the multiplicity of the association between the classes. It is used for reducing 1-to-many multiplicity to 1-1 multiplicity. Example: Without qualification, a directory has many files. A file belongs to only one directory. File filename 1 * Directory Directory filename 0..1 1 File With qualification: A directory has many files, each with a unique name. November 10, 2016 CS410 – Software Engineering Lecture #18: UML II