CS 5150 Software Engineering Lecture 15 Program Design 2.

Slides:



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

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Introduction To System Analysis and Design
CS CS 5150 Software Engineering Lecture 15 Object Oriented Design 1.
Software Engineering 1 Provisional Revision Plan.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 15 Object Oriented Design 1.
Unified Modeling (Part I) Overview of UML & Modeling
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
1 CS 501 Spring 2008 CS 501: Software Engineering Lectures 15 Object Oriented Design 1.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
CS /31 Illinois Institute of Technology CS487 Software Engineering Midterm Review David Lash.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 10 Architectural Design
The Design Discipline.
Chapter 2: Approaches to System Development
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling.
A Development Process Lecture Oo13 Objectory based method.
An Introduction to Software Architecture
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
SOFTWARE DESIGN.
Chapter 9 Moving to Design
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
Software Design Deriving a solution which satisfies software requirements.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
SE: CHAPTER 7 Writing The Program
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Systems Analysis and Design in a Changing World, 3rd Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Database Design – Lecture 4 Conceptual Data Modeling.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
CS223: Software Engineering Lecture 13: Software Architecture.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Object Oriented Analysis and Design Introduction to Rational Rose.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Oct. 16, 2003CS WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003.
Basic Characteristics of Object-Oriented Systems
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Chapter 1: Software design
Object-Oriented Analysis and Design
System Design and Modeling
Lecture 9- Design Concepts and Principles
System Modeling Chapter 4
Object-Oriented Design
CS223: Software Engineering
Software Design CMSC 345, Version 1/11.
Lecture 9- Design Concepts and Principles
SYS466 Domain Classes – Part 1.
Design Tips.
An Introduction to Software Architecture
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction to Pattern Oriented Analysis and Design (POAD)
Database Management Systems
Chapter 6: Architectural Design
CS 501: Software Engineering
Presentation transcript:

CS 5150 Software Engineering Lecture 15 Program Design 2

CS Administrivia TAs reading milestone 2 reports Everyone do teammate feedback? Quiz 2 No final exam

CS General Presentation Feedback Client single point of contact

CS SE in the News Google releases Dart SDK Largest Kickstarter project funded -- $4M Microsoft app store craziness Zero-day exploit lifecycle analysis

CS Conditions on MSFT’s App Store 5.2 Your app must not contain content that advocates discrimination, hatred, or violence based on membership in a particular racial, ethnic, national, linguistic, religious, or other social group, or based on a person’s gender, age, or sexual orientation5.3 Your app must not contain content or functionality that encourages, facilitates or glamorizes illegal activity5.4 Your app must not contain or display content that a reasonable person would consider to be obscene5.5 Your app must not contain content that is defamatory, libelous or slanderous, or threatening5.6 Your app must not contain content that encourages, facilitates or glamorizes excessive or irresponsible use of alcohol or tobacco products, drugs or weapons5.7 Your app must not contain content that encourages, facilitates or glamorizes extreme or gratuitous violence, human rights violations, or the creation or use of weapons against a person or animal in the real world5.8 Your app must not contain excessive or gratuitous profanity

CS Attack Timeline

CS

8 Quiz 2 Requirements Scenarios/use cases Diagrams: dataflow, flow chart, entity relation, sequence Usability Interface/user testing Software architecture Design patterns Concurrency

CS Program Design The task of program design is to represent the software system functions in a form that can be transformed into one or more executable programs Given a system architecture, the program design specifies: programs, components, packages, classes and class hierarchies interfaces, protocols (where not part of the system architecture) algorithms, data structures, security mechanisms, operational procedures If the program design is done properly, all design decisions should be made before implementation

CS UML Models UML models (diagrams and specifications) can be used for almost all aspects of program design Diagram gives a general overview of the model, showing the principal elements and how they relate to each other. Specification provides details about each element of the model. Specification for models used in program design should have sufficient detail that they can be used to write code from.

CS Class Diagrams

CS Class Diagram in Rational Rose

CS Notation: Relationships

CS Like Database Schema

CS Notation: Relationships (continued)

CS Notation: Interface

CS Notation: Package

CS Modeling Classes Given a real-life system, how do you decide what classes to use? What terms do the users and implementers use to describe the system? They are candidates for classes. Is each candidate class crisply defined? For each class, what is its set of responsibilities? Are the responsibilities evenly balanced among the classes? What attributes and operations does each class need to carry out its responsibilities?

CS Candidate Classes: Application Classes and Solution Classes Application classes represent application concepts. Noun identification is an effective technique to generate candidate application classes Solution classes represent system concepts, e.g., user interface objects, databases, etc.

CS From Candidate Classes to Completed Design Methods used to move to final design: Reuse: Wherever possible use existing components, or class libraries. They may need modification. Restructuring: Change the design to improve, understandability, maintainability, etc. Techniques include merging similar classes, splitting complex classes, etc. Optimization: Ensure that the system meets anticipated performance requirements, e.g., by changed algorithms or restructuring. Completion: Fill all gaps, specify interfaces, etc.

CS Coupling and Cohesion Coupling is a measure of the dependencies between two part of a system. If two classes are strongly coupled, it is hard to modify one without modifying the other. Cohesion is a measure of dependencies within part of a system. If a class contains many closely related functions its cohesion is high. Aim for high cohesion within classes and weak coupling between them.