CSE 403 Software Engineering

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Software Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Software Project Management
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 4 Quality Assurance in Context
CS3773 Software Engineering Lecture 01 Introduction.
Software Process Models
CLEANROOM SOFTWARE ENGINEERING
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Software Engineering.
Introduction to Software Engineering Dr. Basem Alkazemi
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Retrospective Richard Anderson CSE 403 Lecture 27.
Software Development Process
CST 316 Process. Junior Project Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
CLEANROOM SOFTWARE ENGINEERING.
Software Testing Life Cycle
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prescriptive Process Models
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Software Design Process
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Advanced Software Engineering Dr. Cheng
Software Development Framework
Embedded Systems Software Engineering
Software Development - Methodologies
Methodologies and Algorithms
Software Engineering Management
Lecture 3 Prescriptive Process Models
Chapter 1: Introduction to Systems Analysis and Design
Testing More In CS430.
Quality Assurance: Early Work Items
Software Life Cycle “What happens in the ‘life’ of software”
SNS College of Engineering Coimbatore
CS701 SOFTWARE ENGINEERING
Software Process Models
Software Life Cycle Models
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
How to Successfully Implement an Agile Project
Introduction to Software Testing
An Overview of Software Processes
CSE 403 Lecture 17 Coding.
CSE 403, Software Engineering Lecture 2
Practical Software Engineering
Software Process Models
Baisc Of Software Testing
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Chapter 1: Introduction to Systems Analysis and Design
Software Engineering Practice: A Generic View
Software Testing “If you can’t test it, you can’t design it”
Chapter 1: Introduction to Systems Analysis and Design
What is Software Engineering?
Testing, Inspection, Walkthrough
Presentation transcript:

CSE 403 Software Engineering Lecture 24 Review

Lecture 1 - Overview Course goal – gain an understanding that: Developing a software product is not merely a matter of programming

Lecture 2 – Life cycle Software life cycle Requirements Waterfalls and spirals Requirements Gather and document the functions that the application should perform for the users in the users' language and from the users' perspective

Lecture 3 - Requirements Importance of up front work Types of requirements Business Case Why we want to build it User What it does Functional How developers are going to implement it Use Cases

Lecture 4 – User studies Understand application from users point of view Methodology Observations Interviews Examination of artifacts Focus groups Understand use case – not the implementation

Lecture 5 Using requirements Who uses the requirements Customer, Management, Marketing, Dev, Test Managing requirements Change tracking Trade offs Conciseness vs. Completeness Formality vs. Comprehensibility

Lecture 6 Non-functional requirements Requirements beyond user interaction with the system Performance Safety Security Software quality attributes Domain has a strong influence on these

Lecture 7 How to fail at delivering software It's not just software . . . What is failure Problems can be covered up until its too late Classic mistakes People Process Product Technology

Lecture 8 Risk Assessment What is risk Risks in different domains Sources of risk Development Integration Testing Deployment Risk mitigation

Lecture 9 Project teams Team structure Development roles Productivity differences What makes a team successful Team building

Lecture 10 Motivation Motivation is undoubtedly the single greatest influence on how well people perform Key factors Achievement, Growth, Work itself Morale killers Crushing motivation from the top

Lecture 11 QA (Ian King) Value of quality assurance early Establish QA requirements Process Schedules Build Developer Defect tracking Release criteria

Lecture 12 Software decomposition Design principles Managing complexity Divide and conquer But where to divide? Cohesion vs. Coupling Language support

Lecture 12 ½ David Socha Urban Sim development approach Customer oriented Very short release cycle Emphasis incremental build Attention to work environment Artifacts and atmosphere

Lecture 13 Urban sim discussion Quick release cycle Avoiding test Devs test Customer testing Code / debug cycle

Lecture 14 Design Patterns Expertise – higher level thought Design pattern Commonly occurring pattern that can be adapted in many situations Gang of Four – catalog of software design patterns

Lecture 15 Coding Many choices in how to do the same thing What criteria to use to make choices Coding standards Layout, Commenting, Language usage Naming issues

Lecture 16 Coding Code for comprehensibility Self documenting code Assertions Dealing with memory

Lecture 16 ½ John Socha Range of software experiences

Lecture 17 Coding Danger of bad function interfaces Code tuning Return of error conditions Code tuning Out of fashion Almost always favor clarity over efficiency But be aware of Speeding up the inner loop Memory management Resource usage Avoiding recomputation

Lecture 18 Debugging Debugging techniques Common mistakes Kernigan and Pike Common mistakes Initialization / memory errors Ignoring exceptions Complicated interaction of systems

Lecture 19 Skip Walter Software Products Technology adoption lifecycle Product context Whole product concept

Lecture 20 The End game Release process Release Candidate RTM Maintenance Influence of industry on process

Lecture 21 Test Strategy Ian King Elements of test strategy Specification Plan Test architecture Test case generation Schedule Focus The customer

Lecture 22 Ian King Implementing Testing Phases of testing What makes a good tester Testability Black box vs. White box Test cases Manual vs. Automated Bug management

Lecture 23 Complexity theory! Syntactic measures of software quality are dubious Mechanical simplification is not simplification The halting program Cannot automatically verify software (in all cases)

Lecture 24 Review Requirements phase Planning, teams, and management Design and process Coding Shipping Review