exam 2 review software engineering cs 561. outline requirements development uml class diagrams...

24
Exam 2 Review Software Engineering CS 561

Upload: isabel-newman

Post on 19-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Exam 2 Review

Software EngineeringCS 561

Page 2: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Outline

• Requirements Development• UML Class Diagrams• Design Patterns• Users, Usability, and User Interfaces• Software Processes• Other Types of UML Diagrams• Software Architecture and Design

Page 3: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Developing Requirements

• Content for requirements documents• Size of the system• The need to interface with other systems• The target audience• Contractual agreements for development• Stage in requirements gathering• Experience with the domain and the technology• Costs incurred for incorrect requirements

Page 4: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Developing Requirements

• Guidelines for requirements• Have benefits outweighing cost of development• Important to solution of the problem• Expressed clearly and consistently• Made unambiguous and uniquely identifiable• Verifiable and logically consistent• Leading to a system of sufficient quality• Work with available resources

Page 5: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Developing Requirements

• Additional guidelines• Avoid over-constraint of the system• Complete and well-organized• Agreed upon by stakeholders– Problem– Background information– Environment and system models– Functional requirements– Quality, platform, and process requirements

Page 6: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• UML– Unified Modeling Language– Standardized, managed by Object Management

Group (OMG)– Used for class, interaction, state, activity,

component, and deployment diagrams.– For class diagrams, it allows for modeling• Capturing a set of information about a system

Page 7: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• Class diagrams include– Classes– Associations– Attributes– Operations– Generalizations

Page 8: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• Associations and Multiplicity– Associations used to show how two instances of

classes reference each other– Muliplicity indicates how many instances of

classes at the end of the association are linked to an instance of a class at the other end of the association

– Associations may be labeled• Labels should be a verb/verb phrase

Page 9: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• Common multiplicities for associations include– One-to-many– Many-to-many– One-to-one

• Associations may be reflexive– Objects may be associated with themselves

• Associations may be directional– Only one class has references to the other

Page 10: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• Association– Classes are referenced by one another

• Aggregation– Represents a part to whole relationship– Stronger than association– Can be represented as an association

• Composition– Represents a stronger part to whole relationship– The parts are destroyed when the whole is destroyed

Page 11: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Class Modeling

• Developing class diagrams– Exploratory domain model– System domain model– System model

• Identify classes, associations, and attributes• Identify generalizations and interfaces• Label them properly

Page 12: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Design Patterns

• Each design pattern includes– Context– Problem– Solution

• Presents a generalized solution to a common problem

Page 13: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Design Patterns

• Abstraction-Occurrence• General Hierarchy (You should be able to use

this one)• Player-Role• Singleton pattern• Observer pattern• Delegation pattern(You should be able to use

this one)

Page 14: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Using Design Patterns

• Adapter pattern• Façade pattern• Immutable pattern (You should be able to use

this one)• Read-Only Interface pattern (You should be

able to use this one)• Factory pattern

Page 15: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Users

• User centered design– Understand users– Focus on SW that is based on understanding of

users’ tasks– Keep users involved in decision making– UI should follow principles of usability– Get user feedback through out design and

development process

Page 16: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Users

• Why focus on users?– Cheaper training and support– Gradual learning curve– Improved efficiency of use– Lowered development costs• Make only needed features

– Less expensive to change system later– More attractive system• Users will want to utilize a well designed tool

Page 17: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Usability and Utility

– Usability vs. utility• Both define usefulness of software• Usability is how easy users are able to learn and use the

capabilities of a system• Utility refers to a system having the ability to accomplish

a task

– Aspects of usability• Learnability• Efficiency of use• Error handling• Acceptability

Page 18: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

UI Design

• UI Design Terminology– Dialog– Control or widget– Affordance– State– Mode– Modal dialog– Feedback– Encoding techniques

Page 19: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Usability

• Principles of usability• Don’t rely only on guidelines, test with users• UI design should be based on use cases defined by users’

tasks• Action sequences to complete tasks in UI should be as

simple as possible• User should know what to do next and what will happen

when he/she does it• Error messages and feedback must be descriptive• User should be able to undo, go back, or correct an action

Page 20: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Usability

• More principles of usability• Adequate response time• Descriptive labels and encoding techniques• UI appearance must be neat and uncluttered• Consider needs of different groups• Provide help tools• Be consistent throughout the UI

Page 21: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Other UML Diagrams

• Diagrams to model interactions– UML Sequence Diagrams

• Show a sequence of actions via methods over time• Diagrams include objects, actors, lifelines, and activation boxes

– UML Communication Diagrams• Indicates a sequence of actions via methods• Diagrams include objects and order of operations

– UML State Diagrams• Includes states and transitions between them

– UML Activity Diagrams• Similar to a flow chart

Page 22: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Software Architecture and Design

• Coupling – interdependencies between one module and another– Content, Common, Control, Stamp, Data, Routine

Call, Type Use, Inclusion or Import, and External• Cohesion - Stickiness, Adherence or Things

that go together– Functional, Layer, Communicational, Sequential,

Procedural, Temporal, and Utility

Page 23: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Software Development Processes

• Rational Unified Process• Waterfall Process• Spiral Process• Agile Process

Page 24: Exam 2 Review Software Engineering CS 561. Outline Requirements Development UML Class Diagrams Design Patterns Users, Usability, and User Interfaces Software

Reminders

• Previous material is fair game, but not the focus of the exam

• Study class notes and the text• I will not be present. Instead, Abhyudaya will

proctor the exam.