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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 2: Approaches to System Development
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
UML (Sequence Diagrams, Collaboration and State Chart Diagrams) Presentation By - SANDEEP REDDY CHEEDEPUDI (Student No: ) - VISHNU CHANDRADAS (Student.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Systems Analysis and Design 8th Edition
Software Requirements Engineering
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Principles and Methods
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks1 7.1 User Centred Design (UCD) Software development should focus on the needs.
© Copyright Eliyahu Brutman Programming Techniques Course.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
Enterprise Architecture
Chapter 2: Approaches to System Development
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
Prepared by Afra`a Sayah. Introduction. Weekly Tasks. Plane Phase. Analysis Phase. Design Phase. Report Rules. Conclusion. 2.
Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
CSE 240 Lecture 10. © Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks2 For Next time Finish Reading Chapter 6 Read Chapter 7.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 4: Developing Requirements.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Systems Analysis & Design 7 th Edition Chapter 5.
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Chapter 12: User Interface Design
7 Systems Analysis and Design in a Changing World, Fifth Edition.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Towards a Pattern Language for User Interface Design
Software Design: Principles, Process, and Concepts Getting Started with Design.
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 7: Software Engineering
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
UML (Unified Modeling Language)
Class Diagrams, MVC and Design Patterns CS153P Session 4.
Software Engineering Developing Requirements. © Lethbridge/Laganière 2001 Chapter 4: Developing requirements2 4.1 Domain Analysis The process by which.
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
User Interface Design: Focusing on Users and Their Tasks.
Chapter 7: Software Engineering
Review for Final, Fall 2010 Close book, Close notes
Unified Modeling Language
Starting Design: Logical Architecture and UML Package Diagrams
OBJECT ORIENTED ANALYSIS AND DESIGN
Systems development life cycle (SDLC)
Chapter 5.
Presentation transcript:

Exam 2 Review 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

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

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

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

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

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

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

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

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

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

Design Patterns Each design pattern includes – Context – Problem – Solution Presents a generalized solution to a common problem

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)

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

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

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

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

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

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

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

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

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

Software Development Processes Rational Unified Process Waterfall Process Spiral Process Agile Process

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.