1.48k likes | 1.67k Views
Agenda for software. 1. Expectations 2. Object-oriented approach 3. UML 4. Partitioning 5. Interfaces 6. Throughput and memory 7. Design elements. 1. Expectations. Problem 1 Approaches to problem 1 Problem 2 Approaches to problem 2. 1. Expectations. Problem 1. Requirement
E N D
Agenda for software 1. Expectations 2. Object-oriented approach 3. UML 4. Partitioning 5. Interfaces 6. Throughput and memory 7. Design elements
1. Expectations • Problem 1 • Approaches to problem 1 • Problem 2 • Approaches to problem 2 1. Expectations
Problem 1 • Requirement • Provide a straight-line curve fit to a set of N measurements • Higher-product viewpoint • Provide a turn-key solution that meets the requirement • Software product viewpoint • Provide a solution that meets the equations provided by the higher-product 1. Expectations
Approaches to problem 1 System System CSCI Algorithms Algorithms CSCI Higher-product viewpoint -- workable depends upon CSCI skill level Lower-product viewpoint -- workable depends upon CSCI skill level The algorithm document can be located in either place depending upon the skill of the lower-product developer 1. Expectations
Problem 2 • Requirement • Provide a method for describing requirements for each lower-level product • Higher viewpoint • One higher-product process • Lower-product viewpoint • Each lower-product process defines higher-order process • Example -- System requirements shall be in VHDL or UML 1. Expectations
Approaches to problem 2 System System spec spec spec VHDL UML math HWCI CSCI Algorithms HWCI CSCI Algorithms Higher-product viewpoint Lower-product viewpoint -- multiple system views and multiple languages --awkward Having a single system viewpoint and language is less awkward 1. Expectations
2. Object-oriented (OO) approach • Reasons for OO approach • Objects • Communications • Classes • Observation 2. Object-oriented (OO) approach
Reasons for OO approach • Merges data and methods that • Reduces coupling • Provides reusability • Allows use of OO design tools, specifically • Design tools such as Object-Team and COOLJEX 2. Object-oriented (OO) approach
Objects • An object is an entity that has • State -- the value of all the attributes at a given time • Behavior -- the actions and reactions of the object in response to external input • Identity -- distinguishes object from other objects • an object is an instantiation of a class 2. Object-oriented (OO) approach
Communications (1 of 4) • Categories of behavior • Clients -- active objects that instigate an interaction • Servers -- passive objects that wait for other objects to require their services • Agents -- objects that can be either be either active or passive 2. Object-oriented (OO) approach
Communications (2 of 4) • Message content • May carry data and/or control • Message types • Constructors -- create objects • Destructors -- delete objects • Selectors -- return all or part of the state • Modifiers -- changes all or part of the state • Iterators -- visits the state of an object 2. Object-oriented (OO) approach
Communications (3 of 4) • Synchronization types • Simple broadcast -- message goes form the active object to the passive object • Synchronous broadcast -- sender is blocked until recipient accepts the message • Rendezvous broadcast -- recipient must go into a wait-for-message mode before sender can send message 2. Object-oriented (OO) approach
Communications (4 of 4) • Synchronization types (continued) • Timed broadcast -- sender waits a period of time for acknowledgment • Asynchronous broadcast -- sender sends message without knowing when or if the recipient will process message 2. Object-oriented (OO) approach
Classes (1 of 4) • Definition • A class is the definition of a set of objects • It specifies the data structure and possible operational methods that apply to each of the objects • Class refers to the software implementation of an object type 2. Object-oriented (OO) approach
Classes (2 of 4) • Associations • The bi-directional connection between classes • Links between objects are instantiations of associations between classes 2. Object-oriented (OO) approach
Classes (3 of 4) Ms Smith: resident object a link object New York: city Ms Jones: resident object a link object Mr. Hall: resident a link object Pittsburgh: city Mr. Wilson: resident object a link city resident class class 2. Object-oriented (OO) approach
Classes (4 of 4) • Inheritance • A technique to construct a class from one or more classes • Child classes inherit characteristics from their parent classes 2. Object-oriented (OO) approach
Observation • Hardware and systems tend to be object-oriented already so applying OO to them often results in renaming things and concepts with no particular advantage 2. Object-oriented (OO) approach
3. UML Introduction (1) Class diagrams (2) Object diagrams (3) Activity diagrams (4) Use diagrams (5) Sequence diagrams (6) Collaboration diagrams (7) State-chart diagrams (8) Deployment diagrams (9) Component diagrams 3. UML
Introduction (1 of 3) • Goals • Represent complete systems using object-oriented concepts • Couple concepts and executable code • Account for scaling factors needed in complex systems • Make language usable by humans & computers 3. UML
Introduction (2 of 3) • Practice • Useful • Complicated • Difficult for customer and managers to use 3. UML
Introduction (3 of 3) UML non-UML • Diagrams • Use diagrams • Sequence diagrams • Object diagrams • Collaboration diagrams • Class diagrams • .State-chart diagrams • .Activity diagrams • Deployment diagrams • Component diagrams • usage • con ops • physical • interface • physical • decision table • con ops • physical • physical 3. UML
(1) Use-case diagrams (1 of 7) • Definition • Use-case diagrams describe the behavior of a system from the user standpoint by using actions and reactions • Use-case diagrams are usage diagrams 3. UML
(1) Use-case diagrams (2 of 7) • Use • Use-case diagrams provides a technique for specifying requirements that was missing in early objet-oriented methods • Use-case provides an approach for covering product development from requirements to implementation • Defining actors and use-cases defines the system 3. UML
(1) Use-case diagrams (3 of 7) • Example • Use-case model Includes actors, system, and the use cases • System functionality determined by requirements of each actor as expressed in use cases system use-case 1 use-case 2 actor B actor A 3. UML
(1) Use-case diagrams (4 of 7) • Use cases • Use cases are lists of activities the actor performs • The activities are textual sentences 3. UML
(1) Use-case diagrams (5 of 7) • Actors • An actor represents the role played by a person or thing that interacts with the system • Actors determined by observing the main users of the system and other systems that interact with the system • A single physical person may play the role of several actors. Several people may play the same role and be a single actor 3. UML
(1) Use-case diagrams (6 of 7) • Actors (continued) • An actor represents the role played by a person or thing that interacts with the system • Actors determined by observing the main users of the system and other systems that interact with the system • A single physical person may play the role of several actors. Several people may play the same role and be a single actor 3. UML
(1) Use-case diagrams (7 of 7) • Application to verification • Use cases may support verification • Engineers may apply probabilities to each use case and then exercise the product statistically employing the use cases 3. UML
(2) Sequence diagrams (1 of 3) • Definition • Sequence diagram display interactions in time among objects • Sequence diagrams are a form of time-sequence diagrams 3. UML
(2) Sequence diagrams (2 of 3) • Uses • Sequence diagram focuses on showing interactions • Unlike collaboration diagram. Sequence diagram does not explicitly show the context • Sequence diagrams represent an interaction between objects that focuses on messages being broadcast • They are used to document use-cases and to define classes 3. UML
(2) Sequence diagrams (3 of 3) object A object B • Example example synchronous and asynchronous messages synchronous msg asynchronous msg object A object B example transmission delay message object A example of an object sending message to itself reflexive message 3. UML
(3) Object diagrams (1 of 3) • Definition • Object diagrams illustrate objects and links. They are sometimes called instance diagrams. • Object diagrams are physical diagrams • Objects are represented as rectangles with either the name of the object, the name and class of the object, or the class 3. UML
(3) Object diagrams (2 of 3) • Use • Object diagrams describe the system as a set of nodes connected by links • They are a static structure • They are used to show a context 3. UML
(3) Object diagrams • Example :login_display :login :configuration_display supervisor:list_of_people 3. UML
(4) Collaboration diagrams (1 of 3) • Definition • Collaboration diagram shows interaction between objects 3. UML
(4) Collaboration diagrams (2 of 3) • Use • It displays a static relationship showing how objects collaborate 3. UML
(4) Collaboration diagrams (3 of 3) 1. display 2. read 4. hide • Example :login_display :login 5. display 3. correct password :configuration_display supervisor:list_of_people 3. UML
(5) Class diagrams ( 1of 3) • Definition • Class diagrams show the static structure of the system in terms of classes and relations between classes • Class diagrams are physical diagrams 3. UML
(5) Class diagrams (2 of 3) • Use • They’re often determined by generalizing the object diagram • A class diagram doesn’t describe anything specific about links 3. UML
(5) Class diagrams (3 of 3) • Example login_display login configuration_display list_of_people 3. UML
(6) State-chart diagrams (1 of 3) • Definition • A state chart diagram represents a state machine 3. UML
(6) State-chart diagrams (2 of 3) • Use • Used to show logical control among objects and messages 3. UML
(6) State-chart diagrams (3 of 3) • Example login read name name read read password error password read verify connection 3. UML
(7) Activity diagrams (1 of 3) • Definition • An activity diagram is a variant of a state chart • It is simpler than a state chart and doesn’t need to have states 3. UML
(7) Activity diagrams (2 of 3) • Use • It helps to expand use-cases 3. UML
(7) Activity diagrams (3 of 3) • Example teacher student board teach learn supervise exams take exams evaluate 3. UML
(8) Deployment diagrams (1 of 3) • Definition • A deployment diagram shows the physical layout of hardware nodes and the distribution of executable programs to the nodes 3. UML
(8) Deployment diagrams (2 of 3) • Use • Nodes typically represented as cubes 3. UML
(8) Deployment diagrams (3 of 3) • Example modem PC (control sw) Disk (load objects) comm IO port 3. UML