Midterm ReviewSummer 2003 1 ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Midterm Review Partially.

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
 2004 by SEC Chapter 2 Software Development Process Models.
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter II Chap1: Software Engineering Models (Review) Mandatory reading: chapter.
CS3773 Software Engineering Lecture 01 Introduction.
Software Requirements Engineering
Introduction to Software Engineering Lecture 4 André van der Hoek.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Soft. Eng. I, Spring 07Dr Driss Kettani, from I. Sommerville1 CSC-3324: Chapter 5 Requirements Engineering Reading: Chap. 6, 7 + annex.
Software Architecture Design Instructor: Dr. Jerry Gao.
The Architecture Design Process
Topic 9Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 9 Partially based on lecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS351 © 2003 Ray S. Babcock Requirements What not How “The Pizza Experiment” 1994, 350 companies, 8000 software projects. 31% were canceled before they.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Introduction to Software Engineering Lecture 8 André van der Hoek.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Review 1.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 3 Software Processes.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Continuation From Chapter From Chapter 1
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 3 Partially based on lecture notes written by.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Topic 7Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 7 Partially based on lecture.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An Introduction to Software Architecture
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Software Requirements Engineering CSE 305 Lecture-2.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Lecture 7: Requirements Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design Identifying system components and their interfaces.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Design Process
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Ch. 31 Software Engineering Principles CSC 3910 Software Engineering Time: 1:30 to 2:20Meeting Days: MWFLocation: Oxendine 1256 Textbook: Fundamentals.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
© Chinese University, CSE Dept. Software Engineering / Topic 3: Software Engineering Principles Your Name: _____________________ Computer Science.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
C_ITIP211 LECTURER: E.DONDO. Unit 1 : The Systems Development Environment.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
ICS 52: Introduction to Software Engineering
Informatics 122 Software Design II
Presentation transcript:

Midterm ReviewSummer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Midterm Review Partially based on lecture notes written by Sommerville, Frost, Easterbrook & Tonne.. Duplication of course material for any commercial purpose without the written permission of the lecturers is prohibited

Midterm ReviewSummer Exam Information l The exam will be given in lecture, so you’ll have 120 minutes. l The exam is closed book, closed notes, closed laptops and of course you can’t consult your classmates. l Try to space yourselves out

Midterm ReviewSummer Exam coverage l Lecture topics 1-8 l Sommerville, chapters 1-3, 5-12, 14

Midterm ReviewSummer Software Engineering Basics (Topic 1) l What is Software Engineering? l What is software (other than just programs) l What is the goal of software engineering (Why do it?) What is the software crisis l How does it differ from… Programming Architecture (how is it like this too?)

Midterm ReviewSummer The five P’s l People l Product l Project l Process l Professionalism

Midterm ReviewSummer Software Qualities (Topic 2) l Correctness l Reliability l Robustness l Performance l Usability l Maintainability Corrective Adaptive Perfective l Repairability l Evolvability l Reusability l Portability l Safety l Verifiability l Why not have them all?

Midterm ReviewSummer Software Process (Topic 2) l What is it? l Fundamental Activities of a software lifecycle Requirements/Specification Architecture/Design Implementation Integration Operation/Maintenance

Midterm ReviewSummer Software Lifecycle Model l What are the Models? Stepwise Development Waterfall Rapid Prototyping Spiral Incremental Synchronize-and-Stabilize Evolutionary – in book chpt 3 (pg 46) l What are the pros and cons of each

