Software Engineering CS 561 Outline Requirements Development UML Class Diagrams Design Patterns Users Usability and User Interfaces Software Processes Other Types of UML Diagrams Software Architecture and Design ID: 494168
Download Presentation The PPT/PDF document "Exam 2 Review" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Exam 2 Review
Software Engineering
CS
561Slide2
Outline
Requirements Development
UML
Class Diagrams
Design
Patterns
Users, Usability, and User Interfaces
Software Processes
Other Types of UML Diagrams
Software Architecture and DesignSlide3
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 requirementsSlide4
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 resourcesSlide5
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 requirementsSlide6
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 systemSlide7
Class Modeling
Class diagrams include
Classes
Associations
Attributes
Operations
GeneralizationsSlide8
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 phraseSlide9
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 otherSlide10
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 destroyedSlide11
Class Modeling
Developing class diagrams
Exploratory domain model
System domain model
System model
Identify classes, associations, and attributes
Identify generalizations and interfaces
Label them properlySlide12
Design Patterns
Each design pattern includes
Context
Problem
Solution
Presents
a generalized solution to a common problemSlide13
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)Slide14
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 patternSlide15
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 processSlide16
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 toolSlide17
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
AcceptabilitySlide18
UI Design
UI Design Terminology
Dialog
Control or widget
Affordance
State
Mode
Modal dialog
Feedback
Encoding techniquesSlide19
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 actionSlide20
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 UISlide21
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 chartSlide22
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 UtilitySlide23
Software Development Processes
Rational Unified Process
Waterfall Process
Spiral Process
Agile ProcessSlide24
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
.