CSE 219 Final exam review.

Slides:



Advertisements
Similar presentations
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Advertisements

10 Software Engineering Foundations of Computer Science ã Cengage Learning.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Object-Oriented Analysis and Design
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Program Testing Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Testing: General Requirements, DFT, Multilevel Testing Testing: General Requirements DFT Multilevel Testing-- System, Black Box, White Box Tests.
Chapter 1 Principles of Programming and Software Engineering.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Understand Application Lifecycle Management
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
CSE 219 Computer Science III Testing. Testing vs. Debugging Testing: Create and use scenarios which reveal incorrect behaviors –Design of test cases:
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CSE 219 Computer Science III Program Design Principles.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Systems Analysis and Design in a Changing World, 3rd Edition
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
The Software Development Process
Lab 5 CPIT 250 System Analysis and Design.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter 3: Introducing the UML
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Principles of Programming & Software Engineering
Integration Testing.
Chapter ? Quality Assessment
Systems Analysis and Design With UML 2
Unified Modeling Language
Principles of Programming and Software Engineering
About the Presentations
Software Development Life cycle
INFS 6225 – Object-Oriented Systems Analysis & Design
Unit# 9: Computer Program Development
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Component-Based Software Engineering
Software System Integration
Testing and Test-Driven Development CSC 4700 Software Engineering
Component-Level Design
Slides by Steve Armstrong LeTourneau University Longview, TX
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
CSE 303 Concepts and Tools for Software Development
An Introduction to Software Architecture
Review CSE116 2/21/2019 B.Ramamurthy.
CS 8532: Advanced Software Engineering
Basic OOP Concepts and Terms
What Is Good Software(Program)?
Chapter 5.
Chapter 2. Problem Solving and Software Engineering
Chapter 11: Integration- and System Testing
CSE 1020:Software Development
Software Development Chapter 1.
Presentation transcript:

CSE 219 Final exam review

List the properties of high quality software. Correctness Efficiency Ease of use Reliability/robustness Reusability Maintainability Modifiability Testability Extensibility Scalability

What does UML stand for? Unified Modeling Language What are the two types of UML diagrams you had to make for HW 4? Class Diagrams Sequence Diagrams What other UML diagram did you discuss in class but did not make? Use Case Diagrams

What is a UML class diagram? A diagram used to describe the classes needed for a piece of software. Shows all the class names, method signatures, variables, and class relationships. What is a UML sequence diagram? A diagram used to describe event handling. It shows method invocation chains. When using VioletUML to make a sequence diagram, what word is used to describe a method? Message

List the steps of the software development life cycle. Requirements Analysis Design & Document Evaluate Design Code Test Profile Debug Deploy Maintenance

What does SRS stand for? What does SDD stand for? Software Requirements Specifications What does SDD stand for? Software Design Document What two approaches to class design did you discuss? Top-down and Data-Driven

What does modularity mean? If your classes are modular, they can be reused in future projects. To have modular code, it is best to separate functionality from presentation. Which arrow in a UML diagram denotes inheritance? Open triangle. It points toward the class it inherits from. What strategy is used for top-down class design? Use software decomposition to break the problem down into sub-problems, then make skeletal classes and methods for those sub-problems.

What makes a good modular design? Connections between modules are explicit Connections between modules are minimized A module should have access to only as much information as it needs to work What is a blob class? A single class with many attributes and operations One problem is that the class then becomes too complicated to reuse or test.

What is Spaghetti Code? Code that is lacking any structure or organization Which design strategy did you use for HW 5? Top-Down or Bottom-up? Why? Top-Down You created the user interface with all the buttons. Then later added functionality for the buttons. Note that you could have done all of this without ever creating classes for the various components or a Page or ePortfolio.

What is bottom-up development? First, develop all the classes that are used by the application. Then, develop the final product or the class that uses all of those pieces. Test functionality using drivers.

What is top-down development? First, develop a module. Then, develop all the things that the module uses. Requires the use of stubs.

What is testing? What is verification? a process of running a program on a set of test cases and comparing the actual results with expected results What is verification? a formal or informal argument that a program works as intended for all possible inputs

What is defensive programming? What is validation? a process designed to increase confidence that a program works as intended What is defensive programming? writing programs in a way designed to ease the process of validation and debugging

What is exhaustive testing? Consider all possible combinations of inputs What is Sampled testing? A small but representative subset of all input combinations. Black-Box Testing Glass-Box Testing

When doing black-box testing, what are test cases based on? Test cases based on program’s specification, not on its implementation (see the homework grading sheets) When doing GLASS-box testing, what are test cases based on? the code of a program being tested

What does Junit use to perform its tests? What is Junit? Unit-test framework for Java programs What does Junit use to perform its tests? Assertions

Should you optimize often? NO! Only when necessary? How can you avoid needing to optimize often? When designing, choose efficient algorithms and data structures.

What are Program hot spots? “90% of the time is spent in 10% of the code.”

What is a profiler? A profiler is a program that can track the performance of another program by checking information collected while the code is executing