CISC 322 Software Architecture Lecture 21: Final Review Emad - - PowerPoint PPT Presentation

cisc 322
SMART_READER_LITE
LIVE PREVIEW

CISC 322 Software Architecture Lecture 21: Final Review Emad - - PowerPoint PPT Presentation

CISC 322 Software Architecture Lecture 21: Final Review Emad Shihab Course Content Requirements Architectural Styles Architecture Recovery Design Patterns Project Scheduling Software Estimation Requirements


slide-1
SLIDE 1

CISC 322

Software Architecture Lecture 21: Final Review Emad Shihab

slide-2
SLIDE 2

Course Content

■ Requirements ■ Architectural Styles ■ Architecture Recovery ■ Design Patterns ■ Project Scheduling ■ Software Estimation

slide-3
SLIDE 3

Requirements

slide-4
SLIDE 4

Requirements

■ What are SW requirements?

– Specification of what should be implemented

■ Where requirements come from? ■ What is the process used to come up with SW requirements? ■ Types of requirements? What are requirement specification documents? What do they contain?

slide-5
SLIDE 5

Quality Attributes

■ Often know as –ilities

– Performance – Scalability – Modifiability – Availability – …

slide-6
SLIDE 6

Architectural Styles

slide-7
SLIDE 7

What we should know

■ Repository ■ Pipe-and-Filter ■ Object Oriented ■ Implicit Invocation ■ Layered ■ You should know advantages and disadvantages of each ■ How to apply these when architecting large software systems

slide-8
SLIDE 8

Architecture Recovery

slide-9
SLIDE 9

Architecture Terminology and Views

■ Conceptual vs. Concrete vs. Reference ■ For each type of architecture:

– How do we derive it? – What is it used for?

■ Architectural views

– Stakeholders – concerns

slide-10
SLIDE 10

Design Patterns

slide-11
SLIDE 11

Classifying Design Patterns

■ Structural: concern the process of assembling objects and classes ■ Behavioral: concern the interaction between classes or objects ■ Creational: concern the process of object creation

slide-12
SLIDE 12

Design Patterns Covered

■ Structural

– Adapter – Façade – Composite

■ Behavioral

– Iterator – Template – Observer – Master-Slave

■ Creational

– Singleton

■ When would you use a specific pattern ■ The structure and participants of the pattern

slide-13
SLIDE 13

Project Scheduling

slide-14
SLIDE 14

Project Scheduling

■ Work Breakdown Structures

– Phase based approach – Product based approach – Hybrid approach

■ Critical Path

– How to determine it – Early, late start and finish – Activity slack

slide-15
SLIDE 15

Project Scheduling

■ PERT

– Optimistic, average and pessimistic estimates

■ Probabilistic network analysis

– How likely is a project to finish within X weeks

■ Project crashing

slide-16
SLIDE 16

Cost Estimation

slide-17
SLIDE 17

Cost Estimation

■ Software Productivity

– LOC vs. FP vs. OP

■ Estimation techniques

– Algorithmic cost modeling – Expert judgment – Estimation by analogy – Parkinson’s Law – Pricing to win

slide-18
SLIDE 18

Cost Estimation - COCOMO

■ COCOMO 81 ■ COCOMO II

– Early prototyping model (base on OP) – Early design model (based on FP -> LOC) – Reuse model – Post-architecture level

■ COCOMO example

slide-19
SLIDE 19

Final Exam Logistics

■ Dec 14 @ 2:00 PM ■ Grant Hall ■ 3 hour exam ■ Bring your calculators ■ I will provide basic formulas, if needed