Midterm ReviewSummer Software Principles (Topic 3) l What are they? Rigor & Formality – to be exact or precise Separation of Concerns – “Divide & Conquer” Modularity – divide into smaller pieces/modules Abstraction – abstract away unnecessary details Anticipation of Change Generality – focus on discovering a more general problem Incrementality – proceed in stepwise fashion (increments Use more indepth definitions in lecture slides

Midterm ReviewSummer Software Principles l How do they apply to Requirements? l How do they apply to Design? l Know the benefits of them and why they are necessary

Midterm ReviewSummer Requirements Engineering (Topic 4) l What is Requirements Engineering? What is the process? »Feasibility study »Requirements elicitation and analysis »Requirements specification »Requirements Validation l What is a feasibilty study? l What are the problems with Requirements Analysis? (What makes it hard?) Domain issues Communication issues Details in slides

Midterm ReviewSummer Requirements Specification l What does a requirements specification say about the system? What does is describe? l Why is it important to get them right? l What is the difference between a functional and non-functional requirement? l What is an acceptance test plan? l How do we measure non-functional requirements?

Midterm ReviewSummer Requirements continued l What are the different techniques we discussed? l What is wrong with Natural language documents? What are our alternatives? (topic 5) l What are some of the problems we typically run into with requirements (topic 5) l What are enduring vs. volatile requirements? l What are some basic guidelines for writing requirements? l How can we verify them?

Midterm ReviewSummer Alternatives to NL l Structured Language l Form-based Specifications l PDL-Based l Formal Specifications Abstract model Algebraic State Transition Axiomatic

Midterm ReviewSummer Requirements l You should know how to interview a customer to elicit requirements. l You should know how to write a textual (non-formal) requirements document. l You should understand the structure of a requirements document and know the appropriate kinds of information in such a document.

Midterm ReviewSummer Alternatives to NL l For each you should know… l What they are. l Why we use them. l When do we use them? l Pros/Cons l Can we only use one style for a system?

Midterm ReviewSummer Software Architecture l Know the difference between Architectural Design and Module Design (Topic 6) l What is Architectural Design? What is its purpose? What does it describe l Why do we do it & advantages l Know the different parts of the Architectural Design Process System Structuring Control Modeling Modular Decomposition l Differences between Subsystems and Modules

Midterm ReviewSummer More on S/w Arch (Topic 6) l Can one model work for everything? l Should you only use 1 model for an entire system? l What does a model consist of? Components Connectors Constraints Interfaces

Midterm ReviewSummer Know the Models (Topics 6 & 7) l General Models Structural »Repository  MVC – Model View Controller (Good for UIs) »Client-Server »Layered (or Abstract Machine) Model Control Models »Centralized Control Models  Call-return Model  Real-Time system Control Model »Event Driven  Broadcast Model  Interrupt-Driven Control Modular Decomposition »DataFlow  Pipe & Filter (DataFlow Model)  Object Models l Domain Specific Generic (Bottom-Up) Reference (Top-Down)

Midterm ReviewSummer Models continued l Know what type of models they are General »System Structuring »Control Modeling »Modular Decomposition Domain Specific l Pros/Cons

Midterm ReviewSummer Design (Topic 7&8) l What makes a good design? How do the principles apply? l What is a Module? l What is an Abstract Data type? What is the goal… why use them? What is information hiding? l Interfaces Why do we need them? – why are they important? What do they do?

Midterm ReviewSummer Module Basics (Topic 8) l Information Hiding l Reusable Modules l Designing for Program Families What is a program family? Why should we design for it? l Why are these important? l What are the Cons

Midterm ReviewSummer Design Continued (Topic 8) l Know Uses diagrams What do they represent? Is it the same as an invokes diagram? »A diagram that shows all calls between modules l What is fan-in and fan out (with respect to diagrams)? Which is more desirable and why? l Know what is-component-of relationship is How does it relate to is-composed-of Or Comprises diagram

Midterm ReviewSummer Design continued l What is Stepwise refinement? Top-down, bottom-up Pros/Cons l What are the tools of the trade or techniques for design? Apply Information Hiding Use the Requirements Document Anticipate Change Design for incrementality/generality (Reuse) Design for Program families Determine usage patterns

Midterm ReviewSummer Architecture/Design l Are architectures reusable? l What is coupling? l What is cohesion? l Try to keep in mind what the underlying goals of software engineering are… Why do we do this? l Remember there are pros & cons to everything l There are cost trade-offs.. What are they?

Midterm ReviewSummer Basic Format l Short Answer l Long Answer l Multiple choice l Maybe some T/F l Some Tips Don’t wait until the last minute to study Study Groups »Come prepared you’ll get more out of it. »Study on your own again after study group Get a good nights sleep and don’t starve yourself the day of the test »Good brain food – nuts.. Not so good – carbs If you don’t know the answer off the top of your head--- move on to the next question Go for the points – balance your time